diff options
-rw-r--r-- | engines/neverhood/gamemodule.cpp | 41 | ||||
-rw-r--r-- | engines/neverhood/klayman.cpp | 19 | ||||
-rw-r--r-- | engines/neverhood/klayman.h | 2 | ||||
-rw-r--r-- | engines/neverhood/module.cpp | 13 | ||||
-rw-r--r-- | engines/neverhood/module.h | 3 | ||||
-rw-r--r-- | engines/neverhood/module1000.cpp | 8 | ||||
-rw-r--r-- | engines/neverhood/module1200.cpp | 4 | ||||
-rw-r--r-- | engines/neverhood/module1300.cpp | 34 | ||||
-rw-r--r-- | engines/neverhood/module1400.cpp | 12 | ||||
-rw-r--r-- | engines/neverhood/module1700.cpp | 10 | ||||
-rw-r--r-- | engines/neverhood/module1800.cpp | 30 | ||||
-rw-r--r-- | engines/neverhood/module2000.cpp | 8 | ||||
-rw-r--r-- | engines/neverhood/module2200.cpp | 170 | ||||
-rw-r--r-- | engines/neverhood/module2300.cpp | 16 | ||||
-rw-r--r-- | engines/neverhood/module3000.cpp | 35 | ||||
-rw-r--r-- | engines/neverhood/sprite.h | 1 |
16 files changed, 197 insertions, 209 deletions
diff --git a/engines/neverhood/gamemodule.cpp b/engines/neverhood/gamemodule.cpp index 6ef58e4fae..efd191eb0c 100644 --- a/engines/neverhood/gamemodule.cpp +++ b/engines/neverhood/gamemodule.cpp @@ -238,20 +238,17 @@ uint32 GameModule::handleMessage(int messageNum, const MessageParam ¶m, Enti _someFlag1 = true; return messageResult; case 0x1009: - _field24 = -1; - _field26 = -1; - _field28 = -1; - _field20 = param.asInteger(); + _moduleResult = param.asInteger(); _done = true; return messageResult; case 0x100A: - _field24 = (int16)param.asInteger(); + // Unused resource preloading message return messageResult; case 0x101F: _field2C = true; return messageResult; case 0x1023: - _field26 = (int16)param.asInteger(); + // Unused resource preloading message return messageResult; } return messageResult; @@ -310,7 +307,7 @@ void GameModule::createModule1200(int which) { void GameModule::updateModule1200() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { error("// TODO createModule2600(0);"); // TODO createModule2600(0); // TODO _childObject->handleUpdate(); @@ -329,7 +326,7 @@ void GameModule::createModule1300(int which) { void GameModule::updateModule1300() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { // TODO _gameState.clear(); // TODO GameModule_handleKeyEscape } else { @@ -347,7 +344,7 @@ void GameModule::createModule1400(int which) { void GameModule::updateModule1400() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { error("WEIRD!"); } else { // TODO createModule1600(1); @@ -378,8 +375,8 @@ void GameModule::createModule1700(int which) { void GameModule::updateModule1700() { if (!updateChild()) { - debug("Module1700 done; _field20 = %d", _field20); - if (_field20 == 1) { + debug("Module1700 done; _moduleResult = %d", _moduleResult); + if (_moduleResult == 1) { // TODO createModule2900(3); // TODO _childObject->handleUpdate(); } else { @@ -397,13 +394,13 @@ void GameModule::createModule1800(int which) { void GameModule::updateModule1800() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { // TODO GameState_clear(); // TODO GameModule_handleKeyEscape(); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { // TODO createModule2700(0); // TODO _childObject->handleUpdate(); - } else if (_field20 == 3) { + } else if (_moduleResult == 3) { // TODO createModule3000(3); // TODO _childObject->handleUpdate(); } else { @@ -447,13 +444,13 @@ void GameModule::createModule2300(int which) { void GameModule::updateModule2300() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createModule2200(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createModule1200(0); - } else if (_field20 == 3) { + } else if (_moduleResult == 3) { // TODO createModule2400(0); - } else if (_field20 == 4) { + } else if (_moduleResult == 4) { // TODO createModule3000(0); } else { createModule1000(1); @@ -474,15 +471,15 @@ void GameModule::createModule3000(int which) { void GameModule::updateModule3000() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { // TODO createModule1900(0); // TODO _childObject->handleUpdate(); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { // WEIRD: Sets the errorFlag - } else if (_field20 == 3) { + } else if (_moduleResult == 3) { createModule1800(3); _childObject->handleUpdate(); - } else if (_field20 == 4) { + } else if (_moduleResult == 4) { // TODO createModule3000(0); // TODO _childObject->handleUpdate(); } else { diff --git a/engines/neverhood/klayman.cpp b/engines/neverhood/klayman.cpp index 7102870f1e..b5d266e30f 100644 --- a/engines/neverhood/klayman.cpp +++ b/engines/neverhood/klayman.cpp @@ -1340,15 +1340,13 @@ void Klayman::sub41FC40() { } uint32 Klayman::handleMessage41E3C0(int messageNum, const MessageParam ¶m, Entity *sender) { + int16 speedUpFrameIndex; switch (messageNum) { case 0x1008: - debug("case 0x1008"); -#if 0 // TODO - if (_frameIndex < getHashListIndexByString("SpeedUp")) { - setFileHash(0xAC20C012, getHashListIndexByString("SpeedUp"), -1) - _y = 435; + speedUpFrameIndex = getFrameIndex(kKlaymanSpeedUpHash); + if (_frameIndex < speedUpFrameIndex) { + setFileHash(0xAC20C012, speedUpFrameIndex, -1); } -#endif return 0; case 0x100D: if (param.asInteger() == 0x32180101) { @@ -2371,16 +2369,15 @@ uint32 KmScene1002::handleMessage449BA0(int messageNum, const MessageParam ¶ } uint32 KmScene1002::handleMessage449C90(int messageNum, const MessageParam ¶m, Entity *sender) { + int16 speedUpFrameIndex; uint32 messageResult = handleMessage41D480(messageNum, param, sender); switch (messageNum) { case 0x1008: - debug("case 0x1008"); -#if 0 // TODO - if (_frameIndex < getHashListIndexByString("SpeedUp")) { - setFileHash(0x35AA8059, getHashListIndexByString("SpeedUp"), -1) + speedUpFrameIndex = getFrameIndex(kKlaymanSpeedUpHash); + if (_frameIndex < speedUpFrameIndex) { + setFileHash(0x35AA8059, speedUpFrameIndex, -1); _y = 435; } -#endif messageResult = 0; break; case 0x100D: diff --git a/engines/neverhood/klayman.h b/engines/neverhood/klayman.h index a25176eefd..3f15b8fb28 100644 --- a/engines/neverhood/klayman.h +++ b/engines/neverhood/klayman.h @@ -34,6 +34,8 @@ namespace Neverhood { class Klayman; +const uint32 kKlaymanSpeedUpHash = 0x004A2148; + struct KlaymanTableItem { int value; void (Klayman::*callback)(); diff --git a/engines/neverhood/module.cpp b/engines/neverhood/module.cpp index 6d49838c49..78775ceba1 100644 --- a/engines/neverhood/module.cpp +++ b/engines/neverhood/module.cpp @@ -28,7 +28,7 @@ namespace Neverhood { Module::Module(NeverhoodEngine *vm, Module *parentModule) : Entity(vm, 0), _parentModule(parentModule), _childObject(NULL), - _done(false), _field24(-1), _field26(-1), _field28(-1) { + _done(false) { SetMessageHandler(&Module::handleMessage); @@ -50,20 +50,13 @@ uint32 Module::handleMessage(int messageNum, const MessageParam ¶m, Entity * sendMessage(_parentModule, 8, 0); return 0; case 0x1009: - _field24 = -1; - _field26 = -1; - _field28 = -1; - _field20 = param.asInteger(); + _moduleResult = param.asInteger(); _done = true; return 0; case 0x100A: - _field24 = (int16)param.asInteger(); - return 0; case 0x1023: - _field26 = (int16)param.asInteger(); - return 0; case 0x1024: - _field28 = (int16)param.asInteger(); + // Unused resource preloading messages return 0; default: if (_childObject && sender == _parentModule) diff --git a/engines/neverhood/module.h b/engines/neverhood/module.h index a37fd522aa..2f272d71b6 100644 --- a/engines/neverhood/module.h +++ b/engines/neverhood/module.h @@ -47,8 +47,7 @@ protected: Module *_parentModule; Entity *_childObject; bool _done; - int16 _field24, _field26, _field28; - uint32 _field20; + uint32 _moduleResult; uint32 handleMessage(int messageNum, const MessageParam ¶m, Entity *sender); NavigationScene *navigationScene(); void createNavigationScene(uint32 navigationListId, int navigationIndex, const byte *itemsTypes = NULL); diff --git a/engines/neverhood/module1000.cpp b/engines/neverhood/module1000.cpp index 51e1d1959d..8185430d16 100644 --- a/engines/neverhood/module1000.cpp +++ b/engines/neverhood/module1000.cpp @@ -102,7 +102,7 @@ void Module1000::createScene1005(int which) { void Module1000::updateScene1001() { if (!updateChild()) { - if (_field20 == 2) { + if (_moduleResult == 2) { createScene1003(0); _childObject->handleUpdate(); } else { @@ -114,9 +114,9 @@ void Module1000::updateScene1001() { void Module1000::updateScene1002() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { sendMessage(_parentModule, 0x1009, 0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene1004(0); _childObject->handleUpdate(); } else { @@ -135,7 +135,7 @@ void Module1000::updateScene1003() { void Module1000::updateScene1004() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene1005(0); _childObject->handleUpdate(); } else { diff --git a/engines/neverhood/module1200.cpp b/engines/neverhood/module1200.cpp index fa0bea0e94..9e198cc67c 100644 --- a/engines/neverhood/module1200.cpp +++ b/engines/neverhood/module1200.cpp @@ -80,10 +80,10 @@ void Module1200::createScene1203(int which) { void Module1200::updateScene1201() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene1202(0); _childObject->handleUpdate(); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { if (getGlobalVar(0x0A18CA33) && !getGlobalVar(0x2A02C07B)) { createScene1203(-1); } else { diff --git a/engines/neverhood/module1300.cpp b/engines/neverhood/module1300.cpp index 149af4a071..189ee2c2ff 100644 --- a/engines/neverhood/module1300.cpp +++ b/engines/neverhood/module1300.cpp @@ -284,7 +284,7 @@ void Module1300::createScene1318(int which) { void Module1300::updateScene1302() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene1305(0); } else { createScene1308(1); @@ -316,15 +316,15 @@ void Module1300::updateScene1305() { void Module1300::updateScene1306() { if (!updateChild()) { - if (_field20 == 2) { + if (_moduleResult == 2) { createScene1309(0); _childObject->handleUpdate(); - } else if (_field20 == 3) { + } else if (_moduleResult == 3) { createScene1303(0); _childObject->handleUpdate(); - } else if (_field20 == 0) { + } else if (_moduleResult == 0) { sendMessage(_parentModule, 0x1009, 0); - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { createScene1311(-1); _childObject->handleUpdate(); } @@ -340,11 +340,11 @@ void Module1300::updateScene1307() { void Module1300::updateScene1308() { if (!updateChild()) { - if (_field20 == 0) { + if (_moduleResult == 0) { createScene1314(0); - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { createScene1302(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene1307(0); } _childObject->handleUpdate(); @@ -373,9 +373,9 @@ void Module1300::updateScene1311() { void Module1300::updateScene1312() { if (!updateChild()) { - if (_field20 == 0) { + if (_moduleResult == 0) { createScene1313(0); - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { createScene1312(1); } _childObject->handleUpdate(); @@ -384,7 +384,7 @@ void Module1300::updateScene1312() { void Module1300::updateScene1313() { if (!updateChild()) { - switch (_field20) { + switch (_moduleResult) { case 0: createScene1315(1); break; @@ -404,9 +404,9 @@ void Module1300::updateScene1313() { void Module1300::updateScene1314() { if (!updateChild()) { - if (_field20 == 0) { + if (_moduleResult == 0) { createScene1313(2); - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { createScene1308(0); } _childObject->handleUpdate(); @@ -415,9 +415,9 @@ void Module1300::updateScene1314() { void Module1300::updateScene1315() { if (!updateChild()) { - if (_field20 == 0) { + if (_moduleResult == 0) { createScene1313(3); - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { createScene1310(-1); } _childObject->handleUpdate(); @@ -426,9 +426,9 @@ void Module1300::updateScene1315() { void Module1300::updateScene1316() { if (!updateChild()) { - if (_field20 == 0) { + if (_moduleResult == 0) { createScene1313(4); - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { createScene1304(0); } _childObject->handleUpdate(); diff --git a/engines/neverhood/module1400.cpp b/engines/neverhood/module1400.cpp index edc47f5a56..7f55272228 100644 --- a/engines/neverhood/module1400.cpp +++ b/engines/neverhood/module1400.cpp @@ -122,10 +122,10 @@ void Module1400::createScene1407(int which) { void Module1400::updateScene1401() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene1402(0); _childObject->handleUpdate(); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene1404(0); _childObject->handleUpdate(); } else { @@ -136,10 +136,10 @@ void Module1400::updateScene1401() { void Module1400::updateScene1402() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene1403(0); _childObject->handleUpdate(); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene1407(-1); _childObject->handleUpdate(); } else { @@ -158,10 +158,10 @@ void Module1400::updateScene1403() { void Module1400::updateScene1404() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene1405(0); _childObject->handleUpdate(); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene1406(-1); _childObject->handleUpdate(); } else { diff --git a/engines/neverhood/module1700.cpp b/engines/neverhood/module1700.cpp index 528161ea2b..0aea8d1f24 100644 --- a/engines/neverhood/module1700.cpp +++ b/engines/neverhood/module1700.cpp @@ -114,10 +114,10 @@ void Module1700::updateScene1701() { void Module1700::updateScene1702() { if (!updateChild()) { - if (_field20 == 0) { + if (_moduleResult == 0) { createScene1703(0); _childObject->handleUpdate(); - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { createScene1702(1); _childObject->handleUpdate(); } @@ -126,13 +126,13 @@ void Module1700::updateScene1702() { void Module1700::updateScene1703() { if (!updateChild()) { - if (_field20 == 0) { + if (_moduleResult == 0) { createScene1704(-1); _childObject->handleUpdate(); - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { createScene1702(1); _childObject->handleUpdate(); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { if (!_soundResource.isPlaying()) { // TODO _soundResource.setVolume(60); _soundResource.play(0x58B45E58); diff --git a/engines/neverhood/module1800.cpp b/engines/neverhood/module1800.cpp index d3dc4b6e9e..31a156461d 100644 --- a/engines/neverhood/module1800.cpp +++ b/engines/neverhood/module1800.cpp @@ -147,13 +147,13 @@ void Module1800::createScene1809(int which) { void Module1800::updateScene1801() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene1805(0); _childObject->handleUpdate(); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene1802(-1); _childObject->handleUpdate(); - } else if (_field20 == 3) { + } else if (_moduleResult == 3) { createScene1804(0); _childObject->handleUpdate(); } @@ -185,15 +185,15 @@ void Module1800::updateScene1802() { void Module1800::updateScene1803() { if (!updateChild()) { - if (_field20 == 2) { + if (_moduleResult == 2) { createScene1801(2); _childObject->handleUpdate(); - } else if (_field20 == 3) { + } else if (_moduleResult == 3) { sendMessage(_parentModule, 0x1009, 0); - } else if (_field20 == 6) { + } else if (_moduleResult == 6) { createScene1809(-1); _childObject->handleUpdate(); - } else if (_field20 == 7) { + } else if (_moduleResult == 7) { sendMessage(_parentModule, 0x1009, 3); } } @@ -201,9 +201,9 @@ void Module1800::updateScene1803() { void Module1800::updateScene1804() { if (!updateChild()) { - if (_field20 == 0) { + if (_moduleResult == 0) { createScene1804b(-1); - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { createScene1801(1); } _childObject->handleUpdate(); @@ -212,13 +212,13 @@ void Module1800::updateScene1804() { void Module1800::updateScene1805() { if (!updateChild()) { - if (_field20 == 0) { + if (_moduleResult == 0) { createScene1807(-1); - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { createScene1806(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene1801(3); - } else if (_field20 == 3) { + } else if (_moduleResult == 3) { createScene1805(3); } _childObject->handleUpdate(); @@ -227,9 +227,9 @@ void Module1800::updateScene1805() { void Module1800::updateScene1806() { if (!updateChild()) { - if (_field20 == 0) { + if (_moduleResult == 0) { sendMessage(_parentModule, 0x1009, 2); - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { createScene1805(3); _childObject->handleUpdate(); } diff --git a/engines/neverhood/module2000.cpp b/engines/neverhood/module2000.cpp index 130235512c..bedc9d4b08 100644 --- a/engines/neverhood/module2000.cpp +++ b/engines/neverhood/module2000.cpp @@ -84,7 +84,7 @@ void Module2000::createScene2003(int which) { void Module2000::updateScene2001() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { sendMessage(_parentModule, 0x1009, 0); } else { createScene2002(0); @@ -94,15 +94,15 @@ void Module2000::updateScene2001() { void Module2000::updateScene2002() { if (!updateChild()) { - if (_field20 == 0) { + if (_moduleResult == 0) { if (getGlobalVar(0x98109F12)) { createScene2002(0); } else { createScene2003(-1); } - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { createScene2002(1); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2001(0); } } diff --git a/engines/neverhood/module2200.cpp b/engines/neverhood/module2200.cpp index 321fab1484..2db0eb4bb9 100644 --- a/engines/neverhood/module2200.cpp +++ b/engines/neverhood/module2200.cpp @@ -499,9 +499,9 @@ void Module2200::createScene2248(int which) { void Module2200::updateScene2201() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2203(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2202(0); } else { sendMessage(_parentModule, 0x1009, 0); @@ -517,9 +517,9 @@ void Module2200::updateScene2202() { void Module2200::updateScene2203() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2205(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2204(0); } else { createScene2201(1); @@ -536,9 +536,9 @@ void Module2200::updateScene2204() { void Module2200::updateScene2205() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2206(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2205(2); } else { createScene2203(1); @@ -549,11 +549,11 @@ void Module2200::updateScene2205() { void Module2200::updateScene2206() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2247(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2207(0); - } else if (_field20 == 3) { + } else if (_moduleResult == 3) { createScene2209(0); } else { createScene2205(1); @@ -701,9 +701,9 @@ void Module2200::updateScene2209() { void Module2200::updateScene2210() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2211(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2247(1); @@ -714,9 +714,9 @@ void Module2200::updateScene2210() { void Module2200::updateScene2211() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2212(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2210(1); @@ -727,9 +727,9 @@ void Module2200::updateScene2211() { void Module2200::updateScene2212() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2213(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2211(1); @@ -740,9 +740,9 @@ void Module2200::updateScene2212() { void Module2200::updateScene2213() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2214(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2212(1); @@ -753,9 +753,9 @@ void Module2200::updateScene2213() { void Module2200::updateScene2214() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2215(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2213(1); @@ -766,9 +766,9 @@ void Module2200::updateScene2214() { void Module2200::updateScene2215() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2216(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2214(1); @@ -779,9 +779,9 @@ void Module2200::updateScene2215() { void Module2200::updateScene2216() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2217(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2215(1); @@ -792,9 +792,9 @@ void Module2200::updateScene2216() { void Module2200::updateScene2217() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2218(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2216(1); @@ -805,9 +805,9 @@ void Module2200::updateScene2217() { void Module2200::updateScene2218() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2219(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2217(1); @@ -818,9 +818,9 @@ void Module2200::updateScene2218() { void Module2200::updateScene2219() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2220(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2218(1); @@ -831,9 +831,9 @@ void Module2200::updateScene2219() { void Module2200::updateScene2220() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2221(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2219(1); @@ -844,9 +844,9 @@ void Module2200::updateScene2220() { void Module2200::updateScene2221() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2222(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2220(1); @@ -857,9 +857,9 @@ void Module2200::updateScene2221() { void Module2200::updateScene2222() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2223(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2221(1); @@ -870,9 +870,9 @@ void Module2200::updateScene2222() { void Module2200::updateScene2223() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2224(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2222(1); @@ -883,9 +883,9 @@ void Module2200::updateScene2223() { void Module2200::updateScene2224() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2225(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2223(1); @@ -896,9 +896,9 @@ void Module2200::updateScene2224() { void Module2200::updateScene2225() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2226(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2224(1); @@ -909,9 +909,9 @@ void Module2200::updateScene2225() { void Module2200::updateScene2226() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2227(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2225(1); @@ -922,9 +922,9 @@ void Module2200::updateScene2226() { void Module2200::updateScene2227() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2228(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2226(1); @@ -935,9 +935,9 @@ void Module2200::updateScene2227() { void Module2200::updateScene2228() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2229(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2227(1); @@ -948,9 +948,9 @@ void Module2200::updateScene2228() { void Module2200::updateScene2229() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2230(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2228(1); @@ -961,9 +961,9 @@ void Module2200::updateScene2229() { void Module2200::updateScene2230() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2231(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2229(1); @@ -974,9 +974,9 @@ void Module2200::updateScene2230() { void Module2200::updateScene2231() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2232(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2230(1); @@ -987,9 +987,9 @@ void Module2200::updateScene2231() { void Module2200::updateScene2232() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2233(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2231(1); @@ -1000,9 +1000,9 @@ void Module2200::updateScene2232() { void Module2200::updateScene2233() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2234(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2232(1); @@ -1013,9 +1013,9 @@ void Module2200::updateScene2233() { void Module2200::updateScene2234() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2235(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2233(1); @@ -1026,9 +1026,9 @@ void Module2200::updateScene2234() { void Module2200::updateScene2235() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2243(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2234(1); @@ -1039,9 +1039,9 @@ void Module2200::updateScene2235() { void Module2200::updateScene2236() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2237(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2246(1); @@ -1052,9 +1052,9 @@ void Module2200::updateScene2236() { void Module2200::updateScene2237() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2238(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2236(1); @@ -1065,9 +1065,9 @@ void Module2200::updateScene2237() { void Module2200::updateScene2238() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2239(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2237(1); @@ -1078,9 +1078,9 @@ void Module2200::updateScene2238() { void Module2200::updateScene2239() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2240(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2238(1); @@ -1091,9 +1091,9 @@ void Module2200::updateScene2239() { void Module2200::updateScene2240() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2241(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2239(1); @@ -1104,9 +1104,9 @@ void Module2200::updateScene2240() { void Module2200::updateScene2241() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2242(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2240(1); @@ -1117,10 +1117,10 @@ void Module2200::updateScene2241() { void Module2200::updateScene2242() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2248(0); _childObject->handleUpdate(); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); _childObject->handleUpdate(); } else { @@ -1132,9 +1132,9 @@ void Module2200::updateScene2242() { void Module2200::updateScene2243() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2244(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2235(1); @@ -1145,9 +1145,9 @@ void Module2200::updateScene2243() { void Module2200::updateScene2244() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2245(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2243(1); @@ -1158,9 +1158,9 @@ void Module2200::updateScene2244() { void Module2200::updateScene2245() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2246(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2244(1); @@ -1171,9 +1171,9 @@ void Module2200::updateScene2245() { void Module2200::updateScene2246() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2236(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2245(1); @@ -1184,9 +1184,9 @@ void Module2200::updateScene2246() { void Module2200::updateScene2247() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2210(0); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2208(0); } else { createScene2206(1); diff --git a/engines/neverhood/module2300.cpp b/engines/neverhood/module2300.cpp index 60f8134929..ce9250a9b6 100644 --- a/engines/neverhood/module2300.cpp +++ b/engines/neverhood/module2300.cpp @@ -126,7 +126,7 @@ void Module2300::createScene2305(int which) { void Module2300::updateScene2301() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2302(4); _childObject->handleUpdate(); } else { @@ -137,19 +137,19 @@ void Module2300::updateScene2301() { void Module2300::updateScene2302() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene2301(0); _childObject->handleUpdate(); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene2303(1); _childObject->handleUpdate(); - } else if (_field20 == 3) { + } else if (_moduleResult == 3) { createScene2302(3); _childObject->handleUpdate(); - } else if (_field20 == 4) { + } else if (_moduleResult == 4) { createScene2304(1); _childObject->handleUpdate(); - } else if (_field20 == 5) { + } else if (_moduleResult == 5) { sendMessage(_parentModule, 0x1009, 3); } else { sendMessage(_parentModule, 0x1009, 4); @@ -176,7 +176,7 @@ void Module2300::updateScene2302() { void Module2300::updateScene2303() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { sendMessage(_parentModule, 0x1009, 3); } else { createScene2302(5); @@ -187,7 +187,7 @@ void Module2300::updateScene2303() { void Module2300::updateScene2304() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { sendMessage(_parentModule, 0x1009, 2); } else { createScene2302(1); diff --git a/engines/neverhood/module3000.cpp b/engines/neverhood/module3000.cpp index bccc72352b..cfcacaf693 100644 --- a/engines/neverhood/module3000.cpp +++ b/engines/neverhood/module3000.cpp @@ -269,14 +269,14 @@ void Module3000::updateScene3002() { delete _childObject; _childObject = NULL; if (!getGlobalVar(0x01BA1A52)) { - if (_field20 == 0) { + if (_moduleResult == 0) { createScene3010(-1); _childObject->handleUpdate(); - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { sendMessage(_parentModule, 0x1009, 0); } } else { - if (_field20 == 0) { + if (_moduleResult == 0) { if (areaType == 2) { createScene3003(0); _childObject->handleUpdate(); @@ -284,7 +284,7 @@ void Module3000::updateScene3002() { //createScene3002b(-1); _childObject->handleUpdate(); } - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { sendMessage(_parentModule, 0x1009, 0); } } @@ -328,10 +328,10 @@ void Module3000::updateScene3003() { _soundVolume = 0; // TODO Sound1ChList_setVolume(0x90F0D1C3, 0); } - if (_field20 == 0) { + if (_moduleResult == 0) { createScene3004(0); _childObject->handleUpdate(); - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { setGlobalVar(0x01BA1A52, 0); createScene3002(1); _childObject->handleUpdate(); @@ -363,10 +363,10 @@ void Module3000::updateScene3003() { void Module3000::updateScene3004() { if (!updateChild()) { - if (_field20 == 1) { + if (_moduleResult == 1) { createScene3005(0); _childObject->handleUpdate(); - } else if (_field20 == 3) { + } else if (_moduleResult == 3) { createScene3011(-1); _childObject->handleUpdate(); } else if (getGlobalVar(0x09221A62)) { @@ -400,12 +400,12 @@ void Module3000::updateScene3004() { void Module3000::updateScene3005() { if (!updateChild()) { - if (_field20 == 0) { + if (_moduleResult == 0) { sendMessage(_parentModule, 0x1009, 1); - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { createScene3008(-1); _childObject->handleUpdate(); - } else if (_field20 == 2) { + } else if (_moduleResult == 2) { createScene3004(3); _childObject->handleUpdate(); } @@ -414,9 +414,9 @@ void Module3000::updateScene3005() { void Module3000::updateScene3006() { if (!updateChild()) { - if (_field20 == 0) { + if (_moduleResult == 0) { createScene3007(0); - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { createScene3004(0); } _childObject->handleUpdate(); @@ -449,7 +449,7 @@ void Module3000::updateScene3007() { void Module3000::updateScene3009() { if (!updateChild()) { _flag = getGlobalVar(0x10938830); // CHECKME - if (_field20 != 1) { + if (_moduleResult != 1) { // TODO: Sound1ChList_setSoundValuesMulti(dword_4B7FC8, true, 0, 0, 0, 0): createScene3005(1); _childObject->handleUpdate(); @@ -466,13 +466,12 @@ void Module3000::updateScene3009() { void Module3000::updateScene3010() { if (!updateChild()) { - if (_field20 == 0 || _field20 == 2) { + if (_moduleResult == 0 || _moduleResult == 2) { createScene3002(0); - _childObject->handleUpdate(); - } else if (_field20 == 1) { + } else if (_moduleResult == 1) { createScene3002b(-1); - _childObject->handleUpdate(); } + _childObject->handleUpdate(); } } diff --git a/engines/neverhood/sprite.h b/engines/neverhood/sprite.h index ff1830469d..f17b2d4216 100644 --- a/engines/neverhood/sprite.h +++ b/engines/neverhood/sprite.h @@ -114,6 +114,7 @@ public: void clearRepl(); uint32 getCurrAnimFileHash() const { return _currAnimFileHash; } int16 getFrameIndex() const { return _frameIndex; } + int16 getFrameIndex(uint32 frameHash) { return _animResource.getFrameIndex(frameHash); } void setNewHashListIndex(int value) { _newHashListIndex = value; } void setFileHash(uint32 fileHash, int16 frameIndex3, int16 frameIndex4); protected: |