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.
176 lines
3.7 KiB
C++
176 lines
3.7 KiB
C++
// LabRatDoc.h : interface of the CLabRatDoc class
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
#if !defined (LABRATDOC_HPP)
|
|
# define LABRATDOC_HPP
|
|
|
|
class CObarrayHolder;
|
|
class CLabRatDoc;
|
|
|
|
|
|
#include "LoadingLogDlg.h"
|
|
#include "storage.hpp"
|
|
#include "traceline.hpp"
|
|
|
|
|
|
|
|
extern Logical BigEndian;
|
|
|
|
|
|
class CObjString : public CObject
|
|
{
|
|
|
|
|
|
public:
|
|
CString name;
|
|
|
|
CObjString(char *value)
|
|
{
|
|
name = value;
|
|
CObject::CObject();
|
|
}
|
|
~CObjString(void)
|
|
{
|
|
CObject::~CObject();
|
|
}
|
|
};
|
|
|
|
class ClassIDList : public CObject
|
|
{
|
|
public:
|
|
|
|
CString entityName;
|
|
int messageCount;
|
|
int classID;
|
|
CObArray *messageList;
|
|
|
|
};
|
|
|
|
|
|
|
|
class CObarrayHolder : public CObject
|
|
{
|
|
public:
|
|
|
|
//
|
|
// Each one has it's own heap for the data storage
|
|
//
|
|
|
|
DWORD size;
|
|
|
|
TraceStorage *data;
|
|
CString name;
|
|
int traceType;
|
|
int traceEntryCount;
|
|
CObarrayHolder();
|
|
~CObarrayHolder();
|
|
};
|
|
|
|
class CLabRatDoc : public CDocument
|
|
{
|
|
protected: // create from serialization only
|
|
CLabRatDoc();
|
|
DECLARE_DYNCREATE(CLabRatDoc)
|
|
|
|
// Attributes
|
|
public:
|
|
int traceCount;
|
|
CObArray *dataArray;
|
|
CObList *classIDList;
|
|
Time firstTrace;
|
|
Time lastTrace;
|
|
BOOL stillLoading;
|
|
|
|
long sampleSize;
|
|
|
|
Logical failedOpen;
|
|
|
|
|
|
|
|
|
|
public:
|
|
enum {
|
|
GoingUpFlag= 0,
|
|
GoingDownFlag= 1,
|
|
MarkerFlag= 2,
|
|
IntegerSnapShotFlag= 3,
|
|
ScalarSnapShotFlag= 4,
|
|
Suspend= 5,
|
|
Resume= 6,
|
|
Queing= 7,
|
|
Dispatching= 8
|
|
};
|
|
|
|
enum {
|
|
LogicalTraceType = 0,
|
|
IntegerTraceType = 1,
|
|
ScalarTraceType = 2,
|
|
ReceiverMessageTraceType= 3,
|
|
MarkerTraceType,
|
|
DefaultTraceType
|
|
};
|
|
|
|
// Operations
|
|
public:
|
|
void LoadResource(CArchive& ar, CLoadingLogDlg *dialog_box);
|
|
void LoadOldResource(CArchive& ar, CLoadingLogDlg *dialog_box, int file_start = 0);
|
|
void LoadOnePointZeroResource(CArchive& ar, CLoadingLogDlg *dialog_box);
|
|
void LoadTwoPointZeroResource(CArchive& ar, CLoadingLogDlg *dialog_box);
|
|
|
|
void LoadOnePointZeroResourceBackward(CArchive& ar, CLoadingLogDlg *dialog_box);
|
|
void LoadTwoPointZeroResourceBackward(CArchive& ar, CLoadingLogDlg *dialog_box);
|
|
|
|
void LoadHeader(CArchive& ar, LONG position, CLoadingLogDlg *dialog_box);
|
|
void LoadTracesOne(CArchive& ar, LONG position, CLoadingLogDlg *dialog_box);
|
|
void LoadTracesTwo(CArchive& ar, LONG position, CLoadingLogDlg *dialog_box);
|
|
void LoadMessages(CArchive& ar, LONG position, CLoadingLogDlg *dialog_box, LONG message_size);
|
|
|
|
|
|
void LoadTracesTwo8Byte(CArchive& ar, LONG position, CLoadingLogDlg *dialog_box);
|
|
|
|
|
|
ClassIDList * FindClass(int id);
|
|
|
|
// Overrides
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(CLabRatDoc)
|
|
public:
|
|
virtual BOOL OnNewDocument();
|
|
virtual void Serialize(CArchive& ar);
|
|
virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
|
|
virtual void DeleteContents();
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Implementation
|
|
public:
|
|
virtual ~CLabRatDoc();
|
|
#ifdef _DEBUG
|
|
virtual void AssertValid() const;
|
|
virtual void Dump(CDumpContext& dc) const;
|
|
#endif
|
|
|
|
protected:
|
|
|
|
// Generated message map functions
|
|
protected:
|
|
//{{AFX_MSG(CLabRatDoc)
|
|
// NOTE - the ClassWizard will add and remove member functions here.
|
|
// DO NOT EDIT what you see in these blocks of generated code !
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
|
|
#define SKIPPY_CAST(Type,var) (*((Type*)&(var)))
|
|
|
|
void BigEndianConvert(LONG &value);
|
|
void BigEndianConvert(WORD &value);
|
|
void BigEndianConvert(DWORD &value);
|
|
void BigEndianConvert(int &value);
|
|
void BigEndianConvert(float &value);
|
|
void BigEndianConvert(BYTE &value);
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
#endif |