]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/xonotic/dialog_multiplayer_create.qc
Merge branch 'master' into terencehill/tooltips_cleanup
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / dialog_multiplayer_create.qc
index a4974eceebf804e9ae77a6c6a2299206dd8811e2..eeab84e363b4cf4098b9635f2c972c3edeee71fb 100644 (file)
@@ -21,7 +21,7 @@ entity makeXonoticServerCreateTab();
 
 #ifdef IMPLEMENTATION
 
-void GameType_ConfigureSliders(entity e, entity l, string pLabel, float pMin, float pMax, float pStep, string pCvar)
+void GameType_ConfigureSliders(entity e, entity l, string pLabel, float pMin, float pMax, float pStep, string pCvar, string theTooltip)
 {
        if(pCvar == "")
        {
@@ -31,7 +31,7 @@ void GameType_ConfigureSliders(entity e, entity l, string pLabel, float pMin, fl
        }
        else
        {
-               e.configureXonoticTextSlider(e, pCvar, "-");
+               e.configureXonoticTextSlider(e, pCvar, theTooltip);
 
                // clear old values
                int i;
@@ -77,37 +77,35 @@ void XonoticServerCreateTab_fill(entity me)
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Time limit:")));
                me.TD(me, 1, 2, e = makeXonoticTextSlider_T("timelimit_override",
                        _("Timelimit in minutes that when hit, will end the match")));
+                       #define ADDVALUE_MINUTES(i) e.addValue(e, strzone(sprintf(_("%d minutes"), i)), #i)
                        e.addValue(e, ZCTX(_("TIMLIM^Default")), "-1");
-                       e.addValue(e, ZCTX(_("TIMLIM^1 minute")), "1");
-                       e.addValue(e, ZCTX(_("TIMLIM^2 minutes")), "2");
-                       e.addValue(e, ZCTX(_("TIMLIM^3 minutes")), "3");
-                       e.addValue(e, ZCTX(_("TIMLIM^4 minutes")), "4");
-                       e.addValue(e, ZCTX(_("TIMLIM^5 minutes")), "5");
-                       e.addValue(e, ZCTX(_("TIMLIM^6 minutes")), "6");
-                       e.addValue(e, ZCTX(_("TIMLIM^7 minutes")), "7");
-                       e.addValue(e, ZCTX(_("TIMLIM^8 minutes")), "8");
-                       e.addValue(e, ZCTX(_("TIMLIM^9 minutes")), "9");
-                       e.addValue(e, ZCTX(_("TIMLIM^10 minutes")), "10");
-                       e.addValue(e, ZCTX(_("TIMLIM^15 minutes")), "15");
-                       e.addValue(e, ZCTX(_("TIMLIM^20 minutes")), "20");
-                       e.addValue(e, ZCTX(_("TIMLIM^25 minutes")), "25");
-                       e.addValue(e, ZCTX(_("TIMLIM^30 minutes")), "30");
-                       e.addValue(e, ZCTX(_("TIMLIM^40 minutes")), "40");
-                       e.addValue(e, ZCTX(_("TIMLIM^50 minutes")), "50");
-                       e.addValue(e, ZCTX(_("TIMLIM^60 minutes")), "60");
+                       e.addValue(e, _("1 minute"), "1");
+                       ADDVALUE_MINUTES(2);
+                       ADDVALUE_MINUTES(3);
+                       ADDVALUE_MINUTES(4);
+                       ADDVALUE_MINUTES(5);
+                       ADDVALUE_MINUTES(6);
+                       ADDVALUE_MINUTES(7);
+                       ADDVALUE_MINUTES(8);
+                       ADDVALUE_MINUTES(9);
+                       ADDVALUE_MINUTES(10);
+                       ADDVALUE_MINUTES(15);
+                       ADDVALUE_MINUTES(20);
+                       ADDVALUE_MINUTES(25);
+                       ADDVALUE_MINUTES(30);
+                       ADDVALUE_MINUTES(40);
+                       ADDVALUE_MINUTES(50);
+                       ADDVALUE_MINUTES(60);
                        e.addValue(e, ZCTX(_("TIMLIM^Infinite")), "0");
                        e.configureXonoticTextSliderValues(e);
+                       #undef ADDVALUE_MINUTES
        me.TR(me);
                me.TD(me, 1, 1, me.labelFraglimit = makeXonoticTextLabel(0, _("Frag limit:")));
                me.TD(me, 1, 2, e = me.sliderFraglimit = makeXonoticTextSlider("fraglimit_override"));
-               // TODO add logic to update tooltip. fraglimit_override tooltip:
-               // _("The amount of frags needed before the match will end")
-                       GameType_ConfigureSliders(me.sliderFraglimit, me.labelFraglimit, _("Frag limit:"), 5, 100, 5, "fraglimit_override");
 
        me.gotoRC(me, 15, 0);
                me.TD(me, 1, 1, me.labelTeams = makeXonoticTextLabel(0, _("Teams:")));
                me.TD(me, 1, 2, e = me.sliderTeams = makeXonoticTextSlider(string_null));
-                       // TODO add logic to change the default tooltip: _("The amount of frags needed before the match will end")
                        e.addValue(e, _("Default"), "0");
                        e.addValue(e, _("2 teams"), "2");
                        e.addValue(e, _("3 teams"), "3");
@@ -172,7 +170,7 @@ void XonoticServerCreateTab_fill(entity me)
                // string filter label and box
                me.TD(me, 1, 0.35, e = makeXonoticTextLabel(1, _("Filter:")));
                me.mapListBox.stringFilterBox = makeXonoticInputBox_T(0, string_null,
-                       _("Click here or Ctrl-F to provide a keyword to narrow down the maplist above. Ctrl-Delete to clear; Enter when done."));
+                       _("Click here or Ctrl-F to provide a keyword to narrow down the map list. Ctrl-Delete to clear; Enter when done."));
                me.TD(me, 1, me.columns - me.firstColumn - 0.35, e = me.mapListBox.stringFilterBox);
                        e.onChange = MapList_StringFilterBox_Change;
                        e.keyDown = MapList_StringFilterBox_keyDown;
@@ -183,11 +181,11 @@ void XonoticServerCreateTab_fill(entity me)
                // the selection buttons
                me.TDempty(me, 0.2);
                me.TD(me, 1, 1.3, e = makeXonoticButton_T(_("Add shown"), '0 0 0',
-                       _("Add the maps shown in Maplist above to your selection")));
+                       _("Add the maps shown in the list to your selection")));
                        e.onClick = MapList_Add_Shown;
                        e.onClickEntity = me.mapListBox;
                me.TD(me, 1, 1.3, e = makeXonoticButton_T(_("Remove shown"), '0 0 0',
-                       _("Remove the maps shown in Maplist above from your selection")));
+                       _("Remove the maps shown in the list from your selection")));
                        e.onClick = MapList_Remove_Shown;
                        e.onClickEntity = me.mapListBox;
        me.gotoRC(me, me.rows - 2.5, me.firstColumn);
@@ -223,35 +221,34 @@ void XonoticServerCreateTab_gameTypeChangeNotify(entity me)
 
        switch(gt)
        {
-               case MAPINFO_TYPE_CTF:        GameType_ConfigureSliders(e, l, _("Capture limit:"),   1,   20, 1, "capturelimit_override");     break;
-               case MAPINFO_TYPE_DOMINATION: GameType_ConfigureSliders(e, l, _("Point limit:"),    50,  500, 10, "g_domination_point_limit"); break;
-               case MAPINFO_TYPE_KEYHUNT:    GameType_ConfigureSliders(e, l, _("Point limit:"),   200, 1500, 50, "g_keyhunt_point_limit");    break;
-               case MAPINFO_TYPE_LMS:        GameType_ConfigureSliders(e, l, _("Lives:"),           3,   50,  1, "g_lms_lives_override");     break;
-               case MAPINFO_TYPE_RACE:       GameType_ConfigureSliders(e, l, _("Laps:"),            1,   25,  1, "g_race_laps_limit");        break;
-               case MAPINFO_TYPE_NEXBALL:    GameType_ConfigureSliders(e, l, _("Goals:"),           1,   50,  1, "g_nexball_goallimit");      break;
-               case MAPINFO_TYPE_ASSAULT:    GameType_ConfigureSliders(e, l, _("Point limit:"),    50,  500, 10, "");                         break;
-               case MAPINFO_TYPE_ONSLAUGHT:  GameType_ConfigureSliders(e, l, _("Point limit:"),    50,  500, 10, "");                         break;
-               case MAPINFO_TYPE_CTS:        GameType_ConfigureSliders(e, l, _("Point limit:"),    50,  500, 10, "");                         break;
-               case MAPINFO_TYPE_INVASION:   GameType_ConfigureSliders(e, l, _("Point limit:"),     5,    0,  5, "");                         break;
-       case MAPINFO_TYPE_TEAM_DEATHMATCH:GameType_ConfigureSliders(e, l, _("Point limit:"),     5,  100,  5, "g_tdm_point_limit");        break;
-               default:                      GameType_ConfigureSliders(e, l, _("Frag limit:"),      5,  100,  5, "fraglimit_override");       break;
+               case MAPINFO_TYPE_CTF:            GameType_ConfigureSliders(e, l, _("Capture limit:"),   1,   20, 1,  "capturelimit_override", string_null); break;
+               case MAPINFO_TYPE_DOMINATION:     GameType_ConfigureSliders(e, l, _("Point limit:"),    50,  500, 10, "g_domination_point_limit", string_null); break;
+               case MAPINFO_TYPE_KEYHUNT:        GameType_ConfigureSliders(e, l, _("Point limit:"),   200, 1500, 50, "g_keyhunt_point_limit", string_null); break;
+               case MAPINFO_TYPE_LMS:            GameType_ConfigureSliders(e, l, _("Lives:"),           3,   50,  1, "g_lms_lives_override", string_null); break;
+               case MAPINFO_TYPE_RACE:           GameType_ConfigureSliders(e, l, _("Laps:"),            1,   25,  1, "g_race_laps_limit", string_null); break;
+               case MAPINFO_TYPE_NEXBALL:        GameType_ConfigureSliders(e, l, _("Goals:"),           1,   50,  1, "g_nexball_goallimit", string_null); break;
+               case MAPINFO_TYPE_ASSAULT:        GameType_ConfigureSliders(e, l, _("Point limit:"),    50,  500, 10, "", string_null); break;
+               case MAPINFO_TYPE_ONSLAUGHT:      GameType_ConfigureSliders(e, l, _("Point limit:"),    50,  500, 10, "", string_null); break;
+               case MAPINFO_TYPE_CTS:            GameType_ConfigureSliders(e, l, _("Point limit:"),    50,  500, 10, "", string_null); break;
+               case MAPINFO_TYPE_INVASION:       GameType_ConfigureSliders(e, l, _("Point limit:"),     5,    0,  5, "", string_null); break;
+               case MAPINFO_TYPE_TEAM_DEATHMATCH:GameType_ConfigureSliders(e, l, _("Point limit:"),     5,  100,  5, "g_tdm_point_limit", string_null); break;
+               default:                          GameType_ConfigureSliders(e, l, _("Frag limit:"),      5,  100,  5, "fraglimit_override", _("The amount of frags needed before the match will end")); break;
        }
 
        string x = string_null;
+       string theTooltip = string_null;
        e = me.sliderTeams;
        switch(gt)
        {
+               // old tooltip: _("Override the default amount of teams in teamgames")
                case MAPINFO_TYPE_CA:               x = "g_ca_teams_override";          break;
                case MAPINFO_TYPE_DOMINATION:       x = "g_domination_teams_override";  break;
                case MAPINFO_TYPE_FREEZETAG:        x = "g_freezetag_teams_override";   break;
                case MAPINFO_TYPE_KEYHUNT:          x = "g_keyhunt_teams_override";     break;
                case MAPINFO_TYPE_TEAM_DEATHMATCH:  x = "g_tdm_teams_override";         break;
-               // TODO add logic to update tooltip
        }
-       e.configureXonoticTextSlider(e, x, string_null);
+       e.configureXonoticTextSlider(e, x, theTooltip);
        e.configureXonoticTextSliderValues(e);
-       if(!x)
-               e.value = 0;
        me.sliderTeams.disabled = me.labelTeams.disabled = !x;
 
        me.mapListBox.refilter(me.mapListBox);