X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=sbar.c;h=95f516a3574093c7712e911afce56983dbb27baa;hb=f7750d34bc095248efb2aec0cefb2e3db367ab3b;hp=fd242066fc8e6759f2418307f301a834f018bbf4;hpb=db7d2f7ea9647a7b119054141755aedf752e8719;p=xonotic%2Fdarkplaces.git diff --git a/sbar.c b/sbar.c index fd242066..95f516a3 100644 --- a/sbar.c +++ b/sbar.c @@ -20,7 +20,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // sbar.c -- status bar code #include "quakedef.h" -#include "time.h" +#include #include "cl_collision.h" #include "csprogs.h" @@ -70,11 +70,6 @@ int hipweapons[4] = {HIT_LASER_CANNON_BIT,HIT_MJOLNIR_BIT,4,HIT_PROXIMITY_GUN_BI //MED 01/04/97 added hipnotic items array cachepic_t *hsb_items[2]; -//GAME_SOM stuff: -cachepic_t *somsb_health; -cachepic_t *somsb_ammo[4]; -cachepic_t *somsb_armor[3]; - cachepic_t *zymsb_crosshair_center; cachepic_t *zymsb_crosshair_line; cachepic_t *zymsb_crosshair_health; @@ -161,23 +156,7 @@ static void sbar_start(void) if (gamemode == GAME_DELUXEQUAKE || gamemode == GAME_BLOODOMNICIDE) { } - else if (gamemode == GAME_SOM) - { - sb_disc = Draw_CachePic_Flags ("gfx/disc", CACHEPICFLAG_QUIET); - - for (i = 0;i < 10;i++) - sb_nums[0][i] = Draw_CachePic_Flags (va(vabuf, sizeof(vabuf), "gfx/num_%i",i), CACHEPICFLAG_QUIET); - - somsb_health = Draw_CachePic_Flags ("gfx/hud_health", CACHEPICFLAG_QUIET); - somsb_ammo[0] = Draw_CachePic_Flags ("gfx/sb_shells", CACHEPICFLAG_QUIET); - somsb_ammo[1] = Draw_CachePic_Flags ("gfx/sb_nails", CACHEPICFLAG_QUIET); - somsb_ammo[2] = Draw_CachePic_Flags ("gfx/sb_rocket", CACHEPICFLAG_QUIET); - somsb_ammo[3] = Draw_CachePic_Flags ("gfx/sb_cells", CACHEPICFLAG_QUIET); - somsb_armor[0] = Draw_CachePic_Flags ("gfx/sb_armor1", CACHEPICFLAG_QUIET); - somsb_armor[1] = Draw_CachePic_Flags ("gfx/sb_armor2", CACHEPICFLAG_QUIET); - somsb_armor[2] = Draw_CachePic_Flags ("gfx/sb_armor3", CACHEPICFLAG_QUIET); - } - else if (gamemode == GAME_NEXUIZ) + else if (IS_OLDNEXUIZ_DERIVED(gamemode)) { for (i = 0;i < 10;i++) sb_nums[0][i] = Draw_CachePic_Flags (va(vabuf, sizeof(vabuf), "gfx/num_%i",i), CACHEPICFLAG_QUIET); @@ -312,7 +291,7 @@ static void sbar_start(void) sb_scorebar = Draw_CachePic_Flags ("gfx/scorebar", CACHEPICFLAG_QUIET); //MED 01/04/97 added new hipnotic weapons - if (gamemode == GAME_HIPNOTIC) + if (gamemode == GAME_HIPNOTIC || gamemode == GAME_QUOTH) { hsb_weapons[0][0] = Draw_CachePic_Flags ("gfx/inv_laser", CACHEPICFLAG_QUIET); hsb_weapons[0][1] = Draw_CachePic_Flags ("gfx/inv_mjolnir", CACHEPICFLAG_QUIET); @@ -536,7 +515,7 @@ static void Sbar_DrawXNum (int x, int y, int num, int digits, int lettersize, fl static int Sbar_IsTeammatch(void) { // currently only nexuiz uses the team score board - return ((gamemode == GAME_NEXUIZ) + return (IS_OLDNEXUIZ_DERIVED(gamemode) && (teamplay.integer > 0)); } @@ -713,7 +692,7 @@ static void Sbar_SoloScoreboard (void) int minutes, seconds, tens, units; int l; - if (gamemode != GAME_NEXUIZ) { + if (IS_OLDNEXUIZ_DERIVED(gamemode)) { dpsnprintf (str, sizeof(str), "Monsters:%3i /%3i", cl.stats[STAT_MONSTERS], cl.stats[STAT_TOTALMONSTERS]); Sbar_DrawString (8, 4, str); @@ -730,7 +709,7 @@ static void Sbar_SoloScoreboard (void) Sbar_DrawString (184, 4, str); // draw level name - if (gamemode == GAME_NEXUIZ) { + if (IS_OLDNEXUIZ_DERIVED(gamemode)) { l = (int) strlen (cl.worldname); Sbar_DrawString (232 - l*4, 12, cl.worldname); } else { @@ -825,7 +804,7 @@ static void Sbar_DrawInventory (void) // MED 01/04/97 // hipnotic weapons - if (gamemode == GAME_HIPNOTIC) + if (gamemode == GAME_HIPNOTIC || gamemode == GAME_QUOTH) { int grenadeflashing=0; for (i=0 ; i<4 ; i++) @@ -900,13 +879,13 @@ static void Sbar_DrawInventory (void) if (cl.stats[STAT_ITEMS] & (1<<(17+i))) { //MED 01/04/97 changed keys - if (gamemode != GAME_HIPNOTIC || (i>1)) + if (!(gamemode == GAME_HIPNOTIC || gamemode == GAME_QUOTH) || (i>1)) Sbar_DrawPic (192 + i*16, -16, sb_items[i]); } //MED 01/04/97 added hipnotic items // hipnotic items - if (gamemode == GAME_HIPNOTIC) + if (gamemode == GAME_HIPNOTIC || gamemode == GAME_QUOTH) { for (i=0 ; i<2 ; i++) if (cl.stats[STAT_ITEMS] & (1<<(24+i))) @@ -1058,7 +1037,7 @@ static void get_showspeed_unit(int unitnumber, double *conversion_factor, const { default: case 1: - if(gamemode == GAME_NEXUIZ || gamemode == GAME_XONOTIC) + if(IS_NEXUIZ_DERIVED(gamemode)) *unit = "in/s"; else *unit = "qu/s"; @@ -1067,23 +1046,27 @@ static void get_showspeed_unit(int unitnumber, double *conversion_factor, const case 2: *unit = "m/s"; *conversion_factor = 0.0254; - if(gamemode != GAME_NEXUIZ && gamemode != GAME_XONOTIC) *conversion_factor *= 1.5; + if(!IS_NEXUIZ_DERIVED(gamemode)) + *conversion_factor *= 1.5; // 1qu=1.5in is for non-Nexuiz/Xonotic only - Nexuiz/Xonotic players are overly large, but 1qu=1in fixes that break; case 3: *unit = "km/h"; *conversion_factor = 0.0254 * 3.6; - if(gamemode != GAME_NEXUIZ && gamemode != GAME_XONOTIC) *conversion_factor *= 1.5; + if(!IS_NEXUIZ_DERIVED(gamemode)) + *conversion_factor *= 1.5; break; case 4: *unit = "mph"; *conversion_factor = 0.0254 * 3.6 * 0.6213711922; - if(gamemode != GAME_NEXUIZ && gamemode != GAME_XONOTIC) *conversion_factor *= 1.5; + if(!IS_NEXUIZ_DERIVED(gamemode)) + *conversion_factor *= 1.5; break; case 5: *unit = "knots"; *conversion_factor = 0.0254 * 1.943844492; // 1 m/s = 1.943844492 knots, because 1 knot = 1.852 km/h - if(gamemode != GAME_NEXUIZ && gamemode != GAME_XONOTIC) *conversion_factor *= 1.5; + if(!IS_NEXUIZ_DERIVED(gamemode)) + *conversion_factor *= 1.5; break; } } @@ -1222,7 +1205,7 @@ void Sbar_ShowFPS(void) trace.hittexture = NULL; // to make sure // TODO change this trace to be stopped by anything "visible" (i.e. with a drawsurface), but not stuff like weapclip // probably needs adding a new SUPERCONTENTS type - trace = CL_TraceLine(org, dest, MOVE_NORMAL, NULL, SUPERCONTENTS_SOLID, true, false, NULL, true, true); + trace = CL_TraceLine(org, dest, MOVE_NORMAL, NULL, SUPERCONTENTS_SOLID, 0, MATERIALFLAGMASK_TRANSLUCENT, collision_extendmovelength.value, true, false, NULL, true, true); if(trace.hittexture) strlcpy(texstring, trace.hittexture->name, sizeof(texstring)); else @@ -1353,7 +1336,7 @@ void Sbar_Draw (void) Sbar_DrawScoreboard (); else if (cl.intermission == 1) { - if(gamemode == GAME_NEXUIZ) // display full scoreboard (that is, show scores + map name) + if(IS_OLDNEXUIZ_DERIVED(gamemode)) // display full scoreboard (that is, show scores + map name) { Sbar_DrawScoreboard(); return; @@ -1365,47 +1348,7 @@ void Sbar_Draw (void) else if (gamemode == GAME_DELUXEQUAKE) { } - else if (gamemode == GAME_SOM) - { - if (sb_showscores || (cl.stats[STAT_HEALTH] <= 0 && cl_deathscoreboard.integer)) - Sbar_DrawScoreboard (); - else if (sb_lines) - { - // this is the top left of the sbar area - sbar_x = 0; - sbar_y = vid_conheight.integer - 24*3; - - // armor - if (cl.stats[STAT_ARMOR]) - { - if (cl.stats[STAT_ITEMS] & IT_ARMOR3) - Sbar_DrawPic(0, 0, somsb_armor[2]); - else if (cl.stats[STAT_ITEMS] & IT_ARMOR2) - Sbar_DrawPic(0, 0, somsb_armor[1]); - else if (cl.stats[STAT_ITEMS] & IT_ARMOR1) - Sbar_DrawPic(0, 0, somsb_armor[0]); - Sbar_DrawNum(24, 0, cl.stats[STAT_ARMOR], 3, cl.stats[STAT_ARMOR] <= 25); - } - - // health - Sbar_DrawPic(0, 24, somsb_health); - Sbar_DrawNum(24, 24, cl.stats[STAT_HEALTH], 3, cl.stats[STAT_HEALTH] <= 25); - - // ammo icon - if (cl.stats[STAT_ITEMS] & IT_SHELLS) - Sbar_DrawPic(0, 48, somsb_ammo[0]); - else if (cl.stats[STAT_ITEMS] & IT_NAILS) - Sbar_DrawPic(0, 48, somsb_ammo[1]); - else if (cl.stats[STAT_ITEMS] & IT_ROCKETS) - Sbar_DrawPic(0, 48, somsb_ammo[2]); - else if (cl.stats[STAT_ITEMS] & IT_CELLS) - Sbar_DrawPic(0, 48, somsb_ammo[3]); - Sbar_DrawNum(24, 48, cl.stats[STAT_AMMO], 3, false); - if (cl.stats[STAT_SHELLS]) - Sbar_DrawNum(24 + 3*24, 48, cl.stats[STAT_SHELLS], 1, true); - } - } - else if (gamemode == GAME_NEXUIZ) + else if (IS_OLDNEXUIZ_DERIVED(gamemode)) { if (sb_showscores || (cl.stats[STAT_HEALTH] <= 0 && cl_deathscoreboard.integer)) { @@ -1697,7 +1640,7 @@ void Sbar_Draw (void) // keys (hipnotic only) //MED 01/04/97 moved keys here so they would not be overwritten - if (gamemode == GAME_HIPNOTIC) + if (gamemode == GAME_HIPNOTIC || gamemode == GAME_QUOTH) { if (cl.stats[STAT_ITEMS] & IT_KEY1) Sbar_DrawPic (209, 3, sb_items[0]); @@ -1928,7 +1871,7 @@ void Sbar_DeathmatchOverlay (void) xmin = (int) (vid_conwidth.integer - (16 + 25) * 8 * FONT_SBAR->maxwidth) / 2; // 16 characters until name, then we assume 25 character names (they can be longer but usually aren't) xmax = vid_conwidth.integer - xmin; - if(gamemode == GAME_NEXUIZ) + if(IS_OLDNEXUIZ_DERIVED(gamemode)) DrawQ_Pic (xmin - 8, ymin - 8, 0, xmax-xmin+1 + 2*8, ymax-ymin+1 + 2*8, 0, 0, 0, sbar_alpha_bg.value, 0); DrawQ_Pic ((vid_conwidth.integer - sb_ranking->width)/2, 8, sb_ranking, 0, 0, 1, 1, 1, 1 * sbar_alpha_fg.value, 0); @@ -2244,7 +2187,7 @@ void Sbar_IntermissionOverlay (void) if(cl.stats[STAT_TOTALSECRETS]) { Sbar_DrawNum (160, 104, cl.stats[STAT_SECRETS], 3, 0); - if (gamemode != GAME_NEXUIZ) + if (!IS_OLDNEXUIZ_DERIVED(gamemode)) Sbar_DrawPic (232, 104, sb_slash); Sbar_DrawNum (240, 104, cl.stats[STAT_TOTALSECRETS], 3, 0); } @@ -2256,7 +2199,7 @@ void Sbar_IntermissionOverlay (void) if(cl.stats[STAT_TOTALMONSTERS]) { Sbar_DrawNum (160, 144, cl.stats[STAT_MONSTERS], 3, 0); - if (gamemode != GAME_NEXUIZ) + if (!IS_OLDNEXUIZ_DERIVED(gamemode)) Sbar_DrawPic (232, 144, sb_slash); Sbar_DrawNum (240, 144, cl.stats[STAT_TOTALMONSTERS], 3, 0); }