I just peaked at the stalogfile actor. What seems to cause the confuzion is the name of the variable used multiple times "checksum" and then the name of the GetCheckSum native function?
lets look at one function:
Code: Select all
function LogGameEnd( string Reason )
{
local string Checksum;
if( bWorld )
{
bWatermark = False;
GetChecksum( Checksum );
LogEventString(GetTimeStamp()$Chr(9)$"game_end"$Chr(9)$Reason$Chr(9)$Checksum$"");
}
else Super.LogGameEnd(Reason);
}
look how the variable Checksum is declared localy as a string. That means the "Checksum" is nothing but a string that does not come from another class or function.
Then the function GetChecksum is called, and the variable ( Checksum ) is declared in that function as an outgoing string ( native final function GetChecksum( out string Checksum ); ). That means that what this call does, is to assign a value to the local string "Checksum".
Now look at the LogEventString call, here the local variable is added last: LogEventString(GetTimeStamp()$Chr(9)$"game_end"$Chr(9)$Reason$Chr(9)
$Checksum$"");
What this basicly means, is that Checksum is the text string of the log file itself, and is beeing rewritten with the newest update, by starting with "
GetTimeStamp()$Chr(9)$"game_end"$Chr(9)$Reason$Chr(9)" as the latest entry, then adding the older stuff to the file as $Checksum, and then close the log file.
I don't see it as a function capable of returning a checksum of a given file? I may be wrong, but try go through the statlogfile actor looking from the perspective I descriped here? What do you make of it?