Gametype descriptions.

https://gfycat.com/RelievedUnselfishChinchilla (competition's desc is slightly reworded but I'm too lazy to retake the gfy)
This commit is contained in:
toasterbabe 2017-02-18 17:09:03 +00:00
parent 2f9db4486a
commit cf45067d9c
2 changed files with 32 additions and 3 deletions

View File

@ -608,6 +608,18 @@ static menuitem_t MISC_ChangeGameTypeMenu[] =
{IT_STRING|IT_CALL, NULL, "Capture the Flag", M_MapChange, 72}, {IT_STRING|IT_CALL, NULL, "Capture the Flag", M_MapChange, 72},
}; };
static const gtdesc_t gametypedesc[] =
{
{"Play through the single-player campaign with your friends, teaming up to beat Dr Eggman's nefarious challenges!"},
{"Speed your way through the main acts, competing to get as much stuff as possible in the fastest time to see who's the best."},
{"There's not much to it - zoom through the level faster than everyone else."},
{"Sling rings at your foes in a free-for-all battle. Use the special weapon rings to your advantage!"},
{"Sling rings at your foes in a color-coded battle. Use the special weapon rings to your advantage!"},
{"Whoever's IT has to hunt down everyone else. If you get caught, you have to turn on your former friends!"},
{"Try and find a good hiding place in these maps - we dare you."},
{"Steal the flag from the enemy's base and bring it back to your own, but watch out - they could just as easily steal yours!"},
};
static menuitem_t MISC_ChangeLevelMenu[] = static menuitem_t MISC_ChangeLevelMenu[] =
{ {
{IT_KEYHANDLER | IT_NOTHING, NULL, "", M_HandleLevelPlatter, 0}, // dummy menuitem for the control func {IT_KEYHANDLER | IT_NOTHING, NULL, "", M_HandleLevelPlatter, 0}, // dummy menuitem for the control func
@ -1465,7 +1477,7 @@ menu_t MISC_ChangeGameTypeDef =
&MainDef, // Doesn't matter. &MainDef, // Doesn't matter.
MISC_ChangeGameTypeMenu, MISC_ChangeGameTypeMenu,
M_DrawGameTypeMenu, M_DrawGameTypeMenu,
30, 104 - ((80 - lsheadingheight/2)/2), // vertically centering 30, (200 - (72+8))/2, // vertically centering
0, 0,
NULL NULL
}; };
@ -2444,7 +2456,8 @@ boolean M_Responder(event_t *ev)
case KEY_DOWNARROW: case KEY_DOWNARROW:
M_NextOpt(); M_NextOpt();
S_StartSound(NULL, sfx_menu1); S_StartSound(NULL, sfx_menu1);
if (currentMenu == &SP_PlayerDef) if (currentMenu == &SP_PlayerDef
|| currentMenu == &MISC_ChangeGameTypeDef)
{ {
Z_Free(char_notes); Z_Free(char_notes);
char_notes = NULL; char_notes = NULL;
@ -2454,7 +2467,8 @@ boolean M_Responder(event_t *ev)
case KEY_UPARROW: case KEY_UPARROW:
M_PrevOpt(); M_PrevOpt();
S_StartSound(NULL, sfx_menu1); S_StartSound(NULL, sfx_menu1);
if (currentMenu == &SP_PlayerDef) if (currentMenu == &SP_PlayerDef
|| currentMenu == &MISC_ChangeGameTypeDef)
{ {
Z_Free(char_notes); Z_Free(char_notes);
char_notes = NULL; char_notes = NULL;
@ -6887,12 +6901,21 @@ static void M_GameTypeChange(INT32 choice)
M_SetupNextMenu(&MISC_ChangeGameTypeDef); M_SetupNextMenu(&MISC_ChangeGameTypeDef);
if (Playing()) if (Playing())
itemOn = gametype; itemOn = gametype;
Z_Free(char_notes);
char_notes = NULL;
} }
void M_DrawGameTypeMenu(void) void M_DrawGameTypeMenu(void)
{ {
M_DrawGenericMenu(); M_DrawGenericMenu();
M_DrawLevelPlatterHeader(currentMenu->y - lsheadingheight, "Select Gametype", true); M_DrawLevelPlatterHeader(currentMenu->y - lsheadingheight, "Select Gametype", true);
if (!char_notes)
char_notes = V_WordWrap(0, (160 - 30) - 8, V_ALLOWLOWERCASE, gametypedesc[itemOn].notes);
V_DrawFill(160, currentMenu->y, (160 - 30), 72 + 8, 159);
V_DrawString(164, currentMenu->y + 4, V_RETURN8|V_ALLOWLOWERCASE, char_notes);
} }
static void M_MapChange(INT32 choice) static void M_MapChange(INT32 choice)

View File

@ -198,6 +198,12 @@ typedef struct
} levelselect_t; } levelselect_t;
// experimental level select end // experimental level select end
// descriptions for gametype select screen
typedef struct
{
char notes[441];
} gtdesc_t;
// mode descriptions for video mode menu // mode descriptions for video mode menu
typedef struct typedef struct
{ {