diff options
-rw-r--r-- | engines/hopkins/objects.cpp | 54 | ||||
-rw-r--r-- | engines/hopkins/objects.h | 6 | ||||
-rw-r--r-- | engines/hopkins/script.cpp | 8 | ||||
-rw-r--r-- | engines/hopkins/talk.cpp | 14 |
4 files changed, 38 insertions, 44 deletions
diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp index d9a9e00fa4..d262ff653b 100644 --- a/engines/hopkins/objects.cpp +++ b/engines/hopkins/objects.cpp @@ -838,9 +838,9 @@ void ObjectsManager::computeSprite(int idx) { offY = getOffsetY(spr->_spriteData, spr->_spriteIndex, false); } - int tmpX = spr->field12 + offX; + int tmpX = spr->_deltaX + offX; int deltaX = tmpX; - int tmpY = spr->field14 + offY; + int tmpY = spr->_deltaY + offY; int deltaY = tmpY; int zoomPercent = 0; int reducePercent = 0; @@ -927,10 +927,7 @@ void ObjectsManager::displayBobAnim() { continue; _bob[idx].field1C = false; - int v1 = _bob[idx].field20; - if (v1 == -1) - v1 = 50; - if (_bob[idx]._animData == g_PTRNUL || _bob[idx]._disabledAnimationFl || v1 <= 0) { + if (_bob[idx]._animData == g_PTRNUL || _bob[idx]._disabledAnimationFl || _bob[idx].field20 == 0 || _bob[idx].field20 < -1) { if (_bob[idx].field1E == 1 || _bob[idx].field1E == 2) _bob[idx].field1C = true; continue; @@ -964,11 +961,9 @@ void ObjectsManager::displayBobAnim() { _bob[idx]._flipFl = (dataPtr[2 * dataIdx + 9] != 0); _bob[idx]._animDataIdx += 5; - int v5 = _bob[idx].field12; - if (v5 > 0) { - int v6 = v5 / _vm->_globals._speed; - _bob[idx].field12 = v5 / _vm->_globals._speed; - if (v6 > 0) { + if (_bob[idx].field12 > 0) { + _bob[idx].field12 /= _vm->_globals._speed; + if (_bob[idx].field12 > 0) { _bob[idx].field14 = 1; if (_bob[idx].field1E == 1 || _bob[idx].field1E == 2) _bob[idx].field1C = true; @@ -998,13 +993,11 @@ void ObjectsManager::displayBobAnim() { _bob[idx]._frameIndex = v21[8]; _bob[idx]._flipFl = (v21[9] != 0); _bob[idx]._animDataIdx += 5; - int v10 = _bob[idx].field12; - if (v10 > 0) { - int v11 = v10 / _vm->_globals._speed; - _bob[idx].field12 = v11; + if (_bob[idx].field12 > 0) { + _bob[idx].field12 /= _vm->_globals._speed; // Original code. It can't be negative, so the check is on == 0 - if (v11 <= 0) + if (_bob[idx].field12 <= 0) _bob[idx].field12 = 1; } } @@ -1058,13 +1051,13 @@ void ObjectsManager::displayBobAnim() { _bob[i]._oldY = 0; if (_bob[i].field0 == 10 && !_bob[i]._disabledAnimationFl && _bob[i].field1C) { CALCUL_BOB(i); - int v19 = _bob[i]._oldX2 + _bob[i]._oldHeight + _bob[i]._oldY; + int priority = _bob[i]._oldX2 + _bob[i]._oldHeight + _bob[i]._oldY; - if (v19 > 450) - v19 = 600; + if (priority > 450) + priority = 600; if (_bob[i]._activeFl) - beforeSort(SORT_BOB, i, v19); + beforeSort(SORT_BOB, i, priority); } } } @@ -1194,7 +1187,7 @@ void ObjectsManager::animateSprite(int idx) { _sprite[idx]._animationType = 1; } -void ObjectsManager::addStaticSprite(const byte *spriteData, Common::Point pos, int idx, int spriteIndex, int zoomFactor, bool flipFl, int a8, int a9) { +void ObjectsManager::addStaticSprite(const byte *spriteData, Common::Point pos, int idx, int spriteIndex, int zoomFactor, bool flipFl, int deltaX, int deltaY) { assert (idx <= MAX_SPRITE); SpriteItem *spr = &_sprite[idx]; @@ -1203,8 +1196,8 @@ void ObjectsManager::addStaticSprite(const byte *spriteData, Common::Point pos, spr->_spriteIndex = spriteIndex; spr->_zoomFactor = zoomFactor; spr->_flipFl = flipFl; - spr->field12 = a8; - spr->field14 = a9; + spr->_deltaX = deltaX; + spr->_deltaY = deltaY; spr->_animationType = 0; if (READ_BE_UINT24(spriteData) == MKTAG24('R', 'L', 'E')) { @@ -3154,22 +3147,23 @@ void ObjectsManager::loadLinkFile(const Common::String &file) { } int curLineIdx = 0; - int v28; - do { - v28 = READ_LE_INT16(curDataPtr + 2 * curDataIdx); - if (v28 != -1) { + for (;;) { + int bobZoneId = READ_LE_INT16(curDataPtr + 2 * curDataIdx); + if (bobZoneId != -1) { _vm->_linesManager.addZoneLine( curLineIdx, READ_LE_INT16(curDataPtr + 2 * curDataIdx + 2), READ_LE_INT16(curDataPtr + 2 * curDataIdx + 4), READ_LE_INT16(curDataPtr + 2 * curDataIdx + 6), READ_LE_INT16(curDataPtr + 2 * curDataIdx + 8), - v28); - _vm->_linesManager.ZONEP[v28]._enabledFl = true; + bobZoneId); + _vm->_linesManager.ZONEP[bobZoneId]._enabledFl = true; } curDataIdx += 5; ++curLineIdx; - } while (v28 != -1); + if (bobZoneId == -1) + break; + } for (int i = 1; i <= 100; i++) { _vm->_linesManager.ZONEP[i]._destX = READ_LE_INT16(curDataPtr + 2 * curDataIdx); _vm->_linesManager.ZONEP[i]._destY = READ_LE_INT16(curDataPtr + 2 * curDataIdx + 2); diff --git a/engines/hopkins/objects.h b/engines/hopkins/objects.h index 677cbe3a4f..a1ea0dd6b1 100644 --- a/engines/hopkins/objects.h +++ b/engines/hopkins/objects.h @@ -39,8 +39,8 @@ struct SpriteItem { int _zoomFactor; bool _flipFl; int _spriteIndex; - int field12; - int field14; + int _deltaX; + int _deltaY; bool _rleFl; bool _activeFl; int _destX; @@ -174,7 +174,7 @@ public: int getHeight(const byte *objectData, int idx); byte *loadSprite(const Common::String &file); void loadLinkFile(const Common::String &file); - void addStaticSprite(const byte *spriteData, Common::Point pos, int idx, int spriteIndex, int zoomFactor, bool flipFl, int a8, int a9); + void addStaticSprite(const byte *spriteData, Common::Point pos, int idx, int spriteIndex, int zoomFactor, bool flipFl, int deltaX, int deltaY); void animateSprite(int idx); void removeSprite(int idx); void setSpriteX(int idx, int xp); diff --git a/engines/hopkins/script.cpp b/engines/hopkins/script.cpp index 50f7999077..92374495c6 100644 --- a/engines/hopkins/script.cpp +++ b/engines/hopkins/script.cpp @@ -937,8 +937,8 @@ int ScriptManager::handleOpcode(byte *dataP) { _vm->_globals._characterType = 1; _vm->_globals._saveData->_data[svAlternateSpriteFl] = 1; _vm->_globals.loadCharacterData(); - _vm->_objectsManager._sprite[0].field12 = 28; - _vm->_objectsManager._sprite[0].field14 = 155; + _vm->_objectsManager._sprite[0]._deltaX = 28; + _vm->_objectsManager._sprite[0]._deltaY = 155; _vm->_objectsManager.computeAndSetSpriteSize(); break; @@ -947,8 +947,8 @@ int ScriptManager::handleOpcode(byte *dataP) { _vm->_globals._characterType = 0; _vm->_globals._saveData->_data[svAlternateSpriteFl] = 0; _vm->_globals.loadCharacterData(); - _vm->_objectsManager._sprite[0].field12 = 34; - _vm->_objectsManager._sprite[0].field14 = 190; + _vm->_objectsManager._sprite[0]._deltaX = 34; + _vm->_objectsManager._sprite[0]._deltaY = 190; _vm->_objectsManager.computeAndSetSpriteSize(); break; diff --git a/engines/hopkins/talk.cpp b/engines/hopkins/talk.cpp index ac83b9c878..e90f0f84aa 100644 --- a/engines/hopkins/talk.cpp +++ b/engines/hopkins/talk.cpp @@ -604,19 +604,19 @@ void TalkManager::BOB_VISU_PARLE(int idx) { _vm->_objectsManager._priorityFl = true; if (!_vm->_objectsManager._bob[idx].field0) { _vm->_objectsManager.resetBob(idx); - byte *v5 = _vm->_globals._animBqe[idx]._data; - int v4 = READ_LE_INT16(v5 + 2); - if (!v4) - v4 = 1; - if (READ_LE_INT16(v5 + 24)) { + byte *bqeData = _vm->_globals._animBqe[idx]._data; + int newField1E = READ_LE_INT16(bqeData + 2); + if (!newField1E) + newField1E = 1; + if (READ_LE_INT16(bqeData + 24)) { _vm->_objectsManager._bob[idx]._isSpriteFl = true; _vm->_objectsManager._bob[idx]._zoomFactor = 0; _vm->_objectsManager._bob[idx]._flipFl = false; _vm->_objectsManager._bob[idx]._animData = _vm->_globals._animBqe[idx]._data; _vm->_objectsManager._bob[idx].field0 = 10; - v5 = _characterSprite; + bqeData = _characterSprite; _vm->_objectsManager._bob[idx]._spriteData = _characterSprite; - _vm->_objectsManager._bob[idx].field1E = v4; + _vm->_objectsManager._bob[idx].field1E = newField1E; _vm->_objectsManager._bob[idx].field20 = -1; _vm->_objectsManager._bob[idx].field22 = 0; } |