mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
Hook CMapLoadHelper ctor
This will be used for enabling bsp_lump file loading in the future
This commit is contained in:
parent
c0c6c735a7
commit
d521c67367
@ -55,15 +55,24 @@ uint64_t CModelLoader::Map_LoadModelGuts(CModelLoader* loader, model_t* model)
|
||||
return CModelLoader__Map_LoadModelGuts(loader, model);
|
||||
}
|
||||
|
||||
void CMapLoadHelper::Constructor(CMapLoadHelper* helper, int lumpToLoad)
|
||||
{
|
||||
CMapLoadHelper__CMapLoadHelper(helper, lumpToLoad);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
void VModelLoader::Attach() const
|
||||
{
|
||||
DetourAttach((LPVOID*)&CModelLoader__LoadModel, &CModelLoader::LoadModel);
|
||||
DetourAttach((LPVOID*)&CModelLoader__Map_LoadModelGuts, &CModelLoader::Map_LoadModelGuts);
|
||||
|
||||
DetourAttach((LPVOID*)&CMapLoadHelper__CMapLoadHelper, &CMapLoadHelper::Constructor);
|
||||
}
|
||||
|
||||
void VModelLoader::Detach() const
|
||||
{
|
||||
DetourDetach((LPVOID*)&CModelLoader__LoadModel, &CModelLoader::LoadModel);
|
||||
DetourDetach((LPVOID*)&CModelLoader__Map_LoadModelGuts, &CModelLoader::Map_LoadModelGuts);
|
||||
|
||||
DetourDetach((LPVOID*)&CMapLoadHelper__CMapLoadHelper, &CMapLoadHelper::Constructor);
|
||||
}
|
@ -50,6 +50,27 @@ public:
|
||||
static uint64_t Map_LoadModelGuts(CModelLoader* loader, model_t* model);
|
||||
};
|
||||
|
||||
class CMapLoadHelper
|
||||
{
|
||||
public:
|
||||
static void Constructor(CMapLoadHelper* helper, int lumpToLoad);
|
||||
|
||||
|
||||
public:
|
||||
int m_nLumpSize;
|
||||
int m_nLumpOffset;
|
||||
int m_nLumpVersion;
|
||||
unsigned __int8* m_pRawData;
|
||||
char* m_pData;
|
||||
unsigned __int8* m_pUncompressedData;
|
||||
char gap_28[5];
|
||||
bool m_bExternal;
|
||||
bool m_bUnk;
|
||||
char gap_2F;
|
||||
int m_nLumpID;
|
||||
char m_szLumpFilename[260];
|
||||
};
|
||||
|
||||
inline CMemory p_CModelLoader__FindModel;
|
||||
inline auto CModelLoader__FindModel = p_CModelLoader__FindModel.RCast<void* (*)(CModelLoader* loader, const char* pszModelName)>();
|
||||
|
||||
@ -68,6 +89,9 @@ inline auto CModelLoader__Map_LoadModelGuts = p_CModelLoader__Map_LoadModelGuts.
|
||||
inline CMemory p_CModelLoader__Map_IsValid;
|
||||
inline auto CModelLoader__Map_IsValid = p_CModelLoader__Map_IsValid.RCast<bool(*)(CModelLoader* loader, const char* pszMapName)>();
|
||||
|
||||
inline CMemory p_CMapLoadHelper__CMapLoadHelper;
|
||||
inline auto CMapLoadHelper__CMapLoadHelper = p_CMapLoadHelper__CMapLoadHelper.RCast<void(__fastcall*)(CMapLoadHelper * helper, int lumpToLoad)>();
|
||||
|
||||
//inline CMemory p_GetSpriteInfo; // DEDICATED PATCH!
|
||||
//inline auto GetSpriteInfo = p_GetSpriteInfo.RCast<void* (*)(const char* pName, bool bIsAVI, bool bIsBIK, int& nWidth, int& nHeight, int& nFrameCount, void* a7)>();
|
||||
|
||||
@ -111,6 +135,10 @@ class VModelLoader : public IDetour
|
||||
//p_GetSpriteInfo = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 41 54 41 55 41 56 41 57 48 83 EC 30 4C 8B BC 24 ?? ?? ?? ??");
|
||||
#endif
|
||||
//p_BuildSpriteLoadName = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 48 89 7C 24 ?? 41 56 48 81 EC ?? ?? ?? ?? 4D 8B F1 48 8B F2");
|
||||
|
||||
p_CMapLoadHelper__CMapLoadHelper = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 7C 24 ?? 41 56 48 81 EC 60");
|
||||
|
||||
CMapLoadHelper__CMapLoadHelper = p_CMapLoadHelper__CMapLoadHelper.RCast<void(__fastcall*)(CMapLoadHelper*, int)>();
|
||||
|
||||
CModelLoader__FindModel = p_CModelLoader__FindModel.RCast<void* (*)(CModelLoader*, const char*)>();
|
||||
CModelLoader__LoadModel = p_CModelLoader__LoadModel.RCast<void(*)(CModelLoader*, model_t*)>();
|
||||
|
Loading…
x
Reference in New Issue
Block a user