Skip to content

Commit

Permalink
Remove old hacks
Browse files Browse the repository at this point in the history
  • Loading branch information
TheNormalnij committed Jan 31, 2025
1 parent abee415 commit 5454969
Show file tree
Hide file tree
Showing 5 changed files with 2 additions and 72 deletions.
21 changes: 2 additions & 19 deletions Client/mods/deathmatch/logic/CClientObjectManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -230,22 +230,7 @@ void CClientObjectManager::OnDestruction(CClientObject* pObject)
void CClientObjectManager::UpdateLimitInfo()
{
m_iEntryInfoNodeEntries = g_pMultiplayer->EntryInfoNodePool_NoOfUsedSpaces();
m_iPointerNodeSingleLinkEntries = g_pMultiplayer->PtrNodeSingleLinkPool_NoOfUsedSpaces();
m_iPointerNodeDoubleLinkEntries = g_pMultiplayer->PtrNodeDoubleLinkPool_NoOfUsedSpaces();

/*
CPools* pPools = g_pGame->GetPools();
unsigned int nEntryInfoNodeEntries = pPools->GetEntryInfoNodePool()->GetNumberOfUsedSpaces();
unsigned int nPointerNodeSingleLinkEntries = pPools->GetPointerNodeSingleLinkPool()->GetNumberOfUsedSpaces();
unsigned int nPointerNodeDoubleLinkEntries = pPools->GetPointerNodeDoubleLinkPool()->GetNumberOfUsedSpaces();
g_pCore->ChatPrintf("%d = %d ### %d = %d ### %d = %d", false, nEntryInfoNodeEntries, m_iEntryInfoNodeEntries, nPointerNodeSingleLinkEntries,
m_iPointerNodeSingleLinkEntries, nPointerNodeDoubleLinkEntries, m_iPointerNodeDoubleLinkEntries);
assert(nEntryInfoNodeEntries == m_iEntryInfoNodeEntries);
assert(nPointerNodeSingleLinkEntries == m_iPointerNodeSingleLinkEntries);
assert(nPointerNodeDoubleLinkEntries == m_iPointerNodeDoubleLinkEntries);
*/
}

bool CClientObjectManager::StaticIsObjectLimitReached()
Expand Down Expand Up @@ -278,18 +263,16 @@ bool CClientObjectManager::IsHardObjectLimitReached()
return true;

// If we've run out of either of these limit, don't allow more objects
if (m_iEntryInfoNodeEntries >= MAX_ENTRY_INFO_NODES_MTA || m_iPointerNodeSingleLinkEntries >= MAX_POINTER_SINGLE_LINKS_MTA ||
m_iPointerNodeDoubleLinkEntries >= MAX_POINTER_DOUBLE_LINKS_MTA)
if (m_iEntryInfoNodeEntries >= MAX_ENTRY_INFO_NODES_MTA || m_iPointerNodeDoubleLinkEntries >= MAX_POINTER_DOUBLE_LINKS_MTA)
{
if (!m_bDoneLimitWarning)
{
m_bDoneLimitWarning = true;
SString strMessage(
"CClientObjectManager reached limit -"
" ENTRY_INFO_NODES:%d/%d"
" POINTER_SINGLE_LINKS:%d/%d"
" POINTER_DOUBLE_LINKS:%d/%d",
m_iEntryInfoNodeEntries, MAX_ENTRY_INFO_NODES_MTA, m_iPointerNodeSingleLinkEntries, MAX_POINTER_SINGLE_LINKS_MTA,
m_iEntryInfoNodeEntries, MAX_ENTRY_INFO_NODES_MTA,
m_iPointerNodeDoubleLinkEntries, MAX_POINTER_DOUBLE_LINKS_MTA);
g_pCore->GetConsole()->Echo(strMessage);
AddReportLog(7430, strMessage);
Expand Down
1 change: 0 additions & 1 deletion Client/mods/deathmatch/logic/CClientObjectManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ class CClientObjectManager
void UpdateLimitInfo();

int m_iEntryInfoNodeEntries;
int m_iPointerNodeSingleLinkEntries;
int m_iPointerNodeDoubleLinkEntries;
uint m_uiMaxStreamedInCount;
uint m_uiMaxLowLodStreamedInCount;
Expand Down
1 change: 0 additions & 1 deletion Client/multiplayer_sa/CMultiplayerSA.h
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,6 @@ class CMultiplayerSA : public CMultiplayer
DWORD GetLastAnimArrayAddress() { return m_dwLastAnimArrayAddress; }

unsigned int EntryInfoNodePool_NoOfUsedSpaces() const noexcept override;
unsigned int PtrNodeSingleLinkPool_NoOfUsedSpaces() const noexcept override;
unsigned int PtrNodeDoubleLinkPool_NoOfUsedSpaces() const noexcept override;

CVector m_vecAkimboTarget;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
#include "StdInc.h"

static unsigned int CEntryInfoNodePool_UsedSpaces = 0;
static unsigned int CPtrNodeSingleLinkPool_UsedSpaces = 0;
static unsigned int CPtrNodeDoubleLinkPool_UsedSpaces = 0;

#define HOOKPOS_CEntryInfoNodePool__New 0x536D6E
Expand Down Expand Up @@ -55,46 +54,6 @@ static void _declspec(naked) HOOK_CEntryInfoList__Flush()
}
}

#define HOOKPOS_CPtrNodeSingleLinkPool__New 0x55229B
#define HOOKSIZE_CPtrNodeSingleLinkPool__New 0x5
static void _declspec(naked) HOOK_CPtrNodeSingleLinkPool__New()
{
_asm {
inc CPtrNodeSingleLinkPool_UsedSpaces

lea eax, [ecx+eax*8]
pop esi
ret
}
}
#define HOOKPOS_CPtrNodeSingleLink__operator_delete 0x5523AA
#define HOOKSIZE_CPtrNodeSingleLink__operator_delete 0x5
static const unsigned int RETURN_CPtrNodeSingleLink__operator_delete = 0x5523AF;
static void _declspec(naked) HOOK_CPtrNodeSingleLink__operator_delete()
{
_asm {
dec CPtrNodeSingleLinkPool_UsedSpaces

or bl, 0x80
mov [ecx], bl
jmp RETURN_CPtrNodeSingleLink__operator_delete
}
}

#define HOOKPOS_CPtrListSingleLink__Flush 0x55244D
#define HOOKSIZE_CPtrListSingleLink__Flush 0x6
static const unsigned int RETURN_CPtrListSingleLink__Flush = 0x552453;
static void _declspec(naked) HOOK_CPtrListSingleLink__Flush()
{
_asm {
dec CPtrNodeSingleLinkPool_UsedSpaces

or byte ptr [edx+eax], 0x80
add edx, eax
jmp RETURN_CPtrListSingleLink__Flush
}
}

#define HOOKPOS_CPtrNodeDoubleLinkPool__New 0x55233E
#define HOOKSIZE_CPtrNodeDoubleLinkPool__New 0x6
static void _declspec(naked) HOOK_CPtrNodeDoubleLinkPool__New()
Expand Down Expand Up @@ -142,10 +101,6 @@ void CMultiplayerSA::InitHooks_ObjectStreamerOptimization()
EZHookInstall(CEntryInfoNode__operator_delete);
EZHookInstall(CEntryInfoList__Flush);

EZHookInstall(CPtrNodeSingleLinkPool__New);
EZHookInstall(CPtrNodeSingleLink__operator_delete);
EZHookInstall(CPtrListSingleLink__Flush);

EZHookInstall(CPtrNodeDoubleLinkPool__New);
EZHookInstall(CPtrNodeDoubleLink__operator_delete);
EZHookInstall(CPtrListDoubleLink__Flush);
Expand All @@ -156,11 +111,6 @@ unsigned int CMultiplayerSA::EntryInfoNodePool_NoOfUsedSpaces() const noexcept
return CEntryInfoNodePool_UsedSpaces;
}

unsigned int CMultiplayerSA::PtrNodeSingleLinkPool_NoOfUsedSpaces() const noexcept
{
return CPtrNodeSingleLinkPool_UsedSpaces;
}

unsigned int CMultiplayerSA::PtrNodeDoubleLinkPool_NoOfUsedSpaces() const noexcept
{
return CPtrNodeDoubleLinkPool_UsedSpaces;
Expand Down
1 change: 0 additions & 1 deletion Client/sdk/multiplayer/CMultiplayer.h
Original file line number Diff line number Diff line change
Expand Up @@ -460,6 +460,5 @@ class CMultiplayer
virtual DWORD GetLastAnimArrayAddress() = 0;

virtual unsigned int EntryInfoNodePool_NoOfUsedSpaces() const noexcept = 0;
virtual unsigned int PtrNodeSingleLinkPool_NoOfUsedSpaces() const noexcept = 0;
virtual unsigned int PtrNodeDoubleLinkPool_NoOfUsedSpaces() const noexcept = 0;
};

0 comments on commit 5454969

Please sign in to comment.