@@ -72,14 +72,16 @@ Player::Player(bool m_isFakeClient, int m_slot, const char* m_name, uint64 m_xui
7272 centerMessageEvent->SetUint64 (" duration" , 1 );
7373 centerMessageEvent->SetInt (" userid" , this ->slot );
7474
75- if (!this ->isFakeClient ) playerListener = g_Signatures->FetchSignature <GetLegacyGameEventListener>(" LegacyGameEventListener" )(CPlayerSlot (this ->slot ));
75+ if (!this ->isFakeClient ) playerListener = g_Signatures->FetchSignature <GetLegacyGameEventListener>(" LegacyGameEventListener" )(CPlayerSlot (this ->slot ));
7676}
7777
7878Player::~Player ()
7979{
8080 this ->isFakeClient = true ;
8181 g_gameEventManager->FreeEvent (centerMessageEvent);
82- if (menu_renderer) delete menu_renderer;
82+ if (menu_renderer) delete menu_renderer;
83+ if (playerObject != nullptr )
84+ delete playerObject;
8385}
8486
8587CBasePlayerController* Player::GetController ()
@@ -136,7 +138,7 @@ void Player::SendMsg(int dest, const char* msg, ...)
136138 CBasePlayerController* controller = this ->GetController ();
137139 if (!controller)
138140 return ;
139- if (this ->IsFakeClient ())
141+ if (this ->IsFakeClient ())
140142 return ;
141143
142144 if (dest == HUD_PRINTTALK || dest == HUD_PRINTNOTIFY)
@@ -172,7 +174,7 @@ void Player::SendMsg(int dest, const char* msg, ...)
172174 }
173175 else if (dest == HUD_PRINTCENTER)
174176 {
175- if (std::string (msg) == " " ) this ->centerMessageEndTime = 0 ;
177+ if (std::string (msg) == " " ) this ->centerMessageEndTime = 0 ;
176178 else {
177179 this ->centerMessageEndTime = GetTime () + 5000 ;
178180 this ->centerMessageEvent ->SetString (" loc_token" , msg);
@@ -354,11 +356,11 @@ void OnClientKeyStateChange(int playerid, std::string key, bool pressed);
354356
355357void Player::SetButtons (uint64_t new_buttons)
356358{
357- if (buttons != new_buttons) {
358- for (uint16_t i = 0 ; i < 64 ; i++) {
359- if ((buttons & (1ULL << i)) != 0 && (new_buttons & (1ULL << i)) == 0 )
359+ if (buttons != new_buttons) {
360+ for (uint16_t i = 0 ; i < 64 ; i++) {
361+ if ((buttons & (1ULL << i)) != 0 && (new_buttons & (1ULL << i)) == 0 )
360362 OnClientKeyStateChange (this ->slot , key_buttons[i], true );
361- else if ((buttons & (1ULL << i)) == 0 && (new_buttons & (1ULL << i)) != 0 )
363+ else if ((buttons & (1ULL << i)) == 0 && (new_buttons & (1ULL << i)) != 0 )
362364 OnClientKeyStateChange (this ->slot , key_buttons[i], false );
363365 }
364366 buttons = new_buttons;
@@ -385,9 +387,9 @@ void Player::SetClientConvar(std::string cmd, std::string val)
385387 CSingleRecipientFilter filter (this ->slot );
386388 g_pGameEventSystem->PostEventAbstract (-1 , false , &filter, netmsg, msg, 0 );
387389
388- #ifndef _WIN32
390+ #ifndef _WIN32
389391 delete msg;
390- #endif
392+ #endif
391393}
392394
393395std::any Player::GetInternalVar (std::string name)
@@ -426,26 +428,27 @@ ListenOverride Player::GetListen(CPlayerSlot slot) const
426428CBaseViewModel* Player::EnsureCustomView (int index)
427429{
428430 CCSPlayerPawnBase* pPawnBase = GetPlayerBasePawn ();
429- if (!pPawnBase) return nullptr ;
430- if (pPawnBase->m_lifeState () == 2 ) {
431- if (GetPlayerController ()->m_bControllingBot ()) {
431+ if (!pPawnBase) return nullptr ;
432+ if (pPawnBase->m_lifeState () == 2 ) {
433+ if (GetPlayerController ()->m_bControllingBot ()) {
432434 return nullptr ;
433- } else {
434- if (!GetPawn ()->m_pObserverServices ()) return nullptr ;
435+ }
436+ else {
437+ if (!GetPawn ()->m_pObserverServices ()) return nullptr ;
435438 auto observerPawn = GetPawn ()->m_pObserverServices ->m_hObserverTarget ();
436- if (!observerPawn) return nullptr ;
437-
439+ if (!observerPawn) return nullptr ;
440+
438441 auto observerController = ((CCSPlayerPawn*)(observerPawn.Get ()))->m_hOriginalController ();
439- if (!observerController) return nullptr ;
440-
442+ if (!observerController) return nullptr ;
443+
441444 auto observer = g_playerManager->GetPlayer (observerController->entindex () - 1 );
442- if (!observer) return nullptr ;
445+ if (!observer) return nullptr ;
443446
444447 pPawnBase = observer->GetPlayerBasePawn ();
445448 }
446449 }
447- if (!pPawnBase) return nullptr ;
448- if (!pPawnBase->m_pViewModelServices ()) return nullptr ;
450+ if (!pPawnBase) return nullptr ;
451+ if (!pPawnBase->m_pViewModelServices ()) return nullptr ;
449452
450453 CBaseViewModel* pViewModel = pPawnBase->m_pViewModelServices ()->GetViewModel (index);
451454 if (!pViewModel) {
@@ -455,4 +458,12 @@ CBaseViewModel* Player::EnsureCustomView(int index)
455458 }
456459
457460 return pViewModel;
461+ }
462+
463+ PluginPlayer* Player::GetPlayerObject ()
464+ {
465+ if (playerObject == nullptr ) {
466+ playerObject = new PluginPlayer (this ->GetSlot ().Get ());
467+ }
468+ return playerObject;
458469}
0 commit comments