]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Add option to flip order of splits, rename old _flip to _align more common in other... des/racesplits_panel 1358/head
authorDes <xon@damianv.com.ar>
Thu, 19 Sep 2024 15:43:39 +0000 (12:43 -0300)
committerDes <xon@damianv.com.ar>
Thu, 19 Sep 2024 15:43:39 +0000 (12:43 -0300)
_hud_descriptions.cfg
hud_luma.cfg
hud_luminos.cfg
hud_luminos_minimal.cfg
hud_luminos_minimal_xhair.cfg
hud_luminos_old.cfg
hud_nexuiz.cfg
qcsrc/client/hud/panel/racesplits.qc
qcsrc/client/hud/panel/racesplits.qh
qcsrc/menu/xonotic/dialog_hudpanel_racesplits.qc

index b306d2116266997744eff07bfb90108e64649a38..8db185cdd7f1ca47e2603e63163e00450b885d4c 100644 (file)
@@ -186,7 +186,8 @@ seta hud_panel_racesplits_bg_alpha "" "if set to something else than \"\" = over
 seta hud_panel_racesplits_bg_border "" "if set to something else than \"\" = override default size of border around the background"
 seta hud_panel_racesplits_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
 seta hud_panel_racesplits_lines "" "amount of lines to show, max 50, font size will adapt accordingly"
-seta hud_panel_racesplits_flip "" "1 = align the items to the right"
+seta hud_panel_racesplits_flip "" "order the list top to bottom instead of bottom to top"
+seta hud_panel_racesplits_align "" "text alignment: 0 left, 1 right"
 
 seta hud_panel_vote_pos "" "position of this base of the panel"
 seta hud_panel_vote_size "" "size of this panel"
index ee85f0467e017773eb81ff1c5aeeb63a083118dd..360bcb28554a2f74dc25a1e92d5bccf25be2590c 100644 (file)
@@ -187,7 +187,8 @@ seta hud_panel_racesplits_bg_alpha ""
 seta hud_panel_racesplits_bg_border ""
 seta hud_panel_racesplits_bg_padding ""
 seta hud_panel_racesplits_lines "8"
-seta hud_panel_racesplits_flip "1"
+seta hud_panel_racesplits_flip "0"
+seta hud_panel_racesplits_align "1"
 
 seta hud_panel_vote_pos "0.740000 0.690000"
 seta hud_panel_vote_size "0.190000 0.090000"
index af5c75191210f2a45f31d6d3230a5d62648e0558..b34ee5a41e63d306d76da6c01d5187b4cf38aabd 100644 (file)
@@ -187,7 +187,8 @@ seta hud_panel_racesplits_bg_alpha ""
 seta hud_panel_racesplits_bg_border ""
 seta hud_panel_racesplits_bg_padding ""
 seta hud_panel_racesplits_lines "8"
-seta hud_panel_racesplits_flip "1"
+seta hud_panel_racesplits_flip "0"
+seta hud_panel_racesplits_align "1"
 
 seta hud_panel_vote_pos "0.720000 0.670000"
 seta hud_panel_vote_size "0.190000 0.090000"
index 44f643707c013bf9b060796eaac335ddd5273de7..fa55d0bf4edcbbefe5bdcf37b2a2cf379283679d 100644 (file)
@@ -187,7 +187,8 @@ seta hud_panel_racesplits_bg_alpha ""
 seta hud_panel_racesplits_bg_border ""
 seta hud_panel_racesplits_bg_padding ""
 seta hud_panel_racesplits_lines "8"
-seta hud_panel_racesplits_flip "1"
+seta hud_panel_racesplits_flip "0"
+seta hud_panel_racesplits_align "1"
 
 seta hud_panel_vote_pos "0.720000 0.890000"
 seta hud_panel_vote_size "0.170000 0.110000"
index e5bc48492858803befd3638879704bc9abec5ee4..b4e54c65de89b271d4758ad03d9f382274880f24 100644 (file)
@@ -187,7 +187,8 @@ seta hud_panel_racesplits_bg_alpha ""
 seta hud_panel_racesplits_bg_border ""
 seta hud_panel_racesplits_bg_padding ""
 seta hud_panel_racesplits_lines "8"
-seta hud_panel_racesplits_flip "1"
+seta hud_panel_racesplits_flip "0"
+seta hud_panel_racesplits_align "1"
 
 seta hud_panel_vote_pos "0.720000 0.890000"
 seta hud_panel_vote_size "0.170000 0.110000"
index 2ec1d347a0d1225ec62b8fc81c474b041af433c4..31719c868e27a698cb5a51975d2aec566270b53f 100644 (file)
@@ -187,7 +187,8 @@ seta hud_panel_racesplits_bg_alpha ""
 seta hud_panel_racesplits_bg_border ""
 seta hud_panel_racesplits_bg_padding ""
 seta hud_panel_racesplits_lines "6"
-seta hud_panel_racesplits_flip "1"
+seta hud_panel_racesplits_flip "0"
+seta hud_panel_racesplits_align "1"
 
 seta hud_panel_vote_pos "0.020000 0.650000"
 seta hud_panel_vote_size "0.230000 0.110000"
index a404093025a785ba764f5b08accc731a81312022..37fa2efacb0274df3ae1d0c544e760b2b16c0e2e 100644 (file)
@@ -187,7 +187,8 @@ seta hud_panel_racesplits_bg_alpha ""
 seta hud_panel_racesplits_bg_border ""
 seta hud_panel_racesplits_bg_padding ""
 seta hud_panel_racesplits_lines "6"
-seta hud_panel_racesplits_flip "1"
+seta hud_panel_racesplits_flip "0"
+seta hud_panel_racesplits_align "1"
 
 seta hud_panel_vote_pos "0.690000 0.750000"
 seta hud_panel_vote_size "0.300000 0.100000"
index a0ffb3a68f680f37860cecb80fae32fcbd3a8103..269deca1ef42e4fbb037edabeb37cad5b6bda0e5 100644 (file)
@@ -10,6 +10,7 @@
 void HUD_RaceSplits_Export(int fh)
 {
        // allow saving cvars that aesthetically change the panel into hud skin files
+       HUD_Write_Cvar("hud_panel_racesplits_align");
        HUD_Write_Cvar("hud_panel_racesplits_flip");
        HUD_Write_Cvar("hud_panel_racesplits_lines");
 }
@@ -21,13 +22,13 @@ vector RaceSplits_drawstring(string s, vector pos, vector sz, float a, vector fo
        while(getWrappedLine_remaining)
        {
                s = getWrappedLine(sz.x - offset, fontsize, stringwidth_colors);
-               if(autocvar_hud_panel_racesplits_flip)
+               if(autocvar_hud_panel_racesplits_align)
                        offset = sz.x - stringwidth_colors(s, fontsize) - offset;
                drawcolorcodedstring(pos + eX * offset, s, fontsize, a, DRAWFLAG_NORMAL);
                pos.y += fontsize.y;
                offset = fontsize.x;
        }
-       pos.y += fontsize.y * 0.25;
+       pos.y += fontsize.y * (offset ? 0.25 : 1.25);
        return pos;
 }
 
@@ -60,7 +61,9 @@ void HUD_RaceSplits()
 
        #define HUD_RACESPLITS_MAX_NRLINES 50 // feels like twice more than enough
        int nrlines = min(HUD_RACESPLITS_MAX_NRLINES, autocvar_hud_panel_racesplits_lines);
-       vector fontsize = '0.8 1 0' * (mySize.y / (nrlines+2));
+       vector fontsize = '0.8 1 0' * (mySize.y / (nrlines*1.25));
+
+
        string s;
        if(!autocvar__hud_configure)
        {
@@ -92,13 +95,14 @@ void HUD_RaceSplits()
                        }
                }
                for (int j = 0; j < nrlines; ++j)
-                       RaceSplit(race_checkpoint_splits[mlines[j]]);
+                       RaceSplit(race_checkpoint_splits[mlines[autocvar_hud_panel_racesplits_flip ? nrlines - 1 -j : j]]);
        }
        else
        {
                string units_text = autocvar_cl_race_cptimes_showspeed_unit ? GetSpeedUnit(autocvar_hud_speed_unit) : "";
                float speed_conv_f = GetSpeedUnitFactor(autocvar_hud_speed_unit);
                int j;
+               string demolines[HUD_RACESPLITS_MAX_NRLINES];
                for(j = 0; j < nrlines && j < 4; ++j)
                {
                        string timestr     = TIME_ENCODED_TOSTRING(TIME_ENCODE(18.7 + (j-1) * 5.33), false);
@@ -109,10 +113,12 @@ void HUD_RaceSplits()
                        string speed_color = rgb_to_hexcolor(j == 0 ? autocvar_hud_progressbar_acceleration_neg_color : autocvar_hud_progressbar_acceleration_color);
                        if(j == 3)
                                speed_color = "^3";
-                       RaceSplit(sprintf(strcat("%s %s", _("Intermediate %d"), " (%s) ^7%d%s %s"), timestr, col, j+1, time_split, speed_split, units_text, sprintf("%s(%+d%s)", speed_color, speed_diff, units_text)));
+                       demolines[j] = sprintf(strcat("%s %s", _("Intermediate %d"), " (%s) ^7%d%s %s"), timestr, col, j+1, time_split, speed_split, units_text, sprintf("%s(%+d%s)", speed_color, speed_diff, units_text));
                }
                for(; j < nrlines; ++j)
-                       RaceSplit(sprintf(strcat("%s ^7", _("Intermediate %d"), " ^7%d%s"), TIME_ENCODED_TOSTRING(TIME_ENCODE(j*9.37), false), j+1, (1100 + j*63) * speed_conv_f, units_text));
+                       demolines[j] = sprintf(strcat("%s ^7", _("Intermediate %d"), " ^7%d%s"), TIME_ENCODED_TOSTRING(TIME_ENCODE(j*9.37), false), j+1, (1100 + j*63) * speed_conv_f, units_text);
+               for (int j = 0; j < nrlines; ++j)
+                       RaceSplit(demolines[autocvar_hud_panel_racesplits_flip ? nrlines - 1 -j : j]);
 
        }
 }
index 6f4f5b87f52fed287789c368eca4292ef32a4fd4..4f4c5988e00bce38569b0a6782d0a288b6e65538 100644 (file)
@@ -4,5 +4,6 @@
 bool autocvar_hud_panel_racesplits;
 bool autocvar_hud_panel_racesplits_dynamichud = false;
 bool autocvar_hud_panel_racesplits_flip;
+bool autocvar_hud_panel_racesplits_align;
 int autocvar_hud_panel_racesplits_lines;
 
index bbaa1924d0960dd311c520176b19dd6cd3891711..3a9836e8c27e7b58a21afad51113f2a0fa68ad29 100644 (file)
@@ -17,7 +17,10 @@ void XonoticHUDRaceSplitsDialog_fill(entity me)
                me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("Race Splits:")));
        me.TR(me);
                me.TDempty(me, 0.2);
-               me.TD(me, 1, 3.8, e = makeXonoticCheckBox(0, "hud_panel_racesplits_flip", _("Flip align")));
+               me.TD(me, 1, 3.8, e = makeXonoticCheckBox(0, "hud_panel_racesplits_align", _("Align right")));
+       me.TR(me);
+               me.TDempty(me, 0.2);
+               me.TD(me, 1, 3.8, e = makeXonoticCheckBox(0, "hud_panel_racesplits_flip", _("Flip splits order")));
        me.TR(me);
                me.TDempty(me, 0.2);
                me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Splits to keep on screen:")));