Fix input mappings, etc. not being reloaded after change game code.

This commit is contained in:
Glenn Maynard
2003-09-25 06:05:19 +00:00
parent 2c38027e6d
commit 2d546f92ef
3 changed files with 9 additions and 3 deletions
+4
View File
@@ -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" );
} }
+4 -2
View File
@@ -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();
+1 -1
View File
@@ -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;