diff options
| author | Paul Gilbert | 2013-09-28 12:57:47 -0400 | 
|---|---|---|
| committer | Paul Gilbert | 2013-09-28 12:57:47 -0400 | 
| commit | 7cf1f02fa1273b0149440c9dc0e822734e6290b1 (patch) | |
| tree | b7c4e23a274938b34aef2861cabfecb36ef21061 | |
| parent | aeee6e624125af2569bf68cbe541b7bfce38291e (diff) | |
| download | scummvm-rg350-7cf1f02fa1273b0149440c9dc0e822734e6290b1.tar.gz scummvm-rg350-7cf1f02fa1273b0149440c9dc0e822734e6290b1.tar.bz2 scummvm-rg350-7cf1f02fa1273b0149440c9dc0e822734e6290b1.zip | |
TSAGE: Fix R2R restart game to match the original
| -rw-r--r-- | engines/tsage/ringworld2/ringworld2_logic.cpp | 14 | ||||
| -rw-r--r-- | engines/tsage/ringworld2/ringworld2_logic.h | 1 | ||||
| -rw-r--r-- | engines/tsage/staticres.cpp | 1 | ||||
| -rw-r--r-- | engines/tsage/staticres.h | 1 | 
4 files changed, 16 insertions, 1 deletions
| diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp index 22ad35017c..5e4e892f6b 100644 --- a/engines/tsage/ringworld2/ringworld2_logic.cpp +++ b/engines/tsage/ringworld2/ringworld2_logic.cpp @@ -1125,12 +1125,24 @@ void Ringworld2Game::start() {  	g_globals->_events.showCursor();  } +void Ringworld2Game::restartGame() { +	if (MessageDialog::show(Ringworld2::R2_RESTART_MSG, CANCEL_BTN_STRING, YES_MSG) == 1) +		restart(); +} +  void Ringworld2Game::restart() {  	g_globals->_scenePalette.clearListeners();  	g_globals->_soundHandler.stop(); +	// Reset the globals +	g_globals->reset(); + +	// Clear save/load slots +	g_globals->_sceneHandler->_saveGameSlot = -1; +	g_globals->_sceneHandler->_loadGameSlot = -1; +  	// Change to the first game scene -	g_globals->_sceneManager.changeScene(180); +	g_globals->_sceneManager.changeScene(100);  }  void Ringworld2Game::endGame(int resNum, int lineNum) { diff --git a/engines/tsage/ringworld2/ringworld2_logic.h b/engines/tsage/ringworld2/ringworld2_logic.h index a9fa0cfeea..aeac2fdd6a 100644 --- a/engines/tsage/ringworld2/ringworld2_logic.h +++ b/engines/tsage/ringworld2/ringworld2_logic.h @@ -228,6 +228,7 @@ public:  class Ringworld2Game: public Game {  public:  	virtual void start(); +	virtual void restartGame();  	virtual void restart();  	virtual void endGame(int resNum, int lineNum); diff --git a/engines/tsage/staticres.cpp b/engines/tsage/staticres.cpp index 2c5e8e57a0..662efa19b4 100644 --- a/engines/tsage/staticres.cpp +++ b/engines/tsage/staticres.cpp @@ -229,6 +229,7 @@ char const *const RESTORE_GAME = "Restore game";  char const *const SHOW_CREDITS = "Show credits";  char const *const PAUSE_GAME = "Pause game";  char const *const RESUME_PLAY = "  Resume play  "; +char const *const R2_RESTART_MSG = "Go to the beginning of game?";  char const *const F2 = "F2";  char const *const F3 = "F3";  char const *const F4 = "F4"; diff --git a/engines/tsage/staticres.h b/engines/tsage/staticres.h index b6c5d5e72a..7d97f2824d 100644 --- a/engines/tsage/staticres.h +++ b/engines/tsage/staticres.h @@ -182,6 +182,7 @@ extern char const *const RESTORE_GAME;  extern char const *const SHOW_CREDITS;  extern char const *const PAUSE_GAME;  extern char const *const RESUME_PLAY; +extern char const *const R2_RESTART_MSG;  extern char const *const F2;  extern char const *const F3;  extern char const *const F4; | 
