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.cpp44
1 files changed, 40 insertions, 4 deletions
diff --git a/engines/neverhood/gamemodule.cpp b/engines/neverhood/gamemodule.cpp
index 4800923d2d..95a6a5f48a 100644
--- a/engines/neverhood/gamemodule.cpp
+++ b/engines/neverhood/gamemodule.cpp
@@ -24,6 +24,7 @@
#include "neverhood/graphics.h"
#include "neverhood/module1000.h"
+#include "neverhood/module1200.h"
#include "neverhood/module1500.h"
#include "neverhood/module2300.h"
@@ -108,8 +109,9 @@ uint32 GameModule::handleMessage(int messageNum, const MessageParam &param, Enti
void GameModule::startup() {
// TODO: Displaying of error text probably not needed in ScummVM
// createModule1500(0); // Logos and intro video //Real
-// createModule1000(0);
- createModule2300(0);
+// createModule1000(-1);
+// createModule2300(0);
+ createModule1200(0);
}
void GameModule::createModule1000(int which) {
@@ -132,6 +134,30 @@ void GameModule::updateModule1000() {
}
}
+void GameModule::createModule1200(int which) {
+ setGlobalVar(0x91080831, 0x00478311);
+ _childObject = new Module1200(_vm, this, which);
+ SetUpdateHandler(&GameModule::updateModule1200);
+}
+
+void GameModule::updateModule1200() {
+ if (!_childObject)
+ return;
+ _childObject->handleUpdate();
+ if (_done) {
+ _done = false;
+ delete _childObject;
+ _childObject = NULL;
+ if (_field20 == 1) {
+ // TODO createModule2600(0);
+ // TODO _childObject->handleUpdate();
+ } else {
+ createModule2300(2);
+ _childObject->handleUpdate();
+ }
+ }
+}
+
void GameModule::createModule1500(int which) {
_someFlag1 = false;
setGlobalVar(0x91080831, 0x00F10114);
@@ -170,8 +196,8 @@ void GameModule::updateModule2300() {
// TODO createModule2200(0);
// TODO _childObject->handleUpdate();
} else if (_field20 == 2) {
- // TODO createModule1200(0);
- // TODO _childObject->handleUpdate();
+ createModule1200(0);
+ _childObject->handleUpdate();
} else if (_field20 == 3) {
// TODO createModule2400(0);
// TODO _childObject->handleUpdate();
@@ -196,4 +222,14 @@ void GameModule::updateModule2300() {
}
}
+void GameModule::createModule2400(int which) {
+ debug("createModule2400");
+ _vm->_system->quit();
+}
+
+void GameModule::createModule3000(int which) {
+ debug("createModule3000");
+ _vm->_system->quit();
+}
+
} // End of namespace Neverhood