aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/avalanche/dropdown2.cpp14
-rw-r--r--engines/avalanche/gyro2.cpp4
-rw-r--r--engines/avalanche/gyro2.h2
3 files changed, 11 insertions, 9 deletions
diff --git a/engines/avalanche/dropdown2.cpp b/engines/avalanche/dropdown2.cpp
index baf1e94edf..d0cd50515e 100644
--- a/engines/avalanche/dropdown2.cpp
+++ b/engines/avalanche/dropdown2.cpp
@@ -536,9 +536,10 @@ void Dropdown::ddm__people() {
void Dropdown::ddm__objects() {
ddm_o.start_afresh();
- for (byte fv = 0; fv < numobjs; fv++)
+ for (byte fv = 0; fv < numobjs; fv++) {
if (_vm->_gyro->dna.obj[fv])
ddm_o.opt(_vm->_gyro->get_thing(fv + 1), _vm->_gyro->get_thingchar(fv + 1), "", true);
+ }
ddm_o.display();
}
@@ -567,7 +568,7 @@ void Dropdown::ddm__with() {
// We disable the "give" option if: (a), you haven't selected anybody, (b), the person you've selected isn't in the room, or (c), the person you've selected is YOU!
- if ((_vm->_gyro->last_person != _vm->_gyro->pavalot) || (_vm->_gyro->last_person != _vm->_acci->nowt) || (_vm->_gyro->whereis[_vm->_gyro->last_person - 1] != _vm->_gyro->dna.room))
+ if ((_vm->_gyro->last_person == _vm->_gyro->pavalot) || (_vm->_gyro->last_person == _vm->_acci->nowt) || (_vm->_gyro->whereis[_vm->_gyro->last_person - 150] != _vm->_gyro->dna.room))
ddm_o.opt("Give to...", 'G', "", false); /* Not here. */
else {
ddm_o.opt(Common::String("Give to ") + _vm->_gyro->getname(_vm->_gyro->last_person), 'G', "", true);
@@ -782,6 +783,7 @@ void Dropdown::do__with() {
default: {
_vm->_acci->person = _vm->_acci->thing;
_vm->_acci->thing = 254;
+ _vm->_gyro->subjnumber = 0;
}
}
}
@@ -877,15 +879,15 @@ void Dropdown::menu_link() { // TODO: Optimize it ASAP!!! It really needs it...
ddm_o.wipe();
_vm->_graphics->_surface.copyFrom(backup);
_vm->_graphics->refreshScreen();
- _vm->_lucerna->holdLeftMouse = true;
if (((ddm_o.left * 8) <= cursorPos.x) && (cursorPos.x <= (ddm_o.left * 8 + 80))) { // 80: the width of one menu item on the bar in pixels.
- // If we clicked on the same menu item on the bar...
+ // If we clicked on the same menu item (the one that is already active) on the bar...
_vm->_lucerna->holdLeftMouse = false;
return;
+ } else {
+ _vm->_lucerna->holdLeftMouse = true;
+ break;
}
-
- break;
}
}
diff --git a/engines/avalanche/gyro2.cpp b/engines/avalanche/gyro2.cpp
index cfbfd32650..aab8c8294f 100644
--- a/engines/avalanche/gyro2.cpp
+++ b/engines/avalanche/gyro2.cpp
@@ -455,10 +455,10 @@ char Gyro::get_thingchar(byte which) {
if (dna.winestate == 3)
get_thingchar_result = 'V'; /* Vinegar */
else
- get_thingchar_result = thingchar[which];
+ get_thingchar_result = thingchar[which - 1];
break;
default:
- get_thingchar_result = thingchar[which];
+ get_thingchar_result = thingchar[which - 1];
}
return get_thingchar_result;
}
diff --git a/engines/avalanche/gyro2.h b/engines/avalanche/gyro2.h
index d75ac15e19..967034a7ed 100644
--- a/engines/avalanche/gyro2.h
+++ b/engines/avalanche/gyro2.h
@@ -580,7 +580,7 @@ public:
Common::File demofile; // of demo_type
Common::DumpFile demofile_save; // uruk added it - first use located in constructor of Basher
- char last_person; /* Last person to have been selected using the People
+ byte last_person; /* Last person to have been selected using the People
menu. */
bool doing_sprite_run; /* Only set to True if we're doing a sprite_run