aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/hopkins/events.cpp1
-rw-r--r--engines/hopkins/font.cpp15
-rw-r--r--engines/hopkins/font.h12
-rw-r--r--engines/hopkins/globals.cpp21
-rw-r--r--engines/hopkins/globals.h22
-rw-r--r--engines/hopkins/hopkins.cpp1
-rw-r--r--engines/hopkins/menu.cpp30
-rw-r--r--engines/hopkins/sound.cpp2
8 files changed, 58 insertions, 46 deletions
diff --git a/engines/hopkins/events.cpp b/engines/hopkins/events.cpp
index e2f6c9df1f..531ae51456 100644
--- a/engines/hopkins/events.cpp
+++ b/engines/hopkins/events.cpp
@@ -218,6 +218,7 @@ void EventsManager::pollEvents() {
case Common::EVENT_LBUTTONUP:
case Common::EVENT_RBUTTONDOWN:
case Common::EVENT_RBUTTONUP:
+
return;
default:
diff --git a/engines/hopkins/font.cpp b/engines/hopkins/font.cpp
index fe4e9df46c..4a99dd357a 100644
--- a/engines/hopkins/font.cpp
+++ b/engines/hopkins/font.cpp
@@ -30,6 +30,21 @@ void FontManager::setParent(HopkinsEngine *vm) {
_vm = vm;
}
+void FontManager::clearAll() {
+ for (int idx = 0; idx < 11; ++idx) {
+ Txt[idx].field0 = 0;
+ Txt[idx].field12 = 0;
+ Txt[idx].field3FC = 0;
+ Txt[idx].field3FE = 0;
+ Txt[idx].field400 = 0;
+ Txt[idx].field404 = 0;
+ Txt[idx].field406 = 0;
+ Txt[idx].field408 = 0;
+
+ ListeTxt[idx].field0 = 0;
+ }
+}
+
void FontManager::TEXTE_OFF(int idx) {
warning("TODO: TEXTE_OFF");
}
diff --git a/engines/hopkins/font.h b/engines/hopkins/font.h
index 8cb86fbd9c..8402de0ba0 100644
--- a/engines/hopkins/font.h
+++ b/engines/hopkins/font.h
@@ -39,18 +39,30 @@ struct TxtItem {
int fieldC;
int fieldE;
int field10;
+ int field12;
int field3FC;
int field3FE;
+ int field400;
+ int field404;
+ int field406;
+ int field408;
int field40A;
};
+struct ListeTxtItem {
+ int field0;
+};
+
+
class FontManager {
private:
HopkinsEngine *_vm;
public:
TxtItem Txt[12];
+ ListeTxtItem ListeTxt[11];
public:
void setParent(HopkinsEngine *vm);
+ void clearAll();
void TEXTE_OFF(int idx);
};
diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp
index 0a5bd707c1..fd4fa48a66 100644
--- a/engines/hopkins/globals.cpp
+++ b/engines/hopkins/globals.cpp
@@ -22,8 +22,10 @@
#include "common/textconsole.h"
#include "hopkins/globals.h"
-#include "hopkins/graphics.h"
#include "hopkins/files.h"
+#include "hopkins/font.h"
+#include "hopkins/graphics.h"
+#include "hopkins/hopkins.h"
namespace Hopkins {
@@ -144,6 +146,10 @@ Globals::~Globals() {
free(PERSO);
}
+void Globals::setParent(HopkinsEngine *vm) {
+ _vm = vm;
+}
+
void Globals::setConfig() {
HOPIMAGE = "BUFFER";
HOPANIM = "ANIM";
@@ -189,18 +195,7 @@ void Globals::clearAll() {
hauteur_boite = 0;
largeur_boite = 0;
- for (int idx = 0; idx < 11; ++idx) {
- Txt[idx].field0 = 0;
- Txt[idx].field12 = 0;
- Txt[idx].field3FC = 0;
- Txt[idx].field3FE = 0;
- Txt[idx].field400 = 0;
- Txt[idx].field404 = 0;
- Txt[idx].field406 = 0;
- Txt[idx].field408 = 0;
-
- ListeTxt[idx].field0 = 0;
- }
+ _vm->_fontManager.clearAll();
INIT_VBOB();
ADR_FICHIER_OBJ = PTRNUL;
diff --git a/engines/hopkins/globals.h b/engines/hopkins/globals.h
index 18aca79f25..f018b187a2 100644
--- a/engines/hopkins/globals.h
+++ b/engines/hopkins/globals.h
@@ -28,21 +28,6 @@
namespace Hopkins {
-struct TxtItem {
- int field0;
- int field12;
- int field3FC;
- int field3FE;
- int field400;
- int field404;
- int field406;
- int field408;
-};
-
-struct ListeTxtItem {
- int field0;
-};
-
struct ZonePItem {
int field0;
int field2;
@@ -156,10 +141,14 @@ struct BlocItem {
int y2;
};
+class HopkinsEngine;
+
/**
* Engine Globals
*/
class Globals {
+private:
+ HopkinsEngine *_vm;
public:
int FR;
int SVGA;
@@ -206,8 +195,6 @@ public:
byte *ICONE;
byte *BUF_ZONE;
byte *CACHE_BANQUE[6];
- TxtItem Txt[11];
- ListeTxtItem ListeTxt[11];
ZonePItem ZoneP[105];
LigneItem Ligne[400];
LigneZoneItem LigneZone[400];
@@ -277,6 +264,7 @@ public:
Globals();
~Globals();
+ void setParent(HopkinsEngine *vm);
void setConfig();
void clearAll();
diff --git a/engines/hopkins/hopkins.cpp b/engines/hopkins/hopkins.cpp
index e515329eb4..343f12b9d7 100644
--- a/engines/hopkins/hopkins.cpp
+++ b/engines/hopkins/hopkins.cpp
@@ -40,6 +40,7 @@ HopkinsEngine::HopkinsEngine(OSystem *syst, const HopkinsGameDescription *gameDe
_animationManager.setParent(this);
_eventsManager.setParent(this);
_fontManager.setParent(this);
+ _globals.setParent(this);
_graphicsManager.setParent(this);
_menuManager.setParent(this);
_objectsManager.setParent(this);
diff --git a/engines/hopkins/menu.cpp b/engines/hopkins/menu.cpp
index b204223757..950acc5ab1 100644
--- a/engines/hopkins/menu.cpp
+++ b/engines/hopkins/menu.cpp
@@ -38,7 +38,7 @@ void MenuManager::setParent(HopkinsEngine *vm) {
int MenuManager::MENU() {
byte *spriteData = NULL;
- signed int v2;
+ signed int menuIndex;
int v3;
int v4;
signed int v6;
@@ -99,25 +99,25 @@ int MenuManager::MENU() {
if (g_system->getEventManager()->shouldQuit())
return -1;
- v2 = 0;
+ menuIndex = 0;
v3 = _vm->_eventsManager.XMOUSE();
v4 = _vm->_eventsManager.YMOUSE();
- if ((unsigned int)(v3 - 232) <= 0xB0) {
+ if ((unsigned int)(v3 - 232) <= 176) {
if ((unsigned int)(v4 - 261) <= 23)
- v2 = 1;
+ menuIndex = 1;
if ((unsigned int)(v4 - 293) <= 23)
- v2 = 2;
+ menuIndex = 2;
if ((unsigned int)(v4 - 325) <= 22)
- v2 = 3;
+ menuIndex = 3;
if ((unsigned int)(v4 - 356) <= 23)
- v2 = 4;
+ menuIndex = 4;
if ((unsigned int)(v4 - 388) <= 23)
- v2 = 5;
+ menuIndex = 5;
}
- switch (v2) {
+ switch (menuIndex) {
case 0:
v11 = 0;
v10 = 0;
@@ -170,17 +170,17 @@ int MenuManager::MENU() {
_vm->_graphicsManager.AFFICHE_SPEED(spriteData, 230, 386, v7 + 8);
_vm->_graphicsManager.VBL();
- if (_vm->_eventsManager.BMOUSE() == 1 && v2 > 0)
+ if (_vm->_eventsManager.BMOUSE() == 1 && menuIndex > 0)
v12 = 1;
} while (v12 != 1);
- if (v2 == 1) {
+ if (menuIndex == 1) {
_vm->_graphicsManager.AFFICHE_SPEED(spriteData, 230, 259, 10);
_vm->_graphicsManager.VBL();
_vm->_eventsManager.delay(200);
v6 = 1;
}
- if (v2 != 2)
+ if (menuIndex != 2)
break;
_vm->_graphicsManager.AFFICHE_SPEED(spriteData, 230, 291, 11);
@@ -197,7 +197,7 @@ int MenuManager::MENU() {
_vm->_globals.SORTIE = 0;
}
- if (v2 != 3)
+ if (menuIndex != 3)
break;
_vm->_graphicsManager.AFFICHE_SPEED(spriteData, 230, 322, 12);
@@ -206,7 +206,7 @@ int MenuManager::MENU() {
CHOICE_OPTION();
}
- if (v2 == 4) {
+ if (menuIndex == 4) {
_vm->_graphicsManager.AFFICHE_SPEED(spriteData, 230, 354, 13);
_vm->_graphicsManager.VBL();
_vm->_eventsManager.delay(200);
@@ -214,7 +214,7 @@ int MenuManager::MENU() {
continue;
}
- if ( v2 == 5 ) {
+ if ( menuIndex == 5 ) {
_vm->_graphicsManager.AFFICHE_SPEED(spriteData, 230, 386, 14);
_vm->_graphicsManager.VBL();
_vm->_eventsManager.delay(200);
diff --git a/engines/hopkins/sound.cpp b/engines/hopkins/sound.cpp
index 219797b190..ea19b8fba7 100644
--- a/engines/hopkins/sound.cpp
+++ b/engines/hopkins/sound.cpp
@@ -36,7 +36,7 @@ void SoundManager::WSOUND_INIT() {
}
void SoundManager::VERIF_SOUND() {
- warning("TODO: VERIF_SOUND");
+// warning("TODO: VERIF_SOUND");
}
void SoundManager::LOAD_ANM_SOUND() {