]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/Main.qc
Declare more ints as ints
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / Main.qc
index 7d85532ba54e51a84f4756ab0ecc65a26f574e23..2ce4e92d01818b8144bc7bf80acbe7f21a381f77 100644 (file)
@@ -28,41 +28,19 @@ void menu_sub_null()
 {
 }
 
-#ifdef USE_FTE
-float __engine_check;
-#endif
-
 string forcefog;
 void WaypointSprite_Load();
 void ConsoleCommand_macro_init();
 void CSQC_Init(void)
 {
        prvm_language = cvar_string("prvm_language");
-#ifdef USE_FTE
-#pragma target ID
-       __engine_check = checkextension("DP_SV_WRITEPICTURE");
-       if(!__engine_check)
-       {
-               print(_("^3Your engine build is outdated\n^3This Server uses a newer QC VM. Please update!\n"));
-               localcmd("\ndisconnect\n");
-               return;
-       }
-#pragma target FTE
-#endif
-
-       check_unacceptable_compiler_bugs();
 
 #ifdef WATERMARK
-       printf(_("^4CSQC Build information: ^1%s\n"), WATERMARK);
+       dprintf("^4CSQC Build information: ^1%s\n", WATERMARK);
 #endif
 
        float i;
 
-#ifdef COMPAT_XON050_ENGINE
-       // old engine lacks implementation of player_localnum
-       player_localnum = player_localentnum - 1;
-#endif
-
        binddb = db_create();
        tempdb = db_create();
        ClientProgsDB = db_load("client.db");
@@ -96,6 +74,8 @@ void CSQC_Init(void)
        for(i = 0; i < MAX_HUD_FIELDS; ++i)
                hud_title[i] = strzone("(null)");
 
+       Cmd_HUD_SetFields(0);
+
        postinit = false;
 
        calledhooks = 0;
@@ -165,13 +145,6 @@ void CSQC_Init(void)
 // CSQC_Shutdown : Called every time the CSQC code is shutdown (changing maps, quitting, etc)
 void Shutdown(void)
 {
-#ifdef USE_FTE
-#pragma TARGET id
-       if(!__engine_check)
-               return 0;
-#pragma TARGET fte
-#endif
-
        WarpZone_Shutdown();
 
        remove(teams);
@@ -274,7 +247,7 @@ float SetTeam(entity o, float Team)
 
 void Playerchecker_Think()
 {
-       float i;
+    int i;
        entity e;
        for(i = 0; i < maxclients; ++i)
        {
@@ -315,8 +288,6 @@ void Porto_Init();
 void TrueAim_Init();
 void PostInit(void)
 {
-       localcmd(strcat("\nscoreboard_columns_set ", autocvar_scoreboard_columns, ";\n"));
-
        entity playerchecker;
        playerchecker = spawn();
        playerchecker.think = Playerchecker_Think;
@@ -366,7 +337,7 @@ void Ent_RemoveEntCS()
 }
 void Ent_ReadEntCS()
 {
-       float sf;
+    int sf;
        InterpolateOrigin_Undo();
 
        self.classname = "entcs_receiver";
@@ -447,7 +418,7 @@ void Ent_ReadPlayerScore()
        //      RegisterPlayer(o);
        //playerchecker will do this for us later, if it has not already done so
 
-       float sf, lf;
+    int sf, lf;
 #if MAX_SCORE <= 8
        sf = ReadByte();
        lf = ReadByte();
@@ -455,7 +426,7 @@ void Ent_ReadPlayerScore()
        sf = ReadShort();
        lf = ReadShort();
 #endif
-       float p;
+    int p;
        for(i = 0, p = 1; i < MAX_SCORE; ++i, p *= 2)
                if(sf & p)
                {
@@ -479,7 +450,7 @@ void Ent_ReadTeamScore()
        self.team = ReadByte();
        o = self.owner = GetTeam(self.team, true); // these team numbers can always be trusted
 
-       float sf, lf;
+    int sf, lf;
 #if MAX_TEAMSCORE <= 8
        sf = ReadByte();
        lf = ReadByte();
@@ -502,10 +473,9 @@ void Ent_ReadTeamScore()
 
 void Ent_ClientData()
 {
-       float f;
        float newspectatee_status;
 
-       f = ReadByte();
+    int f = ReadByte();
 
        scoreboard_showscores_force = (f & 1);
 
@@ -547,14 +517,14 @@ void Ent_ClientData()
        }
        spectatee_status = newspectatee_status;
 
-       // non-COMPAT_XON050_ENGINE: we could get rid of spectatee_status, and derive it from player_localentnum and player_localnum
+       // we could get rid of spectatee_status, and derive it from player_localentnum and player_localnum
 }
 
 void Ent_Nagger()
 {
-       float nags, i, j, b, f;
+    int i, j, b, f;
 
-       nags = ReadByte(); // NAGS NAGS NAGS NAGS NAGS NAGS NADZ NAGS NAGS NAGS
+    int nags = ReadByte(); // NAGS NAGS NAGS NAGS NAGS NAGS NADZ NAGS NAGS NAGS
 
        if(!(nags & 4))
        {
@@ -605,6 +575,27 @@ void Ent_Nagger()
        warmup_stage = (nags & 16);
 }
 
+void Ent_EliminatedPlayers()
+{
+    int i, j, b, f;
+
+    int sf = ReadByte();
+       if(sf & 1)
+       {
+               for(j = 0; j < maxclients; ++j)
+                       if(playerslots[j])
+                               playerslots[j].eliminated = 1;
+               for(i = 1; i <= maxclients; i += 8)
+               {
+                       f = ReadByte();
+                       for(j = i-1, b = 1; b < 256; b *= 2, ++j)
+                               if (!(f & b))
+                                       if(playerslots[j])
+                                               playerslots[j].eliminated = 0;
+               }
+       }
+}
+
 void Ent_RandomSeed()
 {
        float s;
@@ -615,8 +606,8 @@ void Ent_RandomSeed()
 
 void Ent_ReadAccuracy(void)
 {
-       float sf, f, w, b;
-       sf = ReadInt24_t();
+    int f, w;
+    int sf = ReadInt24_t();
        if(sf == 0)
        {
                for(w = 0; w <= WEP_LAST - WEP_FIRST; ++w)
@@ -628,7 +619,7 @@ void Ent_ReadAccuracy(void)
        {
                if(sf & f)
                {
-                       b = ReadByte();
+            int b = ReadByte();
                        if(b == 0)
                                weapon_accuracy[w] = -1;
                        else if(b == 255)
@@ -803,6 +794,7 @@ void CSQC_Ent_Update(float bIsNewEntity)
                case ENT_CLIENT_RAINSNOW: Ent_RainOrSnow(); break;
                case ENT_CLIENT_LASER: Ent_Laser(); break;
                case ENT_CLIENT_NAGGER: Ent_Nagger(); break;
+               case ENT_CLIENT_ELIMINATEDPLAYERS: Ent_EliminatedPlayers(); break;
                case ENT_CLIENT_WAYPOINT: Ent_WaypointSprite(); break;
                case ENT_CLIENT_RADARLINK: Ent_RadarLink(); break;
                case ENT_CLIENT_PROJECTILE: Ent_Projectile(); break;
@@ -836,7 +828,7 @@ void CSQC_Ent_Update(float bIsNewEntity)
 
                default:
                        //error(strcat(_("unknown entity type in CSQC_Ent_Update: %d\n"), self.enttype));
-                       error(sprintf(_("Unknown entity type in CSQC_Ent_Update (enttype: %d, edict: %d, classname: %s)\n"), self.enttype, num_for_edict(self), self.classname));
+                       error(sprintf("Unknown entity type in CSQC_Ent_Update (enttype: %d, edict: %d, classname: %s)\n", self.enttype, num_for_edict(self), self.classname));
                        break;
        }
 
@@ -934,17 +926,21 @@ void Fog_Force()
 void Gamemode_Init();
 void Ent_ScoresInfo()
 {
-       float i;
+    int i;
        self.classname = "ent_client_scores_info";
        gametype = ReadInt24_t();
        HUD_ModIcons_SetFunc();
        for(i = 0; i < MAX_SCORE; ++i)
        {
+               if(scores_label[i])
+                       strunzone(scores_label[i]);
                scores_label[i] = strzone(ReadString());
                scores_flags[i] = ReadByte();
        }
        for(i = 0; i < MAX_TEAMSCORE; ++i)
        {
+               if(teamscores_label[i])
+                       strunzone(teamscores_label[i]);
                teamscores_label[i] = strzone(ReadString());
                teamscores_flags[i] = ReadByte();
        }
@@ -973,8 +969,8 @@ void Ent_Init()
 
        armorblockpercent = ReadByte() / 255.0;
 
-       g_balance_grenadelauncher_bouncefactor = ReadCoord();
-       g_balance_grenadelauncher_bouncestop = ReadCoord();
+       g_balance_mortar_bouncefactor = ReadCoord();
+       g_balance_mortar_bouncestop = ReadCoord();
        g_balance_electro_secondary_bouncefactor = ReadCoord();
        g_balance_electro_secondary_bouncestop = ReadCoord();
 
@@ -1096,13 +1092,13 @@ void Net_ReadRace()
                        race_speedaward_alltimebest_holder = strzone(ReadString());
                        break;
                case RACE_NET_SERVER_RANKINGS:
-                       float pos, prevpos, del;
-                       pos = ReadShort();
+                       float prevpos, del;
+            int pos = ReadShort();
                        prevpos = ReadShort();
                        del = ReadShort();
 
                        // move other rankings out of the way
-                       float i;
+            int i;
                        if (prevpos) {
                                for (i=prevpos-1;i>pos-1;--i) {
                                        grecordtime[i] = grecordtime[i-1];
@@ -1300,7 +1296,7 @@ string getcommandkey(string text, string command)
                        return text;
        }
        else if (autocvar_hud_showbinds > 1)
-               return sprintf(_("%s (%s)"), text, keys);
+               return sprintf("%s (%s)", text, keys);
        else
                return keys;
 }