@@ -72,6 +72,61 @@ typedef struct {
72
72
73
73
static dmflagsOptions_t dmflagsOptions_s ;
74
74
75
+ /*
76
+ =================
77
+ DMFlags_StatusBar
78
+ =================
79
+ */
80
+ static void DMFlags_StatusBar ( void * ptr )
81
+ {
82
+ switch ( ((menucommon_s * )ptr )-> id ) {
83
+ case ID_NO_FALLING :
84
+ UI_DrawString (320 , 400 , "Players do not take damage when landing from" , UI_SMALLFONT |UI_CENTER , colorWhite );
85
+ UI_DrawString (320 , 420 , "great heights. Doesn't affect traps." , UI_SMALLFONT |UI_CENTER , colorWhite );
86
+ break ;
87
+
88
+ case ID_FIXED_FOV :
89
+ UI_DrawString (320 , 400 , "Forces all players Field of View to look like" , UI_SMALLFONT |UI_CENTER , colorWhite );
90
+ UI_DrawString (320 , 420 , "the default FOV. Zoom FOV is fixed too." , UI_SMALLFONT |UI_CENTER , colorWhite );
91
+ break ;
92
+
93
+ case ID_NO_FOOTSTEPS :
94
+ UI_DrawString (320 , 400 , "Disables footstep sounds. Jumping, pickups and" , UI_SMALLFONT |UI_CENTER , colorWhite );
95
+ UI_DrawString (320 , 420 , "weapon sounds can still reveal players presence." , UI_SMALLFONT |UI_CENTER , colorWhite );
96
+ break ;
97
+
98
+ case ID_INSTANT_WEAPON_CHANGE :
99
+ UI_DrawString (320 , 400 , "Weapon switch takes no time. Weapons still need" , UI_SMALLFONT |UI_CENTER , colorWhite );
100
+ UI_DrawString (320 , 420 , "to reload before being changed." , UI_SMALLFONT |UI_CENTER , colorWhite );
101
+ break ;
102
+
103
+ case ID_NO_BUNNY :
104
+ UI_DrawString (320 , 400 , "Limited speed, non-slippy movement. Be careful" , UI_SMALLFONT |UI_CENTER , colorWhite );
105
+ UI_DrawString (320 , 420 , "on accelerator pads. Some maps may be broken." , UI_SMALLFONT |UI_CENTER , colorWhite );
106
+ break ;
107
+
108
+ case ID_INVIS :
109
+ UI_DrawString (320 , 400 , "Players with Invisibility powerup are completely" , UI_SMALLFONT |UI_CENTER , colorWhite );
110
+ UI_DrawString (320 , 420 , "invisible, instead of being almost invisible." , UI_SMALLFONT |UI_CENTER , colorWhite );
111
+ break ;
112
+
113
+ case ID_LIGHT_VOTING :
114
+ UI_DrawString (320 , 400 , "Makes voting easier to pass." , UI_SMALLFONT |UI_CENTER , colorWhite );
115
+ UI_DrawString (320 , 420 , "Abstensions less likely cause vote fail." , UI_SMALLFONT |UI_CENTER , colorWhite );
116
+ break ;
117
+
118
+ case ID_NO_SELF_DAMAGE :
119
+ UI_DrawString (320 , 400 , "Players get no damage from their own weapons." , UI_SMALLFONT |UI_CENTER , colorWhite );
120
+ UI_DrawString (320 , 420 , "Useful for rocket jump, plasma climb, etc." , UI_SMALLFONT |UI_CENTER , colorWhite );
121
+ break ;
122
+ }
123
+ }
124
+
125
+ /*
126
+ =================
127
+ DMFlags_DrawBitfield
128
+ =================
129
+ */
75
130
static void DMFlags_DrawBitfield ( void * self ) {
76
131
menufield_s * f ;
77
132
float * color ;
@@ -91,6 +146,11 @@ static void DMFlags_DrawBitfield( void *self ) {
91
146
UI_DrawString ( x + 48 , y , UI_Cvar_VariableString ( "dmflags" ), UI_SMALLFONT |UI_RIGHT , color );
92
147
}
93
148
149
+ /*
150
+ =================
151
+ DMflagsOptions_Event
152
+ =================
153
+ */
94
154
static void DMflagsOptions_Event ( void * ptr , int notification ) {
95
155
int bitfield ;
96
156
@@ -179,6 +239,11 @@ static void DMflagsOptions_Event( void* ptr, int notification ) {
179
239
}
180
240
}
181
241
242
+ /*
243
+ =================
244
+ DMflagsOptions_MenuInit
245
+ =================
246
+ */
182
247
static void DMflagsOptions_MenuInit ( void ) {
183
248
int bitfield ;
184
249
@@ -221,6 +286,7 @@ static void DMflagsOptions_MenuInit( void ) {
221
286
dmflagsOptions_s .noFalling .generic .id = ID_NO_FALLING ;
222
287
dmflagsOptions_s .noFalling .generic .x = DMFLAGS_X_POS ;
223
288
dmflagsOptions_s .noFalling .generic .y = 240 - 6.5 * (BIGCHAR_HEIGHT + 2 );
289
+ dmflagsOptions_s .noFalling .generic .statusbar = DMFlags_StatusBar ;
224
290
225
291
dmflagsOptions_s .fixedFOV .generic .type = MTYPE_RADIOBUTTON ;
226
292
dmflagsOptions_s .fixedFOV .generic .name = "Fixed FOV:" ;
@@ -229,6 +295,7 @@ static void DMflagsOptions_MenuInit( void ) {
229
295
dmflagsOptions_s .fixedFOV .generic .id = ID_FIXED_FOV ;
230
296
dmflagsOptions_s .fixedFOV .generic .x = DMFLAGS_X_POS ;
231
297
dmflagsOptions_s .fixedFOV .generic .y = 240 - 5.5 * (BIGCHAR_HEIGHT + 2 );
298
+ dmflagsOptions_s .fixedFOV .generic .statusbar = DMFlags_StatusBar ;
232
299
233
300
dmflagsOptions_s .noFootsteps .generic .type = MTYPE_RADIOBUTTON ;
234
301
dmflagsOptions_s .noFootsteps .generic .name = "No Footsteps:" ;
@@ -237,6 +304,7 @@ static void DMflagsOptions_MenuInit( void ) {
237
304
dmflagsOptions_s .noFootsteps .generic .id = ID_NO_FOOTSTEPS ;
238
305
dmflagsOptions_s .noFootsteps .generic .x = DMFLAGS_X_POS ;
239
306
dmflagsOptions_s .noFootsteps .generic .y = 240 - 4.5 * (BIGCHAR_HEIGHT + 2 );
307
+ dmflagsOptions_s .noFootsteps .generic .statusbar = DMFlags_StatusBar ;
240
308
241
309
dmflagsOptions_s .instantWeaponChange .generic .type = MTYPE_RADIOBUTTON ;
242
310
dmflagsOptions_s .instantWeaponChange .generic .name = "Instant Weapon Change:" ;
@@ -245,6 +313,7 @@ static void DMflagsOptions_MenuInit( void ) {
245
313
dmflagsOptions_s .instantWeaponChange .generic .id = ID_INSTANT_WEAPON_CHANGE ;
246
314
dmflagsOptions_s .instantWeaponChange .generic .x = DMFLAGS_X_POS ;
247
315
dmflagsOptions_s .instantWeaponChange .generic .y = 240 - 3.5 * (BIGCHAR_HEIGHT + 2 );
316
+ dmflagsOptions_s .instantWeaponChange .generic .statusbar = DMFlags_StatusBar ;
248
317
249
318
dmflagsOptions_s .noBunny .generic .type = MTYPE_RADIOBUTTON ;
250
319
dmflagsOptions_s .noBunny .generic .name = "No Strafe Jumping:" ;
@@ -253,6 +322,7 @@ static void DMflagsOptions_MenuInit( void ) {
253
322
dmflagsOptions_s .noBunny .generic .id = ID_NO_BUNNY ;
254
323
dmflagsOptions_s .noBunny .generic .x = DMFLAGS_X_POS ;
255
324
dmflagsOptions_s .noBunny .generic .y = 240 - 2.5 * (BIGCHAR_HEIGHT + 2 );
325
+ dmflagsOptions_s .noBunny .generic .statusbar = DMFlags_StatusBar ;
256
326
257
327
dmflagsOptions_s .invis .generic .type = MTYPE_RADIOBUTTON ;
258
328
dmflagsOptions_s .invis .generic .name = "Total Invisibility:" ;
@@ -261,6 +331,7 @@ static void DMflagsOptions_MenuInit( void ) {
261
331
dmflagsOptions_s .invis .generic .id = ID_INVIS ;
262
332
dmflagsOptions_s .invis .generic .x = DMFLAGS_X_POS ;
263
333
dmflagsOptions_s .invis .generic .y = 240 - 1.5 * (BIGCHAR_HEIGHT + 2 );
334
+ dmflagsOptions_s .invis .generic .statusbar = DMFlags_StatusBar ;
264
335
265
336
dmflagsOptions_s .lightVoting .generic .type = MTYPE_RADIOBUTTON ;
266
337
dmflagsOptions_s .lightVoting .generic .name = "Light Voting:" ;
@@ -269,6 +340,7 @@ static void DMflagsOptions_MenuInit( void ) {
269
340
dmflagsOptions_s .lightVoting .generic .id = ID_LIGHT_VOTING ;
270
341
dmflagsOptions_s .lightVoting .generic .x = DMFLAGS_X_POS ;
271
342
dmflagsOptions_s .lightVoting .generic .y = 240 - 0.5 * (BIGCHAR_HEIGHT + 2 );
343
+ dmflagsOptions_s .lightVoting .generic .statusbar = DMFlags_StatusBar ;
272
344
273
345
dmflagsOptions_s .noSelfDamage .generic .type = MTYPE_RADIOBUTTON ;
274
346
dmflagsOptions_s .noSelfDamage .generic .name = "No Self Damage from Weapons:" ;
@@ -277,6 +349,7 @@ static void DMflagsOptions_MenuInit( void ) {
277
349
dmflagsOptions_s .noSelfDamage .generic .id = ID_NO_SELF_DAMAGE ;
278
350
dmflagsOptions_s .noSelfDamage .generic .x = DMFLAGS_X_POS ;
279
351
dmflagsOptions_s .noSelfDamage .generic .y = 240 + 0.5 * (BIGCHAR_HEIGHT + 2 );
352
+ dmflagsOptions_s .noSelfDamage .generic .statusbar = DMFlags_StatusBar ;
280
353
281
354
dmflagsOptions_s .bitfield .generic .type = MTYPE_TEXT ;
282
355
dmflagsOptions_s .bitfield .generic .name = "DMFlags:" ;
0 commit comments