diff options
author | Strangerke | 2013-02-10 11:15:19 +0100 |
---|---|---|
committer | Strangerke | 2013-02-10 11:15:19 +0100 |
commit | 2044a71c27da1b45e0c0bcef22b2472a4f68009d (patch) | |
tree | c708f3d7df9cbe263fe44df2fcae3152bec897e1 | |
parent | d102511da621426e7c8f31f8f0eacd9bda2ce29f (diff) | |
download | scummvm-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!.
-rw-r--r-- | engines/hopkins/globals.cpp | 13 | ||||
-rw-r--r-- | engines/hopkins/globals.h | 4 | ||||
-rw-r--r-- | engines/hopkins/objects.cpp | 6 | ||||
-rw-r--r-- | engines/hopkins/script.cpp | 2 |
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'): { |