mirror of
https://github.com/JezuzLizard/T4SP-Server-Plugin.git
synced 2025-04-19 21:22:54 +00:00
Revert "Massively improve bootup times"
This reverts commit df2440a3baf87be342a611154d38bb8da795016a.
This commit is contained in:
parent
df2440a3ba
commit
c1adb9aee3
@ -25,6 +25,25 @@ 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
|
||||
{
|
||||
|
||||
@ -49,7 +68,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_hook.get_original());
|
||||
game::Scr_EmitAnimationInternal(inst, pos, animName, names, Scr_EmitAnimationInternal_original);
|
||||
#else
|
||||
cscr_animtree::Scr_EmitAnimationInternal(inst, pos, animName, names);
|
||||
#endif
|
||||
@ -79,7 +98,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_hook.get_original());
|
||||
game::Scr_AnimTreeParse(inst, pos, parentNode, names, Scr_AnimTreeParse_original);
|
||||
#else
|
||||
cscr_animtree::Scr_AnimTreeParse(inst, pos, parentNode, names);
|
||||
#endif
|
||||
@ -110,7 +129,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_hook.get_original());
|
||||
game::ConnectScriptToAnim(name, names, inst, index, filename, treeIndex, ConnectScriptToAnim_original);
|
||||
#else
|
||||
cscr_animtree::ConnectScriptToAnim(name, names, inst, index, filename, treeIndex);
|
||||
#endif
|
||||
@ -132,7 +151,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_hook.get_original());
|
||||
return game::Scr_GetAnimsIndex(anim, Scr_GetAnimsIndex_original);
|
||||
#else
|
||||
return cscr_animtree::Scr_GetAnimsIndex(anim);
|
||||
#endif
|
||||
@ -162,7 +181,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_hook.get_original());
|
||||
game::Scr_CheckAnimsDefined(names, a2, filename, Scr_CheckAnimsDefined_original);
|
||||
#else
|
||||
cscr_animtree::Scr_CheckAnimsDefined(names, a2, filename);
|
||||
#endif
|
||||
@ -193,7 +212,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_hook.get_original());
|
||||
return game::Scr_UsingTreeInternal(filename, user, inst, index, Scr_UsingTreeInternal_original);
|
||||
#else
|
||||
return cscr_animtree::Scr_UsingTreeInternal(filename, user, inst, index);
|
||||
#endif
|
||||
@ -215,7 +234,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_hook.get_original());
|
||||
game::Scr_UsingTree(a1, filename, sourcePos, Scr_UsingTree_original);
|
||||
#else
|
||||
cscr_animtree::Scr_UsingTree(a1, filename, sourcePos);
|
||||
#endif
|
||||
@ -245,7 +264,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_hook.get_original());
|
||||
return game::Scr_LoadAnimTreeInternal(animtreeName, inst, parentNode, names, Scr_LoadAnimTreeInternal_original);
|
||||
#else
|
||||
return cscr_animtree::Scr_LoadAnimTreeInternal(animtreeName, inst, parentNode, names);
|
||||
#endif
|
||||
@ -267,7 +286,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_hook.get_original());
|
||||
return game::Scr_LoadAnimTreeAtIndex(inst, user, index, Alloc, modCheckSum, Scr_LoadAnimTreeAtIndex_original);
|
||||
#else
|
||||
return cscr_animtree::Scr_LoadAnimTreeAtIndex(inst, user, index, Alloc, modCheckSum);
|
||||
#endif
|
||||
@ -289,7 +308,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_hook.get_original());
|
||||
return game::Scr_FindAnimTree(filename, Scr_FindAnimTree_original);
|
||||
#else
|
||||
return cscr_animtree::Scr_FindAnimTree(filename);
|
||||
#endif
|
||||
@ -310,7 +329,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_hook.get_original());
|
||||
game::Scr_FindAnim(animName, a2, user, Scr_FindAnim_original);
|
||||
#else
|
||||
cscr_animtree::Scr_FindAnim(animName, a2, user);
|
||||
#endif
|
||||
@ -334,29 +353,44 @@ namespace re_cscr_animtree
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_ANIMTREE_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
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);
|
||||
|
||||
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);
|
||||
//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();
|
||||
}
|
||||
|
||||
private:
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -20,12 +20,26 @@ 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_hook.get_original());
|
||||
return game::Scr_IsIdentifier(token, Scr_IsIdentifier_original);
|
||||
#else
|
||||
return codsrc::Scr_IsIdentifier(token);
|
||||
#endif
|
||||
@ -46,7 +60,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_hook.get_original());
|
||||
return game::Scr_GetFunctionHandle(file, inst, handle, Scr_GetFunctionHandle_original);
|
||||
#else
|
||||
return codsrc::Scr_GetFunctionHandle(file, inst, handle);
|
||||
#endif
|
||||
@ -68,7 +82,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_hook.get_original());
|
||||
return game::SL_TransferToCanonicalString(inst, stringValue, SL_TransferToCanonicalString_original);
|
||||
#else
|
||||
return codsrc::SL_TransferToCanonicalString(inst, stringValue);
|
||||
#endif
|
||||
@ -90,7 +104,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_hook.get_original());
|
||||
return game::SL_GetCanonicalString(token, inst, SL_GetCanonicalString_original);
|
||||
#else
|
||||
return codsrc::SL_GetCanonicalString(token, inst);
|
||||
#endif
|
||||
@ -112,7 +126,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_hook.get_original());
|
||||
game::Scr_BeginLoadScripts(inst, user, Scr_BeginLoadScripts_original);
|
||||
#else
|
||||
codsrc::Scr_BeginLoadScripts(inst, user);
|
||||
#endif
|
||||
@ -133,7 +147,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_hook.get_original());
|
||||
game::Scr_BeginLoadAnimTrees(inst, user, Scr_BeginLoadAnimTrees_original);
|
||||
#else
|
||||
codsrc::Scr_BeginLoadAnimTrees(inst, user);
|
||||
#endif
|
||||
@ -155,7 +169,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_hook.get_original());
|
||||
return game::Scr_ScanFile(max_size, buf, Scr_ScanFile_original);
|
||||
#else
|
||||
return codsrc::Scr_ScanFile(max_size, buf);
|
||||
#endif
|
||||
@ -185,7 +199,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_hook.get_original());
|
||||
return game::Scr_LoadScript(file, inst, Scr_LoadScript_original);
|
||||
#else
|
||||
return codsrc::Scr_LoadScript(file, inst);
|
||||
#endif
|
||||
@ -234,7 +248,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_hook.get_original());
|
||||
game::Scr_FreeScripts(inst, Scr_FreeScripts_original);
|
||||
#else
|
||||
codsrc::Scr_FreeScripts(inst);
|
||||
#endif
|
||||
@ -258,24 +272,34 @@ namespace re_cscr_main
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_MAIN_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
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);
|
||||
|
||||
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);
|
||||
//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();
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -21,6 +21,21 @@ 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)
|
||||
@ -44,7 +59,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_hook.get_original());
|
||||
game::MT_InitBits(a1, MT_InitBits_original);
|
||||
#else
|
||||
codsrc::MT_InitBits(a1);
|
||||
#endif
|
||||
@ -65,7 +80,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_hook.get_original());
|
||||
return game::MT_GetScore(a1, num, MT_GetScore_original);
|
||||
#else
|
||||
return codsrc::MT_GetScore(a1, num);
|
||||
#endif
|
||||
@ -114,7 +129,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_hook.get_original());
|
||||
game::MT_Init(a1, MT_Init_original);
|
||||
#else
|
||||
codsrc::MT_Init(a1);
|
||||
#endif
|
||||
@ -135,7 +150,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_hook.get_original());
|
||||
game::MT_Error(a1, funcName, numBytes, MT_Error_original);
|
||||
#else
|
||||
codsrc::MT_Error(a1, funcName, numBytes);
|
||||
#endif
|
||||
@ -156,7 +171,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_hook.get_original());
|
||||
return game::MT_GetSize(numBytes, inst, MT_GetSize_original);
|
||||
#else
|
||||
return codsrc::MT_GetSize(numBytes, inst);
|
||||
#endif
|
||||
@ -178,7 +193,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_hook.get_original());
|
||||
return game::MT_AllocIndex(inst, size_, MT_AllocIndex_original);
|
||||
#else
|
||||
return codsrc::MT_AllocIndex(inst, size_);
|
||||
#endif
|
||||
@ -199,7 +214,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_hook.get_original());
|
||||
game::MT_FreeIndex(numBytes, a1, nodeNum, MT_FreeIndex_original);
|
||||
#else
|
||||
codsrc::MT_FreeIndex(numBytes, a1, nodeNum);
|
||||
#endif
|
||||
@ -220,7 +235,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_hook.get_original());
|
||||
return game::MT_Alloc(numBytes, inst, MT_Alloc_original);
|
||||
#else
|
||||
return codsrc::MT_Alloc(numBytes, inst);
|
||||
#endif
|
||||
@ -254,25 +269,36 @@ namespace re_cscr_memorytree
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_MEMORYTREE_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
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);
|
||||
|
||||
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);
|
||||
//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();
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -30,13 +30,37 @@ 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_hook.get_original());
|
||||
game::Scr_InitOpcodeLookup(a1, Scr_InitOpcodeLookup_original);
|
||||
#else
|
||||
codsrc::Scr_InitOpcodeLookup(a1);
|
||||
#endif
|
||||
@ -57,7 +81,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_hook.get_original());
|
||||
game::Scr_ShutdownOpcodeLookup(a1, Scr_ShutdownOpcodeLookup_original);
|
||||
#else
|
||||
codsrc::Scr_ShutdownOpcodeLookup(a1);
|
||||
#endif
|
||||
@ -78,7 +102,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_hook.get_original());
|
||||
game::AddOpcodePos(a1, sourcePos, type_, AddOpcodePos_original);
|
||||
#else
|
||||
codsrc::AddOpcodePos(a1, sourcePos, type_);
|
||||
#endif
|
||||
@ -99,7 +123,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_hook.get_original());
|
||||
game::RemoveOpcodePos(result, RemoveOpcodePos_original);
|
||||
#else
|
||||
codsrc::RemoveOpcodePos(result);
|
||||
#endif
|
||||
@ -120,7 +144,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_hook.get_original());
|
||||
game::AddThreadStartOpcodePos(result, sourcePos, AddThreadStartOpcodePos_original);
|
||||
#else
|
||||
codsrc::AddThreadStartOpcodePos(result, sourcePos);
|
||||
#endif
|
||||
@ -141,7 +165,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_hook.get_original());
|
||||
return game::Scr_GetSourceBuffer(a1, codePos, Scr_GetSourceBuffer_original);
|
||||
#else
|
||||
return codsrc::Scr_GetSourceBuffer(a1, codePos);
|
||||
#endif
|
||||
@ -163,7 +187,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_hook.get_original());
|
||||
return game::Scr_GetLineNumInternal(startLine, buf, sourcePos, col, Scr_GetLineNumInternal_original);
|
||||
#else
|
||||
return codsrc::Scr_GetLineNumInternal(startLine, buf, sourcePos, col);
|
||||
#endif
|
||||
@ -185,7 +209,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_hook.get_original());
|
||||
return game::Scr_GetNewSourceBuffer(a1, Scr_GetNewSourceBuffer_original);
|
||||
#else
|
||||
return codsrc::Scr_GetNewSourceBuffer(a1);
|
||||
#endif
|
||||
@ -206,7 +230,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_hook.get_original());
|
||||
game::Scr_AddSourceBufferInternal(filename, inst, codepos, buffer, len, archive, Scr_AddSourceBufferInternal_original);
|
||||
#else
|
||||
codsrc::Scr_AddSourceBufferInternal(filename, inst, codepos, buffer, len, archive);
|
||||
#endif
|
||||
@ -245,7 +269,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_hook.get_original());
|
||||
return game::Scr_ReadFile(codepos, filename, inst, unused, Scr_ReadFile_original);
|
||||
#else
|
||||
return codsrc::Scr_ReadFile(codepos, filename, inst, unused);
|
||||
#endif
|
||||
@ -267,7 +291,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_hook.get_original());
|
||||
return game::Scr_AddSourceBuffer(inst, unused_arg1, filename, codepos, Scr_AddSourceBuffer_original);
|
||||
#else
|
||||
return codsrc::Scr_AddSourceBuffer(inst, unused_arg1, filename, codepos);
|
||||
#endif
|
||||
@ -288,7 +312,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_hook.get_original());
|
||||
game::Scr_CopyFormattedLine(rawLine, line, Scr_CopyFormattedLine_original);
|
||||
#else
|
||||
codsrc::Scr_CopyFormattedLine(rawLine, line);
|
||||
#endif
|
||||
@ -309,7 +333,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_hook.get_original());
|
||||
return game::Scr_GetLineInfo(col, buf, sourcePos, line, Scr_GetLineInfo_original);
|
||||
#else
|
||||
return codsrc::Scr_GetLineInfo(col, buf, sourcePos, line);
|
||||
#endif
|
||||
@ -331,7 +355,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_hook.get_original());
|
||||
game::Scr_PrintSourcePos(sourcePos, buf, channel, a4, file, Scr_PrintSourcePos_original);
|
||||
#else
|
||||
codsrc::Scr_PrintSourcePos(sourcePos, buf, channel, a4, file);
|
||||
#endif
|
||||
@ -354,7 +378,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_hook.get_original());
|
||||
return game::Scr_GetPrevSourcePosOpcodeLookup(a1, codePos, Scr_GetPrevSourcePosOpcodeLookup_original);
|
||||
#else
|
||||
return codsrc::Scr_GetPrevSourcePosOpcodeLookup(a1, codePos);
|
||||
#endif
|
||||
@ -376,7 +400,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_hook.get_original());
|
||||
game::Scr_GetTextSourcePos(line, codePos, a3, Scr_GetTextSourcePos_original);
|
||||
#else
|
||||
codsrc::Scr_GetTextSourcePos(line, codePos, a3);
|
||||
#endif
|
||||
@ -398,7 +422,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_hook.get_original());
|
||||
game::Scr_PrintPrevCodePos(codepos, scriptInstance, channel, index, Scr_PrintPrevCodePos_original);
|
||||
#else
|
||||
codsrc::Scr_PrintPrevCodePos(codepos, scriptInstance, channel, index);
|
||||
#endif
|
||||
@ -440,7 +464,7 @@ namespace re_cscr_parser
|
||||
_vsnprintf(Buffer, 0x400u, msg, ArgList);
|
||||
va_end(ArgList);
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
game::CompileError2(codePos, a2, CompileError2_hook.get_original(), "%s", Buffer);
|
||||
game::CompileError2(codePos, a2, CompileError2_original, "%s", Buffer);
|
||||
#else
|
||||
codsrc::CompileError2(codePos, a2, "%s", Buffer);
|
||||
#endif
|
||||
@ -463,7 +487,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_hook.get_original());
|
||||
game::RuntimeErrorInternal(msg, inst, channel, codepos, index, RuntimeErrorInternal_original);
|
||||
#else
|
||||
codsrc::RuntimeErrorInternal(msg, inst, channel, codepos, index);
|
||||
#endif
|
||||
@ -485,7 +509,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_hook.get_original());
|
||||
game::RuntimeError(inst, pos, error_index, err, err2, RuntimeError_original);
|
||||
#else
|
||||
codsrc::RuntimeError(inst, pos, error_index, err, err2);
|
||||
#endif
|
||||
@ -509,34 +533,54 @@ namespace re_cscr_parser
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_PARSER_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
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);
|
||||
|
||||
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);
|
||||
//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();
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -20,6 +20,20 @@ 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
|
||||
{
|
||||
|
||||
@ -146,24 +160,34 @@ namespace re_cscr_parsetree
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_PARSETREE_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
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);
|
||||
|
||||
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);
|
||||
//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();
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -9,13 +9,16 @@ 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_hook.get_original());
|
||||
return game::FindVariableIndexInternal2(inst, name, index, FindVariableIndexInternal2_original);
|
||||
#else
|
||||
return codsrc::FindVariableIndexInternal2(inst, name, index);
|
||||
#endif
|
||||
@ -36,7 +39,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_hook.get_original());
|
||||
return game::FindLastSibling(parentId, inst, FindLastSibling_original);
|
||||
#else
|
||||
return codsrc::FindLastSibling(parentId, inst);
|
||||
#endif
|
||||
@ -61,13 +64,12 @@ namespace re_cscr_readwrite
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_READWRITE_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
FindVariableIndexInternal2_hook.create(game::FindVariableIndexInternal2_ADDR(), FindVariableIndexInternal2_stub);
|
||||
FindLastSibling_hook.create(game::FindLastSibling_ADDR(), FindLastSibling_stub);
|
||||
|
||||
FindVariableIndexInternal2_hook.create(game::FindVariableIndexInternal2_ADDR(), FindVariableIndexInternal2_stub, quick);
|
||||
FindLastSibling_hook.create(game::FindLastSibling_ADDR(), FindLastSibling_stub, quick);
|
||||
//Original hook function addresses
|
||||
FindVariableIndexInternal2_original = FindVariableIndexInternal2_hook.get_original();
|
||||
FindLastSibling_original = FindLastSibling_hook.get_original();
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -35,13 +35,42 @@ 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_hook.get_original());
|
||||
return game::SL_ConvertToString(id, inst, SL_ConvertToString_original);
|
||||
#else
|
||||
return codsrc::SL_ConvertToString(id, inst);
|
||||
#endif
|
||||
@ -63,7 +92,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_hook.get_original());
|
||||
return game::SL_GetStringLen(a1, a2, SL_GetStringLen_original);
|
||||
#else
|
||||
return codsrc::SL_GetStringLen(a1, a2);
|
||||
#endif
|
||||
@ -85,7 +114,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_hook.get_original());
|
||||
return game::GetHashCode(a1, a2, GetHashCode_original);
|
||||
#else
|
||||
return codsrc::GetHashCode(a1, a2);
|
||||
#endif
|
||||
@ -107,7 +136,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_hook.get_original());
|
||||
game::SL_Init(a1, SL_Init_original);
|
||||
#else
|
||||
codsrc::SL_Init(a1);
|
||||
#endif
|
||||
@ -128,7 +157,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_hook.get_original());
|
||||
return game::SL_FindStringOfSize(inst, str_, len, SL_FindStringOfSize_original);
|
||||
#else
|
||||
return codsrc::SL_FindStringOfSize(inst, str_, len);
|
||||
#endif
|
||||
@ -149,7 +178,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_hook.get_original());
|
||||
return game::SL_FindString(a1, a2, SL_FindString_original);
|
||||
#else
|
||||
return codsrc::SL_FindString(a1, a2);
|
||||
#endif
|
||||
@ -179,7 +208,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_hook.get_original());
|
||||
game::SL_AddUserInternal(user, refStr, SL_AddUserInternal_original);
|
||||
#else
|
||||
codsrc::SL_AddUserInternal(user, refStr);
|
||||
#endif
|
||||
@ -201,7 +230,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_hook.get_original());
|
||||
game::Mark_ScriptStringCustom(a1, Mark_ScriptStringCustom_original);
|
||||
#else
|
||||
codsrc::Mark_ScriptStringCustom(a1);
|
||||
#endif
|
||||
@ -231,7 +260,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__hook.get_original());
|
||||
return game::SL_GetString_(a1, a2, user, SL_GetString__original);
|
||||
#else
|
||||
return codsrc::SL_GetString_(a1, a2, user);
|
||||
#endif
|
||||
@ -252,7 +281,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_hook.get_original());
|
||||
return game::SL_GetString__0(a1, user, a3, SL_GetString__0_original);
|
||||
#else
|
||||
return codsrc::SL_GetString__0(a1, user, a3);
|
||||
#endif
|
||||
@ -282,7 +311,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_hook.get_original());
|
||||
return game::SL_GetLowercaseString(a2, SL_GetLowercaseString_original);
|
||||
#else
|
||||
return codsrc::SL_GetLowercaseString(a2);
|
||||
#endif
|
||||
@ -312,7 +341,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_hook.get_original());
|
||||
game::SL_TransferRefToUser(stringValue, user, inst, SL_TransferRefToUser_original);
|
||||
#else
|
||||
codsrc::SL_TransferRefToUser(stringValue, user, inst);
|
||||
#endif
|
||||
@ -343,7 +372,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_hook.get_original());
|
||||
game::SL_RemoveRefToString(stringVal, inst, SL_RemoveRefToString_original);
|
||||
#else
|
||||
codsrc::SL_RemoveRefToString(stringVal, inst);
|
||||
#endif
|
||||
@ -365,7 +394,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_hook.get_original());
|
||||
game::Scr_SetString(inst, from, to, Scr_SetString_original);
|
||||
#else
|
||||
codsrc::Scr_SetString(inst, from, to);
|
||||
#endif
|
||||
@ -387,7 +416,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_hook.get_original());
|
||||
game::Scr_SetStringFromCharString(a1, a2, Scr_SetStringFromCharString_original);
|
||||
#else
|
||||
codsrc::Scr_SetStringFromCharString(a1, a2);
|
||||
#endif
|
||||
@ -408,7 +437,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_hook.get_original());
|
||||
return game::GScr_AllocString(a1, inst, GScr_AllocString_original);
|
||||
#else
|
||||
return codsrc::GScr_AllocString(a1, inst);
|
||||
#endif
|
||||
@ -429,7 +458,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_hook.get_original());
|
||||
return game::SL_GetStringForFloat(a1, a2, SL_GetStringForFloat_original);
|
||||
#else
|
||||
return codsrc::SL_GetStringForFloat(a1, a2);
|
||||
#endif
|
||||
@ -451,7 +480,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_hook.get_original());
|
||||
return game::SL_GetStringForInt(a1, a2, SL_GetStringForInt_original);
|
||||
#else
|
||||
return codsrc::SL_GetStringForInt(a1, a2);
|
||||
#endif
|
||||
@ -472,7 +501,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_hook.get_original());
|
||||
return game::SL_GetStringForVector(a1, a2, SL_GetStringForVector_original);
|
||||
#else
|
||||
return codsrc::SL_GetStringForVector(a1, a2);
|
||||
#endif
|
||||
@ -493,7 +522,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_hook.get_original());
|
||||
game::SL_ShutdownSystem(a1, a2, SL_ShutdownSystem_original);
|
||||
#else
|
||||
codsrc::SL_ShutdownSystem(a1, a2);
|
||||
#endif
|
||||
@ -523,7 +552,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_hook.get_original());
|
||||
game::SL_CreateCanonicalFilename(filename, newFilename, SL_CreateCanonicalFilename_original);
|
||||
#else
|
||||
codsrc::SL_CreateCanonicalFilename(filename, newFilename);
|
||||
#endif
|
||||
@ -556,39 +585,64 @@ namespace re_cscr_stringlist
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_STRINGLIST_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
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);
|
||||
|
||||
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);
|
||||
//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();
|
||||
}
|
||||
|
||||
private:
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -79,6 +79,79 @@ 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
|
||||
{
|
||||
|
||||
@ -94,7 +167,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_hook.get_original());
|
||||
game::Scr_Init(a1, Scr_Init_original);
|
||||
#else
|
||||
codsrc::Scr_Init(a1);
|
||||
#endif
|
||||
@ -114,7 +187,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_hook.get_original());
|
||||
game::Scr_Shutdown(a1, Scr_Shutdown_original);
|
||||
#else
|
||||
codsrc::Scr_Shutdown(a1);
|
||||
#endif
|
||||
@ -134,7 +207,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_hook.get_original());
|
||||
game::Scr_ErrorInternal(a1, Scr_ErrorInternal_original);
|
||||
#else
|
||||
codsrc::Scr_ErrorInternal(a1);
|
||||
#endif
|
||||
@ -154,7 +227,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_hook.get_original());
|
||||
game::Scr_ClearOutParams(a1, Scr_ClearOutParams_original);
|
||||
#else
|
||||
codsrc::Scr_ClearOutParams(a1);
|
||||
#endif
|
||||
@ -174,7 +247,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_hook.get_original());
|
||||
return game::GetDummyObject(a1, GetDummyObject_original);
|
||||
#else
|
||||
return codsrc::GetDummyObject(a1);
|
||||
#endif
|
||||
@ -194,7 +267,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_hook.get_original());
|
||||
return game::GetDummyFieldValue(a1, GetDummyFieldValue_original);
|
||||
#else
|
||||
return codsrc::GetDummyFieldValue(a1);
|
||||
#endif
|
||||
@ -223,7 +296,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_hook.get_original());
|
||||
game::VM_CancelNotifyInternal(inst, notifyListOwnerId, startLocalId, notifyListId, notifyNameListId, stringValue, VM_CancelNotifyInternal_original);
|
||||
#else
|
||||
codsrc::VM_CancelNotifyInternal(inst, notifyListOwnerId, startLocalId, notifyListId, notifyNameListId, stringValue);
|
||||
#endif
|
||||
@ -244,7 +317,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_hook.get_original());
|
||||
game::VM_CancelNotify(a1, a2, a3, VM_CancelNotify_original);
|
||||
#else
|
||||
codsrc::VM_CancelNotify(a1, a2, a3);
|
||||
#endif
|
||||
@ -264,7 +337,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_hook.get_original());
|
||||
return game::VM_ArchiveStack(inst, VM_ArchiveStack_original);
|
||||
#else
|
||||
return codsrc::VM_ArchiveStack(inst);
|
||||
#endif
|
||||
@ -284,7 +357,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_hook.get_original());
|
||||
return game::Scr_AddLocalVars(a1, a2, Scr_AddLocalVars_original);
|
||||
#else
|
||||
return codsrc::Scr_AddLocalVars(a1, a2);
|
||||
#endif
|
||||
@ -314,7 +387,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_hook.get_original());
|
||||
game::VM_TerminateStack(a1, a2, a3, name, VM_TerminateStack_original);
|
||||
#else
|
||||
codsrc::VM_TerminateStack(a1, a2, a3, name);
|
||||
#endif
|
||||
@ -334,7 +407,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_hook.get_original());
|
||||
game::VM_TrimStack(a1, parentId, a3, fromEndon, VM_TrimStack_original);
|
||||
#else
|
||||
codsrc::VM_TrimStack(a1, parentId, a3, fromEndon);
|
||||
#endif
|
||||
@ -354,7 +427,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_hook.get_original());
|
||||
game::Scr_TerminateRunningThread(a1, a2, Scr_TerminateRunningThread_original);
|
||||
#else
|
||||
codsrc::Scr_TerminateRunningThread(a1, a2);
|
||||
#endif
|
||||
@ -374,7 +447,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_hook.get_original());
|
||||
game::Scr_TerminateWaitThread(a1, a2, a3, Scr_TerminateWaitThread_original);
|
||||
#else
|
||||
codsrc::Scr_TerminateWaitThread(a1, a2, a3);
|
||||
#endif
|
||||
@ -394,7 +467,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_hook.get_original());
|
||||
game::Scr_CancelWaittill(inst, startLocalId, Scr_CancelWaittill_original);
|
||||
#else
|
||||
codsrc::Scr_CancelWaittill(inst, startLocalId);
|
||||
#endif
|
||||
@ -415,7 +488,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_hook.get_original());
|
||||
game::Scr_TerminateWaittillThread(a1, a2, a3, Scr_TerminateWaittillThread_original);
|
||||
#else
|
||||
codsrc::Scr_TerminateWaittillThread(a1, a2, a3);
|
||||
#endif
|
||||
@ -435,7 +508,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_hook.get_original());
|
||||
game::Scr_TerminateThread(a2, a3, Scr_TerminateThread_original);
|
||||
#else
|
||||
codsrc::Scr_TerminateThread(a2, a3);
|
||||
#endif
|
||||
@ -456,7 +529,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_hook.get_original());
|
||||
game::VM_Notify(inst, notifyListOwnerId, stringValue, top, VM_Notify_original);
|
||||
#else
|
||||
codsrc::VM_Notify(inst, notifyListOwnerId, stringValue, top);
|
||||
#endif
|
||||
@ -476,7 +549,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_hook.get_original());
|
||||
game::Scr_NotifyNum_Internal(inst, entNum, entClass, notifStr, numParams, Scr_NotifyNum_Internal_original);
|
||||
#else
|
||||
codsrc::Scr_NotifyNum_Internal(inst, entNum, entClass, notifStr, numParams);
|
||||
#endif
|
||||
@ -496,7 +569,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_hook.get_original());
|
||||
game::Scr_CancelNotifyList(notifyListOwnerId, inst, Scr_CancelNotifyList_original);
|
||||
#else
|
||||
codsrc::Scr_CancelNotifyList(notifyListOwnerId, inst);
|
||||
#endif
|
||||
@ -516,7 +589,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_hook.get_original());
|
||||
game::VM_TerminateTime(a1, parentId, VM_TerminateTime_original);
|
||||
#else
|
||||
codsrc::VM_TerminateTime(a1, parentId);
|
||||
#endif
|
||||
@ -536,7 +609,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_hook.get_original());
|
||||
game::VM_Resume(inst, timeId, VM_Resume_original);
|
||||
#else
|
||||
codsrc::VM_Resume(inst, timeId);
|
||||
#endif
|
||||
@ -565,7 +638,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_hook.get_original());
|
||||
return game::Scr_ExecThread(inst, handle, paramCount, Scr_ExecThread_original);
|
||||
#else
|
||||
return codsrc::Scr_ExecThread(inst, handle, paramCount);
|
||||
#endif
|
||||
@ -584,7 +657,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_hook.get_original());
|
||||
return game::Scr_ExecEntThreadNum(inst, entNum, handle, numParams, entClass, Scr_ExecEntThread_original);
|
||||
#else
|
||||
return codsrc::Scr_ExecEntThreadNum(inst, entNum, handle, numParams, entClass);
|
||||
#endif
|
||||
@ -604,7 +677,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_hook.get_original());
|
||||
game::Scr_AddExecThread(a1, handle, Scr_AddExecThread_original);
|
||||
#else
|
||||
codsrc::Scr_AddExecThread(a1, handle);
|
||||
#endif
|
||||
@ -624,7 +697,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_hook.get_original());
|
||||
game::VM_SetTime(a1, VM_SetTime_original);
|
||||
#else
|
||||
codsrc::VM_SetTime(a1);
|
||||
#endif
|
||||
@ -644,7 +717,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_hook.get_original());
|
||||
game::Scr_InitSystem(a1, Scr_InitSystem_original);
|
||||
#else
|
||||
codsrc::Scr_InitSystem(a1);
|
||||
#endif
|
||||
@ -687,7 +760,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_hook.get_original());
|
||||
return game::Scr_GetInt(inst, index, Scr_GetInt_original);
|
||||
#else
|
||||
return codsrc::Scr_GetInt(inst, index);
|
||||
#endif
|
||||
@ -708,7 +781,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_hook.get_original());
|
||||
return game::Scr_GetAnim(index, a2, Scr_GetAnim_original);
|
||||
#else
|
||||
return codsrc::Scr_GetAnim(index, a2);
|
||||
#endif
|
||||
@ -738,7 +811,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_hook.get_original());
|
||||
return game::Scr_GetFloat(inst, index, Scr_GetFloat_original);
|
||||
#else
|
||||
return codsrc::Scr_GetFloat(inst, index);
|
||||
#endif
|
||||
@ -766,7 +839,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_hook.get_original());
|
||||
return game::Scr_GetConstString(inst, index, Scr_GetConstString_original);
|
||||
#else
|
||||
return codsrc::Scr_GetConstString(inst, index);
|
||||
#endif
|
||||
@ -786,7 +859,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_hook.get_original());
|
||||
return game::Scr_GetConstLowercaseString(inst, index, Scr_GetConstLowercaseString_original);
|
||||
#else
|
||||
return codsrc::Scr_GetConstLowercaseString(inst, index);
|
||||
#endif
|
||||
@ -806,7 +879,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_hook.get_original());
|
||||
return game::Scr_GetString(index, inst, Scr_GetString_original);
|
||||
#else
|
||||
return codsrc::Scr_GetString(index, inst);
|
||||
#endif
|
||||
@ -827,7 +900,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_hook.get_original());
|
||||
return game::Scr_GetConstStringIncludeNull(a1, Scr_GetConstStringIncludeNull_original);
|
||||
#else
|
||||
return codsrc::Scr_GetConstStringIncludeNull(a1);
|
||||
#endif
|
||||
@ -847,7 +920,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_hook.get_original());
|
||||
return game::Scr_GetDebugString(a1, a2, Scr_GetDebugString_original);
|
||||
#else
|
||||
return codsrc::Scr_GetDebugString(a1, a2);
|
||||
#endif
|
||||
@ -868,7 +941,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_hook.get_original());
|
||||
return game::Scr_GetConstIString(index, Scr_GetConstIString_original);
|
||||
#else
|
||||
return codsrc::Scr_GetConstIString(index);
|
||||
#endif
|
||||
@ -888,7 +961,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_hook.get_original());
|
||||
game::Scr_GetVector(inst, value, index, Scr_GetVector_original);
|
||||
#else
|
||||
codsrc::Scr_GetVector(inst, value, index);
|
||||
#endif
|
||||
@ -918,7 +991,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_hook.get_original());
|
||||
return game::Scr_GetEntityRef(inst, retstr, index, Scr_GetEntityRef_original);
|
||||
#else
|
||||
return codsrc::Scr_GetEntityRef(inst, retstr, index);
|
||||
#endif
|
||||
@ -938,7 +1011,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_hook.get_original());
|
||||
return game::Scr_GetObject(a1, Scr_GetObject_original);
|
||||
#else
|
||||
return codsrc::Scr_GetObject(a1);
|
||||
#endif
|
||||
@ -958,7 +1031,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_hook.get_original());
|
||||
return game::Scr_GetType(inst, index, Scr_GetType_original);
|
||||
#else
|
||||
return codsrc::Scr_GetType(inst, index);
|
||||
#endif
|
||||
@ -979,7 +1052,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_hook.get_original());
|
||||
return game::Scr_GetTypeName(a1, Scr_GetTypeName_original);
|
||||
#else
|
||||
return codsrc::Scr_GetTypeName(a1);
|
||||
#endif
|
||||
@ -999,7 +1072,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_hook.get_original());
|
||||
return game::Scr_GetPointerType(a1, a2, Scr_GetPointerType_original);
|
||||
#else
|
||||
return codsrc::Scr_GetPointerType(a1, a2);
|
||||
#endif
|
||||
@ -1020,7 +1093,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_hook.get_original());
|
||||
game::Scr_AddInt(inst, value, Scr_AddInt_original);
|
||||
#else
|
||||
codsrc::Scr_AddInt(inst, value);
|
||||
#endif
|
||||
@ -1040,7 +1113,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_hook.get_original());
|
||||
game::Scr_AddFloat(inst, value, Scr_AddFloat_original);
|
||||
#else
|
||||
codsrc::Scr_AddFloat(inst, value);
|
||||
#endif
|
||||
@ -1069,7 +1142,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_hook.get_original());
|
||||
game::Scr_AddUndefined(inst, Scr_AddUndefined_original);
|
||||
#else
|
||||
codsrc::Scr_AddUndefined(inst);
|
||||
#endif
|
||||
@ -1089,7 +1162,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_hook.get_original());
|
||||
game::Scr_AddObject(inst, entid, Scr_AddObject_original);
|
||||
#else
|
||||
codsrc::Scr_AddObject(inst, entid);
|
||||
#endif
|
||||
@ -1110,7 +1183,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_hook.get_original());
|
||||
game::Scr_AddString(inst, string, Scr_AddString_original);
|
||||
#else
|
||||
codsrc::Scr_AddString(inst, string);
|
||||
#endif
|
||||
@ -1130,7 +1203,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_hook.get_original());
|
||||
game::Scr_AddIString(string, Scr_AddIString_original);
|
||||
#else
|
||||
codsrc::Scr_AddIString(string);
|
||||
#endif
|
||||
@ -1150,7 +1223,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_hook.get_original());
|
||||
game::Scr_AddConstString(inst, id, Scr_AddConstString_original);
|
||||
#else
|
||||
codsrc::Scr_AddConstString(inst, id);
|
||||
#endif
|
||||
@ -1171,7 +1244,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_hook.get_original());
|
||||
game::Scr_AddVector(inst, value, Scr_AddVector_original);
|
||||
#else
|
||||
codsrc::Scr_AddVector(inst, value);
|
||||
#endif
|
||||
@ -1191,7 +1264,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_hook.get_original());
|
||||
game::Scr_MakeArray(a1, Scr_MakeArray_original);
|
||||
#else
|
||||
codsrc::Scr_MakeArray(a1);
|
||||
#endif
|
||||
@ -1220,7 +1293,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_hook.get_original());
|
||||
game::Scr_AddArrayStringIndexed(id, inst, Scr_AddArrayStringIndexed_original);
|
||||
#else
|
||||
codsrc::Scr_AddArrayStringIndexed(id, inst);
|
||||
#endif
|
||||
@ -1241,7 +1314,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_hook.get_original());
|
||||
game::Scr_Error(err, inst, is_terminal, Scr_Error_original);
|
||||
#else
|
||||
codsrc::Scr_Error(err, inst, is_terminal);
|
||||
#endif
|
||||
@ -1262,7 +1335,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_hook.get_original());
|
||||
game::Scr_TerminalError(a1, Source, Scr_TerminalError_original);
|
||||
#else
|
||||
codsrc::Scr_TerminalError(a1, Source);
|
||||
#endif
|
||||
@ -1282,7 +1355,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_hook.get_original());
|
||||
game::Scr_ParamError(a1, a2, Source, Scr_ParamError_original);
|
||||
#else
|
||||
codsrc::Scr_ParamError(a1, a2, Source);
|
||||
#endif
|
||||
@ -1303,7 +1376,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_hook.get_original());
|
||||
game::Scr_ObjectError(a1, a2, Scr_ObjectError_original);
|
||||
#else
|
||||
codsrc::Scr_ObjectError(a1, a2);
|
||||
#endif
|
||||
@ -1324,7 +1397,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_hook.get_original());
|
||||
return game::SetEntityFieldValue(inst, offset_, entnum, classnum, clientNum, value, SetEntityFieldValue_original);
|
||||
#else
|
||||
return codsrc::SetEntityFieldValue(inst, offset_, entnum, classnum, clientNum, value);
|
||||
#endif
|
||||
@ -1346,7 +1419,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_hook.get_original());
|
||||
return game::GetEntityFieldValue(offset_, entnum, inst, classnum, clientNum, GetEntityFieldValue_original);
|
||||
#else
|
||||
return codsrc::GetEntityFieldValue(offset_, entnum, inst, classnum, clientNum);
|
||||
#endif
|
||||
@ -1367,7 +1440,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_hook.get_original());
|
||||
game::Scr_SetStructField(a1, a2, a3, Scr_SetStructField_original);
|
||||
#else
|
||||
codsrc::Scr_SetStructField(a1, a2, a3);
|
||||
#endif
|
||||
@ -1388,7 +1461,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_hook.get_original());
|
||||
game::Scr_IncTime(a1, Scr_IncTime_original);
|
||||
#else
|
||||
codsrc::Scr_IncTime(a1);
|
||||
#endif
|
||||
@ -1408,7 +1481,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_hook.get_original());
|
||||
game::Scr_RunCurrentThreads(a1, Scr_RunCurrentThreads_original);
|
||||
#else
|
||||
codsrc::Scr_RunCurrentThreads(a1);
|
||||
#endif
|
||||
@ -1428,7 +1501,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_hook.get_original());
|
||||
game::Scr_ResetTimeout(a1, Scr_ResetTimeout_original);
|
||||
#else
|
||||
codsrc::Scr_ResetTimeout(a1);
|
||||
#endif
|
||||
@ -1451,83 +1524,152 @@ namespace re_cscr_vm
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_VM_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
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);
|
||||
|
||||
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);
|
||||
//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();
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -18,13 +18,25 @@ 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_hook.get_original());
|
||||
return game::LowerCase(strVal, LowerCase_original);
|
||||
#else
|
||||
return codsrc::LowerCase(strVal);
|
||||
#endif
|
||||
@ -54,7 +66,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_hook.get_original());
|
||||
return game::StringValue(len, str_, StringValue_original);
|
||||
#else
|
||||
return codsrc::StringValue(len, str_);
|
||||
#endif
|
||||
@ -103,7 +115,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_hook.get_original());
|
||||
return game::yy_try_NUL_trans(yy_current_state, yy_try_NUL_trans_original);
|
||||
#else
|
||||
return codsrc::yy_try_NUL_trans(yy_current_state);
|
||||
#endif
|
||||
@ -142,7 +154,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_hook.get_original());
|
||||
game::yy_flush_buffer(result, yy_flush_buffer_original);
|
||||
#else
|
||||
codsrc::yy_flush_buffer(result);
|
||||
#endif
|
||||
@ -163,7 +175,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_hook.get_original());
|
||||
game::ScriptParse(a1, parseData, ScriptParse_original);
|
||||
#else
|
||||
codsrc::ScriptParse(a1, parseData);
|
||||
#endif
|
||||
@ -187,22 +199,30 @@ namespace re_cscr_yacc
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
bool quick = true;
|
||||
#ifdef RE_CSCR_YACC_USE_WRAPPERS
|
||||
quick = false;
|
||||
#endif
|
||||
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);
|
||||
|
||||
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);
|
||||
//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();
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -97,15 +97,8 @@ namespace utils::hook
|
||||
MH_DisableHook(this->place_);
|
||||
}
|
||||
|
||||
void detour::create(void* place, void* target, bool quick)
|
||||
void detour::create(void* place, void* target)
|
||||
{
|
||||
// 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;
|
||||
|
||||
@ -117,9 +110,9 @@ namespace utils::hook
|
||||
this->enable();
|
||||
}
|
||||
|
||||
void detour::create(const size_t place, void* target, bool quick)
|
||||
void detour::create(const size_t place, void* target)
|
||||
{
|
||||
this->create(reinterpret_cast<void*>(place), target, quick);
|
||||
this->create(reinterpret_cast<void*>(place), target);
|
||||
}
|
||||
|
||||
void detour::clear()
|
||||
|
@ -86,8 +86,8 @@ namespace utils::hook
|
||||
void enable() const;
|
||||
void disable() const;
|
||||
|
||||
void create(void* place, void* target, bool quick = false);
|
||||
void create(size_t place, void* target, bool quick = false);
|
||||
void create(void* place, void* target);
|
||||
void create(size_t place, void* target);
|
||||
void clear();
|
||||
|
||||
template <typename T>
|
||||
|
Loading…
x
Reference in New Issue
Block a user