2 CLASS(VoretServerCreateTab) EXTENDS(VoretTab)
\r
3 METHOD(VoretServerCreateTab, fill, void(entity))
\r
4 METHOD(VoretServerCreateTab, gameTypeChangeNotify, void(entity))
\r
5 ATTRIB(VoretServerCreateTab, title, string, "Create")
\r
6 ATTRIB(VoretServerCreateTab, intendedWidth, float, 0.9)
\r
7 ATTRIB(VoretServerCreateTab, rows, float, 22)
\r
8 ATTRIB(VoretServerCreateTab, columns, float, 6.5)
\r
10 ATTRIB(VoretServerCreateTab, mapListBox, entity, NULL)
\r
11 ATTRIB(VoretServerCreateTab, sliderFraglimit, entity, NULL)
\r
12 ATTRIB(VoretServerCreateTab, sliderTimelimit, entity, NULL)
\r
13 ATTRIB(VoretServerCreateTab, checkboxFraglimit, entity, NULL)
\r
14 ATTRIB(VoretServerCreateTab, checkboxFraglimitMapinfo, entity, NULL)
\r
15 ENDCLASS(VoretServerCreateTab)
\r
16 entity makeVoretServerCreateTab();
\r
19 #ifdef IMPLEMENTATION
\r
21 entity makeVoretServerCreateTab()
\r
24 me = spawnVoretServerCreateTab();
\r
25 me.configureDialog(me);
\r
29 void fillVoretServerCreateTab(entity me)
\r
35 me.TD(me, 1, 0.5, e = makeVoretTextLabel(0, "Single:"));
\r
37 me.TD(me, 1, me.columns / n, e = makeVoretGametypeButton(1, "g_dm", "DM"));
\r
39 me.TD(me, 1, me.columns / n, e = makeVoretGametypeButton(1, "g_lms", "LMS"));
\r
40 if(e.checked) e0 = NULL;
\r
41 me.TD(me, 1, me.columns / n, e = makeVoretGametypeButton(1, "g_arena", "Arena"));
\r
42 if(e.checked) e0 = NULL;
\r
43 me.TD(me, 1, me.columns / n, e = makeVoretGametypeButton(1, "g_race", "Race"));
\r
44 if(e.checked) e0 = NULL;
\r
45 me.TD(me, 1, me.columns / n, e = makeVoretGametypeButton(1, "g_cts", "Race CTS"));
\r
46 if(e.checked) e0 = NULL;
\r
48 me.TD(me, 1, 0.5, e = makeVoretTextLabel(0, "Team:"));
\r
50 me.TD(me, 1, me.columns / n, e = makeVoretGametypeButton(1, "g_tdm", "TDM"));
\r
51 if(e.checked) e0 = NULL;
\r
52 me.TD(me, 1, me.columns / n, e = makeVoretGametypeButton(1, "g_ctf", "CTF"));
\r
53 if(e.checked) e0 = NULL;
\r
54 me.TD(me, 1, me.columns / n, e = makeVoretGametypeButton(1, "g_ca", "CA"));
\r
55 if(e.checked) e0 = NULL;
\r
56 me.TD(me, 1, me.columns / n, e = makeVoretGametypeButton(1, "g_domination", "Domination"));
\r
57 if(e.checked) e0 = NULL;
\r
58 me.TD(me, 1, me.columns / n, e = makeVoretGametypeButton(1, "g_keyhunt", "Key Hunt"));
\r
59 if(e.checked) e0 = NULL;
\r
60 me.TD(me, 1, me.columns / n, e = makeVoretGametypeButton(1, "g_assault", "Assault"));
\r
61 if(e.checked) e0 = NULL;
\r
62 me.TD(me, 1, me.columns / n, e = makeVoretGametypeButton(1, "g_onslaught", "Onslaught"));
\r
63 if(e.checked) e0 = NULL;
\r
65 me.TD(me, 1, 0.5, e = makeVoretTextLabel(0, "Other:"));
\r
67 me.TD(me, 1, me.columns / n, e = makeVoretGametypeButton(1, "g_rpg", "Role Play"));
\r
68 if(e.checked) e0 = NULL;
\r
71 //print("NO CHECK\n");
\r
72 e0.setChecked(e0, 1);
\r
76 me.mapListBox = makeVoretMapList();
\r
77 me.TD(me, 1, 3, e = makeVoretTextLabel(0, "Map list:"));
\r
78 makeCallback(e, me.mapListBox, me.mapListBox.refilterCallback);
\r
80 me.TD(me, me.rows - 7, 3, me.mapListBox);
\r
81 me.gotoRC(me, me.rows - 2, 0);
\r
82 me.TDempty(me, 0.5);
\r
83 me.TD(me, 1, 1, e = makeVoretButton("All", '0 0 0'));
\r
84 e.onClick = MapList_All;
\r
85 e.onClickEntity = me.mapListBox;
\r
86 me.TD(me, 1, 1, e = makeVoretButton("None", '0 0 0'));
\r
87 e.onClick = MapList_None;
\r
88 e.onClickEntity = me.mapListBox;
\r
89 me.TDempty(me, 0.5);
\r
91 me.gotoRC(me, 4, 3.5); me.setFirstColumn(me, me.currentColumn);
\r
92 me.TD(me, 1, 3, e = makeVoretTextLabel(0, "Match settings:"));
\r
94 me.sliderTimelimit = makeVoretSlider(1.0, 60.0, 0.5, "timelimit_override");
\r
95 me.TD(me, 1, 1, e = makeVoretSliderCheckBox(0, 1, me.sliderTimelimit, "Time limit:"));
\r
96 me.TD(me, 1, 2, me.sliderTimelimit);
\r
98 me.TDempty(me, 0.2);
\r
99 me.TD(me, 1, 2.8, e = makeVoretSliderCheckBox(-1, 0, me.sliderTimelimit, "Use map specified default"));
\r
101 me.sliderFraglimit = makeVoretSlider(1.0, 2000.0, 5, "fraglimit_override");
\r
102 me.TD(me, 1, 1, e = makeVoretSliderCheckBox(0, 1, me.sliderFraglimit, "Point limit:"));
\r
103 me.checkboxFraglimit = e;
\r
104 me.TD(me, 1, 2, me.sliderFraglimit);
\r
106 me.TDempty(me, 0.2);
\r
107 me.TD(me, 1, 2.8, e = makeVoretSliderCheckBox(-1, 0, me.sliderFraglimit, "Use map specified default"));
\r
108 me.checkboxFraglimitMapinfo = e;
\r
111 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Player slots:"));
\r
112 me.TD(me, 1, 2, makeVoretSlider(1, 32, 1, "menu_maxplayers"));
\r
114 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Number of bots:"));
\r
115 me.TD(me, 1, 2, makeVoretSlider(0, 9, 1, "bot_number"));
\r
117 me.TDempty(me, 0.2);
\r
118 me.TD(me, 1, 0.8, e = makeVoretTextLabel(0, "Bot skill:"));
\r
119 setDependent(e, "bot_number", 0, -1);
\r
120 me.TD(me, 1, 2, e = makeVoretTextSlider("skill"));
\r
121 e.addValue(e, "(no skill)", "0");
\r
122 e.addValue(e, "Vegetable", "1");
\r
123 e.addValue(e, "Insect", "2");
\r
124 e.addValue(e, "Mouse", "3");
\r
125 e.addValue(e, "Badger", "4");
\r
126 e.addValue(e, "Fox", "5");
\r
127 e.addValue(e, "Tiger", "6");
\r
128 e.addValue(e, "Crocodile", "7");
\r
129 e.addValue(e, "Dinosaur", "8");
\r
130 e.addValue(e, "Dragon", "9");
\r
131 e.addValue(e, "Vore Lord", "10");
\r
132 e.configureVoretTextSliderValues(e);
\r
133 setDependent(e, "bot_number", 0, -1);
\r
135 me.TDempty(me, 0.2);
\r
136 me.TD(me, 1, 0.8, e = makeVoretTextLabel(0, "Bot names:"));
\r
137 me.TD(me, 1, 0.7, e = makeVoretInputBox(1, "bot_prefix"));
\r
138 setDependent(e, "bot_number", 0, -1);
\r
139 me.TD(me, 1, 0.6, e = makeVoretTextLabel(0.5, "Shadow"));
\r
140 setDependent(e, "bot_number", 0, -1);
\r
141 me.TD(me, 1, 0.7, e = makeVoretInputBox(1, "bot_suffix"));
\r
142 setDependent(e, "bot_number", 0, -1);
\r
145 me.TDempty(me, 0.5);
\r
146 me.TD(me, 1, 2, e = makeVoretButton("Advanced settings...", '0 0 0'));
\r
147 e.onClick = DialogOpenButton_Click;
\r
148 e.onClickEntity = main.advancedDialog;
\r
149 main.advancedDialog.refilterEntity = me.mapListBox;
\r
152 me.TD(me, 1, 1, e = makeVoretButton("Mutators...", '0 0 0'));
\r
153 e.onClick = DialogOpenButton_Click;
\r
154 e.onClickEntity = main.mutatorsDialog;
\r
155 main.mutatorsDialog.refilterEntity = me.mapListBox;
\r
156 me.TD(me, 1, 2, e0 = makeVoretTextLabel(0, string_null));
\r
157 e0.textEntity = main.mutatorsDialog;
\r
160 me.gotoRC(me, me.rows - 1, 0);
\r
161 me.TD(me, 1, me.columns, e = makeVoretButton("Start Match!", '0 0 0'));
\r
162 e.onClick = MapList_LoadMap;
\r
163 e.onClickEntity = me.mapListBox;
\r
164 me.mapListBox.startButton = e;
\r
166 me.gameTypeChangeNotify(me);
\r
169 void GameType_ConfigureSliders(entity e, entity l, entity l2, string pLabel, float pMin, float pMax, float pStep, string pCvar)
\r
173 e.configureVoretSlider(e, pMin, pMax, pStep, string_null);
\r
174 l.setText(l, pLabel);
\r
175 e.disabled = l.disabled = l2.disabled = TRUE;
\r
179 e.configureVoretSlider(e, pMin, pMax, pStep, pCvar);
\r
180 l.setText(l, pLabel);
\r
181 e.disabled = l.disabled = l2.disabled = FALSE;
\r
185 void gameTypeChangeNotifyVoretServerCreateTab(entity me)
\r
187 // tell the map list to update
\r
190 gt = MapInfo_CurrentGametype();
\r
191 e = me.sliderFraglimit;
\r
192 l = me.checkboxFraglimit;
\r
193 l2 = me.checkboxFraglimitMapinfo;
\r
196 case MAPINFO_TYPE_CTF: GameType_ConfigureSliders(e, l, l2, "Capture limit:", 1, 20, 1, "capturelimit_override"); break;
\r
197 case MAPINFO_TYPE_DOMINATION: GameType_ConfigureSliders(e, l, l2, "Point limit:", 50, 500, 10, "g_domination_point_limit"); break;
\r
198 case MAPINFO_TYPE_KEYHUNT: GameType_ConfigureSliders(e, l, l2, "Point limit:", 200, 1500, 50, "g_keyhunt_point_limit"); break;
\r
199 case MAPINFO_TYPE_LMS: GameType_ConfigureSliders(e, l, l2, "Lives:", 3, 50, 1, "g_lms_lives_override"); break;
\r
200 case MAPINFO_TYPE_RACE: GameType_ConfigureSliders(e, l, l2, "Laps:", 1, 25, 1, "g_race_laps_limit"); break;
\r
201 case MAPINFO_TYPE_ASSAULT: GameType_ConfigureSliders(e, l, l2, "Point limit:", 50, 500, 10, ""); break;
\r
202 case MAPINFO_TYPE_ONSLAUGHT: GameType_ConfigureSliders(e, l, l2, "Point limit:", 50, 500, 10, ""); break;
\r
203 case MAPINFO_TYPE_CTS: GameType_ConfigureSliders(e, l, l2, "Point limit:", 50, 500, 10, ""); break;
\r
204 case MAPINFO_TYPE_RPG: GameType_ConfigureSliders(e, l, l2, "Point limit:", 50, 500, 10, ""); break;
\r
205 default: GameType_ConfigureSliders(e, l, l2, "Frag limit:", 5, 100, 5, "fraglimit_override"); break;
\r
207 me.mapListBox.refilter(me.mapListBox);
\r