]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/state.qc
Scoreboard ELO: show "..." when loading, "N/A" when missing
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / state.qc
index d75e08027171aee5cf812333cb56367bb974a3e8..eaa96892f64aba3e9e1cb38f5b2e34af51358ed3 100644 (file)
@@ -15,9 +15,15 @@ void PlayerState_detach(entity this)
     PlayerState ps = PS(this);
        if (!ps) return;  // initial connect
        PS(this) = NULL;
+
+       ps.m_switchweapon = WEP_Null;
+       ps.m_weapon = WEP_Null;
+       ps.m_switchingweapon = WEP_Null;
+       ps.ps_push(ps, this);
+
        if (ps.m_client != this) return;  // don't own state, spectator
        FOREACH_CLIENT(PS(it) == ps, { PS(it) = NULL; });
-       remove(ps);
+       delete(ps);
 
     Inventory_delete(this);
 }
@@ -39,14 +45,12 @@ void ClientState_attach(entity this)
 
     GetCvars(this, 0);  // get other cvars from player
 
-       // TODO: xonstat elo.txt support, until then just 404s
-       if (false && IS_REAL_CLIENT(this)) { PlayerStats_PlayerBasic_CheckUpdate(this); }
-
        // TODO: fold all of these into ClientState
 
        DecodeLevelParms(this);
 
        PlayerScore_Attach(this);
+       PlayerStats_PlayerBasic_CheckUpdate(this);
        ClientData_Attach(this);
        accuracy_init(this);
        entcs_attach(this);
@@ -60,7 +64,7 @@ void ClientState_attach(entity this)
 void bot_clientdisconnect(entity this);
 void W_HitPlotClose(entity this);
 void anticheat_report(entity this);
-void playerdemo_shutdown();
+void playerdemo_shutdown(entity this);
 void entcs_detach(entity this);
 void accuracy_free(entity this);
 void ClientData_Detach(entity this);
@@ -68,7 +72,7 @@ void PlayerScore_Detach(entity this);
 
 void ClientState_detach(entity this)
 {
-       remove(CS(this));
+       delete(CS(this));
        this._cs = NULL;
 
     GetCvars(this, -1);  // free cvars
@@ -77,9 +81,9 @@ void ClientState_detach(entity this)
 
     W_HitPlotClose(this);
     anticheat_report(this);
-    playerdemo_shutdown();
+    playerdemo_shutdown(this);
     entcs_detach(this);
-    accuracy_free(self);
+    accuracy_free(this);
     ClientData_Detach(this);
-    PlayerScore_Detach(self);
+    PlayerScore_Detach(this);
 }