mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
Adjust type for 'g_pMallocPool' and rename
Adjusted type to 'CAlignedMemAlloc' and renamed it to 'g_pAlignedMemAlloc'. This global allocates memory aligned.
This commit is contained in:
parent
75ccebb4b6
commit
d825fb9f58
@ -338,13 +338,13 @@ void Mod_ProcessPakQueue()
|
|||||||
Mod_PreloadLevelPaks(s_svLevelName.c_str());
|
Mod_PreloadLevelPaks(s_svLevelName.c_str());
|
||||||
s_bLevelResourceInitialized = true;
|
s_bLevelResourceInitialized = true;
|
||||||
}
|
}
|
||||||
*(_DWORD*)v15 = g_pakLoadApi->LoadAsync(v17, g_pMallocPool, 4, 0);
|
*(_DWORD*)v15 = g_pakLoadApi->LoadAsync(v17, g_pAlignedMemAlloc, 4, 0);
|
||||||
|
|
||||||
if (strcmp(v17, "common_mp.rpak") == 0 || strcmp(v17, "common_sp.rpak") == 0 || strcmp(v17, "common_pve.rpak") == 0)
|
if (strcmp(v17, "common_mp.rpak") == 0 || strcmp(v17, "common_sp.rpak") == 0 || strcmp(v17, "common_pve.rpak") == 0)
|
||||||
g_pakLoadApi->LoadAsync("common_sdk.rpak", g_pMallocPool, 4, 0);
|
g_pakLoadApi->LoadAsync("common_sdk.rpak", g_pAlignedMemAlloc, 4, 0);
|
||||||
#ifndef DEDICATED
|
#ifndef DEDICATED
|
||||||
if (strcmp(v17, "ui_mp.rpak") == 0)
|
if (strcmp(v17, "ui_mp.rpak") == 0)
|
||||||
g_pakLoadApi->LoadAsync("ui_sdk.rpak", g_pMallocPool, 4, 0);
|
g_pakLoadApi->LoadAsync("ui_sdk.rpak", g_pAlignedMemAlloc, 4, 0);
|
||||||
#endif // !DEDICATED
|
#endif // !DEDICATED
|
||||||
|
|
||||||
LABEL_37:
|
LABEL_37:
|
||||||
@ -429,7 +429,7 @@ void Mod_PreloadLevelPaks(const char* pszLevelName)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
snprintf(szPathBuffer, sizeof(szPathBuffer), "%s.rpak", pSubKey->GetName());
|
snprintf(szPathBuffer, sizeof(szPathBuffer), "%s.rpak", pSubKey->GetName());
|
||||||
RPakHandle_t nPakId = g_pakLoadApi->LoadAsync(szPathBuffer, g_pMallocPool, 4, 0);
|
RPakHandle_t nPakId = g_pakLoadApi->LoadAsync(szPathBuffer, g_pAlignedMemAlloc, 4, 0);
|
||||||
|
|
||||||
if (nPakId == INVALID_PAK_HANDLE)
|
if (nPakId == INVALID_PAK_HANDLE)
|
||||||
Error(eDLL_T::ENGINE, NO_ERROR, "%s: unable to load pak '%s' results '%d'\n", __FUNCTION__, szPathBuffer, nPakId);
|
Error(eDLL_T::ENGINE, NO_ERROR, "%s: unable to load pak '%s' results '%d'\n", __FUNCTION__, szPathBuffer, nPakId);
|
||||||
|
@ -1,24 +1,31 @@
|
|||||||
#ifndef TSLIST_H
|
#ifndef TSLIST_H
|
||||||
#define TSLIST_H
|
#define TSLIST_H
|
||||||
|
|
||||||
inline void* g_pMallocPool;
|
class CAlignedMemAlloc
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual void* Alloc(size_t nSize) = 0;
|
||||||
|
virtual void Free(void* pMem) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
inline CAlignedMemAlloc* g_pAlignedMemAlloc;
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
class VTSListBase : public IDetour
|
class VTSListBase : public IDetour
|
||||||
{
|
{
|
||||||
virtual void GetAdr(void) const
|
virtual void GetAdr(void) const
|
||||||
{
|
{
|
||||||
LogVarAdr("g_pMallocPool", reinterpret_cast<uintptr_t>(g_pMallocPool));
|
LogVarAdr("g_AlignedMemAlloc", reinterpret_cast<uintptr_t>(g_pAlignedMemAlloc));
|
||||||
}
|
}
|
||||||
virtual void GetFun(void) const { }
|
virtual void GetFun(void) const { }
|
||||||
virtual void GetVar(void) const
|
virtual void GetVar(void) const
|
||||||
{
|
{
|
||||||
#if defined (GAMEDLL_S0) || defined (GAMEDLL_S1)
|
#if defined (GAMEDLL_S0) || defined (GAMEDLL_S1)
|
||||||
g_pMallocPool = 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 81 EC ?? ?? ?? ?? 48 8B D9 FF 15 ?? ?? ?? ??")
|
g_pAlignedMemAlloc = 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 81 EC ?? ?? ?? ?? 48 8B D9 FF 15 ?? ?? ?? ??")
|
||||||
.Offset(0x600).FindPatternSelf("48 8D 15 ?? ?? ?? 01", CMemory::Direction::DOWN, 100).ResolveRelativeAddressSelf(0x3, 0x7).RCast<void*>();
|
.Offset(0x600).FindPatternSelf("48 8D 15 ?? ?? ?? 01", CMemory::Direction::DOWN, 100).ResolveRelativeAddressSelf(0x3, 0x7).RCast<CAlignedMemAlloc*>();
|
||||||
#elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3)
|
#elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3)
|
||||||
g_pMallocPool = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 74 24 ?? 48 89 7C 24 ?? 55 41 54 41 55 41 56 41 57 48 8D AC 24 ?? ?? ?? ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 2B E0 48 8B D9")
|
g_pAlignedMemAlloc = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 74 24 ?? 48 89 7C 24 ?? 55 41 54 41 55 41 56 41 57 48 8D AC 24 ?? ?? ?? ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 2B E0 48 8B D9")
|
||||||
.Offset(0x130).FindPatternSelf("48 8D 15 ?? ?? ?? 01", CMemory::Direction::DOWN, 100).ResolveRelativeAddressSelf(0x3, 0x7).RCast<void*>();
|
.Offset(0x130).FindPatternSelf("48 8D 15 ?? ?? ?? 01", CMemory::Direction::DOWN, 100).ResolveRelativeAddressSelf(0x3, 0x7).RCast<CAlignedMemAlloc*>();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
virtual void GetCon(void) const { }
|
virtual void GetCon(void) const { }
|
||||||
|
@ -20,7 +20,7 @@ vector<RPakHandle_t> g_vLoadedPakHandle;
|
|||||||
// bUnk -
|
// bUnk -
|
||||||
// Output : pak file handle on success, INVALID_PAK_HANDLE on failure
|
// Output : pak file handle on success, INVALID_PAK_HANDLE on failure
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
RPakHandle_t CPakFile::LoadAsync(const char* szPakFileName, void* pMalloc, int nIdx, bool bUnk)
|
RPakHandle_t CPakFile::LoadAsync(const char* szPakFileName, CAlignedMemAlloc* pMalloc, int nIdx, bool bUnk)
|
||||||
{
|
{
|
||||||
RPakHandle_t pakHandle = INVALID_PAK_HANDLE;
|
RPakHandle_t pakHandle = INVALID_PAK_HANDLE;
|
||||||
string svPakFileModPath = "paks\\Win32\\" + string(szPakFileName);
|
string svPakFileModPath = "paks\\Win32\\" + string(szPakFileName);
|
||||||
|
@ -26,7 +26,7 @@ enum class ePakStatus : int
|
|||||||
|
|
||||||
/* ==== RTECH_GAME ====================================================================================================================================================== */
|
/* ==== RTECH_GAME ====================================================================================================================================================== */
|
||||||
inline CMemory p_CPakFile_LoadAsync;
|
inline CMemory p_CPakFile_LoadAsync;
|
||||||
inline auto CPakFile_LoadAsync = p_CPakFile_LoadAsync.RCast<RPakHandle_t(*)(const char* szPakFileName, void* pMalloc, int nIdx, bool bUnk)>();
|
inline auto CPakFile_LoadAsync = p_CPakFile_LoadAsync.RCast<RPakHandle_t(*)(const char* szPakFileName, CAlignedMemAlloc* pMalloc, int nIdx, bool bUnk)>();
|
||||||
|
|
||||||
inline CMemory p_CPakFile_LoadPak;
|
inline CMemory p_CPakFile_LoadPak;
|
||||||
inline auto CPakFile_LoadPak = p_CPakFile_LoadPak.RCast<unsigned int (*)(void* thisptr, void* a2, uint64_t a3)>();
|
inline auto CPakFile_LoadPak = p_CPakFile_LoadPak.RCast<unsigned int (*)(void* thisptr, void* a2, uint64_t a3)>();
|
||||||
@ -39,7 +39,7 @@ inline CMemory p_CPakFile_OpenFileOffset; // Offset to inlined 'CPakFile::LoadPa
|
|||||||
class CPakFile
|
class CPakFile
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static RPakHandle_t LoadAsync(const char* szPakFileName, void* pMalloc = g_pMallocPool, int nIdx = NULL, bool bUnk = false);
|
static RPakHandle_t LoadAsync(const char* szPakFileName, CAlignedMemAlloc* pMalloc = g_pAlignedMemAlloc, int nIdx = NULL, bool bUnk = false);
|
||||||
static void UnloadPak(RPakHandle_t handle);
|
static void UnloadPak(RPakHandle_t handle);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ class V_RTechGame : public IDetour
|
|||||||
CPakFile_LoadPak = p_CPakFile_LoadPak.RCast<unsigned int (*)(void*, void*, uint64_t)>();
|
CPakFile_LoadPak = p_CPakFile_LoadPak.RCast<unsigned int (*)(void*, void*, uint64_t)>();
|
||||||
|
|
||||||
p_CPakFile_LoadAsync = g_GameDll.FindPatternSIMD("E8 ?? ?? ?? ?? 89 03 8B 0B").FollowNearCallSelf();
|
p_CPakFile_LoadAsync = g_GameDll.FindPatternSIMD("E8 ?? ?? ?? ?? 89 03 8B 0B").FollowNearCallSelf();
|
||||||
CPakFile_LoadAsync = p_CPakFile_LoadAsync.RCast<RPakHandle_t(*)(const char*, void*, int, bool)>();
|
CPakFile_LoadAsync = p_CPakFile_LoadAsync.RCast<RPakHandle_t(*)(const char*, CAlignedMemAlloc*, int, bool)>();
|
||||||
|
|
||||||
p_CPakFile_UnloadPak = g_GameDll.FindPatternSIMD("E8 ?? ?? ?? ?? 85 FF 74 0C").FollowNearCallSelf();
|
p_CPakFile_UnloadPak = g_GameDll.FindPatternSIMD("E8 ?? ?? ?? ?? 85 FF 74 0C").FollowNearCallSelf();
|
||||||
CPakFile_UnloadPak = p_CPakFile_UnloadPak.RCast<void (*)(RPakHandle_t)>();
|
CPakFile_UnloadPak = p_CPakFile_UnloadPak.RCast<void (*)(RPakHandle_t)>();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user