X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2FMain.qc;h=ddace6382ac4a0db186730d120af9303fcfde33d;hb=bb996f6e8a57eff26bad32bed789bd7b5ee06313;hp=f24b483d6d7b5ce9181212abf199f44a7f757ba1;hpb=b43fcd26bdaa013eb27d20bf4f9bc4db853181de;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/Main.qc b/qcsrc/client/Main.qc index f24b483d6..ddace6382 100644 --- a/qcsrc/client/Main.qc +++ b/qcsrc/client/Main.qc @@ -63,7 +63,7 @@ void CSQC_Init(void) check_unacceptable_compiler_bugs(); #ifdef WATERMARK - print(sprintf(_("^4CSQC Build information: %s\n"), WATERMARK())); + print(sprintf(_("^4CSQC Build information: ^1%s\n"), WATERMARK())); #endif float i; @@ -151,6 +151,9 @@ void CSQC_Init(void) } Tuba_Precache(); + if(autocvar_cl_reticle_item_normal) precache_pic("gfx/reticle_normal"); + if(autocvar_cl_reticle_item_nex) precache_pic("gfx/reticle_nex"); + get_mi_min_max_texcoords(1); // try the CLEVER way first minimapname = strcat("gfx/", mi_shortname, "_radar.tga"); shortmapname = mi_shortname; @@ -170,7 +173,9 @@ void CSQC_Init(void) minimapname = strzone(minimapname); WarpZone_Init(); + hud_configure_prev = -1; + tab_panel = -1; } // CSQC_Shutdown : Called every time the CSQC code is shutdown (changing maps, quitting, etc) @@ -200,6 +205,10 @@ void CSQC_Shutdown(void) if(camera_active) cvar_set("chase_active",ftos(chase_active_backup)); + // unset the event chasecam's chase_active + if(autocvar_chase_active < 0) + cvar_set("chase_active", "0"); + if not(isdemo()) { if not(calledhooks & HOOK_START) @@ -612,6 +621,7 @@ void GameCommand(string msg) vote_prev = 0; cvar_set("cl_allow_uid2name", "1"); vote_change = -9999; + uid2name_dialog = 0; } else { @@ -626,6 +636,7 @@ void GameCommand(string msg) vote_prev = 0; cvar_set("cl_allow_uid2name", "0"); vote_change = -9999; + uid2name_dialog = 0; } else { @@ -828,6 +839,15 @@ void Ent_ClientData() race_laptime = 0; race_checkpointtime = 0; } + if (autocvar_hud_panel_healtharmor_progressbar_gfx) + { + if ( (spectatee_status == -1 && newspectatee_status > 0) //before observing, now spectating + || (spectatee_status > 0 && newspectatee_status > 0 && spectatee_status != newspectatee_status) //changed spectated player + ) + prev_p_health = -1; + else if(spectatee_status && !newspectatee_status) //before observing/spectating, now playing + prev_health = -1; + } spectatee_status = newspectatee_status; } @@ -900,6 +920,41 @@ void Ent_ReadAccuracy(void) } } +void Ent_ShowNames() +{ + float sf; + + // entity init, TODO can this be done only once somehow? + self.the_entnum = ReadByte(); // TODO: fixme to only send once somehow + self.draw2d = Draw_ShowNames; + //self.movetype = MOVETYPE_FLY; // movetype needed so we can traceline? + self.mins = '-20 -20 -24'; + self.maxs = '20 20 45'; + self.classname = "shownames_tag"; + + sf = ReadByte(); + + if(sf & 1) + { + self.origin_x = ReadShort(); + self.origin_y = ReadShort(); + self.origin_z = ReadShort(); + } + if(sf & 2) + { + self.healthvalue = ReadByte(); + } + if(sf & 4) + { + self.armorvalue = ReadByte(); + } + + if(sf & 128) // same team + self.sameteam = TRUE; + else + self.sameteam = FALSE; +} + // CSQC_Ent_Update : Called every frame that the server has indicated an update to the SSQC / CSQC entity has occured. // The only parameter reflects if the entity is "new" to the client, meaning it just came into the client's PVS. void Ent_RadarLink(); @@ -959,11 +1014,13 @@ void(float bIsNewEntity) CSQC_Ent_Update = case ENT_CLIENT_TUBANOTE: Ent_TubaNote(bIsNewEntity); break; case ENT_CLIENT_WARPZONE: WarpZone_Read(bIsNewEntity); break; case ENT_CLIENT_WARPZONE_CAMERA: WarpZone_Camera_Read(bIsNewEntity); break; + case ENT_CLIENT_WARPZONE_TELEPORTED: WarpZone_Teleported_Read(bIsNewEntity); break; case ENT_CLIENT_TRIGGER_MUSIC: Ent_ReadTriggerMusic(); break; case ENT_CLIENT_HOOK: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_HOOK); break; case ENT_CLIENT_LGBEAM: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_LGBEAM); break; case ENT_CLIENT_GAUNTLET: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_GAUNTLET); break; case ENT_CLIENT_ACCURACY: Ent_ReadAccuracy(); break; + case ENT_CLIENT_SHOWNAMES: Ent_ShowNames(); break; default: error(strcat(_("unknown entity type in CSQC_Ent_Update: %d\n"), self.enttype)); break; @@ -995,15 +1052,6 @@ void CSQC_Ent_Remove() void Gamemode_Init() { - if(gametype == GAME_ONSLAUGHT) { - print(strcat("Using ", minimapname, " as minimap.\n")); - precache_pic("gfx/ons-cp-neutral.tga"); - precache_pic("gfx/ons-cp-red.tga"); - precache_pic("gfx/ons-cp-blue.tga"); - precache_pic("gfx/ons-frame.tga"); - precache_pic("gfx/ons-frame-team.tga"); - } - if not(isdemo()) { localcmd("\n_cl_hook_gamestart ", GametypeNameFromType(gametype), "\n"); @@ -1094,8 +1142,6 @@ void Ent_Init() serverflags = ReadByte(); - cr_maxbullets = ReadByte(); - minelayer_maxmines = ReadByte(); g_trueaim_minrange = ReadCoord(); @@ -1412,7 +1458,7 @@ string getcommandkey(string text, string command) string keys; float n, j, k, l; - if (!hud_showbinds) + if (!autocvar_hud_showbinds) return text; keys = db_get(binddb, command); @@ -1430,7 +1476,7 @@ string getcommandkey(string text, string command) keys = strcat(keys, ", ", keynumtostring(k)); ++l; - if (hud_showbinds_limit > 0 && hud_showbinds_limit >= l) break; + if (autocvar_hud_showbinds_limit > 0 && autocvar_hud_showbinds_limit >= l) break; } } @@ -1438,12 +1484,12 @@ string getcommandkey(string text, string command) } if ("" == keys) { - if (hud_showbinds > 1) + if (autocvar_hud_showbinds > 1) return sprintf(_("%s (not bound)"), text); else return text; } - else if (hud_showbinds > 1) + else if (autocvar_hud_showbinds > 1) return sprintf(_("%s (%s)"), text, keys); else return keys;