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.
152 lines
4.5 KiB
C++
152 lines
4.5 KiB
C++
|
|
/*
|
|
================================================================================
|
|
========================================================================
|
|
========================================================================
|
|
|
|
File: cdata.h
|
|
Description: headers for CData and child classes
|
|
Created: 9/3/1997
|
|
Author: Matthijs Gates
|
|
Mail: mgates@microsoft.com
|
|
|
|
Copyright (C) 1997 Microsoft Corporation. All Rights Reserved.
|
|
|
|
========================================================================
|
|
========================================================================
|
|
================================================================================
|
|
*/
|
|
|
|
#if !defined(DATA_H)
|
|
#define DATA_H
|
|
|
|
#include "brtest.h"
|
|
#include "util.h"
|
|
|
|
//==============================================================================
|
|
//
|
|
// Class: CData
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
// Description: root class for data.
|
|
//
|
|
// Public methods:
|
|
//
|
|
// Public properties:
|
|
//
|
|
// 9/3/1997
|
|
// mgates
|
|
//
|
|
//==============================================================================
|
|
class CData
|
|
{
|
|
CRITICAL_SECTION m_crtCDataLock ; // critical section lock
|
|
INT m_iBufferSize ; // buffer sizes are always in bytes !
|
|
|
|
VOID InitCData() ;
|
|
|
|
// P U B L I C
|
|
|
|
public :
|
|
|
|
CData() ;
|
|
virtual ~CData() ;
|
|
|
|
virtual BYTE *GetBuffer() { return m_lpbBuffer ; }
|
|
virtual INT GetBufferSize() { return m_iBufferSize ; }
|
|
|
|
// P R O T E C T E D
|
|
|
|
protected :
|
|
|
|
virtual BOOL CDataSetBuffer(BYTE *lpbBuffer, INT iBufferSize) ;
|
|
VOID Lock() { EnterCriticalSection(&m_crtCDataLock) ; }
|
|
VOID Unlock() { LeaveCriticalSection(&m_crtCDataLock) ; }
|
|
|
|
BYTE *m_lpbBuffer ;
|
|
} ;
|
|
|
|
//==============================================================================
|
|
//
|
|
// Class: CDataCountup
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
// Description:
|
|
//
|
|
// Public methods:
|
|
//
|
|
// Public properties:
|
|
//
|
|
// 9/12/1997
|
|
// mgates
|
|
//
|
|
//==============================================================================
|
|
class CDataCountup : public CData
|
|
{
|
|
BOOL m_fFirst ;
|
|
INT m_cDword ;
|
|
BOOL m_fFreeze ;
|
|
|
|
// P U B L I C -------------------------------------------------------------
|
|
|
|
public :
|
|
|
|
CDataCountup(INT iBufferSize = DEF_DATABUFFERSIZE) ;
|
|
~CDataCountup() ;
|
|
|
|
virtual BYTE *GetBuffer() ;
|
|
BOOL SetBufferSize(INT iBufferSize) ;
|
|
VOID Reset(INT iBaseNumber = 0) ;
|
|
BOOL FreezeCountup(BOOL fFreeze) { m_fFreeze = fFreeze ; return TRUE ; }
|
|
BOOL IsCountupFrozen() { return m_fFreeze ; }
|
|
|
|
enum { DEF_DATABUFFERSIZE = 1024,
|
|
MIN_BUFFERSIZE = 100,
|
|
MAX_BUFFERSIZE = 65504 // max UDP is 65507, aligned on
|
|
// DWORD boundary is 65504
|
|
} ;
|
|
} ;
|
|
|
|
//==============================================================================
|
|
//
|
|
// Class: CDataString
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
// Description: CData derivative to hold a regular null-terminated
|
|
// string.
|
|
//
|
|
// Public methods:
|
|
// Set() sets the content
|
|
// GetBuffer() retrieves the null-terminated string
|
|
// GetBufferSize() returns the length of the string,
|
|
// excluding the null-terminator
|
|
//
|
|
// Public properties:
|
|
// - none -
|
|
//
|
|
// 9/4/1997
|
|
// mgates
|
|
//
|
|
//==============================================================================
|
|
class CDataString : public CData
|
|
{
|
|
CString m_strBuffer ;
|
|
|
|
// P U B L I C
|
|
|
|
public :
|
|
|
|
CDataString() { ; }
|
|
CDataString(CString &strBuffer) : m_strBuffer(strBuffer) { ; }
|
|
CDataString(const char *szBuffer) : m_strBuffer(szBuffer) { ; }
|
|
~CDataString() ;
|
|
|
|
BOOL Set(CString &strBuffer) ;
|
|
BOOL Set(const char *szBuffer) ;
|
|
|
|
BYTE *GetBuffer() { return (BYTE *) m_strBuffer.GetBuffer(0) ; }
|
|
INT GetBufferSize() { return m_strBuffer.GetLength() ; }
|
|
} ;
|
|
|
|
#endif // DATA_H
|