EVENT CHANGEMENU

From EDukeWiki
Jump to navigation Jump to search

EVENT_CHANGEMENU is a game event.

This event functions similarly to the cmenu command--in fact, it happens while that command is being processed. It is primarily useful in specfic circumstances where you want to skip a menu/screen value, but the design of the source code would cause the screen to be displayed before you could use cmenu in EVENT_DISPLAYMENU, causing the unwanted screen to flash for a split second.

In the event, RETURN is set to the ID number for which a menu change was requested, from any source (the source code, CON, or the console). Changing the value of RETURN will cause your new value to be selected instead, see below.

During the event's execution, current_menu has not yet been changed.

You should never use a blanket setvar RETURN -1 in this event without any ifvar conditions as that will freeze all menus.

The following example cuts out two of the three Duke 3D v1.5 credits screens. After the first one, the panel order will go directly to the EDuke32 port credits.

onevent EVENT_CHANGEMENU
    ifvare RETURN 991 // going forwards
        setvar RETURN 993
    ifvare RETURN 992 // going backwards
        setvar RETURN 990
endevent

Do not use the cmenu command within this event, as it causes unnecessary recursion and probably won't do what you want.

Remember that working around, hiding, or skipping the EDuke32 port credits (current_menu values 993 and 994) is a violation of the EDuke32 license.

Values

The following values are used with current_menu, cmenu, EVENT_CHANGEMENU and EVENT_DISPLAYMENU.

Exposed Value Name Description / Notes
No -2147483648 MENU_NULL Do nothing
No -2 MENU_CLOSE Close the menu
No -1 MENU_PREVIOUS Go to previous menu
No 0 MENU_MAIN Base menu accessed when not in an active game.
No 50 MENU_MAIN_INGAME Differs from the above by displaying "Save Game" and "Quit to Title" options.
No 100 MENU_EPISODE Normally accessed when selecting the "New Game" option if newgamechoices are NOT defined.
No 101 MENU_USERMAP -
No 102 MENU_NEWGAMECUSTOM Normally accessed when selecting the "New Game" option if newgamechoices ARE defined.
No 103 MENU_NEWGAMECUSTOMSUB Normally reached if submenu choices are defined for the selected newgamechoices entry.
No 110 MENU_SKILL -
No 200 MENU_GAMESETUP Has no menu entry in Retail builds. (e.g. the build included for Ion Fury)
No 202 MENU_OPTIONS -
No 203 MENU_VIDEOSETUP -
No 204 MENU_KEYBOARDSETUP -
No 205 MENU_MOUSESETUP -
No 206 MENU_JOYSTICKSETUP Corresponding menu entry is called "Gamepad Setup".
No 207 MENU_JOYSTICKBTNS Only reachable if a gamepad or joystick is available.
No 208 MENU_JOYSTICKAXES Only reachable if a gamepad or joystick is available.
No 209 MENU_KEYBOARDKEYS -
No 210 MENU_MOUSEBTNS -
No 212 MENU_MOUSEADVANCED -
No 213 MENU_JOYSTICKAXIS Normally accessed over MENU_JOYSTICKAXES.
No 214 MENU_TOUCHSETUP Android builds only.
No 215 MENU_TOUCHSENS Android builds only.
No 216 MENU_TOUCHBUTTONS Android builds only.
No 220 MENU_CONTROLS Parent menu for keyboard, mouse and gamepad controls.
No 230 MENU_POLYMOST Normally only accessible from the Display menu when Polymost is active.
No 231 MENU_COLCORR -
No 232 MENU_COLCORR_INGAME Only accessed when pressing the F11 key ingame. Closes the menu on ESC. Otherwise equivalent to the above.
No 233 MENU_SCREENSETUP Corresponding menu entry is called "HUD Setup".
No 234 MENU_DISPLAYSETUP -
No 240 MENU_POLYMER Normally only accessible from the Display menu when Polymer is active.
No 300 MENU_LOAD -
No 350 MENU_SAVE -
No 400 MENU_STORY Normally accessible over the "Help" menu entry.
No 401 MENU_F1HELP Default controls info screen, reachable from MENU_STORY. Not actually accessed when F1 is pressed, instead MENU_STORY is reached.
No 500 MENU_QUIT -
No 501 MENU_QUITTOTITLE Corresponding menu entry only displayed when inside an active game.
No 502 MENU_QUIT_INGAME Normally accessed when pressing F10 ingame. Closes the menu when exited out of. Otherwise equivalent to MENU_QUIT.
No 600 MENU_NETSETUP Netgames only.
No 601 MENU_NETWAITMASTER Netgames only.
No 603 MENU_NETWAITVOTES Netgames only.
No 700 MENU_SOUND -
No 701 MENU_SOUND_INGAME Normally accessed when pressing F4 ingame. Closes the menu when exited out of. Otherwise equivalent to MENU_SOUND.
No 702 MENU_ADVSOUND -
No 750 MENU_SAVESETUP Normally only accessible for Retail builds. (e.g. the build included for Ion Fury)
No 751 MENU_SAVECLEANVERIFY Normally only accessible for Retail builds.
No 752 MENU_RESETSTATSVERIFY Resets achievements. Normally only accessible for Retail builds with a connection to the Steam servers.
No 800 MENU_CHEATS Cheat unlock menu. Once an ingame cheat is typed in, will display it as a menu option here.
No 801 MENU_CHEATENTRY Entry field to type cheats in.
No 802 MENU_CHEAT_WARP Reached through the "warp" option in the cheat menu, which is unlocked after the "DNSCOTTY###" cheat has been entered for the first time.
No 803 MENU_CHEAT_SKILL Reached through the "skill level" option in the cheat menu, which is unlocked after the "DNSKILL#" cheat has been entered for the first time.
No 990 MENU_CREDITS Plutonium Pack credits.
No 991 MENU_CREDITS2 v1.3d credits.
No 992 MENU_CREDITS3 Special Thanks page.
No 993 MENU_CREDITS4 eduke32 credits. Working around, hiding, or skipping this is a violation of the EDuke32 license.
No 994 MENU_CREDITS5 eduke32 credits. Working around, hiding, or skipping this is a violation of the EDuke32 license.
No 1000 MENU_LOADVERIFY -
No 1100 MENU_LOADDELVERIFY Accessed when deleting saves from the "load" menu. Functionally equivalent to MENU_SAVEDELVERIFY.
No 1500 MENU_NEWVERIFY Accessed when selecting "New Game" while in an active game.
No 2000 MENU_SAVEVERIFY -
No 2100 MENU_SAVEDELVERIFY Accessed when deleting saves from the "save" menu. Functionally equivalent to MENU_LOADDELVERIFY.
No 2200 MENU_COLCORRRESETVERIFY -
No 2201 MENU_KEYSRESETVERIFY -
No 2202 MENU_KEYSCLASSICVERIFY -
No 2203 MENU_JOYSTANDARDVERIFY Reached when selecting the "standard" gamepad default controls.
No 2204 MENU_JOYPROVERIFY Reached when selecting the "pro" gamepad default controls.
No 2205 MENU_JOYCLEARVERIFY -
No 10001 MENU_ADULTPASSWORD -
No 15000 MENU_RESETPLAYER Screen normally only reached after pressing the 'use' key while dead. Prompts you to reload the latest savegame. Will crash if no current save available.
No 20000 MENU_BUYDUKE Screen normally only reached when trying to play episode 2 or 3 using the Shareware version of Duke 3D.
No 20001 MENU_NETWORK Netgames only.
No 20002 MENU_PLAYER -
No 20004 MENU_MACROS -
No 20010 MENU_NETHOST Netgames only.
No 20011 MENU_NETOPTIONS Netgames only.
No 20012 MENU_NETUSERMAP Netgames only.
No 20020 MENU_NETJOIN Netgames only.
Defines
define MENU_NULL                        -2147483648
define MENU_CLOSE                       -2
define MENU_PREVIOUS                    -1
define MENU_MAIN                        0
define MENU_MAIN_INGAME                 50
define MENU_EPISODE                     100
define MENU_USERMAP                     101
define MENU_NEWGAMECUSTOM               102
define MENU_NEWGAMECUSTOMSUB            103
define MENU_SKILL                       110
define MENU_GAMESETUP                   200
define MENU_OPTIONS                     202
define MENU_VIDEOSETUP                  203
define MENU_KEYBOARDSETUP               204
define MENU_MOUSESETUP                  205
define MENU_JOYSTICKSETUP               206
define MENU_JOYSTICKBTNS                207
define MENU_JOYSTICKAXES                208
define MENU_KEYBOARDKEYS                209
define MENU_MOUSEBTNS                   210
define MENU_MOUSEADVANCED               212
define MENU_JOYSTICKAXIS                213
define MENU_TOUCHSETUP                  214
define MENU_TOUCHSENS                   215
define MENU_TOUCHBUTTONS                216
define MENU_CONTROLS                    220
define MENU_POLYMOST                    230
define MENU_COLCORR                     231
define MENU_COLCORR_INGAME              232
define MENU_SCREENSETUP                 233
define MENU_DISPLAYSETUP                234
define MENU_POLYMER                     240
define MENU_LOAD                        300
define MENU_SAVE                        350
define MENU_STORY                       400
define MENU_F1HELP                      401
define MENU_QUIT                        500
define MENU_QUITTOTITLE                 501
define MENU_QUIT_INGAME                 502
define MENU_NETSETUP                    600
define MENU_NETWAITMASTER               601
define MENU_NETWAITVOTES                603
define MENU_SOUND                       700
define MENU_SOUND_INGAME                701
define MENU_ADVSOUND                    702
define MENU_SAVESETUP                   750
define MENU_SAVECLEANVERIFY             751
define MENU_RESETSTATSVERIFY            752
define MENU_CHEATS                      800
define MENU_CHEATENTRY                  801
define MENU_CHEAT_WARP                  802
define MENU_CHEAT_SKILL                 803
define MENU_CREDITS                     990
define MENU_CREDITS2                    991
define MENU_CREDITS3                    992
define MENU_CREDITS4                    993
define MENU_CREDITS5                    994
define MENU_LOADVERIFY                  1000
define MENU_LOADDELVERIFY               1100
define MENU_NEWVERIFY                   1500
define MENU_SAVEVERIFY                  2000
define MENU_SAVEDELVERIFY               2100
define MENU_COLCORRRESETVERIFY          2200
define MENU_KEYSRESETVERIFY             2201
define MENU_KEYSCLASSICVERIFY           2202
define MENU_JOYSTANDARDVERIFY           2203
define MENU_JOYPROVERIFY                2204
define MENU_JOYCLEARVERIFY              2205
define MENU_ADULTPASSWORD               10001
define MENU_RESETPLAYER                 15000
define MENU_BUYDUKE                     20000
define MENU_NETWORK                     20001
define MENU_PLAYER                      20002
define MENU_MACROS                      20004
define MENU_NETHOST                     20010
define MENU_NETOPTIONS                  20011
define MENU_NETUSERMAP                  20012
define MENU_NETJOIN                     20020