From 7cf1f02fa1273b0149440c9dc0e822734e6290b1 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 28 Sep 2013 12:57:47 -0400 Subject: TSAGE: Fix R2R restart game to match the original --- engines/tsage/ringworld2/ringworld2_logic.cpp | 14 +++++++++++++- engines/tsage/ringworld2/ringworld2_logic.h | 1 + engines/tsage/staticres.cpp | 1 + engines/tsage/staticres.h | 1 + 4 files changed, 16 insertions(+), 1 deletion(-) (limited to 'engines/tsage') 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; -- cgit v1.2.3