Seperated help screens for game, netgame and demo; Also show them in Controls menu; Small Menu UI fix for ScrollOffset when calling menus in a scrolled area of a menu

This commit is contained in:
zicodxx 2008-12-13 12:58:57 +00:00
parent 0a7a505912
commit 828d753668
5 changed files with 74 additions and 30 deletions

View file

@ -3,6 +3,7 @@ D1X-Rebirth Changelog
20081213
--------
main/network.c: Fix short_frameinfo sending code for big endian processors
main/game.c, main/game.h, main/menu.c: Seperated help screens for game, netgame and demo; Also show them in Controls menu; Small Menu UI fix for ScrollOffset when calling menus in a scrolled area of a menu
20081212
--------

View file

@ -1343,10 +1343,11 @@ int do_game_pause()
void show_help()
{
int nitems = 0;
newmenu_item m[28];
newmenu_item m[25];
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = TXT_HELP_ESC;
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "SHIFT-ESC\t SHOW GAME LOG";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "F1\t THIS SCREEN";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = TXT_HELP_F2;
#if !(defined(__APPLE__) || defined(macintosh))
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "Alt-F2/F3\t SAVE/LOAD GAME";
@ -1373,13 +1374,6 @@ void show_help()
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "\x85-Up/Down\t Play/Pause " EXT_MUSIC_TEXT;
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "\x85-Left/Right\t Previous/Next Song";
#endif
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "MULTIPLAYER:";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "ALT-F4\t SHOW RETICLE NAMES";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "F7\t TOGGLE KILL LIST";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "F8\t SEND MESSAGE";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "(SHIFT-)F8 to F12\t (DEFINE)SEND MACRO";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "PAUSE\t SHOW NETGAME INFORMATION";
#if (defined(__APPLE__) || defined(macintosh))
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "(Use \x85-# for F#. e.g. \x85-1 for F1)";
@ -1387,28 +1381,54 @@ void show_help()
newmenu_dotiny( NULL, TXT_KEYS, nitems, m, NULL );
}
void show_netgame_help()
{
int nitems = 0;
newmenu_item m[12];
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "F1\t THIS SCREEN";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "ALT-F4\t SHOW RETICLE NAMES";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "F7\t TOGGLE KILL LIST";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "F8\t SEND MESSAGE";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "(SHIFT-)F8 to F12\t (DEFINE)SEND MACRO";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "PAUSE\t SHOW NETGAME INFORMATION";
#if (defined(__APPLE__) || defined(macintosh))
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "(Use \x85-# for F#. e.g. \x85-1 for F1)";
#endif
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "MULTIPLAYER MESSAGE COMMANDS:";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "kick: (*)\t KICK PLAYER (*) FROM GAME (Host-only)";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "KillReactor\t BLOW UP THE MINE (Host-only)";
newmenu_dotiny( NULL, TXT_KEYS, nitems, m, NULL );
}
void show_newdemo_help()
{
newmenu_item m[14];
int mc = 0;
newmenu_item m[15];
int nitems = 0;
m[mc].type = NM_TYPE_TEXT; m[mc].text = "ESC\t QUIT DEMO PLAYBACK"; mc++;
m[mc].type = NM_TYPE_TEXT; m[mc].text = TXT_HELP_F2; mc++;
m[mc].type = NM_TYPE_TEXT; m[mc].text = "F3\t SWITCH COCKPIT MODES"; mc++;
m[mc].type = NM_TYPE_TEXT; m[mc].text = "F4\t TOGGLE PERCENTAGE DISPLAY"; mc++;
m[mc].type = NM_TYPE_TEXT; m[mc].text = "UP\t PLAY"; mc++;
m[mc].type = NM_TYPE_TEXT; m[mc].text = "DOWN\t PAUSE"; mc++;
m[mc].type = NM_TYPE_TEXT; m[mc].text = "RIGHT\t ONE FRAME FORWARD"; mc++;
m[mc].type = NM_TYPE_TEXT; m[mc].text = "LEFT\t ONE FRAME BACKWARD"; mc++;
m[mc].type = NM_TYPE_TEXT; m[mc].text = "SHIFT-RIGHT\t FAST FORWARD"; mc++;
m[mc].type = NM_TYPE_TEXT; m[mc].text = "SHIFT-LEFT\t FAST BACKWARD"; mc++;
m[mc].type = NM_TYPE_TEXT; m[mc].text = "CTRL-RIGHT\t JUMP TO END"; mc++;
m[mc].type = NM_TYPE_TEXT; m[mc].text = "CTRL-LEFT\t JUMP TO START"; mc++;
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "ESC\t QUIT DEMO PLAYBACK";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "F1\t THIS SCREEN";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = TXT_HELP_F2;
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "F3\t SWITCH COCKPIT MODES";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "F4\t TOGGLE PERCENTAGE DISPLAY";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "UP\t PLAY";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "DOWN\t PAUSE";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "RIGHT\t ONE FRAME FORWARD";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "LEFT\t ONE FRAME BACKWARD";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "SHIFT-RIGHT\t FAST FORWARD";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "SHIFT-LEFT\t FAST BACKWARD";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "CTRL-RIGHT\t JUMP TO END";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "CTRL-LEFT\t JUMP TO START";
#if (defined(__APPLE__) || defined(macintosh))
m[mc].type = NM_TYPE_TEXT; m[mc].text = ""; mc++;
m[mc].type = NM_TYPE_TEXT; m[mc].text = "(Use \x85-# for F#. e.g. \x85-1 for F1)"; mc++;
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "(Use \x85-# for F#. e.g. \x85-1 for F1)";
#endif
newmenu_dotiny( NULL, "DEMO PLAYBACK CONTROLS", mc, m, NULL );
newmenu_dotiny( NULL, "DEMO PLAYBACK CONTROLS", nitems, m, NULL );
}
//temp function until Matt cleans up game sequencing
@ -2159,7 +2179,7 @@ void HandleGameKey(int key)
}
break;
MAC(case KEY_COMMAND+KEY_1:)
case KEY_F1: show_help(); break;
case KEY_F1: if (Game_mode & GM_MULTI) show_netgame_help(); else show_help(); break;
MAC(case KEY_COMMAND+KEY_2:)
case KEY_F2: Config_menu_flag = 1; break;
MAC(case KEY_COMMAND+KEY_3:)

View file

@ -198,7 +198,9 @@ void reset_palette_add (void);
void palette_restore (void);
//put up the help message
void show_help ();
void show_help();
void show_netgame_help();
void show_newdemo_help();
//show a message in a nice little box
void show_boxed_message (char *msg, int RenderFlag);

View file

@ -577,9 +577,9 @@ void input_menuset(int nitems, newmenu_item * items, int *last_key, int citem )
void input_config()
{
newmenu_item m[17];
newmenu_item m[21];
int i, i1 = 5, j;
int nitems = 17;
int nitems = 21;
m[0].type = NM_TYPE_RADIO; m[0].text = "KEYBOARD"; m[0].value = 0; m[0].group = 0;
m[1].type = NM_TYPE_RADIO; m[1].text = "JOYSTICK"; m[1].value = 0; m[1].group = 0;
@ -598,6 +598,10 @@ void input_config()
m[14].type = NM_TYPE_TEXT; m[14].text = "Mouse";
m[15].type = NM_TYPE_SLIDER; m[15].text="X Sensitivity"; m[15].value=PlayerCfg.MouseSensitivityX; m[15].min_value = 0; m[15].max_value = 16;
m[16].type = NM_TYPE_SLIDER; m[16].text="Y Sensitivity"; m[16].value=PlayerCfg.MouseSensitivityY; m[16].min_value = 0; m[16].max_value = 16;
m[17].type = NM_TYPE_TEXT; m[17].text = "";
m[18].type = NM_TYPE_MENU; m[18].text = "GAME SYSTEM KEYS";
m[19].type = NM_TYPE_MENU; m[19].text = "NETGAME SYSTEM KEYS";
m[20].type = NM_TYPE_MENU; m[20].text = "DEMO SYSTEM KEYS";
do {
@ -634,6 +638,15 @@ void input_config()
case 7:
kconfig(4, "WEAPON KEYS");
break;
case 18:
show_help();
break;
case 19:
show_netgame_help();
break;
case 20:
show_newdemo_help();
break;
}
} while (i1>-1);

View file

@ -664,6 +664,14 @@ int newmenu_do3_real( char * title, char * subtitle, int nitems, newmenu_item *
IsScrollBox=1;
h=((MaxOnMenu+(subtitle?1:0))*LINE_SPACING);
MaxDisplayable=MaxOnMenu;
// if our last citem was > MaxOnMenu, make sure we re-scroll when we call this menu again
if (citem > MaxOnMenu-4)
{
ScrollOffset = citem - (MaxOnMenu-4);
if (ScrollOffset + MaxOnMenu > nitems)
ScrollOffset = nitems - MaxOnMenu;
}
}
else
{