L L4D2node

CBasePlayer::~CBasePlayer

0x007ba110 · 341 bytes · __thiscall

_ZN11CBasePlayerD2Ev

Decompiled

undefined (1 param)

/* CBasePlayer::~CBasePlayer() */

void __thiscall CBasePlayer::~CBasePlayer(CBasePlayer *this)

{
  CUtlVector<CCommandContext,CUtlMemory<CCommandContext,int>> *this_00;
  
  *(undefined ***)this = &PTR__CBasePlayer_00cba2e8;
  VPhysicsDestroyObject(this);
  *(undefined4 *)(this + 0x235c) = 0;
  CUtlMemory<CHandle<CBasePlayer>,int>::Purge
            ((CUtlMemory<CHandle<CBasePlayer>,int> *)(this + 0x2350));
  *(undefined4 *)(this + 0x2360) = *(undefined4 *)(this + 0x2350);
  CUtlMemory<CHandle<CBasePlayer>,int>::Purge
            ((CUtlMemory<CHandle<CBasePlayer>,int> *)(this + 0x2350));
  CUtlLinkedList<CPlayerCmdInfo,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CPlayerCmdInfo,unsigned_short>,unsigned_short>>
  ::RemoveAll((CUtlLinkedList<CPlayerCmdInfo,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CPlayerCmdInfo,unsigned_short>,unsigned_short>>
               *)(this + 0x2304));
  CUtlMemory<UtlLinkedListElem_t<CPlayerCmdInfo,unsigned_short>,unsigned_short>::Purge
            ((CUtlMemory<UtlLinkedListElem_t<CPlayerCmdInfo,unsigned_short>,unsigned_short> *)
             (this + 0x2304));
  CUtlLinkedList<CPlayerSimInfo,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CPlayerSimInfo,unsigned_short>,unsigned_short>>
  ::RemoveAll((CUtlLinkedList<CPlayerSimInfo,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CPlayerSimInfo,unsigned_short>,unsigned_short>>
               *)(this + 0x22e8));
  CUtlMemory<UtlLinkedListElem_t<CPlayerSimInfo,unsigned_short>,unsigned_short>::Purge
            ((CUtlMemory<UtlLinkedListElem_t<CPlayerSimInfo,unsigned_short>,unsigned_short> *)
             (this + 0x22e8));
  *(undefined ***)(this + 0x216c) = &PTR_SetAbsOrigin_00cbbba8;
  *(undefined ***)(this + 0x2170) = &PTR_GetName_00cbbc40;
  *(undefined4 *)(this + 0x2074) = 0;
  CUtlMemory<CHandle<CBaseEntity>,int>::Purge
            ((CUtlMemory<CHandle<CBaseEntity>,int> *)(this + 0x2068));
  *(undefined4 *)(this + 0x2078) = *(undefined4 *)(this + 0x2068);
  this_00 = (CUtlVector<CCommandContext,CUtlMemory<CCommandContext,int>> *)(this + 0x1dc0);
  CUtlMemory<CHandle<CBaseEntity>,int>::Purge
            ((CUtlMemory<CHandle<CBaseEntity>,int> *)(this + 0x2068));
  *(undefined ***)(this + 0x1f8c) = &PTR__CUserCmd_00c15058;
  CUtlVector<CCommandContext,CUtlMemory<CCommandContext,int>>::RemoveAll(this_00);
  CUtlMemory<CCommandContext,int>::Purge((CUtlMemory<CCommandContext,int> *)this_00);
  *(undefined4 *)(this + 0x1dd0) = *(undefined4 *)(this + 0x1dc0);
  CUtlMemory<CCommandContext,int>::Purge((CUtlMemory<CCommandContext,int> *)this_00);
  *(undefined ***)(this + 0x1c7c) = &PTR_NetworkStateChanged_00cba1c0;
  *(undefined4 *)(this + 0x1c74) = 0;
  CUtlMemory<CHandle<CBaseEntity>,int>::Purge
            ((CUtlMemory<CHandle<CBaseEntity>,int> *)(this + 0x1c68));
  *(undefined4 *)(this + 0x1c78) = *(undefined4 *)(this + 0x1c68);
  CUtlMemory<CHandle<CBaseEntity>,int>::Purge
            ((CUtlMemory<CHandle<CBaseEntity>,int> *)(this + 0x1c68));
  *(undefined4 *)(this + 0x1c58) = 0;
  CUtlMemory<CHandle<CTonemapTrigger>,int>::Purge
            ((CUtlMemory<CHandle<CTonemapTrigger>,int> *)(this + 0x1c4c));
  *(undefined4 *)(this + 0x1c5c) = *(undefined4 *)(this + 0x1c4c);
  CUtlMemory<CHandle<CTonemapTrigger>,int>::Purge
            ((CUtlMemory<CHandle<CTonemapTrigger>,int> *)(this + 0x1c4c));
  CBaseCombatCharacter::~CBaseCombatCharacter((CBaseCombatCharacter *)this);
  return;
}

SourceMod gamedata

paste into addons/sourcemod/gamedata/<your_plugin>.txt
used as the SourceMod key — change to fit your plugin's convention
SourceMod library name (server / engine / matchmaking)

Just a Signatures{} block, ready to drop into a gamedata file. Wire it up in your plugin however you like - SDKCall, DHooks, raw memory ops, or anything else.



        

        

          

Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.

Return-type handling cheatsheet (DHookReturn)