X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=sbar.c;h=7c8df4b9db64e4663394d1b97ba7b9529037327a;hb=3a237df932bf2f895e9a026f72cd155e70ae3c3d;hp=5028909f4fe8c5129f1748bff619585af3b28d3b;hpb=0766a43538f3b526cba347157d5259bb3e5785a9;p=xonotic%2Fdarkplaces.git diff --git a/sbar.c b/sbar.c index 5028909f..7c8df4b9 100644 --- a/sbar.c +++ b/sbar.c @@ -85,33 +85,34 @@ cachepic_t *sb_complete; cachepic_t *sb_inter; cachepic_t *sb_finale; -cvar_t showfps = {CVAR_SAVE, "showfps", "0", "shows your rendered fps (frames per second)"}; -cvar_t showsound = {CVAR_SAVE, "showsound", "0", "shows number of active sound sources, sound latency, and other statistics"}; -cvar_t showblur = {CVAR_SAVE, "showblur", "0", "shows the current alpha level of motionblur"}; -cvar_t showspeed = {CVAR_SAVE, "showspeed", "0", "shows your current speed (qu per second); number selects unit: 1 = qu/s, 2 = m/s, 3 = km/h, 4 = mph, 5 = knots"}; -cvar_t showtopspeed = {CVAR_SAVE, "showtopspeed", "0", "shows your top speed (kept on screen for max 3 seconds); value -1 takes over the unit from showspeed, otherwise it's an unit number just like in showspeed"}; -cvar_t showtime = {CVAR_SAVE, "showtime", "0", "shows current time of day (useful on screenshots)"}; -cvar_t showtime_format = {CVAR_SAVE, "showtime_format", "%H:%M:%S", "format string for time of day"}; -cvar_t showdate = {CVAR_SAVE, "showdate", "0", "shows current date (useful on screenshots)"}; -cvar_t showdate_format = {CVAR_SAVE, "showdate_format", "%Y-%m-%d", "format string for date"}; -cvar_t showtex = {0, "showtex", "0", "shows the name of the texture on the crosshair (for map debugging)"}; -cvar_t sbar_alpha_bg = {CVAR_SAVE, "sbar_alpha_bg", "0.4", "opacity value of the statusbar background image"}; -cvar_t sbar_alpha_fg = {CVAR_SAVE, "sbar_alpha_fg", "1", "opacity value of the statusbar weapon/item icons and numbers"}; -cvar_t sbar_hudselector = {CVAR_SAVE, "sbar_hudselector", "0", "selects which of the builtin hud layouts to use (meaning is somewhat dependent on gamemode, so nexuiz has a very different set of hud layouts than quake for example)"}; -cvar_t sbar_scorerank = {CVAR_SAVE, "sbar_scorerank", "1", "shows an overlay for your score (or team score) and rank in the scoreboard"}; -cvar_t sbar_gametime = {CVAR_SAVE, "sbar_gametime", "1", "shows an overlay for the time left in the current match/level (or current game time if there is no timelimit set)"}; -cvar_t sbar_miniscoreboard_size = {CVAR_SAVE, "sbar_miniscoreboard_size", "-1", "sets the size of the mini deathmatch overlay in items, or disables it when set to 0, or sets it to a sane default when set to -1"}; -cvar_t sbar_flagstatus_right = {CVAR_SAVE, "sbar_flagstatus_right", "0", "moves Nexuiz flag status icons to the right"}; -cvar_t sbar_flagstatus_pos = {CVAR_SAVE, "sbar_flagstatus_pos", "115", "pixel position of the Nexuiz flag status icons, from the bottom"}; -cvar_t sbar_info_pos = {CVAR_SAVE, "sbar_info_pos", "0", "pixel position of the info strings (such as showfps), from the bottom"}; - -cvar_t cl_deathscoreboard = {0, "cl_deathscoreboard", "1", "shows scoreboard (+showscores) while dead"}; - -cvar_t crosshair_color_red = {CVAR_SAVE, "crosshair_color_red", "1", "customizable crosshair color"}; -cvar_t crosshair_color_green = {CVAR_SAVE, "crosshair_color_green", "0", "customizable crosshair color"}; -cvar_t crosshair_color_blue = {CVAR_SAVE, "crosshair_color_blue", "0", "customizable crosshair color"}; -cvar_t crosshair_color_alpha = {CVAR_SAVE, "crosshair_color_alpha", "1", "how opaque the crosshair should be"}; -cvar_t crosshair_size = {CVAR_SAVE, "crosshair_size", "1", "adjusts size of the crosshair on the screen"}; +cvar_t cl_showfps = {CVAR_CLIENT | CVAR_SAVE, "cl_showfps", "0", "shows your rendered fps (frames per second)"}; +cvar_t cl_showsound = {CVAR_CLIENT | CVAR_SAVE, "cl_showsound", "0", "shows number of active sound sources, sound latency, and other statistics"}; +cvar_t cl_showblur = {CVAR_CLIENT | CVAR_SAVE, "cl_showblur", "0", "shows the current alpha level of motionblur"}; +cvar_t cl_showspeed = {CVAR_CLIENT | CVAR_SAVE, "cl_showspeed", "0", "shows your current speed (qu per second); number selects unit: 1 = qu/s, 2 = m/s, 3 = km/h, 4 = mph, 5 = knots"}; +cvar_t cl_showtopspeed = {CVAR_CLIENT | CVAR_SAVE, "cl_showtopspeed", "0", "shows your top speed (kept on screen for max 3 seconds); value -1 takes over the unit from cl_showspeed, otherwise it's an unit number just like in cl_showspeed"}; +cvar_t cl_showtime = {CVAR_CLIENT | CVAR_SAVE, "cl_showtime", "0", "shows current time of day (useful on screenshots)"}; +cvar_t cl_showtime_format = {CVAR_CLIENT | CVAR_SAVE, "cl_showtime_format", "%H:%M:%S", "format string for time of day"}; +cvar_t cl_showdate = {CVAR_CLIENT | CVAR_SAVE, "cl_showdate", "0", "shows current date (useful on screenshots)"}; +cvar_t cl_showdate_format = {CVAR_CLIENT | CVAR_SAVE, "cl_showdate_format", "%Y-%m-%d", "format string for date"}; +cvar_t cl_showtex = {CVAR_CLIENT, "cl_showtex", "0", "shows the name of the texture on the crosshair (for map debugging)"}; + +cvar_t sbar_alpha_bg = {CVAR_CLIENT | CVAR_SAVE, "sbar_alpha_bg", "0.4", "opacity value of the statusbar background image"}; +cvar_t sbar_alpha_fg = {CVAR_CLIENT | CVAR_SAVE, "sbar_alpha_fg", "1", "opacity value of the statusbar weapon/item icons and numbers"}; +cvar_t sbar_hudselector = {CVAR_CLIENT | CVAR_SAVE, "sbar_hudselector", "0", "selects which of the builtin hud layouts to use (meaning is somewhat dependent on gamemode, so nexuiz has a very different set of hud layouts than quake for example)"}; +cvar_t sbar_scorerank = {CVAR_CLIENT | CVAR_SAVE, "sbar_scorerank", "1", "shows an overlay for your score (or team score) and rank in the scoreboard"}; +cvar_t sbar_gametime = {CVAR_CLIENT | CVAR_SAVE, "sbar_gametime", "1", "shows an overlay for the time left in the current match/level (or current game time if there is no timelimit set)"}; +cvar_t sbar_miniscoreboard_size = {CVAR_CLIENT | CVAR_SAVE, "sbar_miniscoreboard_size", "-1", "sets the size of the mini deathmatch overlay in items, or disables it when set to 0, or sets it to a sane default when set to -1"}; +cvar_t sbar_flagstatus_right = {CVAR_CLIENT | CVAR_SAVE, "sbar_flagstatus_right", "0", "moves Nexuiz flag status icons to the right"}; +cvar_t sbar_flagstatus_pos = {CVAR_CLIENT | CVAR_SAVE, "sbar_flagstatus_pos", "115", "pixel position of the Nexuiz flag status icons, from the bottom"}; +cvar_t sbar_info_pos = {CVAR_CLIENT | CVAR_SAVE, "sbar_info_pos", "0", "pixel position of the info strings (such as showfps), from the bottom"}; + +cvar_t cl_deathscoreboard = {CVAR_CLIENT, "cl_deathscoreboard", "1", "shows scoreboard (+showscores) while dead"}; + +cvar_t crosshair_color_red = {CVAR_CLIENT | CVAR_SAVE, "crosshair_color_red", "1", "customizable crosshair color"}; +cvar_t crosshair_color_green = {CVAR_CLIENT | CVAR_SAVE, "crosshair_color_green", "0", "customizable crosshair color"}; +cvar_t crosshair_color_blue = {CVAR_CLIENT | CVAR_SAVE, "crosshair_color_blue", "0", "customizable crosshair color"}; +cvar_t crosshair_color_alpha = {CVAR_CLIENT | CVAR_SAVE, "crosshair_color_alpha", "1", "how opaque the crosshair should be"}; +cvar_t crosshair_size = {CVAR_CLIENT | CVAR_SAVE, "crosshair_size", "1", "adjusts size of the crosshair on the screen"}; static void Sbar_MiniDeathmatchOverlay (int x, int y); static void Sbar_DeathmatchOverlay (void); @@ -127,7 +128,7 @@ Sbar_ShowScores Tab key down =============== */ -static void Sbar_ShowScores (void) +static void Sbar_ShowScores_f(cmd_state_t *cmd) { if (sb_showscores) return; @@ -142,7 +143,7 @@ Sbar_DontShowScores Tab key up =============== */ -static void Sbar_DontShowScores (void) +static void Sbar_DontShowScores_f(cmd_state_t *cmd) { sb_showscores = false; CL_VM_UpdateShowingScoresState(sb_showscores); @@ -357,18 +358,33 @@ static void sbar_newmap(void) void Sbar_Init (void) { - Cmd_AddCommand("+showscores", Sbar_ShowScores, "show scoreboard"); - Cmd_AddCommand("-showscores", Sbar_DontShowScores, "hide scoreboard"); - Cvar_RegisterVariable(&showfps); - Cvar_RegisterVariable(&showsound); - Cvar_RegisterVariable(&showblur); - Cvar_RegisterVariable(&showspeed); - Cvar_RegisterVariable(&showtopspeed); - Cvar_RegisterVariable(&showtime); - Cvar_RegisterVariable(&showtime_format); - Cvar_RegisterVariable(&showdate); - Cvar_RegisterVariable(&showdate_format); - Cvar_RegisterVariable(&showtex); + if(gamemode == GAME_NORMAL) // Workaround so Quake doesn't trample on Xonotic. + { + Cmd_AddCommand(CMD_CLIENT, "+showscores", Sbar_ShowScores_f, "show scoreboard"); + Cmd_AddCommand(CMD_CLIENT, "-showscores", Sbar_DontShowScores_f, "hide scoreboard"); + } + Cvar_RegisterVariable(&cl_showfps); + Cvar_RegisterVariable(&cl_showsound); + Cvar_RegisterVariable(&cl_showblur); + Cvar_RegisterVariable(&cl_showspeed); + Cvar_RegisterVariable(&cl_showtopspeed); + Cvar_RegisterVariable(&cl_showtime); + Cvar_RegisterVariable(&cl_showtime_format); + Cvar_RegisterVariable(&cl_showdate); + Cvar_RegisterVariable(&cl_showdate_format); + Cvar_RegisterVariable(&cl_showtex); + + Cvar_RegisterAlias(&cl_showfps, "showfps"); + Cvar_RegisterAlias(&cl_showsound, "showsound"); + Cvar_RegisterAlias(&cl_showblur, "showblur"); + Cvar_RegisterAlias(&cl_showspeed, "showspeed"); + Cvar_RegisterAlias(&cl_showtopspeed, "showtopspeed"); + Cvar_RegisterAlias(&cl_showtime, "showtime"); + Cvar_RegisterAlias(&cl_showtime_format, "showtime_format"); + Cvar_RegisterAlias(&cl_showdate, "showdate"); + Cvar_RegisterAlias(&cl_showdate_format, "showdate_format"); + Cvar_RegisterAlias(&cl_showtex, "showtex"); + Cvar_RegisterVariable(&sbar_alpha_bg); Cvar_RegisterVariable(&sbar_alpha_fg); Cvar_RegisterVariable(&sbar_hudselector); @@ -727,7 +743,7 @@ Sbar_DrawScoreboard static void Sbar_DrawScoreboard (void) { Sbar_SoloScoreboard (); - // LordHavoc: changed to draw the deathmatch overlays in any multiplayer mode + // LadyHavoc: changed to draw the deathmatch overlays in any multiplayer mode //if (cl.gametype == GAME_DEATHMATCH) if (!cl.islocalgame) Sbar_DeathmatchOverlay (); @@ -1032,7 +1048,7 @@ time_t topxy_time = 0; static void get_showspeed_unit(int unitnumber, double *conversion_factor, const char **unit) { if(unitnumber < 0) - unitnumber = showspeed.integer; + unitnumber = cl_showspeed.integer; switch(unitnumber) { default: @@ -1079,7 +1095,7 @@ void Sbar_ShowFPS_Update(void) { double interval = 1; double newtime; - newtime = realtime; + newtime = host.realtime; if (newtime >= showfps_nexttime) { showfps_framerate = showfps_framecount / (newtime - showfps_lasttime); @@ -1118,10 +1134,10 @@ void Sbar_ShowFPS(void) topspeedstring[0] = 0; texstring[0] = 0; entstring[0] = 0; - if (showfps.integer) + if (cl_showfps.integer) { red = (showfps_framerate < 1.0f); - if(showfps.integer == 2) + if(cl_showfps.integer == 2) dpsnprintf(fpsstring, sizeof(fpsstring), "%7.3f mspf", (1000.0 / showfps_framerate)); else if (red) dpsnprintf(fpsstring, sizeof(fpsstring), "%4i spf", (int)(1.0 / showfps_framerate + 0.5)); @@ -1130,48 +1146,48 @@ void Sbar_ShowFPS(void) fps_strings++; if (cls.timedemo) { - dpsnprintf(timedemostring1, sizeof(timedemostring1), "frame%4i %f", cls.td_frames, realtime - cls.td_starttime); + dpsnprintf(timedemostring1, sizeof(timedemostring1), "frame%4i %f", cls.td_frames, host.realtime - cls.td_starttime); dpsnprintf(timedemostring2, sizeof(timedemostring2), "%i seconds %3.0f/%3.0f/%3.0f fps", cls.td_onesecondavgcount, cls.td_onesecondminfps, cls.td_onesecondavgfps / max(1, cls.td_onesecondavgcount), cls.td_onesecondmaxfps); fps_strings++; fps_strings++; } } - if (showtime.integer) + if (cl_showtime.integer) { - strlcpy(timestring, Sys_TimeString(showtime_format.string), sizeof(timestring)); + strlcpy(timestring, Sys_TimeString(cl_showtime_format.string), sizeof(timestring)); fps_strings++; } - if (showdate.integer) + if (cl_showdate.integer) { - strlcpy(datestring, Sys_TimeString(showdate_format.string), sizeof(datestring)); + strlcpy(datestring, Sys_TimeString(cl_showdate_format.string), sizeof(datestring)); fps_strings++; } - if (showblur.integer) + if (cl_showblur.integer) { dpsnprintf(blurstring, sizeof(blurstring), "%3i%% blur", (int)(cl.motionbluralpha * 100)); fps_strings++; } - if (showsound.integer) + if (cl_showsound.integer) { dpsnprintf(soundstring, sizeof(soundstring), "%4i/4%i at %3ims", cls.soundstats.mixedsounds, cls.soundstats.totalsounds, cls.soundstats.latency_milliseconds); fps_strings++; } - if (showspeed.integer || showtopspeed.integer) + if (cl_showspeed.integer || cl_showtopspeed.integer) { double speed, speedxy, f; const char *unit; speed = VectorLength(cl.movement_velocity); speedxy = sqrt(cl.movement_velocity[0] * cl.movement_velocity[0] + cl.movement_velocity[1] * cl.movement_velocity[1]); - if (showspeed.integer) + if (cl_showspeed.integer) { - get_showspeed_unit(showspeed.integer, &f, &unit); + get_showspeed_unit(cl_showspeed.integer, &f, &unit); dpsnprintf(speedstring, sizeof(speedstring), "%.0f (%.0f) %s", f*speed, f*speedxy, unit); fps_strings++; } - if (showtopspeed.integer) + if (cl_showtopspeed.integer) { qboolean topspeed_latched = false, topspeedxy_latched = false; - get_showspeed_unit(showtopspeed.integer, &f, &unit); + get_showspeed_unit(cl_showtopspeed.integer, &f, &unit); if (speed >= topspeed || current_time - top_time > 3) { topspeed = speed; @@ -1194,7 +1210,7 @@ void Sbar_ShowFPS(void) fps_strings++; } } - if (showtex.integer) + if (cl_showtex.integer) { vec3_t org; vec3_t dest; @@ -1657,7 +1673,7 @@ void Sbar_Draw (void) { sbar_x = (vid_conwidth.integer - 320)/2; sbar_y = vid_conheight.integer - SBAR_HEIGHT; - // LordHavoc: changed to draw the deathmatch overlays in any multiplayer mode + // LadyHavoc: changed to draw the deathmatch overlays in any multiplayer mode //if (cl.gametype == GAME_DEATHMATCH && gamemode != GAME_TRANSFUSION) if (sb_lines > 24) @@ -1758,7 +1774,7 @@ void Sbar_Draw (void) Sbar_DrawNum (248, 0, cl.stats[STAT_AMMO], 3, cl.stats[STAT_AMMO] <= 10); - // LordHavoc: changed to draw the deathmatch overlays in any multiplayer mode + // LadyHavoc: changed to draw the deathmatch overlays in any multiplayer mode if ((!cl.islocalgame || cl.gametype != GAME_COOP)) { if (gamemode == GAME_TRANSFUSION) @@ -1865,9 +1881,9 @@ void Sbar_DeathmatchOverlay (void) char vabuf[1024]; // request new ping times every two second - if (cl.last_ping_request < realtime - 2 && cls.netcon) + if (cl.last_ping_request < host.realtime - 2 && cls.netcon) { - cl.last_ping_request = realtime; + cl.last_ping_request = host.realtime; if (cls.protocol == PROTOCOL_QUAKEWORLD) { MSG_WriteByte(&cls.netcon->message, qw_clc_stringcmd);