]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/Main.qc
Merge branch 'TimePath/issues/1421' into 'master'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / Main.qc
index 7ccb8968ffb485c666c17fd4408f5c05e1cb10c6..58bd4f497478544bb9527df0388a9f68454c7658 100644 (file)
@@ -28,32 +28,15 @@ 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;
@@ -96,6 +79,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 +150,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);
@@ -315,8 +293,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;
@@ -605,6 +581,27 @@ void Ent_Nagger()
        warmup_stage = (nags & 16);
 }
 
+void Ent_EliminatedPlayers()
+{
+       float sf, i, j, b, f;
+
+       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;
@@ -803,6 +800,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 +834,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;
        }
 
@@ -940,11 +938,15 @@ void Ent_ScoresInfo()
        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();
        }
@@ -1300,7 +1302,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;
 }