From c04edb8f54f6e44079b389263428719c0b3c562c Mon Sep 17 00:00:00 2001 From: Bastien Bouclet Date: Sat, 5 Nov 2016 08:36:03 +0100 Subject: MOHAWK: Change the back from book commands to use scripts --- engines/mohawk/riven_stacks/aspit.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'engines/mohawk/riven_stacks/aspit.cpp') diff --git a/engines/mohawk/riven_stacks/aspit.cpp b/engines/mohawk/riven_stacks/aspit.cpp index f4ab7d1340..4c88b19676 100644 --- a/engines/mohawk/riven_stacks/aspit.cpp +++ b/engines/mohawk/riven_stacks/aspit.cpp @@ -95,9 +95,20 @@ void ASpit::xaatrusopenbook(uint16 argc, uint16 *argv) { } void ASpit::xaatrusbookback(uint16 argc, uint16 *argv) { + inventoryBackFromItemScript(); +} + +void ASpit::inventoryBackFromItemScript() const { + RivenScriptPtr stopSoundScript = _vm->_scriptMan->createScriptFromData(1, 12, 1, 1); + _vm->_scriptMan->runScript(stopSoundScript, false); + + uint16 backStackId = _vm->_vars["returnstackid"]; + uint32 backCardId = _vm->_vars["returncardid"]; + // Return to where we were before entering the book - _vm->changeToStack(_vm->_vars["returnstackid"]); - _vm->changeToCard(_vm->_vars["returncardid"]); + RivenCommand *back = new RivenStackChangeCommand(_vm, backStackId, backCardId, true); + RivenScriptPtr backScript = _vm->_scriptMan->createScriptWithCommand(back); + _vm->_scriptMan->runScript(backScript, false); } void ASpit::xaatrusbookprevpage(uint16 argc, uint16 *argv) { @@ -187,9 +198,7 @@ void ASpit::xacathopenbook(uint16 argc, uint16 *argv) { } void ASpit::xacathbookback(uint16 argc, uint16 *argv) { - // Return to where we were before entering the book - _vm->changeToStack(_vm->_vars["returnstackid"]); - _vm->changeToCard(_vm->_vars["returncardid"]); + inventoryBackFromItemScript(); } void ASpit::xacathbookprevpage(uint16 argc, uint16 *argv) { @@ -229,8 +238,7 @@ void ASpit::xacathbooknextpage(uint16 argc, uint16 *argv) { void ASpit::xtrapbookback(uint16 argc, uint16 *argv) { // Return to where we were before entering the book _vm->_vars["atrap"] = 0; - _vm->changeToStack(_vm->_vars["returnstackid"]); - _vm->changeToCard(_vm->_vars["returncardid"]); + inventoryBackFromItemScript(); } void ASpit::xatrapbookclose(uint16 argc, uint16 *argv) { -- cgit v1.2.3