aboutsummaryrefslogtreecommitdiff
path: root/engines/neverhood/gamemodule.cpp
diff options
context:
space:
mode:
authorjohndoe1232012-10-15 15:50:43 +0000
committerWillem Jan Palenstijn2013-05-08 20:47:07 +0200
commit6df8fccf6b90399490543b142bb88976565aae2f (patch)
tree8e0ef1c353292fe8720c237368c662e0ff2bccc2 /engines/neverhood/gamemodule.cpp
parent9858705772f88af82a811979831aa46b107330cd (diff)
downloadscummvm-rg350-6df8fccf6b90399490543b142bb88976565aae2f.tar.gz
scummvm-rg350-6df8fccf6b90399490543b142bb88976565aae2f.tar.bz2
scummvm-rg350-6df8fccf6b90399490543b142bb88976565aae2f.zip
NEVERHOOD: Implement GameModule::createModuleByHash
This is used later when restoring savegames - Rename V_RING5_PULLED to V_RADIO_ENABLED - Implement Palette::fillBaseBlack and use it in Scene2803Small - Fix Scene2802 (show disabled radio if it's not enabled)
Diffstat (limited to 'engines/neverhood/gamemodule.cpp')
-rw-r--r--engines/neverhood/gamemodule.cpp70
1 files changed, 70 insertions, 0 deletions
diff --git a/engines/neverhood/gamemodule.cpp b/engines/neverhood/gamemodule.cpp
index ca22c01eca..da432c5dbb 100644
--- a/engines/neverhood/gamemodule.cpp
+++ b/engines/neverhood/gamemodule.cpp
@@ -517,6 +517,76 @@ void GameModule::createModule(int moduleNum, int which) {
_childObject->handleUpdate();
}
+void GameModule::createModuleByHash(uint32 nameHash) {
+ switch (nameHash) {
+ case 0x03294419:
+ createModule(1000, -1);
+ break;
+ case 0x0002C818:
+ createModule(1100, -1);
+ break;
+ case 0x00478311:
+ createModule(1200, -1);
+ break;
+ case 0x0061C090:
+ createModule(1300, -1);
+ break;
+ case 0x00AD0012:
+ createModule(1400, -1);
+ break;
+ case 0x00F10114:
+ createModule(1500, -1);
+ break;
+ case 0x01A008D8:
+ createModule(1600, -1);
+ break;
+ case 0x04212331:
+ createModule(1700, -1);
+ break;
+ case 0x04A14718:
+ createModule(1800, -1);
+ break;
+ case 0x04E1C09C:
+ createModule(1900, -1);
+ break;
+ case 0x08250000:
+ createModule(2000, -1);
+ break;
+ case 0x10A10C14:
+ createModule(2100, -1);
+ break;
+ case 0x11391412:
+ createModule(2200, -1);
+ break;
+ case 0x1A214010:
+ createModule(2300, -1);
+ break;
+ case 0x202D1010:
+ createModule(2400, -1);
+ break;
+ case 0x29220120:
+ createModule(2500, -1);
+ break;
+ case 0x40271018:
+ createModule(2600, -1);
+ break;
+ case 0x42212411:
+ createModule(2700, -1);
+ break;
+ case 0x64210814:
+ createModule(2800, -1);
+ break;
+ case 0x81100020:
+ createModule(2900, -1);
+ break;
+ case 0x81293110:
+ createModule(3000, -1);
+ break;
+ default:
+ error("GameModule::createModuleByHash() Unknown module name %08X", nameHash);
+ }
+}
+
void GameModule::updateModule() {
if (!updateChild()) {
switch (_moduleNum) {