mirror of
https://github.com/JezuzLizard/T4SP-Server-Plugin.git
synced 2025-04-19 21:22:54 +00:00
Massively improve bootup times
This commit is contained in:
parent
5d0e5e4227
commit
df2440a3ba
@ -25,25 +25,6 @@ namespace re_cscr_animtree
|
||||
utils::hook::detour Scr_FindAnimTree_hook;
|
||||
utils::hook::detour Scr_FindAnim_hook;
|
||||
|
||||
void* AnimTreeCompileError_original;
|
||||
void* GetAnimTreeParseProperties_original;
|
||||
void* Scr_EmitAnimationInternal_original;
|
||||
void* AnimTreeParseInternal_original;
|
||||
void* Scr_AnimTreeParse_original;
|
||||
void* Scr_GetAnimTreeSize_original;
|
||||
void* ConnectScriptToAnim_original;
|
||||
void* Scr_GetAnimsIndex_original;
|
||||
void* Scr_CreateAnimationTree_original;
|
||||
void* Scr_CheckAnimsDefined_original;
|
||||
void* Scr_PrecacheAnimationTree_original;
|
||||
void* Scr_UsingTreeInternal_original;
|
||||
void* Scr_UsingTree_original;
|
||||
void* Scr_SetAnimTreeConfigstring_original;
|
||||
void* Scr_LoadAnimTreeInternal_original;
|
||||
void* Scr_LoadAnimTreeAtIndex_original;
|
||||
void* Scr_FindAnimTree_original;
|
||||
void* Scr_FindAnim_original;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
@ -68,7 +49,7 @@ namespace re_cscr_animtree
|
||||
void Scr_EmitAnimationInternal_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, const char * pos, unsigned int animName, unsigned int names)
|
||||
{
|
||||
#ifdef RE_CSCR_ANIMTREE_USE_WRAPPERS
|
||||
game::Scr_EmitAnimationInternal(inst, pos, animName, names, Scr_EmitAnimationInternal_original);
|
||||
game::Scr_EmitAnimationInternal(inst, pos, animName, names, Scr_EmitAnimationInternal_hook.get_original());
|
||||
#else
|
||||
cscr_animtree::Scr_EmitAnimationInternal(inst, pos, animName, names);
|
||||
#endif
|
||||
@ -98,7 +79,7 @@ namespace re_cscr_animtree
|
||||
void Scr_AnimTreeParse_call(game::scriptInstance_t inst, const char * pos, [[maybe_unused]] void* caller_addr, unsigned int parentNode, unsigned int names)
|
||||
{
|
||||
#ifdef RE_CSCR_ANIMTREE_USE_WRAPPERS
|
||||
game::Scr_AnimTreeParse(inst, pos, parentNode, names, Scr_AnimTreeParse_original);
|
||||
game::Scr_AnimTreeParse(inst, pos, parentNode, names, Scr_AnimTreeParse_hook.get_original());
|
||||
#else
|
||||
cscr_animtree::Scr_AnimTreeParse(inst, pos, parentNode, names);
|
||||
#endif
|
||||
@ -129,7 +110,7 @@ namespace re_cscr_animtree
|
||||
void ConnectScriptToAnim_call(unsigned int name, unsigned int names, [[maybe_unused]] void* caller_addr, game::scriptInstance_t inst, int index, unsigned int filename, int treeIndex)
|
||||
{
|
||||
#ifdef RE_CSCR_ANIMTREE_USE_WRAPPERS
|
||||
game::ConnectScriptToAnim(name, names, inst, index, filename, treeIndex, ConnectScriptToAnim_original);
|
||||
game::ConnectScriptToAnim(name, names, inst, index, filename, treeIndex, ConnectScriptToAnim_hook.get_original());
|
||||
#else
|
||||
cscr_animtree::ConnectScriptToAnim(name, names, inst, index, filename, treeIndex);
|
||||
#endif
|
||||
@ -151,7 +132,7 @@ namespace re_cscr_animtree
|
||||
int Scr_GetAnimsIndex_call(game::XAnim_s * anim, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_ANIMTREE_USE_WRAPPERS
|
||||
return game::Scr_GetAnimsIndex(anim, Scr_GetAnimsIndex_original);
|
||||
return game::Scr_GetAnimsIndex(anim, Scr_GetAnimsIndex_hook.get_original());
|
||||
#else
|
||||
return cscr_animtree::Scr_GetAnimsIndex(anim);
|
||||
#endif
|
||||
@ -181,7 +162,7 @@ namespace re_cscr_animtree
|
||||
void Scr_CheckAnimsDefined_call(unsigned int names, game::scriptInstance_t a2, [[maybe_unused]] void* caller_addr, unsigned int filename)
|
||||
{
|
||||
#ifdef RE_CSCR_ANIMTREE_USE_WRAPPERS
|
||||
game::Scr_CheckAnimsDefined(names, a2, filename, Scr_CheckAnimsDefined_original);
|
||||
game::Scr_CheckAnimsDefined(names, a2, filename, Scr_CheckAnimsDefined_hook.get_original());
|
||||
#else
|
||||
cscr_animtree::Scr_CheckAnimsDefined(names, a2, filename);
|
||||
#endif
|
||||
@ -212,7 +193,7 @@ namespace re_cscr_animtree
|
||||
unsigned int Scr_UsingTreeInternal_call(const char * filename, int user, [[maybe_unused]] void* caller_addr, game::scriptInstance_t inst, unsigned int * index)
|
||||
{
|
||||
#ifdef RE_CSCR_ANIMTREE_USE_WRAPPERS
|
||||
return game::Scr_UsingTreeInternal(filename, user, inst, index, Scr_UsingTreeInternal_original);
|
||||
return game::Scr_UsingTreeInternal(filename, user, inst, index, Scr_UsingTreeInternal_hook.get_original());
|
||||
#else
|
||||
return cscr_animtree::Scr_UsingTreeInternal(filename, user, inst, index);
|
||||
#endif
|
||||
@ -234,7 +215,7 @@ namespace re_cscr_animtree
|
||||
void Scr_UsingTree_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr, const char * filename, unsigned int sourcePos)
|
||||
{
|
||||
#ifdef RE_CSCR_ANIMTREE_USE_WRAPPERS
|
||||
game::Scr_UsingTree(a1, filename, sourcePos, Scr_UsingTree_original);
|
||||
game::Scr_UsingTree(a1, filename, sourcePos, Scr_UsingTree_hook.get_original());
|
||||
#else
|
||||
cscr_animtree::Scr_UsingTree(a1, filename, sourcePos);
|
||||
#endif
|
||||
@ -264,7 +245,7 @@ namespace re_cscr_animtree
|
||||
bool Scr_LoadAnimTreeInternal_call(const char * animtreeName, game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, unsigned int parentNode, unsigned int names)
|
||||
{
|
||||
#ifdef RE_CSCR_ANIMTREE_USE_WRAPPERS
|
||||
return game::Scr_LoadAnimTreeInternal(animtreeName, inst, parentNode, names, Scr_LoadAnimTreeInternal_original);
|
||||
return game::Scr_LoadAnimTreeInternal(animtreeName, inst, parentNode, names, Scr_LoadAnimTreeInternal_hook.get_original());
|
||||
#else
|
||||
return cscr_animtree::Scr_LoadAnimTreeInternal(animtreeName, inst, parentNode, names);
|
||||
#endif
|
||||
@ -286,7 +267,7 @@ namespace re_cscr_animtree
|
||||
void Scr_LoadAnimTreeAtIndex_call(game::scriptInstance_t inst, int user, [[maybe_unused]] void* caller_addr, unsigned int index, void *(__cdecl * Alloc)(int), int modCheckSum)
|
||||
{
|
||||
#ifdef RE_CSCR_ANIMTREE_USE_WRAPPERS
|
||||
return game::Scr_LoadAnimTreeAtIndex(inst, user, index, Alloc, modCheckSum, Scr_LoadAnimTreeAtIndex_original);
|
||||
return game::Scr_LoadAnimTreeAtIndex(inst, user, index, Alloc, modCheckSum, Scr_LoadAnimTreeAtIndex_hook.get_original());
|
||||
#else
|
||||
return cscr_animtree::Scr_LoadAnimTreeAtIndex(inst, user, index, Alloc, modCheckSum);
|
||||
#endif
|
||||
@ -308,7 +289,7 @@ namespace re_cscr_animtree
|
||||
game::scr_animtree_t Scr_FindAnimTree_call(const char * filename, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_ANIMTREE_USE_WRAPPERS
|
||||
return game::Scr_FindAnimTree(filename, Scr_FindAnimTree_original);
|
||||
return game::Scr_FindAnimTree(filename, Scr_FindAnimTree_hook.get_original());
|
||||
#else
|
||||
return cscr_animtree::Scr_FindAnimTree(filename);
|
||||
#endif
|
||||
@ -329,7 +310,7 @@ namespace re_cscr_animtree
|
||||
void Scr_FindAnim_call(const char * animName, [[maybe_unused]] void* caller_addr, game::scr_anim_s a2, int user)
|
||||
{
|
||||
#ifdef RE_CSCR_ANIMTREE_USE_WRAPPERS
|
||||
game::Scr_FindAnim(animName, a2, user, Scr_FindAnim_original);
|
||||
game::Scr_FindAnim(animName, a2, user, Scr_FindAnim_hook.get_original());
|
||||
#else
|
||||
cscr_animtree::Scr_FindAnim(animName, a2, user);
|
||||
#endif
|
||||
@ -353,44 +334,29 @@ namespace re_cscr_animtree
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
AnimTreeCompileError_hook.create(game::AnimTreeCompileError.get(), AnimTreeCompileError_stub);
|
||||
GetAnimTreeParseProperties_hook.create(game::GetAnimTreeParseProperties.get(), GetAnimTreeParseProperties_stub);
|
||||
Scr_EmitAnimationInternal_hook.create(game::Scr_EmitAnimationInternal_ADDR(), Scr_EmitAnimationInternal_stub);
|
||||
AnimTreeParseInternal_hook.create(game::AnimTreeParseInternal.get(), AnimTreeParseInternal_stub);
|
||||
Scr_AnimTreeParse_hook.create(game::Scr_AnimTreeParse_ADDR(), Scr_AnimTreeParse_stub);
|
||||
Scr_GetAnimTreeSize_hook.create(game::Scr_GetAnimTreeSize.get(), Scr_GetAnimTreeSize_stub);
|
||||
ConnectScriptToAnim_hook.create(game::ConnectScriptToAnim_ADDR(), ConnectScriptToAnim_stub);
|
||||
Scr_GetAnimsIndex_hook.create(game::Scr_GetAnimsIndex_ADDR(), Scr_GetAnimsIndex_stub);
|
||||
Scr_CreateAnimationTree_hook.create(game::Scr_CreateAnimationTree.get(), Scr_CreateAnimationTree_stub);
|
||||
Scr_CheckAnimsDefined_hook.create(game::Scr_CheckAnimsDefined_ADDR(), Scr_CheckAnimsDefined_stub);
|
||||
Scr_PrecacheAnimationTree_hook.create(game::Scr_PrecacheAnimationTree.get(), Scr_PrecacheAnimationTree_stub);
|
||||
Scr_UsingTreeInternal_hook.create(game::Scr_UsingTreeInternal_ADDR(), Scr_UsingTreeInternal_stub);
|
||||
Scr_UsingTree_hook.create(game::Scr_UsingTree_ADDR(), Scr_UsingTree_stub);
|
||||
Scr_SetAnimTreeConfigstring_hook.create(game::Scr_SetAnimTreeConfigstring.get(), Scr_SetAnimTreeConfigstring_stub);
|
||||
Scr_LoadAnimTreeInternal_hook.create(game::Scr_LoadAnimTreeInternal_ADDR(), Scr_LoadAnimTreeInternal_stub);
|
||||
Scr_LoadAnimTreeAtIndex_hook.create(game::Scr_LoadAnimTreeAtIndex_ADDR(), Scr_LoadAnimTreeAtIndex_stub);
|
||||
Scr_FindAnimTree_hook.create(game::Scr_FindAnimTree_ADDR(), Scr_FindAnimTree_stub);
|
||||
Scr_FindAnim_hook.create(game::Scr_FindAnim_ADDR(), Scr_FindAnim_stub);
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_ANIMTREE_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
|
||||
//Original hook function addresses
|
||||
AnimTreeCompileError_original = AnimTreeCompileError_hook.get_original();
|
||||
GetAnimTreeParseProperties_original = GetAnimTreeParseProperties_hook.get_original();
|
||||
Scr_EmitAnimationInternal_original = Scr_EmitAnimationInternal_hook.get_original();
|
||||
AnimTreeParseInternal_original = AnimTreeParseInternal_hook.get_original();
|
||||
Scr_AnimTreeParse_original = Scr_AnimTreeParse_hook.get_original();
|
||||
Scr_GetAnimTreeSize_original = Scr_GetAnimTreeSize_hook.get_original();
|
||||
ConnectScriptToAnim_original = ConnectScriptToAnim_hook.get_original();
|
||||
Scr_GetAnimsIndex_original = Scr_GetAnimsIndex_hook.get_original();
|
||||
Scr_CreateAnimationTree_original = Scr_CreateAnimationTree_hook.get_original();
|
||||
Scr_CheckAnimsDefined_original = Scr_CheckAnimsDefined_hook.get_original();
|
||||
Scr_PrecacheAnimationTree_original = Scr_PrecacheAnimationTree_hook.get_original();
|
||||
Scr_UsingTreeInternal_original = Scr_UsingTreeInternal_hook.get_original();
|
||||
Scr_UsingTree_original = Scr_UsingTree_hook.get_original();
|
||||
Scr_SetAnimTreeConfigstring_original = Scr_SetAnimTreeConfigstring_hook.get_original();
|
||||
Scr_LoadAnimTreeInternal_original = Scr_LoadAnimTreeInternal_hook.get_original();
|
||||
Scr_LoadAnimTreeAtIndex_original = Scr_LoadAnimTreeAtIndex_hook.get_original();
|
||||
Scr_FindAnimTree_original = Scr_FindAnimTree_hook.get_original();
|
||||
Scr_FindAnim_original = Scr_FindAnim_hook.get_original();
|
||||
AnimTreeCompileError_hook.create(game::AnimTreeCompileError.get(), AnimTreeCompileError_stub, quick);
|
||||
GetAnimTreeParseProperties_hook.create(game::GetAnimTreeParseProperties.get(), GetAnimTreeParseProperties_stub, quick);
|
||||
Scr_EmitAnimationInternal_hook.create(game::Scr_EmitAnimationInternal_ADDR(), Scr_EmitAnimationInternal_stub, quick);
|
||||
AnimTreeParseInternal_hook.create(game::AnimTreeParseInternal.get(), AnimTreeParseInternal_stub, quick);
|
||||
Scr_AnimTreeParse_hook.create(game::Scr_AnimTreeParse_ADDR(), Scr_AnimTreeParse_stub, quick);
|
||||
Scr_GetAnimTreeSize_hook.create(game::Scr_GetAnimTreeSize.get(), Scr_GetAnimTreeSize_stub, quick);
|
||||
ConnectScriptToAnim_hook.create(game::ConnectScriptToAnim_ADDR(), ConnectScriptToAnim_stub, quick);
|
||||
Scr_GetAnimsIndex_hook.create(game::Scr_GetAnimsIndex_ADDR(), Scr_GetAnimsIndex_stub, quick);
|
||||
Scr_CreateAnimationTree_hook.create(game::Scr_CreateAnimationTree.get(), Scr_CreateAnimationTree_stub, quick);
|
||||
Scr_CheckAnimsDefined_hook.create(game::Scr_CheckAnimsDefined_ADDR(), Scr_CheckAnimsDefined_stub, quick);
|
||||
Scr_PrecacheAnimationTree_hook.create(game::Scr_PrecacheAnimationTree.get(), Scr_PrecacheAnimationTree_stub, quick);
|
||||
Scr_UsingTreeInternal_hook.create(game::Scr_UsingTreeInternal_ADDR(), Scr_UsingTreeInternal_stub, quick);
|
||||
Scr_UsingTree_hook.create(game::Scr_UsingTree_ADDR(), Scr_UsingTree_stub, quick);
|
||||
Scr_SetAnimTreeConfigstring_hook.create(game::Scr_SetAnimTreeConfigstring.get(), Scr_SetAnimTreeConfigstring_stub, quick);
|
||||
Scr_LoadAnimTreeInternal_hook.create(game::Scr_LoadAnimTreeInternal_ADDR(), Scr_LoadAnimTreeInternal_stub, quick);
|
||||
Scr_LoadAnimTreeAtIndex_hook.create(game::Scr_LoadAnimTreeAtIndex_ADDR(), Scr_LoadAnimTreeAtIndex_stub, quick);
|
||||
Scr_FindAnimTree_hook.create(game::Scr_FindAnimTree_ADDR(), Scr_FindAnimTree_stub, quick);
|
||||
Scr_FindAnim_hook.create(game::Scr_FindAnim_ADDR(), Scr_FindAnim_stub, quick);
|
||||
}
|
||||
|
||||
private:
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -20,26 +20,12 @@ namespace re_cscr_main
|
||||
utils::hook::detour Scr_EndLoadAnimTrees_hook;
|
||||
utils::hook::detour Scr_FreeScripts_hook;
|
||||
|
||||
void* Scr_IsIdentifier_original;
|
||||
void* Scr_GetFunctionHandle_original;
|
||||
void* SL_TransferToCanonicalString_original;
|
||||
void* SL_GetCanonicalString_original;
|
||||
void* Scr_BeginLoadScripts_original;
|
||||
void* Scr_BeginLoadAnimTrees_original;
|
||||
void* Scr_ScanFile_original;
|
||||
void* Scr_LoadScriptInternal_original;
|
||||
void* Scr_LoadScript_original;
|
||||
void* Scr_EndLoadScripts_original;
|
||||
void* Scr_PrecacheAnimTrees_original;
|
||||
void* Scr_EndLoadAnimTrees_original;
|
||||
void* Scr_FreeScripts_original;
|
||||
|
||||
namespace
|
||||
{
|
||||
bool Scr_IsIdentifier_call(char * token, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_MAIN_USE_WRAPPERS
|
||||
return game::Scr_IsIdentifier(token, Scr_IsIdentifier_original);
|
||||
return game::Scr_IsIdentifier(token, Scr_IsIdentifier_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_IsIdentifier(token);
|
||||
#endif
|
||||
@ -60,7 +46,7 @@ namespace re_cscr_main
|
||||
unsigned int Scr_GetFunctionHandle_call(const char * file, game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, const char * handle)
|
||||
{
|
||||
#ifdef RE_CSCR_MAIN_USE_WRAPPERS
|
||||
return game::Scr_GetFunctionHandle(file, inst, handle, Scr_GetFunctionHandle_original);
|
||||
return game::Scr_GetFunctionHandle(file, inst, handle, Scr_GetFunctionHandle_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetFunctionHandle(file, inst, handle);
|
||||
#endif
|
||||
@ -82,7 +68,7 @@ namespace re_cscr_main
|
||||
unsigned int SL_TransferToCanonicalString_call(game::scriptInstance_t inst, unsigned int stringValue, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_MAIN_USE_WRAPPERS
|
||||
return game::SL_TransferToCanonicalString(inst, stringValue, SL_TransferToCanonicalString_original);
|
||||
return game::SL_TransferToCanonicalString(inst, stringValue, SL_TransferToCanonicalString_hook.get_original());
|
||||
#else
|
||||
return codsrc::SL_TransferToCanonicalString(inst, stringValue);
|
||||
#endif
|
||||
@ -104,7 +90,7 @@ namespace re_cscr_main
|
||||
unsigned int SL_GetCanonicalString_call(char * token, game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_MAIN_USE_WRAPPERS
|
||||
return game::SL_GetCanonicalString(token, inst, SL_GetCanonicalString_original);
|
||||
return game::SL_GetCanonicalString(token, inst, SL_GetCanonicalString_hook.get_original());
|
||||
#else
|
||||
return codsrc::SL_GetCanonicalString(token, inst);
|
||||
#endif
|
||||
@ -126,7 +112,7 @@ namespace re_cscr_main
|
||||
void Scr_BeginLoadScripts_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, int user)
|
||||
{
|
||||
#ifdef RE_CSCR_MAIN_USE_WRAPPERS
|
||||
game::Scr_BeginLoadScripts(inst, user, Scr_BeginLoadScripts_original);
|
||||
game::Scr_BeginLoadScripts(inst, user, Scr_BeginLoadScripts_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_BeginLoadScripts(inst, user);
|
||||
#endif
|
||||
@ -147,7 +133,7 @@ namespace re_cscr_main
|
||||
void Scr_BeginLoadAnimTrees_call(game::scriptInstance_t inst, int user, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_MAIN_USE_WRAPPERS
|
||||
game::Scr_BeginLoadAnimTrees(inst, user, Scr_BeginLoadAnimTrees_original);
|
||||
game::Scr_BeginLoadAnimTrees(inst, user, Scr_BeginLoadAnimTrees_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_BeginLoadAnimTrees(inst, user);
|
||||
#endif
|
||||
@ -169,7 +155,7 @@ namespace re_cscr_main
|
||||
int Scr_ScanFile_call(int max_size, [[maybe_unused]] void* caller_addr, char * buf)
|
||||
{
|
||||
#ifdef RE_CSCR_MAIN_USE_WRAPPERS
|
||||
return game::Scr_ScanFile(max_size, buf, Scr_ScanFile_original);
|
||||
return game::Scr_ScanFile(max_size, buf, Scr_ScanFile_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_ScanFile(max_size, buf);
|
||||
#endif
|
||||
@ -199,7 +185,7 @@ namespace re_cscr_main
|
||||
unsigned int Scr_LoadScript_call(const char * file, game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_MAIN_USE_WRAPPERS
|
||||
return game::Scr_LoadScript(file, inst, Scr_LoadScript_original);
|
||||
return game::Scr_LoadScript(file, inst, Scr_LoadScript_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_LoadScript(file, inst);
|
||||
#endif
|
||||
@ -248,7 +234,7 @@ namespace re_cscr_main
|
||||
void Scr_FreeScripts_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_MAIN_USE_WRAPPERS
|
||||
game::Scr_FreeScripts(inst, Scr_FreeScripts_original);
|
||||
game::Scr_FreeScripts(inst, Scr_FreeScripts_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_FreeScripts(inst);
|
||||
#endif
|
||||
@ -272,34 +258,24 @@ namespace re_cscr_main
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
Scr_IsIdentifier_hook.create(game::Scr_IsIdentifier_ADDR(), Scr_IsIdentifier_stub);
|
||||
Scr_GetFunctionHandle_hook.create(game::Scr_GetFunctionHandle_ADDR(), Scr_GetFunctionHandle_stub);
|
||||
SL_TransferToCanonicalString_hook.create(game::SL_TransferToCanonicalString_ADDR(), SL_TransferToCanonicalString_stub);
|
||||
SL_GetCanonicalString_hook.create(game::SL_GetCanonicalString_ADDR(), SL_GetCanonicalString_stub);
|
||||
Scr_BeginLoadScripts_hook.create(game::Scr_BeginLoadScripts_ADDR(), Scr_BeginLoadScripts_stub);
|
||||
Scr_BeginLoadAnimTrees_hook.create(game::Scr_BeginLoadAnimTrees_ADDR(), Scr_BeginLoadAnimTrees_stub);
|
||||
Scr_ScanFile_hook.create(game::Scr_ScanFile_ADDR(), Scr_ScanFile_stub);
|
||||
Scr_LoadScriptInternal_hook.create(game::Scr_LoadScriptInternal.get(), Scr_LoadScriptInternal_stub);
|
||||
Scr_LoadScript_hook.create(game::Scr_LoadScript_ADDR(), Scr_LoadScript_stub);
|
||||
Scr_EndLoadScripts_hook.create(game::Scr_EndLoadScripts.get(), Scr_EndLoadScripts_stub);
|
||||
Scr_PrecacheAnimTrees_hook.create(game::Scr_PrecacheAnimTrees.get(), Scr_PrecacheAnimTrees_stub);
|
||||
Scr_EndLoadAnimTrees_hook.create(game::Scr_EndLoadAnimTrees.get(), Scr_EndLoadAnimTrees_stub);
|
||||
Scr_FreeScripts_hook.create(game::Scr_FreeScripts_ADDR(), Scr_FreeScripts_stub);
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_MAIN_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
|
||||
//Original hook function addresses
|
||||
Scr_IsIdentifier_original = Scr_IsIdentifier_hook.get_original();
|
||||
Scr_GetFunctionHandle_original = Scr_GetFunctionHandle_hook.get_original();
|
||||
SL_TransferToCanonicalString_original = SL_TransferToCanonicalString_hook.get_original();
|
||||
SL_GetCanonicalString_original = SL_GetCanonicalString_hook.get_original();
|
||||
Scr_BeginLoadScripts_original = Scr_BeginLoadScripts_hook.get_original();
|
||||
Scr_BeginLoadAnimTrees_original = Scr_BeginLoadAnimTrees_hook.get_original();
|
||||
Scr_ScanFile_original = Scr_ScanFile_hook.get_original();
|
||||
Scr_LoadScriptInternal_original = Scr_LoadScriptInternal_hook.get_original();
|
||||
Scr_LoadScript_original = Scr_LoadScript_hook.get_original();
|
||||
Scr_EndLoadScripts_original = Scr_EndLoadScripts_hook.get_original();
|
||||
Scr_PrecacheAnimTrees_original = Scr_PrecacheAnimTrees_hook.get_original();
|
||||
Scr_EndLoadAnimTrees_original = Scr_EndLoadAnimTrees_hook.get_original();
|
||||
Scr_FreeScripts_original = Scr_FreeScripts_hook.get_original();
|
||||
Scr_IsIdentifier_hook.create(game::Scr_IsIdentifier_ADDR(), Scr_IsIdentifier_stub, quick);
|
||||
Scr_GetFunctionHandle_hook.create(game::Scr_GetFunctionHandle_ADDR(), Scr_GetFunctionHandle_stub, quick);
|
||||
SL_TransferToCanonicalString_hook.create(game::SL_TransferToCanonicalString_ADDR(), SL_TransferToCanonicalString_stub, quick);
|
||||
SL_GetCanonicalString_hook.create(game::SL_GetCanonicalString_ADDR(), SL_GetCanonicalString_stub, quick);
|
||||
Scr_BeginLoadScripts_hook.create(game::Scr_BeginLoadScripts_ADDR(), Scr_BeginLoadScripts_stub, quick);
|
||||
Scr_BeginLoadAnimTrees_hook.create(game::Scr_BeginLoadAnimTrees_ADDR(), Scr_BeginLoadAnimTrees_stub, quick);
|
||||
Scr_ScanFile_hook.create(game::Scr_ScanFile_ADDR(), Scr_ScanFile_stub, quick);
|
||||
Scr_LoadScriptInternal_hook.create(game::Scr_LoadScriptInternal.get(), Scr_LoadScriptInternal_stub, quick);
|
||||
Scr_LoadScript_hook.create(game::Scr_LoadScript_ADDR(), Scr_LoadScript_stub, quick);
|
||||
Scr_EndLoadScripts_hook.create(game::Scr_EndLoadScripts.get(), Scr_EndLoadScripts_stub, quick);
|
||||
Scr_PrecacheAnimTrees_hook.create(game::Scr_PrecacheAnimTrees.get(), Scr_PrecacheAnimTrees_stub, quick);
|
||||
Scr_EndLoadAnimTrees_hook.create(game::Scr_EndLoadAnimTrees.get(), Scr_EndLoadAnimTrees_stub, quick);
|
||||
Scr_FreeScripts_hook.create(game::Scr_FreeScripts_ADDR(), Scr_FreeScripts_stub, quick);
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -21,21 +21,6 @@ namespace re_cscr_memorytree
|
||||
utils::hook::detour MT_Alloc_hook;
|
||||
utils::hook::detour MT_Free_hook;
|
||||
|
||||
void* MT_GetSubTreeSize_original;
|
||||
void* MT_DumpTree_original;
|
||||
void* MT_InitBits_original;
|
||||
void* MT_GetScore_original;
|
||||
void* MT_AddMemoryNode_original;
|
||||
void* MT_RemoveMemoryNode_original;
|
||||
void* MT_RemoveHeadMemoryNode_original;
|
||||
void* MT_Init_original;
|
||||
void* MT_Error_original;
|
||||
void* MT_GetSize_original;
|
||||
void* MT_AllocIndex_original;
|
||||
void* MT_FreeIndex_original;
|
||||
void* MT_Alloc_original;
|
||||
void* MT_Free_original;
|
||||
|
||||
namespace
|
||||
{
|
||||
int MT_GetSubTreeSize_stub(game::scriptInstance_t inst, int nodeNum, [[maybe_unused]] void* caller_addr)
|
||||
@ -59,7 +44,7 @@ namespace re_cscr_memorytree
|
||||
void MT_InitBits_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_MEMORYTREE_USE_WRAPPERS
|
||||
game::MT_InitBits(a1, MT_InitBits_original);
|
||||
game::MT_InitBits(a1, MT_InitBits_hook.get_original());
|
||||
#else
|
||||
codsrc::MT_InitBits(a1);
|
||||
#endif
|
||||
@ -80,7 +65,7 @@ namespace re_cscr_memorytree
|
||||
int MT_GetScore_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr, int num)
|
||||
{
|
||||
#ifdef RE_CSCR_MEMORYTREE_USE_WRAPPERS
|
||||
return game::MT_GetScore(a1, num, MT_GetScore_original);
|
||||
return game::MT_GetScore(a1, num, MT_GetScore_hook.get_original());
|
||||
#else
|
||||
return codsrc::MT_GetScore(a1, num);
|
||||
#endif
|
||||
@ -129,7 +114,7 @@ namespace re_cscr_memorytree
|
||||
void MT_Init_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_MEMORYTREE_USE_WRAPPERS
|
||||
game::MT_Init(a1, MT_Init_original);
|
||||
game::MT_Init(a1, MT_Init_hook.get_original());
|
||||
#else
|
||||
codsrc::MT_Init(a1);
|
||||
#endif
|
||||
@ -150,7 +135,7 @@ namespace re_cscr_memorytree
|
||||
void MT_Error_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr, const char* funcName, int numBytes)
|
||||
{
|
||||
#ifdef RE_CSCR_MEMORYTREE_USE_WRAPPERS
|
||||
game::MT_Error(a1, funcName, numBytes, MT_Error_original);
|
||||
game::MT_Error(a1, funcName, numBytes, MT_Error_hook.get_original());
|
||||
#else
|
||||
codsrc::MT_Error(a1, funcName, numBytes);
|
||||
#endif
|
||||
@ -171,7 +156,7 @@ namespace re_cscr_memorytree
|
||||
int MT_GetSize_call(int numBytes, game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_MEMORYTREE_USE_WRAPPERS
|
||||
return game::MT_GetSize(numBytes, inst, MT_GetSize_original);
|
||||
return game::MT_GetSize(numBytes, inst, MT_GetSize_hook.get_original());
|
||||
#else
|
||||
return codsrc::MT_GetSize(numBytes, inst);
|
||||
#endif
|
||||
@ -193,7 +178,7 @@ namespace re_cscr_memorytree
|
||||
unsigned __int16 MT_AllocIndex_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, int size_)
|
||||
{
|
||||
#ifdef RE_CSCR_MEMORYTREE_USE_WRAPPERS
|
||||
return game::MT_AllocIndex(inst, size_, MT_AllocIndex_original);
|
||||
return game::MT_AllocIndex(inst, size_, MT_AllocIndex_hook.get_original());
|
||||
#else
|
||||
return codsrc::MT_AllocIndex(inst, size_);
|
||||
#endif
|
||||
@ -214,7 +199,7 @@ namespace re_cscr_memorytree
|
||||
void MT_FreeIndex_call(int numBytes, [[maybe_unused]] void* caller_addr, game::scriptInstance_t a1, int nodeNum)
|
||||
{
|
||||
#ifdef RE_CSCR_MEMORYTREE_USE_WRAPPERS
|
||||
game::MT_FreeIndex(numBytes, a1, nodeNum, MT_FreeIndex_original);
|
||||
game::MT_FreeIndex(numBytes, a1, nodeNum, MT_FreeIndex_hook.get_original());
|
||||
#else
|
||||
codsrc::MT_FreeIndex(numBytes, a1, nodeNum);
|
||||
#endif
|
||||
@ -235,7 +220,7 @@ namespace re_cscr_memorytree
|
||||
char* MT_Alloc_call(int numBytes, game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_MEMORYTREE_USE_WRAPPERS
|
||||
return game::MT_Alloc(numBytes, inst, MT_Alloc_original);
|
||||
return game::MT_Alloc(numBytes, inst, MT_Alloc_hook.get_original());
|
||||
#else
|
||||
return codsrc::MT_Alloc(numBytes, inst);
|
||||
#endif
|
||||
@ -269,36 +254,25 @@ namespace re_cscr_memorytree
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
MT_GetSubTreeSize_hook.create(game::MT_GetSubTreeSize.get(), MT_GetSubTreeSize_stub);
|
||||
MT_DumpTree_hook.create(game::MT_DumpTree.get(), MT_DumpTree_stub);
|
||||
MT_InitBits_hook.create(game::MT_InitBits_ADDR(), MT_InitBits_stub);
|
||||
MT_GetScore_hook.create(game::MT_GetScore_ADDR(), MT_GetScore_stub);
|
||||
MT_AddMemoryNode_hook.create(game::MT_AddMemoryNode.get(), MT_AddMemoryNode_stub);
|
||||
MT_RemoveMemoryNode_hook.create(game::MT_RemoveMemoryNode.get(), MT_RemoveMemoryNode_stub);
|
||||
MT_RemoveHeadMemoryNode_hook.create(game::MT_RemoveHeadMemoryNode.get(), MT_RemoveHeadMemoryNode_stub);
|
||||
MT_Init_hook.create(game::MT_Init_ADDR(), MT_Init_stub);
|
||||
MT_Error_hook.create(game::MT_Error_ADDR(), MT_Error_stub);
|
||||
MT_GetSize_hook.create(game::MT_GetSize_ADDR(), MT_GetSize_stub);
|
||||
MT_AllocIndex_hook.create(game::MT_AllocIndex_ADDR(), MT_AllocIndex_stub);
|
||||
MT_FreeIndex_hook.create(game::MT_FreeIndex_ADDR(), MT_FreeIndex_stub);
|
||||
MT_Alloc_hook.create(game::MT_Alloc_ADDR(), MT_Alloc_stub);
|
||||
MT_Free_hook.create(game::MT_Free.get(), MT_Free_stub);
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_MEMORYTREE_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
|
||||
//Original hook function addresses
|
||||
MT_GetSubTreeSize_original = MT_GetSubTreeSize_hook.get_original();
|
||||
MT_DumpTree_original = MT_DumpTree_hook.get_original();
|
||||
MT_InitBits_original = MT_InitBits_hook.get_original();
|
||||
MT_GetScore_original = MT_GetScore_hook.get_original();
|
||||
MT_AddMemoryNode_original = MT_AddMemoryNode_hook.get_original();
|
||||
MT_RemoveMemoryNode_original = MT_RemoveMemoryNode_hook.get_original();
|
||||
MT_RemoveHeadMemoryNode_original = MT_RemoveHeadMemoryNode_hook.get_original();
|
||||
MT_Init_original = MT_Init_hook.get_original();
|
||||
MT_Error_original = MT_Error_hook.get_original();
|
||||
MT_GetSize_original = MT_GetSize_hook.get_original();
|
||||
MT_AllocIndex_original = MT_AllocIndex_hook.get_original();
|
||||
MT_FreeIndex_original = MT_FreeIndex_hook.get_original();
|
||||
MT_Alloc_original = MT_Alloc_hook.get_original();
|
||||
MT_Free_original = MT_Free_hook.get_original();
|
||||
MT_GetSubTreeSize_hook.create(game::MT_GetSubTreeSize.get(), MT_GetSubTreeSize_stub, quick);
|
||||
MT_DumpTree_hook.create(game::MT_DumpTree.get(), MT_DumpTree_stub, quick);
|
||||
MT_InitBits_hook.create(game::MT_InitBits_ADDR(), MT_InitBits_stub, quick);
|
||||
MT_GetScore_hook.create(game::MT_GetScore_ADDR(), MT_GetScore_stub, quick);
|
||||
MT_AddMemoryNode_hook.create(game::MT_AddMemoryNode.get(), MT_AddMemoryNode_stub, quick);
|
||||
MT_RemoveMemoryNode_hook.create(game::MT_RemoveMemoryNode.get(), MT_RemoveMemoryNode_stub, quick);
|
||||
MT_RemoveHeadMemoryNode_hook.create(game::MT_RemoveHeadMemoryNode.get(), MT_RemoveHeadMemoryNode_stub, quick);
|
||||
MT_Init_hook.create(game::MT_Init_ADDR(), MT_Init_stub, quick);
|
||||
MT_Error_hook.create(game::MT_Error_ADDR(), MT_Error_stub, quick);
|
||||
MT_GetSize_hook.create(game::MT_GetSize_ADDR(), MT_GetSize_stub, quick);
|
||||
MT_AllocIndex_hook.create(game::MT_AllocIndex_ADDR(), MT_AllocIndex_stub, quick);
|
||||
MT_FreeIndex_hook.create(game::MT_FreeIndex_ADDR(), MT_FreeIndex_stub, quick);
|
||||
MT_Alloc_hook.create(game::MT_Alloc_ADDR(), MT_Alloc_stub, quick);
|
||||
MT_Free_hook.create(game::MT_Free.get(), MT_Free_stub, quick);
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -30,37 +30,13 @@ namespace re_cscr_parser
|
||||
utils::hook::detour RuntimeErrorInternal_hook;
|
||||
utils::hook::detour RuntimeError_hook;
|
||||
|
||||
void* Scr_InitOpcodeLookup_original;
|
||||
void* Scr_ShutdownOpcodeLookup_original;
|
||||
void* AddOpcodePos_original;
|
||||
void* RemoveOpcodePos_original;
|
||||
void* AddThreadStartOpcodePos_original;
|
||||
void* Scr_GetSourceBuffer_original;
|
||||
void* Scr_GetLineNumInternal_original;
|
||||
void* Scr_GetNewSourceBuffer_original;
|
||||
void* Scr_AddSourceBufferInternal_original;
|
||||
void* Scr_ReadFile_FastFile_original;
|
||||
void* Scr_ReadFile_LoadObj_original;
|
||||
void* Scr_ReadFile_original;
|
||||
void* Scr_AddSourceBuffer_original;
|
||||
void* Scr_CopyFormattedLine_original;
|
||||
void* Scr_GetLineInfo_original;
|
||||
void* Scr_PrintSourcePos_original;
|
||||
void* Scr_GetPrevSourcePosOpcodeLookup_original;
|
||||
void* Scr_GetTextSourcePos_original;
|
||||
void* Scr_PrintPrevCodePos_original;
|
||||
void* CompileError_original;
|
||||
void* CompileError2_original;
|
||||
void* RuntimeErrorInternal_original;
|
||||
void* RuntimeError_original;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
void Scr_InitOpcodeLookup_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
game::Scr_InitOpcodeLookup(a1, Scr_InitOpcodeLookup_original);
|
||||
game::Scr_InitOpcodeLookup(a1, Scr_InitOpcodeLookup_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_InitOpcodeLookup(a1);
|
||||
#endif
|
||||
@ -81,7 +57,7 @@ namespace re_cscr_parser
|
||||
void Scr_ShutdownOpcodeLookup_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
game::Scr_ShutdownOpcodeLookup(a1, Scr_ShutdownOpcodeLookup_original);
|
||||
game::Scr_ShutdownOpcodeLookup(a1, Scr_ShutdownOpcodeLookup_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_ShutdownOpcodeLookup(a1);
|
||||
#endif
|
||||
@ -102,7 +78,7 @@ namespace re_cscr_parser
|
||||
void AddOpcodePos_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr, unsigned int sourcePos, int type_)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
game::AddOpcodePos(a1, sourcePos, type_, AddOpcodePos_original);
|
||||
game::AddOpcodePos(a1, sourcePos, type_, AddOpcodePos_hook.get_original());
|
||||
#else
|
||||
codsrc::AddOpcodePos(a1, sourcePos, type_);
|
||||
#endif
|
||||
@ -123,7 +99,7 @@ namespace re_cscr_parser
|
||||
void RemoveOpcodePos_call(game::scriptInstance_t result, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
game::RemoveOpcodePos(result, RemoveOpcodePos_original);
|
||||
game::RemoveOpcodePos(result, RemoveOpcodePos_hook.get_original());
|
||||
#else
|
||||
codsrc::RemoveOpcodePos(result);
|
||||
#endif
|
||||
@ -144,7 +120,7 @@ namespace re_cscr_parser
|
||||
void AddThreadStartOpcodePos_call(game::scriptInstance_t result, [[maybe_unused]] void* caller_addr, unsigned int sourcePos)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
game::AddThreadStartOpcodePos(result, sourcePos, AddThreadStartOpcodePos_original);
|
||||
game::AddThreadStartOpcodePos(result, sourcePos, AddThreadStartOpcodePos_hook.get_original());
|
||||
#else
|
||||
codsrc::AddThreadStartOpcodePos(result, sourcePos);
|
||||
#endif
|
||||
@ -165,7 +141,7 @@ namespace re_cscr_parser
|
||||
unsigned int Scr_GetSourceBuffer_call(game::scriptInstance_t a1, const char * codePos, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
return game::Scr_GetSourceBuffer(a1, codePos, Scr_GetSourceBuffer_original);
|
||||
return game::Scr_GetSourceBuffer(a1, codePos, Scr_GetSourceBuffer_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetSourceBuffer(a1, codePos);
|
||||
#endif
|
||||
@ -187,7 +163,7 @@ namespace re_cscr_parser
|
||||
unsigned int Scr_GetLineNumInternal_call(const char ** startLine, const char * buf, [[maybe_unused]] void* caller_addr, const char * sourcePos, int * col)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
return game::Scr_GetLineNumInternal(startLine, buf, sourcePos, col, Scr_GetLineNumInternal_original);
|
||||
return game::Scr_GetLineNumInternal(startLine, buf, sourcePos, col, Scr_GetLineNumInternal_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetLineNumInternal(startLine, buf, sourcePos, col);
|
||||
#endif
|
||||
@ -209,7 +185,7 @@ namespace re_cscr_parser
|
||||
game::SourceBufferInfo * Scr_GetNewSourceBuffer_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
return game::Scr_GetNewSourceBuffer(a1, Scr_GetNewSourceBuffer_original);
|
||||
return game::Scr_GetNewSourceBuffer(a1, Scr_GetNewSourceBuffer_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetNewSourceBuffer(a1);
|
||||
#endif
|
||||
@ -230,7 +206,7 @@ namespace re_cscr_parser
|
||||
void Scr_AddSourceBufferInternal_call(const char * filename, [[maybe_unused]] void* caller_addr, game::scriptInstance_t inst, const char * codepos, char * buffer, int len, int archive)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
game::Scr_AddSourceBufferInternal(filename, inst, codepos, buffer, len, archive, Scr_AddSourceBufferInternal_original);
|
||||
game::Scr_AddSourceBufferInternal(filename, inst, codepos, buffer, len, archive, Scr_AddSourceBufferInternal_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_AddSourceBufferInternal(filename, inst, codepos, buffer, len, archive);
|
||||
#endif
|
||||
@ -269,7 +245,7 @@ namespace re_cscr_parser
|
||||
char * Scr_ReadFile_call(const char * codepos, char * filename, [[maybe_unused]] void* caller_addr, game::scriptInstance_t inst, int unused)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
return game::Scr_ReadFile(codepos, filename, inst, unused, Scr_ReadFile_original);
|
||||
return game::Scr_ReadFile(codepos, filename, inst, unused, Scr_ReadFile_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_ReadFile(codepos, filename, inst, unused);
|
||||
#endif
|
||||
@ -291,7 +267,7 @@ namespace re_cscr_parser
|
||||
char * Scr_AddSourceBuffer_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, int unused_arg1, char * filename, const char * codepos)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
return game::Scr_AddSourceBuffer(inst, unused_arg1, filename, codepos, Scr_AddSourceBuffer_original);
|
||||
return game::Scr_AddSourceBuffer(inst, unused_arg1, filename, codepos, Scr_AddSourceBuffer_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_AddSourceBuffer(inst, unused_arg1, filename, codepos);
|
||||
#endif
|
||||
@ -312,7 +288,7 @@ namespace re_cscr_parser
|
||||
void Scr_CopyFormattedLine_call(const char * rawLine, [[maybe_unused]] void* caller_addr, char * line)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
game::Scr_CopyFormattedLine(rawLine, line, Scr_CopyFormattedLine_original);
|
||||
game::Scr_CopyFormattedLine(rawLine, line, Scr_CopyFormattedLine_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_CopyFormattedLine(rawLine, line);
|
||||
#endif
|
||||
@ -333,7 +309,7 @@ namespace re_cscr_parser
|
||||
unsigned int Scr_GetLineInfo_call(int * col, const char * buf, [[maybe_unused]] void* caller_addr, unsigned int sourcePos, char * line)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
return game::Scr_GetLineInfo(col, buf, sourcePos, line, Scr_GetLineInfo_original);
|
||||
return game::Scr_GetLineInfo(col, buf, sourcePos, line, Scr_GetLineInfo_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetLineInfo(col, buf, sourcePos, line);
|
||||
#endif
|
||||
@ -355,7 +331,7 @@ namespace re_cscr_parser
|
||||
void Scr_PrintSourcePos_call(unsigned int sourcePos, const char * buf, game::con_channel_e channel, [[maybe_unused]] void* caller_addr, game::scriptInstance_t a4, const char * file)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
game::Scr_PrintSourcePos(sourcePos, buf, channel, a4, file, Scr_PrintSourcePos_original);
|
||||
game::Scr_PrintSourcePos(sourcePos, buf, channel, a4, file, Scr_PrintSourcePos_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_PrintSourcePos(sourcePos, buf, channel, a4, file);
|
||||
#endif
|
||||
@ -378,7 +354,7 @@ namespace re_cscr_parser
|
||||
game::OpcodeLookup * Scr_GetPrevSourcePosOpcodeLookup_call(game::scriptInstance_t a1, const char * codePos, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
return game::Scr_GetPrevSourcePosOpcodeLookup(a1, codePos, Scr_GetPrevSourcePosOpcodeLookup_original);
|
||||
return game::Scr_GetPrevSourcePosOpcodeLookup(a1, codePos, Scr_GetPrevSourcePosOpcodeLookup_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetPrevSourcePosOpcodeLookup(a1, codePos);
|
||||
#endif
|
||||
@ -400,7 +376,7 @@ namespace re_cscr_parser
|
||||
void Scr_GetTextSourcePos_call(char * line, const char * codePos, [[maybe_unused]] void* caller_addr, game::scriptInstance_t a3)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
game::Scr_GetTextSourcePos(line, codePos, a3, Scr_GetTextSourcePos_original);
|
||||
game::Scr_GetTextSourcePos(line, codePos, a3, Scr_GetTextSourcePos_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_GetTextSourcePos(line, codePos, a3);
|
||||
#endif
|
||||
@ -422,7 +398,7 @@ namespace re_cscr_parser
|
||||
void Scr_PrintPrevCodePos_call(const char * codepos, [[maybe_unused]] void* caller_addr, game::scriptInstance_t scriptInstance, game::con_channel_e channel, unsigned int index)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
game::Scr_PrintPrevCodePos(codepos, scriptInstance, channel, index, Scr_PrintPrevCodePos_original);
|
||||
game::Scr_PrintPrevCodePos(codepos, scriptInstance, channel, index, Scr_PrintPrevCodePos_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_PrintPrevCodePos(codepos, scriptInstance, channel, index);
|
||||
#endif
|
||||
@ -464,7 +440,7 @@ namespace re_cscr_parser
|
||||
_vsnprintf(Buffer, 0x400u, msg, ArgList);
|
||||
va_end(ArgList);
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
game::CompileError2(codePos, a2, CompileError2_original, "%s", Buffer);
|
||||
game::CompileError2(codePos, a2, CompileError2_hook.get_original(), "%s", Buffer);
|
||||
#else
|
||||
codsrc::CompileError2(codePos, a2, "%s", Buffer);
|
||||
#endif
|
||||
@ -487,7 +463,7 @@ namespace re_cscr_parser
|
||||
void RuntimeErrorInternal_call(const char * msg, game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, game::con_channel_e channel, const char * codepos, int index)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
game::RuntimeErrorInternal(msg, inst, channel, codepos, index, RuntimeErrorInternal_original);
|
||||
game::RuntimeErrorInternal(msg, inst, channel, codepos, index, RuntimeErrorInternal_hook.get_original());
|
||||
#else
|
||||
codsrc::RuntimeErrorInternal(msg, inst, channel, codepos, index);
|
||||
#endif
|
||||
@ -509,7 +485,7 @@ namespace re_cscr_parser
|
||||
void RuntimeError_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, const char * pos, int error_index, const char * err, const char * err2)
|
||||
{
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
game::RuntimeError(inst, pos, error_index, err, err2, RuntimeError_original);
|
||||
game::RuntimeError(inst, pos, error_index, err, err2, RuntimeError_hook.get_original());
|
||||
#else
|
||||
codsrc::RuntimeError(inst, pos, error_index, err, err2);
|
||||
#endif
|
||||
@ -533,54 +509,34 @@ namespace re_cscr_parser
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
Scr_InitOpcodeLookup_hook.create(game::Scr_InitOpcodeLookup_ADDR(), Scr_InitOpcodeLookup_stub);
|
||||
Scr_ShutdownOpcodeLookup_hook.create(game::Scr_ShutdownOpcodeLookup_ADDR(), Scr_ShutdownOpcodeLookup_stub);
|
||||
AddOpcodePos_hook.create(game::AddOpcodePos_ADDR(), AddOpcodePos_stub);
|
||||
RemoveOpcodePos_hook.create(game::RemoveOpcodePos_ADDR(), RemoveOpcodePos_stub);
|
||||
AddThreadStartOpcodePos_hook.create(game::AddThreadStartOpcodePos_ADDR(), AddThreadStartOpcodePos_stub);
|
||||
Scr_GetSourceBuffer_hook.create(game::Scr_GetSourceBuffer_ADDR(), Scr_GetSourceBuffer_stub);
|
||||
Scr_GetLineNumInternal_hook.create(game::Scr_GetLineNumInternal_ADDR(), Scr_GetLineNumInternal_stub);
|
||||
Scr_GetNewSourceBuffer_hook.create(game::Scr_GetNewSourceBuffer_ADDR(), Scr_GetNewSourceBuffer_stub);
|
||||
Scr_AddSourceBufferInternal_hook.create(game::Scr_AddSourceBufferInternal_ADDR(), Scr_AddSourceBufferInternal_stub);
|
||||
Scr_ReadFile_FastFile_hook.create(game::Scr_ReadFile_FastFile.get(), Scr_ReadFile_FastFile_stub);
|
||||
Scr_ReadFile_LoadObj_hook.create(game::Scr_ReadFile_LoadObj.get(), Scr_ReadFile_LoadObj_stub);
|
||||
Scr_ReadFile_hook.create(game::Scr_ReadFile_ADDR(), Scr_ReadFile_stub);
|
||||
Scr_AddSourceBuffer_hook.create(game::Scr_AddSourceBuffer_ADDR(), Scr_AddSourceBuffer_stub);
|
||||
Scr_CopyFormattedLine_hook.create(game::Scr_CopyFormattedLine_ADDR(), Scr_CopyFormattedLine_stub);
|
||||
Scr_GetLineInfo_hook.create(game::Scr_GetLineInfo_ADDR(), Scr_GetLineInfo_stub);
|
||||
Scr_PrintSourcePos_hook.create(game::Scr_PrintSourcePos_ADDR(), Scr_PrintSourcePos_stub);
|
||||
Scr_GetPrevSourcePosOpcodeLookup_hook.create(game::Scr_GetPrevSourcePosOpcodeLookup_ADDR(), Scr_GetPrevSourcePosOpcodeLookup_stub);
|
||||
Scr_GetTextSourcePos_hook.create(game::Scr_GetTextSourcePos_ADDR(), Scr_GetTextSourcePos_stub);
|
||||
Scr_PrintPrevCodePos_hook.create(game::Scr_PrintPrevCodePos_ADDR(), Scr_PrintPrevCodePos_stub);
|
||||
CompileError_hook.create(game::CompileError.get(), CompileError_stub);
|
||||
CompileError2_hook.create(game::CompileError2_ADDR(), CompileError2_stub);
|
||||
RuntimeErrorInternal_hook.create(game::RuntimeErrorInternal_ADDR(), RuntimeErrorInternal_stub);
|
||||
RuntimeError_hook.create(game::RuntimeError_ADDR(), RuntimeError_stub);
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
|
||||
//Original hook function addresses
|
||||
Scr_InitOpcodeLookup_original = Scr_InitOpcodeLookup_hook.get_original();
|
||||
Scr_ShutdownOpcodeLookup_original = Scr_ShutdownOpcodeLookup_hook.get_original();
|
||||
AddOpcodePos_original = AddOpcodePos_hook.get_original();
|
||||
RemoveOpcodePos_original = RemoveOpcodePos_hook.get_original();
|
||||
AddThreadStartOpcodePos_original = AddThreadStartOpcodePos_hook.get_original();
|
||||
Scr_GetSourceBuffer_original = Scr_GetSourceBuffer_hook.get_original();
|
||||
Scr_GetLineNumInternal_original = Scr_GetLineNumInternal_hook.get_original();
|
||||
Scr_GetNewSourceBuffer_original = Scr_GetNewSourceBuffer_hook.get_original();
|
||||
Scr_AddSourceBufferInternal_original = Scr_AddSourceBufferInternal_hook.get_original();
|
||||
Scr_ReadFile_FastFile_original = Scr_ReadFile_FastFile_hook.get_original();
|
||||
Scr_ReadFile_LoadObj_original = Scr_ReadFile_LoadObj_hook.get_original();
|
||||
Scr_ReadFile_original = Scr_ReadFile_hook.get_original();
|
||||
Scr_AddSourceBuffer_original = Scr_AddSourceBuffer_hook.get_original();
|
||||
Scr_CopyFormattedLine_original = Scr_CopyFormattedLine_hook.get_original();
|
||||
Scr_GetLineInfo_original = Scr_GetLineInfo_hook.get_original();
|
||||
Scr_PrintSourcePos_original = Scr_PrintSourcePos_hook.get_original();
|
||||
Scr_GetPrevSourcePosOpcodeLookup_original = Scr_GetPrevSourcePosOpcodeLookup_hook.get_original();
|
||||
Scr_GetTextSourcePos_original = Scr_GetTextSourcePos_hook.get_original();
|
||||
Scr_PrintPrevCodePos_original = Scr_PrintPrevCodePos_hook.get_original();
|
||||
CompileError_original = CompileError_hook.get_original();
|
||||
CompileError2_original = CompileError2_hook.get_original();
|
||||
RuntimeErrorInternal_original = RuntimeErrorInternal_hook.get_original();
|
||||
RuntimeError_original = RuntimeError_hook.get_original();
|
||||
Scr_InitOpcodeLookup_hook.create(game::Scr_InitOpcodeLookup_ADDR(), Scr_InitOpcodeLookup_stub, quick);
|
||||
Scr_ShutdownOpcodeLookup_hook.create(game::Scr_ShutdownOpcodeLookup_ADDR(), Scr_ShutdownOpcodeLookup_stub, quick);
|
||||
AddOpcodePos_hook.create(game::AddOpcodePos_ADDR(), AddOpcodePos_stub, quick);
|
||||
RemoveOpcodePos_hook.create(game::RemoveOpcodePos_ADDR(), RemoveOpcodePos_stub, quick);
|
||||
AddThreadStartOpcodePos_hook.create(game::AddThreadStartOpcodePos_ADDR(), AddThreadStartOpcodePos_stub, quick);
|
||||
Scr_GetSourceBuffer_hook.create(game::Scr_GetSourceBuffer_ADDR(), Scr_GetSourceBuffer_stub, quick);
|
||||
Scr_GetLineNumInternal_hook.create(game::Scr_GetLineNumInternal_ADDR(), Scr_GetLineNumInternal_stub, quick);
|
||||
Scr_GetNewSourceBuffer_hook.create(game::Scr_GetNewSourceBuffer_ADDR(), Scr_GetNewSourceBuffer_stub, quick);
|
||||
Scr_AddSourceBufferInternal_hook.create(game::Scr_AddSourceBufferInternal_ADDR(), Scr_AddSourceBufferInternal_stub, quick);
|
||||
Scr_ReadFile_FastFile_hook.create(game::Scr_ReadFile_FastFile.get(), Scr_ReadFile_FastFile_stub, quick);
|
||||
Scr_ReadFile_LoadObj_hook.create(game::Scr_ReadFile_LoadObj.get(), Scr_ReadFile_LoadObj_stub, quick);
|
||||
Scr_ReadFile_hook.create(game::Scr_ReadFile_ADDR(), Scr_ReadFile_stub, quick);
|
||||
Scr_AddSourceBuffer_hook.create(game::Scr_AddSourceBuffer_ADDR(), Scr_AddSourceBuffer_stub, quick);
|
||||
Scr_CopyFormattedLine_hook.create(game::Scr_CopyFormattedLine_ADDR(), Scr_CopyFormattedLine_stub, quick);
|
||||
Scr_GetLineInfo_hook.create(game::Scr_GetLineInfo_ADDR(), Scr_GetLineInfo_stub, quick);
|
||||
Scr_PrintSourcePos_hook.create(game::Scr_PrintSourcePos_ADDR(), Scr_PrintSourcePos_stub, quick);
|
||||
Scr_GetPrevSourcePosOpcodeLookup_hook.create(game::Scr_GetPrevSourcePosOpcodeLookup_ADDR(), Scr_GetPrevSourcePosOpcodeLookup_stub, quick);
|
||||
Scr_GetTextSourcePos_hook.create(game::Scr_GetTextSourcePos_ADDR(), Scr_GetTextSourcePos_stub, quick);
|
||||
Scr_PrintPrevCodePos_hook.create(game::Scr_PrintPrevCodePos_ADDR(), Scr_PrintPrevCodePos_stub, quick);
|
||||
CompileError_hook.create(game::CompileError.get(), CompileError_stub, quick);
|
||||
CompileError2_hook.create(game::CompileError2_ADDR(), CompileError2_stub, quick);
|
||||
RuntimeErrorInternal_hook.create(game::RuntimeErrorInternal_ADDR(), RuntimeErrorInternal_stub, quick);
|
||||
RuntimeError_hook.create(game::RuntimeError_ADDR(), RuntimeError_stub, quick);
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -20,20 +20,6 @@ namespace re_cscr_parsetree
|
||||
utils::hook::detour prepend_node_hook;
|
||||
utils::hook::detour append_node_hook;
|
||||
|
||||
void* Scr_InitAllocNode_original;
|
||||
void* node0_original;
|
||||
void* node1_original;
|
||||
void* node2_original;
|
||||
void* node3_original;
|
||||
void* node4_original;
|
||||
void* node5_original;
|
||||
void* node6_original;
|
||||
void* node7_original;
|
||||
void* node8_original;
|
||||
void* linked_list_end_original;
|
||||
void* prepend_node_original;
|
||||
void* append_node_original;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
@ -160,34 +146,24 @@ namespace re_cscr_parsetree
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
Scr_InitAllocNode_hook.create(game::Scr_InitAllocNode.get(), Scr_InitAllocNode_stub);
|
||||
node0_hook.create(game::node0.get(), node0_stub);
|
||||
node1_hook.create(game::node1.get(), node1_stub);
|
||||
node2_hook.create(game::node2.get(), node2_stub);
|
||||
node3_hook.create(game::node3.get(), node3_stub);
|
||||
node4_hook.create(game::node4.get(), node4_stub);
|
||||
node5_hook.create(game::node5.get(), node5_stub);
|
||||
node6_hook.create(game::node6.get(), node6_stub);
|
||||
node7_hook.create(game::node7.get(), node7_stub);
|
||||
node8_hook.create(game::node8.get(), node8_stub);
|
||||
linked_list_end_hook.create(game::linked_list_end.get(), linked_list_end_stub);
|
||||
prepend_node_hook.create(game::prepend_node.get(), prepend_node_stub);
|
||||
append_node_hook.create(game::append_node.get(), append_node_stub);
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_PARSETREE_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
|
||||
//Original hook function addresses
|
||||
Scr_InitAllocNode_original = Scr_InitAllocNode_hook.get_original();
|
||||
node0_original = node0_hook.get_original();
|
||||
node1_original = node1_hook.get_original();
|
||||
node2_original = node2_hook.get_original();
|
||||
node3_original = node3_hook.get_original();
|
||||
node4_original = node4_hook.get_original();
|
||||
node5_original = node5_hook.get_original();
|
||||
node6_original = node6_hook.get_original();
|
||||
node7_original = node7_hook.get_original();
|
||||
node8_original = node8_hook.get_original();
|
||||
linked_list_end_original = linked_list_end_hook.get_original();
|
||||
prepend_node_original = prepend_node_hook.get_original();
|
||||
append_node_original = append_node_hook.get_original();
|
||||
Scr_InitAllocNode_hook.create(game::Scr_InitAllocNode.get(), Scr_InitAllocNode_stub, quick);
|
||||
node0_hook.create(game::node0.get(), node0_stub, quick);
|
||||
node1_hook.create(game::node1.get(), node1_stub, quick);
|
||||
node2_hook.create(game::node2.get(), node2_stub, quick);
|
||||
node3_hook.create(game::node3.get(), node3_stub, quick);
|
||||
node4_hook.create(game::node4.get(), node4_stub, quick);
|
||||
node5_hook.create(game::node5.get(), node5_stub, quick);
|
||||
node6_hook.create(game::node6.get(), node6_stub, quick);
|
||||
node7_hook.create(game::node7.get(), node7_stub, quick);
|
||||
node8_hook.create(game::node8.get(), node8_stub, quick);
|
||||
linked_list_end_hook.create(game::linked_list_end.get(), linked_list_end_stub, quick);
|
||||
prepend_node_hook.create(game::prepend_node.get(), prepend_node_stub, quick);
|
||||
append_node_hook.create(game::append_node.get(), append_node_stub, quick);
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -9,16 +9,13 @@ namespace re_cscr_readwrite
|
||||
utils::hook::detour FindVariableIndexInternal2_hook;
|
||||
utils::hook::detour FindLastSibling_hook;
|
||||
|
||||
void* FindVariableIndexInternal2_original;
|
||||
void* FindLastSibling_original;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
unsigned int FindVariableIndexInternal2_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, unsigned int name, unsigned int index)
|
||||
{
|
||||
#ifdef RE_CSCR_READWRITE_USE_WRAPPERS
|
||||
return game::FindVariableIndexInternal2(inst, name, index, FindVariableIndexInternal2_original);
|
||||
return game::FindVariableIndexInternal2(inst, name, index, FindVariableIndexInternal2_hook.get_original());
|
||||
#else
|
||||
return codsrc::FindVariableIndexInternal2(inst, name, index);
|
||||
#endif
|
||||
@ -39,7 +36,7 @@ namespace re_cscr_readwrite
|
||||
unsigned int FindLastSibling_call(unsigned int parentId, game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_READWRITE_USE_WRAPPERS
|
||||
return game::FindLastSibling(parentId, inst, FindLastSibling_original);
|
||||
return game::FindLastSibling(parentId, inst, FindLastSibling_hook.get_original());
|
||||
#else
|
||||
return codsrc::FindLastSibling(parentId, inst);
|
||||
#endif
|
||||
@ -64,12 +61,13 @@ namespace re_cscr_readwrite
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
FindVariableIndexInternal2_hook.create(game::FindVariableIndexInternal2_ADDR(), FindVariableIndexInternal2_stub);
|
||||
FindLastSibling_hook.create(game::FindLastSibling_ADDR(), FindLastSibling_stub);
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_READWRITE_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
|
||||
//Original hook function addresses
|
||||
FindVariableIndexInternal2_original = FindVariableIndexInternal2_hook.get_original();
|
||||
FindLastSibling_original = FindLastSibling_hook.get_original();
|
||||
FindVariableIndexInternal2_hook.create(game::FindVariableIndexInternal2_ADDR(), FindVariableIndexInternal2_stub, quick);
|
||||
FindLastSibling_hook.create(game::FindLastSibling_ADDR(), FindLastSibling_stub, quick);
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -35,42 +35,13 @@ namespace re_cscr_stringlist
|
||||
utils::hook::detour SL_CreateCanonicalFilename_hook;
|
||||
utils::hook::detour Scr_CreateCanonicalFilename_hook;
|
||||
|
||||
void* SL_ConvertToString_original;
|
||||
void* SL_GetStringLen_original;
|
||||
void* GetHashCode_original;
|
||||
void* SL_Init_original;
|
||||
void* SL_FindStringOfSize_original;
|
||||
void* SL_FindString_original;
|
||||
void* SL_FindLowercaseString_original;
|
||||
void* SL_AddUserInternal_original;
|
||||
void* Mark_ScriptStringCustom_original;
|
||||
void* SL_GetStringOfSize_original;
|
||||
void* SL_GetString__original;
|
||||
void* SL_GetString__0_original;
|
||||
void* SL_GetLowercaseStringOfLen_original;
|
||||
void* SL_GetLowercaseString_original;
|
||||
void* SL_ConvertToLowercase_original;
|
||||
void* SL_TransferRefToUser_original;
|
||||
void* SL_FreeString_original;
|
||||
void* SL_RemoveRefToString_original;
|
||||
void* Scr_SetString_original;
|
||||
void* Scr_SetStringFromCharString_original;
|
||||
void* GScr_AllocString_original;
|
||||
void* SL_GetStringForFloat_original;
|
||||
void* SL_GetStringForInt_original;
|
||||
void* SL_GetStringForVector_original;
|
||||
void* SL_ShutdownSystem_original;
|
||||
void* SL_TransferSystem_original;
|
||||
void* SL_CreateCanonicalFilename_original;
|
||||
void* Scr_CreateCanonicalFilename_original;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
char* SL_ConvertToString_call(unsigned int id, game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
return game::SL_ConvertToString(id, inst, SL_ConvertToString_original);
|
||||
return game::SL_ConvertToString(id, inst, SL_ConvertToString_hook.get_original());
|
||||
#else
|
||||
return codsrc::SL_ConvertToString(id, inst);
|
||||
#endif
|
||||
@ -92,7 +63,7 @@ namespace re_cscr_stringlist
|
||||
int SL_GetStringLen_call(unsigned int a1, game::scriptInstance_t a2, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
return game::SL_GetStringLen(a1, a2, SL_GetStringLen_original);
|
||||
return game::SL_GetStringLen(a1, a2, SL_GetStringLen_hook.get_original());
|
||||
#else
|
||||
return codsrc::SL_GetStringLen(a1, a2);
|
||||
#endif
|
||||
@ -114,7 +85,7 @@ namespace re_cscr_stringlist
|
||||
unsigned int GetHashCode_call(unsigned int a1, const char* a2, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
return game::GetHashCode(a1, a2, GetHashCode_original);
|
||||
return game::GetHashCode(a1, a2, GetHashCode_hook.get_original());
|
||||
#else
|
||||
return codsrc::GetHashCode(a1, a2);
|
||||
#endif
|
||||
@ -136,7 +107,7 @@ namespace re_cscr_stringlist
|
||||
void SL_Init_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
game::SL_Init(a1, SL_Init_original);
|
||||
game::SL_Init(a1, SL_Init_hook.get_original());
|
||||
#else
|
||||
codsrc::SL_Init(a1);
|
||||
#endif
|
||||
@ -157,7 +128,7 @@ namespace re_cscr_stringlist
|
||||
unsigned int SL_FindStringOfSize_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, const char* str_, unsigned int len)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
return game::SL_FindStringOfSize(inst, str_, len, SL_FindStringOfSize_original);
|
||||
return game::SL_FindStringOfSize(inst, str_, len, SL_FindStringOfSize_hook.get_original());
|
||||
#else
|
||||
return codsrc::SL_FindStringOfSize(inst, str_, len);
|
||||
#endif
|
||||
@ -178,7 +149,7 @@ namespace re_cscr_stringlist
|
||||
unsigned int SL_FindString_call(const char* a1, [[maybe_unused]] void* caller_addr, game::scriptInstance_t a2)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
return game::SL_FindString(a1, a2, SL_FindString_original);
|
||||
return game::SL_FindString(a1, a2, SL_FindString_hook.get_original());
|
||||
#else
|
||||
return codsrc::SL_FindString(a1, a2);
|
||||
#endif
|
||||
@ -208,7 +179,7 @@ namespace re_cscr_stringlist
|
||||
void SL_AddUserInternal_call(unsigned int user, game::RefString* refStr, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
game::SL_AddUserInternal(user, refStr, SL_AddUserInternal_original);
|
||||
game::SL_AddUserInternal(user, refStr, SL_AddUserInternal_hook.get_original());
|
||||
#else
|
||||
codsrc::SL_AddUserInternal(user, refStr);
|
||||
#endif
|
||||
@ -230,7 +201,7 @@ namespace re_cscr_stringlist
|
||||
void Mark_ScriptStringCustom_call(unsigned int a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
game::Mark_ScriptStringCustom(a1, Mark_ScriptStringCustom_original);
|
||||
game::Mark_ScriptStringCustom(a1, Mark_ScriptStringCustom_hook.get_original());
|
||||
#else
|
||||
codsrc::Mark_ScriptStringCustom(a1);
|
||||
#endif
|
||||
@ -260,7 +231,7 @@ namespace re_cscr_stringlist
|
||||
unsigned int SL_GetString__call(const char* a1, [[maybe_unused]] void* caller_addr, game::scriptInstance_t a2, unsigned int user)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
return game::SL_GetString_(a1, a2, user, SL_GetString__original);
|
||||
return game::SL_GetString_(a1, a2, user, SL_GetString__hook.get_original());
|
||||
#else
|
||||
return codsrc::SL_GetString_(a1, a2, user);
|
||||
#endif
|
||||
@ -281,7 +252,7 @@ namespace re_cscr_stringlist
|
||||
unsigned int SL_GetString__0_call(const char* a1, [[maybe_unused]] void* caller_addr, unsigned int user, game::scriptInstance_t a3)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
return game::SL_GetString__0(a1, user, a3, SL_GetString__0_original);
|
||||
return game::SL_GetString__0(a1, user, a3, SL_GetString__0_hook.get_original());
|
||||
#else
|
||||
return codsrc::SL_GetString__0(a1, user, a3);
|
||||
#endif
|
||||
@ -311,7 +282,7 @@ namespace re_cscr_stringlist
|
||||
unsigned int SL_GetLowercaseString_call(const char* a2, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
return game::SL_GetLowercaseString(a2, SL_GetLowercaseString_original);
|
||||
return game::SL_GetLowercaseString(a2, SL_GetLowercaseString_hook.get_original());
|
||||
#else
|
||||
return codsrc::SL_GetLowercaseString(a2);
|
||||
#endif
|
||||
@ -341,7 +312,7 @@ namespace re_cscr_stringlist
|
||||
void SL_TransferRefToUser_call(unsigned int stringValue, unsigned int user, [[maybe_unused]] void* caller_addr, game::scriptInstance_t inst)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
game::SL_TransferRefToUser(stringValue, user, inst, SL_TransferRefToUser_original);
|
||||
game::SL_TransferRefToUser(stringValue, user, inst, SL_TransferRefToUser_hook.get_original());
|
||||
#else
|
||||
codsrc::SL_TransferRefToUser(stringValue, user, inst);
|
||||
#endif
|
||||
@ -372,7 +343,7 @@ namespace re_cscr_stringlist
|
||||
void SL_RemoveRefToString_call(unsigned int stringVal, game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
game::SL_RemoveRefToString(stringVal, inst, SL_RemoveRefToString_original);
|
||||
game::SL_RemoveRefToString(stringVal, inst, SL_RemoveRefToString_hook.get_original());
|
||||
#else
|
||||
codsrc::SL_RemoveRefToString(stringVal, inst);
|
||||
#endif
|
||||
@ -394,7 +365,7 @@ namespace re_cscr_stringlist
|
||||
void Scr_SetString_call(game::scriptInstance_t inst, unsigned int from, [[maybe_unused]] void* caller_addr, unsigned __int16* to)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
game::Scr_SetString(inst, from, to, Scr_SetString_original);
|
||||
game::Scr_SetString(inst, from, to, Scr_SetString_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_SetString(inst, from, to);
|
||||
#endif
|
||||
@ -416,7 +387,7 @@ namespace re_cscr_stringlist
|
||||
void Scr_SetStringFromCharString_call(const char* a1, [[maybe_unused]] void* caller_addr, unsigned __int16* a2)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
game::Scr_SetStringFromCharString(a1, a2, Scr_SetStringFromCharString_original);
|
||||
game::Scr_SetStringFromCharString(a1, a2, Scr_SetStringFromCharString_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_SetStringFromCharString(a1, a2);
|
||||
#endif
|
||||
@ -437,7 +408,7 @@ namespace re_cscr_stringlist
|
||||
unsigned int GScr_AllocString_call(const char* a1, [[maybe_unused]] void* caller_addr, game::scriptInstance_t inst)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
return game::GScr_AllocString(a1, inst, GScr_AllocString_original);
|
||||
return game::GScr_AllocString(a1, inst, GScr_AllocString_hook.get_original());
|
||||
#else
|
||||
return codsrc::GScr_AllocString(a1, inst);
|
||||
#endif
|
||||
@ -458,7 +429,7 @@ namespace re_cscr_stringlist
|
||||
unsigned int SL_GetStringForFloat_call(float a1, [[maybe_unused]] void* caller_addr, game::scriptInstance_t a2)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
return game::SL_GetStringForFloat(a1, a2, SL_GetStringForFloat_original);
|
||||
return game::SL_GetStringForFloat(a1, a2, SL_GetStringForFloat_hook.get_original());
|
||||
#else
|
||||
return codsrc::SL_GetStringForFloat(a1, a2);
|
||||
#endif
|
||||
@ -480,7 +451,7 @@ namespace re_cscr_stringlist
|
||||
unsigned int SL_GetStringForInt_call(int a1, [[maybe_unused]] void* caller_addr, game::scriptInstance_t a2)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
return game::SL_GetStringForInt(a1, a2, SL_GetStringForInt_original);
|
||||
return game::SL_GetStringForInt(a1, a2, SL_GetStringForInt_hook.get_original());
|
||||
#else
|
||||
return codsrc::SL_GetStringForInt(a1, a2);
|
||||
#endif
|
||||
@ -501,7 +472,7 @@ namespace re_cscr_stringlist
|
||||
unsigned int SL_GetStringForVector_call(float* a1, [[maybe_unused]] void* caller_addr, game::scriptInstance_t a2)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
return game::SL_GetStringForVector(a1, a2, SL_GetStringForVector_original);
|
||||
return game::SL_GetStringForVector(a1, a2, SL_GetStringForVector_hook.get_original());
|
||||
#else
|
||||
return codsrc::SL_GetStringForVector(a1, a2);
|
||||
#endif
|
||||
@ -522,7 +493,7 @@ namespace re_cscr_stringlist
|
||||
void SL_ShutdownSystem_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr, unsigned int a2)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
game::SL_ShutdownSystem(a1, a2, SL_ShutdownSystem_original);
|
||||
game::SL_ShutdownSystem(a1, a2, SL_ShutdownSystem_hook.get_original());
|
||||
#else
|
||||
codsrc::SL_ShutdownSystem(a1, a2);
|
||||
#endif
|
||||
@ -552,7 +523,7 @@ namespace re_cscr_stringlist
|
||||
void SL_CreateCanonicalFilename_call(const char* filename, [[maybe_unused]] void* caller_addr, char* newFilename)
|
||||
{
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
game::SL_CreateCanonicalFilename(filename, newFilename, SL_CreateCanonicalFilename_original);
|
||||
game::SL_CreateCanonicalFilename(filename, newFilename, SL_CreateCanonicalFilename_hook.get_original());
|
||||
#else
|
||||
codsrc::SL_CreateCanonicalFilename(filename, newFilename);
|
||||
#endif
|
||||
@ -585,64 +556,39 @@ namespace re_cscr_stringlist
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
SL_ConvertToString_hook.create(game::SL_ConvertToString_ADDR(), SL_ConvertToString_stub);
|
||||
SL_GetStringLen_hook.create(game::SL_GetStringLen_ADDR(), SL_GetStringLen_stub);
|
||||
GetHashCode_hook.create(game::GetHashCode_ADDR(), GetHashCode_stub);
|
||||
SL_Init_hook.create(game::SL_Init_ADDR(), SL_Init_stub);
|
||||
SL_FindStringOfSize_hook.create(game::SL_FindStringOfSize_ADDR(), SL_FindStringOfSize_stub);
|
||||
SL_FindString_hook.create(game::SL_FindString_ADDR(), SL_FindString_stub);
|
||||
SL_FindLowercaseString_hook.create(game::SL_FindLowercaseString.get(), SL_FindLowercaseString_stub);
|
||||
SL_AddUserInternal_hook.create(game::SL_AddUserInternal_ADDR(), SL_AddUserInternal_stub);
|
||||
Mark_ScriptStringCustom_hook.create(game::Mark_ScriptStringCustom_ADDR(), Mark_ScriptStringCustom_stub);
|
||||
SL_GetStringOfSize_hook.create(game::SL_GetStringOfSize.get(), SL_GetStringOfSize_stub);
|
||||
SL_GetString__hook.create(game::SL_GetString__ADDR(), SL_GetString__stub);
|
||||
SL_GetString__0_hook.create(game::SL_GetString__0_ADDR(), SL_GetString__0_stub);
|
||||
SL_GetLowercaseStringOfLen_hook.create(game::SL_GetLowercaseStringOfLen.get(), SL_GetLowercaseStringOfLen_stub);
|
||||
SL_GetLowercaseString_hook.create(game::SL_GetLowercaseString_ADDR(), SL_GetLowercaseString_stub);
|
||||
SL_ConvertToLowercase_hook.create(game::SL_ConvertToLowercase.get(), SL_ConvertToLowercase_stub);
|
||||
SL_TransferRefToUser_hook.create(game::SL_TransferRefToUser_ADDR(), SL_TransferRefToUser_stub);
|
||||
SL_FreeString_hook.create(game::SL_FreeString.get(), SL_FreeString_stub);
|
||||
SL_RemoveRefToString_hook.create(game::SL_RemoveRefToString_ADDR(), SL_RemoveRefToString_stub);
|
||||
Scr_SetString_hook.create(game::Scr_SetString_ADDR(), Scr_SetString_stub);
|
||||
Scr_SetStringFromCharString_hook.create(game::Scr_SetStringFromCharString_ADDR(), Scr_SetStringFromCharString_stub);
|
||||
GScr_AllocString_hook.create(game::GScr_AllocString_ADDR(), GScr_AllocString_stub);
|
||||
SL_GetStringForFloat_hook.create(game::SL_GetStringForFloat_ADDR(), SL_GetStringForFloat_stub);
|
||||
SL_GetStringForInt_hook.create(game::SL_GetStringForInt_ADDR(), SL_GetStringForInt_stub);
|
||||
SL_GetStringForVector_hook.create(game::SL_GetStringForVector_ADDR(), SL_GetStringForVector_stub);
|
||||
SL_ShutdownSystem_hook.create(game::SL_ShutdownSystem_ADDR(), SL_ShutdownSystem_stub);
|
||||
SL_TransferSystem_hook.create(game::SL_TransferSystem.get(), SL_TransferSystem_stub);
|
||||
SL_CreateCanonicalFilename_hook.create(game::SL_CreateCanonicalFilename_ADDR(), SL_CreateCanonicalFilename_stub);
|
||||
Scr_CreateCanonicalFilename_hook.create(game::Scr_CreateCanonicalFilename.get(), Scr_CreateCanonicalFilename_stub);
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
|
||||
//Original hook function addresses
|
||||
SL_ConvertToString_original = SL_ConvertToString_hook.get_original();
|
||||
SL_GetStringLen_original = SL_GetStringLen_hook.get_original();
|
||||
GetHashCode_original = GetHashCode_hook.get_original();
|
||||
SL_Init_original = SL_Init_hook.get_original();
|
||||
SL_FindStringOfSize_original = SL_FindStringOfSize_hook.get_original();
|
||||
SL_FindString_original = SL_FindString_hook.get_original();
|
||||
SL_FindLowercaseString_original = SL_FindLowercaseString_hook.get_original();
|
||||
SL_AddUserInternal_original = SL_AddUserInternal_hook.get_original();
|
||||
Mark_ScriptStringCustom_original = Mark_ScriptStringCustom_hook.get_original();
|
||||
SL_GetStringOfSize_original = SL_GetStringOfSize_hook.get_original();
|
||||
SL_GetString__original = SL_GetString__hook.get_original();
|
||||
SL_GetString__0_original = SL_GetString__0_hook.get_original();
|
||||
SL_GetLowercaseStringOfLen_original = SL_GetLowercaseStringOfLen_hook.get_original();
|
||||
SL_GetLowercaseString_original = SL_GetLowercaseString_hook.get_original();
|
||||
SL_ConvertToLowercase_original = SL_ConvertToLowercase_hook.get_original();
|
||||
SL_TransferRefToUser_original = SL_TransferRefToUser_hook.get_original();
|
||||
SL_FreeString_original = SL_FreeString_hook.get_original();
|
||||
SL_RemoveRefToString_original = SL_RemoveRefToString_hook.get_original();
|
||||
Scr_SetString_original = Scr_SetString_hook.get_original();
|
||||
Scr_SetStringFromCharString_original = Scr_SetStringFromCharString_hook.get_original();
|
||||
GScr_AllocString_original = GScr_AllocString_hook.get_original();
|
||||
SL_GetStringForFloat_original = SL_GetStringForFloat_hook.get_original();
|
||||
SL_GetStringForInt_original = SL_GetStringForInt_hook.get_original();
|
||||
SL_GetStringForVector_original = SL_GetStringForVector_hook.get_original();
|
||||
SL_ShutdownSystem_original = SL_ShutdownSystem_hook.get_original();
|
||||
SL_TransferSystem_original = SL_TransferSystem_hook.get_original();
|
||||
SL_CreateCanonicalFilename_original = SL_CreateCanonicalFilename_hook.get_original();
|
||||
Scr_CreateCanonicalFilename_original = Scr_CreateCanonicalFilename_hook.get_original();
|
||||
SL_ConvertToString_hook.create(game::SL_ConvertToString_ADDR(), SL_ConvertToString_stub, quick);
|
||||
SL_GetStringLen_hook.create(game::SL_GetStringLen_ADDR(), SL_GetStringLen_stub, quick);
|
||||
GetHashCode_hook.create(game::GetHashCode_ADDR(), GetHashCode_stub, quick);
|
||||
SL_Init_hook.create(game::SL_Init_ADDR(), SL_Init_stub, quick);
|
||||
SL_FindStringOfSize_hook.create(game::SL_FindStringOfSize_ADDR(), SL_FindStringOfSize_stub, quick);
|
||||
SL_FindString_hook.create(game::SL_FindString_ADDR(), SL_FindString_stub, quick);
|
||||
SL_FindLowercaseString_hook.create(game::SL_FindLowercaseString.get(), SL_FindLowercaseString_stub, quick);
|
||||
SL_AddUserInternal_hook.create(game::SL_AddUserInternal_ADDR(), SL_AddUserInternal_stub, quick);
|
||||
Mark_ScriptStringCustom_hook.create(game::Mark_ScriptStringCustom_ADDR(), Mark_ScriptStringCustom_stub, quick);
|
||||
SL_GetStringOfSize_hook.create(game::SL_GetStringOfSize.get(), SL_GetStringOfSize_stub, quick);
|
||||
SL_GetString__hook.create(game::SL_GetString__ADDR(), SL_GetString__stub, quick);
|
||||
SL_GetString__0_hook.create(game::SL_GetString__0_ADDR(), SL_GetString__0_stub, quick);
|
||||
SL_GetLowercaseStringOfLen_hook.create(game::SL_GetLowercaseStringOfLen.get(), SL_GetLowercaseStringOfLen_stub, quick);
|
||||
SL_GetLowercaseString_hook.create(game::SL_GetLowercaseString_ADDR(), SL_GetLowercaseString_stub, quick);
|
||||
SL_ConvertToLowercase_hook.create(game::SL_ConvertToLowercase.get(), SL_ConvertToLowercase_stub, quick);
|
||||
SL_TransferRefToUser_hook.create(game::SL_TransferRefToUser_ADDR(), SL_TransferRefToUser_stub, quick);
|
||||
SL_FreeString_hook.create(game::SL_FreeString.get(), SL_FreeString_stub, quick);
|
||||
SL_RemoveRefToString_hook.create(game::SL_RemoveRefToString_ADDR(), SL_RemoveRefToString_stub, quick);
|
||||
Scr_SetString_hook.create(game::Scr_SetString_ADDR(), Scr_SetString_stub, quick);
|
||||
Scr_SetStringFromCharString_hook.create(game::Scr_SetStringFromCharString_ADDR(), Scr_SetStringFromCharString_stub, quick);
|
||||
GScr_AllocString_hook.create(game::GScr_AllocString_ADDR(), GScr_AllocString_stub, quick);
|
||||
SL_GetStringForFloat_hook.create(game::SL_GetStringForFloat_ADDR(), SL_GetStringForFloat_stub, quick);
|
||||
SL_GetStringForInt_hook.create(game::SL_GetStringForInt_ADDR(), SL_GetStringForInt_stub, quick);
|
||||
SL_GetStringForVector_hook.create(game::SL_GetStringForVector_ADDR(), SL_GetStringForVector_stub, quick);
|
||||
SL_ShutdownSystem_hook.create(game::SL_ShutdownSystem_ADDR(), SL_ShutdownSystem_stub, quick);
|
||||
SL_TransferSystem_hook.create(game::SL_TransferSystem.get(), SL_TransferSystem_stub, quick);
|
||||
SL_CreateCanonicalFilename_hook.create(game::SL_CreateCanonicalFilename_ADDR(), SL_CreateCanonicalFilename_stub, quick);
|
||||
Scr_CreateCanonicalFilename_hook.create(game::Scr_CreateCanonicalFilename.get(), Scr_CreateCanonicalFilename_stub, quick);
|
||||
}
|
||||
|
||||
private:
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -79,79 +79,6 @@ namespace re_cscr_vm
|
||||
utils::hook::detour Scr_RunCurrentThreads_hook;
|
||||
utils::hook::detour Scr_ResetTimeout_hook;
|
||||
|
||||
void* Scr_VM_Init_original;
|
||||
void* Scr_Init_original;
|
||||
void* Scr_Shutdown_original;
|
||||
void* Scr_ErrorInternal_original;
|
||||
void* Scr_ClearOutParams_original;
|
||||
void* GetDummyObject_original;
|
||||
void* GetDummyFieldValue_original;
|
||||
void* VM_ExecuteInternal_original;
|
||||
void* VM_CancelNotifyInternal_original;
|
||||
void* VM_CancelNotify_original;
|
||||
void* VM_ArchiveStack_original;
|
||||
void* Scr_AddLocalVars_original;
|
||||
void* VM_UnarchiveStack_original;
|
||||
void* VM_TerminateStack_original;
|
||||
void* VM_TrimStack_original;
|
||||
void* Scr_TerminateRunningThread_original;
|
||||
void* Scr_TerminateWaitThread_original;
|
||||
void* Scr_CancelWaittill_original;
|
||||
void* Scr_TerminateWaittillThread_original;
|
||||
void* Scr_TerminateThread_original;
|
||||
void* VM_Notify_original;
|
||||
void* Scr_NotifyNum_Internal_original;
|
||||
void* Scr_CancelNotifyList_original;
|
||||
void* VM_TerminateTime_original;
|
||||
void* VM_Resume_original;
|
||||
void* VM_Execute_original;
|
||||
void* Scr_ExecThread_original;
|
||||
void* Scr_ExecEntThread_original;
|
||||
void* Scr_AddExecThread_original;
|
||||
void* VM_SetTime_original;
|
||||
void* Scr_InitSystem_original;
|
||||
void* Scr_ShutdownSystem_original;
|
||||
void* Scr_IsSystemActive_original;
|
||||
void* Scr_GetInt_original;
|
||||
void* Scr_GetAnim_original;
|
||||
void* Scr_GetAnimTree_original;
|
||||
void* Scr_GetFloat_original;
|
||||
void* Scr_GetConstString_original;
|
||||
void* Scr_GetConstLowercaseString_original;
|
||||
void* Scr_GetString_original;
|
||||
void* Scr_GetConstStringIncludeNull_original;
|
||||
void* Scr_GetDebugString_original;
|
||||
void* Scr_GetConstIString_original;
|
||||
void* Scr_GetVector_original;
|
||||
void* Scr_GetFunc_original;
|
||||
void* Scr_GetEntityRef_original;
|
||||
void* Scr_GetObject_original;
|
||||
void* Scr_GetType_original;
|
||||
void* Scr_GetTypeName_original;
|
||||
void* Scr_GetPointerType_original;
|
||||
void* Scr_AddInt_original;
|
||||
void* Scr_AddFloat_original;
|
||||
void* Scr_AddAnim_original;
|
||||
void* Scr_AddUndefined_original;
|
||||
void* Scr_AddObject_original;
|
||||
void* Scr_AddString_original;
|
||||
void* Scr_AddIString_original;
|
||||
void* Scr_AddConstString_original;
|
||||
void* Scr_AddVector_original;
|
||||
void* Scr_MakeArray_original;
|
||||
void* Scr_AddArray_original;
|
||||
void* Scr_AddArrayStringIndexed_original;
|
||||
void* Scr_Error_original;
|
||||
void* Scr_TerminalError_original;
|
||||
void* Scr_ParamError_original;
|
||||
void* Scr_ObjectError_original;
|
||||
void* SetEntityFieldValue_original;
|
||||
void* GetEntityFieldValue_original;
|
||||
void* Scr_SetStructField_original;
|
||||
void* Scr_IncTime_original;
|
||||
void* Scr_RunCurrentThreads_original;
|
||||
void* Scr_ResetTimeout_original;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
@ -167,7 +94,7 @@ namespace re_cscr_vm
|
||||
void Scr_Init_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_Init(a1, Scr_Init_original);
|
||||
game::Scr_Init(a1, Scr_Init_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_Init(a1);
|
||||
#endif
|
||||
@ -187,7 +114,7 @@ namespace re_cscr_vm
|
||||
void Scr_Shutdown_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_Shutdown(a1, Scr_Shutdown_original);
|
||||
game::Scr_Shutdown(a1, Scr_Shutdown_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_Shutdown(a1);
|
||||
#endif
|
||||
@ -207,7 +134,7 @@ namespace re_cscr_vm
|
||||
void Scr_ErrorInternal_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_ErrorInternal(a1, Scr_ErrorInternal_original);
|
||||
game::Scr_ErrorInternal(a1, Scr_ErrorInternal_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_ErrorInternal(a1);
|
||||
#endif
|
||||
@ -227,7 +154,7 @@ namespace re_cscr_vm
|
||||
void Scr_ClearOutParams_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_ClearOutParams(a1, Scr_ClearOutParams_original);
|
||||
game::Scr_ClearOutParams(a1, Scr_ClearOutParams_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_ClearOutParams(a1);
|
||||
#endif
|
||||
@ -247,7 +174,7 @@ namespace re_cscr_vm
|
||||
unsigned int GetDummyObject_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::GetDummyObject(a1, GetDummyObject_original);
|
||||
return game::GetDummyObject(a1, GetDummyObject_hook.get_original());
|
||||
#else
|
||||
return codsrc::GetDummyObject(a1);
|
||||
#endif
|
||||
@ -267,7 +194,7 @@ namespace re_cscr_vm
|
||||
unsigned int GetDummyFieldValue_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::GetDummyFieldValue(a1, GetDummyFieldValue_original);
|
||||
return game::GetDummyFieldValue(a1, GetDummyFieldValue_hook.get_original());
|
||||
#else
|
||||
return codsrc::GetDummyFieldValue(a1);
|
||||
#endif
|
||||
@ -296,7 +223,7 @@ namespace re_cscr_vm
|
||||
void VM_CancelNotifyInternal_call(game::scriptInstance_t inst, unsigned int notifyListOwnerId, [[maybe_unused]] void* caller_addr, unsigned int startLocalId, unsigned int notifyListId, unsigned int notifyNameListId, unsigned int stringValue)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::VM_CancelNotifyInternal(inst, notifyListOwnerId, startLocalId, notifyListId, notifyNameListId, stringValue, VM_CancelNotifyInternal_original);
|
||||
game::VM_CancelNotifyInternal(inst, notifyListOwnerId, startLocalId, notifyListId, notifyNameListId, stringValue, VM_CancelNotifyInternal_hook.get_original());
|
||||
#else
|
||||
codsrc::VM_CancelNotifyInternal(inst, notifyListOwnerId, startLocalId, notifyListId, notifyNameListId, stringValue);
|
||||
#endif
|
||||
@ -317,7 +244,7 @@ namespace re_cscr_vm
|
||||
void VM_CancelNotify_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr, unsigned int a2, unsigned int a3)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::VM_CancelNotify(a1, a2, a3, VM_CancelNotify_original);
|
||||
game::VM_CancelNotify(a1, a2, a3, VM_CancelNotify_hook.get_original());
|
||||
#else
|
||||
codsrc::VM_CancelNotify(a1, a2, a3);
|
||||
#endif
|
||||
@ -337,7 +264,7 @@ namespace re_cscr_vm
|
||||
game::VariableStackBuffer* VM_ArchiveStack_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::VM_ArchiveStack(inst, VM_ArchiveStack_original);
|
||||
return game::VM_ArchiveStack(inst, VM_ArchiveStack_hook.get_original());
|
||||
#else
|
||||
return codsrc::VM_ArchiveStack(inst);
|
||||
#endif
|
||||
@ -357,7 +284,7 @@ namespace re_cscr_vm
|
||||
int Scr_AddLocalVars_call(game::scriptInstance_t a1, unsigned int a2, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::Scr_AddLocalVars(a1, a2, Scr_AddLocalVars_original);
|
||||
return game::Scr_AddLocalVars(a1, a2, Scr_AddLocalVars_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_AddLocalVars(a1, a2);
|
||||
#endif
|
||||
@ -387,7 +314,7 @@ namespace re_cscr_vm
|
||||
void VM_TerminateStack_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr, unsigned int a2, unsigned int a3, game::VariableStackBuffer* name)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::VM_TerminateStack(a1, a2, a3, name, VM_TerminateStack_original);
|
||||
game::VM_TerminateStack(a1, a2, a3, name, VM_TerminateStack_hook.get_original());
|
||||
#else
|
||||
codsrc::VM_TerminateStack(a1, a2, a3, name);
|
||||
#endif
|
||||
@ -407,7 +334,7 @@ namespace re_cscr_vm
|
||||
void VM_TrimStack_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr, unsigned int parentId, game::VariableStackBuffer* a3, int fromEndon)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::VM_TrimStack(a1, parentId, a3, fromEndon, VM_TrimStack_original);
|
||||
game::VM_TrimStack(a1, parentId, a3, fromEndon, VM_TrimStack_hook.get_original());
|
||||
#else
|
||||
codsrc::VM_TrimStack(a1, parentId, a3, fromEndon);
|
||||
#endif
|
||||
@ -427,7 +354,7 @@ namespace re_cscr_vm
|
||||
void Scr_TerminateRunningThread_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr, unsigned int a2)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_TerminateRunningThread(a1, a2, Scr_TerminateRunningThread_original);
|
||||
game::Scr_TerminateRunningThread(a1, a2, Scr_TerminateRunningThread_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_TerminateRunningThread(a1, a2);
|
||||
#endif
|
||||
@ -447,7 +374,7 @@ namespace re_cscr_vm
|
||||
void Scr_TerminateWaitThread_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr, unsigned int a2, unsigned int a3)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_TerminateWaitThread(a1, a2, a3, Scr_TerminateWaitThread_original);
|
||||
game::Scr_TerminateWaitThread(a1, a2, a3, Scr_TerminateWaitThread_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_TerminateWaitThread(a1, a2, a3);
|
||||
#endif
|
||||
@ -467,7 +394,7 @@ namespace re_cscr_vm
|
||||
void Scr_CancelWaittill_call(game::scriptInstance_t inst, unsigned int startLocalId, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_CancelWaittill(inst, startLocalId, Scr_CancelWaittill_original);
|
||||
game::Scr_CancelWaittill(inst, startLocalId, Scr_CancelWaittill_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_CancelWaittill(inst, startLocalId);
|
||||
#endif
|
||||
@ -488,7 +415,7 @@ namespace re_cscr_vm
|
||||
void Scr_TerminateWaittillThread_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr, unsigned int a2, unsigned int a3)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_TerminateWaittillThread(a1, a2, a3, Scr_TerminateWaittillThread_original);
|
||||
game::Scr_TerminateWaittillThread(a1, a2, a3, Scr_TerminateWaittillThread_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_TerminateWaittillThread(a1, a2, a3);
|
||||
#endif
|
||||
@ -508,7 +435,7 @@ namespace re_cscr_vm
|
||||
void Scr_TerminateThread_call(unsigned int a2, game::scriptInstance_t a3, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_TerminateThread(a2, a3, Scr_TerminateThread_original);
|
||||
game::Scr_TerminateThread(a2, a3, Scr_TerminateThread_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_TerminateThread(a2, a3);
|
||||
#endif
|
||||
@ -529,7 +456,7 @@ namespace re_cscr_vm
|
||||
void VM_Notify_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, int notifyListOwnerId, unsigned int stringValue, game::VariableValue* top)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::VM_Notify(inst, notifyListOwnerId, stringValue, top, VM_Notify_original);
|
||||
game::VM_Notify(inst, notifyListOwnerId, stringValue, top, VM_Notify_hook.get_original());
|
||||
#else
|
||||
codsrc::VM_Notify(inst, notifyListOwnerId, stringValue, top);
|
||||
#endif
|
||||
@ -549,7 +476,7 @@ namespace re_cscr_vm
|
||||
void Scr_NotifyNum_Internal_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, int entNum, int entClass, unsigned int notifStr, int numParams)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_NotifyNum_Internal(inst, entNum, entClass, notifStr, numParams, Scr_NotifyNum_Internal_original);
|
||||
game::Scr_NotifyNum_Internal(inst, entNum, entClass, notifStr, numParams, Scr_NotifyNum_Internal_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_NotifyNum_Internal(inst, entNum, entClass, notifStr, numParams);
|
||||
#endif
|
||||
@ -569,7 +496,7 @@ namespace re_cscr_vm
|
||||
void Scr_CancelNotifyList_call(unsigned int notifyListOwnerId, [[maybe_unused]] void* caller_addr, game::scriptInstance_t inst)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_CancelNotifyList(notifyListOwnerId, inst, Scr_CancelNotifyList_original);
|
||||
game::Scr_CancelNotifyList(notifyListOwnerId, inst, Scr_CancelNotifyList_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_CancelNotifyList(notifyListOwnerId, inst);
|
||||
#endif
|
||||
@ -589,7 +516,7 @@ namespace re_cscr_vm
|
||||
void VM_TerminateTime_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr, unsigned int parentId)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::VM_TerminateTime(a1, parentId, VM_TerminateTime_original);
|
||||
game::VM_TerminateTime(a1, parentId, VM_TerminateTime_hook.get_original());
|
||||
#else
|
||||
codsrc::VM_TerminateTime(a1, parentId);
|
||||
#endif
|
||||
@ -609,7 +536,7 @@ namespace re_cscr_vm
|
||||
void VM_Resume_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, unsigned int timeId)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::VM_Resume(inst, timeId, VM_Resume_original);
|
||||
game::VM_Resume(inst, timeId, VM_Resume_hook.get_original());
|
||||
#else
|
||||
codsrc::VM_Resume(inst, timeId);
|
||||
#endif
|
||||
@ -638,7 +565,7 @@ namespace re_cscr_vm
|
||||
unsigned __int16 Scr_ExecThread_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, unsigned int handle, unsigned int paramCount)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::Scr_ExecThread(inst, handle, paramCount, Scr_ExecThread_original);
|
||||
return game::Scr_ExecThread(inst, handle, paramCount, Scr_ExecThread_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_ExecThread(inst, handle, paramCount);
|
||||
#endif
|
||||
@ -657,7 +584,7 @@ namespace re_cscr_vm
|
||||
unsigned __int16 Scr_ExecEntThread_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, int entNum, unsigned int handle, int numParams, unsigned int entClass)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::Scr_ExecEntThreadNum(inst, entNum, handle, numParams, entClass, Scr_ExecEntThread_original);
|
||||
return game::Scr_ExecEntThreadNum(inst, entNum, handle, numParams, entClass, Scr_ExecEntThread_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_ExecEntThreadNum(inst, entNum, handle, numParams, entClass);
|
||||
#endif
|
||||
@ -677,7 +604,7 @@ namespace re_cscr_vm
|
||||
void Scr_AddExecThread_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr, unsigned int handle)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_AddExecThread(a1, handle, Scr_AddExecThread_original);
|
||||
game::Scr_AddExecThread(a1, handle, Scr_AddExecThread_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_AddExecThread(a1, handle);
|
||||
#endif
|
||||
@ -697,7 +624,7 @@ namespace re_cscr_vm
|
||||
void VM_SetTime_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::VM_SetTime(a1, VM_SetTime_original);
|
||||
game::VM_SetTime(a1, VM_SetTime_hook.get_original());
|
||||
#else
|
||||
codsrc::VM_SetTime(a1);
|
||||
#endif
|
||||
@ -717,7 +644,7 @@ namespace re_cscr_vm
|
||||
void Scr_InitSystem_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_InitSystem(a1, Scr_InitSystem_original);
|
||||
game::Scr_InitSystem(a1, Scr_InitSystem_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_InitSystem(a1);
|
||||
#endif
|
||||
@ -760,7 +687,7 @@ namespace re_cscr_vm
|
||||
int Scr_GetInt_call(game::scriptInstance_t inst, unsigned int index, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::Scr_GetInt(inst, index, Scr_GetInt_original);
|
||||
return game::Scr_GetInt(inst, index, Scr_GetInt_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetInt(inst, index);
|
||||
#endif
|
||||
@ -781,7 +708,7 @@ namespace re_cscr_vm
|
||||
game::scr_anim_s Scr_GetAnim_call(unsigned int index, game::XAnimTree_s* a2, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::Scr_GetAnim(index, a2, Scr_GetAnim_original);
|
||||
return game::Scr_GetAnim(index, a2, Scr_GetAnim_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetAnim(index, a2);
|
||||
#endif
|
||||
@ -811,7 +738,7 @@ namespace re_cscr_vm
|
||||
float Scr_GetFloat_call(game::scriptInstance_t inst, unsigned int index, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::Scr_GetFloat(inst, index, Scr_GetFloat_original);
|
||||
return game::Scr_GetFloat(inst, index, Scr_GetFloat_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetFloat(inst, index);
|
||||
#endif
|
||||
@ -839,7 +766,7 @@ namespace re_cscr_vm
|
||||
unsigned int Scr_GetConstString_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, unsigned int index)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::Scr_GetConstString(inst, index, Scr_GetConstString_original);
|
||||
return game::Scr_GetConstString(inst, index, Scr_GetConstString_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetConstString(inst, index);
|
||||
#endif
|
||||
@ -859,7 +786,7 @@ namespace re_cscr_vm
|
||||
unsigned int Scr_GetConstLowercaseString_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, unsigned int index)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::Scr_GetConstLowercaseString(inst, index, Scr_GetConstLowercaseString_original);
|
||||
return game::Scr_GetConstLowercaseString(inst, index, Scr_GetConstLowercaseString_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetConstLowercaseString(inst, index);
|
||||
#endif
|
||||
@ -879,7 +806,7 @@ namespace re_cscr_vm
|
||||
const char* Scr_GetString_call(unsigned int index, game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::Scr_GetString(index, inst, Scr_GetString_original);
|
||||
return game::Scr_GetString(index, inst, Scr_GetString_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetString(index, inst);
|
||||
#endif
|
||||
@ -900,7 +827,7 @@ namespace re_cscr_vm
|
||||
unsigned int Scr_GetConstStringIncludeNull_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::Scr_GetConstStringIncludeNull(a1, Scr_GetConstStringIncludeNull_original);
|
||||
return game::Scr_GetConstStringIncludeNull(a1, Scr_GetConstStringIncludeNull_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetConstStringIncludeNull(a1);
|
||||
#endif
|
||||
@ -920,7 +847,7 @@ namespace re_cscr_vm
|
||||
char* Scr_GetDebugString_call(game::scriptInstance_t a1, unsigned int a2, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::Scr_GetDebugString(a1, a2, Scr_GetDebugString_original);
|
||||
return game::Scr_GetDebugString(a1, a2, Scr_GetDebugString_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetDebugString(a1, a2);
|
||||
#endif
|
||||
@ -941,7 +868,7 @@ namespace re_cscr_vm
|
||||
unsigned int Scr_GetConstIString_call(unsigned int index, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::Scr_GetConstIString(index, Scr_GetConstIString_original);
|
||||
return game::Scr_GetConstIString(index, Scr_GetConstIString_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetConstIString(index);
|
||||
#endif
|
||||
@ -961,7 +888,7 @@ namespace re_cscr_vm
|
||||
void Scr_GetVector_call(game::scriptInstance_t inst, float* value, [[maybe_unused]] void* caller_addr, unsigned int index)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_GetVector(inst, value, index, Scr_GetVector_original);
|
||||
game::Scr_GetVector(inst, value, index, Scr_GetVector_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_GetVector(inst, value, index);
|
||||
#endif
|
||||
@ -991,7 +918,7 @@ namespace re_cscr_vm
|
||||
game::scr_entref_t* Scr_GetEntityRef_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, game::scr_entref_t* retstr, unsigned int index)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::Scr_GetEntityRef(inst, retstr, index, Scr_GetEntityRef_original);
|
||||
return game::Scr_GetEntityRef(inst, retstr, index, Scr_GetEntityRef_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetEntityRef(inst, retstr, index);
|
||||
#endif
|
||||
@ -1011,7 +938,7 @@ namespace re_cscr_vm
|
||||
game::VariableUnion Scr_GetObject_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::Scr_GetObject(a1, Scr_GetObject_original);
|
||||
return game::Scr_GetObject(a1, Scr_GetObject_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetObject(a1);
|
||||
#endif
|
||||
@ -1031,7 +958,7 @@ namespace re_cscr_vm
|
||||
game::VariableType Scr_GetType_call(game::scriptInstance_t inst, unsigned int index, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::Scr_GetType(inst, index, Scr_GetType_original);
|
||||
return game::Scr_GetType(inst, index, Scr_GetType_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetType(inst, index);
|
||||
#endif
|
||||
@ -1052,7 +979,7 @@ namespace re_cscr_vm
|
||||
const char* Scr_GetTypeName_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::Scr_GetTypeName(a1, Scr_GetTypeName_original);
|
||||
return game::Scr_GetTypeName(a1, Scr_GetTypeName_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetTypeName(a1);
|
||||
#endif
|
||||
@ -1072,7 +999,7 @@ namespace re_cscr_vm
|
||||
game::VariableType Scr_GetPointerType_call(game::scriptInstance_t a1, unsigned int a2, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::Scr_GetPointerType(a1, a2, Scr_GetPointerType_original);
|
||||
return game::Scr_GetPointerType(a1, a2, Scr_GetPointerType_hook.get_original());
|
||||
#else
|
||||
return codsrc::Scr_GetPointerType(a1, a2);
|
||||
#endif
|
||||
@ -1093,7 +1020,7 @@ namespace re_cscr_vm
|
||||
void Scr_AddInt_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, int value)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_AddInt(inst, value, Scr_AddInt_original);
|
||||
game::Scr_AddInt(inst, value, Scr_AddInt_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_AddInt(inst, value);
|
||||
#endif
|
||||
@ -1113,7 +1040,7 @@ namespace re_cscr_vm
|
||||
void Scr_AddFloat_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, float value)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_AddFloat(inst, value, Scr_AddFloat_original);
|
||||
game::Scr_AddFloat(inst, value, Scr_AddFloat_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_AddFloat(inst, value);
|
||||
#endif
|
||||
@ -1142,7 +1069,7 @@ namespace re_cscr_vm
|
||||
void Scr_AddUndefined_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_AddUndefined(inst, Scr_AddUndefined_original);
|
||||
game::Scr_AddUndefined(inst, Scr_AddUndefined_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_AddUndefined(inst);
|
||||
#endif
|
||||
@ -1162,7 +1089,7 @@ namespace re_cscr_vm
|
||||
void Scr_AddObject_call(game::scriptInstance_t inst, unsigned int entid, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_AddObject(inst, entid, Scr_AddObject_original);
|
||||
game::Scr_AddObject(inst, entid, Scr_AddObject_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_AddObject(inst, entid);
|
||||
#endif
|
||||
@ -1183,7 +1110,7 @@ namespace re_cscr_vm
|
||||
void Scr_AddString_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, char* string)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_AddString(inst, string, Scr_AddString_original);
|
||||
game::Scr_AddString(inst, string, Scr_AddString_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_AddString(inst, string);
|
||||
#endif
|
||||
@ -1203,7 +1130,7 @@ namespace re_cscr_vm
|
||||
void Scr_AddIString_call(char* string, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_AddIString(string, Scr_AddIString_original);
|
||||
game::Scr_AddIString(string, Scr_AddIString_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_AddIString(string);
|
||||
#endif
|
||||
@ -1223,7 +1150,7 @@ namespace re_cscr_vm
|
||||
void Scr_AddConstString_call(game::scriptInstance_t inst, unsigned int id, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_AddConstString(inst, id, Scr_AddConstString_original);
|
||||
game::Scr_AddConstString(inst, id, Scr_AddConstString_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_AddConstString(inst, id);
|
||||
#endif
|
||||
@ -1244,7 +1171,7 @@ namespace re_cscr_vm
|
||||
void Scr_AddVector_call(game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, float* value)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_AddVector(inst, value, Scr_AddVector_original);
|
||||
game::Scr_AddVector(inst, value, Scr_AddVector_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_AddVector(inst, value);
|
||||
#endif
|
||||
@ -1264,7 +1191,7 @@ namespace re_cscr_vm
|
||||
void Scr_MakeArray_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_MakeArray(a1, Scr_MakeArray_original);
|
||||
game::Scr_MakeArray(a1, Scr_MakeArray_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_MakeArray(a1);
|
||||
#endif
|
||||
@ -1293,7 +1220,7 @@ namespace re_cscr_vm
|
||||
void Scr_AddArrayStringIndexed_call(unsigned int id, game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_AddArrayStringIndexed(id, inst, Scr_AddArrayStringIndexed_original);
|
||||
game::Scr_AddArrayStringIndexed(id, inst, Scr_AddArrayStringIndexed_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_AddArrayStringIndexed(id, inst);
|
||||
#endif
|
||||
@ -1314,7 +1241,7 @@ namespace re_cscr_vm
|
||||
void Scr_Error_call(const char* err, game::scriptInstance_t inst, [[maybe_unused]] void* caller_addr, int is_terminal)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_Error(err, inst, is_terminal, Scr_Error_original);
|
||||
game::Scr_Error(err, inst, is_terminal, Scr_Error_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_Error(err, inst, is_terminal);
|
||||
#endif
|
||||
@ -1335,7 +1262,7 @@ namespace re_cscr_vm
|
||||
void Scr_TerminalError_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr, char* Source)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_TerminalError(a1, Source, Scr_TerminalError_original);
|
||||
game::Scr_TerminalError(a1, Source, Scr_TerminalError_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_TerminalError(a1, Source);
|
||||
#endif
|
||||
@ -1355,7 +1282,7 @@ namespace re_cscr_vm
|
||||
void Scr_ParamError_call(int a1, game::scriptInstance_t a2, [[maybe_unused]] void* caller_addr, char* Source)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_ParamError(a1, a2, Source, Scr_ParamError_original);
|
||||
game::Scr_ParamError(a1, a2, Source, Scr_ParamError_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_ParamError(a1, a2, Source);
|
||||
#endif
|
||||
@ -1376,7 +1303,7 @@ namespace re_cscr_vm
|
||||
void Scr_ObjectError_call(game::scriptInstance_t a1, const char* a2, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_ObjectError(a1, a2, Scr_ObjectError_original);
|
||||
game::Scr_ObjectError(a1, a2, Scr_ObjectError_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_ObjectError(a1, a2);
|
||||
#endif
|
||||
@ -1397,7 +1324,7 @@ namespace re_cscr_vm
|
||||
bool SetEntityFieldValue_call(game::scriptInstance_t inst, int offset_, int entnum, [[maybe_unused]] void* caller_addr, game::classNum_e classnum, int clientNum, game::VariableValue* value)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::SetEntityFieldValue(inst, offset_, entnum, classnum, clientNum, value, SetEntityFieldValue_original);
|
||||
return game::SetEntityFieldValue(inst, offset_, entnum, classnum, clientNum, value, SetEntityFieldValue_hook.get_original());
|
||||
#else
|
||||
return codsrc::SetEntityFieldValue(inst, offset_, entnum, classnum, clientNum, value);
|
||||
#endif
|
||||
@ -1419,7 +1346,7 @@ namespace re_cscr_vm
|
||||
game::VariableValue GetEntityFieldValue_call(int offset_, int entnum, [[maybe_unused]] void* caller_addr, game::scriptInstance_t inst, game::classNum_e classnum, int clientNum)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
return game::GetEntityFieldValue(offset_, entnum, inst, classnum, clientNum, GetEntityFieldValue_original);
|
||||
return game::GetEntityFieldValue(offset_, entnum, inst, classnum, clientNum, GetEntityFieldValue_hook.get_original());
|
||||
#else
|
||||
return codsrc::GetEntityFieldValue(offset_, entnum, inst, classnum, clientNum);
|
||||
#endif
|
||||
@ -1440,7 +1367,7 @@ namespace re_cscr_vm
|
||||
void Scr_SetStructField_call(unsigned int a1, unsigned int a2, [[maybe_unused]] void* caller_addr, game::scriptInstance_t a3)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_SetStructField(a1, a2, a3, Scr_SetStructField_original);
|
||||
game::Scr_SetStructField(a1, a2, a3, Scr_SetStructField_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_SetStructField(a1, a2, a3);
|
||||
#endif
|
||||
@ -1461,7 +1388,7 @@ namespace re_cscr_vm
|
||||
void Scr_IncTime_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_IncTime(a1, Scr_IncTime_original);
|
||||
game::Scr_IncTime(a1, Scr_IncTime_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_IncTime(a1);
|
||||
#endif
|
||||
@ -1481,7 +1408,7 @@ namespace re_cscr_vm
|
||||
void Scr_RunCurrentThreads_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_RunCurrentThreads(a1, Scr_RunCurrentThreads_original);
|
||||
game::Scr_RunCurrentThreads(a1, Scr_RunCurrentThreads_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_RunCurrentThreads(a1);
|
||||
#endif
|
||||
@ -1501,7 +1428,7 @@ namespace re_cscr_vm
|
||||
void Scr_ResetTimeout_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
game::Scr_ResetTimeout(a1, Scr_ResetTimeout_original);
|
||||
game::Scr_ResetTimeout(a1, Scr_ResetTimeout_hook.get_original());
|
||||
#else
|
||||
codsrc::Scr_ResetTimeout(a1);
|
||||
#endif
|
||||
@ -1524,152 +1451,83 @@ namespace re_cscr_vm
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
Scr_VM_Init_hook.create(game::Scr_VM_Init.get(), Scr_VM_Init_stub);
|
||||
Scr_Init_hook.create(game::Scr_Init_ADDR(), Scr_Init_stub);
|
||||
Scr_Shutdown_hook.create(game::Scr_Shutdown_ADDR(), Scr_Shutdown_stub);
|
||||
Scr_ErrorInternal_hook.create(game::Scr_ErrorInternal_ADDR(), Scr_ErrorInternal_stub);
|
||||
Scr_ClearOutParams_hook.create(game::Scr_ClearOutParams_ADDR(), Scr_ClearOutParams_stub);
|
||||
GetDummyObject_hook.create(game::GetDummyObject_ADDR(), GetDummyObject_stub);
|
||||
GetDummyFieldValue_hook.create(game::GetDummyFieldValue_ADDR(), GetDummyFieldValue_stub);
|
||||
VM_ExecuteInternal_hook.create(game::VM_ExecuteInternal.get(), VM_ExecuteInternal_stub);
|
||||
VM_CancelNotifyInternal_hook.create(game::VM_CancelNotifyInternal_ADDR(), VM_CancelNotifyInternal_stub);
|
||||
VM_CancelNotify_hook.create(game::VM_CancelNotify_ADDR(), VM_CancelNotify_stub);
|
||||
VM_ArchiveStack_hook.create(game::VM_ArchiveStack_ADDR(), VM_ArchiveStack_stub);
|
||||
Scr_AddLocalVars_hook.create(game::Scr_AddLocalVars_ADDR(), Scr_AddLocalVars_stub);
|
||||
VM_UnarchiveStack_hook.create(game::VM_UnarchiveStack.get(), VM_UnarchiveStack_stub);
|
||||
VM_TerminateStack_hook.create(game::VM_TerminateStack_ADDR(), VM_TerminateStack_stub);
|
||||
VM_TrimStack_hook.create(game::VM_TrimStack_ADDR(), VM_TrimStack_stub);
|
||||
Scr_TerminateRunningThread_hook.create(game::Scr_TerminateRunningThread_ADDR(), Scr_TerminateRunningThread_stub);
|
||||
Scr_TerminateWaitThread_hook.create(game::Scr_TerminateWaitThread_ADDR(), Scr_TerminateWaitThread_stub);
|
||||
Scr_CancelWaittill_hook.create(game::Scr_CancelWaittill_ADDR(), Scr_CancelWaittill_stub);
|
||||
Scr_TerminateWaittillThread_hook.create(game::Scr_TerminateWaittillThread_ADDR(), Scr_TerminateWaittillThread_stub);
|
||||
Scr_TerminateThread_hook.create(game::Scr_TerminateThread_ADDR(), Scr_TerminateThread_stub);
|
||||
VM_Notify_hook.create(game::VM_Notify_ADDR(), VM_Notify_stub);
|
||||
Scr_NotifyNum_Internal_hook.create(game::Scr_NotifyNum_Internal_ADDR(), Scr_NotifyNum_Internal_stub);
|
||||
Scr_CancelNotifyList_hook.create(game::Scr_CancelNotifyList_ADDR(), Scr_CancelNotifyList_stub);
|
||||
VM_TerminateTime_hook.create(game::VM_TerminateTime_ADDR(), VM_TerminateTime_stub);
|
||||
VM_Resume_hook.create(game::VM_Resume_ADDR(), VM_Resume_stub);
|
||||
VM_Execute_hook.create(game::VM_Execute.get(), VM_Execute_stub);
|
||||
Scr_ExecThread_hook.create(game::Scr_ExecThread_ADDR(), Scr_ExecThread_stub);
|
||||
Scr_ExecEntThread_hook.create(game::Scr_ExecEntThread_ADDR(), Scr_ExecEntThread_stub);
|
||||
Scr_AddExecThread_hook.create(game::Scr_AddExecThread_ADDR(), Scr_AddExecThread_stub);
|
||||
VM_SetTime_hook.create(game::VM_SetTime_ADDR(), VM_SetTime_stub);
|
||||
Scr_InitSystem_hook.create(game::Scr_InitSystem_ADDR(), Scr_InitSystem_stub);
|
||||
Scr_ShutdownSystem_hook.create(game::Scr_ShutdownSystem.get(), Scr_ShutdownSystem_stub);
|
||||
Scr_IsSystemActive_hook.create(game::Scr_IsSystemActive.get(), Scr_IsSystemActive_stub);
|
||||
Scr_GetInt_hook.create(game::Scr_GetInt_ADDR(), Scr_GetInt_stub);
|
||||
Scr_GetAnim_hook.create(game::Scr_GetAnim_ADDR(), Scr_GetAnim_stub);
|
||||
Scr_GetAnimTree_hook.create(game::Scr_GetAnimTree.get(), Scr_GetAnimTree_stub);
|
||||
Scr_GetFloat_hook.create(game::Scr_GetFloat_ADDR(), Scr_GetFloat_stub);
|
||||
Scr_GetConstString_hook.create(game::Scr_GetConstString_ADDR(), Scr_GetConstString_stub);
|
||||
Scr_GetConstLowercaseString_hook.create(game::Scr_GetConstLowercaseString_ADDR(), Scr_GetConstLowercaseString_stub);
|
||||
Scr_GetString_hook.create(game::Scr_GetString_ADDR(), Scr_GetString_stub);
|
||||
Scr_GetConstStringIncludeNull_hook.create(game::Scr_GetConstStringIncludeNull_ADDR(), Scr_GetConstStringIncludeNull_stub);
|
||||
Scr_GetDebugString_hook.create(game::Scr_GetDebugString_ADDR(), Scr_GetDebugString_stub);
|
||||
Scr_GetConstIString_hook.create(game::Scr_GetConstIString_ADDR(), Scr_GetConstIString_stub);
|
||||
Scr_GetVector_hook.create(game::Scr_GetVector_ADDR(), Scr_GetVector_stub);
|
||||
Scr_GetFunc_hook.create(game::Scr_GetFunc.get(), Scr_GetFunc_stub);
|
||||
Scr_GetEntityRef_hook.create(game::Scr_GetEntityRef_ADDR(), Scr_GetEntityRef_stub);
|
||||
Scr_GetObject_hook.create(game::Scr_GetObject_ADDR(), Scr_GetObject_stub);
|
||||
Scr_GetType_hook.create(game::Scr_GetType_ADDR(), Scr_GetType_stub);
|
||||
Scr_GetTypeName_hook.create(game::Scr_GetTypeName_ADDR(), Scr_GetTypeName_stub);
|
||||
Scr_GetPointerType_hook.create(game::Scr_GetPointerType_ADDR(), Scr_GetPointerType_stub);
|
||||
Scr_AddInt_hook.create(game::Scr_AddInt_ADDR(), Scr_AddInt_stub);
|
||||
Scr_AddFloat_hook.create(game::Scr_AddFloat_ADDR(), Scr_AddFloat_stub);
|
||||
Scr_AddAnim_hook.create(game::Scr_AddAnim.get(), Scr_AddAnim_stub);
|
||||
Scr_AddUndefined_hook.create(game::Scr_AddUndefined_ADDR(), Scr_AddUndefined_stub);
|
||||
Scr_AddObject_hook.create(game::Scr_AddObject_ADDR(), Scr_AddObject_stub);
|
||||
Scr_AddString_hook.create(game::Scr_AddString_ADDR(), Scr_AddString_stub);
|
||||
Scr_AddIString_hook.create(game::Scr_AddIString_ADDR(), Scr_AddIString_stub);
|
||||
Scr_AddConstString_hook.create(game::Scr_AddConstString_ADDR(), Scr_AddConstString_stub);
|
||||
Scr_AddVector_hook.create(game::Scr_AddVector_ADDR(), Scr_AddVector_stub);
|
||||
Scr_MakeArray_hook.create(game::Scr_MakeArray_ADDR(), Scr_MakeArray_stub);
|
||||
Scr_AddArray_hook.create(game::Scr_AddArray.get(), Scr_AddArray_stub);
|
||||
Scr_AddArrayStringIndexed_hook.create(game::Scr_AddArrayStringIndexed_ADDR(), Scr_AddArrayStringIndexed_stub);
|
||||
Scr_Error_hook.create(game::Scr_Error_ADDR(), Scr_Error_stub);
|
||||
Scr_TerminalError_hook.create(game::Scr_TerminalError_ADDR(), Scr_TerminalError_stub);
|
||||
Scr_ParamError_hook.create(game::Scr_ParamError_ADDR(), Scr_ParamError_stub);
|
||||
Scr_ObjectError_hook.create(game::Scr_ObjectError_ADDR(), Scr_ObjectError_stub);
|
||||
SetEntityFieldValue_hook.create(game::SetEntityFieldValue_ADDR(), SetEntityFieldValue_stub);
|
||||
GetEntityFieldValue_hook.create(game::GetEntityFieldValue_ADDR(), GetEntityFieldValue_stub);
|
||||
Scr_SetStructField_hook.create(game::Scr_SetStructField_ADDR(), Scr_SetStructField_stub);
|
||||
Scr_IncTime_hook.create(game::Scr_IncTime_ADDR(), Scr_IncTime_stub);
|
||||
Scr_RunCurrentThreads_hook.create(game::Scr_RunCurrentThreads_ADDR(), Scr_RunCurrentThreads_stub);
|
||||
Scr_ResetTimeout_hook.create(game::Scr_ResetTimeout_ADDR(), Scr_ResetTimeout_stub);
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
|
||||
//Original hook function addresses
|
||||
Scr_VM_Init_original = Scr_VM_Init_hook.get_original();
|
||||
Scr_Init_original = Scr_Init_hook.get_original();
|
||||
Scr_Shutdown_original = Scr_Shutdown_hook.get_original();
|
||||
Scr_ErrorInternal_original = Scr_ErrorInternal_hook.get_original();
|
||||
Scr_ClearOutParams_original = Scr_ClearOutParams_hook.get_original();
|
||||
GetDummyObject_original = GetDummyObject_hook.get_original();
|
||||
GetDummyFieldValue_original = GetDummyFieldValue_hook.get_original();
|
||||
VM_ExecuteInternal_original = VM_ExecuteInternal_hook.get_original();
|
||||
VM_CancelNotifyInternal_original = VM_CancelNotifyInternal_hook.get_original();
|
||||
VM_CancelNotify_original = VM_CancelNotify_hook.get_original();
|
||||
VM_ArchiveStack_original = VM_ArchiveStack_hook.get_original();
|
||||
Scr_AddLocalVars_original = Scr_AddLocalVars_hook.get_original();
|
||||
VM_UnarchiveStack_original = VM_UnarchiveStack_hook.get_original();
|
||||
VM_TerminateStack_original = VM_TerminateStack_hook.get_original();
|
||||
VM_TrimStack_original = VM_TrimStack_hook.get_original();
|
||||
Scr_TerminateRunningThread_original = Scr_TerminateRunningThread_hook.get_original();
|
||||
Scr_TerminateWaitThread_original = Scr_TerminateWaitThread_hook.get_original();
|
||||
Scr_CancelWaittill_original = Scr_CancelWaittill_hook.get_original();
|
||||
Scr_TerminateWaittillThread_original = Scr_TerminateWaittillThread_hook.get_original();
|
||||
Scr_TerminateThread_original = Scr_TerminateThread_hook.get_original();
|
||||
VM_Notify_original = VM_Notify_hook.get_original();
|
||||
Scr_NotifyNum_Internal_original = Scr_NotifyNum_Internal_hook.get_original();
|
||||
Scr_CancelNotifyList_original = Scr_CancelNotifyList_hook.get_original();
|
||||
VM_TerminateTime_original = VM_TerminateTime_hook.get_original();
|
||||
VM_Resume_original = VM_Resume_hook.get_original();
|
||||
VM_Execute_original = VM_Execute_hook.get_original();
|
||||
Scr_ExecThread_original = Scr_ExecThread_hook.get_original();
|
||||
Scr_ExecEntThread_original = Scr_ExecEntThread_hook.get_original();
|
||||
Scr_AddExecThread_original = Scr_AddExecThread_hook.get_original();
|
||||
VM_SetTime_original = VM_SetTime_hook.get_original();
|
||||
Scr_InitSystem_original = Scr_InitSystem_hook.get_original();
|
||||
Scr_ShutdownSystem_original = Scr_ShutdownSystem_hook.get_original();
|
||||
Scr_IsSystemActive_original = Scr_IsSystemActive_hook.get_original();
|
||||
Scr_GetInt_original = Scr_GetInt_hook.get_original();
|
||||
Scr_GetAnim_original = Scr_GetAnim_hook.get_original();
|
||||
Scr_GetAnimTree_original = Scr_GetAnimTree_hook.get_original();
|
||||
Scr_GetFloat_original = Scr_GetFloat_hook.get_original();
|
||||
Scr_GetConstString_original = Scr_GetConstString_hook.get_original();
|
||||
Scr_GetConstLowercaseString_original = Scr_GetConstLowercaseString_hook.get_original();
|
||||
Scr_GetString_original = Scr_GetString_hook.get_original();
|
||||
Scr_GetConstStringIncludeNull_original = Scr_GetConstStringIncludeNull_hook.get_original();
|
||||
Scr_GetDebugString_original = Scr_GetDebugString_hook.get_original();
|
||||
Scr_GetConstIString_original = Scr_GetConstIString_hook.get_original();
|
||||
Scr_GetVector_original = Scr_GetVector_hook.get_original();
|
||||
Scr_GetFunc_original = Scr_GetFunc_hook.get_original();
|
||||
Scr_GetEntityRef_original = Scr_GetEntityRef_hook.get_original();
|
||||
Scr_GetObject_original = Scr_GetObject_hook.get_original();
|
||||
Scr_GetType_original = Scr_GetType_hook.get_original();
|
||||
Scr_GetTypeName_original = Scr_GetTypeName_hook.get_original();
|
||||
Scr_GetPointerType_original = Scr_GetPointerType_hook.get_original();
|
||||
Scr_AddInt_original = Scr_AddInt_hook.get_original();
|
||||
Scr_AddFloat_original = Scr_AddFloat_hook.get_original();
|
||||
Scr_AddAnim_original = Scr_AddAnim_hook.get_original();
|
||||
Scr_AddUndefined_original = Scr_AddUndefined_hook.get_original();
|
||||
Scr_AddObject_original = Scr_AddObject_hook.get_original();
|
||||
Scr_AddString_original = Scr_AddString_hook.get_original();
|
||||
Scr_AddIString_original = Scr_AddIString_hook.get_original();
|
||||
Scr_AddConstString_original = Scr_AddConstString_hook.get_original();
|
||||
Scr_AddVector_original = Scr_AddVector_hook.get_original();
|
||||
Scr_MakeArray_original = Scr_MakeArray_hook.get_original();
|
||||
Scr_AddArray_original = Scr_AddArray_hook.get_original();
|
||||
Scr_AddArrayStringIndexed_original = Scr_AddArrayStringIndexed_hook.get_original();
|
||||
Scr_Error_original = Scr_Error_hook.get_original();
|
||||
Scr_TerminalError_original = Scr_TerminalError_hook.get_original();
|
||||
Scr_ParamError_original = Scr_ParamError_hook.get_original();
|
||||
Scr_ObjectError_original = Scr_ObjectError_hook.get_original();
|
||||
SetEntityFieldValue_original = SetEntityFieldValue_hook.get_original();
|
||||
GetEntityFieldValue_original = GetEntityFieldValue_hook.get_original();
|
||||
Scr_SetStructField_original = Scr_SetStructField_hook.get_original();
|
||||
Scr_IncTime_original = Scr_IncTime_hook.get_original();
|
||||
Scr_RunCurrentThreads_original = Scr_RunCurrentThreads_hook.get_original();
|
||||
Scr_ResetTimeout_original = Scr_ResetTimeout_hook.get_original();
|
||||
Scr_VM_Init_hook.create(game::Scr_VM_Init.get(), Scr_VM_Init_stub, quick);
|
||||
Scr_Init_hook.create(game::Scr_Init_ADDR(), Scr_Init_stub, quick);
|
||||
Scr_Shutdown_hook.create(game::Scr_Shutdown_ADDR(), Scr_Shutdown_stub, quick);
|
||||
Scr_ErrorInternal_hook.create(game::Scr_ErrorInternal_ADDR(), Scr_ErrorInternal_stub, quick);
|
||||
Scr_ClearOutParams_hook.create(game::Scr_ClearOutParams_ADDR(), Scr_ClearOutParams_stub, quick);
|
||||
GetDummyObject_hook.create(game::GetDummyObject_ADDR(), GetDummyObject_stub, quick);
|
||||
GetDummyFieldValue_hook.create(game::GetDummyFieldValue_ADDR(), GetDummyFieldValue_stub, quick);
|
||||
VM_ExecuteInternal_hook.create(game::VM_ExecuteInternal.get(), VM_ExecuteInternal_stub, quick);
|
||||
VM_CancelNotifyInternal_hook.create(game::VM_CancelNotifyInternal_ADDR(), VM_CancelNotifyInternal_stub, quick);
|
||||
VM_CancelNotify_hook.create(game::VM_CancelNotify_ADDR(), VM_CancelNotify_stub, quick);
|
||||
VM_ArchiveStack_hook.create(game::VM_ArchiveStack_ADDR(), VM_ArchiveStack_stub, quick);
|
||||
Scr_AddLocalVars_hook.create(game::Scr_AddLocalVars_ADDR(), Scr_AddLocalVars_stub, quick);
|
||||
VM_UnarchiveStack_hook.create(game::VM_UnarchiveStack.get(), VM_UnarchiveStack_stub, quick);
|
||||
VM_TerminateStack_hook.create(game::VM_TerminateStack_ADDR(), VM_TerminateStack_stub, quick);
|
||||
VM_TrimStack_hook.create(game::VM_TrimStack_ADDR(), VM_TrimStack_stub, quick);
|
||||
Scr_TerminateRunningThread_hook.create(game::Scr_TerminateRunningThread_ADDR(), Scr_TerminateRunningThread_stub, quick);
|
||||
Scr_TerminateWaitThread_hook.create(game::Scr_TerminateWaitThread_ADDR(), Scr_TerminateWaitThread_stub, quick);
|
||||
Scr_CancelWaittill_hook.create(game::Scr_CancelWaittill_ADDR(), Scr_CancelWaittill_stub, quick);
|
||||
Scr_TerminateWaittillThread_hook.create(game::Scr_TerminateWaittillThread_ADDR(), Scr_TerminateWaittillThread_stub, quick);
|
||||
Scr_TerminateThread_hook.create(game::Scr_TerminateThread_ADDR(), Scr_TerminateThread_stub, quick);
|
||||
VM_Notify_hook.create(game::VM_Notify_ADDR(), VM_Notify_stub, quick);
|
||||
Scr_NotifyNum_Internal_hook.create(game::Scr_NotifyNum_Internal_ADDR(), Scr_NotifyNum_Internal_stub, quick);
|
||||
Scr_CancelNotifyList_hook.create(game::Scr_CancelNotifyList_ADDR(), Scr_CancelNotifyList_stub, quick);
|
||||
VM_TerminateTime_hook.create(game::VM_TerminateTime_ADDR(), VM_TerminateTime_stub, quick);
|
||||
VM_Resume_hook.create(game::VM_Resume_ADDR(), VM_Resume_stub, quick);
|
||||
VM_Execute_hook.create(game::VM_Execute.get(), VM_Execute_stub, quick);
|
||||
Scr_ExecThread_hook.create(game::Scr_ExecThread_ADDR(), Scr_ExecThread_stub, quick);
|
||||
Scr_ExecEntThread_hook.create(game::Scr_ExecEntThread_ADDR(), Scr_ExecEntThread_stub, quick);
|
||||
Scr_AddExecThread_hook.create(game::Scr_AddExecThread_ADDR(), Scr_AddExecThread_stub, quick);
|
||||
VM_SetTime_hook.create(game::VM_SetTime_ADDR(), VM_SetTime_stub, quick);
|
||||
Scr_InitSystem_hook.create(game::Scr_InitSystem_ADDR(), Scr_InitSystem_stub, quick);
|
||||
Scr_ShutdownSystem_hook.create(game::Scr_ShutdownSystem.get(), Scr_ShutdownSystem_stub, quick);
|
||||
Scr_IsSystemActive_hook.create(game::Scr_IsSystemActive.get(), Scr_IsSystemActive_stub, quick);
|
||||
Scr_GetInt_hook.create(game::Scr_GetInt_ADDR(), Scr_GetInt_stub, quick);
|
||||
Scr_GetAnim_hook.create(game::Scr_GetAnim_ADDR(), Scr_GetAnim_stub, quick);
|
||||
Scr_GetAnimTree_hook.create(game::Scr_GetAnimTree.get(), Scr_GetAnimTree_stub, quick);
|
||||
Scr_GetFloat_hook.create(game::Scr_GetFloat_ADDR(), Scr_GetFloat_stub, quick);
|
||||
Scr_GetConstString_hook.create(game::Scr_GetConstString_ADDR(), Scr_GetConstString_stub, quick);
|
||||
Scr_GetConstLowercaseString_hook.create(game::Scr_GetConstLowercaseString_ADDR(), Scr_GetConstLowercaseString_stub, quick);
|
||||
Scr_GetString_hook.create(game::Scr_GetString_ADDR(), Scr_GetString_stub, quick);
|
||||
Scr_GetConstStringIncludeNull_hook.create(game::Scr_GetConstStringIncludeNull_ADDR(), Scr_GetConstStringIncludeNull_stub, quick);
|
||||
Scr_GetDebugString_hook.create(game::Scr_GetDebugString_ADDR(), Scr_GetDebugString_stub, quick);
|
||||
Scr_GetConstIString_hook.create(game::Scr_GetConstIString_ADDR(), Scr_GetConstIString_stub, quick);
|
||||
Scr_GetVector_hook.create(game::Scr_GetVector_ADDR(), Scr_GetVector_stub, quick);
|
||||
Scr_GetFunc_hook.create(game::Scr_GetFunc.get(), Scr_GetFunc_stub, quick);
|
||||
Scr_GetEntityRef_hook.create(game::Scr_GetEntityRef_ADDR(), Scr_GetEntityRef_stub, quick);
|
||||
Scr_GetObject_hook.create(game::Scr_GetObject_ADDR(), Scr_GetObject_stub, quick);
|
||||
Scr_GetType_hook.create(game::Scr_GetType_ADDR(), Scr_GetType_stub, quick);
|
||||
Scr_GetTypeName_hook.create(game::Scr_GetTypeName_ADDR(), Scr_GetTypeName_stub, quick);
|
||||
Scr_GetPointerType_hook.create(game::Scr_GetPointerType_ADDR(), Scr_GetPointerType_stub, quick);
|
||||
Scr_AddInt_hook.create(game::Scr_AddInt_ADDR(), Scr_AddInt_stub, quick);
|
||||
Scr_AddFloat_hook.create(game::Scr_AddFloat_ADDR(), Scr_AddFloat_stub, quick);
|
||||
Scr_AddAnim_hook.create(game::Scr_AddAnim.get(), Scr_AddAnim_stub, quick);
|
||||
Scr_AddUndefined_hook.create(game::Scr_AddUndefined_ADDR(), Scr_AddUndefined_stub, quick);
|
||||
Scr_AddObject_hook.create(game::Scr_AddObject_ADDR(), Scr_AddObject_stub, quick);
|
||||
Scr_AddString_hook.create(game::Scr_AddString_ADDR(), Scr_AddString_stub, quick);
|
||||
Scr_AddIString_hook.create(game::Scr_AddIString_ADDR(), Scr_AddIString_stub, quick);
|
||||
Scr_AddConstString_hook.create(game::Scr_AddConstString_ADDR(), Scr_AddConstString_stub, quick);
|
||||
Scr_AddVector_hook.create(game::Scr_AddVector_ADDR(), Scr_AddVector_stub, quick);
|
||||
Scr_MakeArray_hook.create(game::Scr_MakeArray_ADDR(), Scr_MakeArray_stub, quick);
|
||||
Scr_AddArray_hook.create(game::Scr_AddArray.get(), Scr_AddArray_stub, quick);
|
||||
Scr_AddArrayStringIndexed_hook.create(game::Scr_AddArrayStringIndexed_ADDR(), Scr_AddArrayStringIndexed_stub, quick);
|
||||
Scr_Error_hook.create(game::Scr_Error_ADDR(), Scr_Error_stub, quick);
|
||||
Scr_TerminalError_hook.create(game::Scr_TerminalError_ADDR(), Scr_TerminalError_stub, quick);
|
||||
Scr_ParamError_hook.create(game::Scr_ParamError_ADDR(), Scr_ParamError_stub, quick);
|
||||
Scr_ObjectError_hook.create(game::Scr_ObjectError_ADDR(), Scr_ObjectError_stub, quick);
|
||||
SetEntityFieldValue_hook.create(game::SetEntityFieldValue_ADDR(), SetEntityFieldValue_stub, quick);
|
||||
GetEntityFieldValue_hook.create(game::GetEntityFieldValue_ADDR(), GetEntityFieldValue_stub, quick);
|
||||
Scr_SetStructField_hook.create(game::Scr_SetStructField_ADDR(), Scr_SetStructField_stub, quick);
|
||||
Scr_IncTime_hook.create(game::Scr_IncTime_ADDR(), Scr_IncTime_stub, quick);
|
||||
Scr_RunCurrentThreads_hook.create(game::Scr_RunCurrentThreads_ADDR(), Scr_RunCurrentThreads_stub, quick);
|
||||
Scr_ResetTimeout_hook.create(game::Scr_ResetTimeout_ADDR(), Scr_ResetTimeout_stub, quick);
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -18,25 +18,13 @@ namespace re_cscr_yacc
|
||||
utils::hook::detour yy_flush_buffer_hook;
|
||||
utils::hook::detour ScriptParse_hook;
|
||||
|
||||
void* LowerCase_original;
|
||||
void* yyparse_original;
|
||||
void* StringValue_original;
|
||||
void* yylex_original;
|
||||
void* yy_get_next_buffer_original;
|
||||
void* yy_get_previous_state_original;
|
||||
void* yy_try_NUL_trans_original;
|
||||
void* yyrestart_original;
|
||||
void* yy_create_buffer_original;
|
||||
void* yy_flush_buffer_original;
|
||||
void* ScriptParse_original;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
unsigned int LowerCase_call(unsigned int strVal, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_YACC_USE_WRAPPERS
|
||||
return game::LowerCase(strVal, LowerCase_original);
|
||||
return game::LowerCase(strVal, LowerCase_hook.get_original());
|
||||
#else
|
||||
return codsrc::LowerCase(strVal);
|
||||
#endif
|
||||
@ -66,7 +54,7 @@ namespace re_cscr_yacc
|
||||
int StringValue_call(int len, const char * str_, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_YACC_USE_WRAPPERS
|
||||
return game::StringValue(len, str_, StringValue_original);
|
||||
return game::StringValue(len, str_, StringValue_hook.get_original());
|
||||
#else
|
||||
return codsrc::StringValue(len, str_);
|
||||
#endif
|
||||
@ -115,7 +103,7 @@ namespace re_cscr_yacc
|
||||
int yy_try_NUL_trans_call(int yy_current_state, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_YACC_USE_WRAPPERS
|
||||
return game::yy_try_NUL_trans(yy_current_state, yy_try_NUL_trans_original);
|
||||
return game::yy_try_NUL_trans(yy_current_state, yy_try_NUL_trans_hook.get_original());
|
||||
#else
|
||||
return codsrc::yy_try_NUL_trans(yy_current_state);
|
||||
#endif
|
||||
@ -154,7 +142,7 @@ namespace re_cscr_yacc
|
||||
void yy_flush_buffer_call(game::yy_buffer_state * result, [[maybe_unused]] void* caller_addr)
|
||||
{
|
||||
#ifdef RE_CSCR_YACC_USE_WRAPPERS
|
||||
game::yy_flush_buffer(result, yy_flush_buffer_original);
|
||||
game::yy_flush_buffer(result, yy_flush_buffer_hook.get_original());
|
||||
#else
|
||||
codsrc::yy_flush_buffer(result);
|
||||
#endif
|
||||
@ -175,7 +163,7 @@ namespace re_cscr_yacc
|
||||
void ScriptParse_call(game::scriptInstance_t a1, [[maybe_unused]] void* caller_addr, game::sval_u * parseData)
|
||||
{
|
||||
#ifdef RE_CSCR_YACC_USE_WRAPPERS
|
||||
game::ScriptParse(a1, parseData, ScriptParse_original);
|
||||
game::ScriptParse(a1, parseData, ScriptParse_hook.get_original());
|
||||
#else
|
||||
codsrc::ScriptParse(a1, parseData);
|
||||
#endif
|
||||
@ -199,30 +187,22 @@ namespace re_cscr_yacc
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
LowerCase_hook.create(game::LowerCase(), LowerCase_stub);
|
||||
yyparse_hook.create(game::yyparse.get(), yyparse_stub);
|
||||
StringValue_hook.create(game::StringValue(), StringValue_stub);
|
||||
yylex_hook.create(game::yylex.get(), yylex_stub);
|
||||
yy_get_next_buffer_hook.create(game::yy_get_next_buffer.get(), yy_get_next_buffer_stub);
|
||||
yy_get_previous_state_hook.create(game::yy_get_previous_state.get(), yy_get_previous_state_stub);
|
||||
yy_try_NUL_trans_hook.create(game::yy_try_NUL_trans(), yy_try_NUL_trans_stub);
|
||||
yyrestart_hook.create(game::yyrestart.get(), yyrestart_stub);
|
||||
yy_create_buffer_hook.create(game::yy_create_buffer.get(), yy_create_buffer_stub);
|
||||
yy_flush_buffer_hook.create(game::yy_flush_buffer(), yy_flush_buffer_stub);
|
||||
ScriptParse_hook.create(game::ScriptParse(), ScriptParse_stub);
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_YACC_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
|
||||
//Original hook function addresses
|
||||
LowerCase_original = LowerCase_hook.get_original();
|
||||
yyparse_original = yyparse_hook.get_original();
|
||||
StringValue_original = StringValue_hook.get_original();
|
||||
yylex_original = yylex_hook.get_original();
|
||||
yy_get_next_buffer_original = yy_get_next_buffer_hook.get_original();
|
||||
yy_get_previous_state_original = yy_get_previous_state_hook.get_original();
|
||||
yy_try_NUL_trans_original = yy_try_NUL_trans_hook.get_original();
|
||||
yyrestart_original = yyrestart_hook.get_original();
|
||||
yy_create_buffer_original = yy_create_buffer_hook.get_original();
|
||||
yy_flush_buffer_original = yy_flush_buffer_hook.get_original();
|
||||
ScriptParse_original = ScriptParse_hook.get_original();
|
||||
LowerCase_hook.create(game::LowerCase(), LowerCase_stub, quick);
|
||||
yyparse_hook.create(game::yyparse.get(), yyparse_stub, quick);
|
||||
StringValue_hook.create(game::StringValue(), StringValue_stub, quick);
|
||||
yylex_hook.create(game::yylex.get(), yylex_stub, quick);
|
||||
yy_get_next_buffer_hook.create(game::yy_get_next_buffer.get(), yy_get_next_buffer_stub, quick);
|
||||
yy_get_previous_state_hook.create(game::yy_get_previous_state.get(), yy_get_previous_state_stub, quick);
|
||||
yy_try_NUL_trans_hook.create(game::yy_try_NUL_trans(), yy_try_NUL_trans_stub, quick);
|
||||
yyrestart_hook.create(game::yyrestart.get(), yyrestart_stub, quick);
|
||||
yy_create_buffer_hook.create(game::yy_create_buffer.get(), yy_create_buffer_stub, quick);
|
||||
yy_flush_buffer_hook.create(game::yy_flush_buffer(), yy_flush_buffer_stub, quick);
|
||||
ScriptParse_hook.create(game::ScriptParse(), ScriptParse_stub, quick);
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -97,8 +97,15 @@ namespace utils::hook
|
||||
MH_DisableHook(this->place_);
|
||||
}
|
||||
|
||||
void detour::create(void* place, void* target)
|
||||
void detour::create(void* place, void* target, bool quick)
|
||||
{
|
||||
// each detour is ~30ms to install, quick is for instances where we will NEVER need to invoke the original
|
||||
if (quick)
|
||||
{
|
||||
jump(reinterpret_cast<std::uintptr_t>(place), target);
|
||||
return;
|
||||
}
|
||||
|
||||
this->clear();
|
||||
this->place_ = place;
|
||||
|
||||
@ -110,9 +117,9 @@ namespace utils::hook
|
||||
this->enable();
|
||||
}
|
||||
|
||||
void detour::create(const size_t place, void* target)
|
||||
void detour::create(const size_t place, void* target, bool quick)
|
||||
{
|
||||
this->create(reinterpret_cast<void*>(place), target);
|
||||
this->create(reinterpret_cast<void*>(place), target, quick);
|
||||
}
|
||||
|
||||
void detour::clear()
|
||||
|
@ -86,8 +86,8 @@ namespace utils::hook
|
||||
void enable() const;
|
||||
void disable() const;
|
||||
|
||||
void create(void* place, void* target);
|
||||
void create(size_t place, void* target);
|
||||
void create(void* place, void* target, bool quick = false);
|
||||
void create(size_t place, void* target, bool quick = false);
|
||||
void clear();
|
||||
|
||||
template <typename T>
|
||||
|
Loading…
x
Reference in New Issue
Block a user