Fix input mappings, etc. not being reloaded after change game code.
This commit is contained in:
@@ -301,6 +301,10 @@ void ScreenTitleMenu::Input( const DeviceInput& DeviceI, const InputEventType ty
|
||||
if( GAMEMAN->IsGameEnabled(GAMESTATE->m_CurGame) )
|
||||
break; // found the first enabled game. Stop searching.
|
||||
}
|
||||
|
||||
/* Reload the theme if it's changed, but don't back to the initial screen. */
|
||||
ResetGame( false );
|
||||
|
||||
SCREENMAN->SystemMessage( ssprintf("Game: %s",GAMESTATE->GetCurrentGameDef()->m_szName) );
|
||||
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
|
||||
}
|
||||
|
||||
@@ -185,7 +185,7 @@ void ExitGame()
|
||||
g_bQuitting = true;
|
||||
}
|
||||
|
||||
void ResetGame()
|
||||
void ResetGame( bool ReturnToFirstScreen )
|
||||
{
|
||||
GAMESTATE->Reset();
|
||||
PREFSMAN->ReadGamePrefsFromDisk();
|
||||
@@ -217,11 +217,13 @@ void ResetGame()
|
||||
}
|
||||
PREFSMAN->SaveGamePrefsToDisk();
|
||||
|
||||
SCREENMAN->SetNewScreen( THEME->GetMetric("Common","InitialScreen") );
|
||||
PREFSMAN->m_bFirstRun = false;
|
||||
|
||||
if( PREFSMAN->m_bAutoMapJoysticks )
|
||||
INPUTMAPPER->AutoMapJoysticksForCurrentGame();
|
||||
|
||||
if( ReturnToFirstScreen )
|
||||
SCREENMAN->SetNewScreen( THEME->GetMetric("Common","InitialScreen") );
|
||||
}
|
||||
|
||||
static void GameLoop();
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
int SMmain(int argc, char* argv[]);
|
||||
void ApplyGraphicOptions();
|
||||
void ExitGame();
|
||||
void ResetGame();
|
||||
void ResetGame( bool ReturnToFirstScreen=true );
|
||||
|
||||
#if defined(WIN32)
|
||||
extern HWND g_hWndMain;
|
||||
|
||||
Reference in New Issue
Block a user