diff options
author | johndoe123 | 2012-10-23 13:35:41 +0000 |
---|---|---|
committer | Willem Jan Palenstijn | 2013-05-08 20:47:35 +0200 |
commit | 9d987a97d3d7a6a740383889dc2a676684d06676 (patch) | |
tree | dfab3a87d79bcc4162b7bd5b99ce07a0d5494ce5 /engines/neverhood | |
parent | 2fbfd673ad4ca72652ff3d90656ced2020e31e6f (diff) | |
download | scummvm-rg350-9d987a97d3d7a6a740383889dc2a676684d06676.tar.gz scummvm-rg350-9d987a97d3d7a6a740383889dc2a676684d06676.tar.bz2 scummvm-rg350-9d987a97d3d7a6a740383889dc2a676684d06676.zip |
NEVERHOOD: Clean up Module2000 (like the ones before)
Diffstat (limited to 'engines/neverhood')
-rw-r--r-- | engines/neverhood/gamemodule.cpp | 4 | ||||
-rw-r--r-- | engines/neverhood/module2000.cpp | 36 | ||||
-rw-r--r-- | engines/neverhood/module2000.h | 1 |
3 files changed, 23 insertions, 18 deletions
diff --git a/engines/neverhood/gamemodule.cpp b/engines/neverhood/gamemodule.cpp index bb58eb4e28..896c8cc193 100644 --- a/engines/neverhood/gamemodule.cpp +++ b/engines/neverhood/gamemodule.cpp @@ -317,9 +317,9 @@ void GameModule::startup() { //DEBUG<<< */ - _vm->gameState().which = 1; + _vm->gameState().which = 3; _vm->gameState().sceneNum = 0; - createModule(1900, -1); + createModule(2000, -1); #endif #if 0 _vm->gameState().sceneNum = 0; diff --git a/engines/neverhood/module2000.cpp b/engines/neverhood/module2000.cpp index a97cbaa1ae..ce871de5e8 100644 --- a/engines/neverhood/module2000.cpp +++ b/engines/neverhood/module2000.cpp @@ -29,13 +29,12 @@ namespace Neverhood { Module2000::Module2000(NeverhoodEngine *vm, Module *parentModule, int which) : Module(vm, parentModule) { - if (which < 0) { + if (which < 0) createScene(_vm->gameState().sceneNum, -1); - } else if (which == 0) { + else if (which == 0) createScene(0, 1); - } else if (which == 1) { + else if (which == 1) createScene(0, 3); - } } @@ -45,15 +44,18 @@ Module2000::~Module2000() { void Module2000::createScene(int sceneNum, int which) { debug("Module2000::createScene(%d, %d)", sceneNum, which); - _vm->gameState().sceneNum = sceneNum; - switch (_vm->gameState().sceneNum) { + _sceneNum = sceneNum; + switch (_sceneNum) { case 0: + _vm->gameState().sceneNum = 0; _childObject = new Scene2001(_vm, this, which); break; case 1: + _vm->gameState().sceneNum = 1; createNavigationScene(getGlobalVar(V_WORLDS_JOINED) ? 0x004B7B48 : 0x004B7B00, which); break; case 2: + _vm->gameState().sceneNum = 2; setGlobalVar(V_WORLDS_JOINED, 1); setSubVar(V_TELEPORTER_DEST_AVAILABLE, 1, 1); createSmackerScene(0x204B2031, true, true, false); @@ -65,26 +67,23 @@ void Module2000::createScene(int sceneNum, int which) { void Module2000::updateScene() { if (!updateChild()) { - switch (_vm->gameState().sceneNum) { + switch (_sceneNum) { case 0: - if (_moduleResult == 1) { + if (_moduleResult == 1) leaveModule(0); - } else { + else createScene(1, 0); - } break; case 1: if (_moduleResult == 0) { - if (getGlobalVar(V_WORLDS_JOINED)) { + if (getGlobalVar(V_WORLDS_JOINED)) createScene(1, 0); - } else { + else createScene(2, -1); - } - } else if (_moduleResult == 1) { + } else if (_moduleResult == 1) createScene(1, 1); - } else if (_moduleResult == 2) { + else if (_moduleResult == 2) createScene(0, 0); - } break; case 2: createScene(1, 0); @@ -109,25 +108,30 @@ Scene2001::Scene2001(NeverhoodEngine *vm, Module *parentModule, int which) tempSprite = insertStaticSprite(0x0D641724, 1100); if (which < 0) { + // Restoring game insertKlayman<KmScene2001>(300, 345); setMessageList(0x004B3538); sendMessage(this, 0x2000, 0); } else if (which == 1) { + // Klaymen teleporting in insertKlayman<KmScene2001>(116, 345); sendMessage(_klayman, 0x2000, 1); setMessageList(0x004B3540, false); sendMessage(this, 0x2000, 1); } else if (which == 2) { + // Klaymen teleporting out insertKlayman<KmScene2001>(116, 345); sendMessage(_klayman, 0x2000, 1); setMessageList(0x004B35F0, false); sendMessage(this, 0x2000, 1); } else if (which == 3) { + // Klaymen returning from teleporter console insertKlayman<KmScene2001>(116, 345); sendMessage(_klayman, 0x2000, 1); setMessageList(0x004B3550, false); sendMessage(this, 0x2000, 1); } else { + // Klaymen standing around insertKlayman<KmScene2001>(390, 345); setMessageList(0x004B3530); sendMessage(this, 0x2000, 0); diff --git a/engines/neverhood/module2000.h b/engines/neverhood/module2000.h index 8533092b2c..9859c73006 100644 --- a/engines/neverhood/module2000.h +++ b/engines/neverhood/module2000.h @@ -35,6 +35,7 @@ public: Module2000(NeverhoodEngine *vm, Module *parentModule, int which); virtual ~Module2000(); protected: + int _sceneNum; uint32 handleMessage(int messageNum, const MessageParam ¶m, Entity *sender); void createScene(int sceneNum, int which); void updateScene(); |