mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-26 03:30:46 +00:00
Menus: When RETURN is set to INT32_MIN in EVENT_CHANGEMENU, cancel any animations in addition to not changing the current menu.
git-svn-id: https://svn.eduke32.com/eduke32@5471 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
1ea0796b43
commit
3473580f5f
2 changed files with 34 additions and 18 deletions
|
@ -3453,25 +3453,39 @@ void M_ChangeMenuAnimate(int32_t cm, MenuAnimationType_t animtype)
|
||||||
switch (animtype)
|
switch (animtype)
|
||||||
{
|
{
|
||||||
case MA_Advance:
|
case MA_Advance:
|
||||||
|
{
|
||||||
|
Menu_t * const previousMenu = m_currentMenu;
|
||||||
|
|
||||||
|
if (!M_ChangeMenu(cm))
|
||||||
|
{
|
||||||
m_animation.out = M_Anim_SinOutRight;
|
m_animation.out = M_Anim_SinOutRight;
|
||||||
m_animation.in = M_Anim_SinInRight;
|
m_animation.in = M_Anim_SinInRight;
|
||||||
m_animation.start = totalclock;
|
m_animation.start = totalclock;
|
||||||
m_animation.length = 30;
|
m_animation.length = 30;
|
||||||
|
|
||||||
m_animation.previous = m_currentMenu;
|
m_animation.previous = previousMenu;
|
||||||
M_ChangeMenu(cm);
|
|
||||||
m_animation.current = m_currentMenu;
|
m_animation.current = m_currentMenu;
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case MA_Return:
|
case MA_Return:
|
||||||
|
{
|
||||||
|
Menu_t * const previousMenu = m_currentMenu;
|
||||||
|
|
||||||
|
if (!M_ChangeMenu(cm))
|
||||||
|
{
|
||||||
m_animation.out = M_Anim_SinOutLeft;
|
m_animation.out = M_Anim_SinOutLeft;
|
||||||
m_animation.in = M_Anim_SinInLeft;
|
m_animation.in = M_Anim_SinInLeft;
|
||||||
m_animation.start = totalclock;
|
m_animation.start = totalclock;
|
||||||
m_animation.length = 30;
|
m_animation.length = 30;
|
||||||
|
|
||||||
m_animation.previous = m_currentMenu;
|
m_animation.previous = previousMenu;
|
||||||
M_ChangeMenu(cm);
|
|
||||||
m_animation.current = m_currentMenu;
|
m_animation.current = m_currentMenu;
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
m_animation.start = 0;
|
m_animation.start = 0;
|
||||||
m_animation.length = 0;
|
m_animation.length = 0;
|
||||||
|
@ -3480,7 +3494,7 @@ void M_ChangeMenuAnimate(int32_t cm, MenuAnimationType_t animtype)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void M_ChangeMenu(MenuID_t cm)
|
int M_ChangeMenu(MenuID_t cm)
|
||||||
{
|
{
|
||||||
Menu_t *search;
|
Menu_t *search;
|
||||||
int32_t i;
|
int32_t i;
|
||||||
|
@ -3502,7 +3516,7 @@ void M_ChangeMenu(MenuID_t cm)
|
||||||
search = M_FindMenu(cm);
|
search = M_FindMenu(cm);
|
||||||
|
|
||||||
if (search == NULL)
|
if (search == NULL)
|
||||||
return;
|
return 0; // intentional, so that users don't use any random value as "don't change"
|
||||||
|
|
||||||
m_previousMenu = m_currentMenu;
|
m_previousMenu = m_currentMenu;
|
||||||
g_previousMenu = g_currentMenu;
|
g_previousMenu = g_currentMenu;
|
||||||
|
@ -3510,7 +3524,7 @@ void M_ChangeMenu(MenuID_t cm)
|
||||||
g_currentMenu = cm;
|
g_currentMenu = cm;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return;
|
return 1;
|
||||||
|
|
||||||
switch (g_currentMenu)
|
switch (g_currentMenu)
|
||||||
{
|
{
|
||||||
|
@ -3586,6 +3600,8 @@ void M_ChangeMenu(MenuID_t cm)
|
||||||
|
|
||||||
M_MenuEntryFocus(/*currentry*/);
|
M_MenuEntryFocus(/*currentry*/);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -419,7 +419,7 @@ extern int32_t g_lastSaveSlot;
|
||||||
extern int32_t g_quitDeadline;
|
extern int32_t g_quitDeadline;
|
||||||
extern int32_t voting;
|
extern int32_t voting;
|
||||||
int32_t menutext_(int32_t x,int32_t y,int32_t s,int32_t p,char *t,int32_t bits);
|
int32_t menutext_(int32_t x,int32_t y,int32_t s,int32_t p,char *t,int32_t bits);
|
||||||
void M_ChangeMenu(int32_t cm);
|
int M_ChangeMenu(int32_t cm);
|
||||||
void M_ChangeMenuAnimate(int32_t cm, MenuAnimationType_t animtype);
|
void M_ChangeMenuAnimate(int32_t cm, MenuAnimationType_t animtype);
|
||||||
int32_t M_IsTextInput(Menu_t *cm);
|
int32_t M_IsTextInput(Menu_t *cm);
|
||||||
void G_CheckPlayerColor(int32_t *color,int32_t prev_color);
|
void G_CheckPlayerColor(int32_t *color,int32_t prev_color);
|
||||||
|
|
Loading…
Reference in a new issue