diff options
Diffstat (limited to 'primedev/core/tier0.h')
-rw-r--r-- | primedev/core/tier0.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/primedev/core/tier0.h b/primedev/core/tier0.h new file mode 100644 index 00000000..cc9af39e --- /dev/null +++ b/primedev/core/tier0.h @@ -0,0 +1,63 @@ +#pragma once + +class IMemAlloc +{ +public: + struct VTable + { + void* unknown[1]; // alloc debug + void* (*Alloc)(IMemAlloc* memAlloc, size_t nSize); + void* unknown2[1]; // realloc debug + void* (*Realloc)(IMemAlloc* memAlloc, void* pMem, size_t nSize); + void* unknown3[1]; // free #1 + void (*Free)(IMemAlloc* memAlloc, void* pMem); + void* unknown4[2]; // nullsubs, maybe CrtSetDbgFlag + size_t (*GetSize)(IMemAlloc* memAlloc, void* pMem); + void* unknown5[9]; // they all do literally nothing + void (*DumpStats)(IMemAlloc* memAlloc); + void (*DumpStatsFileBase)(IMemAlloc* memAlloc, const char* pchFileBase); + void* unknown6[4]; + int (*heapchk)(IMemAlloc* memAlloc); + }; + + VTable* m_vtable; +}; + +class CCommandLine +{ +public: + // based on the defs in the 2013 source sdk, but for some reason has an extra function (may be another CreateCmdLine overload?) + // these seem to line up with what they should be though + virtual void CreateCmdLine(const char* commandline) = 0; + virtual void CreateCmdLine(int argc, char** argv) = 0; + virtual void unknown() = 0; + virtual const char* GetCmdLine(void) const = 0; + + virtual const char* CheckParm(const char* psz, const char** ppszValue = 0) const = 0; + virtual void RemoveParm() const = 0; + virtual void AppendParm(const char* pszParm, const char* pszValues) = 0; + + virtual const char* ParmValue(const char* psz, const char* pDefaultVal = 0) const = 0; + virtual int ParmValue(const char* psz, int nDefaultVal) const = 0; + virtual float ParmValue(const char* psz, float flDefaultVal) const = 0; + + virtual int ParmCount() const = 0; + virtual int FindParm(const char* psz) const = 0; + virtual const char* GetParm(int nIndex) const = 0; + virtual void SetParm(int nIndex, char const* pParm) = 0; + + // virtual const char** GetParms() const {} +}; + +extern IMemAlloc* g_pMemAllocSingleton; + +typedef CCommandLine* (*CommandLineType)(); +extern CommandLineType CommandLine; + +typedef double (*Plat_FloatTimeType)(); +extern Plat_FloatTimeType Plat_FloatTime; + +typedef bool (*ThreadInServerFrameThreadType)(); +extern ThreadInServerFrameThreadType ThreadInServerFrameThread; + +void TryCreateGlobalMemAlloc(); |