Skip to content

Commit

Permalink
Reset local player in CClientGame in CClientPlayer destructor
Browse files Browse the repository at this point in the history
Solves crash offset 0005973b
  • Loading branch information
botder committed Sep 25, 2019
1 parent 19d0895 commit 381d74d
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
5 changes: 4 additions & 1 deletion Client/mods/deathmatch/logic/CClientGame.h
Expand Up @@ -282,10 +282,13 @@ class CClientGame


CBlendedWeather* GetBlendedWeather() { return m_pBlendedWeather; }; CBlendedWeather* GetBlendedWeather() { return m_pBlendedWeather; };
CNetAPI* GetNetAPI() { return m_pNetAPI; }; CNetAPI* GetNetAPI() { return m_pNetAPI; };
CClientPlayer* GetLocalPlayer() { return m_pLocalPlayer; };
CRadarMap* GetRadarMap() { return m_pRadarMap; }; CRadarMap* GetRadarMap() { return m_pRadarMap; };
CMovingObjectsManager* GetMovingObjectsManager() { return m_pMovingObjectsManager; } CMovingObjectsManager* GetMovingObjectsManager() { return m_pMovingObjectsManager; }


CClientPlayer* GetLocalPlayer() { return m_pLocalPlayer; }
const CClientPlayer* GetLocalPlayer() const { return m_pLocalPlayer; }
void ResetLocalPlayer() { m_pLocalPlayer = nullptr; }

CUnoccupiedVehicleSync* GetUnoccupiedVehicleSync() { return m_pUnoccupiedVehicleSync; } CUnoccupiedVehicleSync* GetUnoccupiedVehicleSync() { return m_pUnoccupiedVehicleSync; }
CPedSync* GetPedSync() { return m_pPedSync; } CPedSync* GetPedSync() { return m_pPedSync; }
#ifdef WITH_OBJECT_SYNC #ifdef WITH_OBJECT_SYNC
Expand Down
11 changes: 11 additions & 0 deletions Client/mods/deathmatch/logic/CClientPlayer.cpp
Expand Up @@ -89,6 +89,17 @@ CClientPlayer::CClientPlayer(CClientManager* pManager, ElementID ID, bool bIsLoc


CClientPlayer::~CClientPlayer() CClientPlayer::~CClientPlayer()
{ {
if (m_bIsLocalPlayer)
{
CClientPlayerManager* playerManager = m_pManager->GetPlayerManager();

if (playerManager->GetLocalPlayer() == this)
{
playerManager->SetLocalPlayer(nullptr);
g_pClientGame->ResetLocalPlayer();
}
}

// Remove us from the team // Remove us from the team
if (m_pTeam) if (m_pTeam)
m_pTeam->RemovePlayer(this); m_pTeam->RemovePlayer(this);
Expand Down

0 comments on commit 381d74d

Please sign in to comment.