KYRA works with the new GMM implementation

svn-id: r32957
This commit is contained in:
Christopher Page 2008-07-08 05:02:45 +00:00
parent 3beccaf115
commit b97f39019c
22 changed files with 67 additions and 91 deletions

View file

@ -378,9 +378,6 @@ bool MainMenu::getInput() {
while (_system->getEventManager()->pollEvent(event)) { while (_system->getEventManager()->pollEvent(event)) {
switch (event.type) { switch (event.type) {
case Common::EVENT_QUIT:
_vm->quitGame();
break;
case Common::EVENT_LBUTTONUP: case Common::EVENT_LBUTTONUP:
return true; return true;
default: default:

View file

@ -500,7 +500,7 @@ void KyraEngine_HoF::bookLoop() {
showBookPage(); showBookPage();
_bookShown = true; _bookShown = true;
while (_bookShown && !_quit) { while (_bookShown && !_eventMan->shouldQuit()) {
checkInput(buttonList); checkInput(buttonList);
removeInputTop(); removeInputTop();

View file

@ -459,7 +459,7 @@ int GUI_LoK::buttonMenuCallback(Button *caller) {
updateAllMenuButtons(); updateAllMenuButtons();
} }
while (_displayMenu && !_vm->_quit) { while (_displayMenu && !_vm->_eventMan->shouldQuit()) {
Common::Point mouse = _vm->getMousePos(); Common::Point mouse = _vm->getMousePos();
processHighlights(_menu[_toplevelMenu], mouse.x, mouse.y); processHighlights(_menu[_toplevelMenu], mouse.x, mouse.y);
processButtonList(_menuButtonList, 0, 0); processButtonList(_menuButtonList, 0, 0);
@ -485,9 +485,6 @@ void GUI_LoK::getInput() {
_mouseWheel = 0; _mouseWheel = 0;
while (_vm->_eventMan->pollEvent(event)) { while (_vm->_eventMan->pollEvent(event)) {
switch (event.type) { switch (event.type) {
case Common::EVENT_QUIT:
_vm->quitGame();
break;
case Common::EVENT_LBUTTONDOWN: case Common::EVENT_LBUTTONDOWN:
_vm->_mousePressFlag = true; _vm->_mousePressFlag = true;
break; break;
@ -582,7 +579,7 @@ int GUI_LoK::saveGameMenu(Button *button) {
_displaySubMenu = true; _displaySubMenu = true;
_cancelSubMenu = false; _cancelSubMenu = false;
while (_displaySubMenu && !_vm->_quit) { while (_displaySubMenu && !_vm->_eventMan->shouldQuit()) {
getInput(); getInput();
Common::Point mouse = _vm->getMousePos(); Common::Point mouse = _vm->getMousePos();
processHighlights(_menu[2], mouse.x, mouse.y); processHighlights(_menu[2], mouse.x, mouse.y);
@ -631,7 +628,7 @@ int GUI_LoK::loadGameMenu(Button *button) {
_vm->_gameToLoad = -1; _vm->_gameToLoad = -1;
while (_displaySubMenu && !_vm->_quit) { while (_displaySubMenu && !_vm->_eventMan->shouldQuit()) {
getInput(); getInput();
Common::Point mouse = _vm->getMousePos(); Common::Point mouse = _vm->getMousePos();
processHighlights(_menu[2], mouse.x, mouse.y); processHighlights(_menu[2], mouse.x, mouse.y);
@ -719,7 +716,7 @@ int GUI_LoK::saveGame(Button *button) {
} }
redrawTextfield(); redrawTextfield();
while (_displaySubMenu && !_vm->_quit) { while (_displaySubMenu && !_vm->_eventMan->shouldQuit()) {
getInput(); getInput();
updateSavegameString(); updateSavegameString();
Common::Point mouse = _vm->getMousePos(); Common::Point mouse = _vm->getMousePos();
@ -773,7 +770,7 @@ int GUI_LoK::quitPlaying(Button *button) {
updateMenuButton(button); updateMenuButton(button);
if (quitConfirm(_vm->_guiStrings[14])) { // Are you sure you want to quit playing? if (quitConfirm(_vm->_guiStrings[14])) { // Are you sure you want to quit playing?
_vm->quitGame(); _vm->_eventMan->pushEvent(Common::EVENT_QUIT);
} else { } else {
initMenu(_menu[_toplevelMenu]); initMenu(_menu[_toplevelMenu]);
updateAllMenuButtons(); updateAllMenuButtons();
@ -795,7 +792,7 @@ bool GUI_LoK::quitConfirm(const char *str) {
_displaySubMenu = true; _displaySubMenu = true;
_cancelSubMenu = true; _cancelSubMenu = true;
while (_displaySubMenu && !_vm->_quit) { while (_displaySubMenu && !_vm->_eventMan->shouldQuit()) {
getInput(); getInput();
Common::Point mouse = _vm->getMousePos(); Common::Point mouse = _vm->getMousePos();
processHighlights(_menu[1], mouse.x, mouse.y); processHighlights(_menu[1], mouse.x, mouse.y);
@ -861,7 +858,7 @@ int GUI_LoK::gameControlsMenu(Button *button) {
_displaySubMenu = true; _displaySubMenu = true;
_cancelSubMenu = false; _cancelSubMenu = false;
while (_displaySubMenu && !_vm->_quit) { while (_displaySubMenu && !_vm->_eventMan->shouldQuit()) {
getInput(); getInput();
Common::Point mouse = _vm->getMousePos(); Common::Point mouse = _vm->getMousePos();
processHighlights(_menu[5], mouse.x, mouse.y); processHighlights(_menu[5], mouse.x, mouse.y);

View file

@ -868,7 +868,7 @@ void KyraEngine_MR::processAlbum() {
albumNewPage(); albumNewPage();
_album.running = true; _album.running = true;
while (_album.running && !_quit) { while (_album.running && !_eventMan->shouldQuit()) {
updateInput(); updateInput();
checkInput(buttonList); checkInput(buttonList);
removeInputTop(); removeInputTop();

View file

@ -821,13 +821,9 @@ void GUI_v2::checkTextfieldInput() {
int keys = 0; int keys = 0;
while (_vm->_eventMan->pollEvent(event) && running) { while (_vm->_eventMan->pollEvent(event) && running) {
switch (event.type) { switch (event.type) {
case Common::EVENT_QUIT:
_vm->_quit = true;
break;
case Common::EVENT_KEYDOWN: case Common::EVENT_KEYDOWN:
if (event.kbd.keycode == 'q' && event.kbd.flags == Common::KBD_CTRL) if (event.kbd.keycode == 'q' && event.kbd.flags == Common::KBD_CTRL)
_vm->_quit = true; _vm->_eventMan->pushEvent(Common::EVENT_QUIT);
else else
_keyPressed = event.kbd; _keyPressed = event.kbd;
running = false; running = false;

View file

@ -311,7 +311,7 @@ int KyraEngine_HoF::go() {
seq_playSequences(kSequenceFunters, kSequenceFrash); seq_playSequences(kSequenceFunters, kSequenceFrash);
} }
return _rtl; return _eventMan->shouldRTL();
} }
void KyraEngine_HoF::startup() { void KyraEngine_HoF::startup() {
@ -440,9 +440,8 @@ void KyraEngine_HoF::startup() {
void KyraEngine_HoF::runLoop() { void KyraEngine_HoF::runLoop() {
_screen->updateScreen(); _screen->updateScreen();
_quit = false;
_runFlag = true; _runFlag = true;
while (!_quit && _runFlag) { while (!_eventMan->shouldQuit() && _runFlag) {
if (_deathHandler >= 0) { if (_deathHandler >= 0) {
removeHandItem(); removeHandItem();
delay(5); delay(5);
@ -1603,7 +1602,7 @@ void KyraEngine_HoF::loadInvWsa(const char *filename, int run, int delayTime, in
_invWsa.timer = _system->getMillis(); _invWsa.timer = _system->getMillis();
if (run) { if (run) {
while (_invWsa.running && !skipFlag() && !_quit) { while (_invWsa.running && !skipFlag() && !_eventMan->shouldQuit()) {
update(); update();
_system->delayMillis(10); _system->delayMillis(10);
} }
@ -1977,7 +1976,7 @@ void KyraEngine_HoF::playTim(const char *filename) {
return; return;
_tim->resetFinishedFlag(); _tim->resetFinishedFlag();
while (!_quit && !_tim->finished()) { while (!_eventMan->shouldQuit() && !_tim->finished()) {
_tim->exec(tim, 0); _tim->exec(tim, 0);
if (_chatText) if (_chatText)
updateWithText(); updateWithText();

View file

@ -300,8 +300,8 @@ int KyraEngine_LoK::go() {
if (_gameToLoad == -1) { if (_gameToLoad == -1) {
setGameFlag(0xEF); setGameFlag(0xEF);
seq_intro(); seq_intro();
if (_quit) if (_eventMan->shouldQuit())
return _rtl; return _eventMan->shouldRTL();
if (_skipIntroFlag && _abortIntroFlag) if (_skipIntroFlag && _abortIntroFlag)
resetGameFlag(0xEF); resetGameFlag(0xEF);
} }
@ -309,7 +309,7 @@ int KyraEngine_LoK::go() {
resetGameFlag(0xEF); resetGameFlag(0xEF);
mainLoop(); mainLoop();
} }
return _rtl; return _eventMan->shouldRTL();
} }
@ -399,7 +399,7 @@ void KyraEngine_LoK::startup() {
void KyraEngine_LoK::mainLoop() { void KyraEngine_LoK::mainLoop() {
debugC(9, kDebugLevelMain, "KyraEngine_LoK::mainLoop()"); debugC(9, kDebugLevelMain, "KyraEngine_LoK::mainLoop()");
while (!_quit) { while (!_eventMan->shouldQuit()) {
int32 frameTime = (int32)_system->getMillis(); int32 frameTime = (int32)_system->getMillis();
_skipFlag = false; _skipFlag = false;
@ -444,7 +444,7 @@ void KyraEngine_LoK::mainLoop() {
} }
void KyraEngine_LoK::delayUntil(uint32 timestamp, bool updateTimers, bool update, bool isMainLoop) { void KyraEngine_LoK::delayUntil(uint32 timestamp, bool updateTimers, bool update, bool isMainLoop) {
while (_system->getMillis() < timestamp && !_quit) { while (_system->getMillis() < timestamp && !_eventMan->shouldQuit()) {
if (updateTimers) if (updateTimers)
_timer->update(); _timer->update();
@ -476,7 +476,7 @@ void KyraEngine_LoK::delay(uint32 amount, bool update, bool isMainLoop) {
if (event.kbd.keycode == 'd') if (event.kbd.keycode == 'd')
_debugger->attach(); _debugger->attach();
else if (event.kbd.keycode == 'q') else if (event.kbd.keycode == 'q')
_quit = true; quitGame();
} else if (event.kbd.keycode == '.') { } else if (event.kbd.keycode == '.') {
_skipFlag = true; _skipFlag = true;
} else if (event.kbd.keycode == Common::KEYCODE_RETURN || event.kbd.keycode == Common::KEYCODE_SPACE || event.kbd.keycode == Common::KEYCODE_ESCAPE) { } else if (event.kbd.keycode == Common::KEYCODE_RETURN || event.kbd.keycode == Common::KEYCODE_SPACE || event.kbd.keycode == Common::KEYCODE_ESCAPE) {
@ -488,9 +488,6 @@ void KyraEngine_LoK::delay(uint32 amount, bool update, bool isMainLoop) {
case Common::EVENT_MOUSEMOVE: case Common::EVENT_MOUSEMOVE:
_animator->_updateScreen = true; _animator->_updateScreen = true;
break; break;
case Common::EVENT_QUIT:
quitGame();
break;
case Common::EVENT_LBUTTONDOWN: case Common::EVENT_LBUTTONDOWN:
_mousePressFlag = true; _mousePressFlag = true;
break; break;
@ -529,27 +526,24 @@ void KyraEngine_LoK::delay(uint32 amount, bool update, bool isMainLoop) {
if (_skipFlag && !_abortIntroFlag && !queryGameFlag(0xFE)) if (_skipFlag && !_abortIntroFlag && !queryGameFlag(0xFE))
_skipFlag = false; _skipFlag = false;
if (amount > 0 && !_skipFlag && !_quit) if (amount > 0 && !_skipFlag && !_eventMan->shouldQuit())
_system->delayMillis(10); _system->delayMillis(10);
if (_skipFlag) if (_skipFlag)
_sound->voiceStop(); _sound->voiceStop();
} while (!_skipFlag && _system->getMillis() < start + amount && !_quit); } while (!_skipFlag && _system->getMillis() < start + amount && !_eventMan->shouldQuit());
} }
void KyraEngine_LoK::waitForEvent() { void KyraEngine_LoK::waitForEvent() {
bool finished = false; bool finished = false;
Common::Event event; Common::Event event;
while (!finished && !_quit) { while (!finished && !_eventMan->shouldQuit()) {
while (_eventMan->pollEvent(event)) { while (_eventMan->pollEvent(event)) {
switch (event.type) { switch (event.type) {
case Common::EVENT_KEYDOWN: case Common::EVENT_KEYDOWN:
finished = true; finished = true;
break; break;
case Common::EVENT_QUIT:
quitGame();
break;
case Common::EVENT_LBUTTONDOWN: case Common::EVENT_LBUTTONDOWN:
finished = true; finished = true;
_skipFlag = true; _skipFlag = true;

View file

@ -263,7 +263,7 @@ int KyraEngine_MR::go() {
running = false; running = false;
} }
while (running && !_quit) { while (running && !_eventMan->shouldQuit()) {
_screen->_curPage = 0; _screen->_curPage = 0;
_screen->clearPage(0); _screen->clearPage(0);
@ -272,14 +272,14 @@ int KyraEngine_MR::go() {
// XXX // XXX
playMenuAudioFile(); playMenuAudioFile();
for (int i = 0; i < 64 && !_quit; ++i) { for (int i = 0; i < 64 && !_eventMan->shouldQuit(); ++i) {
uint32 nextRun = _system->getMillis() + 3 * _tickLength; uint32 nextRun = _system->getMillis() + 3 * _tickLength;
_menuAnim->displayFrame(i, 0); _menuAnim->displayFrame(i, 0);
_screen->updateScreen(); _screen->updateScreen();
delayUntil(nextRun); delayUntil(nextRun);
} }
for (int i = 64; i > 29 && !_quit; --i) { for (int i = 64; i > 29 && !_eventMan->shouldQuit(); --i) {
uint32 nextRun = _system->getMillis() + 3 * _tickLength; uint32 nextRun = _system->getMillis() + 3 * _tickLength;
_menuAnim->displayFrame(i, 0); _menuAnim->displayFrame(i, 0);
_screen->updateScreen(); _screen->updateScreen();
@ -324,7 +324,7 @@ int KyraEngine_MR::go() {
if (_showOutro) if (_showOutro)
playVQA("CREDITS"); playVQA("CREDITS");
return _rtl; return _eventMan->shouldRTL();
} }
void KyraEngine_MR::initMainMenu() { void KyraEngine_MR::initMainMenu() {
@ -987,7 +987,7 @@ void KyraEngine_MR::runLoop() {
_eventList.clear(); _eventList.clear();
_runFlag = true; _runFlag = true;
while (_runFlag && !_quit) { while (_runFlag && !_eventMan->shouldQuit()) {
if (_deathHandler >= 0) { if (_deathHandler >= 0) {
removeHandItem(); removeHandItem();
delay(5); delay(5);

View file

@ -218,7 +218,7 @@ KyraEngine_v1::~KyraEngine_v1() {
void KyraEngine_v1::quitGame() { void KyraEngine_v1::quitGame() {
debugC(9, kDebugLevelMain, "KyraEngine_v1::quitGame()"); debugC(9, kDebugLevelMain, "KyraEngine_v1::quitGame()");
_quit = true; _eventMan->pushEvent(Common::EVENT_QUIT);
// Nothing to do here // Nothing to do here
} }
@ -256,7 +256,7 @@ int KyraEngine_v1::resetGameFlag(int flag) {
} }
void KyraEngine_v1::delayUntil(uint32 timestamp, bool updateTimers, bool update, bool isMainLoop) { void KyraEngine_v1::delayUntil(uint32 timestamp, bool updateTimers, bool update, bool isMainLoop) {
while (_system->getMillis() < timestamp && !_quit) { while (_system->getMillis() < timestamp && !_eventMan->shouldQuit()) {
if (timestamp - _system->getMillis() >= 10) if (timestamp - _system->getMillis() >= 10)
delay(10, update, isMainLoop); delay(10, update, isMainLoop);
} }

View file

@ -112,7 +112,7 @@ public:
virtual void pauseEngineIntern(bool pause); virtual void pauseEngineIntern(bool pause);
bool quit() const { return _quit; } bool quit() const { return _eventMan->shouldQuit(); }
uint8 game() const { return _flags.gameID; } uint8 game() const { return _flags.gameID; }
const GameFlags &gameFlags() const { return _flags; } const GameFlags &gameFlags() const { return _flags; }

View file

@ -127,7 +127,7 @@ void KyraEngine_v2::delay(uint32 amount, bool updateGame, bool isMainLoop) {
if (amount > 0) if (amount > 0)
_system->delayMillis(amount > 10 ? 10 : amount); _system->delayMillis(amount > 10 ? 10 : amount);
} while (!skipFlag() && _system->getMillis() < start + amount && !_quit); } while (!skipFlag() && _system->getMillis() < start + amount && !_eventMan->shouldQuit());
} }
int KyraEngine_v2::checkInput(Button *buttonList, bool mainLoop) { int KyraEngine_v2::checkInput(Button *buttonList, bool mainLoop) {
@ -206,15 +206,11 @@ void KyraEngine_v2::updateInput() {
while (_eventMan->pollEvent(event)) { while (_eventMan->pollEvent(event)) {
switch (event.type) { switch (event.type) {
case Common::EVENT_QUIT:
_quit = true;
break;
case Common::EVENT_KEYDOWN: case Common::EVENT_KEYDOWN:
if (event.kbd.keycode == '.' || event.kbd.keycode == Common::KEYCODE_ESCAPE) if (event.kbd.keycode == '.' || event.kbd.keycode == Common::KEYCODE_ESCAPE)
_eventList.push_back(Event(event, true)); _eventList.push_back(Event(event, true));
else if (event.kbd.keycode == 'q' && event.kbd.flags == Common::KBD_CTRL) else if (event.kbd.keycode == 'q' && event.kbd.flags == Common::KBD_CTRL)
_quit = true; quitGame();
else else
_eventList.push_back(event); _eventList.push_back(event);
break; break;

View file

@ -161,7 +161,7 @@ Common::InSaveFile *KyraEngine_v1::openSaveForReading(const char *filename, Save
Common::OutSaveFile *KyraEngine_v1::openSaveForWriting(const char *filename, const char *saveName) const { Common::OutSaveFile *KyraEngine_v1::openSaveForWriting(const char *filename, const char *saveName) const {
debugC(9, kDebugLevelMain, "KyraEngine_v1::openSaveForWriting('%s', '%s')", filename, saveName); debugC(9, kDebugLevelMain, "KyraEngine_v1::openSaveForWriting('%s', '%s')", filename, saveName);
if (_quit) if (_eventMan->shouldQuit())
return 0; return 0;
Common::OutSaveFile *out = 0; Common::OutSaveFile *out = 0;

View file

@ -221,7 +221,7 @@ void KyraEngine_LoK::loadGame(const char *fileName) {
void KyraEngine_LoK::saveGame(const char *fileName, const char *saveName) { void KyraEngine_LoK::saveGame(const char *fileName, const char *saveName) {
debugC(9, kDebugLevelMain, "KyraEngine_LoK::saveGame('%s', '%s')", fileName, saveName); debugC(9, kDebugLevelMain, "KyraEngine_LoK::saveGame('%s', '%s')", fileName, saveName);
if (_quit) if (_eventMan->shouldQuit())
return; return;
Common::OutSaveFile *out = openSaveForWriting(fileName, saveName); Common::OutSaveFile *out = openSaveForWriting(fileName, saveName);

View file

@ -277,7 +277,7 @@ int KyraEngine_HoF::trySceneChange(int *moveTable, int unk1, int updateChar) {
int changedScene = 0; int changedScene = 0;
const int *moveTableStart = moveTable; const int *moveTableStart = moveTable;
_unk4 = 0; _unk4 = 0;
while (running && !_quit) { while (running && !_eventMan->shouldQuit()) {
if (*moveTable >= 0 && *moveTable <= 7) { if (*moveTable >= 0 && *moveTable <= 7) {
_mainCharacter.facing = getOppositeFacingDirection(*moveTable); _mainCharacter.facing = getOppositeFacingDirection(*moveTable);
unkFlag = true; unkFlag = true;

View file

@ -653,7 +653,7 @@ int KyraEngine_MR::trySceneChange(int *moveTable, int unk1, int updateChar) {
const int *moveTableStart = moveTable; const int *moveTableStart = moveTable;
_unk4 = 0; _unk4 = 0;
while (running && !_quit) { while (running && !_eventMan->shouldQuit()) {
if (*moveTable >= 0 && *moveTable <= 7) { if (*moveTable >= 0 && *moveTable <= 7) {
_mainCharacter.facing = getOppositeFacingDirection(*moveTable); _mainCharacter.facing = getOppositeFacingDirection(*moveTable);
unkFlag = true; unkFlag = true;

View file

@ -786,7 +786,7 @@ int KyraEngine_MR::o3_daggerWarning(EMCState *script) {
_screen->_curPage = curPageBackUp; _screen->_curPage = curPageBackUp;
_screen->showMouse(); _screen->showMouse();
while (!_quit) { while (!_eventMan->shouldQuit()) {
int keys = checkInput(0); int keys = checkInput(0);
removeInputTop(); removeInputTop();

View file

@ -75,7 +75,7 @@ void KyraEngine_HoF::seq_playSequences(int startSeq, int endSeq) {
_seqEndTime = 0; _seqEndTime = 0;
_menuChoice = 0; _menuChoice = 0;
for (int seqNum = startSeq; seqNum <= endSeq && !((skipFlag() && allowSkip) || _quit || (_abortIntroFlag && allowSkip) || _menuChoice); seqNum++) { for (int seqNum = startSeq; seqNum <= endSeq && !((skipFlag() && allowSkip) || _eventMan->shouldQuit() || (_abortIntroFlag && allowSkip) || _menuChoice); seqNum++) {
_screen->clearPage(0); _screen->clearPage(0);
_screen->clearPage(8); _screen->clearPage(8);
memcpy(_screen->getPalette(1), _screen->getPalette(0), 0x300); memcpy(_screen->getPalette(1), _screen->getPalette(0), 0x300);
@ -131,7 +131,7 @@ void KyraEngine_HoF::seq_playSequences(int startSeq, int endSeq) {
seq_sequenceCommand(cseq.startupCommand); seq_sequenceCommand(cseq.startupCommand);
if (!((skipFlag() && allowSkip) || _quit || (_abortIntroFlag && allowSkip) || _menuChoice)) { if (!((skipFlag() && allowSkip) || _eventMan->shouldQuit() || (_abortIntroFlag && allowSkip) || _menuChoice)) {
_screen->copyPage(2, 0); _screen->copyPage(2, 0);
_screen->updateScreen(); _screen->updateScreen();
} }
@ -165,7 +165,7 @@ void KyraEngine_HoF::seq_playSequences(int startSeq, int endSeq) {
_seqWsaCurrentFrame = cseq.startFrame; _seqWsaCurrentFrame = cseq.startFrame;
bool loop = true; bool loop = true;
while (loop && !((skipFlag() && allowSkip) || _quit || (_abortIntroFlag && allowSkip) || _menuChoice)) { while (loop && !((skipFlag() && allowSkip) || _eventMan->shouldQuit() || (_abortIntroFlag && allowSkip) || _menuChoice)) {
_seqEndTime = _system->getMillis() + _seqFrameDelay * _tickLength; _seqEndTime = _system->getMillis() + _seqFrameDelay * _tickLength;
if (_seqWsa || !cb) if (_seqWsa || !cb)
@ -189,16 +189,16 @@ void KyraEngine_HoF::seq_playSequences(int startSeq, int endSeq) {
seq_processWSAs(); seq_processWSAs();
seq_processText(); seq_processText();
if ((_seqWsa || !cb) && !((skipFlag() && allowSkip) || _quit || (_abortIntroFlag && allowSkip) || _menuChoice)) { if ((_seqWsa || !cb) && !((skipFlag() && allowSkip) || _eventMan->shouldQuit() || (_abortIntroFlag && allowSkip) || _menuChoice)) {
_screen->copyPage(2, 0); _screen->copyPage(2, 0);
_screen->updateScreen(); _screen->updateScreen();
} }
bool loop2 = true; bool loop2 = true;
while (loop2 && !((skipFlag() && allowSkip) || _quit || (_abortIntroFlag && allowSkip) || _menuChoice)) { while (loop2 && !((skipFlag() && allowSkip) || _eventMan->shouldQuit() || (_abortIntroFlag && allowSkip) || _menuChoice)) {
if (_seqWsa) { if (_seqWsa) {
seq_processText(); seq_processText();
if (!((skipFlag() && allowSkip) || _quit || (_abortIntroFlag && allowSkip) || _menuChoice)) { if (!((skipFlag() && allowSkip) || _eventMan->shouldQuit() || (_abortIntroFlag && allowSkip) || _menuChoice)) {
_screen->copyPage(2, 0); _screen->copyPage(2, 0);
_screen->updateScreen(); _screen->updateScreen();
} }
@ -230,7 +230,7 @@ void KyraEngine_HoF::seq_playSequences(int startSeq, int endSeq) {
} else { } else {
_seqFrameDelay = cseq.frameDelay; _seqFrameDelay = cseq.frameDelay;
_seqEndTime = _system->getMillis() + _seqFrameDelay * _tickLength; _seqEndTime = _system->getMillis() + _seqFrameDelay * _tickLength;
while (!((skipFlag() && allowSkip) || _quit || (_abortIntroFlag && allowSkip) || _menuChoice)) { while (!((skipFlag() && allowSkip) || _eventMan->shouldQuit() || (_abortIntroFlag && allowSkip) || _menuChoice)) {
_seqSubFrameStartTime = _system->getMillis(); _seqSubFrameStartTime = _system->getMillis();
seq_processWSAs(); seq_processWSAs();
if (cb) if (cb)
@ -262,7 +262,7 @@ void KyraEngine_HoF::seq_playSequences(int startSeq, int endSeq) {
dl = ct; dl = ct;
_seqEndTime = _system->getMillis() + dl; _seqEndTime = _system->getMillis() + dl;
while (!((skipFlag() && allowSkip) || _quit || (_abortIntroFlag && allowSkip) || _menuChoice)) { while (!((skipFlag() && allowSkip) || _eventMan->shouldQuit() || (_abortIntroFlag && allowSkip) || _menuChoice)) {
_seqSubFrameStartTime = _system->getMillis(); _seqSubFrameStartTime = _system->getMillis();
seq_processWSAs(); seq_processWSAs();
@ -2093,7 +2093,7 @@ void KyraEngine_HoF::seq_loadNestedSequence(int wsaNum, int seqNum) {
void KyraEngine_HoF::seq_nestedSequenceFrame(int command, int wsaNum) { void KyraEngine_HoF::seq_nestedSequenceFrame(int command, int wsaNum) {
int xa = 0, ya = 0; int xa = 0, ya = 0;
command--; command--;
if (!_activeWSA[wsaNum].movie || skipFlag() || _quit || _abortIntroFlag) if (!_activeWSA[wsaNum].movie || skipFlag() || _eventMan->shouldQuit() || _abortIntroFlag)
return; return;
switch (command) { switch (command) {
@ -2293,7 +2293,7 @@ bool KyraEngine_HoF::seq_processNextSubFrame(int wsaNum) {
void KyraEngine_HoF::seq_printCreditsString(uint16 strIndex, int x, int y, const uint8 *colorMap, uint8 textcolor) { void KyraEngine_HoF::seq_printCreditsString(uint16 strIndex, int x, int y, const uint8 *colorMap, uint8 textcolor) {
uint8 colormap[16]; uint8 colormap[16];
if (skipFlag() || _quit || _abortIntroFlag || _menuChoice) if (skipFlag() || _eventMan->shouldQuit() || _abortIntroFlag || _menuChoice)
return; return;
memset(&_screen->getPalette(0)[0x2fa], 0x3f, 6); memset(&_screen->getPalette(0)[0x2fa], 0x3f, 6);
@ -2774,7 +2774,7 @@ void KyraEngine_HoF::seq_makeBookAppear() {
++_invWsa.curFrame; ++_invWsa.curFrame;
if (_invWsa.curFrame >= _invWsa.lastFrame && !_quit) if (_invWsa.curFrame >= _invWsa.lastFrame && !_eventMan->shouldQuit())
break; break;
switch (_invWsa.curFrame) { switch (_invWsa.curFrame) {

View file

@ -164,7 +164,7 @@ void KyraEngine_LoK::seq_introLogos() {
_screen->updateScreen(); _screen->updateScreen();
_screen->fadeFromBlack(); _screen->fadeFromBlack();
if (_seq->playSequence(_seq_WestwoodLogo, _skipFlag) || _quit) { if (_seq->playSequence(_seq_WestwoodLogo, _skipFlag) || _eventMan->shouldQuit()) {
_screen->fadeToBlack(); _screen->fadeToBlack();
_screen->clearPage(0); _screen->clearPage(0);
return; return;
@ -176,14 +176,14 @@ void KyraEngine_LoK::seq_introLogos() {
_screen->setScreenPalette(_screen->_currentPalette); _screen->setScreenPalette(_screen->_currentPalette);
} }
if ((_seq->playSequence(_seq_KyrandiaLogo, _skipFlag) && !seq_skipSequence()) || _quit) { if ((_seq->playSequence(_seq_KyrandiaLogo, _skipFlag) && !seq_skipSequence()) || _eventMan->shouldQuit()) {
_screen->fadeToBlack(); _screen->fadeToBlack();
_screen->clearPage(0); _screen->clearPage(0);
return; return;
} }
_screen->fillRect(0, 179, 319, 199, 0); _screen->fillRect(0, 179, 319, 199, 0);
if (_quit) if (_eventMan->shouldQuit())
return; return;
if (_flags.platform == Common::kPlatformAmiga) { if (_flags.platform == Common::kPlatformAmiga) {
@ -223,10 +223,10 @@ void KyraEngine_LoK::seq_introLogos() {
oldDistance = distance; oldDistance = distance;
delay(10); delay(10);
} while (!doneFlag && !_quit && !_abortIntroFlag); } while (!doneFlag && !_eventMan->shouldQuit() && !_abortIntroFlag);
} }
if (_quit) if (_eventMan->shouldQuit())
return; return;
_seq->playSequence(_seq_Forest, true); _seq->playSequence(_seq_Forest, true);
@ -1030,7 +1030,7 @@ void KyraEngine_LoK::seq_brandonToStone() {
void KyraEngine_LoK::seq_playEnding() { void KyraEngine_LoK::seq_playEnding() {
debugC(9, kDebugLevelMain, "KyraEngine_LoK::seq_playEnding()"); debugC(9, kDebugLevelMain, "KyraEngine_LoK::seq_playEnding()");
if (_quit) if (_eventMan->shouldQuit())
return; return;
_screen->hideMouse(); _screen->hideMouse();
_screen->_curPage = 0; _screen->_curPage = 0;
@ -1187,7 +1187,6 @@ void KyraEngine_LoK::seq_playCredits() {
finished = true; finished = true;
break; break;
case Common::EVENT_QUIT: case Common::EVENT_QUIT:
quitGame();
finished = true; finished = true;
break; break;
default: default:
@ -1211,7 +1210,7 @@ void KyraEngine_LoK::seq_playCredits() {
bool KyraEngine_LoK::seq_skipSequence() const { bool KyraEngine_LoK::seq_skipSequence() const {
debugC(9, kDebugLevelMain, "KyraEngine_LoK::seq_skipSequence()"); debugC(9, kDebugLevelMain, "KyraEngine_LoK::seq_skipSequence()");
return _quit || _abortIntroFlag; return _eventMan->shouldQuit() || _abortIntroFlag;
} }
int KyraEngine_LoK::handleMalcolmFlag() { int KyraEngine_LoK::handleMalcolmFlag() {

View file

@ -335,7 +335,7 @@ void KyraEngine_HoF::objectChatWaitToFinish() {
const uint32 endTime = _chatEndTime; const uint32 endTime = _chatEndTime;
resetSkipFlag(); resetSkipFlag();
while (running && !_quit) { while (running && !_eventMan->shouldQuit()) {
if (!_emc->isValid(&_chatScriptState)) if (!_emc->isValid(&_chatScriptState))
_emc->start(&_chatScriptState, 1); _emc->start(&_chatScriptState, 1);
@ -353,7 +353,7 @@ void KyraEngine_HoF::objectChatWaitToFinish() {
uint32 nextFrame = _system->getMillis() + delayTime * _tickLength; uint32 nextFrame = _system->getMillis() + delayTime * _tickLength;
while (_system->getMillis() < nextFrame && !_quit) { while (_system->getMillis() < nextFrame && !_eventMan->shouldQuit()) {
updateWithText(); updateWithText();
const uint32 curTime = _system->getMillis(); const uint32 curTime = _system->getMillis();
@ -593,7 +593,7 @@ void KyraEngine_HoF::initTalkObject(int index) {
if (_currentTalkSections.STATim) { if (_currentTalkSections.STATim) {
_tim->resetFinishedFlag(); _tim->resetFinishedFlag();
while (!_quit && !_tim->finished()) { while (!_eventMan->shouldQuit() && !_tim->finished()) {
_tim->exec(_currentTalkSections.STATim, false); _tim->exec(_currentTalkSections.STATim, false);
if (_chatText) if (_chatText)
updateWithText(); updateWithText();
@ -609,7 +609,7 @@ void KyraEngine_HoF::deinitTalkObject(int index) {
if (_currentTalkSections.ENDTim) { if (_currentTalkSections.ENDTim) {
_tim->resetFinishedFlag(); _tim->resetFinishedFlag();
while (!_quit && !_tim->finished()) { while (!_eventMan->shouldQuit() && !_tim->finished()) {
_tim->exec(_currentTalkSections.ENDTim, false); _tim->exec(_currentTalkSections.ENDTim, false);
if (_chatText) if (_chatText)
updateWithText(); updateWithText();
@ -647,10 +647,10 @@ void KyraEngine_HoF::npcChatSequence(const char *str, int objectId, int vocHigh,
_chatVocHigh = _chatVocLow = -1; _chatVocHigh = _chatVocLow = -1;
} }
while (((textEnabled() && _chatEndTime > _system->getMillis()) || (speechEnabled() && snd_voiceIsPlaying())) && !(_quit || skipFlag())) { while (((textEnabled() && _chatEndTime > _system->getMillis()) || (speechEnabled() && snd_voiceIsPlaying())) && !(_eventMan->shouldQuit() || skipFlag())) {
if ((!speechEnabled() && chatAnimEndTime > _system->getMillis()) || (speechEnabled() && snd_voiceIsPlaying())) { if ((!speechEnabled() && chatAnimEndTime > _system->getMillis()) || (speechEnabled() && snd_voiceIsPlaying())) {
_tim->resetFinishedFlag(); _tim->resetFinishedFlag();
while (!_tim->finished() && !skipFlag() && !_quit) { while (!_tim->finished() && !skipFlag() && !_eventMan->shouldQuit()) {
if (_currentTalkSections.TLKTim) if (_currentTalkSections.TLKTim)
_tim->exec(_currentTalkSections.TLKTim, false); _tim->exec(_currentTalkSections.TLKTim, false);
else else

View file

@ -121,7 +121,6 @@ void KyraEngine_LoK::waitForChatToFinish(int vocFile, int16 chatDuration, const
_skipFlag = true; _skipFlag = true;
break; break;
case Common::EVENT_QUIT: case Common::EVENT_QUIT:
quitGame();
runLoop = false; runLoop = false;
break; break;
case Common::EVENT_LBUTTONDOWN: case Common::EVENT_LBUTTONDOWN:

View file

@ -349,7 +349,7 @@ void KyraEngine_MR::objectChatWaitToFinish() {
const uint32 endTime = _chatEndTime; const uint32 endTime = _chatEndTime;
resetSkipFlag(); resetSkipFlag();
while (running && !_quit) { while (running && !_eventMan->shouldQuit()) {
if (!_emc->isValid(&_chatScriptState)) if (!_emc->isValid(&_chatScriptState))
_emc->start(&_chatScriptState, 1); _emc->start(&_chatScriptState, 1);
@ -367,7 +367,7 @@ void KyraEngine_MR::objectChatWaitToFinish() {
uint32 nextFrame = _system->getMillis() + delayTime * _tickLength; uint32 nextFrame = _system->getMillis() + delayTime * _tickLength;
while (_system->getMillis() < nextFrame && !_quit) { while (_system->getMillis() < nextFrame && !_eventMan->shouldQuit()) {
updateWithText(); updateWithText();
const uint32 curTime = _system->getMillis(); const uint32 curTime = _system->getMillis();
@ -419,7 +419,7 @@ void KyraEngine_MR::badConscienceChatWaitToFinish() {
uint32 nextFrame = _system->getMillis() + _rnd.getRandomNumberRng(4, 8) * _tickLength; uint32 nextFrame = _system->getMillis() + _rnd.getRandomNumberRng(4, 8) * _tickLength;
int frame = _badConscienceFrameTable[_badConscienceAnim+24]; int frame = _badConscienceFrameTable[_badConscienceAnim+24];
while (running && !_quit) { while (running && !_eventMan->shouldQuit()) {
if (nextFrame < _system->getMillis()) { if (nextFrame < _system->getMillis()) {
++frame; ++frame;
if (_badConscienceFrameTable[_badConscienceAnim+32] < frame) if (_badConscienceFrameTable[_badConscienceAnim+32] < frame)
@ -477,7 +477,7 @@ void KyraEngine_MR::goodConscienceChatWaitToFinish() {
uint32 nextFrame = _system->getMillis() + _rnd.getRandomNumberRng(3, 6) * _tickLength; uint32 nextFrame = _system->getMillis() + _rnd.getRandomNumberRng(3, 6) * _tickLength;
int frame = _goodConscienceFrameTable[_goodConscienceAnim+15]; int frame = _goodConscienceFrameTable[_goodConscienceAnim+15];
while (running && !_quit) { while (running && !_eventMan->shouldQuit()) {
if (nextFrame < _system->getMillis()) { if (nextFrame < _system->getMillis()) {
++frame; ++frame;
if (_goodConscienceFrameTable[_goodConscienceAnim+20] < frame) if (_goodConscienceFrameTable[_goodConscienceAnim+20] < frame)
@ -597,7 +597,7 @@ void KyraEngine_MR::albumChatWaitToFinish() {
uint32 nextFrame = 0; uint32 nextFrame = 0;
int frame = 12; int frame = 12;
while (running && !_quit) { while (running && !_eventMan->shouldQuit()) {
if (nextFrame < _system->getMillis()) { if (nextFrame < _system->getMillis()) {
++frame; ++frame;
if (frame > 22) if (frame > 22)

View file

@ -672,7 +672,6 @@ void VQAMovie::play() {
return; return;
break; break;
case Common::EVENT_QUIT: case Common::EVENT_QUIT:
_vm->quitGame();
return; return;
default: default:
break; break;