mirror of
https://git.rip/DMCA_FUCKER/re3.git
synced 2024-07-03 18:17:07 +00:00
51 lines
1.2 KiB
C
51 lines
1.2 KiB
C
|
#pragma once
|
||
|
|
||
|
namespace base
|
||
|
{
|
||
|
// TODO(LCS): add actual struct fields
|
||
|
|
||
|
struct sChunkHeader;
|
||
|
struct sDataBlock;
|
||
|
struct sFileLine;
|
||
|
|
||
|
class cRelocatableChunk
|
||
|
{
|
||
|
public:
|
||
|
void* Load(void* data, bool bShrink);
|
||
|
void* Load(const char* name, bool bShrink);
|
||
|
void Fixup(const sChunkHeader& header, void* data);
|
||
|
void Fixup(void* data);
|
||
|
void* Shrink(const sChunkHeader& header, void* data);
|
||
|
void* Shrink(void* data);
|
||
|
};
|
||
|
|
||
|
class cRelocatableChunkClassInfo
|
||
|
{
|
||
|
public:
|
||
|
cRelocatableChunkClassInfo(const char* class_name, const void* pVmt, int size);
|
||
|
};
|
||
|
|
||
|
class cRelocatableChunkWriter
|
||
|
{
|
||
|
public:
|
||
|
cRelocatableChunkWriter();
|
||
|
~cRelocatableChunkWriter();
|
||
|
|
||
|
void AddPatch(void* addr);
|
||
|
void AddPatchWithInfo(const char* str, int unk, void* addr);
|
||
|
void AllocateRaw(void* addr, uint32 size, uint32 align, bool a5 = false, bool a6 = false);
|
||
|
|
||
|
void Clear();
|
||
|
void Class(void* ptr, const cRelocatableChunkClassInfo& classInfo);
|
||
|
void DebugFileLine(void*);
|
||
|
|
||
|
void PatchFunc(void* ptr);
|
||
|
|
||
|
bool IsAllocated(void* addr);
|
||
|
|
||
|
void Reserve(int, int);
|
||
|
|
||
|
void Save(const char* filename, uint32 a3, uint32 a4, bool a5);
|
||
|
void Save(void* file, uint32 a3, uint32 a4, bool a5, sChunkHeader* pHeader);
|
||
|
};
|
||
|
};
|