aboutsummaryrefslogtreecommitdiff
path: root/engines/mortevielle/actions.cpp
diff options
context:
space:
mode:
authorStrangerke2013-07-29 01:58:03 +0200
committerStrangerke2013-07-29 01:58:03 +0200
commitb50f0e2a0d657c64dedb5800912b9e6558e0529d (patch)
tree24787ffdca1075a61256ebc4bbdd5263e062822c /engines/mortevielle/actions.cpp
parent1b2adafefa6512ce8f3d9b85b0d55a3c8fad4672 (diff)
downloadscummvm-rg350-b50f0e2a0d657c64dedb5800912b9e6558e0529d.tar.gz
scummvm-rg350-b50f0e2a0d657c64dedb5800912b9e6558e0529d.tar.bz2
scummvm-rg350-b50f0e2a0d657c64dedb5800912b9e6558e0529d.zip
MORTEVIELLE: Remove remaining macros, start refactoring menus, modify the way _cfiphBuffer is read/written
Diffstat (limited to 'engines/mortevielle/actions.cpp')
-rw-r--r--engines/mortevielle/actions.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/engines/mortevielle/actions.cpp b/engines/mortevielle/actions.cpp
index 88eee0cf7d..5738a8fd3a 100644
--- a/engines/mortevielle/actions.cpp
+++ b/engines/mortevielle/actions.cpp
@@ -41,13 +41,14 @@ namespace Mortevielle {
* @remarks Originally called 'taller'
*/
void MortevielleEngine::fctMove() {
- if ((_coreVar._currPlace == ROOM26) && (_currAction == _menu._moveMenu[6])) {
+ int oldMenu = (_menu._moveMenu[6]._menuId << 8) | _menu._moveMenu[6]._actionId;
+ if ((_coreVar._currPlace == ROOM26) && (_currAction == oldMenu)) {
_coreVar._currPlace = LANDING;
_caff = _coreVar._currPlace;
drawPictureWithText();
handleDescriptionText(2, _coreVar._currPlace);
}
- if ((_coreVar._currPlace == LANDING) && (_currAction == _menu._moveMenu[6])) {
+ if ((_coreVar._currPlace == LANDING) && (_currAction == oldMenu)) {
if (!_syn)
displayTextInVerbBar(getEngineString(S_GO_TO));
displayStatusArrow();
@@ -85,9 +86,11 @@ void MortevielleEngine::fctMove() {
}
exitRoom();
int menuChoice = 1;
-
- while (_menu._moveMenu[menuChoice] != _currAction)
+ oldMenu = (_menu._moveMenu[menuChoice]._menuId << 8) | _menu._moveMenu[menuChoice]._actionId;
+ while (oldMenu != _currAction) {
++menuChoice;
+ oldMenu = (_menu._moveMenu[menuChoice]._menuId << 8) | _menu._moveMenu[menuChoice]._actionId;
+ }
if (_coreVar._currPlace == MOUNTAIN) {
if (menuChoice == 1)
@@ -300,9 +303,11 @@ void MortevielleEngine::fctTake() {
*/
void MortevielleEngine::fctInventoryTake() {
int inventIndex = 0;
+ int oldMenu = 0;
do {
++inventIndex;
- } while (_menu._inventoryMenu[inventIndex] != _currAction);
+ oldMenu = (_menu._inventoryMenu[inventIndex]._menuId << 8) | _menu._inventoryMenu[inventIndex]._actionId;
+ } while (oldMenu != _currAction);
int cz = 0;
int cy = 0;
do {
@@ -1154,7 +1159,7 @@ void MortevielleEngine::fctEnter() {
++_coreVar._faithScore;
_coreVar._currPlace = LANDING;
_currMenu = MENU_DISCUSS;
- _currAction = _menu._discussMenu[charIndex];
+ _currAction = (_menu._discussMenu[charIndex]._menuId << 8) | _menu._discussMenu[charIndex]._actionId;
_syn = true;
if (_roomDoorId == ROOM9) {
_col = true;
@@ -1352,9 +1357,11 @@ void MortevielleEngine::fctDiscuss() {
displId = 128;
else {
cx = 0;
+ int oldMenu;
do {
++cx;
- } while (_menu._discussMenu[cx] != _currAction);
+ oldMenu = (_menu._discussMenu[cx]._menuId << 8) | _menu._discussMenu[cx]._actionId;
+ } while (oldMenu != _currAction);
_caff = 69 + cx;
drawPictureWithText();
handleDescriptionText(2, _caff);