mirror of
https://github.com/R2Northstar/NorthstarLauncher
synced 2026-08-23 20:26:04 -04:00
36 lines
1.3 KiB
C++
36 lines
1.3 KiB
C++
#include "tier0.h"
|
|
|
|
// use the Tier0 namespace for tier0 funcs
|
|
namespace Tier0
|
|
{
|
|
IMemAlloc* g_pMemAllocSingleton;
|
|
|
|
ErrorType Error;
|
|
CommandLineType CommandLine;
|
|
Plat_FloatTimeType Plat_FloatTime;
|
|
ThreadInServerFrameThreadType ThreadInServerFrameThread;
|
|
} // namespace Tier0
|
|
|
|
typedef Tier0::IMemAlloc* (*CreateGlobalMemAllocType)();
|
|
CreateGlobalMemAllocType CreateGlobalMemAlloc;
|
|
|
|
// needs to be a seperate function, since memalloc.cpp calls it
|
|
void TryCreateGlobalMemAlloc()
|
|
{
|
|
// init memalloc stuff
|
|
CreateGlobalMemAlloc =
|
|
reinterpret_cast<CreateGlobalMemAllocType>(GetProcAddress(GetModuleHandleA("tier0.dll"), "CreateGlobalMemAlloc"));
|
|
Tier0::g_pMemAllocSingleton = CreateGlobalMemAlloc(); // if it already exists, this returns the preexisting IMemAlloc instance
|
|
}
|
|
|
|
ON_DLL_LOAD("tier0.dll", Tier0GameFuncs, (CModule module))
|
|
{
|
|
// shouldn't be necessary, but do this just in case
|
|
TryCreateGlobalMemAlloc();
|
|
|
|
// setup tier0 funcs
|
|
Tier0::Error = module.GetExport("Error").RCast<Tier0::ErrorType>();
|
|
Tier0::CommandLine = module.GetExport("CommandLine").RCast<Tier0::CommandLineType>();
|
|
Tier0::Plat_FloatTime = module.GetExport("Plat_FloatTime").RCast<Tier0::Plat_FloatTimeType>();
|
|
Tier0::ThreadInServerFrameThread = module.GetExport("ThreadInServerFrameThread").RCast<Tier0::ThreadInServerFrameThreadType>();
|
|
}
|