aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorStrangerke2013-02-10 11:15:19 +0100
committerStrangerke2013-02-10 11:15:19 +0100
commit2044a71c27da1b45e0c0bcef22b2472a4f68009d (patch)
treec708f3d7df9cbe263fe44df2fcae3152bec897e1 /engines
parentd102511da621426e7c8f31f8f0eacd9bda2ce29f (diff)
downloadscummvm-rg350-2044a71c27da1b45e0c0bcef22b2472a4f68009d.tar.gz
scummvm-rg350-2044a71c27da1b45e0c0bcef22b2472a4f68009d.tar.bz2
scummvm-rg350-2044a71c27da1b45e0c0bcef22b2472a4f68009d.zip
HOPKINS: (mostly) fix the priority bug in the city map. Still rare visible glitches on the chimney, but the birds are ok!.
Diffstat (limited to 'engines')
-rw-r--r--engines/hopkins/globals.cpp13
-rw-r--r--engines/hopkins/globals.h4
-rw-r--r--engines/hopkins/objects.cpp6
-rw-r--r--engines/hopkins/script.cpp2
4 files changed, 12 insertions, 13 deletions
diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp
index 68ff012076..5a44ce8788 100644
--- a/engines/hopkins/globals.cpp
+++ b/engines/hopkins/globals.cpp
@@ -405,11 +405,15 @@ void Globals::CACHE_ON() {
_cacheFl = true;
}
-// TODO: Find why some calls have a parameter value
-void Globals::CACHE_OFF(int v1) {
+void Globals::CACHE_OFF() {
_cacheFl = false;
}
+void Globals::B_CACHE_OFF(int idx) {
+ assert(idx < 36);
+ _bob[idx].field34 = true;
+}
+
void Globals::CACHE_SUB(int idx) {
Cache[idx]._useCount = 0;
}
@@ -459,9 +463,4 @@ void Globals::loadCache(const Common::String &file) {
freeMemory(v2);
}
-void Globals::B_CACHE_OFF(int idx) {
- _bob[idx].field34 = true;
-}
-
-
} // End of namespace Hopkins
diff --git a/engines/hopkins/globals.h b/engines/hopkins/globals.h
index 9c730bb1da..ba42b9d0f2 100644
--- a/engines/hopkins/globals.h
+++ b/engines/hopkins/globals.h
@@ -275,7 +275,6 @@ private:
void INIT_ANIM();
void INIT_VBOB();
- void B_CACHE_OFF(int idx);
public:
bool _disableInventFl;
@@ -385,7 +384,8 @@ public:
void CLEAR_VBOB();
void CACHE_ON();
- void CACHE_OFF(int v1 = 0);
+ void CACHE_OFF();
+ void B_CACHE_OFF(int idx);
void CACHE_SUB(int idx);
void CACHE_ADD(int idx);
};
diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp
index febe74c8eb..03ded6eb40 100644
--- a/engines/hopkins/objects.cpp
+++ b/engines/hopkins/objects.cpp
@@ -1818,9 +1818,9 @@ void ObjectsManager::handleCityMap() {
_vm->_graphicsManager.VISU_ALL();
_vm->_graphicsManager.INI_ECRAN2("PLAN", false);
for (int i = 0; i <= 15; i++)
- _vm->_globals.CACHE_OFF(i);
- _vm->_globals.CACHE_OFF(19);
- _vm->_globals.CACHE_OFF(20);
+ _vm->_globals.B_CACHE_OFF(i);
+ _vm->_globals.B_CACHE_OFF(19);
+ _vm->_globals.B_CACHE_OFF(20);
_vm->_globals.CACHE_ON();
if (!_mapCarPosX && !_mapCarPosY) {
diff --git a/engines/hopkins/script.cpp b/engines/hopkins/script.cpp
index f124280c75..e1c1a6cfb9 100644
--- a/engines/hopkins/script.cpp
+++ b/engines/hopkins/script.cpp
@@ -494,7 +494,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
opcodeType = 5;
break;
case MKTAG24('B', 'C', 'A'):
- _vm->_globals.CACHE_OFF((int16)READ_LE_UINT16(dataP + 5));
+ _vm->_globals.B_CACHE_OFF((int16)READ_LE_UINT16(dataP + 5));
opcodeType = 1;
break;
case MKTAG24('A', 'N', 'I'): {