Skip to content

Commit 43e0623

Browse files
Bishop-333NeonKnightOA
authored and
NeonKnightOA
committed
mouseover hints
1 parent 9963ffa commit 43e0623

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

code/q3_ui/ui_dmflags.c

+73
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,61 @@ typedef struct {
7272

7373
static dmflagsOptions_t dmflagsOptions_s;
7474

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+
*/
75130
static void DMFlags_DrawBitfield( void *self ) {
76131
menufield_s *f;
77132
float *color;
@@ -91,6 +146,11 @@ static void DMFlags_DrawBitfield( void *self ) {
91146
UI_DrawString( x + 48, y, UI_Cvar_VariableString( "dmflags" ), UI_SMALLFONT|UI_RIGHT, color );
92147
}
93148

149+
/*
150+
=================
151+
DMflagsOptions_Event
152+
=================
153+
*/
94154
static void DMflagsOptions_Event( void* ptr, int notification ) {
95155
int bitfield;
96156

@@ -179,6 +239,11 @@ static void DMflagsOptions_Event( void* ptr, int notification ) {
179239
}
180240
}
181241

242+
/*
243+
=================
244+
DMflagsOptions_MenuInit
245+
=================
246+
*/
182247
static void DMflagsOptions_MenuInit( void ) {
183248
int bitfield;
184249

@@ -221,6 +286,7 @@ static void DMflagsOptions_MenuInit( void ) {
221286
dmflagsOptions_s.noFalling.generic.id = ID_NO_FALLING;
222287
dmflagsOptions_s.noFalling.generic.x = DMFLAGS_X_POS;
223288
dmflagsOptions_s.noFalling.generic.y = 240 - 6.5 * (BIGCHAR_HEIGHT+2);
289+
dmflagsOptions_s.noFalling.generic.statusbar = DMFlags_StatusBar;
224290

225291
dmflagsOptions_s.fixedFOV.generic.type = MTYPE_RADIOBUTTON;
226292
dmflagsOptions_s.fixedFOV.generic.name = "Fixed FOV:";
@@ -229,6 +295,7 @@ static void DMflagsOptions_MenuInit( void ) {
229295
dmflagsOptions_s.fixedFOV.generic.id = ID_FIXED_FOV;
230296
dmflagsOptions_s.fixedFOV.generic.x = DMFLAGS_X_POS;
231297
dmflagsOptions_s.fixedFOV.generic.y = 240 - 5.5 * (BIGCHAR_HEIGHT+2);
298+
dmflagsOptions_s.fixedFOV.generic.statusbar = DMFlags_StatusBar;
232299

233300
dmflagsOptions_s.noFootsteps.generic.type = MTYPE_RADIOBUTTON;
234301
dmflagsOptions_s.noFootsteps.generic.name = "No Footsteps:";
@@ -237,6 +304,7 @@ static void DMflagsOptions_MenuInit( void ) {
237304
dmflagsOptions_s.noFootsteps.generic.id = ID_NO_FOOTSTEPS;
238305
dmflagsOptions_s.noFootsteps.generic.x = DMFLAGS_X_POS;
239306
dmflagsOptions_s.noFootsteps.generic.y = 240 - 4.5 * (BIGCHAR_HEIGHT+2);
307+
dmflagsOptions_s.noFootsteps.generic.statusbar = DMFlags_StatusBar;
240308

241309
dmflagsOptions_s.instantWeaponChange.generic.type = MTYPE_RADIOBUTTON;
242310
dmflagsOptions_s.instantWeaponChange.generic.name = "Instant Weapon Change:";
@@ -245,6 +313,7 @@ static void DMflagsOptions_MenuInit( void ) {
245313
dmflagsOptions_s.instantWeaponChange.generic.id = ID_INSTANT_WEAPON_CHANGE;
246314
dmflagsOptions_s.instantWeaponChange.generic.x = DMFLAGS_X_POS;
247315
dmflagsOptions_s.instantWeaponChange.generic.y = 240 - 3.5 * (BIGCHAR_HEIGHT+2);
316+
dmflagsOptions_s.instantWeaponChange.generic.statusbar = DMFlags_StatusBar;
248317

249318
dmflagsOptions_s.noBunny.generic.type = MTYPE_RADIOBUTTON;
250319
dmflagsOptions_s.noBunny.generic.name = "No Strafe Jumping:";
@@ -253,6 +322,7 @@ static void DMflagsOptions_MenuInit( void ) {
253322
dmflagsOptions_s.noBunny.generic.id = ID_NO_BUNNY;
254323
dmflagsOptions_s.noBunny.generic.x = DMFLAGS_X_POS;
255324
dmflagsOptions_s.noBunny.generic.y = 240 - 2.5 * (BIGCHAR_HEIGHT+2);
325+
dmflagsOptions_s.noBunny.generic.statusbar = DMFlags_StatusBar;
256326

257327
dmflagsOptions_s.invis.generic.type = MTYPE_RADIOBUTTON;
258328
dmflagsOptions_s.invis.generic.name = "Total Invisibility:";
@@ -261,6 +331,7 @@ static void DMflagsOptions_MenuInit( void ) {
261331
dmflagsOptions_s.invis.generic.id = ID_INVIS;
262332
dmflagsOptions_s.invis.generic.x = DMFLAGS_X_POS;
263333
dmflagsOptions_s.invis.generic.y = 240 - 1.5 * (BIGCHAR_HEIGHT+2);
334+
dmflagsOptions_s.invis.generic.statusbar = DMFlags_StatusBar;
264335

265336
dmflagsOptions_s.lightVoting.generic.type = MTYPE_RADIOBUTTON;
266337
dmflagsOptions_s.lightVoting.generic.name = "Light Voting:";
@@ -269,6 +340,7 @@ static void DMflagsOptions_MenuInit( void ) {
269340
dmflagsOptions_s.lightVoting.generic.id = ID_LIGHT_VOTING;
270341
dmflagsOptions_s.lightVoting.generic.x = DMFLAGS_X_POS;
271342
dmflagsOptions_s.lightVoting.generic.y = 240 - 0.5 * (BIGCHAR_HEIGHT+2);
343+
dmflagsOptions_s.lightVoting.generic.statusbar = DMFlags_StatusBar;
272344

273345
dmflagsOptions_s.noSelfDamage.generic.type = MTYPE_RADIOBUTTON;
274346
dmflagsOptions_s.noSelfDamage.generic.name = "No Self Damage from Weapons:";
@@ -277,6 +349,7 @@ static void DMflagsOptions_MenuInit( void ) {
277349
dmflagsOptions_s.noSelfDamage.generic.id = ID_NO_SELF_DAMAGE;
278350
dmflagsOptions_s.noSelfDamage.generic.x = DMFLAGS_X_POS;
279351
dmflagsOptions_s.noSelfDamage.generic.y = 240 + 0.5 * (BIGCHAR_HEIGHT+2);
352+
dmflagsOptions_s.noSelfDamage.generic.statusbar = DMFlags_StatusBar;
280353

281354
dmflagsOptions_s.bitfield.generic.type = MTYPE_TEXT;
282355
dmflagsOptions_s.bitfield.generic.name = "DMFlags:";

0 commit comments

Comments
 (0)