ACCESS: Workaround for Exit/walk icon in massacre site scene

This commit is contained in:
Paul Gilbert 2014-11-28 15:06:49 -05:00
parent 740df9b42a
commit e332218568
4 changed files with 40 additions and 13 deletions

View file

@ -199,6 +199,22 @@ void AmazonRoom::mainAreaClick() {
}
}
void AmazonRoom::walkCursor() {
// WORKAROUND: For scene 29, which is a normal walkable scene, but yet can be
// 'exitted'. This workaround ensures the scene will only be left if you click
// the Exit icon wgeb the cursor is already a walk cursor
EventsManager &events = *_vm->_events;
if (_vm->_player->_roomNumber == 29 && events._normalMouse != CURSOR_CROSSHAIRS) {
events._normalMouse = CURSOR_CROSSHAIRS;
events.setCursor(CURSOR_CROSSHAIRS);
_selectCommand = -1;
_vm->_boxSelect = true;
} else {
Room::walkCursor();
}
}
void AmazonRoom::init4Quads() {
if (!_vm->_screen->_vesaMode)
return;

View file

@ -53,6 +53,8 @@ protected:
virtual void mainAreaClick();
virtual void clearRoom();
virtual void walkCursor();
public:
AmazonRoom(AccessEngine *vm);

View file

@ -540,19 +540,7 @@ void Room::executeCommand(int commandId) {
events.setCursor(CURSOR_TALK);
break;
case 7:
events._normalMouse = CURSOR_CROSSHAIRS;
events.setCursor(CURSOR_CROSSHAIRS);
_vm->_scripts->_sequence = 5000;
_vm->_scripts->searchForSequence();
roomMenu();
_selectCommand = -1;
_conFlag = true;
while (_conFlag && !_vm->shouldQuit()) {
_conFlag = false;
_vm->_scripts->executeScript();
}
_vm->_boxSelect = true;
walkCursor();
return;
case 8:
events._normalMouse = CURSOR_HELP;
@ -580,6 +568,25 @@ void Room::executeCommand(int commandId) {
_vm->_boxSelect = true;
}
void Room::walkCursor() {
EventsManager &events = *_vm->_events;
events._normalMouse = CURSOR_CROSSHAIRS;
events.setCursor(CURSOR_CROSSHAIRS);
_vm->_scripts->_sequence = 5000;
_vm->_scripts->searchForSequence();
roomMenu();
_selectCommand = -1;
_conFlag = true;
while (_conFlag && !_vm->shouldQuit()) {
_conFlag = false;
_vm->_scripts->executeScript();
}
_vm->_boxSelect = true;
}
void Room::commandOff() {
_selectCommand = -1;
_vm->_events->setCursor(CURSOR_CROSSHAIRS);

View file

@ -112,6 +112,8 @@ protected:
virtual void doCommands();
virtual void mainAreaClick() = 0;
virtual void walkCursor();
public:
Plotter _plotter;
Common::Array<JetFrame> _jetFrame;