]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - sbar.c
replace strcpy use with strlcpy in some commented out code in menu
[xonotic/darkplaces.git] / sbar.c
diff --git a/sbar.c b/sbar.c
index b216169565f2dce1505ef7122f949c815cbdacc2..e0c7ec870faa04e36ab2df6b0f612788c7f6c4c7 100644 (file)
--- a/sbar.c
+++ b/sbar.c
@@ -110,6 +110,8 @@ void Sbar_DeathmatchOverlay (void);
 void Sbar_IntermissionOverlay (void);
 void Sbar_FinaleOverlay (void);
 
+void CL_VM_UpdateShowingScoresState (int showingscores);
+
 
 /*
 ===============
@@ -123,6 +125,7 @@ void Sbar_ShowScores (void)
        if (sb_showscores)
                return;
        sb_showscores = true;
+       CL_VM_UpdateShowingScoresState(sb_showscores);
 }
 
 /*
@@ -135,6 +138,7 @@ Tab key up
 void Sbar_DontShowScores (void)
 {
        sb_showscores = false;
+       CL_VM_UpdateShowingScoresState(sb_showscores);
 }
 
 void sbar_start(void)
@@ -863,13 +867,15 @@ void Sbar_DrawInventory (void)
        // ammo counts
        for (i=0 ; i<4 ; i++)
        {
-               sprintf (num, "%3i",cl.stats[STAT_SHELLS+i] );
+               sprintf (num, "%4i",cl.stats[STAT_SHELLS+i] );
                if (num[0] != ' ')
-                       Sbar_DrawCharacter ( (6*i+1)*8 - 2, -24, 18 + num[0] - '0');
+                       Sbar_DrawCharacter ( (6*i+0)*8 - 2, -24, 18 + num[0] - '0');
                if (num[1] != ' ')
-                       Sbar_DrawCharacter ( (6*i+2)*8 - 2, -24, 18 + num[1] - '0');
+                       Sbar_DrawCharacter ( (6*i+1)*8 - 2, -24, 18 + num[1] - '0');
                if (num[2] != ' ')
-                       Sbar_DrawCharacter ( (6*i+3)*8 - 2, -24, 18 + num[2] - '0');
+                       Sbar_DrawCharacter ( (6*i+2)*8 - 2, -24, 18 + num[2] - '0');
+               if (num[3] != ' ')
+                       Sbar_DrawCharacter ( (6*i+3)*8 - 2, -24, 18 + num[3] - '0');
        }
 
        // items
@@ -933,9 +939,9 @@ void Sbar_DrawFrags (void)
                s = &cl.scores[k];
 
                // draw background
-               c = (unsigned char *)&palette_complete[(s->colors & 0xf0) + 8];
+               c = (unsigned char *)&palette_pantsscoreboard[(s->colors & 0xf0) >> 4];
                DrawQ_Fill (sbar_x + x + 10, sbar_y     - 23, 28, 4, c[0] * (1.0f / 255.0f), c[1] * (1.0f / 255.0f), c[2] * (1.0f / 255.0f), c[3] * (1.0f / 255.0f) * sbar_alpha_fg.value, 0);
-               c = (unsigned char *)&palette_complete[((s->colors & 15)<<4) + 8];
+               c = (unsigned char *)&palette_shirtscoreboard[s->colors & 0xf];
                DrawQ_Fill (sbar_x + x + 10, sbar_y + 4 - 23, 28, 3, c[0] * (1.0f / 255.0f), c[1] * (1.0f / 255.0f), c[2] * (1.0f / 255.0f), c[3] * (1.0f / 255.0f) * sbar_alpha_fg.value, 0);
 
                // draw number
@@ -977,9 +983,9 @@ void Sbar_DrawFace (void)
                s = &cl.scores[cl.viewentity - 1];
                // draw background
                Sbar_DrawPic (112, 0, rsb_teambord);
-               c = (unsigned char *)&palette_complete[(s->colors & 0xf0) + 8];
+               c = (unsigned char *)&palette_pantsscoreboard[(s->colors & 0xf0) >> 4];
                DrawQ_Fill (sbar_x + 113, vid_conheight.integer-SBAR_HEIGHT+3, 22, 9, c[0] * (1.0f / 255.0f), c[1] * (1.0f / 255.0f), c[2] * (1.0f / 255.0f), c[3] * (1.0f / 255.0f) * sbar_alpha_fg.value, 0);
-               c = (unsigned char *)&palette_complete[((s->colors & 15)<<4) + 8];
+               c = (unsigned char *)&palette_shirtscoreboard[s->colors & 0xf];
                DrawQ_Fill (sbar_x + 113, vid_conheight.integer-SBAR_HEIGHT+12, 22, 9, c[0] * (1.0f / 255.0f), c[1] * (1.0f / 255.0f), c[2] * (1.0f / 255.0f), c[3] * (1.0f / 255.0f) * sbar_alpha_fg.value, 0);
 
                // draw number
@@ -1542,16 +1548,15 @@ 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
-                       if ((!cl.islocalgame || cl.gametype != GAME_COOP))
-                       {
-                               if (gamemode == GAME_TRANSFUSION)
-                                       Sbar_MiniDeathmatchOverlay (0, 0);
-                               else
-                                       Sbar_MiniDeathmatchOverlay (sbar_x + 324, vid_conheight.integer - 8*8);
-                               Sbar_Score(24);
+                               // LordHavoc: changed to draw the deathmatch overlays in any multiplayer mode
+                               if ((!cl.islocalgame || cl.gametype != GAME_COOP))
+                               {
+                                       if (gamemode == GAME_TRANSFUSION)
+                                               Sbar_MiniDeathmatchOverlay (0, 0);
+                                       else
+                                               Sbar_MiniDeathmatchOverlay (sbar_x + 324, vid_conheight.integer - 8*8);
+                                       Sbar_Score(24);
+                               }
                        }
                }
        }
@@ -1598,9 +1603,14 @@ float Sbar_PrintScoreboardItem(scoreboard_t *s, float x, float y)
                else
                {
                        // draw colors behind score
-                       c = (unsigned char *)&palette_complete[(s->colors & 0xf0) + 8];
+                       //
+                       //
+                       //
+                       //
+                       //
+                       c = (unsigned char *)&palette_pantsscoreboard[(s->colors & 0xf0) >> 4];
                        DrawQ_Fill(x + 14*8, y+1, 40, 3, c[0] * (1.0f / 255.0f), c[1] * (1.0f / 255.0f), c[2] * (1.0f / 255.0f), c[3] * (1.0f / 255.0f) * sbar_alpha_fg.value, 0);
-                       c = (unsigned char *)&palette_complete[((s->colors & 15)<<4) + 8];
+                       c = (unsigned char *)&palette_shirtscoreboard[s->colors & 0xf];
                        DrawQ_Fill(x + 14*8, y+4, 40, 3, c[0] * (1.0f / 255.0f), c[1] * (1.0f / 255.0f), c[2] * (1.0f / 255.0f), c[3] * (1.0f / 255.0f) * sbar_alpha_fg.value, 0);
                        // print the text
                        //DrawQ_String(x, y, va("%c%4i %s", myself ? 13 : ' ', (int) s->frags, s->name), 0, 8, 8, 1, 1, 1, 1 * sbar_alpha_fg.value, 0, NULL, true);
@@ -1622,9 +1632,9 @@ float Sbar_PrintScoreboardItem(scoreboard_t *s, float x, float y)
                else
                {
                        // draw colors behind score
-                       c = (unsigned char *)&palette_complete[(s->colors & 0xf0) + 8];
+                       c = (unsigned char *)&palette_pantsscoreboard[(s->colors & 0xf0) >> 4];
                        DrawQ_Fill(x + 9*8, y+1, 40, 3, c[0] * (1.0f / 255.0f), c[1] * (1.0f / 255.0f), c[2] * (1.0f / 255.0f), c[3] * (1.0f / 255.0f) * sbar_alpha_fg.value, 0);
-                       c = (unsigned char *)&palette_complete[((s->colors & 15)<<4) + 8];
+                       c = (unsigned char *)&palette_shirtscoreboard[s->colors & 0xf];
                        DrawQ_Fill(x + 9*8, y+4, 40, 3, c[0] * (1.0f / 255.0f), c[1] * (1.0f / 255.0f), c[2] * (1.0f / 255.0f), c[3] * (1.0f / 255.0f) * sbar_alpha_fg.value, 0);
                        // print the text
                        //DrawQ_String(x, y, va("%c%4i %s", myself ? 13 : ' ', (int) s->frags, s->name), 0, 8, 8, 1, 1, 1, 1 * sbar_alpha_fg.value, 0, NULL, true);
@@ -1855,7 +1865,7 @@ void Sbar_Score (int margin)
                        for(i = 0; i < teamlines; ++i)
                        {
                                int cindex = teamcolorsort[i]->colors & 15;
-                               unsigned char *c = (unsigned char *)&palette_complete[(cindex << 4) + 8];
+                               unsigned char *c = (unsigned char *)&palette_shirtscoreboard[cindex];
                                float cm = max(max(c[0], c[1]), c[2]);
                                float cr = c[0] / cm;
                                float cg = c[1] / cm;
@@ -1968,9 +1978,7 @@ void Sbar_IntermissionOverlay (void)
        int             dig;
        int             num;
 
-       // LordHavoc: changed to draw the deathmatch overlays in any multiplayer mode
-       //if (cl.gametype == GAME_DEATHMATCH)
-       if (!cl.islocalgame)
+       if (cl.gametype == GAME_DEATHMATCH)
        {
                Sbar_DeathmatchOverlay ();
                return;