Class ExtXMLOutput extends FileWriter implements(ExtStatWriter); var transient string Intendent; var transient array StackedSect; event PreBeginPlay(); final function DumpXML(ExtPerkManager M) { OpenFile(class'OnlineSubsystem'.Static.UniqueNetIdToString(M.PRIOwner.UniqueId),FWFT_Stats,".xml",false); M.OutputXML(Self); CloseFile(); ResetFile(); } function WriteValue(string Key, string Value) { Logf(Intendent$"<"$Key$">"$Value$""); } function StartIntendent(string Section, optional string Key, optional string Value) { if (Key!="") Logf(Intendent$"-<"$Section$" "$Key$"=\""$Value$"\">"); else Logf(Intendent$"-<"$Section$">"); Intendent $= Chr(9); StackedSect.AddItem(Section); } function EndIntendent() { Intendent = Left(Intendent,Len(Intendent)-1); Logf(Intendent$""); StackedSect.Remove(StackedSect.Length-1,1); } function ResetFile() { Intendent = ""; StackedSect.Length = 0; } defaultproperties { bFlushEachWrite=false }