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.
36 lines
1.1 KiB
C++
36 lines
1.1 KiB
C++
// Span.h: interface for the Span class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_SPAN_H__2D007EAB_A54F_4563_8763_33EBBC0DF18E__INCLUDED_)
|
|
#define AFX_SPAN_H__2D007EAB_A54F_4563_8763_33EBBC0DF18E__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
#include "Insert.h"
|
|
#include "Delete.h"
|
|
|
|
class Span
|
|
{
|
|
protected:
|
|
DWORD Size;
|
|
BYTE *Buffer;
|
|
Span *Next,*Prev,*MappedTo;
|
|
void InsertNodeAfter(Span *span);
|
|
int FindLargestSpan(Span *comspan,DWORD *pos1,DWORD *pos2,DWORD minsize);
|
|
|
|
public:
|
|
void DeleteChildren();
|
|
Span(BYTE * loc,DWORD size,Span *mapto=NULL) {Buffer=loc; Size=size; MappedTo=Next=Prev=NULL; MappedTo=mapto;}
|
|
void SpanInfo(CString &fstr,BYTE *base1,BYTE *base2);
|
|
Span *AddSpanAt(BYTE *loc,DWORD size);
|
|
void BuildOps(Span *sspan,CPatchOperation *OpList,const BYTE *base1,const BYTE *base2);
|
|
Span *GetNextUnMapped();
|
|
int MapLargestSpan(Span *comspan,DWORD minsize=64);
|
|
virtual ~Span();
|
|
|
|
};
|
|
|
|
#endif // !defined(AFX_SPAN_H__2D007EAB_A54F_4563_8763_33EBBC0DF18E__INCLUDED_)
|