3 void Inventory_new(PlayerState this);
4 void Inventory_delete(entity this);
6 void PlayerState_attach(entity this)
11 this._ps = NEW(PlayerState, this);
13 Inventory_new(PS(this));
16 void PlayerState_detach(entity this)
18 PlayerState ps = PS(this);
19 if (!ps) return; // initial connect
22 if (ps.m_client != this) return; // don't own state, spectator
26 FOREACH_CLIENT(PS(it) == ps, { PS(it) = NULL; });
30 void GetCvars(entity this, entity store, int);
31 void DecodeLevelParms(entity this);
32 void PlayerScore_Attach(entity this);
33 void ClientData_Attach(entity this);
34 void accuracy_init(entity this);
35 void entcs_attach(entity this);
36 void anticheat_init(entity this);
37 void W_HitPlotOpen(entity this);
38 void bot_clientconnect(entity this);
40 void ClientState_attach(entity this)
42 this._cs = NEW(ClientState, this);
44 // TODO: fold all of these into ClientState
46 DecodeLevelParms(this);
48 PlayerScore_Attach(this);
49 PlayerStats_PlayerBasic_CheckUpdate(this);
50 ClientData_Attach(this);
57 void bot_clientdisconnect(entity this);
58 void W_HitPlotClose(entity this);
59 void anticheat_report_to_eventlog(entity this);
60 void entcs_detach(entity this);
61 void accuracy_free(entity this);
62 void ClientData_Detach(entity this);
63 void PlayerScore_Detach(entity this);
65 void ClientState_detach(entity this)
67 GetCvars(this, CS(this), -1); // free cvars TODO: is this still needed now that it's stored on the clientstate entity?
68 accuracy_free(this); // TODO: needs to be before CS() is deleted!
69 PlayerScore_Detach(this); // what ^they^ said
71 ClientData_Detach(this);
76 bot_clientdisconnect(this);
78 anticheat_report_to_eventlog(this);