X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fstate.qc;h=651a86f917f5a83ead5c6517070b05bd6be1cd4c;hb=3d26fc0c5b264d9564d5756884737b743012e7e8;hp=2e3a262a59e9662c2456e77a7277f2cb9bd9acef;hpb=e044c33d2e56a13837659b0cdb0ac9a2e6242957;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/state.qc b/qcsrc/common/state.qc index 2e3a262a5..651a86f91 100644 --- a/qcsrc/common/state.qc +++ b/qcsrc/common/state.qc @@ -1,10 +1,17 @@ #include "state.qh" -void Inventory_new(entity this); +#include + +void Inventory_new(PlayerState this); void Inventory_delete(entity this); +void InventoryStorage_attach(PlayerState this); +void InventoryStorage_detach(PlayerState this); void PlayerState_attach(entity this) { + if (PS(this) && PS(this).m_client == this) + return; + this._ps = NEW(PlayerState, this); Inventory_new(PS(this)); @@ -24,7 +31,6 @@ void PlayerState_detach(entity this) delete(ps); } -void GetCvars(entity this, entity store, int); void DecodeLevelParms(entity this); void PlayerScore_Attach(entity this); void ClientData_Attach(entity this); @@ -38,8 +44,6 @@ void ClientState_attach(entity this) { this._cs = NEW(ClientState, this); - GetCvars(this, CS(this), 0); // get other cvars from player - // TODO: fold all of these into ClientState DecodeLevelParms(this); @@ -51,6 +55,7 @@ void ClientState_attach(entity this) entcs_attach(this); anticheat_init(this); W_HitPlotOpen(this); + InventoryStorage_attach(this); } void bot_clientdisconnect(entity this); @@ -63,17 +68,17 @@ void PlayerScore_Detach(entity this); void ClientState_detach(entity this) { - GetCvars(this, CS(this), -1); // free cvars TODO: is this still needed now that it's stored on the clientstate entity? + GetCvars(this, CS_CVAR(this), -1); // free cvars TODO: is this still needed now that it's stored on the clientstate entity? accuracy_free(this); // TODO: needs to be before CS() is deleted! PlayerScore_Detach(this); // what ^they^ said W_HitPlotClose(this); ClientData_Detach(this); + entcs_detach(this); + InventoryStorage_detach(this); delete(CS(this)); this._cs = NULL; - bot_clientdisconnect(this); anticheat_report_to_eventlog(this); - entcs_detach(this); }