aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/hopkins/dialogs.cpp7
-rw-r--r--engines/hopkins/dialogs.h3
-rw-r--r--engines/hopkins/globals.cpp4
-rw-r--r--engines/hopkins/hopkins.cpp11
-rw-r--r--engines/hopkins/hopkins.h2
-rw-r--r--engines/hopkins/menu.cpp4
-rw-r--r--engines/hopkins/objects.cpp38
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)) {