aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/hopkins/anim.cpp59
-rw-r--r--engines/hopkins/computer.cpp84
-rw-r--r--engines/hopkins/computer.h2
3 files changed, 67 insertions, 78 deletions
diff --git a/engines/hopkins/anim.cpp b/engines/hopkins/anim.cpp
index af3ee8aa05..e0e64b4b72 100644
--- a/engines/hopkins/anim.cpp
+++ b/engines/hopkins/anim.cpp
@@ -276,7 +276,7 @@ void AnimationManager::playAnim2(const Common::String &filename, uint32 a2, uint
ptr = _vm->_globals.allocMemory(307200);
memcpy(ptr, v12, 307200);
}
- if (_vm->_animationManager.NO_SEQ) {
+ if (NO_SEQ) {
if (v8 == 1)
memcpy(ptr, _vm->_graphicsManager._vesaBuffer, 307200);
_vm->_graphicsManager.setpal_vga256(_vm->_graphicsManager._palette);
@@ -708,11 +708,8 @@ int AnimationManager::loadSpriteBank(int idx, const Common::String &filename) {
* Search Animation
*/
void AnimationManager::searchAnim(const byte *data, int animIndex, int count) {
- int v3;
- const byte *v5;
int v6;
int v7;
- int v8;
byte *v9;
int v10;
int v11;
@@ -720,58 +717,49 @@ void AnimationManager::searchAnim(const byte *data, int animIndex, int count) {
int v13;
int v15;
int v16;
- int v17;
- int v19;
- int v20;
int v21;
int v22;
const byte *v23;
int v;
v21 = 0;
- v3 = 0;
- v19 = animIndex;
+ bool loopCond = false;
do {
- v20 = *(v21 + data);
- if (v20 == 'A' && *(data + v21 + 1) == 'N' && *(data + v21 + 2) == 'I' && *(data + v21 + 3) == 'M') {
- int entryIndex = *(data + v21 + 4);
+ if (data[v21] == 'A' && data[v21 + 1] == 'N' && data[v21 + 2] == 'I' && data[v21 + 3] == 'M') {
+ int entryIndex = data[v21 + 4];
if (animIndex == entryIndex) {
- v5 = v21 + data + 5;
v6 = v21 + 5;
v7 = 0;
- v8 = 0;
+ bool innerLoopCond = false;
do {
- if (*v5 == 'A' && *(v5 + 1) == 'N' && *(v5 + 2) == 'I' && *(v5 + 3) == 'M')
- v8 = 1;
- if (*v5 == 'F' && *(v5 + 1) == 'I' && *(v5 + 2) == 'N')
- v8 = 1;
+ if ((data[v6] == 'A' && data[v6 + 1] == 'N' && data[v6 + 2] == 'I' && data[v6 + 3] == 'M') ||
+ (data[v6] == 'F' && data[v6 + 1] == 'I' && data[v6 + 2] == 'N'))
+ innerLoopCond = true;
if (count < v6) {
_vm->_globals.Bqe_Anim[animIndex].field4 = 0;
- _vm->_globals.Bqe_Anim[v19]._data = g_PTRNUL;
+ _vm->_globals.Bqe_Anim[animIndex]._data = g_PTRNUL;
return;
}
++v6;
++v7;
- ++v5;
- } while (v8 != 1);
- _vm->_globals.Bqe_Anim[v19]._data = _vm->_globals.allocMemory(v7 + 50);
+ } while (!innerLoopCond);
+ _vm->_globals.Bqe_Anim[animIndex]._data = _vm->_globals.allocMemory(v7 + 50);
_vm->_globals.Bqe_Anim[animIndex].field4 = 1;
- memcpy(_vm->_globals.Bqe_Anim[v19]._data, v21 + data + 5, 20);
+ memcpy(_vm->_globals.Bqe_Anim[animIndex]._data, v21 + data + 5, 20);
- byte *dataP = _vm->_globals.Bqe_Anim[v19]._data;
+ byte *dataP = _vm->_globals.Bqe_Anim[animIndex]._data;
v9 = dataP + 20;
v23 = v21 + data + 25;
v10 = READ_LE_UINT16(v21 + data + 25);
v11 = READ_LE_UINT16(v21 + data + 27);
v22 = READ_LE_UINT16(v21 + data + 29);
v12 = READ_LE_UINT16(v21 + data + 31);
- v13 = *(v21 + data + 33);
- *(dataP + 29) = *(v21 + data + 34);
WRITE_LE_UINT16(dataP + 20, v10);
WRITE_LE_UINT16(dataP + 22, v11);
WRITE_LE_UINT16(dataP + 24, v22);
WRITE_LE_UINT16(dataP + 26, v12);
- *(dataP + 28) = v13;
+ *(dataP + 28) = *(v21 + data + 33);
+ *(dataP + 29) = *(v21 + data + 34);
for (int v14 = 1; v14 <= 4999; v14++) {
v9 += 10;
@@ -783,21 +771,20 @@ void AnimationManager::searchAnim(const byte *data, int animIndex, int count) {
v15 = READ_LE_UINT16(v23 + 2);
v22 = READ_LE_UINT16(v23 + 4);
v16 = READ_LE_UINT16(v23 + 6);
- v17 = *(v23 + 8);
- *(v9 + 9) = *(v23 + 9);
WRITE_LE_UINT16(v9, v);
WRITE_LE_UINT16(v9 + 2, v15);
WRITE_LE_UINT16(v9 + 4, v22);
WRITE_LE_UINT16(v9 + 6, v16);
- *(v9 + 8) = v17;
+ *(v9 + 8) = *(v23 + 8);
+ *(v9 + 9) = *(v23 + 9);
}
- v3 = 1;
+ loopCond = true;
}
}
- if (v20 == 'F' && *(data + v21 + 1) == 'I' && *(data + v21 + 2) == 'N')
- v3 = 1;
+ if (data[v21] == 'F' && data[v21 + 1] == 'I' && data[v21 + 2] == 'N')
+ loopCond = true;
++v21;
- } while (v21 <= count && v3 != 1);
+ } while (v21 <= count && !loopCond);
}
/**
@@ -846,7 +833,7 @@ void AnimationManager::playSequence(const Common::String &file, uint32 rate1, ui
ptr = _vm->_globals.allocMemory(307200);
memcpy(ptr, v9, 307200);
}
- if (_vm->_animationManager.NO_SEQ) {
+ if (NO_SEQ) {
if (v7)
memcpy(ptr, _vm->_graphicsManager._vesaBuffer, 307200);
if (!_vm->getIsDemo()) {
@@ -1009,7 +996,7 @@ void AnimationManager::playSequence2(const Common::String &file, uint32 rate1, u
ptr = _vm->_globals.allocMemory(307200);
memcpy((void *)ptr, v10, 307200);
}
- if (_vm->_animationManager.NO_SEQ) {
+ if (NO_SEQ) {
if (v7 == 1) {
assert(ptr != NULL);
memcpy((void *)ptr, _vm->_graphicsManager._vesaBuffer, 307200);
diff --git a/engines/hopkins/computer.cpp b/engines/hopkins/computer.cpp
index 0079d7f234..7513902fd3 100644
--- a/engines/hopkins/computer.cpp
+++ b/engines/hopkins/computer.cpp
@@ -49,7 +49,7 @@ ComputerManager::ComputerManager() {
_ballRightFl = false;
_ballUpFl = false;
_breakoutLevelNbr = 0;
- RAQX = 0;
+ _padPositionX = 0;
CASSEP1 = 0;
CASSEP2 = 0;
CASSDER = 0;
@@ -683,7 +683,7 @@ void ComputerManager::newLevel() {
_vm->_objectsManager.SPRITE(_breakoutSpr, Common::Point(150, 192), 0, 13, 0, 0, 0, 0);
_vm->_objectsManager.SPRITE(_breakoutSpr, Common::Point(164, 187), 1, 14, 0, 0, 0, 0);
_ballPosition = Common::Point(164, 187);
- RAQX = 150;
+ _padPositionX = 150;
_vm->_objectsManager.SPRITE_ON(0);
_vm->_objectsManager.SPRITE_ON(1);
_vm->_eventsManager.mouseOn();
@@ -772,7 +772,7 @@ void ComputerManager::playBreakout() {
while (!_vm->shouldQuit()) {
// Set up the racket and ball
_vm->_eventsManager.mouseOff();
- _ballPosition = Common::Point(RAQX + 14, 187);
+ _ballPosition = Common::Point(_padPositionX + 14, 187);
_vm->_objectsManager.setSpriteY(1, 187);
_vm->_objectsManager.setSpriteX(1, _ballPosition.x);
_vm->_graphicsManager.RESET_SEGMENT_VESA();
@@ -781,32 +781,32 @@ void ComputerManager::playBreakout() {
// Wait for mouse press to start playing
do {
- RAQX = _vm->_eventsManager.getMouseX();
+ _padPositionX = _vm->_eventsManager.getMouseX();
if (_vm->_eventsManager._mousePos.x <= 4)
- RAQX = 5;
- if (RAQX > 282)
- RAQX = 282;
- _vm->_objectsManager.setSpriteX(0, RAQX);
- _vm->_objectsManager.setSpriteX(1, RAQX + 14);
+ _padPositionX = 5;
+ if (_padPositionX > 282)
+ _padPositionX = 282;
+ _vm->_objectsManager.setSpriteX(0, _padPositionX);
+ _vm->_objectsManager.setSpriteX(1, _padPositionX + 14);
_vm->_objectsManager.setSpriteY(1, 187);
_vm->_eventsManager.VBL();
} while (!_vm->shouldQuit() && _vm->_eventsManager.getMouseButton() != 1);
_breakoutSpeed = 1;
- _ballPosition = Common::Point(RAQX + 14, 187);
- _ballRightFl = (RAQX > 135);
+ _ballPosition = Common::Point(_padPositionX + 14, 187);
+ _ballRightFl = (_padPositionX > 135);
_ballUpFl = false;
// Play loop
do {
_vm->_soundManager.checkSounds();
- RAQX = _vm->_eventsManager.getMouseX();
+ _padPositionX = _vm->_eventsManager.getMouseX();
if (_vm->_eventsManager._mousePos.x <= 4)
- RAQX = 5;
- if (RAQX > 282)
- RAQX = 282;
- _vm->_objectsManager.setSpriteX(0, RAQX);
+ _padPositionX = 5;
+ if (_padPositionX > 282)
+ _padPositionX = 282;
+ _vm->_objectsManager.setSpriteX(0, _padPositionX);
v1 = moveBall();
_vm->_eventsManager.VBL();
} while (!_vm->shouldQuit() && !v1);
@@ -1107,28 +1107,30 @@ void ComputerManager::displayHiscoreLine(byte *objectData, int x, int y, int a4)
* Handle ball moves
*/
int ComputerManager::moveBall() {
- int16 v1;
- int16 v4 = 0;
+ int16 retVal = 0;
//(signed int)(6.0 * (long double)_vm->getRandomNumber( rand() / 2147483648.0) + 1;
// TODO: Figure out random number
- int v0 = _vm->getRandomNumber(6);
- if (_breakoutSpeed == 1) {
+ int randVal = _vm->getRandomNumber(6);
+ switch (_breakoutSpeed) {
+ case 1:
CASSEP1 = 1;
CASSEP2 = 1;
- }
- if (_breakoutSpeed == 2) {
+ break;
+ case 2:
CASSEP1 = 1;
CASSEP2 = 2;
- }
- if (_breakoutSpeed == 3) {
+ break;
+ case 3:
CASSEP1 = 2;
CASSEP2 = 2;
- }
- if (_breakoutSpeed == 4) {
+ break;
+ case 4:
CASSEP1 = 3;
CASSEP2 = 2;
+ break;
}
- v1 = CASSEP1;
+
+ int v1 = CASSEP1;
if (CASSDER == CASSEP1)
v1 = CASSEP2;
@@ -1145,50 +1147,50 @@ int ComputerManager::moveBall() {
CASSDER = v1;
if (_ballPosition.x <= 6) {
_vm->_soundManager.PLAY_SAMPLE(2, 6);
- _ballPosition.x = v0 + 6;
+ _ballPosition.x = randVal + 6;
_ballRightFl = !_ballRightFl;
}
if (_ballPosition.x > 307) {
_vm->_soundManager.PLAY_SAMPLE(2, 6);
- _ballPosition.x = 307 - v0;
+ _ballPosition.x = 307 - randVal;
_ballRightFl = !_ballRightFl;
}
if (_ballPosition.y <= 6) {
_vm->_soundManager.PLAY_SAMPLE(2, 6);
- _ballPosition.y = v0 + 7;
+ _ballPosition.y = randVal + 7;
_ballUpFl = !_ballUpFl;
}
if ((uint16)(_ballPosition.y - 186) <= 8u) {
_vm->_soundManager.PLAY_SAMPLE(2, 6);
- if (_ballPosition.x > RAQX - 2) {
+ if (_ballPosition.x > _padPositionX - 2) {
int v2 = _ballPosition.x + 6;
- if (v2 < RAQX + 36) {
+ if (v2 < _padPositionX + 36) {
_ballUpFl = false;
- if (v2 <= RAQX + 15) {
+ if (v2 <= _padPositionX + 15) {
_ballRightFl = false;
- if (_ballPosition.x >= RAQX && v2 <= RAQX + 5)
+ if (_ballPosition.x >= _padPositionX && v2 <= _padPositionX + 5)
_ballPosition.x -= 4;
- if (_ballPosition.x >= RAQX + 5 && _ballPosition.x + 6 <= RAQX + 10)
+ if (_ballPosition.x >= _padPositionX + 5 && _ballPosition.x + 6 <= _padPositionX + 10)
_ballPosition.x -= 2;
}
- if (_ballPosition.x >= RAQX + 19 && _ballPosition.x + 6 <= RAQX + 36) {
+ if (_ballPosition.x >= _padPositionX + 19 && _ballPosition.x + 6 <= _padPositionX + 36) {
_ballRightFl = true;
- if (_ballPosition.x >= RAQX + 29)
+ if (_ballPosition.x >= _padPositionX + 29)
_ballPosition.x += 4;
- if (_ballPosition.x >= RAQX + 24 && _ballPosition.x + 6 <= RAQX + 29)
+ if (_ballPosition.x >= _padPositionX + 24 && _ballPosition.x + 6 <= _padPositionX + 29)
_ballPosition.x += 2;
}
}
}
}
if (_ballPosition.y > 194)
- v4 = 1;
+ retVal = 1;
checkBallCollisions();
_vm->_objectsManager.setSpriteX(1, _ballPosition.x);
_vm->_objectsManager.setSpriteY(1, _ballPosition.y);
if (!_breakoutBrickNbr)
- v4 = 2;
- return v4;
+ retVal = 2;
+ return retVal;
}
/**
diff --git a/engines/hopkins/computer.h b/engines/hopkins/computer.h
index dfa7529633..6bad921451 100644
--- a/engines/hopkins/computer.h
+++ b/engines/hopkins/computer.h
@@ -62,7 +62,7 @@ private:
bool _ballRightFl;
bool _ballUpFl;
int _breakoutLevelNbr;
- int RAQX;
+ int _padPositionX;
int _breakoutHiscore;
int CASSEP1;
int CASSEP2;