ACCESS: Workaround for Exit/walk icon in massacre site scene
This commit is contained in:
parent
740df9b42a
commit
e332218568
4 changed files with 40 additions and 13 deletions
|
@ -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;
|
||||
|
|
|
@ -53,6 +53,8 @@ protected:
|
|||
virtual void mainAreaClick();
|
||||
|
||||
virtual void clearRoom();
|
||||
|
||||
virtual void walkCursor();
|
||||
public:
|
||||
AmazonRoom(AccessEngine *vm);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -112,6 +112,8 @@ protected:
|
|||
virtual void doCommands();
|
||||
|
||||
virtual void mainAreaClick() = 0;
|
||||
|
||||
virtual void walkCursor();
|
||||
public:
|
||||
Plotter _plotter;
|
||||
Common::Array<JetFrame> _jetFrame;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue