From 1cf7bd073f629638488b9dfaaffef693aac0caf5 Mon Sep 17 00:00:00 2001 From: Jaromir Wysoglad Date: Tue, 25 Jun 2019 14:57:17 +0200 Subject: SUPERNOVA: Fix segfault in axacuss --- engines/supernova/supernova1/rooms.cpp | 10 ++++++---- engines/supernova/supernova1/state.cpp | 1 + 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'engines') diff --git a/engines/supernova/supernova1/rooms.cpp b/engines/supernova/supernova1/rooms.cpp index f39cbb861b..5fe0868473 100644 --- a/engines/supernova/supernova1/rooms.cpp +++ b/engines/supernova/supernova1/rooms.cpp @@ -3108,8 +3108,9 @@ void AxacussCorridor3::onEntrance() { void AxacussCorridor4::onEntrance() { _gm->great(4); - _gm->corridorOnEntrance(); - if (_gm->_rooms[GUARD]->isSectionVisible(1)) + if (_gm->_state._corridorSearch) + _gm->busted(0); + else if (_gm->_rooms[GUARD]->isSectionVisible(1)) _gm->busted(0); } @@ -3459,8 +3460,9 @@ AxacussBcorridor::AxacussBcorridor(SupernovaEngine *vm, GameManager1 *gm) { } void AxacussBcorridor::onEntrance() { - _gm->corridorOnEntrance(); - if (isSectionVisible(7)) + if (_gm->_state._corridorSearch) + _gm->busted(0); + else if (isSectionVisible(7)) _gm->busted(-1); } diff --git a/engines/supernova/supernova1/state.cpp b/engines/supernova/supernova1/state.cpp index f3f8bbac63..e9c4d34dee 100644 --- a/engines/supernova/supernova1/state.cpp +++ b/engines/supernova/supernova1/state.cpp @@ -653,6 +653,7 @@ void GameManager1::busted(int i) { wait(3); _vm->renderImage(i + 2); shot(0, 0); + return; } else if (_currentRoom->getId() == BCORRIDOR) _vm->renderImage(21); else if (_currentRoom->isSectionVisible(4)) -- cgit v1.2.3