From 78b25b17d1eb26841ab93192aea2ff1169ff9002 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 15 Jan 2014 17:56:48 +0100 Subject: MORTEVIELLE: Split resetVariables in two, reuse it in engine constructor --- engines/mortevielle/mortevielle.cpp | 5 +++++ engines/mortevielle/mortevielle.h | 1 + engines/mortevielle/utils.cpp | 40 +++++++++++++++++++------------------ 3 files changed, 27 insertions(+), 19 deletions(-) diff --git a/engines/mortevielle/mortevielle.cpp b/engines/mortevielle/mortevielle.cpp index 34372ba32a..ab94cf1f16 100644 --- a/engines/mortevielle/mortevielle.cpp +++ b/engines/mortevielle/mortevielle.cpp @@ -101,6 +101,11 @@ MortevielleEngine::MortevielleEngine(OSystem *system, const MortevielleGameDescr _curPict = nullptr; _curAnim = nullptr; _rightFramePict = nullptr; + + resetCoreVar(); + + _maff = 0; + _crep = 0; } MortevielleEngine::~MortevielleEngine() { diff --git a/engines/mortevielle/mortevielle.h b/engines/mortevielle/mortevielle.h index 579e495b65..e3870146db 100644 --- a/engines/mortevielle/mortevielle.h +++ b/engines/mortevielle/mortevielle.h @@ -391,6 +391,7 @@ private: void prepareNextObject(); void putObject(); void resetObjectPlace(); + void resetCoreVar(); void drawDiscussionBox(); void displayNarrativePicture(int af, int ob); void menuUp(); diff --git a/engines/mortevielle/utils.cpp b/engines/mortevielle/utils.cpp index 6e0f266f9b..c65818b9e9 100644 --- a/engines/mortevielle/utils.cpp +++ b/engines/mortevielle/utils.cpp @@ -1888,24 +1888,18 @@ void MortevielleEngine::resetObjectPlace() { _tabdon[i] = _tabdon[i + 390]; } -/** - * Engine function - When restarting the game, reset the main variables used by the engine - * @remarks Originally called 'inzon' - */ -void MortevielleEngine::resetVariables() { - resetObjectPlace(); - - _coreVar._alreadyEnteredManor = false; - _coreVar._selectedObjectId = 0; - _coreVar._cellarObjectId = 0; - _coreVar._atticBallHoleObjectId = 0; - _coreVar._atticRodHoleObjectId = 0; - _coreVar._wellObjectId = 0; - _coreVar._secretPassageObjectId = 0; - _coreVar._purpleRoomObjectId = 136; - _coreVar._cryptObjectId = 141; - _coreVar._faithScore = getRandomNumber(4, 10); - _coreVar._currPlace = MANOR_FRONT; +void MortevielleEngine::resetCoreVar() { + _saveStruct._alreadyEnteredManor = _coreVar._alreadyEnteredManor = false; + _saveStruct._selectedObjectId = _coreVar._selectedObjectId = 0; + _saveStruct._cellarObjectId = _coreVar._cellarObjectId = 0; + _saveStruct._atticBallHoleObjectId = _coreVar._atticBallHoleObjectId = 0; + _saveStruct._atticRodHoleObjectId = _coreVar._atticRodHoleObjectId = 0; + _saveStruct._wellObjectId = _coreVar._wellObjectId = 0; + _saveStruct._secretPassageObjectId = _coreVar._secretPassageObjectId = 0; + _saveStruct._purpleRoomObjectId = _coreVar._purpleRoomObjectId = 136; + _saveStruct._cryptObjectId = _coreVar._cryptObjectId = 141; + _saveStruct._faithScore = _coreVar._faithScore = getRandomNumber(4, 10); + _saveStruct._currPlace = _coreVar._currPlace = MANOR_FRONT; for (int i = 2; i <= 6; ++i) _coreVar._inventory[i] = 0; @@ -1913,7 +1907,7 @@ void MortevielleEngine::resetVariables() { // Only object in inventory: a gun _coreVar._inventory[1] = 113; - _coreVar._fullHour = (unsigned char)20; + _saveStruct._fullHour = _coreVar._fullHour = (unsigned char)20; for (int i = 1; i <= 10; ++i) _coreVar._pctHintFound[i] = ' '; @@ -1931,6 +1925,14 @@ void MortevielleEngine::resetVariables() { _coreVar._availableQuestion[i] = ' '; _coreVar._availableQuestion[33] = '*'; +} +/** + * Engine function - When restarting the game, reset the main variables used by the engine + * @remarks Originally called 'inzon' + */ +void MortevielleEngine::resetVariables() { + resetObjectPlace(); + resetCoreVar(); for (int i = 1; i <= 8; ++i) _charAnswerCount[i] = 0; -- cgit v1.2.3