aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Hoops2010-11-19 03:52:06 +0000
committerMatthew Hoops2010-11-19 03:52:06 +0000
commit769b460f0d5d751ebf0ef2ad174ca013f00172d9 (patch)
tree0af0843e95e593f82c24243000a4303039053e76
parenta0df86955f80dedaa00e6f7593e96b90b697a83a (diff)
downloadscummvm-rg350-769b460f0d5d751ebf0ef2ad174ca013f00172d9.tar.gz
scummvm-rg350-769b460f0d5d751ebf0ef2ad174ca013f00172d9.tar.bz2
scummvm-rg350-769b460f0d5d751ebf0ef2ad174ca013f00172d9.zip
MOHAWK: Implement another Riven demo external
xademoquit() is called from card 12 when clicking anywhere but the system requirements (which is why I hadn't noticed it earlier). I've also stubbed another demo function (xaexittomain()), called from an unused card's script for completeness. svn-id: r54359
-rw-r--r--engines/mohawk/riven_external.cpp22
-rw-r--r--engines/mohawk/riven_external.h2
2 files changed, 24 insertions, 0 deletions
diff --git a/engines/mohawk/riven_external.cpp b/engines/mohawk/riven_external.cpp
index 21464a6a48..de18509daa 100644
--- a/engines/mohawk/riven_external.cpp
+++ b/engines/mohawk/riven_external.cpp
@@ -70,6 +70,8 @@ void RivenExternal::setupCommands() {
COMMAND(xalaunchbrowser);
COMMAND(xadisablemenuintro);
COMMAND(xaenablemenuintro);
+ COMMAND(xademoquit);
+ COMMAND(xaexittomain);
// bspit (Bookmaking Island) external commands
COMMAND(xblabopenbook);
@@ -652,6 +654,26 @@ void RivenExternal::xaenablemenuintro(uint16 argc, uint16 *argv) {
_vm->_gfx->showInventory();
}
+void RivenExternal::xademoquit(uint16 argc, uint16 *argv) {
+ // Exactly as it says on the tin. In the demo, this function quits.
+ _vm->setGameOver();
+}
+
+void RivenExternal::xaexittomain(uint16 argc, uint16 *argv) {
+ // One could potentially implement this function, but there would be no
+ // point. This function is only used in the demo's aspit card 9 update
+ // screen script. However, card 9 is not accessible from the game without
+ // jumping to the card and there's nothing going on in the card so it
+ // never gets called. There's also no card 9 in the full game, so the
+ // functionality of this card was likely removed before release. The
+ // demo executable references some other external commands relating to
+ // setting and getting the volume, as well as drawing the volume. I'd
+ // venture to guess that this would have been some sort of options card
+ // replaced with the Windows/Mac API in the final product.
+ //
+ // Yeah, this function is just dummied and holds a big comment ;)
+}
+
// ------------------------------------------------------------------------------------
// bspit (Bookmaking Island) external commands
// ------------------------------------------------------------------------------------
diff --git a/engines/mohawk/riven_external.h b/engines/mohawk/riven_external.h
index 1f012c82d9..d39bc3532f 100644
--- a/engines/mohawk/riven_external.h
+++ b/engines/mohawk/riven_external.h
@@ -100,6 +100,8 @@ private:
void xalaunchbrowser(uint16 argc, uint16 *argv);
void xadisablemenuintro(uint16 argc, uint16 *argv);
void xaenablemenuintro(uint16 argc, uint16 *argv);
+ void xademoquit(uint16 argc, uint16 *argv);
+ void xaexittomain(uint16 argc, uint16 *argv);
// -----------------------------------------------------
// bspit (Boiler Island) external commands