aboutsummaryrefslogtreecommitdiff
path: root/engines/gnap
diff options
context:
space:
mode:
Diffstat (limited to 'engines/gnap')
-rw-r--r--engines/gnap/gnap.cpp11
-rw-r--r--engines/gnap/gnap.h32
-rw-r--r--engines/gnap/scenes/scene49.cpp190
-rw-r--r--engines/gnap/scenes/scene51.cpp195
4 files changed, 209 insertions, 219 deletions
diff --git a/engines/gnap/gnap.cpp b/engines/gnap/gnap.cpp
index 30311ea776..e0d2f188ba 100644
--- a/engines/gnap/gnap.cpp
+++ b/engines/gnap/gnap.cpp
@@ -294,7 +294,6 @@ void GnapEngine::gameUpdateTick() {
_soundMan->update();
_system->updateScreen();
_system->delayMillis(5);
-
}
void GnapEngine::saveTimers() {
@@ -793,7 +792,6 @@ void GnapEngine::mainLoop() {
if (_debugLevel == 4)
_gameDone = true;
}
-
}
if (_backgroundSurface)
@@ -804,11 +802,9 @@ void GnapEngine::mainLoop() {
// TODO freeFont();
debug("MainLoop #XXX2");
-
}
void GnapEngine::initScene() {
-
Common::String datFilename;
_isLeavingScene = false;
@@ -856,7 +852,6 @@ void GnapEngine::endSceneInit() {
}
void GnapEngine::afterScene() {
-
if (_gameDone)
return;
@@ -906,7 +901,6 @@ void GnapEngine::startSoundTimerA(int timerIndex) {
}
int GnapEngine::playSoundA() {
-
static const int kSoundIdsA[] = {
0x93E, 0x93F, 0x941, 0x942, 0x943, 0x944,
0x945, 0x946, 0x947, 0x948, 0x949
@@ -1030,7 +1024,6 @@ int GnapEngine::getGnapSequenceId(int kind, int gridX, int gridY) {
int sequenceId = 0;
switch (kind) {
-
case gskPullOutDevice:
if (gridX > 0 && gridY > 0) {
if (_gnapY > gridY) {
@@ -1364,14 +1357,12 @@ int GnapEngine::getGnapSequenceId(int kind, int gridX, int gridY) {
_gnapIdleFacing = 1;
}
break;
-
}
return sequenceId | 0x10000;
}
int GnapEngine::getGnapShowSequenceId(int index, int gridX, int gridY) {
-
int sequenceId;
int facing = _gnapIdleFacing;
@@ -1761,7 +1752,6 @@ void GnapEngine::gnapInitBrainPulseRndValue() {
}
void GnapEngine::gnapUseDeviceOnBeaver() {
-
playGnapSequence(makeRid(1, getGnapSequenceId(gskPullOutDevice, _platX, _platY)));
if (_beaverFacing != 0) {
@@ -1902,6 +1892,7 @@ void GnapEngine::gnapUseDisguiseOnPlatypus() {
setFlag(10);
}
+// CHECKME: The 3 parameters are always 0
int GnapEngine::getBeaverSequenceId(int kind, int gridX, int gridY) {
int sequenceId;
diff --git a/engines/gnap/gnap.h b/engines/gnap/gnap.h
index 8e23990f52..e13158c245 100644
--- a/engines/gnap/gnap.h
+++ b/engines/gnap/gnap.h
@@ -214,25 +214,25 @@ enum {
// 0x7B0 Gnap walks to the left 2
struct Scene49Obstacle {
- int currSequenceId;
- int closerSequenceId;
- int passedSequenceId;
- int splashSequenceId;
- int collisionSequenceId;
- int prevId;
- int currId;
- int laneNum;
+ int _currSequenceId;
+ int _closerSequenceId;
+ int _passedSequenceId;
+ int _splashSequenceId;
+ int _collisionSequenceId;
+ int _prevId;
+ int _currId;
+ int _laneNum;
};
struct Scene51Item {
- int currSequenceId;
- int droppedSequenceId;
- int x, y;
- int collisionX;
- int canCatch;
- int isCollision;
- int x2;
- int id;
+ int _currSequenceId;
+ int _droppedSequenceId;
+ int _x, _y;
+ int _collisionX;
+ bool _canCatch;
+ bool _isCollision;
+ int _x2;
+ int _id;
};
class GnapEngine : public Engine {
diff --git a/engines/gnap/scenes/scene49.cpp b/engines/gnap/scenes/scene49.cpp
index 19da920bf2..9a4714529d 100644
--- a/engines/gnap/scenes/scene49.cpp
+++ b/engines/gnap/scenes/scene49.cpp
@@ -70,64 +70,64 @@ void GnapEngine::scene49_checkObstacles() {
scene49_clearObstacle(i);
for (int j = 0; j < 5; ++j) {
- if (_s49_obstacles[j].currSequenceId == 0) {
+ if (_s49_obstacles[j]._currSequenceId == 0) {
_timers[3] = 35;
- _s49_obstacles[j].currSequenceId = kObstacleDefs[_s49_obstacleIndex].sequenceId;
- switch (_s49_obstacles[j].currSequenceId) {
+ _s49_obstacles[j]._currSequenceId = kObstacleDefs[_s49_obstacleIndex].sequenceId;
+ switch (_s49_obstacles[j]._currSequenceId) {
case 0xB4:
- _s49_obstacles[j].laneNum = 1;
- _s49_obstacles[j].closerSequenceId = 180;
- _s49_obstacles[j].passedSequenceId = 181;
- _s49_obstacles[j].splashSequenceId = 182;
- _s49_obstacles[j].collisionSequenceId = 192;
+ _s49_obstacles[j]._laneNum = 1;
+ _s49_obstacles[j]._closerSequenceId = 180;
+ _s49_obstacles[j]._passedSequenceId = 181;
+ _s49_obstacles[j]._splashSequenceId = 182;
+ _s49_obstacles[j]._collisionSequenceId = 192;
break;
case 0xB7:
- _s49_obstacles[j].laneNum = 2;
- _s49_obstacles[j].closerSequenceId = 183;
- _s49_obstacles[j].passedSequenceId = 184;
- _s49_obstacles[j].splashSequenceId = 185;
- _s49_obstacles[j].collisionSequenceId = 193;
+ _s49_obstacles[j]._laneNum = 2;
+ _s49_obstacles[j]._closerSequenceId = 183;
+ _s49_obstacles[j]._passedSequenceId = 184;
+ _s49_obstacles[j]._splashSequenceId = 185;
+ _s49_obstacles[j]._collisionSequenceId = 193;
break;
case 0xBD:
- _s49_obstacles[j].laneNum = 3;
- _s49_obstacles[j].closerSequenceId = 189;
- _s49_obstacles[j].passedSequenceId = 190;
- _s49_obstacles[j].splashSequenceId = 191;
- _s49_obstacles[j].collisionSequenceId = 195;
+ _s49_obstacles[j]._laneNum = 3;
+ _s49_obstacles[j]._closerSequenceId = 189;
+ _s49_obstacles[j]._passedSequenceId = 190;
+ _s49_obstacles[j]._splashSequenceId = 191;
+ _s49_obstacles[j]._collisionSequenceId = 195;
break;
case 0xBA:
- _s49_obstacles[j].laneNum = 2;
- _s49_obstacles[j].closerSequenceId = 186;
- _s49_obstacles[j].passedSequenceId = 187;
- _s49_obstacles[j].splashSequenceId = 188;
- _s49_obstacles[j].collisionSequenceId = 194;
+ _s49_obstacles[j]._laneNum = 2;
+ _s49_obstacles[j]._closerSequenceId = 186;
+ _s49_obstacles[j]._passedSequenceId = 187;
+ _s49_obstacles[j]._splashSequenceId = 188;
+ _s49_obstacles[j]._collisionSequenceId = 194;
break;
case 0xCB:
- _s49_obstacles[j].laneNum = 1;
- _s49_obstacles[j].closerSequenceId = 203;
- _s49_obstacles[j].passedSequenceId = 204;
- _s49_obstacles[j].splashSequenceId = 0;
- _s49_obstacles[j].collisionSequenceId = 209;
+ _s49_obstacles[j]._laneNum = 1;
+ _s49_obstacles[j]._closerSequenceId = 203;
+ _s49_obstacles[j]._passedSequenceId = 204;
+ _s49_obstacles[j]._splashSequenceId = 0;
+ _s49_obstacles[j]._collisionSequenceId = 209;
break;
case 0xCD:
- _s49_obstacles[j].laneNum = 2;
- _s49_obstacles[j].closerSequenceId = 205;
- _s49_obstacles[j].passedSequenceId = 206;
- _s49_obstacles[j].splashSequenceId = 0;
- _s49_obstacles[j].collisionSequenceId = 210;
+ _s49_obstacles[j]._laneNum = 2;
+ _s49_obstacles[j]._closerSequenceId = 205;
+ _s49_obstacles[j]._passedSequenceId = 206;
+ _s49_obstacles[j]._splashSequenceId = 0;
+ _s49_obstacles[j]._collisionSequenceId = 210;
break;
case 0xCF:
- _s49_obstacles[j].laneNum = 3;
- _s49_obstacles[j].closerSequenceId = 207;
- _s49_obstacles[j].passedSequenceId = 208;
- _s49_obstacles[j].splashSequenceId = 0;
- _s49_obstacles[j].collisionSequenceId = 211;
+ _s49_obstacles[j]._laneNum = 3;
+ _s49_obstacles[j]._closerSequenceId = 207;
+ _s49_obstacles[j]._passedSequenceId = 208;
+ _s49_obstacles[j]._splashSequenceId = 0;
+ _s49_obstacles[j]._collisionSequenceId = 211;
break;
}
- _s49_obstacles[j].prevId = _s49_truckId;
- _s49_obstacles[j].currId = _s49_obstacles[j].prevId;
- _gameSys->setAnimation(_s49_obstacles[j].currSequenceId, _s49_obstacles[j].currId, j + 2);
- _gameSys->insertSequence(_s49_obstacles[j].currSequenceId, _s49_obstacles[j].currId, 0, 0, kSeqNone, 0, 0, -50);
+ _s49_obstacles[j]._prevId = _s49_truckId;
+ _s49_obstacles[j]._currId = _s49_obstacles[j]._prevId;
+ _gameSys->setAnimation(_s49_obstacles[j]._currSequenceId, _s49_obstacles[j]._currId, j + 2);
+ _gameSys->insertSequence(_s49_obstacles[j]._currSequenceId, _s49_obstacles[j]._currId, 0, 0, kSeqNone, 0, 0, -50);
_timers[2] = kObstacleDefs[_s49_obstacleIndex].ticks;
++_s49_obstacleIndex;
if (_s49_obstacleIndex == 50)
@@ -144,83 +144,83 @@ void GnapEngine::scene49_updateObstacle(int id) {
Scene49Obstacle &obstacle = _s49_obstacles[id];
- obstacle.currId = obstacle.prevId;
+ obstacle._currId = obstacle._prevId;
- switch (obstacle.laneNum) {
+ switch (obstacle._laneNum) {
case 1:
- obstacle.prevId = _s49_truckId + 1;
+ obstacle._prevId = _s49_truckId + 1;
break;
case 2:
if (_s49_truckLaneNum != 2 && _s49_truckLaneNum != 3)
- obstacle.prevId = _s49_truckId - 1;
+ obstacle._prevId = _s49_truckId - 1;
else
- obstacle.prevId = _s49_truckId + 1;
+ obstacle._prevId = _s49_truckId + 1;
break;
case 3:
if (_s49_truckLaneNum != 1 && _s49_truckLaneNum != 2)
- obstacle.prevId = _s49_truckId;
+ obstacle._prevId = _s49_truckId;
else
- obstacle.prevId = _s49_truckId - 1;
+ obstacle._prevId = _s49_truckId - 1;
break;
}
- if (obstacle.currSequenceId == obstacle.closerSequenceId) {
- if (_s49_truckLaneNum == obstacle.laneNum) {
- if (obstacle.splashSequenceId) {
- _gameSys->setAnimation(obstacle.collisionSequenceId, obstacle.prevId, id + 2);
- _gameSys->insertSequence(obstacle.collisionSequenceId, obstacle.prevId,
- obstacle.currSequenceId, obstacle.currId,
+ if (obstacle._currSequenceId == obstacle._closerSequenceId) {
+ if (_s49_truckLaneNum == obstacle._laneNum) {
+ if (obstacle._splashSequenceId) {
+ _gameSys->setAnimation(obstacle._collisionSequenceId, obstacle._prevId, id + 2);
+ _gameSys->insertSequence(obstacle._collisionSequenceId, obstacle._prevId,
+ obstacle._currSequenceId, obstacle._currId,
kSeqSyncWait, 0, 0, -50);
- obstacle.currSequenceId = obstacle.collisionSequenceId;
+ obstacle._currSequenceId = obstacle._collisionSequenceId;
playSound(224, 0);
scene49_increaseScore(30);
- } else if ((obstacle.laneNum == 1 && _s49_truckSequenceId == 0xB0) ||
- (obstacle.laneNum == 2 && (_s49_truckSequenceId == 0xB1 || _s49_truckSequenceId == 0xB2)) ||
- (obstacle.laneNum == 3 && _s49_truckSequenceId == 0xB3)) {
- _gameSys->setAnimation(obstacle.passedSequenceId, obstacle.prevId, id + 2);
- _gameSys->insertSequence(obstacle.passedSequenceId, obstacle.prevId,
- obstacle.currSequenceId, obstacle.currId,
+ } else if ((obstacle._laneNum == 1 && _s49_truckSequenceId == 0xB0) ||
+ (obstacle._laneNum == 2 && (_s49_truckSequenceId == 0xB1 || _s49_truckSequenceId == 0xB2)) ||
+ (obstacle._laneNum == 3 && _s49_truckSequenceId == 0xB3)) {
+ _gameSys->setAnimation(obstacle._passedSequenceId, obstacle._prevId, id + 2);
+ _gameSys->insertSequence(obstacle._passedSequenceId, obstacle._prevId,
+ obstacle._currSequenceId, obstacle._currId,
kSeqSyncWait, 0, 0, -50);
- obstacle.currSequenceId = obstacle.passedSequenceId;
+ obstacle._currSequenceId = obstacle._passedSequenceId;
} else {
- _gameSys->setAnimation(obstacle.collisionSequenceId, 256, 0);
- _gameSys->setAnimation(obstacle.passedSequenceId, obstacle.prevId, id + 2);
- _gameSys->insertSequence(obstacle.passedSequenceId, obstacle.prevId,
- obstacle.currSequenceId, obstacle.currId,
+ _gameSys->setAnimation(obstacle._collisionSequenceId, 256, 0);
+ _gameSys->setAnimation(obstacle._passedSequenceId, obstacle._prevId, id + 2);
+ _gameSys->insertSequence(obstacle._passedSequenceId, obstacle._prevId,
+ obstacle._currSequenceId, obstacle._currId,
kSeqSyncWait, 0, 0, -50);
- _gameSys->insertSequence(obstacle.collisionSequenceId, 256,
+ _gameSys->insertSequence(obstacle._collisionSequenceId, 256,
_s49_truckSequenceId, _s49_truckId,
kSeqSyncExists, 0, 0, -50);
- _s49_truckSequenceId = obstacle.collisionSequenceId;
+ _s49_truckSequenceId = obstacle._collisionSequenceId;
_s49_truckId = 256;
- obstacle.currSequenceId = obstacle.passedSequenceId;
+ obstacle._currSequenceId = obstacle._passedSequenceId;
playSound(225, 0);
scene49_decreaseScore(30);
}
} else {
- _gameSys->setAnimation(obstacle.passedSequenceId, obstacle.prevId, id + 2);
- _gameSys->insertSequence(obstacle.passedSequenceId, obstacle.prevId,
- obstacle.currSequenceId, obstacle.currId,
+ _gameSys->setAnimation(obstacle._passedSequenceId, obstacle._prevId, id + 2);
+ _gameSys->insertSequence(obstacle._passedSequenceId, obstacle._prevId,
+ obstacle._currSequenceId, obstacle._currId,
kSeqSyncWait, 0, 0, -50);
- obstacle.currSequenceId = obstacle.passedSequenceId;
+ obstacle._currSequenceId = obstacle._passedSequenceId;
}
- } else if (obstacle.currSequenceId == obstacle.passedSequenceId) {
- if (_s49_truckLaneNum == obstacle.laneNum) {
- if (obstacle.splashSequenceId) {
- _gameSys->setAnimation(obstacle.collisionSequenceId, obstacle.prevId, id + 2);
- _gameSys->insertSequence(obstacle.collisionSequenceId, obstacle.prevId,
- obstacle.currSequenceId, obstacle.currId,
+ } else if (obstacle._currSequenceId == obstacle._passedSequenceId) {
+ if (_s49_truckLaneNum == obstacle._laneNum) {
+ if (obstacle._splashSequenceId) {
+ _gameSys->setAnimation(obstacle._collisionSequenceId, obstacle._prevId, id + 2);
+ _gameSys->insertSequence(obstacle._collisionSequenceId, obstacle._prevId,
+ obstacle._currSequenceId, obstacle._currId,
kSeqSyncWait, 0, 0, -50);
- obstacle.currSequenceId = obstacle.collisionSequenceId;
+ obstacle._currSequenceId = obstacle._collisionSequenceId;
playSound(224, 0);
scene49_increaseScore(30);
}
- } else if (obstacle.splashSequenceId) {
- _gameSys->setAnimation(obstacle.splashSequenceId, obstacle.prevId, id + 2);
- _gameSys->insertSequence(obstacle.splashSequenceId, obstacle.prevId,
- obstacle.currSequenceId, obstacle.currId,
+ } else if (obstacle._splashSequenceId) {
+ _gameSys->setAnimation(obstacle._splashSequenceId, obstacle._prevId, id + 2);
+ _gameSys->insertSequence(obstacle._splashSequenceId, obstacle._prevId,
+ obstacle._currSequenceId, obstacle._currId,
kSeqSyncWait, 0, 0, -50);
- obstacle.currSequenceId = obstacle.splashSequenceId;
+ obstacle._currSequenceId = obstacle._splashSequenceId;
}
} else {
_gameSys->setAnimation(0, 0, id + 2);
@@ -256,14 +256,14 @@ void GnapEngine::scene49_refreshScoreBar() {
}
void GnapEngine::scene49_clearObstacle(int index) {
- _s49_obstacles[index].currSequenceId = 0;
- _s49_obstacles[index].closerSequenceId = 0;
- _s49_obstacles[index].passedSequenceId = 0;
- _s49_obstacles[index].splashSequenceId = 0;
- _s49_obstacles[index].collisionSequenceId = 0;
- _s49_obstacles[index].prevId = 0;
- _s49_obstacles[index].currId = 0;
- _s49_obstacles[index].laneNum = 0;
+ _s49_obstacles[index]._currSequenceId = 0;
+ _s49_obstacles[index]._closerSequenceId = 0;
+ _s49_obstacles[index]._passedSequenceId = 0;
+ _s49_obstacles[index]._splashSequenceId = 0;
+ _s49_obstacles[index]._collisionSequenceId = 0;
+ _s49_obstacles[index]._prevId = 0;
+ _s49_obstacles[index]._currId = 0;
+ _s49_obstacles[index]._laneNum = 0;
}
void GnapEngine::scene49_run() {
@@ -498,7 +498,7 @@ void GnapEngine::scene49_updateAnimations() {
for (int i = 0; i < 5; ++i) {
if (_gameSys->getAnimationStatus(i + 2) == 2) {
- if (_s49_obstacles[i].currSequenceId)
+ if (_s49_obstacles[i]._currSequenceId)
scene49_updateObstacle(i);
}
}
diff --git a/engines/gnap/scenes/scene51.cpp b/engines/gnap/scenes/scene51.cpp
index 1610e36192..d93506ff00 100644
--- a/engines/gnap/scenes/scene51.cpp
+++ b/engines/gnap/scenes/scene51.cpp
@@ -58,13 +58,13 @@ void GnapEngine::scene51_updateHotspots() {
}
void GnapEngine::scene51_clearItem(Scene51Item *item) {
- item->currSequenceId = 0;
- item->droppedSequenceId = 0;
- item->x = 0;
- item->y = 0;
- item->x2 = 0;
- item->collisionX = 0;
- item->canCatch = 0;
+ item->_currSequenceId = 0;
+ item->_droppedSequenceId = 0;
+ item->_x = 0;
+ item->_y = 0;
+ item->_x2 = 0;
+ item->_collisionX = 0;
+ item->_canCatch = false;
}
void GnapEngine::scene51_dropNextItem() {
@@ -74,7 +74,7 @@ void GnapEngine::scene51_dropNextItem() {
int index = 0;
- while (index < 6 && _s51_items[index].currSequenceId)
+ while (index < 6 && _s51_items[index]._currSequenceId)
++index;
if (index == 6)
@@ -84,10 +84,10 @@ void GnapEngine::scene51_dropNextItem() {
case 0:
if (getRandom(10) != 0 || _s51_itemsCtr2 >= 2) {
- _s51_items[index].currSequenceId = 0xBD;
+ _s51_items[index]._currSequenceId = 0xBD;
} else {
--_s51_itemsCtr1;
- _s51_items[index].currSequenceId = 0xBA;
+ _s51_items[index]._currSequenceId = 0xBA;
++_s51_itemsCtr2;
}
break;
@@ -100,20 +100,20 @@ void GnapEngine::scene51_dropNextItem() {
else
_s51_itemInsertX += 70;
}
- _s51_items[index].currSequenceId = 0xBD;
+ _s51_items[index]._currSequenceId = 0xBD;
} else {
--_s51_itemsCtr1;
- _s51_items[index].currSequenceId = 0xBA;
+ _s51_items[index]._currSequenceId = 0xBA;
++_s51_itemsCtr2;
}
break;
case 2:
if (getRandom(6) != 0 || _s51_itemsCtr2 >= 2) {
- _s51_items[index].currSequenceId = 0xBD;
+ _s51_items[index]._currSequenceId = 0xBD;
} else {
--_s51_itemsCtr1;
- _s51_items[index].currSequenceId = 0xBA;
+ _s51_items[index]._currSequenceId = 0xBA;
++_s51_itemsCtr2;
}
break;
@@ -122,19 +122,19 @@ void GnapEngine::scene51_dropNextItem() {
case 4:
if (_s51_itemsCtr == 0)
_s51_itemsCtr1 = 3;
- _s51_items[index].currSequenceId = 0xC0;
+ _s51_items[index]._currSequenceId = 0xC0;
break;
case 5:
case 6:
if (getRandom(5) != 0 || _s51_itemsCtr2 >= 2) {
if (getRandom(5) != 0)
- _s51_items[index].currSequenceId = 0xBD;
+ _s51_items[index]._currSequenceId = 0xBD;
else
- _s51_items[index].currSequenceId = 0xC0;
+ _s51_items[index]._currSequenceId = 0xC0;
} else {
--_s51_itemsCtr1;
- _s51_items[index].currSequenceId = 0xBA;
+ _s51_items[index]._currSequenceId = 0xBA;
++_s51_itemsCtr2;
}
break;
@@ -148,12 +148,12 @@ void GnapEngine::scene51_dropNextItem() {
_s51_itemInsertX += 40;
}
if (getRandom(9) != 0)
- _s51_items[index].currSequenceId = 0xBD;
+ _s51_items[index]._currSequenceId = 0xBD;
else
- _s51_items[index].currSequenceId = 0xC0;
+ _s51_items[index]._currSequenceId = 0xC0;
} else {
--_s51_itemsCtr1;
- _s51_items[index].currSequenceId = 0xBA;
+ _s51_items[index]._currSequenceId = 0xBA;
++_s51_itemsCtr2;
}
break;
@@ -161,12 +161,12 @@ void GnapEngine::scene51_dropNextItem() {
default:
if (getRandom(4) != 0 || _s51_itemsCtr2 >= 2) {
if (getRandom(9) != 0)
- _s51_items[index].currSequenceId = 0xBD;
+ _s51_items[index]._currSequenceId = 0xBD;
else
- _s51_items[index].currSequenceId = 0xC0;
+ _s51_items[index]._currSequenceId = 0xC0;
} else {
--_s51_itemsCtr1;
- _s51_items[index].currSequenceId = 0xBA;
+ _s51_items[index]._currSequenceId = 0xBA;
++_s51_itemsCtr2;
}
break;
@@ -193,23 +193,23 @@ void GnapEngine::scene51_dropNextItem() {
if (_s51_itemInsertX < 129)
_s51_itemInsertX = 129;
- if (_s51_items[index].currSequenceId == 0xBA) {
- _s51_items[index].x2 = getRandom(350) + 200;
- _s51_items[index].x = _s51_items[index].x2 - 362;
- _s51_items[index].y = 15;
- _s51_items[index].id = 249 - index;
+ if (_s51_items[index]._currSequenceId == 0xBA) {
+ _s51_items[index]._x2 = getRandom(350) + 200;
+ _s51_items[index]._x = _s51_items[index]._x2 - 362;
+ _s51_items[index]._y = 15;
+ _s51_items[index]._id = 249 - index;
} else {
- _s51_items[index].collisionX = _s51_itemInsertX;
- _s51_items[index].x = _s51_items[index].collisionX - 395;
- if (_s51_items[index].currSequenceId == 0xC0)
- _s51_items[index].x -= 65;
- _s51_items[index].id = index + 250;
- _s51_items[index].canCatch = 1;
+ _s51_items[index]._collisionX = _s51_itemInsertX;
+ _s51_items[index]._x = _s51_items[index]._collisionX - 395;
+ if (_s51_items[index]._currSequenceId == 0xC0)
+ _s51_items[index]._x -= 65;
+ _s51_items[index]._id = index + 250;
+ _s51_items[index]._canCatch = true;
}
- _gameSys->setAnimation(_s51_items[index].currSequenceId, _s51_items[index].id, index + 1);
- _gameSys->insertSequence(_s51_items[index].currSequenceId, _s51_items[index].id, 0, 0,
- kSeqNone, 0, _s51_items[index].x, _s51_items[index].y);
+ _gameSys->setAnimation(_s51_items[index]._currSequenceId, _s51_items[index]._id, index + 1);
+ _gameSys->insertSequence(_s51_items[index]._currSequenceId, _s51_items[index]._id, 0, 0,
+ kSeqNone, 0, _s51_items[index]._x, _s51_items[index]._y);
_timers[0] = _s51_dropSpeedTicks;
@@ -234,18 +234,17 @@ void GnapEngine::scene51_updateItemAnimations() {
int GnapEngine::scene51_checkCollision(int sequenceId) {
bool jumpingLeft = false, jumpingRight = false;
- int v6 = 0;
- int v2 = 0;
int v8, v4;
int result = 0;
if (!scene51_isJumping(sequenceId))
return false;
- while (v6 < 6)
- v2 += _s51_items[v6++].isCollision;
+ bool checkFl = false;
+ for (int i = 0; i < 6; i++)
+ checkFl |= _s51_items[i]._isCollision;
- if (!v2)
+ if (!checkFl)
return false;
if (scene51_isJumpingRight(sequenceId)) {
@@ -262,14 +261,14 @@ int GnapEngine::scene51_checkCollision(int sequenceId) {
int v5 = 0;
int i;
for (i = 0; i < 6; ++i) {
- if (_s51_items[i].isCollision) {
- if (jumpingRight && _s51_items[i].x2 > v8 && _s51_items[i].x2 < v4) {
+ if (_s51_items[i]._isCollision) {
+ if (jumpingRight && _s51_items[i]._x2 > v8 && _s51_items[i]._x2 < v4) {
v5 = v8 - 359;
if (v5 == 0)
v5 = 1;
_s51_platypusNextSequenceId = 0xB6;
break;
- } else if (jumpingLeft && _s51_items[i].x2 < v4 && _s51_items[i].x2 > v8) {
+ } else if (jumpingLeft && _s51_items[i]._x2 < v4 && _s51_items[i]._x2 > v8) {
v5 = v8 - 344;
if (v5 == 0)
v5 = 1;
@@ -279,10 +278,10 @@ int GnapEngine::scene51_checkCollision(int sequenceId) {
}
}
if (v5) {
- _gameSys->setAnimation(0xBC, _s51_items[i].id, i + 1);
- _gameSys->insertSequence(0xBC, _s51_items[i].id, _s51_items[i].currSequenceId, _s51_items[i].id, kSeqSyncWait, 0, _s51_items[i].x, 15);
- _s51_items[i].isCollision = 0;
- _s51_items[i].currSequenceId = 0xBC;
+ _gameSys->setAnimation(0xBC, _s51_items[i]._id, i + 1);
+ _gameSys->insertSequence(0xBC, _s51_items[i]._id, _s51_items[i]._currSequenceId, _s51_items[i]._id, kSeqSyncWait, 0, _s51_items[i]._x, 15);
+ _s51_items[i]._isCollision = false;
+ _s51_items[i]._currSequenceId = 0xBC;
--_s51_itemsCtr2;
}
result = v5;
@@ -293,14 +292,14 @@ int GnapEngine::scene51_checkCollision(int sequenceId) {
void GnapEngine::scene51_updateItemAnimation(Scene51Item *item, int index) {
- switch (item->currSequenceId) {
+ switch (item->_currSequenceId) {
case 0xBD:
case 0xC0:
case 0xC1:
// Falling coin and banknote
if (!scene51_itemIsCaught(item)) {
if (_s51_dropLoseCash) {
- if (item->currSequenceId == 0xBD)
+ if (item->_currSequenceId == 0xBD)
_s51_cashAmount -= 2;
else
_s51_cashAmount -= 25;
@@ -308,24 +307,24 @@ void GnapEngine::scene51_updateItemAnimation(Scene51Item *item, int index) {
_s51_cashAmount = 0;
scene51_updateCash(_s51_cashAmount);
}
- item->droppedSequenceId = item->currSequenceId + 1;
- if (item->currSequenceId != 0xC0) {
- item->canCatch = 0;
+ item->_droppedSequenceId = item->_currSequenceId + 1;
+ if (item->_currSequenceId != 0xC0) {
+ item->_canCatch = false;
_s51_dropLoseCash = true;
_s51_itemsCtr = 0;
_timers[0] = 10;
}
- if (item->droppedSequenceId) {
- _gameSys->setAnimation(item->droppedSequenceId, item->id, index + 1);
- _gameSys->insertSequence(item->droppedSequenceId, item->id, item->currSequenceId, item->id, kSeqSyncWait, 0, item->x, item->y);
- item->currSequenceId = item->droppedSequenceId;
- item->y = 0;
+ if (item->_droppedSequenceId) {
+ _gameSys->setAnimation(item->_droppedSequenceId, item->_id, index + 1);
+ _gameSys->insertSequence(item->_droppedSequenceId, item->_id, item->_currSequenceId, item->_id, kSeqSyncWait, 0, item->_x, item->_y);
+ item->_currSequenceId = item->_droppedSequenceId;
+ item->_y = 0;
}
} else {
- _gameSys->removeSequence(item->currSequenceId, item->id, true);
+ _gameSys->removeSequence(item->_currSequenceId, item->_id, true);
_gameSys->setAnimation(0, 0, index + 1);
playSound(218, 0);
- if (scene51_incCashAmount(item->currSequenceId) == 1995) {
+ if (scene51_incCashAmount(item->_currSequenceId) == 1995) {
scene51_winMinigame();
_sceneDone = true;
} else {
@@ -356,12 +355,12 @@ void GnapEngine::scene51_updateItemAnimation(Scene51Item *item, int index) {
case 0xBE:
// Fallen coin
- item->droppedSequenceId = item->currSequenceId + 1;
- if (item->droppedSequenceId) {
- _gameSys->setAnimation(item->droppedSequenceId, item->id, index + 1);
- _gameSys->insertSequence(item->droppedSequenceId, item->id, item->currSequenceId, item->id, kSeqSyncWait, 0, item->x, item->y);
- item->currSequenceId = item->droppedSequenceId;
- item->y = 0;
+ item->_droppedSequenceId = item->_currSequenceId + 1;
+ if (item->_droppedSequenceId) {
+ _gameSys->setAnimation(item->_droppedSequenceId, item->_id, index + 1);
+ _gameSys->insertSequence(item->_droppedSequenceId, item->_id, item->_currSequenceId, item->_id, kSeqSyncWait, 0, item->_x, item->_y);
+ item->_currSequenceId = item->_droppedSequenceId;
+ item->_y = 0;
}
break;
@@ -369,40 +368,40 @@ 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, true);
+ _gameSys->removeSequence(item->_currSequenceId, item->_id, true);
scene51_clearItem(item);
break;
case 0xBA:
// Falling banana peel
- item->droppedSequenceId = 0xBB;
- item->y = 15;
- if (item->droppedSequenceId) {
- _gameSys->setAnimation(item->droppedSequenceId, item->id, index + 1);
- _gameSys->insertSequence(item->droppedSequenceId, item->id, item->currSequenceId, item->id, kSeqSyncWait, 0, item->x, item->y);
- item->currSequenceId = item->droppedSequenceId;
- item->y = 0;
+ item->_droppedSequenceId = 0xBB;
+ item->_y = 15;
+ if (item->_droppedSequenceId) {
+ _gameSys->setAnimation(item->_droppedSequenceId, item->_id, index + 1);
+ _gameSys->insertSequence(item->_droppedSequenceId, item->_id, item->_currSequenceId, item->_id, kSeqSyncWait, 0, item->_x, item->_y);
+ item->_currSequenceId = item->_droppedSequenceId;
+ item->_y = 0;
}
break;
case 0xBB:
- item->isCollision = 1;
- item->droppedSequenceId = 0;
+ item->_isCollision = true;
+ item->_droppedSequenceId = 0;
_gameSys->setAnimation(0, 0, index + 1);
break;
case 0xBC:
- _gameSys->removeSequence(item->currSequenceId, item->id, true);
+ _gameSys->removeSequence(item->_currSequenceId, item->_id, true);
_gameSys->setAnimation(0, 0, index + 1);
scene51_clearItem(item);
break;
default:
- if (item->droppedSequenceId) {
- _gameSys->setAnimation(item->droppedSequenceId, item->id, index + 1);
- _gameSys->insertSequence(item->droppedSequenceId, item->id, item->currSequenceId, item->id, kSeqSyncWait, 0, item->x, item->y);
- item->currSequenceId = item->droppedSequenceId;
- item->y = 0;
+ if (item->_droppedSequenceId) {
+ _gameSys->setAnimation(item->_droppedSequenceId, item->_id, index + 1);
+ _gameSys->insertSequence(item->_droppedSequenceId, item->_id, item->_currSequenceId, item->_id, kSeqSyncWait, 0, item->_x, item->_y);
+ item->_currSequenceId = item->_droppedSequenceId;
+ item->_y = 0;
}
break;
@@ -412,8 +411,8 @@ 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, true);
+ if (_s51_items[i]._isCollision) {
+ _gameSys->removeSequence(_s51_items[i]._currSequenceId, _s51_items[i]._id, true);
_gameSys->setAnimation(0, 0, i + 1);
scene51_clearItem(&_s51_items[i]);
}
@@ -423,21 +422,21 @@ void GnapEngine::scene51_removeCollidedItems() {
int GnapEngine::scene51_itemIsCaught(Scene51Item *item) {
- if (!item->canCatch)
+ if (!item->_canCatch)
return 0;
if (scene51_isJumpingRight(_s51_platypusJumpSequenceId)) {
int v4 = scene51_getPosRight(_s51_platypusJumpSequenceId) + 97;
- if (item->collisionX < v4 && v4 - item->collisionX < 56)
+ if (item->_collisionX < v4 && v4 - item->_collisionX < 56)
return 1;
} else {
int v2 = scene51_getPosLeft(_s51_platypusJumpSequenceId);
- if (item->collisionX > v2 && item->collisionX - v2 < 56)
+ if (item->_collisionX > v2 && item->_collisionX - v2 < 56)
return 1;
}
- if (item->currSequenceId == 0xC1) {
- int v3 = item->collisionX + 100;
+ if (item->_currSequenceId == 0xC1) {
+ int v3 = item->_collisionX + 100;
if (scene51_isJumpingRight(_s51_platypusJumpSequenceId)) {
if (ABS(scene51_getPosRight(_s51_platypusJumpSequenceId) + 46 - v3) < 56)
return 1;
@@ -504,15 +503,15 @@ void GnapEngine::scene51_playIntroAnim() {
for (int i = 0; i < 6; ++i)
scene51_clearItem(&_s51_items[i]);
- _s51_items[0].currSequenceId = 0xBA;
- _s51_items[0].x2 = 320;
- _s51_items[0].x = -42;
- _s51_items[0].y = 15;
- _s51_items[0].id = 249;
- _s51_items[0].isCollision = 1;
+ _s51_items[0]._currSequenceId = 0xBA;
+ _s51_items[0]._x2 = 320;
+ _s51_items[0]._x = -42;
+ _s51_items[0]._y = 15;
+ _s51_items[0]._id = 249;
+ _s51_items[0]._isCollision = true;
_gameSys->insertSequence(_s51_platypusSequenceId, 256, 0, 0, kSeqNone, 0, -179, 0);
- _gameSys->insertSequence(0xBA, 249, 0, 0, kSeqNone, 0, _s51_items[0].x, _s51_items[0].y);
+ _gameSys->insertSequence(0xBA, 249, 0, 0, kSeqNone, 0, _s51_items[0]._x, _s51_items[0]._y);
_gameSys->setAnimation(0xBA, 249, 1);
_gameSys->setAnimation(_s51_platypusSequenceId, 256, 0);