//============================================================================= // BaseAiPlugInHistory //============================================================================= // //============================================================================= // Killing Floor 2 // Copyright (C) 2015 Tripwire Interactive LLC //============================================================================= class BaseAiPlugInHistory extends Object native(Plugin) dependson(PluginBase); struct native BaseAIPlugInHistoryItem { var class PlugInClass; var string PlugInName; var float TimeStamp; // World time command was started var float Duration; // Total time spent in the command var bool bAborted; // Command was aborted (which is often fine and intentional depending on the context) (TODO:Change to bytes) var bool bFailure; // Command failed (this is also not necessarily bad, at times it's expected) var bool bSuccess; // Command succeeded var string VerboseString; // Optional extra info that can be added }; var transient array PlugInHistory; var int PlugInHistoryNum; var BaseAIController CtrlOwner; cpptext { virtual void StorePlugInHistory( UPluginBase* ThePlugIn ); } event Setup( int InPlugInHistoryNum, BaseAIController InCtrlOwner ) { PlugInHistoryNum = InPlugInHistoryNum; CtrlOwner = InCtrlOwner; } simulated function DrawDebugToHud( HUD HUD, name Category ) { //local KFHUDBase kfHUD; local int plugInCnt; local Canvas canToUse; //local BaseAICommand Cmd; local BaseAIPlugInHistoryItem plugInItem; //local bool bDrawDebugCommandStack, bDrawDebugCommandHistory; //local bool bDrawDebugAllPlugins, bDrawDebugPlugInHistory; //local string AddTxt, NullTxt; //local AICommand AC; //kfHUD = KFHUDBase(kfHud); ////local float Aggression; //bDrawDebugCommandStack = false; //bDrawDebugCommandHistory = false; // if( Category == 'Default' || Category == 'All' || Category == 'OverheadNames' ) // { // bDrawDebugCommandStack = false; // bDrawDebugCommandHistory = false; // Icon = Texture2D'ENG_EditorResources_TEX.AI.S_AI'; // DrawIconOverhead(HUD, Icon); // return; // } // if( bDebug_ShowViewCone ) // { // if( MyKFPawn != None ) // { // tmp = MyKFPawn.GetPawnViewLocation(); // rot = MyKFPawn.GetBaseAimRotation(); // } // DrawDebugCone(tmp ,vector( rot),Pawn .SightRadius, Acos(Pawn .PeripheralVision), Acos(Pawn .PeripheralVision),16,MakeColor(255,0,0,255)); // } //return; // NullTxt = "None"; // Draw list of commands down the side of the screen if( /*Pawn != None && Category == 'All'*/ true ) { canToUse = HUD.Canvas; canToUse.SetOrigin(0,0); canToUse.Font = class'Engine'.Static.GetSmallFont(); canToUse.SetPos(canToUse.SizeX * 0.05f, canToUse.SizeY * 0.25f); // WRITE OUT COMMAND HISTORY // C.SetDrawColor(255, 255, 255, 255); CtrlOwner.DrawDebugTextToHud( HUD, "************************************************************" ); //C.SetDrawColor(0, 0, 255, 255); CtrlOwner.DrawDebugTextToHud( HUD, "PLUG IN HISTORY (Count:"@PlugInHistoryNum$")" ); plugInCnt = 0; foreach PlugInHistory( plugInItem ) { plugInCnt++; // C.SetDrawColor(255, 0, 0, 255); CtrlOwner.DrawDebugTextToHud( HUD, "PlugIn"@plugInCnt$":"@String(plugInItem.PlugInClass)@"Time:"@plugInItem.TimeStamp); if( Len(plugInItem.VerboseString) > 0 ) { // C.SetDrawColor(255, 64, 64, 255); CtrlOwner.DrawDebugTextToHud( HUD, ".............."@plugInItem.VerboseString ); } } } } defaultproperties { PlugInHistoryNum=25 }