From: terencehill Date: Mon, 4 Jan 2021 21:42:55 +0000 (+0100) Subject: Clean up code parsing color codes in inputbox.qc X-Git-Tag: xonotic-v0.8.5~608^2~4 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=12d9a469fcd08a17a511bd201a217dc420047cfe;p=xonotic%2Fxonotic-data.pk3dir.git Clean up code parsing color codes in inputbox.qc --- diff --git a/qcsrc/menu/item/inputbox.qc b/qcsrc/menu/item/inputbox.qc index d19125a21..10f884810 100644 --- a/qcsrc/menu/item/inputbox.qc +++ b/qcsrc/menu/item/inputbox.qc @@ -210,75 +210,47 @@ draw_SetClipRect(eX * me.keepspaceLeft, eX * (1 - me.keepspaceLeft - me.keepspaceRight) + eY); if (me.editColorCodes) { - string ch, ch2; - float i, n; - vector theColor; - float theAlpha; // float theVariableAlpha; - vector p; - vector theTempColor; - float component; + vector p = me.realOrigin - eX * me.scrollPos; + vector theColor = '1 1 1'; + float theAlpha = 1; - p = me.realOrigin - eX * me.scrollPos; - theColor = '1 1 1'; - theAlpha = 1; // theVariableAlpha = 1; // changes when ^ax found - - n = strlen(me.text); - for (i = 0; i < n; ++i) + for (int i = 0, n = strlen(me.text); i < n; ++i) { - ch = substring(me.text, i, 1); + string ch = substring(me.text, i, 1); if (ch == "^") { float w; - ch2 = substring(me.text, i + 1, 1); + string ch2 = substring(me.text, i + 1, 1); w = draw_TextWidth(strcat(ch, ch2), 0, me.realFontSize); if (ch2 == "^") { draw_Fill(p, eX * w + eY * me.realFontSize.y, '1 1 1', 0.5); draw_Text(p + eX * 0.25 * w, "^", me.realFontSize, theColor, theAlpha, 0); } - else if (ch2 == "0" || stof(ch2)) // digit? + else if (IS_DIGIT(ch2)) { + theAlpha = 1; switch (stof(ch2)) { - case 0: theColor = '0 0 0'; - theAlpha = 1; - break; - case 1: theColor = '1 0 0'; - theAlpha = 1; - break; - case 2: theColor = '0 1 0'; - theAlpha = 1; - break; - case 3: theColor = '1 1 0'; - theAlpha = 1; - break; - case 4: theColor = '0 0 1'; - theAlpha = 1; - break; - case 5: theColor = '0 1 1'; - theAlpha = 1; - break; - case 6: theColor = '1 0 1'; - theAlpha = 1; - break; - case 7: theColor = '1 1 1'; - theAlpha = 1; - break; - case 8: theColor = '1 1 1'; - theAlpha = 0.5; - break; - case 9: theColor = '0.5 0.5 0.5'; - theAlpha = 1; - break; + case 0: theColor = '0 0 0'; break; + case 1: theColor = '1 0 0'; break; + case 2: theColor = '0 1 0'; break; + case 3: theColor = '1 1 0'; break; + case 4: theColor = '0 0 1'; break; + case 5: theColor = '0 1 1'; break; + case 6: theColor = '1 0 1'; break; + case 7: theColor = '1 1 1'; break; + case 8: theColor = '1 1 1'; theAlpha = 0.5; break; + case 9: theColor = '0.5 0.5 0.5'; break; } draw_Fill(p, eX * w + eY * me.realFontSize.y, '1 1 1', 0.5); draw_Text(p, strcat(ch, ch2), me.realFontSize, theColor, theAlpha, 0); } else if (ch2 == "x") // ^x found { + vector theTempColor; theColor = '1 1 1'; - - component = HEXDIGIT_TO_DEC(substring(me.text, i + 2, 1)); + float component = HEXDIGIT_TO_DEC(substring(me.text, i + 2, 1)); if (component >= 0) // ^xr found { theTempColor.x = component / 15; @@ -296,7 +268,7 @@ w = draw_TextWidth(substring(me.text, i, 5), 0, me.realFontSize); draw_Fill(p, eX * w + eY * me.realFontSize.y, '1 1 1', 0.5); - draw_Text(p, substring(me.text, i, 5), me.realFontSize, theColor, 1, 0); // theVariableAlpha instead of 1 using alpha tags ^ax + draw_Text(p, substring(me.text, i, 5), me.realFontSize, theColor, 1, 0); i += 3; } else @@ -334,7 +306,7 @@ ++i; continue; } - draw_Text(p, ch, me.realFontSize, theColor, theAlpha, 0); // TODO theVariableAlpha + draw_Text(p, ch, me.realFontSize, theColor, theAlpha, 0); p += eX * draw_TextWidth(ch, 0, me.realFontSize); } }