Complete disaster-recovery snapshot: engine/game source, game data assets, VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive. Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false, no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
59 lines
1.5 KiB
C
59 lines
1.5 KiB
C
void AdjustSysTimeForLog(SYSTEMTIME& Time);
|
|
|
|
#pragma pack(push, 1)
|
|
struct SLogItem
|
|
{
|
|
public:
|
|
UINT m_uSize;
|
|
GUID m_GUID;
|
|
SYSTEMTIME m_Time;
|
|
int m_nLaunched;
|
|
int m_nErr;
|
|
char m_szHost[64];
|
|
int m_nPlayers; // -(m_nPlayers + 1) // for error...
|
|
int m_nBOTs;
|
|
char m_szPlayers[1]; /* '\0' */
|
|
public:
|
|
SLogItem* GetNext() const;
|
|
BOOL CheckItem() const;
|
|
};
|
|
|
|
#define LRPT_FILE_SIGN 0x5450524c // 'LRPT'
|
|
#define LRPT_FILE_ERR 0x54505258 // 'XRPT'
|
|
#define LRPT_FILE_ERR2 0x54505240 // '@RPT'
|
|
|
|
#define LRPT_FILE_VER 0x00010000
|
|
|
|
struct SLogReport
|
|
{
|
|
public:
|
|
UINT m_dwSigns; //
|
|
UINT m_dwVersion; // 0x0100
|
|
BYTE m_ba[16]; // MD5 signature...
|
|
// from here MD5....
|
|
BYTE m_baReserved[32];
|
|
int m_nLogItems;
|
|
UINT m_uSize;
|
|
//SLogItem m_aLogItems[];
|
|
protected:
|
|
static bool s_bCached;
|
|
static SYSTEMTIME s_Time;
|
|
static BYTE s_ba[16];
|
|
public:
|
|
SLogItem* GetFirst() const;
|
|
SLogItem* GetLast() const;
|
|
void Initialize();
|
|
int Check(SYSTEMTIME& st);
|
|
void Fix(BYTE* pBDigest = NULL);
|
|
void MarkErr(bool bAs2 = false);
|
|
int WriteFile(const char* pcszFile, SYSTEMTIME& st);
|
|
void GetDateFromLOGFILE(const char* pcszFile, SYSTEMTIME& st);
|
|
SLogReport* AddLogItem(const GUID& guid, UINT uBufNames, SLogItem*& pLogItem);
|
|
SLogItem* GetLogItem(const GUID& guid) const;
|
|
public:
|
|
static SLogReport* OpenLogReport(const char* pcszFile, SYSTEMTIME& st, BOOL bNewIfNotExist = TRUE);
|
|
static void FreeLogReport(SLogReport* pLogReport);
|
|
static void CheckCached(SYSTEMTIME& st);
|
|
};
|
|
#pragma pack(pop)
|