GNAP: change 3rd parameter of removeSequence to boolean, adapt calls accordingly

This commit is contained in:
Strangerke 2016-03-14 00:30:18 +01:00 committed by Eugene Sandulenko
parent 9d52140b09
commit 37f84d0bc5
21 changed files with 60 additions and 61 deletions

View File

@ -90,12 +90,12 @@ void GameSys::insertDirtyRect(const Common::Rect &rect) {
_dirtyRects.push_back(rect);
}
void GameSys::removeSequence(int sequenceId, int a2, int a3) {
void GameSys::removeSequence(int sequenceId, int id, bool resetFl) {
//WaitForSingleObject(removeSequence2Mutex, INFINITE);
if (_removeSequenceItemsCount < kMaxSequenceItems) {
_removeSequenceItems[_removeSequenceItemsCount].sequenceId = sequenceId;
_removeSequenceItems[_removeSequenceItemsCount].id = a2;
_removeSequenceItems[_removeSequenceItemsCount].a3 = a3;
_removeSequenceItems[_removeSequenceItemsCount]._sequenceId = sequenceId;
_removeSequenceItems[_removeSequenceItemsCount]._id = id;
_removeSequenceItems[_removeSequenceItemsCount]._forceFrameReset = resetFl;
++_removeSequenceItemsCount;
//ResetEvent(removeSequenceItemsEvent);
//ReleaseMutex(removeSequence2Mutex);
@ -964,16 +964,16 @@ void GameSys::handleReqRemoveSequenceItems() {
if (_removeSequenceItemsCount > 0) {
for (int i = 0; i < _removeSequenceItemsCount; ++i) {
int gfxIndex;
if (seqFind(_removeSequenceItems[i].sequenceId, _removeSequenceItems[i].id, &gfxIndex))
if (seqFind(_removeSequenceItems[i]._sequenceId, _removeSequenceItems[i]._id, &gfxIndex))
_seqItems.remove_at(gfxIndex);
seqLocateGfx(_removeSequenceItems[i].sequenceId, _removeSequenceItems[i].id, &gfxIndex);
seqLocateGfx(_removeSequenceItems[i]._sequenceId, _removeSequenceItems[i]._id, &gfxIndex);
for (GfxItem *gfxItem = &_gfxItems[gfxIndex];
gfxIndex < _gfxItemsCount && gfxItem->sequenceId == _removeSequenceItems[i].sequenceId && gfxItem->id == _removeSequenceItems[i].id;
gfxIndex < _gfxItemsCount && gfxItem->sequenceId == _removeSequenceItems[i]._sequenceId && gfxItem->id == _removeSequenceItems[i]._id;
gfxItem = &_gfxItems[gfxIndex]) {
gfxItem->sequenceId = -1;
gfxItem->animation = 0;
gfxItem->soundValue = 0;
if (_removeSequenceItems[i].a3) {
if (_removeSequenceItems[i]._forceFrameReset) {
gfxItem->currFrame.duration = 0;
gfxItem->currFrame.spriteId = -1;
gfxItem->currFrame.soundId = -1;

View File

@ -65,9 +65,9 @@ struct SpriteDrawItem {
};
struct RemoveSequenceItem {
int sequenceId;
int id;
int a3;
int _sequenceId;
int _id;
bool _forceFrameReset;
};
struct RemoveSpriteDrawItem {
@ -106,7 +106,7 @@ public:
~GameSys();
void insertSequence(int sequenceId, int a2, int sequenceId2, int a4, int flags, int totalDuration, int16 x, int16 y);
void insertDirtyRect(const Common::Rect &rect);
void removeSequence(int sequenceId, int a2, int a3);
void removeSequence(int sequenceId, int id, bool resetFl);
void invalidateGrabCursorSprite(int id, Common::Rect &rect, Graphics::Surface *surface1, Graphics::Surface *surface2);
void requestClear2(int a1);
void requestClear1();

View File

@ -613,7 +613,7 @@ void GnapEngine::insertDeviceIconActive() {
}
void GnapEngine::removeDeviceIconActive() {
_gameSys->removeSequence(0x1084A, 21, 1);
_gameSys->removeSequence(0x1084A, 21, true);
}
void GnapEngine::setDeviceHotspot(int hotspotIndex, int x1, int y1, int x2, int y2) {
@ -2337,8 +2337,6 @@ void GnapEngine::cutscene_run() {
int duration = 0;
bool skip = false;
int v1 = 0;
if (_prevSceneNum == 2) {
soundId = 0x36B;
duration = MAX(1, 300 / getSequenceTotalDuration(_s99_dword_47F370[_s99_itemsCount - 1]));//CHECKME
@ -2362,6 +2360,7 @@ void GnapEngine::cutscene_run() {
_mouseClickState.left = false;
int v1 = 0;
while (!_sceneDone) {
gameUpdateTick();

View File

@ -314,7 +314,7 @@ void GnapEngine::scene01_updateAnimations() {
_gnapActionStatus = kASLookSpaceshipDone;
break;
case kASLookSpaceshipDone:
_gameSys->removeSequence(133, 256, 1);
_gameSys->removeSequence(133, 256, true);
_gameSys->removeSpriteDrawItem(_s01_spaceshipSurface, 255);
deleteSurface(&_s01_spaceshipSurface);
_gnapActionStatus = -1;

View File

@ -515,7 +515,7 @@ void GnapEngine::scene02_updateAnimations() {
if (_s02_nextChickenSequenceId == 0x150) {
_gameSys->setAnimation(_s02_nextChickenSequenceId, 179, 0);
_gameSys->insertSequence(_s02_nextChickenSequenceId, 179, makeRid(_gnapSequenceDatNum, _gnapSequenceId), _gnapId, kSeqSyncWait, 0, 0, 0);
_gameSys->removeSequence(_s02_currChickenSequenceId, 179, 1);
_gameSys->removeSequence(_s02_currChickenSequenceId, 179, true);
_s02_nextChickenSequenceId = -1;
_s02_currChickenSequenceId = -1;
_gnapActionStatus = kASGrabChickenDone;

View File

@ -507,8 +507,8 @@ void GnapEngine::scene04_updateAnimations() {
_gnapActionStatus = kASGetKeyAnotherDone;
break;
case kASGetKeyAnotherDone:
_gameSys->removeSequence(0x1FF, 256, 1);
_gameSys->removeSequence(0x20A, 256, 1);
_gameSys->removeSequence(0x1FF, 256, true);
_gameSys->removeSequence(0x20A, 256, true);
_gameSys->insertSequence(0x107B5, _gnapId,
makeRid(_gnapSequenceDatNum, _gnapSequenceId), 255,
kSeqSyncWait, 0, 75 * _gnapX - _gnapGridX, 48 * _gnapY - _gnapGridY);

View File

@ -475,17 +475,17 @@ void GnapEngine::scene08_updateAnimations() {
case 0x149:
setFlag(7);
_hotspots[kHSMeat].flags = SF_DISABLED | SF_WALKABLE;
_gameSys->removeSequence(0x144, 1, 1);
_gameSys->removeSequence(0x144, 1, true);
break;
case 0x14A:
setFlag(8);
_hotspots[kHSBone].flags = SF_DISABLED | SF_WALKABLE;
_gameSys->removeSequence(0x145, 1, 1);
_gameSys->removeSequence(0x145, 1, true);
break;
case 0x14B:
setFlag(9);
_hotspots[kHSToy].flags = SF_DISABLED | SF_WALKABLE;
_gameSys->removeSequence(0x146, 1, 1);
_gameSys->removeSequence(0x146, 1, true);
break;
}
_s08_currDogSequenceId = _s08_nextDogSequenceId;

View File

@ -218,7 +218,7 @@ void GnapEngine::scene09_updateAnimations() {
case kASSearchTrash:
_gameSys->setAnimation(0x4C, 120, 0);
_gameSys->insertSequence(0x4C, 120, makeRid(_gnapSequenceDatNum, _gnapSequenceId), _gnapId, kSeqSyncWait, 0, 0, 0);
_gameSys->removeSequence(0x4B, 2, 1);
_gameSys->removeSequence(0x4B, 2, true);
_gnapSequenceId = 0x4C;
_gnapId = 120;
_gnapIdleFacing = 5;

View File

@ -392,7 +392,7 @@ void GnapEngine::scene10_updateAnimations() {
_beaverSequenceId | (_beaverSequenceDatNum << 16), _beaverId,
kSeqSyncWait, getSequenceTotalDuration(0x109) + getSequenceTotalDuration(0x10A) + getSequenceTotalDuration(0x10843),
75 * _platX - _platGridX, 48 * _platY - _platGridY);
_gameSys->removeSequence(0x107, 100, 1);
_gameSys->removeSequence(0x107, 100, true);
_s10_currCookSequenceId = 0x109;
_s10_nextCookSequenceId = 0x843;
_beaverSequenceId = 0x7C9;

View File

@ -408,8 +408,8 @@ void GnapEngine::scene11_updateAnimations() {
_gnapSequenceId = 0x1F4;
_gnapId = 255;
_gnapSequenceDatNum = 0;
_gameSys->removeSequence(0x207, 257, 1);
_gameSys->removeSequence(0x208, 256, 1);
_gameSys->removeSequence(0x207, 257, true);
_gameSys->removeSequence(0x208, 256, true);
_s11_nextGoggleGuySequenceId = 0x1F8;
_timers[5] = getRandom(100) + 75;
_gameSys->insertSequence(_s11_nextGoggleGuySequenceId, 121, _s11_currGoggleGuySequenceId, 121, kSeqSyncWait, 0, 0, 0);

View File

@ -413,7 +413,7 @@ void GnapEngine::scene13_updateAnimations() {
case kASGrabSink:
_gameSys->setAnimation(0xAB, 160, 0);
_gameSys->insertSequence(0xAB, 160, makeRid(_gnapSequenceDatNum, _gnapSequenceId), _gnapId, kSeqSyncWait, 0, 0, 0);
_gameSys->removeSequence(0xAA, 256, 1);
_gameSys->removeSequence(0xAA, 256, true);
_gnapSequenceId = 0xAB;
_gnapId = 160;
_gnapIdleFacing = 1;

View File

@ -284,11 +284,11 @@ void GnapEngine::scene15_updateAnimations() {
case 0xD8:
case 0xDA:
if (_s15_currUpperButtonSequenceId != -1) {
_gameSys->removeSequence(_s15_currUpperButtonSequenceId, 1, 1);
_gameSys->removeSequence(_s15_currUpperButtonSequenceId, 1, true);
_s15_currUpperButtonSequenceId = -1;
}
if (_s15_currLowerButtonSequenceId != -1) {
_gameSys->removeSequence(_s15_currLowerButtonSequenceId, 1, 1);
_gameSys->removeSequence(_s15_currLowerButtonSequenceId, 1, true);
_s15_currLowerButtonSequenceId = -1;
}
break;
@ -303,9 +303,9 @@ void GnapEngine::scene15_updateAnimations() {
_newSceneNum = 16;
_isLeavingScene = true;
}
_gameSys->removeSequence(_s15_currUpperButtonSequenceId, 1, 1);
_gameSys->removeSequence(_s15_currUpperButtonSequenceId, 1, true);
_s15_currUpperButtonSequenceId = -1;
_gameSys->removeSequence(_s15_currLowerButtonSequenceId, 1, 1);
_gameSys->removeSequence(_s15_currLowerButtonSequenceId, 1, true);
_s15_currLowerButtonSequenceId = -1;
} else if (_s15_nextUpperButtonSequenceId != -1) {
_gameSys->setAnimation(_s15_nextUpperButtonSequenceId, 1, 0);

View File

@ -267,7 +267,7 @@ void GnapEngine::scene18_platEndPhoning(int a1) {
while (_gameSys->getAnimationStatus(3) != 2)
gameUpdateTick();
}
_gameSys->removeSequence(0x21F, 254, 1);
_gameSys->removeSequence(0x21F, 254, true);
_gameSys->setAnimation(0, 0, 3);
clearFlag(26);
if (a1) {
@ -796,14 +796,14 @@ void GnapEngine::scene18_updateAnimations() {
_gnapSequenceDatNum = 0;
_gnapSequenceId = 0x1FD;
}
_gameSys->removeSequence(0x1FA, 19, 1);
_gameSys->removeSequence(0x1FA, 19, true);
setFlag(10);
scene18_updateHotspots();
_gnapActionStatus = -1;
break;
case kASGrabGarbageCanFromHydrant:
_gameSys->insertSequence(0x1FE, _gnapId, makeRid(_gnapSequenceDatNum, _gnapSequenceId), _gnapId, kSeqSyncWait, 0, 0, 0);
_gameSys->removeSequence(0x1F9, 19, 1);
_gameSys->removeSequence(0x1F9, 19, true);
_gnapSequenceDatNum = 0;
_gnapSequenceId = 0x1FE;
clearFlag(9);
@ -813,9 +813,9 @@ void GnapEngine::scene18_updateAnimations() {
break;
case kASCloseRightValveNoGarbageCan:
_gameSys->insertSequence(0x205, _gnapId, makeRid(_gnapSequenceDatNum, _gnapSequenceId), _gnapId, kSeqSyncWait, 0, 0, 0);
_gameSys->removeSequence(0x20D, 39, 1);
_gameSys->removeSequence(0x212, 39, 1);
_gameSys->removeSequence(0x211, 39, 1);
_gameSys->removeSequence(0x20D, 39, true);
_gameSys->removeSequence(0x212, 39, true);
_gameSys->removeSequence(0x211, 39, true);
stopSound(0x22B);
_gnapSequenceDatNum = 0;
_gnapSequenceId = 0x205;
@ -840,7 +840,7 @@ void GnapEngine::scene18_updateAnimations() {
setGrabCursorSprite(-1);
_gameSys->insertSequence(0x208, _gnapId, makeRid(_gnapSequenceDatNum, _gnapSequenceId), _gnapId, kSeqSyncWait, 0, 0, 0);
_gameSys->insertSequence(0x216, 39, 0, 0, kSeqNone, 21, 0, 0);
_gameSys->removeSequence(0x20C, 19, 1);
_gameSys->removeSequence(0x20C, 19, true);
_gameSys->setAnimation(0x217, 39, 5);
_gameSys->insertSequence(0x217, 39, 0x216, 39, 10, 0, 0, 0);
while (_gameSys->getAnimationStatus(5) != 2)
@ -855,9 +855,9 @@ void GnapEngine::scene18_updateAnimations() {
break;
case kASCloseTopValve:
_gameSys->insertSequence(0x206, _gnapId, makeRid(_gnapSequenceDatNum, _gnapSequenceId), _gnapId, kSeqSyncWait, 0, 0, 0);
_gameSys->removeSequence(0x20E, 39, 1);
_gameSys->removeSequence(0x216, 39, 1);
_gameSys->removeSequence(0x217, 39, 1);
_gameSys->removeSequence(0x20E, 39, true);
_gameSys->removeSequence(0x216, 39, true);
_gameSys->removeSequence(0x217, 39, true);
stopSound(0x22B);
_gnapSequenceDatNum = 0;
_gnapSequenceId = 0x206;
@ -942,7 +942,7 @@ void GnapEngine::scene18_updateAnimations() {
_gameSys->insertSequence(0x207, _gnapId, makeRid(_gnapSequenceDatNum, _gnapSequenceId), _gnapId, kSeqSyncWait, 0, 0, 0);
_gameSys->insertSequence(0x213, 39, 0, 0, kSeqNone, 21, 0, 0);
_gameSys->requestRemoveSequence(0x1F9, 19);
_gameSys->removeSequence(0x20B, 19, 1);
_gameSys->removeSequence(0x20B, 19, true);
_gameSys->setAnimation(0x213, 39, 5);
_gameSys->insertSequence(0x214, 39, 0x213, 39, 10, 0, 0, 0);
while (_gameSys->getAnimationStatus(5) != 2)
@ -958,7 +958,7 @@ void GnapEngine::scene18_updateAnimations() {
setGrabCursorSprite(-1);
_gameSys->insertSequence(0x207, _gnapId, makeRid(_gnapSequenceDatNum, _gnapSequenceId), _gnapId, kSeqSyncWait, 0, 0, 0);
_gameSys->insertSequence(0x211, 39, 0, 0, kSeqNone, 21, 0, 0);
_gameSys->removeSequence(0x20B, 19, 1);
_gameSys->removeSequence(0x20B, 19, true);
_gameSys->setAnimation(0x211, 39, 5);
_gameSys->insertSequence(0x212, 39, 0x211, 39, 10, 0, 0, 0);
while (_gameSys->getAnimationStatus(5) != 2)
@ -972,7 +972,7 @@ void GnapEngine::scene18_updateAnimations() {
break;
case kASCloseRightValveWithGarbageCan:
_gameSys->insertSequence(0x205, _gnapId, makeRid(_gnapSequenceDatNum, _gnapSequenceId), _gnapId, kSeqSyncWait, 0, 0, 0);
_gameSys->removeSequence(0x20D, 39, 1);
_gameSys->removeSequence(0x20D, 39, true);
_gameSys->insertSequence(0x215, 39, 0x214, 39, kSeqSyncWait, 0, 0, 0);
stopSound(0x22B);
_gameSys->setAnimation(0x1F9, 19, 0);

View File

@ -429,7 +429,7 @@ void GnapEngine::scene28_updateAnimations() {
case 0x119:
_gameSys->insertSequence(_s28_nextClownSequenceId, 39, makeRid(_gnapSequenceDatNum, _gnapSequenceId), _gnapId, kSeqSyncWait, 0, 0, 0);
_gameSys->setAnimation(_s28_nextClownSequenceId, 39, 0);
_gameSys->removeSequence(_s28_currClownSequenceId, 39, 1);
_gameSys->removeSequence(_s28_currClownSequenceId, 39, true);
_gnapActionStatus = kASGrabHornFailsDone;
_gnapSequenceId = _s28_nextClownSequenceId;
_gnapSequenceDatNum = 0;

View File

@ -246,7 +246,7 @@ void GnapEngine::scene30_updateAnimations() {
hideCursor();
setGrabCursorSprite(-1);
addFullScreenSprite(0x3F, 255);
_gameSys->removeSequence(0x105, _gnapId, 1);
_gameSys->removeSequence(0x105, _gnapId, true);
_gameSys->setAnimation(0x102, 256, 0);
_gameSys->insertSequence(0x102, 256, 0, 0, kSeqNone, 0, 0, 0);
while (_gameSys->getAnimationStatus(0) != 2)

View File

@ -307,7 +307,7 @@ void GnapEngine::scene33_updateAnimations() {
if (_s33_nextChickenSequenceId == 0x81) {
_gameSys->setAnimation(_s33_nextChickenSequenceId, 179, 0);
_gameSys->insertSequence(_s33_nextChickenSequenceId, 179, makeRid(_gnapSequenceDatNum, _gnapSequenceId), _gnapId, kSeqSyncWait, 0, 0, 0);
_gameSys->removeSequence(_s33_currChickenSequenceId, 179, 1);
_gameSys->removeSequence(_s33_currChickenSequenceId, 179, true);
_s33_nextChickenSequenceId = -1;
_s33_currChickenSequenceId = -1;
_gnapActionStatus = kASUseChickenDone;

View File

@ -265,7 +265,7 @@ void GnapEngine::scene38_updateAnimations() {
_sceneDone = true;
break;
case kASExitCave:
_gameSys->removeSequence(_beaverSequenceId | (_beaverSequenceDatNum << 16), _beaverId, 1);
_gameSys->removeSequence(_beaverSequenceId | (_beaverSequenceDatNum << 16), _beaverId, true);
_gameSys->insertSequence(0xA3, _gnapId, makeRid(_gnapSequenceDatNum, _gnapSequenceId), _gnapId, kSeqSyncWait, 0, 0, 0);
_gnapSequenceId = 0xA3;
_gnapSequenceDatNum = 0;
@ -273,7 +273,7 @@ void GnapEngine::scene38_updateAnimations() {
_gnapActionStatus = kASLeaveScene;
break;
case kASUseHuntingTrophy:
_gameSys->removeSequence(0x9B, 0, 1);
_gameSys->removeSequence(0x9B, 0, true);
_gameSys->insertSequence(0x9C, _gnapId, makeRid(_gnapSequenceDatNum, _gnapSequenceId), _gnapId, kSeqSyncWait, 0, 0, 0);
_gnapSequenceId = 0x9C;
_gnapSequenceDatNum = 0;

View File

@ -438,7 +438,7 @@ void GnapEngine::scene43_updateAnimations() {
break;
case 6:
_gameSys->insertSequence(0x10871, _toyUfoId, _toyUfoSequenceId | 0x10000, _toyUfoId, kSeqSyncWait, 0, 0, 0);
_gameSys->removeSequence(0x1086F, 1, 1);
_gameSys->removeSequence(0x1086F, 1, true);
setFlag(14);
scene43_updateHotspots();
toyUfoSetStatus(18);

View File

@ -462,7 +462,7 @@ void GnapEngine::scene44_updateAnimations() {
_beaverSequenceId = 0xFE;
_beaverSequenceDatNum = 0;
_gameSys->setAnimation(0xFE, _beaverId, 1);
_gameSys->removeSequence(_s44_dword_47EB10, 1, 1);
_gameSys->removeSequence(_s44_dword_47EB10, 1, true);
_beaverActionStatus = 5;
}
break;

View File

@ -323,7 +323,7 @@ void GnapEngine::scene51_updateItemAnimation(Scene51Item *item, int index) {
item->y = 0;
}
} else {
_gameSys->removeSequence(item->currSequenceId, item->id, 1);
_gameSys->removeSequence(item->currSequenceId, item->id, true);
_gameSys->setAnimation(0, 0, index + 1);
playSound(218, 0);
if (scene51_incCashAmount(item->currSequenceId) == 1995) {
@ -370,7 +370,7 @@ void GnapEngine::scene51_updateItemAnimation(Scene51Item *item, int index) {
case 0xC2:
// Bouncing coin and banknote
_gameSys->setAnimation(0, 0, index + 1);
_gameSys->removeSequence(item->currSequenceId, item->id, 1);
_gameSys->removeSequence(item->currSequenceId, item->id, true);
scene51_clearItem(item);
break;
@ -393,7 +393,7 @@ void GnapEngine::scene51_updateItemAnimation(Scene51Item *item, int index) {
break;
case 0xBC:
_gameSys->removeSequence(item->currSequenceId, item->id, 1);
_gameSys->removeSequence(item->currSequenceId, item->id, true);
_gameSys->setAnimation(0, 0, index + 1);
scene51_clearItem(item);
break;
@ -414,7 +414,7 @@ void GnapEngine::scene51_updateItemAnimation(Scene51Item *item, int index) {
void GnapEngine::scene51_removeCollidedItems() {
for (int i = 0; i < 6; ++i) {
if (_s51_items[i].isCollision) {
_gameSys->removeSequence(_s51_items[i].currSequenceId, _s51_items[i].id, 1);
_gameSys->removeSequence(_s51_items[i].currSequenceId, _s51_items[i].id, true);
_gameSys->setAnimation(0, 0, i + 1);
scene51_clearItem(&_s51_items[i]);
}

View File

@ -175,7 +175,7 @@ void GnapEngine::scene52_fireShipCannon(int posX) {
playSound(0x2D, 0);
if (scene52_shipCannonHitShield(cannonNum)) {
_gameSys->setAnimation(0, 0, cannonNum + 8);
_gameSys->removeSequence(0x23, cannonNum + 256, 1);
_gameSys->removeSequence(0x23, cannonNum + 256, true);
} else {
_s52_shipCannonFired = 1;
_s52_shipCannonPosY -= 13;
@ -226,7 +226,7 @@ void GnapEngine::scene52_updateShipCannon() {
if (_s52_shipCannonPosY - 13 >= 135) {
if (scene52_updateHitAlien()) {
_gameSys->setAnimation(0, 0, 8);
_gameSys->removeSequence(35, 256, 1);
_gameSys->removeSequence(35, 256, true);
_s52_shipCannonFired = 0;
scene52_drawScore(_s52_gameScore);
} else {
@ -236,7 +236,7 @@ void GnapEngine::scene52_updateShipCannon() {
}
} else {
_gameSys->setAnimation(0, 0, 8);
_gameSys->removeSequence(35, 256, 1);
_gameSys->removeSequence(35, 256, true);
_s52_shipCannonFired = 0;
}
}
@ -340,7 +340,7 @@ void GnapEngine::scene52_updateAlienRow(int rowNum) {
if (_s52_alienRowIds[rowNum] == -1)
_s52_alienRowIds[rowNum] = i + 256;
} else if (_s52_items[rowNum][i] == -2) {
_gameSys->removeSequence(_s52_alienRowKind[rowNum], i + 256, 1);
_gameSys->removeSequence(_s52_alienRowKind[rowNum], i + 256, true);
_s52_items[rowNum][i] = -1;
--_s52_alienSpeed;
}
@ -638,7 +638,7 @@ int GnapEngine::scene52_shipCannonHitAlien() {
void GnapEngine::scene52_shipExplode() {
if (!_s52_aliensCount) {
_gameSys->setAnimation(0, 0, 7);
_gameSys->removeSequence(_s52_ufoSequenceId, 256, 1);
_gameSys->removeSequence(_s52_ufoSequenceId, 256, true);
playSound(44, 0);
_gameSys->insertSequence(0x21, 266, 0, 0, kSeqNone, 0, _s52_shipPosX, _s52_arcadeScreenBottom);
_s52_aliensCount = 1;
@ -656,7 +656,7 @@ int GnapEngine::scene52_checkAlienRow(int rowNum) {
for (int j = 0; j < 5; ++j)
if (_s52_items[rowNum][j] == -2) {
_gameSys->removeSequence(_s52_alienRowKind[rowNum], j + 256, 1);
_gameSys->removeSequence(_s52_alienRowKind[rowNum], j + 256, true);
_s52_items[rowNum][j] = -1;
--_s52_alienSpeed;
v4 = 1;