aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/hopkins/computer.cpp8
-rw-r--r--engines/hopkins/computer.h3
-rw-r--r--engines/hopkins/hopkins.cpp21
-rw-r--r--engines/hopkins/hopkins.h2
4 files changed, 16 insertions, 18 deletions
diff --git a/engines/hopkins/computer.cpp b/engines/hopkins/computer.cpp
index 5ace29bb41..824d52249c 100644
--- a/engines/hopkins/computer.cpp
+++ b/engines/hopkins/computer.cpp
@@ -35,7 +35,9 @@
namespace Hopkins {
-ComputerManager::ComputerManager() {
+ComputerManager::ComputerManager(HopkinsEngine *vm) {
+ _vm = vm;
+
for (int i = 0; i < 50; i++) {
_menuText[i]._actvFl = false;
_menuText[i]._lineSize = 0;
@@ -58,10 +60,6 @@ ComputerManager::ComputerManager() {
_lastBreakoutMoveSpeed = 0;
}
-void ComputerManager::setParent(HopkinsEngine *vm) {
- _vm = vm;
-}
-
/**
* Sets up textual entry mode. Used by the code for Hopkins computer.
*/
diff --git a/engines/hopkins/computer.h b/engines/hopkins/computer.h
index b46fdd16b0..154921631e 100644
--- a/engines/hopkins/computer.h
+++ b/engines/hopkins/computer.h
@@ -98,8 +98,7 @@ private:
void displayScoreChar(int charPos, int charDisp);
public:
- ComputerManager();
- void setParent(HopkinsEngine *vm);
+ ComputerManager(HopkinsEngine *vm);
void showComputer(ComputerEnum mode);
};
diff --git a/engines/hopkins/hopkins.cpp b/engines/hopkins/hopkins.cpp
index dba9e0bd78..bfa00be3e6 100644
--- a/engines/hopkins/hopkins.cpp
+++ b/engines/hopkins/hopkins.cpp
@@ -41,9 +41,9 @@ HopkinsEngine::HopkinsEngine(OSystem *syst, const HopkinsGameDescription *gameDe
_gameDescription(gameDesc), _randomSource("Hopkins") {
g_vm = this;
_animationManager = new AnimationManager(this);
+ _computerManager = new ComputerManager(this);
_debugger.setParent(this);
- _computerManager.setParent(this);
_dialogsManager.setParent(this);
_eventsManager.setParent(this);
_fileManager.setParent(this);
@@ -60,6 +60,7 @@ HopkinsEngine::HopkinsEngine(OSystem *syst, const HopkinsGameDescription *gameDe
}
HopkinsEngine::~HopkinsEngine() {
+ delete _computerManager;
delete _animationManager;
}
@@ -337,7 +338,7 @@ bool HopkinsEngine::runWin95Demo() {
_globals._saveData->_data[svLastPrevScreenId] = _globals._screenId;
_globals._screenId = 113;
_globals._saveData->_data[svLastScreenId] = _globals._screenId;
- _computerManager.showComputer(COMPUTER_HOPKINS);
+ _computerManager->showComputer(COMPUTER_HOPKINS);
_graphicsManager.lockScreen();
_graphicsManager.clearScreen();
_graphicsManager.unlockScreen();
@@ -354,7 +355,7 @@ bool HopkinsEngine::runWin95Demo() {
_globals._screenId = 114;
_globals._saveData->_data[svLastScreenId] = _globals._screenId;
_globals._exitId = 0;
- _computerManager.showComputer(COMPUTER_SAMANTHA);
+ _computerManager->showComputer(COMPUTER_SAMANTHA);
_graphicsManager.lockScreen();
_graphicsManager.clearScreen();
_graphicsManager.unlockScreen();
@@ -366,7 +367,7 @@ bool HopkinsEngine::runWin95Demo() {
_globals._saveData->_data[svLastPrevScreenId] = _globals._screenId;
_globals._screenId = 115;
_globals._saveData->_data[svLastScreenId] = _globals._screenId;
- _computerManager.showComputer(COMPUTER_PUBLIC);
+ _computerManager->showComputer(COMPUTER_PUBLIC);
_graphicsManager.lockScreen();
_graphicsManager.clearScreen();
_graphicsManager.unlockScreen();
@@ -654,7 +655,7 @@ bool HopkinsEngine::runLinuxDemo() {
_globals._saveData->_data[svLastPrevScreenId] = _globals._screenId;
_globals._screenId = 113;
_globals._saveData->_data[svLastScreenId] = 113;
- _computerManager.showComputer(COMPUTER_HOPKINS);
+ _computerManager->showComputer(COMPUTER_HOPKINS);
_graphicsManager.lockScreen();
_graphicsManager.clearScreen();
@@ -672,7 +673,7 @@ bool HopkinsEngine::runLinuxDemo() {
_globals._saveData->_data[svLastPrevScreenId] = _globals._screenId;
_globals._screenId = 114;
_globals._saveData->_data[svLastScreenId] = 114;
- _computerManager.showComputer(COMPUTER_SAMANTHA);
+ _computerManager->showComputer(COMPUTER_SAMANTHA);
_graphicsManager.lockScreen();
_graphicsManager.clearScreen();
_graphicsManager.unlockScreen();
@@ -684,7 +685,7 @@ bool HopkinsEngine::runLinuxDemo() {
_globals._saveData->_data[svLastPrevScreenId] = _globals._screenId;
_globals._screenId = 115;
_globals._saveData->_data[svLastScreenId] = 115;
- _computerManager.showComputer(COMPUTER_PUBLIC);
+ _computerManager->showComputer(COMPUTER_PUBLIC);
_graphicsManager.lockScreen();
_graphicsManager.clearScreen();
_graphicsManager.unlockScreen();
@@ -1442,7 +1443,7 @@ bool HopkinsEngine::runFull() {
_globals._saveData->_data[svLastPrevScreenId] = _globals._prevScreenId;
_globals._saveData->_data[svLastScreenId] = _globals._screenId;
_globals._exitId = 0;
- _computerManager.showComputer(COMPUTER_HOPKINS);
+ _computerManager->showComputer(COMPUTER_HOPKINS);
_graphicsManager.lockScreen();
_graphicsManager.clearScreen();
_graphicsManager.unlockScreen();
@@ -1459,7 +1460,7 @@ bool HopkinsEngine::runFull() {
_globals._screenId = 114;
_globals._saveData->_data[svLastPrevScreenId] = _globals._prevScreenId;
_globals._saveData->_data[svLastScreenId] = _globals._screenId;
- _computerManager.showComputer(COMPUTER_SAMANTHA);
+ _computerManager->showComputer(COMPUTER_SAMANTHA);
_graphicsManager.lockScreen();
_graphicsManager.clearScreen();
_graphicsManager.unlockScreen();
@@ -1471,7 +1472,7 @@ bool HopkinsEngine::runFull() {
_globals._saveData->_data[svLastPrevScreenId] = _globals._prevScreenId;
_globals._saveData->_data[svLastScreenId] = _globals._screenId;
_globals._exitId = 0;
- _computerManager.showComputer(COMPUTER_PUBLIC);
+ _computerManager->showComputer(COMPUTER_PUBLIC);
_graphicsManager.lockScreen();
_graphicsManager.clearScreen();
_graphicsManager.unlockScreen();
diff --git a/engines/hopkins/hopkins.h b/engines/hopkins/hopkins.h
index 2252b6b1f7..ab98b9e120 100644
--- a/engines/hopkins/hopkins.h
+++ b/engines/hopkins/hopkins.h
@@ -144,7 +144,7 @@ protected:
public:
Debugger _debugger;
AnimationManager *_animationManager;
- ComputerManager _computerManager;
+ ComputerManager *_computerManager;
DialogsManager _dialogsManager;
EventsManager _eventsManager;
FontManager _fontManager;