summaryrefslogtreecommitdiffstats
path: root/src/core/References.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/References.cpp')
-rw-r--r--src/core/References.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/core/References.cpp b/src/core/References.cpp
index e87f0fd5..52abbc3e 100644
--- a/src/core/References.cpp
+++ b/src/core/References.cpp
@@ -1,13 +1,13 @@
#include "common.h"
-#include "patcher.h"
+
#include "World.h"
#include "Vehicle.h"
#include "PlayerPed.h"
#include "Pools.h"
#include "References.h"
-CReference *CReferences::aRefs = (CReference*)0x70BBE0; //[NUMREFERENCES];
-CReference *&CReferences::pEmptyList = *(CReference**)0x8F1AF8;
+CReference CReferences::aRefs[NUMREFERENCES];
+CReference *CReferences::pEmptyList;
void
CReferences::Init(void)
@@ -26,8 +26,17 @@ CReferences::RemoveReferencesToPlayer(void)
{
if(FindPlayerVehicle())
FindPlayerVehicle()->ResolveReferences();
+#ifdef FIX_BUGS
+ if (FindPlayerPed()) {
+ CPlayerPed* pPlayerPed = FindPlayerPed();
+ FindPlayerPed()->ResolveReferences();
+ CWorld::Players[CWorld::PlayerInFocus].m_pPed = pPlayerPed;
+ pPlayerPed->RegisterReference((CEntity**)&CWorld::Players[CWorld::PlayerInFocus].m_pPed);
+ }
+#else
if(FindPlayerPed())
FindPlayerPed()->ResolveReferences();
+#endif
}
void
@@ -57,9 +66,3 @@ CReferences::PruneAllReferencesInWorld(void)
e->PruneReferences();
}
}
-
-STARTPATCHES
- InjectHook(0x4A7350, CReferences::Init, PATCH_JUMP);
- InjectHook(0x4A7570, CReferences::RemoveReferencesToPlayer, PATCH_JUMP);
- InjectHook(0x4A75A0, CReferences::PruneAllReferencesInWorld, PATCH_JUMP);
-ENDPATCHES