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) )
|
if( GAMEMAN->IsGameEnabled(GAMESTATE->m_CurGame) )
|
||||||
break; // found the first enabled game. Stop searching.
|
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->SystemMessage( ssprintf("Game: %s",GAMESTATE->GetCurrentGameDef()->m_szName) );
|
||||||
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
|
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ void ExitGame()
|
|||||||
g_bQuitting = true;
|
g_bQuitting = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ResetGame()
|
void ResetGame( bool ReturnToFirstScreen )
|
||||||
{
|
{
|
||||||
GAMESTATE->Reset();
|
GAMESTATE->Reset();
|
||||||
PREFSMAN->ReadGamePrefsFromDisk();
|
PREFSMAN->ReadGamePrefsFromDisk();
|
||||||
@@ -217,11 +217,13 @@ void ResetGame()
|
|||||||
}
|
}
|
||||||
PREFSMAN->SaveGamePrefsToDisk();
|
PREFSMAN->SaveGamePrefsToDisk();
|
||||||
|
|
||||||
SCREENMAN->SetNewScreen( THEME->GetMetric("Common","InitialScreen") );
|
|
||||||
PREFSMAN->m_bFirstRun = false;
|
PREFSMAN->m_bFirstRun = false;
|
||||||
|
|
||||||
if( PREFSMAN->m_bAutoMapJoysticks )
|
if( PREFSMAN->m_bAutoMapJoysticks )
|
||||||
INPUTMAPPER->AutoMapJoysticksForCurrentGame();
|
INPUTMAPPER->AutoMapJoysticksForCurrentGame();
|
||||||
|
|
||||||
|
if( ReturnToFirstScreen )
|
||||||
|
SCREENMAN->SetNewScreen( THEME->GetMetric("Common","InitialScreen") );
|
||||||
}
|
}
|
||||||
|
|
||||||
static void GameLoop();
|
static void GameLoop();
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
int SMmain(int argc, char* argv[]);
|
int SMmain(int argc, char* argv[]);
|
||||||
void ApplyGraphicOptions();
|
void ApplyGraphicOptions();
|
||||||
void ExitGame();
|
void ExitGame();
|
||||||
void ResetGame();
|
void ResetGame( bool ReturnToFirstScreen=true );
|
||||||
|
|
||||||
#if defined(WIN32)
|
#if defined(WIN32)
|
||||||
extern HWND g_hWndMain;
|
extern HWND g_hWndMain;
|
||||||
|
|||||||
Reference in New Issue
Block a user