mission retry fix

This commit is contained in:
Nikolay Korolev 2021-08-12 11:23:10 +03:00
parent 75f812cfcd
commit b99edf9a6b
3 changed files with 22 additions and 3 deletions

View File

@ -3246,6 +3246,7 @@ void RetryMission(int type, int unk)
if (type == MISSION_RETRY_TYPE_SUGGEST_TO_PLAYER) { if (type == MISSION_RETRY_TYPE_SUGGEST_TO_PLAYER) {
doingMissionRetry = true; doingMissionRetry = true;
FrontEndMenuManager.m_nCurrScreen = MENUPAGE_MISSION_RETRY; FrontEndMenuManager.m_nCurrScreen = MENUPAGE_MISSION_RETRY;
FrontEndMenuManager.m_bAttemptingMissionRetry = true;
FrontEndMenuManager.RequestFrontEndStartUp(); FrontEndMenuManager.RequestFrontEndStartUp();
} }
else if (type == MISSION_RETRY_TYPE_BEGIN_RESTARTING) { else if (type == MISSION_RETRY_TYPE_BEGIN_RESTARTING) {

View File

@ -542,6 +542,10 @@ CMenuManager::CMenuManager()
#ifdef GAMEPAD_MENU #ifdef GAMEPAD_MENU
m_PrefsControllerType = CONTROLLER_XBOXONE; m_PrefsControllerType = CONTROLLER_XBOXONE;
#endif #endif
#ifdef MISSION_REPLAY
m_bAttemptingMissionRetry = false;
#endif
} }
void void
@ -573,11 +577,17 @@ CMenuManager::Initialise(void)
m_fMapCenterY = MENU_Y(225.0f); m_fMapCenterY = MENU_Y(225.0f);
CPad::StopPadsShaking(); CPad::StopPadsShaking();
#ifdef MISSION_REPLAY #ifdef MISSION_REPLAY
if (!m_OnlySaveMenu && m_nCurrScreen != MENUPAGE_MISSION_RETRY) if (!m_OnlySaveMenu) {
if (m_nCurrScreen == MENUPAGE_MISSION_RETRY && m_bAttemptingMissionRetry)
m_bAttemptingMissionRetry = false;
else
m_nCurrScreen = MENUPAGE_NONE;
}
#else #else
if (!m_OnlySaveMenu) if (!m_OnlySaveMenu)
#endif
m_nCurrScreen = MENUPAGE_NONE; m_nCurrScreen = MENUPAGE_NONE;
#endif
DMAudio.ChangeMusicMode(MUSICMODE_FRONTEND); DMAudio.ChangeMusicMode(MUSICMODE_FRONTEND);
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_STARTING, 0); DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_STARTING, 0);
DMAudio.Service(); DMAudio.Service();
@ -4447,7 +4457,11 @@ CMenuManager::UserInput(void)
if (CPad::GetPad(0)->GetBackJustDown() || CPad::GetPad(0)->GetEscapeJustDown()) { if (CPad::GetPad(0)->GetBackJustDown() || CPad::GetPad(0)->GetEscapeJustDown()) {
if (m_nCurrScreen != MENUPAGE_START_MENU && m_nCurrScreen != MENUPAGE_PAUSE_MENU && m_nCurrScreen != MENUPAGE_CHOOSE_SAVE_SLOT if (m_nCurrScreen != MENUPAGE_START_MENU && m_nCurrScreen != MENUPAGE_PAUSE_MENU && m_nCurrScreen != MENUPAGE_CHOOSE_SAVE_SLOT
&& m_nCurrScreen != MENUPAGE_SAVE_CHEAT_WARNING && m_nCurrScreen != MENUPAGE_SAVING_IN_PROGRESS && m_nCurrScreen != MENUPAGE_SAVE_CHEAT_WARNING && m_nCurrScreen != MENUPAGE_SAVING_IN_PROGRESS
&& m_nCurrScreen != MENUPAGE_DELETING_IN_PROGRESS && m_nCurrScreen != MENUPAGE_OUTRO) && m_nCurrScreen != MENUPAGE_DELETING_IN_PROGRESS && m_nCurrScreen != MENUPAGE_OUTRO
#ifdef MISSION_REPLAY
&& m_nCurrScreen != MENUPAGE_MISSION_RETRY
#endif
)
{ {
m_bShowMouse = false; m_bShowMouse = false;
goBack = true; goBack = true;

View File

@ -711,6 +711,10 @@ public:
int8 m_nDisplayMSAALevel; int8 m_nDisplayMSAALevel;
#endif #endif
#ifdef MISSION_REPLAY
bool m_bAttemptingMissionRetry;
#endif
#ifdef GAMEPAD_MENU #ifdef GAMEPAD_MENU
enum enum
{ {