diff options
author | johndoe123 | 2011-08-29 10:21:30 +0000 |
---|---|---|
committer | Willem Jan Palenstijn | 2013-05-08 20:39:35 +0200 |
commit | eb8c44b54c846d30d9ce246b786fd46e1218b586 (patch) | |
tree | a68380df3da2fc5724134661506fcc63aac988b2 /engines/neverhood/gamemodule.cpp | |
parent | bec86c7c2ee49a1428b5fac88b08e427805970a8 (diff) | |
download | scummvm-rg350-eb8c44b54c846d30d9ce246b786fd46e1218b586.tar.gz scummvm-rg350-eb8c44b54c846d30d9ce246b786fd46e1218b586.tar.bz2 scummvm-rg350-eb8c44b54c846d30d9ce246b786fd46e1218b586.zip |
NEVERHOOD: Implement Scene2201
- Implement DataResource::getHitRectList, DataResource::getMessageListAtPos and related stuff in scene.cpp
Diffstat (limited to 'engines/neverhood/gamemodule.cpp')
-rw-r--r-- | engines/neverhood/gamemodule.cpp | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/engines/neverhood/gamemodule.cpp b/engines/neverhood/gamemodule.cpp index 7408c25fbd..a118e4fb01 100644 --- a/engines/neverhood/gamemodule.cpp +++ b/engines/neverhood/gamemodule.cpp @@ -30,6 +30,7 @@ #include "neverhood/module1700.h" #include "neverhood/module1800.h" #include "neverhood/module2000.h" +#include "neverhood/module2200.h" #include "neverhood/module2300.h" #include "neverhood/module3000.h" @@ -236,10 +237,14 @@ void GameModule::startup() { _vm->gameState().sceneNum = 0; createModule1800(-1); #endif -#if 1 +#if 0 _vm->gameState().sceneNum = 0; createModule2000(-1); #endif +#if 1 + _vm->gameState().sceneNum = 0; + createModule2200(-1); +#endif } void GameModule::createModule1000(int which) { @@ -404,6 +409,25 @@ void GameModule::updateModule2000() { } } +void GameModule::createModule2200(int which) { + setGlobalVar(0x91080831, 0x11391412); + _childObject = new Module2200(_vm, this, which); + SetUpdateHandler(&GameModule::updateModule2200); +} + +void GameModule::updateModule2200() { + if (!_childObject) + return; + _childObject->handleUpdate(); + if (_done) { + _done = false; + delete _childObject; + _childObject = NULL; + createModule2300(1); + _childObject->handleUpdate(); + } +} + void GameModule::createModule2300(int which) { setGlobalVar(0x91080831, 0x1A214010); _childObject = new Module2300(_vm, this, which); @@ -419,7 +443,7 @@ void GameModule::updateModule2300() { delete _childObject; _childObject = NULL; if (_field20 == 1) { - // TODO createModule2200(0); + createModule2200(0); // TODO _childObject->handleUpdate(); } else if (_field20 == 2) { createModule1200(0); |