diff options
| -rw-r--r-- | queen/journal.cpp | 4 | ||||
| -rw-r--r-- | queen/logic.cpp | 6 | ||||
| -rw-r--r-- | queen/queen.cpp | 3 | ||||
| -rw-r--r-- | queen/queen.h | 2 | 
4 files changed, 10 insertions, 5 deletions
| diff --git a/queen/journal.cpp b/queen/journal.cpp index 5a72dbccf1..f1a32bd6a5 100644 --- a/queen/journal.cpp +++ b/queen/journal.cpp @@ -289,7 +289,9 @@ void Journal::handleYesNoMode(int16 zoneNum) {  			}  			break;  		case ZN_GIVEUP: -			OSystem::instance()->quit(); +			_quit = true; +			_quitCleanly = false; +			_vm->quitGame();  			break;  		}  	} else if (zoneNum == ZN_NO) { diff --git a/queen/logic.cpp b/queen/logic.cpp index 95e14a4883..711bb596fd 100644 --- a/queen/logic.cpp +++ b/queen/logic.cpp @@ -1529,7 +1529,7 @@ void Logic::asmEndGame() {  		_vm->update();  	}  	debug(0, "Game completed."); -	OSystem::instance()->quit(); +	_vm->quitGame();  }  void Logic::asmPutCameraOnDino() { @@ -1952,7 +1952,7 @@ void Logic::asmPanLeftToBomb() {  void Logic::asmEndDemo() {  	debug(0, "Flight of the Amazon Queen, released January 95."); -	OSystem::instance()->quit(); +	_vm->quitGame();  }  void Logic::asmInterviewIntro() { @@ -1997,7 +1997,7 @@ void Logic::asmInterviewIntro() {  void Logic::asmEndInterview() {  	debug(0, "Interactive Interview copyright (c) 1995, IBI."); -	OSystem::instance()->quit(); +	_vm->quitGame();  }  void Logic::startCredits(const char *filename) { diff --git a/queen/queen.cpp b/queen/queen.cpp index f2f6cd9daf..79b63ed241 100644 --- a/queen/queen.cpp +++ b/queen/queen.cpp @@ -304,7 +304,8 @@ void QueenEngine::go() {  	_logic->oldRoom(0);  	_logic->newRoom(_logic->currentRoom()); -	for (;;) { +	_quit = false; +	while (!_quit) {  		// queen.c lines 4080-4104  		if (_logic->newRoom() > 0) {  			_logic->update(); diff --git a/queen/queen.h b/queen/queen.h index ddc0933b10..7912f151ae 100644 --- a/queen/queen.h +++ b/queen/queen.h @@ -96,6 +96,7 @@ public:  	void talkSpeed(int speed) { _talkSpeed = speed; }  	bool subtitles() const { return _subtitles; }  	void subtitles(bool enable) { _subtitles = enable; } +	void quitGame() { _quit = true; }  	void update(bool checkPlayerInput = false); @@ -121,6 +122,7 @@ protected:  	int _talkSpeed;  	bool _subtitles; +	bool _quit;  	BamScene *_bam;  	BankManager *_bankMan; | 
