diff options
-rw-r--r-- | engines/hopkins/dialogs.cpp | 7 | ||||
-rw-r--r-- | engines/hopkins/dialogs.h | 3 | ||||
-rw-r--r-- | engines/hopkins/globals.cpp | 4 | ||||
-rw-r--r-- | engines/hopkins/hopkins.cpp | 11 | ||||
-rw-r--r-- | engines/hopkins/hopkins.h | 2 | ||||
-rw-r--r-- | engines/hopkins/menu.cpp | 4 | ||||
-rw-r--r-- | engines/hopkins/objects.cpp | 38 |
7 files changed, 33 insertions, 36 deletions
diff --git a/engines/hopkins/dialogs.cpp b/engines/hopkins/dialogs.cpp index 9056101f76..6da15e4953 100644 --- a/engines/hopkins/dialogs.cpp +++ b/engines/hopkins/dialogs.cpp @@ -37,7 +37,8 @@ namespace Hopkins { -DialogsManager::DialogsManager() { +DialogsManager::DialogsManager(HopkinsEngine *vm) { + _vm = vm; _inventFl = false; _inventDisplayedFl = false; _removeInventFl = false; @@ -53,10 +54,6 @@ DialogsManager::~DialogsManager() { _vm->_globals.freeMemory(_inventoryIcons); } -void DialogsManager::setParent(HopkinsEngine *vm) { - _vm = vm; -} - void DialogsManager::showOptionsDialog() { _vm->_eventsManager.changeMouseCursor(0); _vm->_eventsManager.refreshScreenAndEvents(); diff --git a/engines/hopkins/dialogs.h b/engines/hopkins/dialogs.h index 4fa80913c4..fe6c3bc398 100644 --- a/engines/hopkins/dialogs.h +++ b/engines/hopkins/dialogs.h @@ -52,9 +52,8 @@ public: int _inventWidth, _inventHeight; byte *_inventoryIcons; - DialogsManager(); + DialogsManager(HopkinsEngine *vm); ~DialogsManager(); - void setParent(HopkinsEngine *vm); void inventAnim(); void showInventory(); void showLoadGame(); diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp index acb1c31b1e..38c884a438 100644 --- a/engines/hopkins/globals.cpp +++ b/engines/hopkins/globals.cpp @@ -241,8 +241,8 @@ void Globals::clearAll() { _objectDataBuf = g_PTRNUL; _curObjectFileNum = 0; _vm->_eventsManager._objectBuf = g_PTRNUL; - _vm->_dialogsManager._inventWin1 = g_PTRNUL; - _vm->_dialogsManager._inventBuf2 = g_PTRNUL; + _vm->_dialogsManager->_inventWin1 = g_PTRNUL; + _vm->_dialogsManager->_inventBuf2 = g_PTRNUL; _answerBuffer = g_PTRNUL; SPRITE_ECRAN = g_PTRNUL; _saveData = (Savegame *)g_PTRNUL; diff --git a/engines/hopkins/hopkins.cpp b/engines/hopkins/hopkins.cpp index bfa00be3e6..a099aa5f89 100644 --- a/engines/hopkins/hopkins.cpp +++ b/engines/hopkins/hopkins.cpp @@ -42,9 +42,9 @@ HopkinsEngine::HopkinsEngine(OSystem *syst, const HopkinsGameDescription *gameDe g_vm = this; _animationManager = new AnimationManager(this); _computerManager = new ComputerManager(this); + _dialogsManager = new DialogsManager(this); _debugger.setParent(this); - _dialogsManager.setParent(this); _eventsManager.setParent(this); _fileManager.setParent(this); _fontManager.setParent(this); @@ -60,6 +60,7 @@ HopkinsEngine::HopkinsEngine(OSystem *syst, const HopkinsGameDescription *gameDe } HopkinsEngine::~HopkinsEngine() { + delete _dialogsManager; delete _computerManager; delete _animationManager; } @@ -1580,7 +1581,7 @@ void HopkinsEngine::initializeSystem() { _eventsManager.initMouseData(); _fontManager.initData(); - _dialogsManager._inventoryIcons = _fileManager.loadFile("ICONE.SPR"); + _dialogsManager->_inventoryIcons = _fileManager.loadFile("ICONE.SPR"); _objectsManager._headSprites = _fileManager.loadFile("TETE.SPR"); _eventsManager.setMouseOn(); @@ -2049,7 +2050,7 @@ void HopkinsEngine::playUnderwaterBaseCutscene() { void HopkinsEngine::playEnding() { _globals.PERSO = _globals.freeMemory(_globals.PERSO); - _dialogsManager._removeInventFl = true; + _dialogsManager->_removeInventFl = true; _globals._disableInventFl = true; _graphicsManager._scrollOffset = 0; _globals._cityMapEnabledFl = false; @@ -2159,7 +2160,7 @@ void HopkinsEngine::playEnding() { displayCredits(); _globals.iRegul = 0; _globals._exitId = 300; - _dialogsManager._removeInventFl = false; + _dialogsManager->_removeInventFl = false; _globals._disableInventFl = false; } else { _soundManager._specialSoundNum = 200; @@ -2187,7 +2188,7 @@ void HopkinsEngine::playEnding() { _soundManager.playSound(16); _globals.iRegul = 1; _soundManager._specialSoundNum = 0; - _dialogsManager._removeInventFl = false; + _dialogsManager->_removeInventFl = false; _globals._disableInventFl = false; _animationManager->playAnim("JOUR4A.anm", 12, 12, 1000); _globals.iRegul = 0; diff --git a/engines/hopkins/hopkins.h b/engines/hopkins/hopkins.h index ab98b9e120..306fb6a8f3 100644 --- a/engines/hopkins/hopkins.h +++ b/engines/hopkins/hopkins.h @@ -145,7 +145,7 @@ public: Debugger _debugger; AnimationManager *_animationManager; ComputerManager *_computerManager; - DialogsManager _dialogsManager; + DialogsManager *_dialogsManager; EventsManager _eventsManager; FontManager _fontManager; Globals _globals; diff --git a/engines/hopkins/menu.cpp b/engines/hopkins/menu.cpp index e2e4859c55..d5cf110a82 100644 --- a/engines/hopkins/menu.cpp +++ b/engines/hopkins/menu.cpp @@ -142,7 +142,7 @@ int MenuManager::menu() { break; } else if (menuIndex == LOAD_GAME) { _vm->_globals._exitId = -1; - _vm->_dialogsManager.showLoadGame(); + _vm->_dialogsManager->showLoadGame(); if (_vm->_globals._exitId != -1) { result = _vm->_globals._exitId; @@ -150,7 +150,7 @@ int MenuManager::menu() { } _vm->_globals._exitId = 0; } else if (menuIndex == OPTIONS) { - _vm->_dialogsManager.showOptionsDialog(); + _vm->_dialogsManager->showOptionsDialog(); } else if (menuIndex == INTRODUCTION) { _vm->playIntro(); } else if (menuIndex == QUIT) { diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp index d4f4658dea..71fccd2d13 100644 --- a/engines/hopkins/objects.cpp +++ b/engines/hopkins/objects.cpp @@ -410,13 +410,13 @@ void ObjectsManager::displaySprite() { } _vm->_globals._sortedDisplayCount = 0; - if (_vm->_dialogsManager._inventDisplayedFl) { - _vm->_graphicsManager.restoreSurfaceRect(_vm->_graphicsManager._vesaBuffer, _vm->_dialogsManager._inventWin1, _vm->_dialogsManager._inventX, _vm->_dialogsManager._inventY, _vm->_dialogsManager._inventWidth, _vm->_dialogsManager._inventHeight); + if (_vm->_dialogsManager->_inventDisplayedFl) { + _vm->_graphicsManager.restoreSurfaceRect(_vm->_graphicsManager._vesaBuffer, _vm->_dialogsManager->_inventWin1, _vm->_dialogsManager->_inventX, _vm->_dialogsManager->_inventY, _vm->_dialogsManager->_inventWidth, _vm->_dialogsManager->_inventHeight); if (_oldBorderPos.x && _oldBorderPos.y) - _vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager._vesaBuffer, _vm->_dialogsManager._inventBuf2, _oldBorderPos.x + 300, _oldBorderPos.y + 300, _oldBorderSpriteIndex + 1); + _vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager._vesaBuffer, _vm->_dialogsManager->_inventBuf2, _oldBorderPos.x + 300, _oldBorderPos.y + 300, _oldBorderSpriteIndex + 1); if (_borderPos.x && _borderPos.y) - _vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager._vesaBuffer, _vm->_dialogsManager._inventBuf2, _borderPos.x + 300, _borderPos.y + 300, _borderSpriteIndex); - _vm->_graphicsManager.addDirtyRect(_vm->_dialogsManager._inventX, _vm->_dialogsManager._inventY, _vm->_dialogsManager._inventX + _vm->_dialogsManager._inventWidth, _vm->_dialogsManager._inventY + _vm->_dialogsManager._inventHeight); + _vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager._vesaBuffer, _vm->_dialogsManager->_inventBuf2, _borderPos.x + 300, _borderPos.y + 300, _borderSpriteIndex); + _vm->_graphicsManager.addDirtyRect(_vm->_dialogsManager->_inventX, _vm->_dialogsManager->_inventY, _vm->_dialogsManager->_inventX + _vm->_dialogsManager->_inventWidth, _vm->_dialogsManager->_inventY + _vm->_dialogsManager->_inventHeight); } if (_saveLoadFl) { @@ -486,7 +486,7 @@ void ObjectsManager::displaySprite() { } } - _vm->_dialogsManager.inventAnim(); + _vm->_dialogsManager->inventAnim(); } void ObjectsManager::initBob() { @@ -1717,7 +1717,7 @@ void ObjectsManager::loadZone(const Common::String &file) { } void ObjectsManager::handleCityMap() { - _vm->_dialogsManager._inventFl = false; + _vm->_dialogsManager->_inventFl = false; _vm->_eventsManager._gameKey = KEY_NONE; _vm->_linesManager.setMaxLineIdx(1); _vm->_globals._characterMaxPosY = 440; @@ -1823,16 +1823,16 @@ void ObjectsManager::handleLeftButton() { int destX = _vm->_eventsManager.getMouseX(); int destY = _vm->_eventsManager.getMouseY(); - if (!_vm->_dialogsManager._inventFl && !_vm->_globals._cityMapEnabledFl && + if (!_vm->_dialogsManager->_inventFl && !_vm->_globals._cityMapEnabledFl && destX > _vm->_graphicsManager._scrollOffset - 30 && destX < _vm->_graphicsManager._scrollOffset + 50 && destY > -30 && destY < 50) { int oldMouseCursor = _vm->_eventsManager._mouseCursorId; - _vm->_dialogsManager._inventFl = true; - _vm->_dialogsManager.showInventory(); - _vm->_dialogsManager._inventFl = false; + _vm->_dialogsManager->_inventFl = true; + _vm->_dialogsManager->showInventory(); + _vm->_dialogsManager->_inventFl = false; _vm->_eventsManager._gameKey = KEY_NONE; if (!_vm->_globals._exitId) { - _vm->_dialogsManager._inventFl = false; + _vm->_dialogsManager->_inventFl = false; _vm->_eventsManager._mouseCursorId = oldMouseCursor; } return; @@ -3622,7 +3622,7 @@ void ObjectsManager::handleForest(int screenId, int minX, int maxX, int minY, in if (_vm->_globals._saveData->_data[savegameIdx]) { if (_vm->_globals._saveData->_data[savegameIdx] == 1) { if (((idx == 1 || idx == 2) && getBobAnimDataIdx(idx) == 26) || ((idx == 3 || idx == 4) && getBobAnimDataIdx(idx) == 27)) { - _vm->_dialogsManager._removeInventFl = true; + _vm->_dialogsManager->_removeInventFl = true; _vm->_soundManager.playSample(1); _vm->_globals._saveData->_data[savegameIdx] = 4; } @@ -3661,9 +3661,9 @@ void ObjectsManager::lockAnimX(int idx, int x) { */ void ObjectsManager::PERSONAGE(const Common::String &backgroundFile, const Common::String &linkFile, const Common::String &animFile, const Common::String &s4, int soundNum, bool initializeScreen) { - _vm->_dialogsManager._inventFl = false; + _vm->_dialogsManager->_inventFl = false; _vm->_eventsManager._gameKey = KEY_NONE; - _vm->_dialogsManager._removeInventFl = false; + _vm->_dialogsManager->_removeInventFl = false; _vm->_graphicsManager._scrollOffset = 0; _vm->_globals._cityMapEnabledFl = false; _vm->_globals.iRegul = 1; @@ -3722,7 +3722,7 @@ void ObjectsManager::PERSONAGE(const Common::String &backgroundFile, const Commo mouseButton = 1; } else if (mouseButton == 2) handleRightButton(); - _vm->_dialogsManager.testDialogOpening(); + _vm->_dialogsManager->testDialogOpening(); _vm->_linesManager.checkZone(); if (_vm->_globals._actionMoveTo) PARADISE(); @@ -3749,11 +3749,11 @@ void ObjectsManager::PERSONAGE(const Common::String &backgroundFile, const Commo */ void ObjectsManager::PERSONAGE2(const Common::String &backgroundFile, const Common::String &linkFile, const Common::String &animFile, const Common::String &s4, int soundNum, bool initializeScreen) { - _vm->_dialogsManager._inventFl = false; + _vm->_dialogsManager->_inventFl = false; _vm->_eventsManager._gameKey = KEY_NONE; _verb = 4; _vm->_graphicsManager._scrollOffset = 0; - _vm->_dialogsManager._removeInventFl = false; + _vm->_dialogsManager->_removeInventFl = false; _vm->_globals._cityMapEnabledFl = false; _vm->_graphicsManager._noFadingFl = false; _vm->_globals._freezeCharacterFl = false; @@ -3859,7 +3859,7 @@ void ObjectsManager::PERSONAGE2(const Common::String &backgroundFile, const Comm } } if (!_vm->_globals._exitId) { - _vm->_dialogsManager.testDialogOpening(); + _vm->_dialogsManager->testDialogOpening(); _vm->_linesManager.checkZone(); if (_vm->_linesManager._route == (RouteItem *)g_PTRNUL || (GOHOME(), _vm->_linesManager._route == (RouteItem *)g_PTRNUL)) { |