aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk/riven.cpp
diff options
context:
space:
mode:
authorBastien Bouclet2016-11-01 09:45:33 +0100
committerEugene Sandulenko2017-07-03 08:50:10 +0200
commite2c5609e81d3a54e0d3c63427288f3c261b86ade (patch)
tree8e2cd7a82440cf74e29c8259bc646b3d0cb1ca52 /engines/mohawk/riven.cpp
parentab2d151541f5d4ae12aeeba6ec5e928109be84f5 (diff)
downloadscummvm-rg350-e2c5609e81d3a54e0d3c63427288f3c261b86ade.tar.gz
scummvm-rg350-e2c5609e81d3a54e0d3c63427288f3c261b86ade.tar.bz2
scummvm-rg350-e2c5609e81d3a54e0d3c63427288f3c261b86ade.zip
MOHAWK: Prepare empty classes for the Riven stacks
Diffstat (limited to 'engines/mohawk/riven.cpp')
-rw-r--r--engines/mohawk/riven.cpp33
1 files changed, 32 insertions, 1 deletions
diff --git a/engines/mohawk/riven.cpp b/engines/mohawk/riven.cpp
index 485d4bb174..d6c6754c66 100644
--- a/engines/mohawk/riven.cpp
+++ b/engines/mohawk/riven.cpp
@@ -37,6 +37,14 @@
#include "mohawk/riven_saveload.h"
#include "mohawk/riven_sound.h"
#include "mohawk/riven_stack.h"
+#include "mohawk/riven_stacks/aspit.h"
+#include "mohawk/riven_stacks/bspit.h"
+#include "mohawk/riven_stacks/gspit.h"
+#include "mohawk/riven_stacks/jspit.h"
+#include "mohawk/riven_stacks/ospit.h"
+#include "mohawk/riven_stacks/pspit.h"
+#include "mohawk/riven_stacks/rspit.h"
+#include "mohawk/riven_stacks/tspit.h"
#include "mohawk/dialogs.h"
#include "mohawk/video.h"
#include "mohawk/console.h"
@@ -341,7 +349,30 @@ void MohawkEngine_Riven::changeToStack(uint16 n) {
_sound->stopAllSLST();
delete _stack;
- _stack = new RivenStack(this, n);
+ _stack = constructStackById(n);
+}
+
+RivenStack *MohawkEngine_Riven::constructStackById(uint16 id) {
+ switch (id) {
+ case kStackAspit:
+ return new RivenStacks::ASpit(this);
+ case kStackBspit:
+ return new RivenStacks::BSpit(this);
+ case kStackGspit:
+ return new RivenStacks::GSpit(this);
+ case kStackJspit:
+ return new RivenStacks::JSpit(this);
+ case kStackOspit:
+ return new RivenStacks::OSpit(this);
+ case kStackPspit:
+ return new RivenStacks::PSpit(this);
+ case kStackRspit:
+ return new RivenStacks::RSpit(this);
+ case kStackTspit:
+ return new RivenStacks::TSpit(this);
+ default:
+ error("Unknown stack id '%d'", id);
+ }
}
// Riven uses some hacks to change stacks for linking books