aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Bouclet2017-07-08 18:53:44 +0200
committerBastien Bouclet2017-07-09 06:53:51 +0200
commitbcd027cf6471207dc1724646de94b32d10252a31 (patch)
tree92f7e2f33ed7c96996c0aa4b2e6a6963faaf6d30
parent2b010ec6e3a2ca4cdfcb8d4fae6d13ef755337f4 (diff)
downloadscummvm-rg350-bcd027cf6471207dc1724646de94b32d10252a31.tar.gz
scummvm-rg350-bcd027cf6471207dc1724646de94b32d10252a31.tar.bz2
scummvm-rg350-bcd027cf6471207dc1724646de94b32d10252a31.zip
MOHAWK: Riven: Fix use after free when using the trap book
-rw-r--r--engines/mohawk/riven_stacks/ospit.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/engines/mohawk/riven_stacks/ospit.cpp b/engines/mohawk/riven_stacks/ospit.cpp
index 2393052881..c48bebc644 100644
--- a/engines/mohawk/riven_stacks/ospit.cpp
+++ b/engines/mohawk/riven_stacks/ospit.cpp
@@ -50,8 +50,9 @@ void OSpit::xorollcredittime(const ArgumentArray &args) {
// be messy to modify the way that currently works. If we use the trap book on Tay,
// we should be using the Tay end game sequences.
if (_vm->_vars["returnstackid"] == kStackRspit) {
- _vm->changeToStack(kStackRspit);
- _vm->changeToCard(2);
+ RivenScriptPtr script = _vm->_scriptMan->createScriptWithCommand(
+ new RivenStackChangeCommand(_vm, kStackRspit, 0x3338, true));
+ _vm->_scriptMan->runScript(script, false);
return;
}