//============================================================================= // KFGFxWidget_MapText //============================================================================= // //============================================================================= // Killing Floor 2 // Copyright (C) 2015 Tripwire Interactive LLC //============================================================================= class KFGFxWidget_MapText extends GFxObject; var GFxObject mapTextField; var KFPlayerController KFPC; var transient float CurrentDisplayTime; var transient float ControlTime; struct MapStoredMessage { var string Text; var float DisplayTime; }; var array StoredMessageList; function InitializeHUD() { KFPC = KFPlayerController(GetPC()); mapTextField = GetObject("mapText"); SetVisible(false); } function DisplayMapText(string MapText, float DisplayTime, bool bWaitForTheNextMessageToFinish) { Local MapStoredMessage StoredMessage; if(mapTextField != none) { if(ControlTime > 0 && bWaitForTheNextMessageToFinish) { StoredMessage.Text = MapText; StoredMessage.DisplayTime = DisplayTime; StoredMessageList.AddItem(StoredMessage); return; } ControlTime = DisplayTime; CurrentDisplayTime = DisplayTime; mapTextField.SetText(MapText); SetVisible(true); } } function TickHud(float DeltaTime) { if(ControlTime > 0) { ControlTime -= DeltaTime; if(ControlTime <= 0) { HideMessage(); } } } function HideMessage() { if(StoredMessageList.Length > 0) { ControlTime += StoredMessageList[0].DisplayTime; CurrentDisplayTime = StoredMessageList[0].DisplayTime; mapTextField.SetText(StoredMessageList[0].Text); SetVisible(true); StoredMessageList.Remove(0, 1); return; } mapTextField.SetText(""); SetVisible(false); } DefaultProperties { }