diff options
Diffstat (limited to 'engines/scumm/he')
-rw-r--r-- | engines/scumm/he/intern_he.h | 1 | ||||
-rw-r--r-- | engines/scumm/he/logic/basketball.cpp | 2 | ||||
-rw-r--r-- | engines/scumm/he/resource_he.cpp | 34 | ||||
-rw-r--r-- | engines/scumm/he/script_v90he.cpp | 2 |
4 files changed, 37 insertions, 2 deletions
diff --git a/engines/scumm/he/intern_he.h b/engines/scumm/he/intern_he.h index f4df6571fa..cdc5faa084 100644 --- a/engines/scumm/he/intern_he.h +++ b/engines/scumm/he/intern_he.h @@ -458,6 +458,7 @@ protected: virtual void saveOrLoad(Serializer *s); virtual void readMAXS(int blockSize); + void setResourceOffHeap(int typeId, int resId, int val); virtual void processActors(); diff --git a/engines/scumm/he/logic/basketball.cpp b/engines/scumm/he/logic/basketball.cpp index 8352aa4357..a4da8e05dc 100644 --- a/engines/scumm/he/logic/basketball.cpp +++ b/engines/scumm/he/logic/basketball.cpp @@ -157,7 +157,7 @@ int LogicHEbasketball::op_1012() { int LogicHEbasketball::op_1050(int32 *args) { // This function loads the court data - static const char *courtNames[] = { + static const char *const courtNames[] = { "Dobbaguchi", "Jocindas", "SandyFlats", "Queens", "Park", "Scheffler", "Polk", "McMillan", "CrownHill", "Memorial", "TechState", "Garden", diff --git a/engines/scumm/he/resource_he.cpp b/engines/scumm/he/resource_he.cpp index 39240e347f..42748d08ed 100644 --- a/engines/scumm/he/resource_he.cpp +++ b/engines/scumm/he/resource_he.cpp @@ -386,6 +386,40 @@ int ScummEngine_v72he::getSoundResourceSize(ResId id) { return size; } +void ScummEngine_v90he::setResourceOffHeap(int typeId, int resId, int val) { + debug(0, "setResourceOffHeap: type %d resId %d toggle %d", typeId, resId, val); + ResType type; + + switch (typeId) { + case 1: + type = rtRoom; + break; + case 2: + type = rtScript; + break; + case 3: + type = rtCostume; + break; + case 4: + type = rtSound; + break; + case 6: + type = rtCharset; + break; + case 19: + type = rtImage; + break; + default: + error("setResourceOffHeap: default case %d", typeId); + } + + if (val == 1) { + _res->setOffHeap(type, resId); + } else { + _res->setOnHeap(type, resId); + } +} + #endif } // End of namespace Scumm diff --git a/engines/scumm/he/script_v90he.cpp b/engines/scumm/he/script_v90he.cpp index 66a0a34d16..877f8b239d 100644 --- a/engines/scumm/he/script_v90he.cpp +++ b/engines/scumm/he/script_v90he.cpp @@ -2358,7 +2358,7 @@ void ScummEngine_v90he::o90_kernelSetFunctions() { _wiz->_rectOverrideEnabled = false; break; case 714: - debug(5, "o90_kernelSetFunctions: case 714: type %d resId %d unk1 %d", args[1], args[2], args[3]); + setResourceOffHeap(args[1], args[2], args[3]); break; case 1492: // Remote start script function |