aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/hopkins/dialogs.cpp4
-rw-r--r--engines/hopkins/events.cpp33
-rw-r--r--engines/hopkins/events.h6
-rw-r--r--engines/hopkins/hopkins.cpp31
4 files changed, 40 insertions, 34 deletions
diff --git a/engines/hopkins/dialogs.cpp b/engines/hopkins/dialogs.cpp
index e13e820bb8..fe5f8cc2a5 100644
--- a/engines/hopkins/dialogs.cpp
+++ b/engines/hopkins/dialogs.cpp
@@ -43,12 +43,12 @@ DialogsManager::DialogsManager() {
_inventWidth = _inventHeight = 0;
_inventWin1 = g_PTRNUL;
_inventBuf2 = g_PTRNUL;
- _inventoryIcons = NULL;
+ _inventoryIcons = g_PTRNUL;
}
DialogsManager::~DialogsManager() {
_vm->_globals.freeMemory(_inventWin1);
- free(_inventoryIcons);
+ _vm->_globals.freeMemory(_inventoryIcons);
}
void DialogsManager::setParent(HopkinsEngine *vm) {
diff --git a/engines/hopkins/events.cpp b/engines/hopkins/events.cpp
index c55d0c5395..769696e2a0 100644
--- a/engines/hopkins/events.cpp
+++ b/engines/hopkins/events.cpp
@@ -64,6 +64,39 @@ void EventsManager::setParent(HopkinsEngine *vm) {
_vm = vm;
}
+void EventsManager::initMouseData() {
+ if (_vm->getPlatform() == Common::kPlatformLinux)
+ _mouseLinuxFl = true;
+ else
+ _mouseLinuxFl = false;
+
+ if (_mouseLinuxFl) {
+ _mouseSizeX = 52;
+ _mouseSizeY = 32;
+ } else {
+ _mouseSizeX = 34;
+ _mouseSizeY = 20;
+ }
+
+ switch (_vm->_globals._language) {
+ case LANG_EN:
+ if (!_mouseLinuxFl)
+ _mouseCursor = _vm->_fileManager.loadFile("SOUAN.SPR");
+ else
+ _mouseCursor = _vm->_fileManager.loadFile("LSOUAN.SPR");
+ break;
+ case LANG_FR:
+ if (!_mouseLinuxFl)
+ _mouseCursor = _vm->_fileManager.loadFile("SOUFR.SPR");
+ else
+ _mouseCursor = _vm->_fileManager.loadFile("LSOUFR.SPR");
+ break;
+ case LANG_SP:
+ _mouseCursor = _vm->_fileManager.loadFile("SOUES.SPR");
+ break;
+ }
+}
+
// Mouse On
void EventsManager::setMouseOn() {
_mouseFl = true;
diff --git a/engines/hopkins/events.h b/engines/hopkins/events.h
index 03f8593091..d4759dfe1b 100644
--- a/engines/hopkins/events.h
+++ b/engines/hopkins/events.h
@@ -42,6 +42,8 @@ private:
uint32 _priorCounterTime;
uint32 _priorFrameTime;
bool _keyState[256];
+ bool _mouseLinuxFl;
+ int _mouseSizeX, _mouseSizeY;
HopkinsEngine *_vm;
@@ -56,7 +58,6 @@ public:
uint32 _gameCounter;
bool _escKeyFl;
bool _mouseFl;
- bool _mouseLinuxFl;
bool _breakoutFl;
Common::Point _startPos;
Common::Point _mousePos;
@@ -65,13 +66,14 @@ public:
int _curMouseButton;
int _mouseButton;
int _mouseCursorId;
- int _mouseSizeX, _mouseSizeY;
byte *_objectBuf;
byte *_mouseCursor;
EventsManager();
~EventsManager();
void setParent(HopkinsEngine *vm);
+ void initMouseData();
+
void delay(int totalMilli);
void changeMouseCursor(int id);
void refreshEvents();
diff --git a/engines/hopkins/hopkins.cpp b/engines/hopkins/hopkins.cpp
index 2b7c026111..a8695dbe70 100644
--- a/engines/hopkins/hopkins.cpp
+++ b/engines/hopkins/hopkins.cpp
@@ -1557,36 +1557,7 @@ void HopkinsEngine::initializeSystem() {
SearchMan.addSubDirectoryMatching(gameDataDir, "VOICE");
SearchMan.addSubDirectoryMatching(gameDataDir, "TSVGA");
- if (getPlatform() == Common::kPlatformLinux)
- _eventsManager._mouseLinuxFl = true;
- else
- _eventsManager._mouseLinuxFl = false;
-
- if (_eventsManager._mouseLinuxFl) {
- _eventsManager._mouseSizeX = 52;
- _eventsManager._mouseSizeY = 32;
- } else {
- _eventsManager._mouseSizeX = 34;
- _eventsManager._mouseSizeY = 20;
- }
-
- switch (_globals._language) {
- case LANG_EN:
- if (!_eventsManager._mouseLinuxFl)
- _eventsManager._mouseCursor = _fileManager.loadFile("SOUAN.SPR");
- else
- _eventsManager._mouseCursor = _fileManager.loadFile("LSOUAN.SPR");
- break;
- case LANG_FR:
- if (!_eventsManager._mouseLinuxFl)
- _eventsManager._mouseCursor = _fileManager.loadFile("SOUFR.SPR");
- else
- _eventsManager._mouseCursor = _fileManager.loadFile("LSOUFR.SPR");
- break;
- case LANG_SP:
- _eventsManager._mouseCursor = _fileManager.loadFile("SOUES.SPR");
- break;
- }
+ _eventsManager.initMouseData();
_globals.clearAll();