From fb9d813ef45d5fa3e70e6620f1ef8347a3cd0221 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 19 Nov 2017 15:29:51 -0500 Subject: XEEN: Cleaner implementation of changing script line number --- engines/xeen/scripts.cpp | 44 ++++++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 16 deletions(-) (limited to 'engines') diff --git a/engines/xeen/scripts.cpp b/engines/xeen/scripts.cpp index a78bc23301..2d0123e407 100644 --- a/engines/xeen/scripts.cpp +++ b/engines/xeen/scripts.cpp @@ -412,8 +412,10 @@ bool Scripts::cmdNPC(Common::Array ¶ms) { Map &map = *_vm->_map; if (TownMessage::show(_vm, params[2], _message, map._events._text[params[1]], - params[3])) - _lineNum = params[4] - 1; + params[3])) { + _lineNum = params[4]; + return false; + } return true; } @@ -528,8 +530,10 @@ bool Scripts::cmdIf(Common::Array ¶ms) { } } - if (result) - _lineNum = newLineNum - 1; + if (result) { + _lineNum = newLineNum; + return false; + } return true; } @@ -863,8 +867,10 @@ bool Scripts::cmdGiveExtended(Common::Array ¶ms) { } } - if (result) - _lineNum = newLineNum - 1; + if (result) { + _lineNum = newLineNum; + return false; + } return true; } @@ -938,8 +944,10 @@ bool Scripts::cmdDamage(Common::Array ¶ms) { bool Scripts::cmdJumpRnd(Common::Array ¶ms) { int v = _vm->getRandomNumber(1, params[0]); - if (v == params[1]) - _lineNum = params[2] - 1; + if (v == params[1]) { + _lineNum = params[2]; + return false; + } return true; } @@ -963,9 +971,9 @@ bool Scripts::cmdAlterEvent(Common::Array ¶ms) { bool Scripts::cmdCallEvent(Common::Array ¶ms) { _stack.push(StackEntry(_currentPos, _lineNum)); _currentPos = Common::Point(params[0], params[1]); - _lineNum = params[2] - 1; + _lineNum = params[2]; - return true; + return false; } bool Scripts::cmdReturn(Common::Array ¶ms) { @@ -1116,7 +1124,8 @@ bool Scripts::cmdIfMapFlag(Common::Array ¶ms) { MazeMonster &monster = map._mobData._monsters[params[0]]; if (monster._position.x >= 32 || monster._position.y >= 32) { - _lineNum = params[1] - 1; + _lineNum = params[1]; + return false; } return true; @@ -1220,7 +1229,8 @@ bool Scripts::cmdCheckProtection(Common::Array ¶ms) { bool Scripts::cmdChooseNumeric(Common::Array ¶ms) { int choice = Choose123::show(_vm, params[0]); if (choice) { - _lineNum = params[choice] - 1; + _lineNum = params[choice]; + return false; } return true; @@ -1282,15 +1292,17 @@ bool Scripts::cmdDisplayMain(Common::Array ¶ms) { bool Scripts::cmdGoto(Common::Array ¶ms) { Map &map = *_vm->_map; map.getCell(1); - if (params[0] == map._currentSurfaceId) - _lineNum = params[1] - 1; + if (params[0] == map._currentSurfaceId) { + _lineNum = params[1]; + return false; + } return true; } bool Scripts::cmdGotoRandom(Common::Array ¶ms) { - _lineNum = params[_vm->getRandomNumber(1, params[0])] - 1; - return true; + _lineNum = params[_vm->getRandomNumber(1, params[0])]; + return false; } bool Scripts::cmdCutsceneEndDarkside(Common::Array ¶ms) { -- cgit v1.2.3