mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-04 18:06:26 +00:00
GNAP: Add several checks on _gameDone in order to quit the game quickly
This commit is contained in:
parent
97ac77b5f1
commit
9a2bc3c572
@ -481,7 +481,7 @@ void PlayerGnap::useJointOnPlatypus() {
|
||||
plat._idleFacing = kDirNone;
|
||||
playSequence(0x107B5);
|
||||
walkStep();
|
||||
while (_vm->_gameSys->getAnimationStatus(0) != 2) {
|
||||
while (_vm->_gameSys->getAnimationStatus(0) != 2 && !_vm->_gameDone) {
|
||||
_vm->updateMouseCursor();
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
@ -511,7 +511,7 @@ void PlayerGnap::kissPlatypus(int callback) {
|
||||
plat._sequenceId = 0x7CB;
|
||||
plat._idleFacing = kDirNone;
|
||||
playSequence(0x107B5);
|
||||
while (_vm->_gameSys->getAnimationStatus(0) != 2) {
|
||||
while (_vm->_gameSys->getAnimationStatus(0) != 2 && !_vm->_gameDone) {
|
||||
_vm->updateMouseCursor();
|
||||
_vm->doCallback(callback);
|
||||
_vm->gameUpdateTick();
|
||||
@ -1120,7 +1120,7 @@ bool PlayerGnap::doPlatypusAction(int gridX, int gridY, int platSequenceId, int
|
||||
|
||||
if (!_vm->isPointBlocked(checkPt) && (_pos != checkPt)) {
|
||||
walkTo(checkPt, 0, 0x107B9, 1);
|
||||
while (_vm->_gameSys->getAnimationStatus(0) != 2) {
|
||||
while (_vm->_gameSys->getAnimationStatus(0) != 2 && !_vm->_gameDone) {
|
||||
_vm->updateMouseCursor();
|
||||
_vm->doCallback(callback);
|
||||
_vm->gameUpdateTick();
|
||||
@ -1129,7 +1129,7 @@ bool PlayerGnap::doPlatypusAction(int gridX, int gridY, int platSequenceId, int
|
||||
if (_pos == plat._pos + Common::Point(gridX, gridY)) {
|
||||
_vm->_gameSys->setAnimation(platSequenceId, plat._id, 1);
|
||||
plat.playSequence(platSequenceId);
|
||||
while (_vm->_gameSys->getAnimationStatus(1) != 2) {
|
||||
while (_vm->_gameSys->getAnimationStatus(1) != 2 && !_vm->_gameDone) {
|
||||
_vm->updateMouseCursor();
|
||||
_vm->doCallback(callback);
|
||||
_vm->gameUpdateTick();
|
||||
@ -1145,8 +1145,9 @@ bool PlayerGnap::doPlatypusAction(int gridX, int gridY, int platSequenceId, int
|
||||
void PlayerGnap::useDisguiseOnPlatypus() {
|
||||
_vm->_gameSys->setAnimation(0x10846, _id, 0);
|
||||
playSequence(0x10846);
|
||||
while (_vm->_gameSys->getAnimationStatus(0) != 2)
|
||||
while (_vm->_gameSys->getAnimationStatus(0) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
|
||||
_vm->_newSceneNum = 47;
|
||||
_vm->_isLeavingScene = true;
|
||||
_vm->_sceneDone = true;
|
||||
|
@ -241,7 +241,6 @@ void GnapEngine::updateEvents() {
|
||||
void GnapEngine::gameUpdateTick() {
|
||||
updateEvents();
|
||||
|
||||
// TODO Check _gameDone in the various game loops
|
||||
if (shouldQuit()) {
|
||||
_gameDone = true;
|
||||
_sceneDone = true;
|
||||
@ -307,13 +306,12 @@ void GnapEngine::resumeGame() {
|
||||
}
|
||||
|
||||
void GnapEngine::updatePause() {
|
||||
while (_isPaused) {
|
||||
while (_isPaused && !_gameDone) {
|
||||
gameUpdateTick();
|
||||
if (isKeyStatus1(Common::KEYCODE_p)) {
|
||||
clearKeyStatus1(Common::KEYCODE_p);
|
||||
resumeGame();
|
||||
}
|
||||
//_system->delayMillis(100);
|
||||
}
|
||||
}
|
||||
|
||||
@ -557,7 +555,7 @@ void GnapEngine::showFullScreenSprite(int resourceId) {
|
||||
setGrabCursorSprite(-1);
|
||||
addFullScreenSprite(resourceId, 256);
|
||||
while (!_mouseClickState._left && !isKeyStatus1(Common::KEYCODE_ESCAPE) &&
|
||||
!isKeyStatus1(Common::KEYCODE_SPACE) && !isKeyStatus1(29)) {
|
||||
!isKeyStatus1(Common::KEYCODE_SPACE) && !isKeyStatus1(29) && !_gameDone) {
|
||||
gameUpdateTick();
|
||||
}
|
||||
_mouseClickState._left = false;
|
||||
@ -737,8 +735,6 @@ void GnapEngine::mainLoop() {
|
||||
deleteSurface(&_backgroundSurface);
|
||||
|
||||
_dat->close(1);
|
||||
// TODO freeMenuSprite();
|
||||
// TODO freeFont();
|
||||
}
|
||||
|
||||
void GnapEngine::initScene() {
|
||||
@ -829,7 +825,6 @@ void GnapEngine::checkGameKeys() {
|
||||
pauseGame();
|
||||
updatePause();
|
||||
}
|
||||
// TODO? Debug input
|
||||
}
|
||||
|
||||
void GnapEngine::startSoundTimerA(int timerIndex) {
|
||||
@ -911,14 +906,14 @@ void GnapEngine::updateIdleTimer() {
|
||||
|
||||
void GnapEngine::screenEffect(int dir, byte r, byte g, byte b) {
|
||||
if (dir == 1) {
|
||||
for (int y = 300; y < 600; y += 50) {
|
||||
for (int y = 300; y < 600 && !_gameDone; y += 50) {
|
||||
_gameSys->fillSurface(nullptr, 0, y, 800, 50, r, g, b);
|
||||
_gameSys->fillSurface(nullptr, 0, 549 - y + 1, 800, 50, r, g, b);
|
||||
gameUpdateTick();
|
||||
_system->delayMillis(50);
|
||||
}
|
||||
} else {
|
||||
for (int y = 0; y < 300; y += 50) {
|
||||
for (int y = 0; y < 300 && !_gameDone; y += 50) {
|
||||
_gameSys->fillSurface(nullptr, 0, y, 800, 50, r, g, b);
|
||||
_gameSys->fillSurface(nullptr, 0, 549 - y + 1, 800, 50, r, g, b);
|
||||
gameUpdateTick();
|
||||
@ -1000,13 +995,13 @@ void GnapEngine::playSequences(int fullScreenSpriteId, int sequenceId1, int sequ
|
||||
kSeqSyncWait, 0, 15 * (5 * _gnap->_pos.x - 25), 48 * (_gnap->_pos.y - 8));
|
||||
_gnap->_sequenceId = sequenceId2;
|
||||
_gnap->_sequenceDatNum = 0;
|
||||
while (_gameSys->getAnimationStatus(0) != 2)
|
||||
while (_gameSys->getAnimationStatus(0) != 2 && !_gameDone)
|
||||
gameUpdateTick();
|
||||
hideCursor();
|
||||
addFullScreenSprite(fullScreenSpriteId, 255);
|
||||
_gameSys->setAnimation(sequenceId1, 256, 0);
|
||||
_gameSys->insertSequence(sequenceId1, 256, 0, 0, kSeqNone, 0, 0, 0);
|
||||
while (_gameSys->getAnimationStatus(0) != 2)
|
||||
while (_gameSys->getAnimationStatus(0) != 2 && !_gameDone)
|
||||
gameUpdateTick();
|
||||
_gameSys->setAnimation(sequenceId3, _gnap->_id, 0);
|
||||
_gameSys->insertSequence(sequenceId3, _gnap->_id,
|
||||
|
@ -427,9 +427,8 @@ void GnapEngine::updateMenuStatusMainMenu() {
|
||||
_gameSys->insertDirtyRect(dirtyRect);
|
||||
}
|
||||
|
||||
while (!_mouseClickState._left && !isKeyStatus1(28) && !isKeyStatus1(30) && !isKeyStatus1(29) && !_timers[2]) {
|
||||
while (!_mouseClickState._left && !isKeyStatus1(28) && !isKeyStatus1(30) && !isKeyStatus1(29) && !_timers[2] && !_gameDone)
|
||||
gameUpdateTick();
|
||||
}
|
||||
|
||||
playSound(0x108F5, false);
|
||||
_mouseClickState._left = false;
|
||||
|
@ -718,10 +718,12 @@ bool Scene50::updateEnergyBars(int newLeftBarPos, int newRightBarPos) {
|
||||
}
|
||||
|
||||
void Scene50::waitForAnim(int animationIndex) {
|
||||
while (_vm->_gameSys->getAnimationStatus(animationIndex) != 2) {
|
||||
GameSys& gameSys = *_vm->_gameSys;
|
||||
|
||||
while (gameSys.getAnimationStatus(animationIndex) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
_vm->_gameSys->setAnimation(0, 0, animationIndex);
|
||||
|
||||
gameSys.setAnimation(0, 0, animationIndex);
|
||||
}
|
||||
|
||||
int Scene50::checkInput() {
|
||||
@ -945,7 +947,7 @@ void Scene50::run() {
|
||||
|
||||
_vm->_timers[5] = 15;
|
||||
|
||||
while (!_fightDone) {
|
||||
while (!_fightDone && !_vm->_gameDone) {
|
||||
/* TODO
|
||||
if (sceneXX_sub_4466B1())
|
||||
_fightDone = true;
|
||||
@ -1458,8 +1460,7 @@ bool Scene51::isJumping(int sequenceId) {
|
||||
}
|
||||
|
||||
void Scene51::waitForAnim(int animationIndex) {
|
||||
while (_vm->_gameSys->getAnimationStatus(animationIndex) != 2) {
|
||||
// pollMessages();
|
||||
while (_vm->_gameSys->getAnimationStatus(animationIndex) != 2 && _vm->_gameDone) {
|
||||
updateItemAnimations();
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
@ -1605,10 +1606,9 @@ void Scene51::winMinigame() {
|
||||
void Scene51::playCashAppearAnim() {
|
||||
_vm->_gameSys->setAnimation(0xC8, 252, 0);
|
||||
_vm->_gameSys->insertSequence(0xC8, 252, 0, 0, kSeqNone, 0, -20, -20);
|
||||
while (_vm->_gameSys->getAnimationStatus(0) != 2) {
|
||||
|
||||
while (_vm->_gameSys->getAnimationStatus(0) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
// checkGameAppStatus();
|
||||
}
|
||||
}
|
||||
|
||||
void Scene51::updateCash(int amount) {
|
||||
@ -1726,8 +1726,7 @@ void Scene51::run() {
|
||||
isIdle = false;
|
||||
}
|
||||
|
||||
while (_vm->isKeyStatus2(Common::KEYCODE_RIGHT) && _platypusNextSequenceId != 0x96) {
|
||||
// pollMessages();
|
||||
while (_vm->isKeyStatus2(Common::KEYCODE_RIGHT) && _platypusNextSequenceId != 0x96 && !_vm->_gameDone) {
|
||||
if (_platypusNextSequenceId == 0xB6)
|
||||
_platypusNextSequenceId = 0x76;
|
||||
updateItemAnimations();
|
||||
@ -1780,8 +1779,7 @@ void Scene51::run() {
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
|
||||
while (_vm->isKeyStatus2(Common::KEYCODE_LEFT) && _platypusNextSequenceId != 0xB6) {
|
||||
// pollMessages();
|
||||
while (_vm->isKeyStatus2(Common::KEYCODE_LEFT) && _platypusNextSequenceId != 0xB6 && !_vm->_gameDone) {
|
||||
updateItemAnimations();
|
||||
if (startWalk) {
|
||||
_platypusNextSequenceId = 0xA5;
|
||||
@ -1879,7 +1877,7 @@ void Scene52::updateHotspots() {
|
||||
}
|
||||
|
||||
void Scene52::update() {
|
||||
for (int rowNum = 0; rowNum < 7; ++rowNum) {
|
||||
for (int rowNum = 0; rowNum < 7 && !_vm->_gameDone; ++rowNum) {
|
||||
_vm->gameUpdateTick();
|
||||
if (_vm->_gameSys->getAnimationStatus(_alienRowAnims[rowNum]) == 2) {
|
||||
updateAlienRow(rowNum);
|
||||
@ -1936,7 +1934,7 @@ void Scene52::update() {
|
||||
loseShip();
|
||||
if (_shipsLeft != 0) {
|
||||
_vm->_timers[3] = 40;
|
||||
while (_vm->_timers[3]) {
|
||||
while (_vm->_timers[3] && !_vm->_gameDone) {
|
||||
updateAlienCannons();
|
||||
if (_shipCannonFiring)
|
||||
updateShipCannon();
|
||||
|
@ -1209,7 +1209,7 @@ void Scene03::updateAnimations() {
|
||||
_vm->addFullScreenSprite(0x106, 255);
|
||||
gameSys.setAnimation(0x1C9, 256, 1);
|
||||
gameSys.insertSequence(0x1C9, 256, 0, 0, kSeqNone, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(1) != 2)
|
||||
while (gameSys.getAnimationStatus(1) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
_vm->removeFullScreenSprite();
|
||||
gameSys.setAnimation(0x1BA, 99, 1);
|
||||
@ -1224,12 +1224,12 @@ void Scene03::updateAnimations() {
|
||||
gnap.playBrainPulsating();
|
||||
gameSys.insertSequence(0x1BF, 99, plat._sequenceId | (plat._sequenceDatNum << 16), 99, kSeqSyncExists, 0, 0, 0);
|
||||
gameSys.setAnimation(0x1BF, 99, 1);
|
||||
while (gameSys.getAnimationStatus(1) != 2)
|
||||
while (gameSys.getAnimationStatus(1) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
_vm->addFullScreenSprite(0x106, 255);
|
||||
gameSys.setAnimation(0x1C9, 256, 1);
|
||||
gameSys.insertSequence(0x1C9, 256, 0, 0, kSeqNone, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(1) != 2)
|
||||
while (gameSys.getAnimationStatus(1) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
_vm->removeFullScreenSprite();
|
||||
gameSys.setAnimation(0x1BA, 99, 1);
|
||||
@ -2191,7 +2191,7 @@ void Scene05::updateAnimations() {
|
||||
_nextChickenSequenceId = 0x14B;
|
||||
break;
|
||||
case kAS05GrabLadder:
|
||||
while (gameSys.isSequenceActive(0x149, 39))
|
||||
while (gameSys.isSequenceActive(0x149, 39) && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
gameSys.insertSequence(0x14E, gnap._id + 1, 0, 0, kSeqNone, 0, 0, 0);
|
||||
gameSys.insertSequence(0x14D, gnap._id, makeRid(gnap._sequenceDatNum, gnap._sequenceId), gnap._id, kSeqSyncWait, 0, 0, 0);
|
||||
|
@ -1488,7 +1488,7 @@ void Scene13::showScribble() {
|
||||
_vm->_largeSprite = gameSys.createSurface(0x6F);
|
||||
gameSys.insertSpriteDrawItem(_vm->_largeSprite, 0, 0, 300);
|
||||
while (!_vm->_mouseClickState._left && !_vm->isKeyStatus1(Common::KEYCODE_ESCAPE) &&
|
||||
!_vm->isKeyStatus1(Common::KEYCODE_SPACE) && !_vm->isKeyStatus1(29))
|
||||
!_vm->isKeyStatus1(Common::KEYCODE_SPACE) && !_vm->isKeyStatus1(29) && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
_vm->_mouseClickState._left = false;
|
||||
_vm->clearKeyStatus1(Common::KEYCODE_ESCAPE);
|
||||
@ -2365,7 +2365,7 @@ void Scene17::platHangUpPhone() {
|
||||
plat._actionStatus = -1;
|
||||
gameSys.setAnimation(0x257, 254, 4);
|
||||
gameSys.insertSequence(0x257, 254, _currPhoneSequenceId, 254, kSeqSyncExists, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(4) != 2)
|
||||
while (gameSys.getAnimationStatus(4) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
gameSys.setAnimation(0x25B, plat._id, 1);
|
||||
gameSys.insertSequence(0x25B, plat._id, plat._sequenceId | (plat._sequenceDatNum << 16), plat._id, kSeqSyncWait, 0, 0, 0);
|
||||
@ -2374,7 +2374,7 @@ void Scene17::platHangUpPhone() {
|
||||
_currPhoneSequenceId = -1;
|
||||
_nextPhoneSequenceId = -1;
|
||||
_vm->clearFlag(kGFPlatypusTalkingToAssistant);
|
||||
while (gameSys.getAnimationStatus(1) != 2)
|
||||
while (gameSys.getAnimationStatus(1) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
gnap._actionStatus = savedGnapActionStatus;
|
||||
_vm->updateMouseCursor();
|
||||
@ -3272,7 +3272,7 @@ void Scene18::putDownGarbageCan(int animationIndex) {
|
||||
PlayerGnap& gnap = *_vm->_gnap;
|
||||
|
||||
if (animationIndex >= 0) {
|
||||
while (gameSys.getAnimationStatus(animationIndex) != 2)
|
||||
while (gameSys.getAnimationStatus(animationIndex) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
if (gnap._idleFacing != kDirNone && gnap._idleFacing != kDirBottomRight && gnap._idleFacing != kDirUpRight)
|
||||
@ -3296,7 +3296,7 @@ void Scene18::putDownGarbageCan(int animationIndex) {
|
||||
gameSys.insertSequence(0x1FB, 19, 0, 0, kSeqNone, 0, 15 * (5 * _vm->_s18GarbageCanPos - 40), 0);
|
||||
gameSys.setAnimation(0x1FA, 19, 4);
|
||||
gameSys.insertSequence(0x1FA, 19, 507, 19, kSeqSyncWait, 0, 15 * (5 * _vm->_s18GarbageCanPos - 40), 0);
|
||||
while (gameSys.getAnimationStatus(4) != 2)
|
||||
while (gameSys.getAnimationStatus(4) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
|
||||
@ -3311,7 +3311,7 @@ void Scene18::platEndPhoning(bool platFl) {
|
||||
if (_currPhoneSequenceId != -1) {
|
||||
gameSys.setAnimation(0x21E, 254, 3);
|
||||
gameSys.insertSequence(0x21E, 254, _currPhoneSequenceId, 254, kSeqSyncExists, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(3) != 2)
|
||||
while (gameSys.getAnimationStatus(3) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
gameSys.removeSequence(0x21F, 254, true);
|
||||
@ -3352,7 +3352,7 @@ void Scene18::closeHydrantValve() {
|
||||
void Scene18::waitForGnapAction() {
|
||||
PlayerGnap& gnap = *_vm->_gnap;
|
||||
|
||||
while (gnap._actionStatus >= 0) {
|
||||
while (gnap._actionStatus >= 0 && !_vm->_gameDone) {
|
||||
updateAnimations();
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
@ -3890,7 +3890,7 @@ void Scene18::updateAnimations() {
|
||||
gameSys.removeSequence(0x20C, 19, true);
|
||||
gameSys.setAnimation(0x217, 39, 5);
|
||||
gameSys.insertSequence(0x217, 39, 0x216, 39, kSeqLoop | kSeqSyncWait, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(5) != 2)
|
||||
while (gameSys.getAnimationStatus(5) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
_vm->playSound(0x22B, true);
|
||||
gameSys.insertSequence(0x20E, 39, 0, 0, kSeqNone, 0, 0, 0);
|
||||
@ -3927,7 +3927,7 @@ void Scene18::updateAnimations() {
|
||||
_cowboyHatSurface = _vm->addFullScreenSprite(0x1D2, 255);
|
||||
gameSys.setAnimation(0x218, 256, 0);
|
||||
gameSys.insertSequence(0x218, 256, 0, 0, kSeqNone, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(0) != 2)
|
||||
while (gameSys.getAnimationStatus(0) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
_vm->_newSceneNum = 18;
|
||||
_vm->invAdd(kItemCowboyHat);
|
||||
@ -3992,7 +3992,7 @@ void Scene18::updateAnimations() {
|
||||
gameSys.removeSequence(0x20B, 19, true);
|
||||
gameSys.setAnimation(0x213, 39, 5);
|
||||
gameSys.insertSequence(0x214, 39, 0x213, 39, kSeqLoop | kSeqSyncWait, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(5) != 2)
|
||||
while (gameSys.getAnimationStatus(5) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
_vm->playSound(0x22B, true);
|
||||
gameSys.insertSequence(0x20D, 39, 0, 0, kSeqNone, 0, 0, 0);
|
||||
@ -4008,7 +4008,7 @@ void Scene18::updateAnimations() {
|
||||
gameSys.removeSequence(0x20B, 19, true);
|
||||
gameSys.setAnimation(0x211, 39, 5);
|
||||
gameSys.insertSequence(0x212, 39, 0x211, 39, kSeqLoop | kSeqSyncWait, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(5) != 2)
|
||||
while (gameSys.getAnimationStatus(5) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
_vm->playSound(0x22B, true);
|
||||
gameSys.insertSequence(0x20D, 39, 0, 0, kSeqNone, 0, 0, 0);
|
||||
@ -4411,10 +4411,9 @@ void Scene19::updateAnimations() {
|
||||
_pictureSurface = _vm->addFullScreenSprite(0xF, 255);
|
||||
gameSys.setAnimation(0x61, 256, 0);
|
||||
gameSys.insertSequence(0x61, 256, 0, 0, kSeqNone, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(0) != 2) {
|
||||
// checkGameAppStatus();
|
||||
while (gameSys.getAnimationStatus(0) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
|
||||
_vm->setFlag(kGFUnk27);
|
||||
_vm->showCursor();
|
||||
_vm->_newSceneNum = 17;
|
||||
@ -4454,9 +4453,9 @@ void Scene19::updateAnimations() {
|
||||
_currShopAssistantSequenceId = _nextShopAssistantSequenceId;
|
||||
_nextShopAssistantSequenceId = -1;
|
||||
_vm->_timers[5] = 10;
|
||||
while (_vm->_timers[5]) {
|
||||
while (_vm->_timers[5] && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
|
||||
gnap.playIdle(Common::Point(6, 2));
|
||||
gnap._actionStatus = -1;
|
||||
break;
|
||||
|
@ -205,10 +205,9 @@ void Scene20::run() {
|
||||
_vm->endSceneInit();
|
||||
gameSys.setAnimation(0x182, 140, 0);
|
||||
gameSys.insertSequence(0x182, 140, 0, 0, kSeqNone, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(0) != 2) {
|
||||
// checkGameAppStatus();
|
||||
while (gameSys.getAnimationStatus(0) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
|
||||
gnap.initPos(11, 8, kDirBottomLeft);
|
||||
plat.initPos(11, 9, kDirUnk4);
|
||||
gnap.walkTo(Common::Point(5, 8), -1, 0x107BA, 1);
|
||||
@ -623,7 +622,7 @@ void Scene20::updateAnimations() {
|
||||
_vm->addFullScreenSprite(0x12C, 255);
|
||||
gameSys.setAnimation(0x181, 256, 0);
|
||||
gameSys.insertSequence(0x181, 256, 0, 0, kSeqNone, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(0) != 2)
|
||||
while (gameSys.getAnimationStatus(0) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
_vm->removeFullScreenSprite();
|
||||
_vm->showCursor();
|
||||
@ -1088,9 +1087,9 @@ void Scene22::run() {
|
||||
gameSys.drawSpriteToBackground(0, 0, 0x44);
|
||||
gameSys.setAnimation(storeDetectiveSeqId, 256, 4);
|
||||
gameSys.insertSequence(storeDetectiveSeqId, 256, 0, 0, kSeqNone, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(4) != 2) {
|
||||
while (gameSys.getAnimationStatus(4) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
|
||||
_vm->_sceneDone = true;
|
||||
_vm->_newSceneNum = 20;
|
||||
_caughtBefore = true;
|
||||
@ -1316,8 +1315,9 @@ void Scene23::run() {
|
||||
gnap.walkTo(Common::Point(2, 7), -1, 0x107B9, 1);
|
||||
} else {
|
||||
gnap.walkTo(Common::Point(2, 7), 0, 0x107B9, 1);
|
||||
while (gameSys.getAnimationStatus(0) != 2)
|
||||
while (gameSys.getAnimationStatus(0) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
|
||||
_vm->playSequences(0x48, 0xBA, 0xBB, 0xBC);
|
||||
_vm->setFlag(kGFUnk24);
|
||||
}
|
||||
@ -1800,7 +1800,7 @@ void Scene25::playAnims(int index) {
|
||||
gameSys.insertSpriteDrawItem(_vm->_largeSprite, 0, 0, 300);
|
||||
_vm->delayTicksCursor(5);
|
||||
while (!_vm->_mouseClickState._left && !_vm->isKeyStatus1(Common::KEYCODE_ESCAPE) && !_vm->isKeyStatus1(Common::KEYCODE_SPACE) &&
|
||||
!_vm->isKeyStatus1(29)) {
|
||||
!_vm->isKeyStatus1(29) && !_vm->_gameDone) {
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
_vm->_mouseClickState._left = false;
|
||||
@ -2767,7 +2767,7 @@ void Scene28::run() {
|
||||
_nextClownSequenceId = -1;
|
||||
_vm->_timers[4] = _vm->getRandom(20) + 80;
|
||||
gnap._actionStatus = kAS28GnapWaiting;
|
||||
while (gameSys.getAnimationStatus(3) != 2) {
|
||||
while (gameSys.getAnimationStatus(3) != 2 && !_vm->_gameDone) {
|
||||
_vm->gameUpdateTick();
|
||||
_vm->updateMouseCursor();
|
||||
}
|
||||
@ -3001,8 +3001,9 @@ void Scene28::updateAnimations() {
|
||||
_vm->addFullScreenSprite(0xF6, 255);
|
||||
gameSys.setAnimation(0x120, 256, 0);
|
||||
gameSys.insertSequence(0x120, 256, 0, 0, kSeqNone, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(0) != 2)
|
||||
while (gameSys.getAnimationStatus(0) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
|
||||
_vm->removeFullScreenSprite();
|
||||
_vm->showCursor();
|
||||
_vm->setGrabCursorSprite(kItemHorn);
|
||||
@ -3381,10 +3382,12 @@ void Scene29::updateAnimations() {
|
||||
_currMonkeySequenceId = 0xE6;
|
||||
_nextMonkeySequenceId = -1;
|
||||
_vm->_timers[5] = 30;
|
||||
while (_vm->_timers[5])
|
||||
while (_vm->_timers[5] && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
|
||||
_vm->_plat->walkTo(Common::Point(0, 8), 1, 0x107CF, 1);
|
||||
while (gameSys.getAnimationStatus(1) != 2)
|
||||
|
||||
while (gameSys.getAnimationStatus(1) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
} else if (_nextMonkeySequenceId == -1) {
|
||||
switch (_vm->getRandom(6)) {
|
||||
|
@ -238,7 +238,7 @@ void Scene30::updateAnimations() {
|
||||
gameSys.removeSequence(0x105, gnap._id, true);
|
||||
gameSys.setAnimation(0x102, 256, 0);
|
||||
gameSys.insertSequence(0x102, 256, 0, 0, kSeqNone, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(0) != 2)
|
||||
while (gameSys.getAnimationStatus(0) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
gameSys.setAnimation(0x103, gnap._id, 0);
|
||||
gameSys.insertSequence(0x103, gnap._id, 0, 0, kSeqNone, 0, 0, 0);
|
||||
|
@ -1139,7 +1139,7 @@ void Scene42::updateAnimations() {
|
||||
_vm->addFullScreenSprite(0x13E, 255);
|
||||
gameSys.setAnimation(0x151, 256, 0);
|
||||
gameSys.insertSequence(0x151, 256, 0, 0, kSeqNone, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(0) != 2)
|
||||
while (gameSys.getAnimationStatus(0) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
_vm->removeFullScreenSprite();
|
||||
_vm->showCursor();
|
||||
@ -2189,7 +2189,7 @@ void Scene45::run() {
|
||||
_vm->setGrabCursorSprite(-1);
|
||||
gameSys.setAnimation(0x9D, gnap._id, 0);
|
||||
gameSys.insertSequence(0x9D, gnap._id, makeRid(gnap._sequenceDatNum, gnap._sequenceId), gnap._id, kSeqSyncWait, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(0) != 2) {
|
||||
while (gameSys.getAnimationStatus(0) != 2 && !_vm->_gameDone) {
|
||||
_vm->gameUpdateTick();
|
||||
if (gameSys.getAnimationStatus(2) == 2) {
|
||||
gameSys.setAnimation(0, 0, 2);
|
||||
@ -2211,7 +2211,7 @@ void Scene45::run() {
|
||||
_vm->addFullScreenSprite(0x8A, 255);
|
||||
gameSys.setAnimation(0xA0, 256, 0);
|
||||
gameSys.insertSequence(0xA0, 256, 0, 0, kSeqNone, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(0) != 2)
|
||||
while (gameSys.getAnimationStatus(0) != 2 && !_vm->_gameDone)
|
||||
_vm->gameUpdateTick();
|
||||
gameSys.setAnimation(0x107BD, gnap._id, 0);
|
||||
gameSys.insertSequence(0x107BD, gnap._id,
|
||||
|
@ -89,8 +89,7 @@ int Scene53::pressPhoneNumberButton(int phoneNumber, int buttonNum) {
|
||||
}
|
||||
|
||||
gnap._actionStatus = 6;
|
||||
while (gameSys.getAnimationStatus(6) != 2) {
|
||||
// checkGameAppStatus();
|
||||
while (gameSys.getAnimationStatus(6) != 2 && !_vm->_gameDone) {
|
||||
_vm->updateMouseCursor();
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
@ -141,9 +140,8 @@ void Scene53::runRandomCall() {
|
||||
}
|
||||
|
||||
gnap._actionStatus = 1;
|
||||
while (gameSys.getAnimationStatus(6) != 2) {
|
||||
while (gameSys.getAnimationStatus(6) != 2 && !_vm->_gameDone) {
|
||||
_vm->updateMouseCursor();
|
||||
// checkGameAppStatus();
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
gnap._actionStatus = -1;
|
||||
@ -159,9 +157,8 @@ void Scene53::runChitChatLine() {
|
||||
gameSys.insertSequence(0x6E, 1, 0, 0, kSeqNone, 16, 0, 0);
|
||||
|
||||
gnap._actionStatus = 1;
|
||||
while (gameSys.getAnimationStatus(6) != 2) {
|
||||
while (gameSys.getAnimationStatus(6) != 2 && !_vm->_gameDone) {
|
||||
_vm->updateMouseCursor();
|
||||
// checkGameAppStatus();
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
gnap._actionStatus = -1;
|
||||
@ -225,18 +222,16 @@ void Scene53::runChitChatLine() {
|
||||
gameSys.setAnimation(sequenceId, 1, 6);
|
||||
gameSys.insertSequence(sequenceId, 1, 0, 0, kSeqNone, 16, 0, 0);
|
||||
gnap._actionStatus = 1;
|
||||
while (gameSys.getAnimationStatus(6) != 2) {
|
||||
while (gameSys.getAnimationStatus(6) != 2 && !_vm->_gameDone) {
|
||||
_vm->updateMouseCursor();
|
||||
// checkGameAppStatus();
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
gnap._actionStatus = -1;
|
||||
gameSys.setAnimation(0x72, 1, 6);
|
||||
gameSys.insertSequence(0x72, 1, 0, 0, kSeqNone, 16, 0, 0);
|
||||
gnap._actionStatus = 1;
|
||||
while (gameSys.getAnimationStatus(6) != 2) {
|
||||
while (gameSys.getAnimationStatus(6) != 2 && !_vm->_gameDone) {
|
||||
_vm->updateMouseCursor();
|
||||
// checkGameAppStatus();
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
gnap._actionStatus = -1;
|
||||
@ -250,9 +245,8 @@ void Scene53::runChitChatLine() {
|
||||
if (_vm->isFlag(kGFSpringTaken)) {
|
||||
gameSys.setAnimation(0x73, 40, 6);
|
||||
gameSys.insertSequence(0x73, 40, _currHandSequenceId, 40, kSeqSyncWait, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(6) != 2) {
|
||||
while (gameSys.getAnimationStatus(6) != 2 && !_vm->_gameDone) {
|
||||
_vm->updateMouseCursor();
|
||||
// checkGameAppStatus();
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
_currHandSequenceId = 0x73;
|
||||
@ -317,9 +311,8 @@ void Scene53::run() {
|
||||
if (_vm->isFlag(kGFSpringTaken)) {
|
||||
gameSys.setAnimation(0x73, 40, 6);
|
||||
gameSys.insertSequence(0x73, 40, _currHandSequenceId, 40, kSeqSyncWait, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(6) != 2) {
|
||||
while (gameSys.getAnimationStatus(6) != 2 && !_vm->_gameDone) {
|
||||
_vm->updateMouseCursor();
|
||||
// checkGameAppStatus();
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
_currHandSequenceId = 0x73;
|
||||
@ -359,9 +352,8 @@ void Scene53::run() {
|
||||
if (_vm->isFlag(kGFSpringTaken)) {
|
||||
gameSys.setAnimation(0x73, 40, 6);
|
||||
gameSys.insertSequence(0x73, 40, _currHandSequenceId, 40, kSeqSyncWait, 0, 0, 0);
|
||||
while (gameSys.getAnimationStatus(6) != 2) {
|
||||
while (gameSys.getAnimationStatus(6) != 2 && !_vm->_gameDone) {
|
||||
_vm->updateMouseCursor();
|
||||
// checkGameAppStatus();
|
||||
_vm->gameUpdateTick();
|
||||
}
|
||||
_currHandSequenceId = 0x73;
|
||||
|
Loading…
x
Reference in New Issue
Block a user