mirror of
https://github.com/fabiangreffrath/woof.git
synced 2025-09-26 22:44:30 -04:00
save the setup menu's itemon value in the S_END element's x coordinate (#329)
This commit is contained in:
parent
f8c4863dd4
commit
324d6fd271
@ -1675,6 +1675,36 @@ boolean set_compat_active = false;
|
||||
static int set_menu_itemon; // which setup item is selected? // phares 3/98
|
||||
setup_menu_t* current_setup_menu; // points to current setup menu table
|
||||
|
||||
// [FG] save the setup menu's itemon value in the S_END element's x coordinate
|
||||
|
||||
static int M_GetSetupMenuItemOn (void)
|
||||
{
|
||||
const setup_menu_t* menu = current_setup_menu;
|
||||
|
||||
if (menu)
|
||||
{
|
||||
while (!(menu->m_flags & S_END))
|
||||
menu++;
|
||||
|
||||
return menu->m_x;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void M_SetSetupMenuItemOn (const int x)
|
||||
{
|
||||
setup_menu_t* menu = current_setup_menu;
|
||||
|
||||
if (menu)
|
||||
{
|
||||
while (!(menu->m_flags & S_END))
|
||||
menu++;
|
||||
|
||||
menu->m_x = x;
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////
|
||||
//
|
||||
// The menu_buffer is used to construct strings for display on the screen.
|
||||
@ -2867,7 +2897,7 @@ void M_KeyBindings(int choice)
|
||||
setup_gather = false;
|
||||
mult_screens_index = 0;
|
||||
current_setup_menu = keys_settings[0];
|
||||
set_menu_itemon = 0;
|
||||
set_menu_itemon = M_GetSetupMenuItemOn();
|
||||
while (current_setup_menu[set_menu_itemon++].m_flags & S_SKIP);
|
||||
current_setup_menu[--set_menu_itemon].m_flags |= S_HILITE;
|
||||
}
|
||||
@ -2993,7 +3023,7 @@ void M_Weapons(int choice)
|
||||
setup_gather = false;
|
||||
mult_screens_index = 0;
|
||||
current_setup_menu = weap_settings[0];
|
||||
set_menu_itemon = 0;
|
||||
set_menu_itemon = M_GetSetupMenuItemOn();
|
||||
while (current_setup_menu[set_menu_itemon++].m_flags & S_SKIP);
|
||||
current_setup_menu[--set_menu_itemon].m_flags |= S_HILITE;
|
||||
}
|
||||
@ -3080,7 +3110,7 @@ void M_StatusBar(int choice)
|
||||
setup_gather = false;
|
||||
mult_screens_index = 0;
|
||||
current_setup_menu = stat_settings[0];
|
||||
set_menu_itemon = 0;
|
||||
set_menu_itemon = M_GetSetupMenuItemOn();
|
||||
while (current_setup_menu[set_menu_itemon++].m_flags & S_SKIP);
|
||||
current_setup_menu[--set_menu_itemon].m_flags |= S_HILITE;
|
||||
}
|
||||
@ -3212,9 +3242,9 @@ void M_Automap(int choice)
|
||||
colorbox_active = false;
|
||||
default_verify = false;
|
||||
setup_gather = false;
|
||||
set_menu_itemon = 0;
|
||||
mult_screens_index = 0;
|
||||
current_setup_menu = auto_settings[0];
|
||||
set_menu_itemon = M_GetSetupMenuItemOn();
|
||||
while (current_setup_menu[set_menu_itemon++].m_flags & S_SKIP);
|
||||
current_setup_menu[--set_menu_itemon].m_flags |= S_HILITE;
|
||||
}
|
||||
@ -3387,7 +3417,7 @@ void M_Enemy(int choice)
|
||||
setup_gather = false;
|
||||
mult_screens_index = 0;
|
||||
current_setup_menu = enem_settings[0];
|
||||
set_menu_itemon = 0;
|
||||
set_menu_itemon = M_GetSetupMenuItemOn();
|
||||
while (current_setup_menu[set_menu_itemon++].m_flags & S_SKIP);
|
||||
current_setup_menu[--set_menu_itemon].m_flags |= S_HILITE;
|
||||
}
|
||||
@ -3622,7 +3652,7 @@ void M_General(int choice)
|
||||
setup_gather = false;
|
||||
mult_screens_index = 0;
|
||||
current_setup_menu = gen_settings[0];
|
||||
set_menu_itemon = 0;
|
||||
set_menu_itemon = M_GetSetupMenuItemOn();
|
||||
while (current_setup_menu[set_menu_itemon++].m_flags & S_SKIP);
|
||||
current_setup_menu[--set_menu_itemon].m_flags |= S_HILITE;
|
||||
}
|
||||
@ -3790,7 +3820,7 @@ void M_Compat(int choice)
|
||||
setup_gather = false;
|
||||
mult_screens_index = 0;
|
||||
current_setup_menu = comp_settings[0];
|
||||
set_menu_itemon = 0;
|
||||
set_menu_itemon = M_GetSetupMenuItemOn();
|
||||
while (current_setup_menu[set_menu_itemon++].m_flags & S_SKIP);
|
||||
current_setup_menu[--set_menu_itemon].m_flags |= S_HILITE;
|
||||
}
|
||||
@ -3901,7 +3931,7 @@ void M_Messages(int choice)
|
||||
setup_gather = false;
|
||||
mult_screens_index = 0;
|
||||
current_setup_menu = mess_settings[0];
|
||||
set_menu_itemon = 0;
|
||||
set_menu_itemon = M_GetSetupMenuItemOn();
|
||||
while (current_setup_menu[set_menu_itemon++].m_flags & S_SKIP);
|
||||
current_setup_menu[--set_menu_itemon].m_flags |= S_HILITE;
|
||||
}
|
||||
@ -3974,7 +4004,7 @@ void M_ChatStrings(int choice)
|
||||
setup_gather = false;
|
||||
mult_screens_index = 0;
|
||||
current_setup_menu = chat_settings[0];
|
||||
set_menu_itemon = 0;
|
||||
set_menu_itemon = M_GetSetupMenuItemOn();
|
||||
while (current_setup_menu[set_menu_itemon++].m_flags & S_SKIP);
|
||||
current_setup_menu[--set_menu_itemon].m_flags |= S_HILITE;
|
||||
}
|
||||
@ -5518,6 +5548,7 @@ boolean M_Responder (event_t* ev)
|
||||
|
||||
if ((action == MENU_ESCAPE) || (action == MENU_BACKSPACE))
|
||||
{
|
||||
M_SetSetupMenuItemOn(set_menu_itemon);
|
||||
if (action == MENU_ESCAPE) // Clear all menus
|
||||
M_ClearMenus();
|
||||
else // key_menu_backspace = return to Setup Menu
|
||||
@ -5562,8 +5593,9 @@ boolean M_Responder (event_t* ev)
|
||||
{
|
||||
ptr1->m_flags &= ~S_HILITE;
|
||||
mult_screens_index--;
|
||||
M_SetSetupMenuItemOn(set_menu_itemon);
|
||||
current_setup_menu = ptr2->var.menu;
|
||||
set_menu_itemon = 0;
|
||||
set_menu_itemon = M_GetSetupMenuItemOn();
|
||||
print_warning_about_changes = false; // killough 10/98
|
||||
while (current_setup_menu[set_menu_itemon++].m_flags&S_SKIP);
|
||||
current_setup_menu[--set_menu_itemon].m_flags |= S_HILITE;
|
||||
@ -5584,8 +5616,9 @@ boolean M_Responder (event_t* ev)
|
||||
{
|
||||
ptr1->m_flags &= ~S_HILITE;
|
||||
mult_screens_index++;
|
||||
M_SetSetupMenuItemOn(set_menu_itemon);
|
||||
current_setup_menu = ptr2->var.menu;
|
||||
set_menu_itemon = 0;
|
||||
set_menu_itemon = M_GetSetupMenuItemOn();
|
||||
print_warning_about_changes = false; // killough 10/98
|
||||
while (current_setup_menu[set_menu_itemon++].m_flags&S_SKIP);
|
||||
current_setup_menu[--set_menu_itemon].m_flags |= S_HILITE;
|
||||
|
Loading…
x
Reference in New Issue
Block a user