this is how the decomp will be done

This commit is contained in:
ineed bots
2023-08-30 20:55:18 -06:00
parent 47cf9600af
commit 0184ba0dcb
13 changed files with 1026 additions and 39 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
#include <stdinc.hpp>

View File

@ -0,0 +1,32 @@
#pragma once
namespace game
{
WEAK symbol<unsigned int(scriptInstance_t inst, const char* file, PrecacheEntry* entries, int entriesCount)> Scr_LoadScriptInternal { 0x0, 0x689980 };
WEAK symbol<void(scriptInstance_t inst)>Scr_EndLoadScripts { 0x0, 0x689C80 };
WEAK symbol<void(scriptInstance_t inst, void *(__cdecl *Alloc)(int), int user, int modChecksum)> Scr_PrecacheAnimTrees { 0x0, 0x689D60 };
WEAK symbol<void(scriptInstance_t inst)>Scr_EndLoadAnimTrees { 0x0, 0x689DC0 };
inline void* Scr_IsIdentifier_ADDR() { return CALL_ADDR(0x0, 0x689470); }
bool Scr_IsIdentifier(char* token, void* call_addr = Scr_IsIdentifier_ADDR());
inline void* Scr_GetFunctionHandle_ADDR() { return CALL_ADDR(0x0, 0x6894B0); }
unsigned int Scr_GetFunctionHandle(const char* file, scriptInstance_t inst, const char* handle, void* call_addr = Scr_GetFunctionHandle_ADDR());
inline void* SL_TransferToCanonicalString_ADDR() { return CALL_ADDR(0x0, 0x6895A0); }
unsigned int SL_TransferToCanonicalString(scriptInstance_t inst, unsigned int stringValue, void* call_addr = SL_TransferToCanonicalString_ADDR());
inline void* SL_GetCanonicalString_ADDR() { return CALL_ADDR(0x0, 0x6895F0); }
unsigned int SL_GetCanonicalString(const char* token, scriptInstance_t inst, void* call_addr = SL_GetCanonicalString_ADDR());
inline void* Scr_BeginLoadScripts_ADDR() { return CALL_ADDR(0x0, 0x689660); }
void Scr_BeginLoadScripts(scriptInstance_t inst, int user, void* call_addr = Scr_BeginLoadScripts_ADDR());
inline void* Scr_BeginLoadAnimTrees_ADDR() { return CALL_ADDR(0x0, 0x689880); }
void Scr_BeginLoadAnimTrees(scriptInstance_t inst, int user, void* call_addr = Scr_BeginLoadAnimTrees_ADDR());
inline void* Scr_ScanFile_ADDR() { return CALL_ADDR(0x0, 0x689900); }
int Scr_ScanFile(int max_size, char* buf, void* call_addr = Scr_ScanFile_ADDR());
inline void* Scr_LoadScript_ADDR() { return CALL_ADDR(0x0, 0x689C60); }
unsigned int Scr_LoadScript(const char* file, scriptInstance_t inst, void* call_addr = Scr_LoadScript_ADDR());
inline void* Scr_FreeScripts_ADDR() { return CALL_ADDR(0x0, 0x689E50); }
void Scr_FreeScripts(scriptInstance_t inst, void* call_addr = Scr_FreeScripts_ADDR());
int Scr_IsInOpcodeMemory(scriptInstance_t inst, const char* pos);
void SL_BeginLoadScripts(scriptInstance_t inst);
void Scr_SetLoadedImpureScript(bool loadedImpureScript);
}

View File

@ -0,0 +1,151 @@
#include <stdinc.hpp>
#include "codsrc/clientscript/cscr_main.hpp"
namespace game
{
// bool __usercall Scr_IsIdentifier@<al>(char *token@<ecx>)
bool Scr_IsIdentifier(char* token, void* call_addr)
{
bool answer;
__asm
{
mov ecx, token;
call call_addr;
mov answer, al;
}
return answer;
}
// unsigned int __usercall Scr_GetFunctionHandle@<eax>(const char *file@<eax>, scriptInstance_t inst@<ecx>, const char *handle)
unsigned int Scr_GetFunctionHandle(const char* file, scriptInstance_t inst, const char* handle, void* call_addr)
{
unsigned int answer;
__asm
{
push handle;
mov eax, file;
mov ecx, inst;
call call_addr;
mov answer, eax;
add esp, 0x4;
}
return answer;
}
// unsigned int __usercall SL_TransferToCanonicalString@<eax>(scriptInstance_t inst@<eax>, unsigned int stringValue@<edi>)
unsigned int SL_TransferToCanonicalString(scriptInstance_t inst, unsigned int stringValue, void* call_addr)
{
unsigned int answer;
__asm
{
mov eax, inst;
mov edi, stringValue;
call call_addr;
mov answer, eax;
}
return answer;
}
// unsigned int __usercall SL_GetCanonicalString@<eax>(char *token@<eax>, scriptInstance_t inst@<esi>)
unsigned int SL_GetCanonicalString(const char* token, scriptInstance_t inst, void* call_addr)
{
unsigned int answer;
__asm
{
mov eax, token;
mov esi, inst;
call call_addr;
mov answer, eax;
}
return answer;
}
// void __usercall Scr_BeginLoadScripts(scriptInstance_t inst@<edi>, int user)
void Scr_BeginLoadScripts(scriptInstance_t inst, int user, void* call_addr)
{
__asm
{
push user;
mov edi, inst;
call call_addr;
add esp, 0x4;
}
}
// void __usercall Scr_BeginLoadAnimTrees(scriptInstance_t inst@<ecx>, int user@<eax>)
void Scr_BeginLoadAnimTrees(scriptInstance_t inst, int user, void* call_addr)
{
__asm
{
mov ecx, inst;
mov eax, user;
call call_addr;
}
}
// int __usercall Scr_ScanFile@<eax>(int max_size@<edi>, char *buf)
int Scr_ScanFile(int max_size, char* buf, void* call_addr)
{
int answer;
__asm
{
push buf;
mov edi, max_size;
call call_addr;
mov answer, eax;
add esp, 0x4;
}
return answer;
}
// unsigned int __usercall Scr_LoadScript@<eax>(const char *file@<ecx>, scriptInstance_t inst@<edx>)
unsigned int Scr_LoadScript(const char* file, scriptInstance_t inst, void* call_addr)
{
unsigned int answer;
__asm
{
mov ecx, file;
mov edx, inst;
call call_addr;
mov answer, eax;
}
return answer;
}
// void __usercall Scr_FreeScripts(scriptInstance_t a1@<eax>)
void Scr_FreeScripts(scriptInstance_t inst, void* call_addr)
{
__asm
{
mov eax, inst;
call call_addr;
}
}
int Scr_IsInOpcodeMemory(scriptInstance_t inst, const char* pos)
{
return codsrc::Scr_IsInOpcodeMemory(inst, pos);
}
void SL_BeginLoadScripts(scriptInstance_t inst)
{
codsrc::SL_BeginLoadScripts(inst);
}
void Scr_SetLoadedImpureScript(bool loadedImpureScript)
{
codsrc::Scr_SetLoadedImpureScript(loadedImpureScript);
}
}