aboutsummaryrefslogtreecommitdiff
path: root/engines/neverhood/gamemodule.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/neverhood/gamemodule.cpp')
-rw-r--r--engines/neverhood/gamemodule.cpp35
1 files changed, 32 insertions, 3 deletions
diff --git a/engines/neverhood/gamemodule.cpp b/engines/neverhood/gamemodule.cpp
index 6d9c577065..f280399a01 100644
--- a/engines/neverhood/gamemodule.cpp
+++ b/engines/neverhood/gamemodule.cpp
@@ -214,12 +214,13 @@ void GameModule::startup() {
// createModule1500(0); // Logos and intro video //Real
// createModule1000(-1);
// createModule2300(2);
- _vm->gameState().sceneNum = 4;
+ _vm->gameState().sceneNum = 8;
//createModule1200(-1);
//createModule1800(-1);
//createModule1700(-1);
//createModule1700(1);
- createModule1400(-1);
+ //createModule1400(-1);
+ createModule3000(-1);
}
void GameModule::createModule1000(int which) {
@@ -418,7 +419,35 @@ void GameModule::createModule2400(int which) {
}
void GameModule::createModule3000(int which) {
- error("createModule3000");
+ setGlobalVar(0x91080831, 0x81293110);
+ _childObject = new Module3000(_vm, this, which);
+ SetUpdateHandler(&GameModule::updateModule3000);
+}
+
+void GameModule::updateModule3000() {
+ if (!_childObject)
+ return;
+ _childObject->handleUpdate();
+ if (_done) {
+ _done = false;
+ delete _childObject;
+ _childObject = NULL;
+ if (_field20 == 1) {
+ // TODO createModule1900(0);
+ // TODO _childObject->handleUpdate();
+ } else if (_field20 == 2) {
+ // WEIRD: Sets the errorFlag
+ } else if (_field20 == 3) {
+ createModule1800(3);
+ _childObject->handleUpdate();
+ } else if (_field20 == 4) {
+ // TODO createModule3000(0);
+ // TODO _childObject->handleUpdate();
+ } else {
+ createModule2300(4);
+ _childObject->handleUpdate();
+ }
+ }
}
} // End of namespace Neverhood