//============================================================================= // PluginBase //============================================================================= // //============================================================================= // Killing Floor 2 // Copyright (C) 2015 Tripwire Interactive LLC //============================================================================= class PluginBase extends Object abstract native(Plugin); var PlugInOwnerInterface PlugInOwner; var const public{private} bool bIsPluginEnabled; var bool bAborted; var bool bFailure; var bool bSuccess; var BaseAiPlugInHistory OwnersAiPlugInHistory; var string HistoryString; /** Exiting status of this plugin */ var() transient string StatusStr; cpptext { FORCEINLINE UBOOL IsPluginEnabled() const { return bIsPluginEnabled; } virtual void CleanUp(UBOOL bBeingDestroyed) {} } native function DisablePlugin(); native function EnablePlugin(); simulated function DrawDebugToHud( HUD HUD, name Category ); event ScriptInitialize() { bAborted = false; bFailure = false; bSuccess = false; } event DrawDebug(HUD H, Name Category); /********************************************************************************************* * Debugging ********************************************************************************************* */ /** Update command history (debugging) */ function UpdateCommandHistory() { local int i; if( PlugInOwner != none ) { if( OwnersAiPlugInHistory == none ) { OwnersAiPlugInHistory = PlugInOwner.GetAiPlugInHistory(); } for( i = 0; i < OwnersAiPlugInHistory.PlugInHistory.Length; i++ ) { if( OwnersAiPlugInHistory.PlugInHistory[i].PlugInName != "" && OwnersAiPlugInHistory.PlugInHistory[i].PlugInName == string(name) ) { if( bAborted) { OwnersAiPlugInHistory.PlugInHistory[i].bAborted = true; } if( bFailure) { OwnersAiPlugInHistory.PlugInHistory[i].bFailure = true; } if( bSuccess ) { OwnersAiPlugInHistory.PlugInHistory[i].bSuccess = true; } UpdateHistoryString( "Status: " $ StatusStr ); //HistoryString = "Status: "$Status; OwnersAiPlugInHistory.PlugInHistory[i].Duration = PlugInOwner.GetTimeSince(OwnersAiPlugInHistory.PlugInHistory[i].TimeStamp); OwnersAiPlugInHistory.PlugInHistory[i].VerboseString = HistoryString; } } } } /** Update the command's HistoryString, which is output when DumpCommandHistory() is called */ function UpdateHistoryString( string AddString ) { if( PlugInOwner != none ) { if( OwnersAiPlugInHistory == none ) { OwnersAiPlugInHistory = PlugInOwner.GetAiPlugInHistory(); } if( OwnersAiPlugInHistory.PlugInHistoryNum > 0 ) { HistoryString = HistoryString$" "$AddString; } } } /** Used when dumping command history to log file */ event string GetDebugVerboseText() { return HistoryString; } defaultproperties { bIsPluginEnabled=true HistoryString="[I]" }