]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
game types: better control
authorRudolf Polzer <divverent@alientrap.org>
Wed, 12 Jan 2011 18:23:52 +0000 (19:23 +0100)
committerRudolf Polzer <divverent@alientrap.org>
Wed, 12 Jan 2011 18:23:52 +0000 (19:23 +0100)
defaultXonotic.cfg
qcsrc/menu/classes.c
qcsrc/menu/xonotic/dialog_multiplayer_create.c
qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c
qcsrc/menu/xonotic/gametypelist.c

index 0b8b58c64460c4af7e551d3081094af3d5df9467..1a3138908f63f2227fa4e67bb012c2d7442dfb22 100644 (file)
@@ -2084,7 +2084,7 @@ exec ctfscoring-ai.cfg
 exec effects-normal.cfg
 exec physicsX0.cfg
 exec turrets.cfg
-exec font-nimbussansl.cfg
+exec font-xolonium.cfg
 
 // hud cvar descriptions
 exec _hud_descriptions.cfg
index 9ebcbb8f5b170af8ce7a63e1472205c3fbf0b26b..bc7368d09599cf8e223bd0ffb9ab33a2726513b1 100644 (file)
@@ -58,7 +58,7 @@
 #include "xonotic/dialog_multiplayer_create_mutators.c"
 #include "xonotic/dialog_multiplayer_create_advanced.c"
 #include "xonotic/dialog_multiplayer_create_mapinfo.c"
-#include "xonotic/gametypebutton.c"
+#include "xonotic/gametypelist.c"
 #include "xonotic/maplist.c"
 #include "xonotic/skinlist.c"
 #include "xonotic/image.c"
index 416a85419b1f2a3cd5e549c428b7713e2195c20b..fbe927b2f4ce492e7c2be7ffe11190fa46ab930a 100644 (file)
@@ -32,62 +32,18 @@ void XonoticServerCreateTab_fill(entity me)
        float n;
 
        me.TR(me);
-               n = 6;
-               me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_dm", "DM"));
-                       e0 = e;
-               me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_lms", "LMS"));
-                       if(e.checked) e0 = NULL;
-               me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_arena", "Arena"));
-                       if(e.checked) e0 = NULL;
-               me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_keepaway", "Keepaway"));
-                       if(e.checked) e0 = NULL;
-               me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_race", "Race"));
-                       if(e.checked) e0 = NULL;
-               me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_cts", "Race CTS"));
-                       if(e.checked) e0 = NULL;
-       me.TR(me);
-               n = 9;
-               me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_tdm", "TDM"));
-                       if(e.checked) e0 = NULL;
-               me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_ctf", "CTF"));
-                       if(e.checked) e0 = NULL;
-               me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_ca", "CA"));
-                       if(e.checked) e0 = NULL;
-               me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_freezetag", "Freeze Tag"));
-                       if(e.checked) e0 = NULL;
-               me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_domination", "Domination"));
-                       if(e.checked) e0 = NULL;
-               me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_keyhunt", "Key Hunt"));
-                       if(e.checked) e0 = NULL;
-               me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_assault", "Assault"));
-                       if(e.checked) e0 = NULL;
-               me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_onslaught", "Onslaught"));
-                       if(e.checked) e0 = NULL;
-               me.TD(me, 1, me.columns / n, e = makeXonoticGametypeButton(1, "g_nexball", "Nexball"));
-                       if(e.checked) e0 = NULL;
-               if(e0)
-               {
-                       //print("NO CHECK\n");
-                       e0.setChecked(e0, 1);
-               }
+               me.TD(me, 1, 3, e = makeXonoticTextLabel(0, "Game type:"));
+       me.TR(me);
+               me.TD(me, 9, 3, e = makeXonoticGametypeList());
+       me.TR(me);
+       me.TR(me);
+       me.TR(me);
+       me.TR(me);
+       me.TR(me);
+       me.TR(me);
        me.TR(me);
        me.TR(me);
-               me.mapListBox = makeXonoticMapList();
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0, "Map list:"));
-                       makeCallback(e, me.mapListBox, me.mapListBox.refilterCallback);
        me.TR(me);
-               me.TD(me, me.rows - 7, 3, me.mapListBox);
-       me.gotoRC(me, me.rows - 3, 0);
-               me.TDempty(me, 0.5);
-               me.TD(me, 1, 1, e = makeXonoticButton("All", '0 0 0'));
-                       e.onClick = MapList_All;
-                       e.onClickEntity = me.mapListBox;
-               me.TD(me, 1, 1, e = makeXonoticButton("None", '0 0 0'));
-                       e.onClick = MapList_None;
-                       e.onClickEntity = me.mapListBox;
-               me.TDempty(me, 0.5);
-
-       me.gotoRC(me, 3, 3.5); me.setFirstColumn(me, me.currentColumn);
                me.TD(me, 1, 3, e = makeXonoticTextLabel(0, "Match settings:"));
        me.TR(me);
                me.sliderTimelimit = makeXonoticSlider(1.0, 60.0, 0.5, "timelimit_override");
@@ -105,7 +61,6 @@ void XonoticServerCreateTab_fill(entity me)
                me.TDempty(me, 0.2);
                me.TD(me, 1, 2.8, e = makeXonoticSliderCheckBox(-1, 0, me.sliderFraglimit, "Use map specified default"));
                        me.checkboxFraglimitMapinfo = e;
-       me.TR(me);
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Player slots:"));
                me.TD(me, 1, 2, makeXonoticSlider(1, 32, 1, "menu_maxplayers"));
@@ -130,31 +85,6 @@ void XonoticServerCreateTab_fill(entity me)
                        e.addValue(e, "Godlike", "10");
                        e.configureXonoticTextSliderValues(e);
                        setDependent(e, "bot_number", 0, -1);
-       me.TR(me);
-               me.TDempty(me, 0.2);
-               me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, "Bot names:"));
-               me.TD(me, 1, 0.7, e = makeXonoticInputBox(1, "bot_prefix"));
-                       setDependent(e, "bot_number", 0, -1);
-               me.TD(me, 1, 0.6, e = makeXonoticTextLabel(0.5, "Shadow"));
-                       setDependent(e, "bot_number", 0, -1);
-               me.TD(me, 1, 0.7, e = makeXonoticInputBox(1, "bot_suffix"));
-                       setDependent(e, "bot_number", 0, -1);
-       me.TR(me);
-       me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Map voting:"));
-               me.TD(me, 1, 2, e = makeXonoticTextSlider("g_maplist_votable"));
-                       e.addValue(e, "No voting", "0");
-                       e.addValue(e, "2 choices", "2");
-                       e.addValue(e, "3 choices", "3");
-                       e.addValue(e, "4 choices", "4");
-                       e.addValue(e, "5 choices", "5");
-                       e.addValue(e, "6 choices", "6");
-                       e.addValue(e, "7 choices", "7");
-                       e.addValue(e, "8 choices", "8");
-                       e.addValue(e, "9 choices", "9");
-                       e.configureXonoticTextSliderValues(e);
-       me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(0.5, 0, "sv_vote_simple_majority_factor", "Simple majority wins vcall"));
        me.TR(me);
        me.TR(me);
                me.TDempty(me, 0.5);
@@ -172,6 +102,22 @@ void XonoticServerCreateTab_fill(entity me)
                        e0.textEntity = main.mutatorsDialog;
                        e0.allowCut = 1;
 
+       me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn);
+               me.mapListBox = makeXonoticMapList();
+               me.TD(me, 1, 3, e = makeXonoticTextLabel(0, "Map list:"));
+                       makeCallback(e, me.mapListBox, me.mapListBox.refilterCallback);
+       me.TR(me);
+               me.TD(me, me.rows - 4, 3, me.mapListBox);
+       me.gotoRC(me, me.rows - 3, 3.5);
+               me.TDempty(me, 0.5);
+               me.TD(me, 1, 1, e = makeXonoticButton("All", '0 0 0'));
+                       e.onClick = MapList_All;
+                       e.onClickEntity = me.mapListBox;
+               me.TD(me, 1, 1, e = makeXonoticButton("None", '0 0 0'));
+                       e.onClick = MapList_None;
+                       e.onClickEntity = me.mapListBox;
+               me.TDempty(me, 0.5);
+
        me.gotoRC(me, me.rows - 1, 0);
                me.TD(me, 1, me.columns, e = makeXonoticButton("Start Multiplayer!", '0 0 0'));
                        e.onClick = MapList_LoadMap;
index 87f82a43d16bc5d392148a4ec8688c3cd128dd4e..b2b68f18ec73729fe51b1e91bf53658e8bd63070 100644 (file)
@@ -6,7 +6,7 @@ CLASS(XonoticAdvancedDialog) EXTENDS(XonoticDialog)
        ATTRIB(XonoticAdvancedDialog, title, string, "Advanced server settings")
        ATTRIB(XonoticAdvancedDialog, color, vector, SKINCOLOR_DIALOG_ADVANCED)
        ATTRIB(XonoticAdvancedDialog, intendedWidth, float, 0.5)
-       ATTRIB(XonoticAdvancedDialog, rows, float, 14)
+       ATTRIB(XonoticAdvancedDialog, rows, float, 17)
        ATTRIB(XonoticAdvancedDialog, columns, float, 3)
        ATTRIB(XonoticAdvancedDialog, refilterEntity, entity, NULL)
 ENDCLASS(XonoticAdvancedDialog)
@@ -61,6 +61,22 @@ void XonoticAdvancedDialog_fill(entity me)
                        e.addValue(e, "3 teams", "3");
                        e.addValue(e, "4 teams", "4");
                        e.configureXonoticTextSliderValues(e);
+       me.TR(me);
+       me.TR(me);
+               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Map voting:"));
+               me.TD(me, 1, 2, e = makeXonoticTextSlider("g_maplist_votable"));
+                       e.addValue(e, "No voting", "0");
+                       e.addValue(e, "2 choices", "2");
+                       e.addValue(e, "3 choices", "3");
+                       e.addValue(e, "4 choices", "4");
+                       e.addValue(e, "5 choices", "5");
+                       e.addValue(e, "6 choices", "6");
+                       e.addValue(e, "7 choices", "7");
+                       e.addValue(e, "8 choices", "8");
+                       e.addValue(e, "9 choices", "9");
+                       e.configureXonoticTextSliderValues(e);
+       me.TR(me);
+               me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(0.5, 0, "sv_vote_simple_majority_factor", "Simple majority wins vcall"));
 
        me.gotoRC(me, me.rows - 1, 0);
                me.TD(me, 1, me.columns, e = makeXonoticButton("OK", '0 0 0'));
index f9e58b154d8c674b40adcba5315e044492fa2448..ca09a31e35b688e4840e1e0ea02d36fe624ff68e 100644 (file)
@@ -19,22 +19,22 @@ entity makeXonoticGametypeList();
 #ifdef IMPLEMENTATION
 
 #define GAMETYPES \
-       GAMETYPE(MAPINFO_TYPE_DEATHMATCH, "Deathmatch") \
-       GAMETYPE(MAPINFO_TYPE_LMS, "LMS") \
        GAMETYPE(MAPINFO_TYPE_ARENA, "Arena") \
-       GAMETYPE(MAPINFO_TYPE_RUNEMATCH, "Runematch") \
-       GAMETYPE(MAPINFO_TYPE_RACE, "Race") \
-       GAMETYPE(MAPINFO_TYPE_CTS, "Race CTS") \
-       GAMETYPE(MAPINFO_TYPE_TEAM_DEATHMATCH, "TDM") \
-       GAMETYPE(MAPINFO_TYPE_CTF, "CTF") \
+       GAMETYPE(MAPINFO_TYPE_ASSAULT, "Assault") \
+       GAMETYPE(MAPINFO_TYPE_CTF, "Capture The Flag") \
        GAMETYPE(MAPINFO_TYPE_CA, "Clan Arena") \
+       GAMETYPE(MAPINFO_TYPE_DEATHMATCH, "Deathmatch") \
        GAMETYPE(MAPINFO_TYPE_DOMINATION, "Domination") \
-       GAMETYPE(MAPINFO_TYPE_KEYHUNT, "Key Hunt") \
-       GAMETYPE(MAPINFO_TYPE_ASSAULT, "Assault") \
-       GAMETYPE(MAPINFO_TYPE_ONSLAUGHT, "Onslaught") \
-       GAMETYPE(MAPINFO_TYPE_NEXBALL, "Nexball") \
        GAMETYPE(MAPINFO_TYPE_FREEZETAG, "Freeze Tag") \
        GAMETYPE(MAPINFO_TYPE_KEEPAWAY, "Keepaway") \
+       GAMETYPE(MAPINFO_TYPE_KEYHUNT, "Key Hunt") \
+       GAMETYPE(MAPINFO_TYPE_LMS, "Last Man Standing") \
+       GAMETYPE(MAPINFO_TYPE_NEXBALL, "Nexball") \
+       GAMETYPE(MAPINFO_TYPE_ONSLAUGHT, "Onslaught") \
+       GAMETYPE(MAPINFO_TYPE_RACE, "Race") \
+       GAMETYPE(MAPINFO_TYPE_CTS, "Race CTS") \
+       GAMETYPE(MAPINFO_TYPE_RUNEMATCH, "Runematch") \
+       GAMETYPE(MAPINFO_TYPE_TEAM_DEATHMATCH, "Team Deathmatch") \
        /* nothing */
 
 float GameType_GetID(float cnt)
@@ -86,9 +86,6 @@ void XonoticGametypeList_setSelected(entity me, float i)
 
 void XonoticGametypeList_loadCvars(entity me)
 {
-       if not(me.cvarName)
-               return;
-
        float t;
        t = MapInfo_CurrentGametype();
        float i;
@@ -96,7 +93,13 @@ void XonoticGametypeList_loadCvars(entity me)
                if(t == GameType_GetID(i))
                        break;
        if(i >= GameType_GetCount())
-               i = 0;
+       {
+               for(i = 0; i < GameType_GetCount(); ++i)
+                       if(t == MAPINFO_TYPE_DEATHMATCH)
+                               break;
+               if(i >= GameType_GetCount())
+                       i = 0;
+       }
        me.setSelected(me, i);
        // do we need this: me.parent.gameTypeChangeNotify(me.parent); // to make sure
 }