BOOL C4GameObjects::Save(const char *szFilename, BOOL fSaveGame, bool fSaveInactive) { // Enumerate Enumerate(); InactiveObjects.Enumerate(); Game.ScriptEngine.Strings.EnumStrings(); // Decompile objects to buffer StdStrBuf Buffer; bool fSuccess = DecompileToBuf_Log<StdCompilerINIWrite>( mkParAdapt(*this, false, !fSaveGame), &Buffer, szFilename); // Decompile inactives if (fSaveInactive) { StdStrBuf InactiveBuffer; fSuccess &= DecompileToBuf_Log<StdCompilerINIWrite>( mkParAdapt(InactiveObjects, false, !fSaveGame), &InactiveBuffer, szFilename); Buffer.Append("\r\n"); Buffer.Append(InactiveBuffer); } // Denumerate InactiveObjects.Denumerate(); Denumerate(); // Error? if (!fSuccess) return FALSE; // Write return Buffer.SaveToFile(szFilename); }