diff options
author | Jaromir Wysoglad | 2019-07-01 10:45:20 +0200 |
---|---|---|
committer | Thierry Crozat | 2019-07-28 15:09:14 +0100 |
commit | a4ca2a838f739a53894e05100acf468788eca21b (patch) | |
tree | 455ef1ce7715287ee4dc3a8a3948bf8f858f331a /engines/supernova/supernova1 | |
parent | b0e386b0147129017e8a0ed531332585f086aa11 (diff) | |
download | scummvm-rg350-a4ca2a838f739a53894e05100acf468788eca21b.tar.gz scummvm-rg350-a4ca2a838f739a53894e05100acf468788eca21b.tar.bz2 scummvm-rg350-a4ca2a838f739a53894e05100acf468788eca21b.zip |
SUPERNOVA: When dead return back to main loop ASAP
Diffstat (limited to 'engines/supernova/supernova1')
-rw-r--r-- | engines/supernova/supernova1/rooms.cpp | 16 | ||||
-rw-r--r-- | engines/supernova/supernova1/state.cpp | 5 |
2 files changed, 17 insertions, 4 deletions
diff --git a/engines/supernova/supernova1/rooms.cpp b/engines/supernova/supernova1/rooms.cpp index 41b2338172..77d0eac244 100644 --- a/engines/supernova/supernova1/rooms.cpp +++ b/engines/supernova/supernova1/rooms.cpp @@ -3499,8 +3499,10 @@ bool AxacussBcorridor::interact(Action verb, Object &obj1, Object &obj2) { else { _vm->renderImage(1); _vm->playSound(kAudioDoorOpen); - if (getObject(4)->hasProperty(CAUGHT)) + if (getObject(4)->hasProperty(CAUGHT)) { _gm->busted(11); + return true; + } getObject(4)->resetProperty(EXIT | OPENABLE | OPENED); } } else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, MASTERKEYCARD, DOOR2) && !getObject(5)->hasProperty(OPENED)) { @@ -3509,8 +3511,10 @@ bool AxacussBcorridor::interact(Action verb, Object &obj1, Object &obj2) { else { _vm->renderImage(2); _vm->playSound(kAudioDoorOpen); - if (getObject(5)->hasProperty(CAUGHT)) + if (getObject(5)->hasProperty(CAUGHT)) { _gm->busted(16); + return true; + } getObject(5)->resetProperty(EXIT | OPENABLE | OPENED); } } else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, MASTERKEYCARD, DOOR3) && !getObject(6)->hasProperty(OPENED)) { @@ -3519,8 +3523,10 @@ bool AxacussBcorridor::interact(Action verb, Object &obj1, Object &obj2) { else { _vm->renderImage(3); _vm->playSound(kAudioDoorOpen); - if (getObject(6)->hasProperty(CAUGHT)) + if (getObject(6)->hasProperty(CAUGHT)) { _gm->busted(15); + return true; + } getObject(6)->resetProperty(EXIT | OPENABLE | OPENED); } } else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, MASTERKEYCARD, DOOR4) && !getObject(7)->hasProperty(OPENED)) { @@ -3529,8 +3535,10 @@ bool AxacussBcorridor::interact(Action verb, Object &obj1, Object &obj2) { } else { _vm->renderImage(4); _vm->playSound(kAudioDoorOpen); - if (getObject(7)->hasProperty(CAUGHT)) + if (getObject(7)->hasProperty(CAUGHT)) { _gm->busted(20); + return true; + } getObject(7)->resetProperty(EXIT | OPENABLE | OPENED); } } else if ((verb == ACTION_LOOK) && (obj1._id >= DOOR1) && (obj1._id <= DOOR4)) { diff --git a/engines/supernova/supernova1/state.cpp b/engines/supernova/supernova1/state.cpp index 1f9c81b864..2dd2a1d08e 100644 --- a/engines/supernova/supernova1/state.cpp +++ b/engines/supernova/supernova1/state.cpp @@ -296,6 +296,7 @@ void GameManager1::initState() { _state._dream = false; _prevImgId = 0; + _dead = false; } void GameManager1::initRooms() { @@ -1502,6 +1503,10 @@ void GameManager1::handleInput() { void GameManager1::executeRoom() { if (_processInput && !_vm->_screen->isMessageShown() && _guiEnabled) { handleInput(); + if (_dead) { + _dead = false; + return; + } if (_mouseClicked) { Common::Event event; event.type = Common::EVENT_MOUSEMOVE; |