]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - console.c
changed color control menu correction value to 0.5 (medium grey on linear color monitors)
[xonotic/darkplaces.git] / console.c
index 80e144622213c4689495f79d3b20e6da920baf90..ea1a7e2f5d9086fbbdde01043e2103a9f59cb88f 100644 (file)
--- a/console.c
+++ b/console.c
@@ -582,23 +582,13 @@ void Con_Print(const char *msg)
                        line[index++] = STRING_COLOR_DEFAULT + '0';
                        // special color codes for chat messages must always come first
                        // for Con_PrintToHistory to work properly
-                       if (*msg <= 2)
+                       if (*msg == 1 || *msg == 2)
                        {
+                               // play talk wav
                                if (*msg == 1)
-                               {
-                                       // play talk wav
                                        S_LocalSound ("sound/misc/talk.wav");
-                               }
-                               //if (gamemode == GAME_NEXUIZ)
-                               //{
-                                       line[index++] = STRING_COLOR_TAG;
-                                       line[index++] = '3';
-                               //}
-                               //else
-                               //{
-                               //      // go to colored text
-                               //      mask = 128;
-                               //}
+                               line[index++] = STRING_COLOR_TAG;
+                               line[index++] = '3';
                                msg++;
                        }
                        // store timestamp
@@ -784,10 +774,25 @@ void Con_DrawNotify (void)
                text = con_text + (i % con_totallines)*con_linewidth;
 
                if (gamemode == GAME_NEXUIZ) {
-                       int linewidth;
+                       int chars = 0;
+                       int finalchars = 0;
+                       int j;
 
-                       for (linewidth = con_linewidth; linewidth && text[linewidth-1] == ' '; linewidth--);
-                       x = (vid_conwidth.integer - linewidth * con_textsize.value) * 0.5;
+                       // count up to the last non-whitespace, and ignore color codes
+                       for (j = 0;j < con_linewidth && text[j];j++)
+                       {
+                               if (text[j] == '^' && (text[j+1] >= '0' && text[j+1] <= '9'))
+                               {
+                                       j++;
+                                       continue;
+                               }
+                               chars++;
+                               if (text[j] == ' ')
+                                       continue;
+                               finalchars = chars;
+                       }
+                       // center the line using the calculated width
+                       x = (vid_conwidth.integer - finalchars * con_textsize.value) * 0.5;
                } else
                        x = 0;