mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-12 19:20:38 +00:00
In case a requested quick load upon death cannot be completed, perform a pistol start instead of doing nothing
git-svn-id: https://svn.eduke32.com/eduke32@6761 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
491783d81e
commit
1460dec6d8
5 changed files with 27 additions and 11 deletions
|
@ -4952,7 +4952,8 @@ FAKE_F3:
|
||||||
KB_FlushKeyboardQueue();
|
KB_FlushKeyboardQueue();
|
||||||
KB_ClearKeysDown();
|
KB_ClearKeysDown();
|
||||||
S_PauseSounds(1);
|
S_PauseSounds(1);
|
||||||
G_LoadPlayerMaybeMulti(*g_quickload);
|
if (G_LoadPlayerMaybeMulti(*g_quickload) != 0)
|
||||||
|
g_quickload->reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1095,8 +1095,11 @@ static int32_t VM_ResetPlayer(int const playerNum, int32_t vmFlags, int32_t cons
|
||||||
KB_ClearKeysDown();
|
KB_ClearKeysDown();
|
||||||
FX_StopAllSounds();
|
FX_StopAllSounds();
|
||||||
S_ClearSoundLocks();
|
S_ClearSoundLocks();
|
||||||
|
if (G_LoadPlayerMaybeMulti(*g_quickload) != 0)
|
||||||
G_LoadPlayerMaybeMulti(*g_quickload);
|
{
|
||||||
|
g_quickload->reset();
|
||||||
|
goto QuickLoadFailure;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (!(resetFlags & 1))
|
else if (!(resetFlags & 1))
|
||||||
{
|
{
|
||||||
|
@ -1106,7 +1109,11 @@ static int32_t VM_ResetPlayer(int const playerNum, int32_t vmFlags, int32_t cons
|
||||||
Menu_Change(MENU_RESETPLAYER);
|
Menu_Change(MENU_RESETPLAYER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else g_player[playerNum].ps->gm = MODE_RESTART;
|
else
|
||||||
|
{
|
||||||
|
QuickLoadFailure:
|
||||||
|
g_player[playerNum].ps->gm = MODE_RESTART;
|
||||||
|
}
|
||||||
#if !defined LUNATIC
|
#if !defined LUNATIC
|
||||||
vmFlags |= VM_NOEXECUTE;
|
vmFlags |= VM_NOEXECUTE;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -3469,17 +3469,22 @@ static void Menu_Verify(int32_t input)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MENU_RESETPLAYER:
|
case MENU_RESETPLAYER:
|
||||||
if (input)
|
switch (input)
|
||||||
{
|
{
|
||||||
|
default:
|
||||||
KB_FlushKeyboardQueue();
|
KB_FlushKeyboardQueue();
|
||||||
KB_ClearKeysDown();
|
KB_ClearKeysDown();
|
||||||
FX_StopAllSounds();
|
FX_StopAllSounds();
|
||||||
S_ClearSoundLocks();
|
S_ClearSoundLocks();
|
||||||
|
|
||||||
G_LoadPlayerMaybeMulti(*g_quickload);
|
if (G_LoadPlayerMaybeMulti(*g_quickload) == 0)
|
||||||
}
|
break;
|
||||||
else
|
|
||||||
{
|
// error state, consider as a no instead of yes
|
||||||
|
g_quickload->reset();
|
||||||
|
|
||||||
|
fallthrough__;
|
||||||
|
case 0:
|
||||||
if (sprite[g_player[myconnectindex].ps->i].extra <= 0)
|
if (sprite[g_player[myconnectindex].ps->i].extra <= 0)
|
||||||
{
|
{
|
||||||
if (G_EnterLevel(MODE_GAME)) G_BackToMenu();
|
if (G_EnterLevel(MODE_GAME)) G_BackToMenu();
|
||||||
|
@ -3487,6 +3492,7 @@ static void Menu_Verify(int32_t input)
|
||||||
}
|
}
|
||||||
|
|
||||||
Menu_Change(MENU_CLOSE);
|
Menu_Change(MENU_CLOSE);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -615,7 +615,7 @@ saveproblem:
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void G_LoadPlayerMaybeMulti(savebrief_t & sv)
|
int32_t G_LoadPlayerMaybeMulti(savebrief_t & sv)
|
||||||
{
|
{
|
||||||
if (g_netServer || ud.multimode > 1)
|
if (g_netServer || ud.multimode > 1)
|
||||||
{
|
{
|
||||||
|
@ -623,12 +623,14 @@ void G_LoadPlayerMaybeMulti(savebrief_t & sv)
|
||||||
P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps);
|
P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps);
|
||||||
|
|
||||||
// g_player[myconnectindex].ps->gm = MODE_GAME;
|
// g_player[myconnectindex].ps->gm = MODE_GAME;
|
||||||
|
return 127;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int32_t c = G_LoadPlayer(sv);
|
int32_t c = G_LoadPlayer(sv);
|
||||||
if (c == 0)
|
if (c == 0)
|
||||||
g_player[myconnectindex].ps->gm = MODE_GAME;
|
g_player[myconnectindex].ps->gm = MODE_GAME;
|
||||||
|
return c;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -123,7 +123,7 @@ int32_t G_LoadPlayer(savebrief_t & sv);
|
||||||
int32_t G_LoadSaveHeaderNew(char const *fn, savehead_t *saveh);
|
int32_t G_LoadSaveHeaderNew(char const *fn, savehead_t *saveh);
|
||||||
void ReadSaveGameHeaders(void);
|
void ReadSaveGameHeaders(void);
|
||||||
void G_SavePlayerMaybeMulti(savebrief_t & sv, bool isAutoSave = false);
|
void G_SavePlayerMaybeMulti(savebrief_t & sv, bool isAutoSave = false);
|
||||||
void G_LoadPlayerMaybeMulti(savebrief_t & sv);
|
int32_t G_LoadPlayerMaybeMulti(savebrief_t & sv);
|
||||||
|
|
||||||
#ifdef YAX_ENABLE
|
#ifdef YAX_ENABLE
|
||||||
extern void sv_postyaxload(void);
|
extern void sv_postyaxload(void);
|
||||||
|
|
Loading…
Reference in a new issue