aboutsummaryrefslogtreecommitdiff
path: root/engines/neverhood/gamemodule.cpp
diff options
context:
space:
mode:
authorjohndoe1232011-08-29 10:21:30 +0000
committerWillem Jan Palenstijn2013-05-08 20:39:35 +0200
commiteb8c44b54c846d30d9ce246b786fd46e1218b586 (patch)
treea68380df3da2fc5724134661506fcc63aac988b2 /engines/neverhood/gamemodule.cpp
parentbec86c7c2ee49a1428b5fac88b08e427805970a8 (diff)
downloadscummvm-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.cpp28
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);