EVENT NEWGAMECUSTOM: Difference between revisions
Doom64hunter (talk | contribs) mNo edit summary |
Doom64hunter (talk | contribs) mNo edit summary |
||
Line 1: | Line 1: | ||
{{EventTable|1=EVENT_NEWGAMECUSTOM|2=Current Player|3=none|4=yes (1-2 values)}} | |||
EVENT_NEWGAMECUSTOM is a [[EDuke32 event list|Menu Event]]. | EVENT_NEWGAMECUSTOM is a [[EDuke32 event list|Menu Event]]. | ||
Revision as of 07:46, 5 August 2021
Event ID | player# | THISACTOR | RETURN | |
---|---|---|---|---|
EVENT_NEWGAMECUSTOM | Current Player | none | yes (1-2 values) |
EVENT_NEWGAMECUSTOM is a Menu Event.
This event is fired when a menu entry is selected in the MENU_NEWGAMECUSTOM and MENU_NEWGAMECUSTOMSUB menus, as defined through DEF, see newgamechoices.
It serves to define the logic using which the player is sent to the proper volume and level upon selecting a menu entry. The indices of the selected menu entries are stored in the userdef.return array. The RETURN variable, i.e. the entry at index 0 corresponds to the choice in the top-layer menu, while the entry at index 1 corresponds to the submenu choice. If no submenu is defined, return[1] is set to -1 instead. If a submenu exists, return[2] will be set to -1.
Example: The following example corresponds to the example given in Newgamechoices_(DEF) and defines the logic to send the player to the proper level.
appendevent EVENT_NEWGAMECUSTOM ife userdef.return 1 -1 // Case: no submenu { switch userdef.return 0 case 1 setu[].m_volume_number 1 break // Lunar Apocalypse case 2 setu[].m_volume_number 2 break // Shrapnel City case 3 setu[].m_volume_number 3 break // The Birth default setu[].m_volume_number 0 break endswitch setu[].m_level_number 0 } else ife userdef.return 0 0 // Case: submenu at position 0 (L.A. Meltdown) { setu[].m_volume_number 0 switch userdef.return 1 case 0 setu[].m_level_number 0 break // Hollywood Holocaust case 1 setu[].m_level_number 1 break // Red Light District case 2 setu[].m_level_number 2 break // Death Row case 3 setu[].m_level_number 3 break // Toxic Dump case 4 setu[].m_level_number 4 break // The Abyss default setu[].m_level_number 0 break endswitch } endevent