]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/cl_client.qc
Merge branch 'master' into terencehill/centerprint_stuff
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / cl_client.qc
index 2a22d193a1b9a2cd671a5164cfc0f06750cd895f..d3a8ba3aa861e9da431ed384cb7518e63501a98d 100644 (file)
@@ -614,6 +614,9 @@ void PutObserverInServer (void)
        DropAllRunes(self);
        MUTATOR_CALLHOOK(MakePlayerObserver);
 
+       if (g_minstagib)
+               minstagib_stop_countdown();
+
        Portal_ClearAll(self);
 
        if(self.alivetime)
@@ -1303,17 +1306,18 @@ void KillIndicator_Think()
                {
                        if(self.cnt <= 10)
                                AnnounceTo(self.owner, strcat(ftos(self.cnt), ""));
+                       // TODO: Send_CSQC_Centerprint_Generic only once
                        if(self.owner.killindicator_teamchange)
                        {
                                if(self.owner.killindicator_teamchange == -1)
-                                       centerprint(self.owner, strcat("Changing team in ", ftos(self.cnt), " seconds"));
+                                       Send_CSQC_Centerprint_Generic(self.owner, CPID_TEAMCHANGE, "Changing team in %d seconds", 1, self.cnt);
                                else if(self.owner.killindicator_teamchange == -2)
-                                       centerprint(self.owner, strcat("Spectating in ", ftos(self.cnt), " seconds"));
+                                       Send_CSQC_Centerprint_Generic(self.owner, CPID_TEAMCHANGE, "Spectating in %d seconds", 1, self.cnt);
                                else
-                                       centerprint(self.owner, strcat("Changing to ", ColoredTeamName(self.owner.killindicator_teamchange), " in ", ftos(self.cnt), " seconds"));
+                                       Send_CSQC_Centerprint_Generic(self.owner, CPID_TEAMCHANGE, strcat("Changing to ", ColoredTeamName(self.owner.killindicator_teamchange), " in %d seconds"), 1, self.cnt);
                        }
                        else
-                               centerprint(self.owner, strcat("^1Suicide in ", ftos(self.cnt), " seconds"));
+                               Send_CSQC_Centerprint_Generic(self.owner, CPID_KILL, "^1Suicide in %d seconds", 1, self.cnt);
                }
                self.nextthink = time + 1;
                self.cnt -= 1;
@@ -1662,8 +1666,6 @@ void ClientConnect (void)
 
        bprint("\n");
 
-       self.welcomemessage_time = 0;
-
        stuffcmd(self, strcat(clientstuff, "\n"));
        stuffcmd(self, strcat("exec maps/", mapname, ".cfg\n"));
        stuffcmd(self, "cl_particles_reloadeffects\n");
@@ -1777,6 +1779,9 @@ void ClientConnect (void)
                set_dom_state(self);
 
        CheatInitClient();
+
+       // FIXME: .BUTTON_INFO in PrintWelcomeMessage must be checked at every frame, not just here
+       PrintWelcomeMessage(self);
 }
 
 /*
@@ -2004,7 +2009,7 @@ string getTimeoutText(float addOneSecond) {
                else {
                        retStr = strcat("Timeout ends in ", ftos(remainingTimeoutTime), " seconds!\n");
                        //don't show messages like "Timeout ends in 0 seconds"...
-                       if (remainingTimeoutTime > 0)
+                       if ((remainingTimeoutTime) > 0)
                                return retStr;
                        else
                                return "";
@@ -2447,7 +2452,7 @@ void LeaveSpectatorMode()
                                bprint ("^4", self.netname, "^4 is playing now\n");
 
                        if(!autocvar_g_campaign)
-                               centerprint(self,""); // clear MOTD
+                               Send_CSQC_Centerprint_Generic(self, CPID_MOTD, "", 1, 0); // clear MOTD
 
                        return;
                } else {
@@ -2532,7 +2537,6 @@ void ObserverThink()
                        }
                }
        }
-       PrintWelcomeMessage(self);
 }
 
 void SpectatorThink()
@@ -2572,7 +2576,6 @@ void SpectatorThink()
                }
        }
 
-       PrintWelcomeMessage(self);
        self.flags |= FL_CLIENT | FL_NOTARGET;
 }
 
@@ -2686,8 +2689,6 @@ void PlayerPreThink (void)
 
                CheckRules_Player();
 
-               PrintWelcomeMessage(self);
-
                if (intermission_running)
                {
                        IntermissionThink ();   // otherwise a button could be missed between
@@ -2743,6 +2744,9 @@ void PlayerPreThink (void)
                        player_powerups();
                }
 
+               if (g_minstagib)
+                       minstagib_ammocheck();
+
                if (self.deadflag != DEAD_NO)
                {
                        float button_pressed, force_respawn;
@@ -2790,6 +2794,8 @@ void PlayerPreThink (void)
                        }
                        return;
                }
+               // FIXME from now on self.deadflag is always 0 (and self.health is never < 1)
+               // so (self.deadflag == DEAD_NO) is always true in the code below
 
                if(g_touchexplode)
                if(time > self.touchexplode_time)
@@ -2901,9 +2907,6 @@ void PlayerPreThink (void)
                if(frametime)
                        player_anim();
 
-               if (g_minstagib)
-                       minstagib_ammocheck();
-
                if(g_ctf)
                        ctf_setstatus();
 
@@ -3042,13 +3045,14 @@ void PlayerPostThink (void)
                {
                        if(timeleft != self.idlekick_lasttimeleft)
                        {
-                               centerprint_atprio(self, CENTERPRIO_IDLEKICK, strcat("^3Stop idling!\n^3Disconnecting in ", ftos(timeleft), "..."));
+                               // TODO: send this msg only once
+                               Send_CSQC_Centerprint_Generic(self, CPID_DISCONNECT_IDLING, "^3Stop idling!\n^3Disconnecting in %d seconds...", 1, timeleft);
                                AnnounceTo(self, strcat(ftos(timeleft), ""));
                        }
                }
                else
                {
-                       centerprint_expire(self, CENTERPRIO_IDLEKICK);
+                       Send_CSQC_Centerprint_Generic(self, CPID_DISCONNECT_IDLING, "", 1, timeleft);
                }
                self.idlekick_lasttimeleft = timeleft;
        }