From e99d5b320a3e2737d0bb6aa9d4c401b2c3116beb Mon Sep 17 00:00:00 2001 From: Strangerke Date: Mon, 17 Dec 2012 00:16:49 +0100 Subject: HOPKINS: Renaming of members of Globals and ObjectsManager --- engines/hopkins/anim.cpp | 37 ++- engines/hopkins/computer.cpp | 16 +- engines/hopkins/events.cpp | 4 +- engines/hopkins/globals.cpp | 33 +- engines/hopkins/globals.h | 90 +++--- engines/hopkins/graphics.cpp | 51 ++- engines/hopkins/hopkins.cpp | 32 +- engines/hopkins/objects.cpp | 725 +++++++++++++++++++++---------------------- engines/hopkins/objects.h | 17 +- engines/hopkins/saveload.cpp | 12 +- engines/hopkins/script.cpp | 124 ++++---- engines/hopkins/talk.cpp | 22 +- 12 files changed, 576 insertions(+), 587 deletions(-) (limited to 'engines/hopkins') diff --git a/engines/hopkins/anim.cpp b/engines/hopkins/anim.cpp index d1c6f18425..a1b318c103 100644 --- a/engines/hopkins/anim.cpp +++ b/engines/hopkins/anim.cpp @@ -603,15 +603,15 @@ void AnimationManager::loadAnim(const Common::String &animName) { */ void AnimationManager::clearAnim() { for (int idx = 0; idx < 35; ++idx) { - _vm->_globals.Bqe_Anim[idx].data = _vm->_globals.freeMemory(_vm->_globals.Bqe_Anim[idx].data); + _vm->_globals.Bqe_Anim[idx]._data = _vm->_globals.freeMemory(_vm->_globals.Bqe_Anim[idx]._data); _vm->_globals.Bqe_Anim[idx].field4 = 0; } for (int idx = 0; idx < 8; ++idx) { - _vm->_globals.Bank[idx].data = _vm->_globals.freeMemory(_vm->_globals.Bank[idx].data); + _vm->_globals.Bank[idx]._data = _vm->_globals.freeMemory(_vm->_globals.Bank[idx]._data); _vm->_globals.Bank[idx].field4 = 0; - _vm->_globals.Bank[idx].filename1 = ""; - _vm->_globals.Bank[idx].fileHeader = 0; + _vm->_globals.Bank[idx]._filename = ""; + _vm->_globals.Bank[idx]._fileHeader = 0; _vm->_globals.Bank[idx].field1C = 0; } } @@ -629,20 +629,19 @@ int AnimationManager::loadSpriteBank(int idx, const Common::String &filename) { _vm->_fileManager.constructFilename(_vm->_globals.HOPANIM, filename); _vm->_globals.Bank[idx].field1C = _vm->_fileManager.fileSize(_vm->_globals.NFICHIER); _vm->_globals.Bank[idx].field4 = 1; - _vm->_globals.Bank[idx].filename1 = filename; - _vm->_globals.Bank[idx].filename2 = _vm->_globals.REP_SPR; + _vm->_globals.Bank[idx]._filename = filename; v3 = _vm->_fileManager.loadFile(_vm->_globals.NFICHIER); v4 = v3; - _vm->_globals.Bank[idx].fileHeader = 0; + _vm->_globals.Bank[idx]._fileHeader = 0; if (*(v3 + 1) == 'L' && *(v3 + 2) == 'E') - _vm->_globals.Bank[idx].fileHeader = 1; + _vm->_globals.Bank[idx]._fileHeader = 1; if (*(v3 + 1) == 'O' && *(v3 + 2) == 'R') - _vm->_globals.Bank[idx].fileHeader = 2; + _vm->_globals.Bank[idx]._fileHeader = 2; - if (_vm->_globals.Bank[idx].fileHeader) { - _vm->_globals.Bank[idx].data = v3; + if (_vm->_globals.Bank[idx]._fileHeader) { + _vm->_globals.Bank[idx]._data = v3; bool loopCond = false; int v8 = 0; @@ -664,7 +663,7 @@ int AnimationManager::loadSpriteBank(int idx, const Common::String &filename) { if (v8 <= 249) { _vm->_globals.Bank[idx].field1A = v8; - Common::String ofsFilename = _vm->_globals.Bank[idx].filename1; + Common::String ofsFilename = _vm->_globals.Bank[idx]._filename; char ch; do { ch = ofsFilename.lastChar(); @@ -686,9 +685,9 @@ int AnimationManager::loadSpriteBank(int idx, const Common::String &filename) { int y2 = (int16)READ_LE_UINT16(v13 + 6); v13 += 8; - _vm->_objectsManager.set_offsetxy(_vm->_globals.Bank[idx].data, objIdx, x1, y1, 0); - if (_vm->_globals.Bank[idx].fileHeader == 2) - _vm->_objectsManager.set_offsetxy(_vm->_globals.Bank[idx].data, objIdx, x2, y2, 1); + _vm->_objectsManager.set_offsetxy(_vm->_globals.Bank[idx]._data, objIdx, x1, y1, 0); + if (_vm->_globals.Bank[idx]._fileHeader == 2) + _vm->_objectsManager.set_offsetxy(_vm->_globals.Bank[idx]._data, objIdx, x2, y2, 1); } } @@ -753,18 +752,18 @@ void AnimationManager::searchAnim(const byte *data, int animIndex, int count) { v8 = 1; if (count < v6) { _vm->_globals.Bqe_Anim[animIndex].field4 = 0; - _vm->_globals.Bqe_Anim[v19].data = g_PTRNUL; + _vm->_globals.Bqe_Anim[v19]._data = g_PTRNUL; return; } ++v6; ++v7; ++v5; } while (v8 != 1); - _vm->_globals.Bqe_Anim[v19].data = _vm->_globals.allocMemory(v7 + 50); + _vm->_globals.Bqe_Anim[v19]._data = _vm->_globals.allocMemory(v7 + 50); _vm->_globals.Bqe_Anim[animIndex].field4 = 1; - memcpy(_vm->_globals.Bqe_Anim[v19].data, v21 + data + 5, 0x14u); + memcpy(_vm->_globals.Bqe_Anim[v19]._data, v21 + data + 5, 0x14u); - byte *dataP = _vm->_globals.Bqe_Anim[v19].data; + byte *dataP = _vm->_globals.Bqe_Anim[v19]._data; v9 = dataP + 20; v23 = v21 + data + 25; v10 = READ_LE_UINT16(v21 + data + 25); diff --git a/engines/hopkins/computer.cpp b/engines/hopkins/computer.cpp index 467b21352b..165f4c3b3b 100644 --- a/engines/hopkins/computer.cpp +++ b/engines/hopkins/computer.cpp @@ -800,8 +800,8 @@ void ComputerManager::playBreakout() { // Set up the racket and ball _vm->_eventsManager.mouseOff(); _ballPosition = Common::Point(RAQX + 14, 187); - _vm->_objectsManager.SETYSPR(1, 187); - _vm->_objectsManager.SETXSPR(1, _ballPosition.x); + _vm->_objectsManager.setSpriteY(1, 187); + _vm->_objectsManager.setSpriteX(1, _ballPosition.x); _vm->_graphicsManager.RESET_SEGMENT_VESA(); _vm->_eventsManager.VBL(); _vm->_graphicsManager.FADE_IN_CASSE(); @@ -813,9 +813,9 @@ void ComputerManager::playBreakout() { RAQX = 5; if (RAQX > 282) RAQX = 282; - _vm->_objectsManager.SETXSPR(0, RAQX); - _vm->_objectsManager.SETXSPR(1, RAQX + 14); - _vm->_objectsManager.SETYSPR(1, 187); + _vm->_objectsManager.setSpriteX(0, RAQX); + _vm->_objectsManager.setSpriteX(1, RAQX + 14); + _vm->_objectsManager.setSpriteY(1, 187); _vm->_eventsManager.VBL(); } while (!_vm->shouldQuit() && _vm->_eventsManager.getMouseButton() != 1); @@ -833,7 +833,7 @@ void ComputerManager::playBreakout() { RAQX = 5; if (RAQX > 282) RAQX = 282; - _vm->_objectsManager.SETXSPR(0, RAQX); + _vm->_objectsManager.setSpriteX(0, RAQX); v1 = moveBall(); _vm->_eventsManager.VBL(); } while (!_vm->shouldQuit() && !v1); @@ -1211,8 +1211,8 @@ int ComputerManager::moveBall() { if (_ballPosition.y > 194) v4 = 1; checkBallCollisions(); - _vm->_objectsManager.SETXSPR(1, _ballPosition.x); - _vm->_objectsManager.SETYSPR(1, _ballPosition.y); + _vm->_objectsManager.setSpriteX(1, _ballPosition.x); + _vm->_objectsManager.setSpriteY(1, _ballPosition.y); if (!_breakoutBrickNbr) v4 = 2; return v4; diff --git a/engines/hopkins/events.cpp b/engines/hopkins/events.cpp index 4667219af6..ba43e182ee 100644 --- a/engines/hopkins/events.cpp +++ b/engines/hopkins/events.cpp @@ -449,8 +449,8 @@ LABEL_65: if (_vm->_globals.NBBLOC) { int v10 = _vm->_globals.NBBLOC + 1; for (int i = 1; i != v10; i++) { - if (_vm->_globals.BLOC[i].field0 == 1) - _vm->_globals.BLOC[i].field0 = 0; + if (_vm->_globals.BLOC[i]._activeFl) + _vm->_globals.BLOC[i]._activeFl = false; } } _vm->_globals.NBBLOC = 0; diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp index 56e09260f2..82da133636 100644 --- a/engines/hopkins/globals.cpp +++ b/engines/hopkins/globals.cpp @@ -371,8 +371,8 @@ void Globals::clearAll() { _curObjectIndex = 0; for (int idx = 0; idx < 105; ++idx) { - ZONEP[idx].destX = 0; - ZONEP[idx].destY = 0; + ZONEP[idx]._destX = 0; + ZONEP[idx]._destY = 0; ZONEP[idx].field4 = 0; } @@ -442,43 +442,42 @@ void Globals::HOPKINS_DATA() { void Globals::INIT_ANIM() { for (int idx = 0; idx < 35; ++idx) { - Bqe_Anim[idx].data = g_PTRNUL; + Bqe_Anim[idx]._data = g_PTRNUL; Bqe_Anim[idx].field4 = 0; } for (int idx = 0; idx < 8; ++idx) { - Bank[idx].data = g_PTRNUL; + Bank[idx]._data = g_PTRNUL; Bank[idx].field4 = 0; - Bank[idx].filename1 = ""; - Bank[idx].fileHeader = 0; + Bank[idx]._filename = ""; + Bank[idx]._fileHeader = 0; Bank[idx].field1C = 0; - Bank[idx].filename2 = ""; } } void Globals::INIT_VBOB() { for (int idx = 0; idx < 30; ++idx) { VBob[idx].field4 = 0; - VBob[idx].xp = 0; - VBob[idx].yp = 0; - VBob[idx].frameIndex = 0; + VBob[idx]._xp = 0; + VBob[idx]._yp = 0; + VBob[idx]._frameIndex = 0; VBob[idx].fieldC = 0; - VBob[idx].surface = g_PTRNUL; + VBob[idx]._surface = g_PTRNUL; VBob[idx].spriteData = g_PTRNUL; - VBob[idx].oldSpriteData = g_PTRNUL; + VBob[idx]._oldSpriteData = g_PTRNUL; } } void Globals::CLEAR_VBOB() { for (int idx = 0; idx < 30; ++idx) { VBob[idx].field4 = 0; - VBob[idx].xp = 0; - VBob[idx].yp = 0; - VBob[idx].frameIndex = 0; + VBob[idx]._xp = 0; + VBob[idx]._yp = 0; + VBob[idx]._frameIndex = 0; VBob[idx].fieldC = 0; - VBob[idx].surface = freeMemory(VBob[idx].surface); + VBob[idx]._surface = freeMemory(VBob[idx]._surface); VBob[idx].spriteData = g_PTRNUL; - VBob[idx].oldSpriteData = g_PTRNUL; + VBob[idx]._oldSpriteData = g_PTRNUL; } } diff --git a/engines/hopkins/globals.h b/engines/hopkins/globals.h index 4dc0034fc3..8aa49af756 100644 --- a/engines/hopkins/globals.h +++ b/engines/hopkins/globals.h @@ -30,8 +30,8 @@ namespace Hopkins { struct ZonePItem { - int destX; - int destY; + int _destX; + int _destY; int field4; int field6; int field7; @@ -60,49 +60,48 @@ struct CarreZoneItem { }; struct BqeAnimItem { - byte *data; + byte *_data; int field4; }; struct BankItem { - byte *data; + byte *_data; int8 field4; - Common::String filename1; - int fileHeader; + Common::String _filename; + int _fileHeader; int field1A; uint32 field1C; - Common::String filename2; }; struct ListeItem { int field0; int field2; int field4; - int width; - int height; + int _width; + int _height; int fieldA; }; struct Liste2Item { - int field0; - int xp; - int yp; - int width; - int height; + bool _visibleFl; + int _xp; + int _yp; + int _width; + int _height; }; struct BobItem { int field0; - byte *spriteData; - int xp; - int yp; - int frameIndex; + byte *_spriteData; + int _xp; + int _yp; + int _frameIndex; int fieldE; int field10; int field12; int field14; int field16; - byte *animData; + byte *_animData; int field1C; int field1E; int field20; @@ -116,14 +115,14 @@ struct BobItem { int field34; int field36; int field38; - bool isSprite; - bool isActive; - int oldX; - int oldY; - int oldWidth; - int oldHeight; - int oldX2; - int oldY2; + bool _isSpriteFl; + bool _activeFl; + int _oldX; + int _oldY; + int _oldWidth; + int _oldHeight; + int _oldX2; + int _oldY2; int field4A; }; @@ -135,16 +134,16 @@ struct BlAnimItem { struct VBobItem { byte *spriteData; int field4; - int xp; - int yp; - int frameIndex; + int _xp; + int _yp; + int _frameIndex; int fieldC; int fieldE; - byte *surface; - int oldX; - int oldY; - int oldFrameIndex; - byte *oldSpriteData; + byte *_surface; + int _oldX; + int _oldY; + int _oldFrameIndex; + byte *_oldSpriteData; }; struct ObjetWItem { @@ -159,11 +158,11 @@ struct ObjetWItem { }; struct BlocItem { - uint16 field0; - int x1; - int y1; - int x2; - int y2; + uint16 _activeFl; + int _x1; + int _y1; + int _x2; + int _y2; }; /** @@ -289,11 +288,11 @@ enum PlayerCharacter { CHARACTER_HOPKINS = 0, CHARACTER_HOPKINS_CLONE = 1, CHARA // TODO: Sauvegrade1 fields should really be mapped into data array struct Sauvegarde { - byte data[0x802]; - CharacterLocation cloneHopkins; - CharacterLocation realHopkins; - CharacterLocation samantha; - int16 inventory[35]; // Originally at offset 1300 of data array + byte data[2050]; + CharacterLocation _cloneHopkins; + CharacterLocation _realHopkins; + CharacterLocation _samantha; + int16 _inventory[35]; // Originally at offset 1300 of data array }; struct CreditItem { @@ -358,7 +357,6 @@ public: Common::String FICH_ZONE; Common::String FICH_TEXTE; Common::String NFICHIER; - Common::String REP_SPR; int SOUNDVOL; int MUSICVOL; int VOICEVOL; diff --git a/engines/hopkins/graphics.cpp b/engines/hopkins/graphics.cpp index 27a39059cb..cb11b4ddb1 100644 --- a/engines/hopkins/graphics.cpp +++ b/engines/hopkins/graphics.cpp @@ -1230,7 +1230,7 @@ void GraphicsManager::VISU_ALL() { void GraphicsManager::RESET_SEGMENT_VESA() { if (_vm->_globals.NBBLOC > 0) { for (int idx = 0; idx != _vm->_globals.NBBLOC; idx++) - _vm->_globals.BLOC[idx].field0 = 0; + _vm->_globals.BLOC[idx]._activeFl = false; _vm->_globals.NBBLOC = 0; } @@ -1260,9 +1260,8 @@ void GraphicsManager::Ajoute_Segment_Vesa(int x1, int y1, int x2, int y2) { do { BlocItem &bloc = _vm->_globals.BLOC[blocIndex]; - if (bloc.field0 == 1 - && tempX >= bloc.x1 && x2 <= bloc.x2 - && y1 >= bloc.y1 && y2 <= bloc.y2) + if (bloc._activeFl && tempX >= bloc._x1 && x2 <= bloc._x2 + && y1 >= bloc._y1 && y2 <= bloc._y2) addFlag = false; ++blocIndex; blocCount = blocIndex; @@ -1273,11 +1272,11 @@ void GraphicsManager::Ajoute_Segment_Vesa(int x1, int y1, int x2, int y2) { assert(_vm->_globals.NBBLOC < 250); BlocItem &bloc = _vm->_globals.BLOC[++_vm->_globals.NBBLOC]; - bloc.field0 = 1; - bloc.x1 = tempX; - bloc.x2 = x2; - bloc.y1 = y1; - bloc.y2 = y2; + bloc._activeFl = true; + bloc._x1 = tempX; + bloc._x2 = x2; + bloc._y1 = y1; + bloc._y2 = y2; } } @@ -1292,34 +1291,34 @@ void GraphicsManager::Affiche_Segment_Vesa() { for (int idx = 1; idx <= _vm->_globals.NBBLOC; ++idx) { BlocItem &bloc = _vm->_globals.BLOC[idx]; Common::Rect &dstRect = dstrect[idx - 1]; - if (bloc.field0 != 1) + if (!bloc._activeFl) continue; if (_vm->_eventsManager._breakoutFl) { - Copy_Vga16(VESA_BUFFER, bloc.x1, bloc.y1, bloc.x2 - bloc.x1, bloc.y2 - bloc.y1, bloc.x1, bloc.y1); - dstRect.left = bloc.x1 * 2; - dstRect.top = bloc.y1 * 2 + 30; - dstRect.setWidth((bloc.x2 - bloc.x1) * 2); - dstRect.setHeight((bloc.y2 - bloc.y1) * 2); - } else if (bloc.x2 > _vm->_eventsManager._startPos.x && bloc.x1 < (_vm->_eventsManager._startPos.x + SCREEN_WIDTH)) { - if (bloc.x1 < _vm->_eventsManager._startPos.x) - bloc.x1 = _vm->_eventsManager._startPos.x; - if (bloc.x2 > (_vm->_eventsManager._startPos.x + SCREEN_WIDTH)) - bloc.x2 = _vm->_eventsManager._startPos.x + SCREEN_WIDTH; + Copy_Vga16(VESA_BUFFER, bloc._x1, bloc._y1, bloc._x2 - bloc._x1, bloc._y2 - bloc._y1, bloc._x1, bloc._y1); + dstRect.left = bloc._x1 * 2; + dstRect.top = bloc._y1 * 2 + 30; + dstRect.setWidth((bloc._x2 - bloc._x1) * 2); + dstRect.setHeight((bloc._y2 - bloc._y1) * 2); + } else if (bloc._x2 > _vm->_eventsManager._startPos.x && bloc._x1 < (_vm->_eventsManager._startPos.x + SCREEN_WIDTH)) { + if (bloc._x1 < _vm->_eventsManager._startPos.x) + bloc._x1 = _vm->_eventsManager._startPos.x; + if (bloc._x2 > (_vm->_eventsManager._startPos.x + SCREEN_WIDTH)) + bloc._x2 = _vm->_eventsManager._startPos.x + SCREEN_WIDTH; // WORKAROUND: Original didn't lock the screen for access DD_Lock(); - m_scroll16(VESA_BUFFER, bloc.x1, bloc.y1, bloc.x2 - bloc.x1, bloc.y2 - bloc.y1, bloc.x1 - _vm->_eventsManager._startPos.x, bloc.y1); + m_scroll16(VESA_BUFFER, bloc._x1, bloc._y1, bloc._x2 - bloc._x1, bloc._y2 - bloc._y1, bloc._x1 - _vm->_eventsManager._startPos.x, bloc._y1); - dstRect.left = bloc.x1 - _vm->_eventsManager._startPos.x; - dstRect.top = bloc.y1; - dstRect.setWidth(bloc.x2 - bloc.x1); - dstRect.setHeight(bloc.y2 - bloc.y1); + dstRect.left = bloc._x1 - _vm->_eventsManager._startPos.x; + dstRect.top = bloc._y1; + dstRect.setWidth(bloc._x2 - bloc._x1); + dstRect.setHeight(bloc._y2 - bloc._y1); DD_Unlock(); } - _vm->_globals.BLOC[idx].field0 = 0; + _vm->_globals.BLOC[idx]._activeFl = false; } _vm->_globals.NBBLOC = 0; diff --git a/engines/hopkins/hopkins.cpp b/engines/hopkins/hopkins.cpp index 9e70258a09..2780b68113 100644 --- a/engines/hopkins/hopkins.cpp +++ b/engines/hopkins/hopkins.cpp @@ -4537,7 +4537,7 @@ void HopkinsEngine::BTOCEAN() { _objectsManager.SPACTION(_globals.PERSO, "9,10,11,12,13,14,15,16,17,18,-1,", 0, 0, 6, 0); _globals.OCEAN_SENS = 7; _globals.SORTIE = 1; - int oldX = _objectsManager.XSPR(0); + int oldX = _objectsManager.getSpriteX(0); for (;;) { if (_globals.vitesse == 1) oldX -= 2; @@ -4545,7 +4545,7 @@ void HopkinsEngine::BTOCEAN() { oldX -= 4; else if (_globals.vitesse == 3) oldX -= 6; - _objectsManager.SETXSPR(0, oldX); + _objectsManager.setSpriteX(0, oldX); OCEAN_HOME(); _eventsManager.VBL(); if (_eventsManager.getMouseButton() == 1) { @@ -4569,7 +4569,7 @@ LABEL_22: _objectsManager.SPACTION(_globals.PERSO, "9,8,7,6,5,4,3,2,1,0,-1,", 0, 0, 6, 0); _globals.OCEAN_SENS = 3; _globals.SORTIE = 2; - int oldX = _objectsManager.XSPR(0); + int oldX = _objectsManager.getSpriteX(0); for (;;) { if (_globals.vitesse == 1) oldX += 2; @@ -4577,7 +4577,7 @@ LABEL_22: oldX += 4; else if (_globals.vitesse == 3) oldX += 6; - _objectsManager.SETXSPR(0, oldX); + _objectsManager.setSpriteX(0, oldX); OCEAN_HOME(); _eventsManager.VBL(); if (_eventsManager.getMouseButton() == 1) { @@ -4594,7 +4594,7 @@ LABEL_22: LABEL_41: if (_objectsManager.NUMZONE == 3) { if (_globals.OCEAN_SENS == 3) { - int oldX = _objectsManager.XSPR(0); + int oldX = _objectsManager.getSpriteX(0); do { if (_globals.vitesse == 1) oldX += 2; @@ -4602,7 +4602,7 @@ LABEL_41: oldX += 4; else if (_globals.vitesse == 3) oldX += 6; - _objectsManager.SETXSPR(0, oldX); + _objectsManager.setSpriteX(0, oldX); OCEAN_HOME(); _eventsManager.VBL(); if (_eventsManager.getMouseButton() == 1) { @@ -4619,7 +4619,7 @@ LABEL_41: } LABEL_57: if (_globals.OCEAN_SENS == 7) { - int oldX = _objectsManager.XSPR(0); + int oldX = _objectsManager.getSpriteX(0); do { if (_globals.vitesse == 1) oldX -= 2; @@ -4627,7 +4627,7 @@ LABEL_57: oldX -= 4; else if (_globals.vitesse == 3) oldX -= 6; - _objectsManager.SETXSPR(0, oldX); + _objectsManager.setSpriteX(0, oldX); OCEAN_HOME(); _eventsManager.VBL(); if (_eventsManager.getMouseButton() == 1) { @@ -4650,7 +4650,7 @@ LABEL_72: } if (_objectsManager.NUMZONE == 4) { if (_globals.OCEAN_SENS == 3) { - int oldX = _objectsManager.XSPR(0); + int oldX = _objectsManager.getSpriteX(0); do { if (_globals.vitesse == 1) oldX += 2; @@ -4658,7 +4658,7 @@ LABEL_72: oldX += 4; else if (_globals.vitesse == 3) oldX += 6; - _objectsManager.SETXSPR(0, oldX); + _objectsManager.setSpriteX(0, oldX); OCEAN_HOME(); _eventsManager.VBL(); if (_eventsManager.getMouseButton() == 1) { @@ -4675,7 +4675,7 @@ LABEL_72: } LABEL_91: if (_globals.OCEAN_SENS == 7) { - int oldX = _objectsManager.XSPR(0); + int oldX = _objectsManager.getSpriteX(0); for (;;) { if (_globals.vitesse == 1) oldX -= 2; @@ -4683,7 +4683,7 @@ LABEL_91: oldX -= 4; else if (_globals.vitesse == 3) oldX -= 6; - _objectsManager.SETXSPR(0, oldX); + _objectsManager.setSpriteX(0, oldX); OCEAN_HOME(); _eventsManager.VBL(); if (_eventsManager.getMouseButton() == 1) { @@ -4710,13 +4710,13 @@ LABEL_91: void HopkinsEngine::OCEAN_HOME() { if (_globals.OCEAN_SENS == 3) - _objectsManager.SETANISPR(0, 0); + _objectsManager.setSpriteIndex(0, 0); if (_globals.OCEAN_SENS == 7) - _objectsManager.SETANISPR(0, 18); + _objectsManager.setSpriteIndex(0, 18); if (_globals.OCEAN_SENS == 1) - _objectsManager.SETANISPR(0, 27); + _objectsManager.setSpriteIndex(0, 27); if (_globals.OCEAN_SENS == 5) - _objectsManager.SETANISPR(0, 9); + _objectsManager.setSpriteIndex(0, 9); } void HopkinsEngine::OCEAN(int16 a1, Common::String a2, Common::String a3, int16 a4, int16 exit1, int16 exit2, int16 exit3, int16 exit4, int16 a9) { diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp index 2750b97489..6e3aa4f2e5 100644 --- a/engines/hopkins/objects.cpp +++ b/engines/hopkins/objects.cpp @@ -180,13 +180,16 @@ void ObjectsManager::removeObject(int objIndex) { } +/** + * Set Offset XY + */ void ObjectsManager::set_offsetxy(byte *data, int idx, int xp, int yp, bool isSize) { byte *startP = data + 3; for (int i = idx; i; --i) startP += READ_LE_UINT32(startP) + 16; byte *rectP = startP + 8; - if (isSize == 1) { + if (isSize) { // Set size byte *pointP = rectP + 4; WRITE_LE_UINT16(pointP, xp); @@ -259,11 +262,9 @@ int ObjectsManager::sprite_alone(const byte *objectData, byte *sprite, int objIn return result; } -byte *ObjectsManager::DEL_FICHIER_OBJ() { +void ObjectsManager::DEL_FICHIER_OBJ() { _vm->_globals.NUM_FICHIER_OBJ = 0; _vm->_globals.ADR_FICHIER_OBJ = _vm->_globals.freeMemory(_vm->_globals.ADR_FICHIER_OBJ); - - return g_PTRNUL; } /** @@ -361,7 +362,7 @@ void ObjectsManager::displaySprite() { } if (!PERSO_ON) { - for (int idx = 0; idx < 5; ++idx) { + for (int idx = 0; idx < MAX_SPRITE; ++idx) { if (_vm->_globals.Liste[idx].field0) { v6 = _vm->_globals.Liste[idx].field2; x1_2 = v6 - 2; @@ -379,7 +380,7 @@ void ObjectsManager::displaySprite() { v9 = _vm->_graphicsManager.min_y; _vm->_graphicsManager.SCOPY(_vm->_graphicsManager.VESA_SCREEN, x1_2, y1_2, - _vm->_globals.Liste[idx].width + 4, _vm->_globals.Liste[idx].height + 4, + _vm->_globals.Liste[idx]._width + 4, _vm->_globals.Liste[idx]._height + 4, _vm->_graphicsManager.VESA_BUFFER, v8, v9); _vm->_globals.Liste[idx].field0 = 0; } @@ -391,7 +392,7 @@ void ObjectsManager::displaySprite() { if (!PERSO_ON) { // Handle drawing characters on the screen - for (int idx = 0; idx < 5; ++idx) { + for (int idx = 0; idx < MAX_SPRITE; ++idx) { _vm->_globals.Liste[idx].field0 = 0; if (_sprite[idx].field0 == 1) { CALCUL_SPRITE(idx); @@ -491,7 +492,7 @@ void ObjectsManager::displaySprite() { } if (SL_FLAG == true) { - _vm->_graphicsManager.Restore_Mem(_vm->_graphicsManager.VESA_BUFFER, SL_SPR, _vm->_eventsManager._startPos.x + 183, 60, 0x112u, 353); + _vm->_graphicsManager.Restore_Mem(_vm->_graphicsManager.VESA_BUFFER, SL_SPR, _vm->_eventsManager._startPos.x + 183, 60, 274, 353); if (SL_X && SL_Y) _vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager.VESA_BUFFER, SL_SPR2, SL_X + _vm->_eventsManager._startPos.x + 300, SL_Y + 300, 0); @@ -571,16 +572,16 @@ void ObjectsManager::BOB_ZERO(int idx) { Liste2Item &item = _vm->_globals.Liste2[idx]; bob.field0 = 0; - bob.spriteData = g_PTRNUL; - bob.xp = 0; - bob.yp = 0; - bob.frameIndex = 0; + bob._spriteData = g_PTRNUL; + bob._xp = 0; + bob._yp = 0; + bob._frameIndex = 0; bob.fieldE = 0; bob.field10 = 0; bob.field12 = 0; bob.field14 = 0; bob.field16 = 0; - bob.animData = g_PTRNUL; + bob._animData = g_PTRNUL; bob.field1C = 0; bob.field1E = 0; bob.field20 = 0; @@ -594,66 +595,65 @@ void ObjectsManager::BOB_ZERO(int idx) { bob.field34 = 0; bob.field36 = 0; bob.field38 = 0; - bob.oldX2 = 0; + bob._oldX2 = 0; - item.field0 = 0; - item.xp = 0; - item.yp = 0; - item.width = 0; - item.height = 0; + item._visibleFl = false; + item._xp = 0; + item._yp = 0; + item._width = 0; + item._height = 0; } void ObjectsManager::DEF_BOB(int idx) { - if (_vm->_globals.Bob[idx].isActive) { - int xp = _vm->_globals.Bob[idx].oldX; - int yp = _vm->_globals.Bob[idx].oldY; + if (_vm->_globals.Bob[idx]._activeFl) { + int xp = _vm->_globals.Bob[idx]._oldX; + int yp = _vm->_globals.Bob[idx]._oldY; - if (_vm->_globals.Bob[idx].isSprite) - _vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager.VESA_BUFFER, _vm->_globals.Bob[idx].spriteData, - xp + 300, yp + 300, _vm->_globals.Bob[idx].frameIndex); + if (_vm->_globals.Bob[idx]._isSpriteFl) + _vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager.VESA_BUFFER, _vm->_globals.Bob[idx]._spriteData, + xp + 300, yp + 300, _vm->_globals.Bob[idx]._frameIndex); else _vm->_graphicsManager.Affiche_Perfect(_vm->_graphicsManager.VESA_BUFFER, - _vm->_globals.Bob[idx].spriteData, xp + 300, yp + 300, _vm->_globals.Bob[idx].frameIndex, - _vm->_globals.Bob[idx].field4A, _vm->_globals.Bob[idx].oldY2, + _vm->_globals.Bob[idx]._spriteData, xp + 300, yp + 300, _vm->_globals.Bob[idx]._frameIndex, + _vm->_globals.Bob[idx].field4A, _vm->_globals.Bob[idx]._oldY2, _vm->_globals.Bob[idx].field38); - _vm->_globals.Liste2[idx].field0 = 1; - _vm->_globals.Liste2[idx].xp = xp; - _vm->_globals.Liste2[idx].yp = yp; + _vm->_globals.Liste2[idx]._visibleFl = true; + _vm->_globals.Liste2[idx]._xp = xp; + _vm->_globals.Liste2[idx]._yp = yp; - _vm->_globals.Liste2[idx].width = _vm->_globals.Bob[idx].oldWidth; - _vm->_globals.Liste2[idx].height = _vm->_globals.Bob[idx].oldHeight; + _vm->_globals.Liste2[idx]._width = _vm->_globals.Bob[idx]._oldWidth; + _vm->_globals.Liste2[idx]._height = _vm->_globals.Bob[idx]._oldHeight; - int v5 = _vm->_globals.Liste2[idx].xp; - int v6 = _vm->_graphicsManager.min_x; + int v5 = _vm->_globals.Liste2[idx]._xp; if (v5 < _vm->_graphicsManager.min_x) { - _vm->_globals.Liste2[idx].width -= _vm->_graphicsManager.min_x - v5; - _vm->_globals.Liste2[idx].xp = v6; + _vm->_globals.Liste2[idx]._width -= _vm->_graphicsManager.min_x - v5; + _vm->_globals.Liste2[idx]._xp = _vm->_graphicsManager.min_x; } - int v7 = _vm->_globals.Liste2[idx].yp; - int v8 = _vm->_graphicsManager.min_y; + int v7 = _vm->_globals.Liste2[idx]._yp; if (v7 < _vm->_graphicsManager.min_y) { - _vm->_globals.Liste2[idx].height -= _vm->_graphicsManager.min_y - v7; - _vm->_globals.Liste2[idx].yp = v8; + _vm->_globals.Liste2[idx]._height -= _vm->_graphicsManager.min_y - v7; + _vm->_globals.Liste2[idx]._yp = _vm->_graphicsManager.min_y; } - int v9 = _vm->_globals.Liste2[idx].xp; - if (_vm->_globals.Liste2[idx].width + v9 > _vm->_graphicsManager.max_x) - _vm->_globals.Liste2[idx].width = _vm->_graphicsManager.max_x - v9; - int v10 = _vm->_globals.Liste2[idx].yp; - if (_vm->_globals.Liste2[idx].height + v10 > _vm->_graphicsManager.max_y) - _vm->_globals.Liste2[idx].height = _vm->_graphicsManager.max_y - v10; + int v9 = _vm->_globals.Liste2[idx]._xp; + if (_vm->_globals.Liste2[idx]._width + v9 > _vm->_graphicsManager.max_x) + _vm->_globals.Liste2[idx]._width = _vm->_graphicsManager.max_x - v9; - if (_vm->_globals.Liste2[idx].width <= 0 || _vm->_globals.Liste2[idx].height <= 0) - _vm->_globals.Liste2[idx].field0 = 0; + int v10 = _vm->_globals.Liste2[idx]._yp; + if (_vm->_globals.Liste2[idx]._height + v10 > _vm->_graphicsManager.max_y) + _vm->_globals.Liste2[idx]._height = _vm->_graphicsManager.max_y - v10; - if (_vm->_globals.Liste2[idx].field0 == 1) + if (_vm->_globals.Liste2[idx]._width <= 0 || _vm->_globals.Liste2[idx]._height <= 0) + _vm->_globals.Liste2[idx]._visibleFl = false; + + if (_vm->_globals.Liste2[idx]._visibleFl) _vm->_graphicsManager.Ajoute_Segment_Vesa( - _vm->_globals.Liste2[idx].xp, - _vm->_globals.Liste2[idx].yp, - _vm->_globals.Liste2[idx].xp + _vm->_globals.Liste2[idx].width, - _vm->_globals.Liste2[idx].yp + _vm->_globals.Liste2[idx].height); + _vm->_globals.Liste2[idx]._xp, + _vm->_globals.Liste2[idx]._yp, + _vm->_globals.Liste2[idx]._xp + _vm->_globals.Liste2[idx]._width, + _vm->_globals.Liste2[idx]._yp + _vm->_globals.Liste2[idx]._height); } } @@ -663,7 +663,7 @@ void ObjectsManager::BOB_VISU(int idx) { if (!_vm->_globals.Bob[idx].field0) { BOB_ZERO(idx); - const byte *data = _vm->_globals.Bqe_Anim[idx].data; + const byte *data = _vm->_globals.Bqe_Anim[idx]._data; int v1 = (int16)READ_LE_UINT16(data); int16 v9 = (int16)READ_LE_UINT16(data + 2); int16 v8 = (int16)READ_LE_UINT16(data + 4); @@ -677,17 +677,17 @@ void ObjectsManager::BOB_VISU(int idx) { v6 = -1; if ((int16)READ_LE_UINT16(data + 24)) { - _vm->_globals.Bob[idx].isSprite = false; + _vm->_globals.Bob[idx]._isSpriteFl = false; - if (_vm->_globals.Bank[v1].fileHeader == 1) { - _vm->_globals.Bob[idx].isSprite = true; + if (_vm->_globals.Bank[v1]._fileHeader == 1) { + _vm->_globals.Bob[idx]._isSpriteFl = true; _vm->_globals.Bob[idx].field36 = 0; _vm->_globals.Bob[idx].field38 = 0; } - _vm->_globals.Bob[idx].animData = _vm->_globals.Bqe_Anim[idx].data; + _vm->_globals.Bob[idx]._animData = _vm->_globals.Bqe_Anim[idx]._data; _vm->_globals.Bob[idx].field0 = 10; - _vm->_globals.Bob[idx].spriteData = _vm->_globals.Bank[v1].data; + _vm->_globals.Bob[idx]._spriteData = _vm->_globals.Bank[v1]._data; _vm->_globals.Bob[idx].field1E = v9; _vm->_globals.Bob[idx].field20 = v6; @@ -707,11 +707,11 @@ void ObjectsManager::BOB_OFF(int idx) { } void ObjectsManager::BOB_OFFSET(int idx, int v) { - _vm->_globals.Bob[idx].oldX2 = v; + _vm->_globals.Bob[idx]._oldX2 = v; } void ObjectsManager::BOB_ADJUST(int idx, int v) { - _vm->_globals.Bob[idx].oldX2 = v; + _vm->_globals.Bob[idx]._oldX2 = v; } void ObjectsManager::BOB_OFFSETY(int idx, int v) { @@ -723,10 +723,10 @@ void ObjectsManager::SCBOB(int idx) { return; for (int v8 = 0; v8 <= 20; v8++) { - if ((_vm->_globals.Bob[v8].field0) && (!_vm->_globals.Bob[v8].field16) && (!_vm->_globals.Bob[v8].field34) && (_vm->_globals.Bob[v8].frameIndex != 250)) { - int v2 = _vm->_globals.Bob[v8].oldWidth; - int v9 = _vm->_globals.Bob[v8].oldX + _vm->_globals.Bob[v8].oldWidth; - int v6 = _vm->_globals.Bob[v8].oldY + _vm->_globals.Bob[v8].oldHeight; + if ((_vm->_globals.Bob[v8].field0) && (!_vm->_globals.Bob[v8].field16) && (!_vm->_globals.Bob[v8].field34) && (_vm->_globals.Bob[v8]._frameIndex != 250)) { + int v2 = _vm->_globals.Bob[v8]._oldWidth; + int v9 = _vm->_globals.Bob[v8]._oldX + _vm->_globals.Bob[v8]._oldWidth; + int v6 = _vm->_globals.Bob[v8]._oldY + _vm->_globals.Bob[v8]._oldHeight; int v3 =_vm->_globals.Cache[idx].field0; int v4 =_vm->_globals.Cache[idx].field4; int v7 =_vm->_globals.Cache[idx].field6 + v3; @@ -764,21 +764,21 @@ void ObjectsManager::SCBOB(int idx) { } void ObjectsManager::CALCUL_BOB(int idx) { - _vm->_globals.Bob[idx].isActive = false; - if (_vm->_globals.Bob[idx].isSprite) { + _vm->_globals.Bob[idx]._activeFl = false; + if (_vm->_globals.Bob[idx]._isSpriteFl) { _vm->_globals.Bob[idx].field38 = 0; _vm->_globals.Bob[idx].field36 = 0; } - int result = _vm->_globals.Bob[idx].frameIndex; + int result = _vm->_globals.Bob[idx]._frameIndex; if (result != 250) { int v5, v15, v22; if (_vm->_globals.Bob[idx].field38) { - v22 = v15 = get_offsetx(_vm->_globals.Bob[idx].spriteData, result, 1); - v5 = get_offsety(_vm->_globals.Bob[idx].spriteData, _vm->_globals.Bob[idx].frameIndex, 1); + v22 = v15 = get_offsetx(_vm->_globals.Bob[idx]._spriteData, result, 1); + v5 = get_offsety(_vm->_globals.Bob[idx]._spriteData, _vm->_globals.Bob[idx]._frameIndex, 1); } else { - v22 = v15 = get_offsetx(_vm->_globals.Bob[idx].spriteData, result, 0); - v5 = get_offsety(_vm->_globals.Bob[idx].spriteData, _vm->_globals.Bob[idx].frameIndex, 0); + v22 = v15 = get_offsetx(_vm->_globals.Bob[idx]._spriteData, result, 0); + v5 = get_offsety(_vm->_globals.Bob[idx]._spriteData, _vm->_globals.Bob[idx]._frameIndex, 0); } int v17 = v5; @@ -831,20 +831,20 @@ void ObjectsManager::CALCUL_BOB(int idx) { } } - int v13 = _vm->_globals.Bob[idx].xp - v22; - int v14 = _vm->_globals.Bob[idx].yp - v17; - _vm->_globals.Bob[idx].isActive = true; - _vm->_globals.Bob[idx].oldX = v13; - _vm->_globals.Bob[idx].oldY = v14; - _vm->_globals.Bob[idx].oldY2 = v21; + int v13 = _vm->_globals.Bob[idx]._xp - v22; + int v14 = _vm->_globals.Bob[idx]._yp - v17; + _vm->_globals.Bob[idx]._activeFl = true; + _vm->_globals.Bob[idx]._oldX = v13; + _vm->_globals.Bob[idx]._oldY = v14; + _vm->_globals.Bob[idx]._oldY2 = v21; _vm->_globals.Bob[idx].field4A = v20; - _vm->_globals.Liste2[idx].field0 = 1; - _vm->_globals.Liste2[idx].xp = v13; - _vm->_globals.Liste2[idx].yp = v14; + _vm->_globals.Liste2[idx]._visibleFl = true; + _vm->_globals.Liste2[idx]._xp = v13; + _vm->_globals.Liste2[idx]._yp = v14; - int width = getWidth(_vm->_globals.Bob[idx].spriteData, _vm->_globals.Bob[idx].frameIndex); - int height = getHeight(_vm->_globals.Bob[idx].spriteData, _vm->_globals.Bob[idx].frameIndex); + int width = getWidth(_vm->_globals.Bob[idx]._spriteData, _vm->_globals.Bob[idx]._frameIndex); + int height = getHeight(_vm->_globals.Bob[idx]._spriteData, _vm->_globals.Bob[idx]._frameIndex); if (v21) { width = _vm->_graphicsManager.zoomIn(width, v21); @@ -855,10 +855,10 @@ void ObjectsManager::CALCUL_BOB(int idx) { width = _vm->_graphicsManager.zoomOut(width, v20); } - _vm->_globals.Liste2[idx].width = width; - _vm->_globals.Liste2[idx].height = height; - _vm->_globals.Bob[idx].oldWidth = width; - _vm->_globals.Bob[idx].oldHeight = height; + _vm->_globals.Liste2[idx]._width = width; + _vm->_globals.Liste2[idx]._height = height; + _vm->_globals.Bob[idx]._oldWidth = width; + _vm->_globals.Bob[idx]._oldHeight = height; } } @@ -871,14 +871,12 @@ void ObjectsManager::VERIFCACHE() { int v6; int v7; int v9; - int v10; int v11; for (int v8 = 0; v8 <= 19; v8++) { if (_vm->_globals.Cache[v8].fieldA > 0) { v7 = _vm->_globals.Cache[v8].fieldA; - v10 = 0; - do { + for (int v10 = 0; v10 <= 4; v10++) { if (_sprite[v10].field0 == 1) { if (_sprite[v10]._spriteIndex != 250) { v1 = _sprite[v10].field2C; @@ -919,9 +917,7 @@ void ObjectsManager::VERIFCACHE() { } } } - - ++v10; - } while (v10 <= 4); + } SCBOB(v8); if (_vm->_globals.Cache[v8].fieldA == v7) { @@ -970,29 +966,29 @@ void ObjectsManager::DEF_SPRITE(int idx) { v5 = idx; v6 = idx; - _vm->_globals.Liste[v5].width = _sprite[v6].field30; - _vm->_globals.Liste[v5].height = _sprite[v6].field32; + _vm->_globals.Liste[v5]._width = _sprite[v6].field30; + _vm->_globals.Liste[v5]._height = _sprite[v6].field32; v7 = _vm->_globals.Liste[v5].field2; v8 = _vm->_graphicsManager.min_x; if (v7 < _vm->_graphicsManager.min_x) { - _vm->_globals.Liste[v5].width -= _vm->_graphicsManager.min_x - v7; + _vm->_globals.Liste[v5]._width -= _vm->_graphicsManager.min_x - v7; _vm->_globals.Liste[v5].field2 = v8; } v9 = _vm->_globals.Liste[v5].field4; v10 = _vm->_graphicsManager.min_y; if (v9 < _vm->_graphicsManager.min_y) { - _vm->_globals.Liste[v5].height -= _vm->_graphicsManager.min_y - v9; + _vm->_globals.Liste[v5]._height -= _vm->_graphicsManager.min_y - v9; _vm->_globals.Liste[v5].field4 = v10; } v11 = _vm->_globals.Liste[v5].field2; - if (_vm->_globals.Liste[v5].width + v11 > _vm->_graphicsManager.max_x) - _vm->_globals.Liste[v5].width = _vm->_graphicsManager.max_x - v11; + if (_vm->_globals.Liste[v5]._width + v11 > _vm->_graphicsManager.max_x) + _vm->_globals.Liste[v5]._width = _vm->_graphicsManager.max_x - v11; v12 = _vm->_globals.Liste[v5].field4; - if ( _vm->_globals.Liste[v5].height + v12 > _vm->_graphicsManager.max_y) - _vm->_globals.Liste[v5].height = _vm->_graphicsManager.max_y - v12; - if ( _vm->_globals.Liste[v5].width <= 0 || _vm->_globals.Liste[v5].height <= 0) + if ( _vm->_globals.Liste[v5]._height + v12 > _vm->_graphicsManager.max_y) + _vm->_globals.Liste[v5]._height = _vm->_graphicsManager.max_y - v12; + if ( _vm->_globals.Liste[v5]._width <= 0 || _vm->_globals.Liste[v5]._height <= 0) _vm->_globals.Liste[v5].field0 = 0; v13 = idx; @@ -1000,8 +996,8 @@ void ObjectsManager::DEF_SPRITE(int idx) { _vm->_graphicsManager.Ajoute_Segment_Vesa( _vm->_globals.Liste[v13].field2, _vm->_globals.Liste[v13].field4, - _vm->_globals.Liste[v13].field2 + _vm->_globals.Liste[v13].width, - _vm->_globals.Liste[v13].field4 + _vm->_globals.Liste[v13].height); + _vm->_globals.Liste[v13].field2 + _vm->_globals.Liste[v13]._width, + _vm->_globals.Liste[v13].field4 + _vm->_globals.Liste[v13]._height); } } @@ -1190,7 +1186,7 @@ void ObjectsManager::AFF_BOB_ANIM() { v1 = _vm->_globals.Bob[idx].field20; if (v1 == -1) v1 = 50; - if (_vm->_globals.Bob[idx].animData == g_PTRNUL || _vm->_globals.Bob[idx].field16 || v1 <= 0) + if (_vm->_globals.Bob[idx]._animData == g_PTRNUL || _vm->_globals.Bob[idx].field16 || v1 <= 0) goto LABEL_38; v2 = _vm->_globals.Bob[idx].field14; @@ -1204,18 +1200,18 @@ void ObjectsManager::AFF_BOB_ANIM() { if (_vm->_globals.Bob[idx].field1C != 1) goto LABEL_38; - v20 = _vm->_globals.Bob[idx].animData + 20; + v20 = _vm->_globals.Bob[idx]._animData + 20; v24 = _vm->_globals.Bob[idx].field10; - _vm->_globals.Bob[idx].xp = (int16)READ_LE_UINT16(v20 + 2 * v24); + _vm->_globals.Bob[idx]._xp = (int16)READ_LE_UINT16(v20 + 2 * v24); if (_vm->_globals.BL_ANIM[idx].v1 == 1) - _vm->_globals.Bob[idx].xp = _vm->_globals.BL_ANIM[idx].v2; + _vm->_globals.Bob[idx]._xp = _vm->_globals.BL_ANIM[idx].v2; if ( PERSO_ON == true && idx > 20 ) - _vm->_globals.Bob[idx].xp += _vm->_eventsManager._startPos.x; + _vm->_globals.Bob[idx]._xp += _vm->_eventsManager._startPos.x; - _vm->_globals.Bob[idx].yp = (int16)READ_LE_UINT16(v20 + 2 * v24 + 2); + _vm->_globals.Bob[idx]._yp = (int16)READ_LE_UINT16(v20 + 2 * v24 + 2); _vm->_globals.Bob[idx].field12 = (int16)READ_LE_UINT16(v20 + 2 * v24 + 4); _vm->_globals.Bob[idx].field36 = (int16)READ_LE_UINT16(v20 + 2 * v24 + 6); - _vm->_globals.Bob[idx].frameIndex = *(v20 + 2 * v24 + 8); + _vm->_globals.Bob[idx]._frameIndex = *(v20 + 2 * v24 + 8); _vm->_globals.Bob[idx].field38 = *(v20 + 2 * v24 + 9); _vm->_globals.Bob[idx].field10 += 5; v5 = _vm->_globals.Bob[idx].field12; @@ -1245,18 +1241,18 @@ LABEL_38: _vm->_globals.Bob[idx].field0 = 11; } else { _vm->_globals.Bob[idx].field10 = 0; - v21 = _vm->_globals.Bob[idx].animData + 20; - _vm->_globals.Bob[idx].xp = (int16)READ_LE_UINT16(v21); + v21 = _vm->_globals.Bob[idx]._animData + 20; + _vm->_globals.Bob[idx]._xp = (int16)READ_LE_UINT16(v21); if (_vm->_globals.BL_ANIM[idx].v1 == 1) - _vm->_globals.Bob[idx].xp = _vm->_globals.BL_ANIM[idx].v2; + _vm->_globals.Bob[idx]._xp = _vm->_globals.BL_ANIM[idx].v2; if (PERSO_ON == true && idx > 20) - _vm->_globals.Bob[idx].xp += _vm->_eventsManager._startPos.x; + _vm->_globals.Bob[idx]._xp += _vm->_eventsManager._startPos.x; - _vm->_globals.Bob[idx].yp = (int16)READ_LE_UINT16(v21 + 2); + _vm->_globals.Bob[idx]._yp = (int16)READ_LE_UINT16(v21 + 2); _vm->_globals.Bob[idx].field12 = (int16)READ_LE_UINT16(v21 + 4); _vm->_globals.Bob[idx].field36 = (int16)READ_LE_UINT16(v21 + 6); - _vm->_globals.Bob[idx].frameIndex = *(v21 + 8); + _vm->_globals.Bob[idx]._frameIndex = *(v21 + 8); _vm->_globals.Bob[idx].field38 = *(v21 + 9); _vm->_globals.Bob[idx].field10 += 5; v10 = _vm->_globals.Bob[idx].field12; @@ -1297,13 +1293,13 @@ LABEL_38: if (v14 != 2) { if (v14 != 4) { - if (_vm->_globals.Liste2[v27].field0) { + if (_vm->_globals.Liste2[v27]._visibleFl) { _vm->_graphicsManager.SCOPY(_vm->_graphicsManager.VESA_SCREEN, - _vm->_globals.Liste2[v27].xp, _vm->_globals.Liste2[v27].yp, - _vm->_globals.Liste2[v27].width, _vm->_globals.Liste2[v27].height, - _vm->_graphicsManager.VESA_BUFFER, _vm->_globals.Liste2[v27].xp, - _vm->_globals.Liste2[v27].yp); - _vm->_globals.Liste2[v27].field0 = 0; + _vm->_globals.Liste2[v27]._xp, _vm->_globals.Liste2[v27]._yp, + _vm->_globals.Liste2[v27]._width, _vm->_globals.Liste2[v27]._height, + _vm->_graphicsManager.VESA_BUFFER, _vm->_globals.Liste2[v27]._xp, + _vm->_globals.Liste2[v27]._yp); + _vm->_globals.Liste2[v27]._visibleFl = false; } } } @@ -1312,13 +1308,13 @@ LABEL_38: v22 = v27; if (_vm->_globals.Bob[v22].field0 == 11) { - if (_vm->_globals.Liste2[v27].field0) { + if (_vm->_globals.Liste2[v27]._visibleFl) { _vm->_graphicsManager.SCOPY(_vm->_graphicsManager.VESA_SCREEN, - _vm->_globals.Liste2[v27].xp, _vm->_globals.Liste2[v27].yp, - _vm->_globals.Liste2[v27].width, _vm->_globals.Liste2[v27].height, + _vm->_globals.Liste2[v27]._xp, _vm->_globals.Liste2[v27]._yp, + _vm->_globals.Liste2[v27]._width, _vm->_globals.Liste2[v27]._height, _vm->_graphicsManager.VESA_BUFFER, - _vm->_globals.Liste2[v27].xp, _vm->_globals.Liste2[v27].yp); - _vm->_globals.Liste2[v27].field0 = 0; + _vm->_globals.Liste2[v27]._xp, _vm->_globals.Liste2[v27]._yp); + _vm->_globals.Liste2[v27]._visibleFl = false; } _vm->_globals.Bob[v22].field0 = 0; @@ -1330,16 +1326,16 @@ LABEL_38: do { ++v28; v18 = v28; - _vm->_globals.Bob[v18].oldY = 0; + _vm->_globals.Bob[v18]._oldY = 0; if (_vm->_globals.Bob[v18].field0 == 10 && !_vm->_globals.Bob[v18].field16 && _vm->_globals.Bob[v18].field1C == 1) { CALCUL_BOB(v28); - int v = _vm->_globals.Bob[v18].oldHeight + _vm->_globals.Bob[v18].oldY; - v19 = _vm->_globals.Bob[v18].oldX2 + v; + int v = _vm->_globals.Bob[v18]._oldHeight + _vm->_globals.Bob[v18]._oldY; + v19 = _vm->_globals.Bob[v18]._oldX2 + v; if (v19 > 450) v19 = 600; - if (_vm->_globals.Bob[v18].isActive) + if (_vm->_globals.Bob[v18]._activeFl) AvantTri(TRI_BOB, v28, v19); } } while (v28 != 35); @@ -1352,114 +1348,118 @@ void ObjectsManager::AFF_VBOB() { int idx = 0; do { if (_vm->_globals.VBob[idx].field4 == 4) { - width = getWidth(_vm->_globals.VBob[idx].spriteData, _vm->_globals.VBob[idx].frameIndex); - height = getHeight(_vm->_globals.VBob[idx].spriteData, _vm->_globals.VBob[idx].frameIndex); + width = getWidth(_vm->_globals.VBob[idx].spriteData, _vm->_globals.VBob[idx]._frameIndex); + height = getHeight(_vm->_globals.VBob[idx].spriteData, _vm->_globals.VBob[idx]._frameIndex); _vm->_graphicsManager.Restore_Mem(_vm->_graphicsManager.VESA_SCREEN, - _vm->_globals.VBob[idx].surface, _vm->_globals.VBob[idx].xp, - _vm->_globals.VBob[idx].yp, width, height); + _vm->_globals.VBob[idx]._surface, _vm->_globals.VBob[idx]._xp, + _vm->_globals.VBob[idx]._yp, width, height); _vm->_graphicsManager.Restore_Mem( - _vm->_graphicsManager.VESA_BUFFER, _vm->_globals.VBob[idx].surface, - _vm->_globals.VBob[idx].xp, _vm->_globals.VBob[idx].yp, + _vm->_graphicsManager.VESA_BUFFER, _vm->_globals.VBob[idx]._surface, + _vm->_globals.VBob[idx]._xp, _vm->_globals.VBob[idx]._yp, width, height); _vm->_graphicsManager.Ajoute_Segment_Vesa( - _vm->_globals.VBob[idx].xp, _vm->_globals.VBob[idx].yp, - _vm->_globals.VBob[idx].xp + width, height + _vm->_globals.VBob[idx].yp); + _vm->_globals.VBob[idx]._xp, _vm->_globals.VBob[idx]._yp, + _vm->_globals.VBob[idx]._xp + width, height + _vm->_globals.VBob[idx]._yp); - _vm->_globals.VBob[idx].surface = _vm->_globals.freeMemory(_vm->_globals.VBob[idx].surface); + _vm->_globals.VBob[idx]._surface = _vm->_globals.freeMemory(_vm->_globals.VBob[idx]._surface); _vm->_globals.VBob[idx].field4 = 0; _vm->_globals.VBob[idx].spriteData = g_PTRNUL; - _vm->_globals.VBob[idx].xp = 0; - _vm->_globals.VBob[idx].yp = 0; - _vm->_globals.VBob[idx].oldX = 0; - _vm->_globals.VBob[idx].oldY = 0; - _vm->_globals.VBob[idx].frameIndex = 0; - _vm->_globals.VBob[idx].oldFrameIndex = 0; - _vm->_globals.VBob[idx].oldSpriteData = g_PTRNUL; + _vm->_globals.VBob[idx]._xp = 0; + _vm->_globals.VBob[idx]._yp = 0; + _vm->_globals.VBob[idx]._oldX = 0; + _vm->_globals.VBob[idx]._oldY = 0; + _vm->_globals.VBob[idx]._frameIndex = 0; + _vm->_globals.VBob[idx]._oldFrameIndex = 0; + _vm->_globals.VBob[idx]._oldSpriteData = g_PTRNUL; } if (_vm->_globals.VBob[idx].field4 == 3) { - width = getWidth(_vm->_globals.VBob[idx].oldSpriteData, _vm->_globals.VBob[idx].oldFrameIndex); - height = getHeight(_vm->_globals.VBob[idx].oldSpriteData, _vm->_globals.VBob[idx].oldFrameIndex); + width = getWidth(_vm->_globals.VBob[idx]._oldSpriteData, _vm->_globals.VBob[idx]._oldFrameIndex); + height = getHeight(_vm->_globals.VBob[idx]._oldSpriteData, _vm->_globals.VBob[idx]._oldFrameIndex); _vm->_graphicsManager.Restore_Mem(_vm->_graphicsManager.VESA_SCREEN, - _vm->_globals.VBob[idx].surface, _vm->_globals.VBob[idx].oldX, - _vm->_globals.VBob[idx].oldY, + _vm->_globals.VBob[idx]._surface, _vm->_globals.VBob[idx]._oldX, + _vm->_globals.VBob[idx]._oldY, width, height); _vm->_graphicsManager.Restore_Mem(_vm->_graphicsManager.VESA_BUFFER, - _vm->_globals.VBob[idx].surface, _vm->_globals.VBob[idx].oldX, - _vm->_globals.VBob[idx].oldY, width, height); + _vm->_globals.VBob[idx]._surface, _vm->_globals.VBob[idx]._oldX, + _vm->_globals.VBob[idx]._oldY, width, height); - _vm->_graphicsManager.Ajoute_Segment_Vesa(_vm->_globals.VBob[idx].oldX, - _vm->_globals.VBob[idx].oldY, _vm->_globals.VBob[idx].oldX + width, - _vm->_globals.VBob[idx].oldY + height); + _vm->_graphicsManager.Ajoute_Segment_Vesa(_vm->_globals.VBob[idx]._oldX, + _vm->_globals.VBob[idx]._oldY, _vm->_globals.VBob[idx]._oldX + width, + _vm->_globals.VBob[idx]._oldY + height); _vm->_globals.VBob[idx].field4 = 1; - _vm->_globals.VBob[idx].oldSpriteData = _vm->_globals.VBob[idx].spriteData; + _vm->_globals.VBob[idx]._oldSpriteData = _vm->_globals.VBob[idx].spriteData; - _vm->_globals.VBob[idx].surface = _vm->_globals.freeMemory(_vm->_globals.VBob[idx].surface); + _vm->_globals.VBob[idx]._surface = _vm->_globals.freeMemory(_vm->_globals.VBob[idx]._surface); - _vm->_globals.VBob[idx].oldX = _vm->_globals.VBob[idx].xp; - _vm->_globals.VBob[idx].oldY = _vm->_globals.VBob[idx].yp; - _vm->_globals.VBob[idx].oldFrameIndex = _vm->_globals.VBob[idx].frameIndex; + _vm->_globals.VBob[idx]._oldX = _vm->_globals.VBob[idx]._xp; + _vm->_globals.VBob[idx]._oldY = _vm->_globals.VBob[idx]._yp; + _vm->_globals.VBob[idx]._oldFrameIndex = _vm->_globals.VBob[idx]._frameIndex; } if (_vm->_globals.VBob[idx].field4 == 1) { - width = getWidth(_vm->_globals.VBob[idx].spriteData, _vm->_globals.VBob[idx].frameIndex); - height = getHeight(_vm->_globals.VBob[idx].spriteData, _vm->_globals.VBob[idx].frameIndex); + width = getWidth(_vm->_globals.VBob[idx].spriteData, _vm->_globals.VBob[idx]._frameIndex); + height = getHeight(_vm->_globals.VBob[idx].spriteData, _vm->_globals.VBob[idx]._frameIndex); - _vm->_globals.VBob[idx].surface = _vm->_globals.freeMemory(_vm->_globals.VBob[idx].surface); + _vm->_globals.VBob[idx]._surface = _vm->_globals.freeMemory(_vm->_globals.VBob[idx]._surface); byte *surface = _vm->_globals.allocMemory(height * width); - _vm->_globals.VBob[idx].surface = surface; + _vm->_globals.VBob[idx]._surface = surface; _vm->_graphicsManager.Capture_Mem(_vm->_graphicsManager.VESA_SCREEN, surface, - _vm->_globals.VBob[idx].xp, _vm->_globals.VBob[idx].yp, width, height); + _vm->_globals.VBob[idx]._xp, _vm->_globals.VBob[idx]._yp, width, height); byte *v10 = _vm->_globals.VBob[idx].spriteData; if (*v10 == 78) { _vm->_graphicsManager.Affiche_Perfect(_vm->_graphicsManager.VESA_SCREEN, v10, - _vm->_globals.VBob[idx].xp + 300, _vm->_globals.VBob[idx].yp + 300, - _vm->_globals.VBob[idx].frameIndex, + _vm->_globals.VBob[idx]._xp + 300, _vm->_globals.VBob[idx]._yp + 300, + _vm->_globals.VBob[idx]._frameIndex, 0, 0, 0); _vm->_graphicsManager.Affiche_Perfect(_vm->_graphicsManager.VESA_BUFFER, _vm->_globals.VBob[idx].spriteData, - _vm->_globals.VBob[idx].xp + 300, _vm->_globals.VBob[idx].yp + 300, - _vm->_globals.VBob[idx].frameIndex, + _vm->_globals.VBob[idx]._xp + 300, _vm->_globals.VBob[idx]._yp + 300, + _vm->_globals.VBob[idx]._frameIndex, 0, 0, 0); } else { _vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager.VESA_BUFFER, - v10, _vm->_globals.VBob[idx].xp + 300, _vm->_globals.VBob[idx].yp + 300, - _vm->_globals.VBob[idx].frameIndex); + v10, _vm->_globals.VBob[idx]._xp + 300, _vm->_globals.VBob[idx]._yp + 300, + _vm->_globals.VBob[idx]._frameIndex); _vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager.VESA_SCREEN, _vm->_globals.VBob[idx].spriteData, - _vm->_globals.VBob[idx].xp + 300, _vm->_globals.VBob[idx].yp + 300, - _vm->_globals.VBob[idx].frameIndex); + _vm->_globals.VBob[idx]._xp + 300, _vm->_globals.VBob[idx]._yp + 300, + _vm->_globals.VBob[idx]._frameIndex); } - _vm->_graphicsManager.Ajoute_Segment_Vesa(_vm->_globals.VBob[idx].xp, - _vm->_globals.VBob[idx].yp , _vm->_globals.VBob[idx].xp + width, - _vm->_globals.VBob[idx].yp + height); + _vm->_graphicsManager.Ajoute_Segment_Vesa(_vm->_globals.VBob[idx]._xp, + _vm->_globals.VBob[idx]._yp , _vm->_globals.VBob[idx]._xp + width, + _vm->_globals.VBob[idx]._yp + height); _vm->_globals.VBob[idx].field4 = 2; } ++idx; } while ( idx <= 29 ); } -int ObjectsManager::XSPR(int idx) { - if (idx > 5) - error("request of the Coord. x a sprite > MAX_SPRITE."); +/** + * Get Sprite X coordinate + */ +int ObjectsManager::getSpriteX(int idx) { + assert (idx <= MAX_SPRITE); return _sprite[idx]._spritePos.x; } -int ObjectsManager::YSPR(int idx) { - if (idx > 5) - error("request of the Coord. y a sprite > MAX_SPRITE."); +/** + * Get Sprite Y coordinate + */ +int ObjectsManager::getSpriteY(int idx) { + assert (idx <= MAX_SPRITE); return _sprite[idx]._spritePos.y; } @@ -1468,38 +1468,29 @@ void ObjectsManager::SPRITE_NOW(const byte *spriteData, int a2, int a3, int a4, } void ObjectsManager::CLEAR_SPR() { - int idx; - - idx = 0; - do { + for (int idx = 0; idx < MAX_SPRITE; idx++) { _sprite[idx].field1C = g_PTRNUL; _sprite[idx]._spriteData = g_PTRNUL; _sprite[idx].field0 = 0; - ++idx; - } while (idx <= 4); + } - idx = 0; - do { + for (int idx = 0; idx < MAX_SPRITE; idx++) { _vm->_globals.Liste[idx].field0 = 0; _vm->_globals.Liste[idx].field2 = 0; _vm->_globals.Liste[idx].field4 = 0; - _vm->_globals.Liste[idx].width = 0; - _vm->_globals.Liste[idx].height = 0; + _vm->_globals.Liste[idx]._width = 0; + _vm->_globals.Liste[idx]._height = 0; _vm->_globals.Liste[idx].fieldA = 0; - ++idx; - } while (idx <= 4); + } } void ObjectsManager::SPRITE_ON(int idx) { - if (idx > 5) - error("Attempt to display a sprite > MAX_SPRITE."); - + assert (idx <= MAX_SPRITE); _sprite[idx].field0 = 1; } void ObjectsManager::SPRITE(const byte *spriteData, Common::Point pos, int idx, int spriteIndex, int a6, int a7, int a8, int a9) { - if (idx > 5) - error("Attempt to display a sprite > MAX_SPRITE."); + assert (idx <= MAX_SPRITE); _sprite[idx]._spriteData = spriteData; _sprite[idx]._spritePos = pos; _sprite[idx]._spriteIndex = spriteIndex; @@ -1512,12 +1503,12 @@ void ObjectsManager::SPRITE(const byte *spriteData, Common::Point pos, int idx, _sprite[idx].field26 = 0; _sprite[idx].field22 = 0; _sprite[idx].field0 = 0; - _sprite[idx].field28 = 0; + _sprite[idx].field28 = false; _sprite[idx].fieldE = a7; if (*spriteData == 'R' && *(spriteData + 1) == 'L' && *(spriteData + 2) == 'E') - _sprite[idx].field28 = 1; + _sprite[idx].field28 = true; - if (_sprite[idx].field28 == 1) { + if (_sprite[idx].field28) { _sprite[idx].fieldC = 0; _sprite[idx].fieldE = 0; } @@ -1535,9 +1526,9 @@ void ObjectsManager::SPRITE2(const byte *spriteData, int idx, byte *a3, int a4, _sprite[idx].field22 = 0; _sprite[idx].field14 = a5; if (*spriteData == 'R' && *(spriteData + 1) == 'L' && *(spriteData + 2) == 'E') - _sprite[idx].field28 = 1; + _sprite[idx].field28 = true; - if (_sprite[idx].field28 == 1) { + if (_sprite[idx].field28) { _sprite[idx].fieldC = 0; _sprite[idx].fieldE = 0; } @@ -1553,14 +1544,12 @@ void ObjectsManager::SPRITE_GEL(int idx) { } int ObjectsManager::SXSPR(int idx) { - if (idx > 5) - error("request of the size of a sprite x > MAX_SPRITE."); + assert (idx <= MAX_SPRITE); return getWidth(_sprite[idx]._spriteData, _sprite[idx]._spriteIndex); } int ObjectsManager::SYSPR(int idx) { - if (idx > 5) - error("request of the size of a sprite y > MAX_SPRITE."); + assert (idx <= MAX_SPRITE); return getHeight(_sprite[idx]._spriteData, _sprite[idx]._spriteIndex); } @@ -1574,38 +1563,40 @@ void ObjectsManager::SETPOSISPR(int idx, int a2) { _sprite[idx].field26 = 0; } -void ObjectsManager::SETXSPR(int idx, int xp) { - if (idx > 5) - error("Set the Coord. x a sprite> MAX_SPRITE."); +/** + * Set Sprite X coordinate + */ +void ObjectsManager::setSpriteX(int idx, int xp) { + assert (idx <= MAX_SPRITE); _sprite[idx]._spritePos.x = xp; } -void ObjectsManager::SETANISPR(int idx, int spriteIndex) { - if (idx > 5) - error("Set the Coord. x a sprite> MAX_SPRITE."); - - _sprite[idx]._spriteIndex = spriteIndex; +/** + * Set Sprite Y coordinate + */ +void ObjectsManager::setSpriteY(int idx, int yp) { + assert (idx <= MAX_SPRITE); + _sprite[idx]._spritePos.y = yp; } -void ObjectsManager::SETYSPR(int idx, int yp) { - if ( idx > 5 ) - error("Set the Coord. y a sprite> MAX_SPRITE."); - _sprite[idx]._spritePos.y = yp; +/** + * Set Sprite Index + */ +void ObjectsManager::setSpriteIndex(int idx, int spriteIndex) { + assert (idx <= MAX_SPRITE); + _sprite[idx]._spriteIndex = spriteIndex; } // Set Sprite Size void ObjectsManager::SETTAILLESPR(int idx, int a2) { - if (idx > 5) - error("Set the Coord. there a sprite> MAX_SPRITE."); - - if (_sprite[idx].field28 != 1) + assert (idx <= MAX_SPRITE); + if (!_sprite[idx].field28) _sprite[idx].fieldC = a2; } void ObjectsManager::SETFLIPSPR(int idx, int a2) { - if (_sprite[idx].field28 != 1) { - if (idx > 5) - error("Set the Coord. there a sprite> MAX_SPRITE."); + if (!_sprite[idx].field28) { + assert (idx <= MAX_SPRITE); _sprite[idx].fieldE = a2; } } @@ -1807,7 +1798,7 @@ void ObjectsManager::GOHOME() { g_old_x = nouveau_x; g_old_y = nouveau_y; } else { - SETANISPR(0, _vm->_globals.g_old_sens + 59); + setSpriteIndex(0, _vm->_globals.g_old_sens + 59); _vm->_globals.ACTION_SENS = 0; if (_vm->_globals.GOACTION == 1) v54 = _vm->_globals.SAUVEGARDE->data[svField2]; @@ -1821,17 +1812,17 @@ void ObjectsManager::GOHOME() { _vm->_globals.g_old_sens = -1; if (v54 > 0) { v55 = v54; - if (_vm->_globals.ZONEP[v55].destX) { - v56 = _vm->_globals.ZONEP[v55].destY; + if (_vm->_globals.ZONEP[v55]._destX) { + v56 = _vm->_globals.ZONEP[v55]._destY; if (v56) { if (v56 != 31) { v57 = _vm->_globals.ZONEP[v55].field4; if (v57 == -1) { - _vm->_globals.ZONEP[v55].destX = 0; - _vm->_globals.ZONEP[v55].destY = 0; + _vm->_globals.ZONEP[v55]._destX = 0; + _vm->_globals.ZONEP[v55]._destY = 0; _vm->_globals.ZONEP[v55].field4 = 0; } else { - SETANISPR(0, v57); + setSpriteIndex(0, v57); _vm->_globals.ACTION_SENS = _vm->_globals.ZONEP[v55].field4 - 59; } } @@ -2154,29 +2145,29 @@ LABEL_153: v49 = _vm->_globals.SAUVEGARDE->data[svField2]; else v49 = NUMZONE; - SETANISPR(0, _vm->_globals.g_old_sens + 59); + setSpriteIndex(0, _vm->_globals.g_old_sens + 59); _vm->_globals.ACTION_SENS = 0; _vm->_globals.chemin = (int16 *)g_PTRNUL; VERIFTAILLE(); SETFLIPSPR(0, 0); _vm->_globals.Compteur = 0; _vm->_globals.g_old_sens = -1; - g_old_x = XSPR(0); - g_old_y = YSPR(0); + g_old_x = getSpriteX(0); + g_old_y = getSpriteY(0); if (v49 > 0) { v50 = v49; - if (_vm->_globals.ZONEP[v50].destX) { - v51 = _vm->_globals.ZONEP[v50].destY; + if (_vm->_globals.ZONEP[v50]._destX) { + v51 = _vm->_globals.ZONEP[v50]._destY; if (v51) { if (v51 != 31) { v52 = _vm->_globals.ZONEP[v50].field4; if (v52 == -1) { - _vm->_globals.ZONEP[v50].destX = 0; - _vm->_globals.ZONEP[v50].destY = 0; + _vm->_globals.ZONEP[v50]._destX = 0; + _vm->_globals.ZONEP[v50]._destY = 0; _vm->_globals.ZONEP[v50].field4 = 0; } else { - SETANISPR(0, v52); + setSpriteIndex(0, v52); _vm->_globals.ACTION_SENS = _vm->_globals.ZONEP[v50].field4 - 59; } } @@ -2222,9 +2213,9 @@ LABEL_153: SETFLIPSPR(0, 0); if (_vm->_globals.g_old_sens == 6) SETFLIPSPR(0, 1); - SETXSPR(0, nouveau_x); - SETYSPR(0, nouveau_y); - SETANISPR(0, v1); + setSpriteX(0, nouveau_x); + setSpriteY(0, nouveau_y); + setSpriteIndex(0, v1); } else { if (_vm->_globals.g_old_sens == 7) SETFLIPSPR(0, 1); @@ -2284,13 +2275,13 @@ void ObjectsManager::GOHOME2() { goto LABEL_19; } if (_vm->_globals.last_sens == 1) - SETANISPR(0, 0); + setSpriteIndex(0, 0); if (_vm->_globals.last_sens == 3) - SETANISPR(0, 1); + setSpriteIndex(0, 1); if (_vm->_globals.last_sens == 5) - SETANISPR(0, 2); + setSpriteIndex(0, 2); if (_vm->_globals.last_sens == 7) - SETANISPR(0, 3); + setSpriteIndex(0, 3); _vm->_globals.chemin = (int16 *)g_PTRNUL; my_anim = 0; @@ -2299,16 +2290,16 @@ void ObjectsManager::GOHOME2() { } else { LABEL_19: _vm->_globals.last_sens = nouveau_sens; - SETXSPR(0, nouveau_x); - SETYSPR(0, nouveau_y); + setSpriteX(0, nouveau_x); + setSpriteY(0, nouveau_y); if (_vm->_globals.last_sens == 1) - SETANISPR(0, 4); + setSpriteIndex(0, 4); if (_vm->_globals.last_sens == 3) - SETANISPR(0, 5); + setSpriteIndex(0, 5); if (_vm->_globals.last_sens == 5) - SETANISPR(0, 6); + setSpriteIndex(0, 6); if (_vm->_globals.last_sens == 7) - SETANISPR(0, 7); + setSpriteIndex(0, 7); if (my_anim++ > 1) my_anim = 0; @@ -2374,8 +2365,8 @@ void ObjectsManager::CHARGE_ZONE(const Common::String &file) { v1 = 1; do { v2 = v1; - _vm->_globals.ZONEP[v2].destX = 0; - _vm->_globals.ZONEP[v2].destY = 0; + _vm->_globals.ZONEP[v2]._destX = 0; + _vm->_globals.ZONEP[v2]._destY = 0; _vm->_globals.ZONEP[v2].field4 = 0; _vm->_globals.ZONEP[v2].field6 = 0; _vm->_globals.ZONEP[v2].field7 = 0; @@ -2424,8 +2415,8 @@ void ObjectsManager::CHARGE_ZONE(const Common::String &file) { v7 = 1; do { v8 = v7; - _vm->_globals.ZONEP[v8].destX = (int16)READ_LE_UINT16((uint16 *)ptr + v4); - _vm->_globals.ZONEP[v8].destY = (int16)READ_LE_UINT16((uint16 *)ptr + v4 + 1); + _vm->_globals.ZONEP[v8]._destX = (int16)READ_LE_UINT16((uint16 *)ptr + v4); + _vm->_globals.ZONEP[v8]._destY = (int16)READ_LE_UINT16((uint16 *)ptr + v4 + 1); _vm->_globals.ZONEP[v8].field4 = (int16)READ_LE_UINT16((uint16 *)ptr + v4 + 2); v4 += 3; ++v7; @@ -2583,9 +2574,9 @@ void ObjectsManager::PLAN_BETA() { _vm->_eventsManager.setMouseXY(_vm->_globals.PLANX, _vm->_globals.PLANY); my_anim = 0; _vm->_eventsManager.mouseOn(); - v3 = XSPR(0); + v3 = getSpriteX(0); _vm->_graphicsManager.SCROLL_ECRAN(v3 - 320); - _vm->_graphicsManager.ofscroll = XSPR(0) - 320; + _vm->_graphicsManager.ofscroll = getSpriteX(0) - 320; SPRITE_ON(0); _vm->_globals.chemin = (int16 *)g_PTRNUL; _vm->_graphicsManager.SETCOLOR3(252, 100, 100, 100); @@ -2643,8 +2634,8 @@ void ObjectsManager::PLAN_BETA() { _vm->_graphicsManager.FADE_OUTW(); _vm->_globals.iRegul = 0; _vm->_graphicsManager.NOFADE = false; - _vm->_globals.PLANX = XSPR(0); - _vm->_globals.PLANY = YSPR(0); + _vm->_globals.PLANX = getSpriteX(0); + _vm->_globals.PLANY = getSpriteY(0); _vm->_globals.PLANI = 1; SPRITE_OFF(0); _vm->_globals.AFFLI = false; @@ -2695,14 +2686,14 @@ void ObjectsManager::BTGAUCHE() { && !_vm->_globals.PLAN_FLAG && (uint16)(destX - 533) <= 0x1Au && (uint16)(destY - 26) <= 0x21u) { - CHANGE_TETE(CHARACTER_HOPKINS_CLONE, CHARACTER_HOPKINS); + changeCharacterHead(CHARACTER_HOPKINS_CLONE, CHARACTER_HOPKINS); return; } if (_vm->_globals.SAUVEGARDE->data[svField356] == 1 && !_vm->_globals.PLAN_FLAG && (uint16)(destX - 533) <= 0x1Au && (uint16)(destY - 26) <= 0x21u) { - CHANGE_TETE(CHARACTER_SAMANTHA, CHARACTER_HOPKINS); + changeCharacterHead(CHARACTER_SAMANTHA, CHARACTER_HOPKINS); return; } if (_vm->_globals.SAUVEGARDE->data[svField357] == 1) { @@ -2710,14 +2701,14 @@ void ObjectsManager::BTGAUCHE() { && !_vm->_globals.PLAN_FLAG && (uint16)(destX - 533) <= 0x1Au && (uint16)(destY - 26) <= 0x21u) { - CHANGE_TETE(CHARACTER_HOPKINS, CHARACTER_HOPKINS_CLONE); + changeCharacterHead(CHARACTER_HOPKINS, CHARACTER_HOPKINS_CLONE); return; } if (_vm->_globals.SAUVEGARDE->data[svField355] == 1 && !_vm->_globals.PLAN_FLAG && (uint16)(destX - 567) <= 0x1Au && (uint16)(destY - 26) <= 0x21u) { - CHANGE_TETE(CHARACTER_HOPKINS, CHARACTER_SAMANTHA); + changeCharacterHead(CHARACTER_HOPKINS, CHARACTER_SAMANTHA); return; } } @@ -2752,9 +2743,9 @@ LABEL_38: return; if ((uint16)(NUMZONE + 1) > 1u) { zoneCount = NUMZONE; - zoneX = _vm->_globals.ZONEP[zoneCount].destX; + zoneX = _vm->_globals.ZONEP[zoneCount]._destX; if (zoneX) { - zoneY = _vm->_globals.ZONEP[zoneCount].destY; + zoneY = _vm->_globals.ZONEP[zoneCount]._destY; if (zoneY) { if (zoneY != 31) { destX = zoneX; @@ -2767,16 +2758,16 @@ LABEL_38: v9 = _vm->_globals.chemin; _vm->_globals.chemin = (int16 *)g_PTRNUL; if (_vm->_globals.FORET && ((uint16)(NUMZONE - 20) <= 1u || (uint16)(NUMZONE - 22) <= 1u)) { - if (YSPR(0) <= 374 || YSPR(0) > 410) { - v10 = XSPR(0); - v11 = YSPR(0); - v12 = XSPR(0); + if (getSpriteY(0) <= 374 || getSpriteY(0) > 410) { + v10 = getSpriteX(0); + v11 = getSpriteY(0); + v12 = getSpriteX(0); v13 = _vm->_linesManager.PARCOURS2(v12, v11, v10, 390); _vm->_globals.chemin = v13; if (v13 != (int16 *)g_PTRNUL) PACOURS_PROPRE(v13); - g_old_x = XSPR(0); - g_old_y = YSPR(0); + g_old_x = getSpriteX(0); + g_old_y = getSpriteY(0); _vm->_globals.Compteur = 0; if (_vm->_globals.chemin != (int16 *)g_PTRNUL || v9 == _vm->_globals.chemin) { LABEL_64: @@ -2786,7 +2777,7 @@ LABEL_64: goto LABEL_63; } _vm->_globals.chemin = (int16 *)g_PTRNUL; - SETANISPR(0, _vm->_globals.g_old_sens2 + 59); + setSpriteIndex(0, _vm->_globals.g_old_sens2 + 59); _vm->_globals.ACTION_SENS = 0; _vm->_globals.chemin = (int16 *)g_PTRNUL; VERIFTAILLE(); @@ -2797,14 +2788,14 @@ LABEL_64: } if (!_vm->_globals.NOMARCHE) { if (!_vm->_globals.PLAN_FLAG) { - srcY = YSPR(0); - srcX = XSPR(0); + srcY = getSpriteY(0); + srcX = getSpriteX(0); v16 = _vm->_linesManager.PARCOURS2(srcX, srcY, destX, destY); _vm->_globals.chemin = v16; if (v16 != (int16 *)g_PTRNUL) PACOURS_PROPRE(v16); - g_old_x = XSPR(0); - g_old_y = YSPR(0); + g_old_x = getSpriteX(0); + g_old_y = getSpriteY(0); _vm->_globals.Compteur = 0; if (_vm->_globals.chemin != (int16 *)g_PTRNUL || v9 == _vm->_globals.chemin) goto LABEL_64; @@ -2813,8 +2804,8 @@ LABEL_63: } LABEL_65: if (!_vm->_globals.NOMARCHE && _vm->_globals.PLAN_FLAG == true) { - v17 = YSPR(0); - v18 = XSPR(0); + v17 = getSpriteY(0); + v18 = getSpriteX(0); _vm->_globals.chemin = PARC_VOITURE(v18, v17, destX, destY); } } @@ -2840,8 +2831,8 @@ LABEL_65: && _vm->_eventsManager._mouseCursorId == 23) { // Special case for throwing darts at the switch in Purgatory - the player shouldn't move _vm->_globals.chemin = (int16 *)g_PTRNUL; - XSPR(0); - YSPR(0); + getSpriteX(0); + getSpriteY(0); } } @@ -2860,15 +2851,15 @@ void ObjectsManager::PARADISE() { if (!_vm->_globals.FORET || ((uint16)(NUMZONE - 20) > 1u && (uint16)(NUMZONE - 22) > 1u)) { if (_vm->_graphicsManager.DOUBLE_ECRAN) { _vm->_graphicsManager.no_scroll = 2; - if (_vm->_eventsManager._startPos.x >= XSPR(0) - 320) + if (_vm->_eventsManager._startPos.x >= getSpriteX(0) - 320) goto LABEL_64; - v3 = _vm->_eventsManager._startPos.x + 320 - XSPR(0); + v3 = _vm->_eventsManager._startPos.x + 320 - getSpriteX(0); if (v3 < 0) v3 = -v3; if (v3 <= 160) { LABEL_64: - if (_vm->_eventsManager._startPos.x > XSPR(0) - 320) { - v5 = _vm->_eventsManager._startPos.x + 320 - XSPR(0); + if (_vm->_eventsManager._startPos.x > getSpriteX(0) - 320) { + v5 = _vm->_eventsManager._startPos.x + 320 - getSpriteX(0); if (v5 < 0) v5 = -v5; if (v5 > 160) { @@ -2887,7 +2878,7 @@ LABEL_64: _vm->_eventsManager.setMouseXY(_vm->_eventsManager._mousePos.x - 4, _vm->_eventsManager.getMouseY()); _vm->_eventsManager.VBL(); - } while (v1 != 1 && _vm->_eventsManager._startPos.x > XSPR(0) - 320); + } while (v1 != 1 && _vm->_eventsManager._startPos.x > getSpriteX(0) - 320); } } } else { @@ -2905,7 +2896,7 @@ LABEL_64: _vm->_eventsManager.setMouseXY(_vm->_eventsManager._mousePos.x + 4, _vm->_eventsManager.getMouseY()); _vm->_eventsManager.VBL(); - } while (v1 != 1 && _vm->_eventsManager._startPos.x < XSPR(0) - 320); + } while (v1 != 1 && _vm->_eventsManager._startPos.x < getSpriteX(0) - 320); } if (_vm->_eventsManager.getMouseX() > _vm->_graphicsManager.SCROLL + 620) _vm->_eventsManager.setMouseXY(_vm->_graphicsManager.SCROLL + 610, 0); @@ -3012,8 +3003,10 @@ void ObjectsManager::CLEAR_ECRAN() { _vm->_graphicsManager.RESET_SEGMENT_VESA(); } -// Change Face/Head -void ObjectsManager::CHANGE_TETE(PlayerCharacter oldCharacter, PlayerCharacter newCharacter) { +/** + * Change character Face / Head + */ +void ObjectsManager::changeCharacterHead(PlayerCharacter oldCharacter, PlayerCharacter newCharacter) { CharacterLocation *loc; CH_TETE = 1; @@ -3023,11 +3016,11 @@ void ObjectsManager::CHANGE_TETE(PlayerCharacter oldCharacter, PlayerCharacter n _vm->_globals.chemin = (int16 *)g_PTRNUL; if (oldCharacter == CHARACTER_SAMANTHA && newCharacter == CHARACTER_HOPKINS - && _vm->_globals.SAUVEGARDE->realHopkins._location == _vm->_globals.ECRAN) { + && _vm->_globals.SAUVEGARDE->_realHopkins._location == _vm->_globals.ECRAN) { CH_TETE = 0; - loc = &_vm->_globals.SAUVEGARDE->samantha; - loc->_pos.x = XSPR(0); - loc->_pos.y = YSPR(0); + loc = &_vm->_globals.SAUVEGARDE->_samantha; + loc->_pos.x = getSpriteX(0); + loc->_pos.y = getSpriteY(0); loc->field2 = 64; loc->_location = _vm->_globals.ECRAN; loc->field4 = _sprite[0].field0; @@ -3042,7 +3035,7 @@ void ObjectsManager::CHANGE_TETE(PlayerCharacter oldCharacter, PlayerCharacter n _vm->_globals.SAUVEGARDE->data[svField357] = 1; T_RECTIF = 0; - loc = &_vm->_globals.SAUVEGARDE->realHopkins; + loc = &_vm->_globals.SAUVEGARDE->_realHopkins; _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "PERSO.SPR"); _vm->_globals.PERSO = _vm->_fileManager.loadFile(_vm->_globals.NFICHIER); _vm->_globals.PERSO_TYPE = 0; @@ -3050,11 +3043,11 @@ void ObjectsManager::CHANGE_TETE(PlayerCharacter oldCharacter, PlayerCharacter n SPRITE_ON(0); _vm->_globals.HOPKINS_DATA(); } else if (oldCharacter == CHARACTER_HOPKINS && newCharacter == CHARACTER_SAMANTHA - && _vm->_globals.SAUVEGARDE->samantha._location == _vm->_globals.ECRAN) { + && _vm->_globals.SAUVEGARDE->_samantha._location == _vm->_globals.ECRAN) { CH_TETE = 0; - loc = &_vm->_globals.SAUVEGARDE->realHopkins; - loc->_pos.x = XSPR(0); - loc->_pos.y = YSPR(0); + loc = &_vm->_globals.SAUVEGARDE->_realHopkins; + loc->_pos.x = getSpriteX(0); + loc->_pos.y = getSpriteY(0); loc->field2 = 64; loc->_location = _vm->_globals.ECRAN; loc->field4 = _sprite[0].fieldC; @@ -3068,7 +3061,7 @@ void ObjectsManager::CHANGE_TETE(PlayerCharacter oldCharacter, PlayerCharacter n _vm->_globals.SAUVEGARDE->data[svField356] = 1; _vm->_globals.SAUVEGARDE->data[svField357] = 0; - loc = &_vm->_globals.SAUVEGARDE->samantha; + loc = &_vm->_globals.SAUVEGARDE->_samantha; _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "PSAMAN.SPR"); _vm->_globals.PERSO = _vm->_fileManager.loadFile(_vm->_globals.NFICHIER); _vm->_globals.PERSO_TYPE = 2; @@ -3078,25 +3071,25 @@ void ObjectsManager::CHANGE_TETE(PlayerCharacter oldCharacter, PlayerCharacter n } else { switch (oldCharacter) { case CHARACTER_HOPKINS: - loc = &_vm->_globals.SAUVEGARDE->realHopkins; - loc->_pos.x = XSPR(0); - loc->_pos.y = YSPR(0); + loc = &_vm->_globals.SAUVEGARDE->_realHopkins; + loc->_pos.x = getSpriteX(0); + loc->_pos.y = getSpriteY(0); loc->field2 = 64; loc->_location = _vm->_globals.ECRAN; loc->field4 = _sprite[0].fieldC; break; case CHARACTER_HOPKINS_CLONE: - loc = &_vm->_globals.SAUVEGARDE->cloneHopkins; - loc->_pos.x = XSPR(0); - loc->_pos.y = YSPR(0); + loc = &_vm->_globals.SAUVEGARDE->_cloneHopkins; + loc->_pos.x = getSpriteX(0); + loc->_pos.y = getSpriteY(0); loc->field2 = 64; loc->_location = _vm->_globals.ECRAN; loc->field4 = _sprite[0].fieldC; break; case CHARACTER_SAMANTHA: - loc = &_vm->_globals.SAUVEGARDE->samantha; - loc->_pos.x = XSPR(0); - loc->_pos.y = YSPR(0); + loc = &_vm->_globals.SAUVEGARDE->_samantha; + loc->_pos.x = getSpriteX(0); + loc->_pos.y = getSpriteY(0); loc->field2 = 64; loc->_location = _vm->_globals.ECRAN; loc->field4 = _sprite[0].fieldC; @@ -3111,21 +3104,21 @@ void ObjectsManager::CHANGE_TETE(PlayerCharacter oldCharacter, PlayerCharacter n _vm->_globals.SAUVEGARDE->data[svField354] = 0; _vm->_globals.SAUVEGARDE->data[svField356] = 0; _vm->_globals.SAUVEGARDE->data[svField357] = 1; - _vm->_globals.SORTIE = _vm->_globals.SAUVEGARDE->realHopkins._location; + _vm->_globals.SORTIE = _vm->_globals.SAUVEGARDE->_realHopkins._location; break; case CHARACTER_HOPKINS_CLONE: _vm->_globals.SAUVEGARDE->data[svField121] = 1; _vm->_globals.SAUVEGARDE->data[svField354] = 1; _vm->_globals.SAUVEGARDE->data[svField356] = 0; _vm->_globals.SAUVEGARDE->data[svField357] = 0; - _vm->_globals.SORTIE = _vm->_globals.SAUVEGARDE->cloneHopkins._location; + _vm->_globals.SORTIE = _vm->_globals.SAUVEGARDE->_cloneHopkins._location; break; case CHARACTER_SAMANTHA: _vm->_globals.SAUVEGARDE->data[svField121] = 0; _vm->_globals.SAUVEGARDE->data[svField354] = 0; _vm->_globals.SAUVEGARDE->data[svField356] = 1; _vm->_globals.SAUVEGARDE->data[svField357] = 0; - _vm->_globals.SORTIE = _vm->_globals.SAUVEGARDE->samantha._location; + _vm->_globals.SORTIE = _vm->_globals.SAUVEGARDE->_samantha._location; break; } } @@ -3133,7 +3126,7 @@ void ObjectsManager::CHANGE_TETE(PlayerCharacter oldCharacter, PlayerCharacter n // Check Size void ObjectsManager::VERIFTAILLE() { - int v0 = _vm->_globals.STAILLE[YSPR(0)]; + int v0 = _vm->_globals.STAILLE[getSpriteY(0)]; if (_vm->_globals.PERSO_TYPE == 1) { int v1 = v0; if (v0 < 0) @@ -3844,23 +3837,23 @@ int ObjectsManager::MZONE() { v3 = v2; v15 = v3; if (_vm->_globals.Bob[v3].field0) { - if (_vm->_globals.Bob[v3].frameIndex != 250) { + if (_vm->_globals.Bob[v3]._frameIndex != 250) { if (!_vm->_globals.Bob[v3].field16) { - v4 = _vm->_globals.Bob[v3].oldX; + v4 = _vm->_globals.Bob[v3]._oldX; if (xp > v4) { - if (xp < _vm->_globals.Bob[v3].oldWidth + v4) { - v5 = _vm->_globals.Bob[v3].oldY; + if (xp < _vm->_globals.Bob[v3]._oldWidth + v4) { + v5 = _vm->_globals.Bob[v3]._oldY; if (yp > v5) { - if (yp < _vm->_globals.Bob[v3].oldHeight + v5) { + if (yp < _vm->_globals.Bob[v3]._oldHeight + v5) { v6 = v1; if (_vm->_globals.ZONEP[v1].field4 == -1) { - _vm->_globals.ZONEP[v6].destX = 0; - _vm->_globals.ZONEP[v1].destY = 0; + _vm->_globals.ZONEP[v6]._destX = 0; + _vm->_globals.ZONEP[v1]._destY = 0; } - if (!_vm->_globals.ZONEP[v6].destX) { - if (!_vm->_globals.ZONEP[v1].destY) { - _vm->_globals.ZONEP[v6].destX = _vm->_globals.Bob[v15].oldWidth + _vm->_globals.Bob[v15].oldX; - _vm->_globals.ZONEP[v1].destY = _vm->_globals.Bob[v15].oldHeight + _vm->_globals.Bob[v15].oldY + 6; + if (!_vm->_globals.ZONEP[v6]._destX) { + if (!_vm->_globals.ZONEP[v1]._destY) { + _vm->_globals.ZONEP[v6]._destX = _vm->_globals.Bob[v15]._oldWidth + _vm->_globals.Bob[v15]._oldX; + _vm->_globals.ZONEP[v1]._destY = _vm->_globals.Bob[v15]._oldHeight + _vm->_globals.Bob[v15]._oldY + 6; _vm->_globals.ZONEP[v1].field4 = -1; } } @@ -4171,7 +4164,7 @@ void ObjectsManager::SPECIAL_JEU() { TEST_FORET(41, 6, 84, 100, 440, 3); } if (_vm->_globals.ECRAN == 5) { - if (YSPR(0) <= 399) { + if (getSpriteY(0) <= 399) { if (!_vm->_globals.SAUVEGARDE->data[svField173]) { _vm->_globals.SAUVEGARDE->data[svField173] = 1; _vm->_globals.NOPARLE = true; @@ -4223,10 +4216,10 @@ void ObjectsManager::SPECIAL_JEU() { } } if (_vm->_globals.ECRAN == 20) - _vm->_globals.SAUVEGARDE->data[svField132] = XSPR(0) > 65 - && XSPR(0) <= 124 - && YSPR(0) > 372 - && YSPR(0) <= 398; + _vm->_globals.SAUVEGARDE->data[svField132] = getSpriteX(0) > 65 + && getSpriteX(0) <= 124 + && getSpriteY(0) > 372 + && getSpriteY(0) <= 398; if (_vm->_globals.ECRAN == 57) { _vm->_globals._disableInventFl = true; if (_vm->_globals.SAUVEGARDE->data[svField261] == 1 && BOBPOSI(5) == 37) { @@ -4285,27 +4278,27 @@ void ObjectsManager::VBOB(byte *src, int idx, int xp, int yp, int frameIndex) { if (_vm->_globals.VBob[idx].field4 <= 1) { _vm->_globals.VBob[idx].field4 = 1; - _vm->_globals.VBob[idx].xp = xp; - _vm->_globals.VBob[idx].yp = yp; - _vm->_globals.VBob[idx].frameIndex = frameIndex; - _vm->_globals.VBob[idx].oldX = xp; - _vm->_globals.VBob[idx].oldY = yp; - _vm->_globals.VBob[idx].oldFrameIndex = frameIndex; + _vm->_globals.VBob[idx]._xp = xp; + _vm->_globals.VBob[idx]._yp = yp; + _vm->_globals.VBob[idx]._frameIndex = frameIndex; + _vm->_globals.VBob[idx]._oldX = xp; + _vm->_globals.VBob[idx]._oldY = yp; + _vm->_globals.VBob[idx]._oldFrameIndex = frameIndex; _vm->_globals.VBob[idx].spriteData = src; - _vm->_globals.VBob[idx].oldSpriteData = src; - _vm->_globals.VBob[idx].surface = _vm->_globals.freeMemory(_vm->_globals.VBob[idx].surface); + _vm->_globals.VBob[idx]._oldSpriteData = src; + _vm->_globals.VBob[idx]._surface = _vm->_globals.freeMemory(_vm->_globals.VBob[idx]._surface); } int f4 = _vm->_globals.VBob[idx].field4; if (f4 == 2 || f4 == 4) { _vm->_globals.VBob[idx].field4 = 3; - _vm->_globals.VBob[idx].oldX = _vm->_globals.VBob[idx].xp; - _vm->_globals.VBob[idx].oldY = _vm->_globals.VBob[idx].yp; - _vm->_globals.VBob[idx].oldSpriteData = _vm->_globals.VBob[idx].spriteData; - _vm->_globals.VBob[idx].oldFrameIndex = _vm->_globals.VBob[idx].frameIndex; - _vm->_globals.VBob[idx].xp = xp; - _vm->_globals.VBob[idx].yp = yp; - _vm->_globals.VBob[idx].frameIndex = frameIndex; + _vm->_globals.VBob[idx]._oldX = _vm->_globals.VBob[idx]._xp; + _vm->_globals.VBob[idx]._oldY = _vm->_globals.VBob[idx]._yp; + _vm->_globals.VBob[idx]._oldSpriteData = _vm->_globals.VBob[idx].spriteData; + _vm->_globals.VBob[idx]._oldFrameIndex = _vm->_globals.VBob[idx]._frameIndex; + _vm->_globals.VBob[idx]._xp = xp; + _vm->_globals.VBob[idx]._yp = yp; + _vm->_globals.VBob[idx]._frameIndex = frameIndex; _vm->_globals.VBob[idx].spriteData = src; } } @@ -4519,8 +4512,8 @@ void ObjectsManager::OPTI_ONE(int idx, int a2, int a3, int a4) { if (!a4) BOBANIM_OFF(idx); if (a4 == 4) { - _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.Bob[idx].spriteData, - _vm->_globals.Bob[idx].oldX, _vm->_globals.Bob[idx].oldY, _vm->_globals.Bob[idx].frameIndex); + _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.Bob[idx]._spriteData, + _vm->_globals.Bob[idx]._oldX, _vm->_globals.Bob[idx]._oldY, _vm->_globals.Bob[idx]._frameIndex); BOBANIM_OFF(idx); _vm->_eventsManager.VBL(); } @@ -4542,7 +4535,7 @@ void ObjectsManager::BOBANIM_ON(int idx) { if (_vm->_globals.Bob[idx].field16) { _vm->_globals.Bob[idx].field16 = 0; _vm->_globals.Bob[idx].field10 = 5; - _vm->_globals.Bob[idx].frameIndex = 250; + _vm->_globals.Bob[idx]._frameIndex = 250; _vm->_globals.Bob[idx].field12 = 0; _vm->_globals.Bob[idx].field14 = 0; } @@ -4560,15 +4553,15 @@ void ObjectsManager::SET_BOBPOSI(int idx, int a2) { } int ObjectsManager::BOBX(int idx) { - return _vm->_globals.Bob[idx].xp; + return _vm->_globals.Bob[idx]._xp; } int ObjectsManager::BOBY(int idx) { - return _vm->_globals.Bob[idx].yp; + return _vm->_globals.Bob[idx]._yp; } int ObjectsManager::BOBA(int idx) { - return _vm->_globals.Bob[idx].frameIndex; + return _vm->_globals.Bob[idx]._frameIndex; } void ObjectsManager::INILINK(const Common::String &file) { @@ -4730,8 +4723,8 @@ void ObjectsManager::INILINK(const Common::String &file) { v18 = 1; do { v19 = v18; - _vm->_globals.ZONEP[v19].destX = 0; - _vm->_globals.ZONEP[v19].destY = 0; + _vm->_globals.ZONEP[v19]._destX = 0; + _vm->_globals.ZONEP[v19]._destY = 0; _vm->_globals.ZONEP[v19].field4 = 0; _vm->_globals.ZONEP[v19].field6 = 0; _vm->_globals.ZONEP[v19].field7 = 0; @@ -4767,8 +4760,8 @@ void ObjectsManager::INILINK(const Common::String &file) { v20 = 1; do { v21 = v20; - _vm->_globals.ZONEP[v21].destX = (int16)READ_LE_UINT16(v17 + 2 * v33); - _vm->_globals.ZONEP[v21].destY = (int16)READ_LE_UINT16(v17 + 2 * v33 + 2); + _vm->_globals.ZONEP[v21]._destX = (int16)READ_LE_UINT16(v17 + 2 * v33); + _vm->_globals.ZONEP[v21]._destY = (int16)READ_LE_UINT16(v17 + 2 * v33 + 2); _vm->_globals.ZONEP[v21].field4 = (int16)READ_LE_UINT16(v17 + 2 * v33 + 4); v33 += 3; ++v20; @@ -5433,10 +5426,10 @@ void ObjectsManager::TEST_FORET(int a1, int a2, int a3, int a4, int a5, int a6) BOB_OFF(3); BOB_OFF(4); } - } else if (a2 < XSPR(0) - && a3 > XSPR(0) - && a4 < YSPR(0) - && a5 > YSPR(0)) { + } else if (a2 < getSpriteX(0) + && a3 > getSpriteX(0) + && a4 < getSpriteY(0) + && a5 > getSpriteY(0)) { if (a6 == 1) BOBANIM_ON(1); if (a6 == 2) @@ -5514,19 +5507,19 @@ void ObjectsManager::PERSONAGE(const Common::String &backgroundFile, const Commo _vm->_animationManager.playSequence("OUVRE.SEQ", 10, 4, 10); BOBANIM_OFF(3); _vm->_globals.NOT_VERIF = 1; - g_old_x = XSPR(0); + g_old_x = getSpriteX(0); _vm->_globals.g_old_sens = -1; _vm->_globals.Compteur = 0; _vm->_globals.chemin = (int16 *)g_PTRNUL; - v7 = YSPR(0); - v8 = XSPR(0); + v7 = getSpriteY(0); + v8 = getSpriteX(0); _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v8, v7, 330, 345); _vm->_globals.NOT_VERIF = 1; do { GOHOME(); _vm->_eventsManager.VBL(); } while (_vm->_globals.chemin != (int16 *)g_PTRNUL); - SETANISPR(0, 64); + setSpriteIndex(0, 64); } do { v9 = _vm->_eventsManager.getMouseButton(); @@ -5629,7 +5622,7 @@ LABEL_70: SPRITE(_vm->_globals.PERSO, Common::Point(PERX, PERY), 0, PERI, 0, 0, 20, 127); _vm->_eventsManager.setMouseXY(PERX, PERY); if (_vm->_graphicsManager.DOUBLE_ECRAN) - _vm->_graphicsManager.SCROLL = (int16)XSPR(0) - 320; + _vm->_graphicsManager.SCROLL = (int16)getSpriteX(0) - 320; VERIFTAILLE(); SPRITE_ON(0); _vm->_globals.CACHE_ON(); diff --git a/engines/hopkins/objects.h b/engines/hopkins/objects.h index db2fd9e912..c4cf6f4830 100644 --- a/engines/hopkins/objects.h +++ b/engines/hopkins/objects.h @@ -28,6 +28,7 @@ #include "common/str.h" #include "hopkins/globals.h" +#define MAX_SPRITE 5 namespace Hopkins { struct SpriteItem { @@ -44,7 +45,7 @@ struct SpriteItem { int field22; int field24; int field26; - int field28; + bool field28; int field2A; int field2C; int field2E; @@ -128,7 +129,7 @@ public: int getWidth(const byte *objectData, int idx); int getHeight(const byte *objectData, int idx); int sprite_alone(const byte *objectData, byte *sprite, int objIndex); - byte *DEL_FICHIER_OBJ(); + void DEL_FICHIER_OBJ(); byte *loadSprite(const Common::String &file); void set_offsetxy(byte *data, int idx, int xp, int yp, bool isSize); @@ -158,8 +159,8 @@ public: void AFF_BOB_ANIM(); void AFF_VBOB(); - int XSPR(int idx); - int YSPR(int idx); + int getSpriteX(int idx); + int getSpriteY(int idx); void SPRITE_NOW(const byte *spriteData, int a2, int a3, int a4, int a5, int a6, int a7, int a8); void CLEAR_SPR(); @@ -172,9 +173,9 @@ public: int SYSPR(int idx); int POSISPR(int idx); void SETPOSISPR(int idx, int a2); - void SETXSPR(int idx, int xp); - void SETANISPR(int idx, int spriteIndex); - void SETYSPR(int idx, int yp); + void setSpriteX(int idx, int xp); + void setSpriteIndex(int idx, int spriteIndex); + void setSpriteY(int idx, int yp); void SETTAILLESPR(int idx, int a2); void SETFLIPSPR(int idx, int a2); @@ -194,7 +195,7 @@ public: * @param oldCharacter Previously played character * @param newCharacter New character to play */ - void CHANGE_TETE(PlayerCharacter oldCharacter, PlayerCharacter newCharacter); + void changeCharacterHead(PlayerCharacter oldCharacter, PlayerCharacter newCharacter); void VERIFTAILLE(); void PACOURS_PROPRE(int16 *a1); diff --git a/engines/hopkins/saveload.cpp b/engines/hopkins/saveload.cpp index 18cb26e002..75c69cc87f 100644 --- a/engines/hopkins/saveload.cpp +++ b/engines/hopkins/saveload.cpp @@ -144,7 +144,7 @@ Common::Error SaveLoadManager::save(int slot, const Common::String &saveName) { // Set up the inventory for (int i = 0; i < 35; ++i) - _vm->_globals.SAUVEGARDE->inventory[i] = _vm->_globals._inventory[i]; + _vm->_globals.SAUVEGARDE->_inventory[i] = _vm->_globals._inventory[i]; /* Create the savegame */ Common::OutSaveFile *saveFile = g_system->getSavefileManager()->openForSaving( @@ -196,7 +196,7 @@ Common::Error SaveLoadManager::restore(int slot) { // Unpack the inventory for (int i = 0; i < 35; ++i) - _vm->_globals._inventory[i] = _vm->_globals.SAUVEGARDE->inventory[i]; + _vm->_globals._inventory[i] = _vm->_globals.SAUVEGARDE->_inventory[i]; // Set variables from loaded data as necessary _vm->_globals.SAUVEGARDE->data[svField10] = slot; @@ -254,12 +254,12 @@ void SaveLoadManager::createThumbnail(Graphics::Surface *s) { void SaveLoadManager::syncSavegameData(Common::Serializer &s) { s.syncBytes(&_vm->_globals.SAUVEGARDE->data[0], 0x802); - syncCharacterLocation(s, _vm->_globals.SAUVEGARDE->cloneHopkins); - syncCharacterLocation(s, _vm->_globals.SAUVEGARDE->realHopkins); - syncCharacterLocation(s, _vm->_globals.SAUVEGARDE->samantha); + syncCharacterLocation(s, _vm->_globals.SAUVEGARDE->_cloneHopkins); + syncCharacterLocation(s, _vm->_globals.SAUVEGARDE->_realHopkins); + syncCharacterLocation(s, _vm->_globals.SAUVEGARDE->_samantha); for (int i = 0; i < 35; ++i) - s.syncAsSint16LE(_vm->_globals.SAUVEGARDE->inventory[i]); + s.syncAsSint16LE(_vm->_globals.SAUVEGARDE->_inventory[i]); } void SaveLoadManager::syncCharacterLocation(Common::Serializer &s, CharacterLocation &item) { diff --git a/engines/hopkins/script.cpp b/engines/hopkins/script.cpp index 072a63cf28..52140d5c5f 100644 --- a/engines/hopkins/script.cpp +++ b/engines/hopkins/script.cpp @@ -213,36 +213,36 @@ LABEL_1141: _vm->_objectsManager.PERI = v5; if (_vm->_objectsManager.CH_TETE == 1) { if (_vm->_globals.SAUVEGARDE->data[svField354] == 1 - && _vm->_globals.SAUVEGARDE->cloneHopkins._pos.x && _vm->_globals.SAUVEGARDE->cloneHopkins._pos.y - && _vm->_globals.SAUVEGARDE->cloneHopkins.field2 && _vm->_globals.SAUVEGARDE->cloneHopkins._location) { + && _vm->_globals.SAUVEGARDE->_cloneHopkins._pos.x && _vm->_globals.SAUVEGARDE->_cloneHopkins._pos.y + && _vm->_globals.SAUVEGARDE->_cloneHopkins.field2 && _vm->_globals.SAUVEGARDE->_cloneHopkins._location) { - _vm->_objectsManager.PERX = _vm->_globals.SAUVEGARDE->cloneHopkins._pos.x; - _vm->_objectsManager.PERY = _vm->_globals.SAUVEGARDE->cloneHopkins._pos.y; - _vm->_objectsManager.PERI = _vm->_globals.SAUVEGARDE->cloneHopkins.field2; + _vm->_objectsManager.PERX = _vm->_globals.SAUVEGARDE->_cloneHopkins._pos.x; + _vm->_objectsManager.PERY = _vm->_globals.SAUVEGARDE->_cloneHopkins._pos.y; + _vm->_objectsManager.PERI = _vm->_globals.SAUVEGARDE->_cloneHopkins.field2; } if (_vm->_globals.SAUVEGARDE->data[svField356] == 1 - && _vm->_globals.SAUVEGARDE->samantha._pos.x && _vm->_globals.SAUVEGARDE->samantha._pos.y - && _vm->_globals.SAUVEGARDE->samantha.field2 && _vm->_globals.SAUVEGARDE->samantha._location) { - _vm->_objectsManager.PERX = _vm->_globals.SAUVEGARDE->samantha._pos.x; - _vm->_objectsManager.PERY = _vm->_globals.SAUVEGARDE->samantha._pos.y; - _vm->_objectsManager.PERI = _vm->_globals.SAUVEGARDE->samantha.field2; + && _vm->_globals.SAUVEGARDE->_samantha._pos.x && _vm->_globals.SAUVEGARDE->_samantha._pos.y + && _vm->_globals.SAUVEGARDE->_samantha.field2 && _vm->_globals.SAUVEGARDE->_samantha._location) { + _vm->_objectsManager.PERX = _vm->_globals.SAUVEGARDE->_samantha._pos.x; + _vm->_objectsManager.PERY = _vm->_globals.SAUVEGARDE->_samantha._pos.y; + _vm->_objectsManager.PERI = _vm->_globals.SAUVEGARDE->_samantha.field2; } if (_vm->_globals.SAUVEGARDE->data[svField357] == 1 - && _vm->_globals.SAUVEGARDE->realHopkins._pos.x && _vm->_globals.SAUVEGARDE->realHopkins._pos.y - && _vm->_globals.SAUVEGARDE->realHopkins.field2 && _vm->_globals.SAUVEGARDE->realHopkins._location) { - _vm->_objectsManager.PERX = _vm->_globals.SAUVEGARDE->realHopkins._pos.x; - _vm->_objectsManager.PERY = _vm->_globals.SAUVEGARDE->realHopkins._pos.y; - _vm->_objectsManager.PERI = _vm->_globals.SAUVEGARDE->realHopkins.field2; + && _vm->_globals.SAUVEGARDE->_realHopkins._pos.x && _vm->_globals.SAUVEGARDE->_realHopkins._pos.y + && _vm->_globals.SAUVEGARDE->_realHopkins.field2 && _vm->_globals.SAUVEGARDE->_realHopkins._location) { + _vm->_objectsManager.PERX = _vm->_globals.SAUVEGARDE->_realHopkins._pos.x; + _vm->_objectsManager.PERY = _vm->_globals.SAUVEGARDE->_realHopkins._pos.y; + _vm->_objectsManager.PERI = _vm->_globals.SAUVEGARDE->_realHopkins.field2; } } if (_vm->_globals.SAUVEGARDE->data[svField356] == 1 - && _vm->_globals.SAUVEGARDE->realHopkins._location == _vm->_globals.ECRAN) { + && _vm->_globals.SAUVEGARDE->_realHopkins._location == _vm->_globals.ECRAN) { _vm->_objectsManager.SPRITE( _vm->_globals.TETE, - _vm->_globals.SAUVEGARDE->realHopkins._pos, + _vm->_globals.SAUVEGARDE->_realHopkins._pos, 1, 2, - _vm->_globals.SAUVEGARDE->realHopkins.field4, + _vm->_globals.SAUVEGARDE->_realHopkins.field4, 0, 34, 190); @@ -251,13 +251,13 @@ LABEL_1141: } if (_vm->_globals.SAUVEGARDE->data[svField357] == 1 && _vm->_globals.SAUVEGARDE->data[svField355] == 1 - && _vm->_globals.SAUVEGARDE->samantha._location == _vm->_globals.ECRAN) { + && _vm->_globals.SAUVEGARDE->_samantha._location == _vm->_globals.ECRAN) { _vm->_objectsManager.SPRITE( _vm->_globals.TETE, - _vm->_globals.SAUVEGARDE->samantha._pos, + _vm->_globals.SAUVEGARDE->_samantha._pos, 1, 3, - _vm->_globals.SAUVEGARDE->samantha.field4, + _vm->_globals.SAUVEGARDE->_samantha.field4, 0, 20, 127); @@ -827,8 +827,8 @@ LABEL_1141: if (v76 == 46) { _vm->_globals.NOT_VERIF = 1; _vm->_globals.chemin = (int16 *)g_PTRNUL; - int v13 = _vm->_objectsManager.YSPR(0); - int v14 = _vm->_objectsManager.XSPR(0); + int v13 = _vm->_objectsManager.getSpriteY(0); + int v14 = _vm->_objectsManager.getSpriteX(0); _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v14, v13, 564, 420); _vm->_objectsManager.NUMZONE = -1; do { @@ -900,12 +900,12 @@ LABEL_1141: } if (v76 == 59) { _vm->_globals.NOT_VERIF = 1; - _vm->_objectsManager.g_old_x = _vm->_objectsManager.XSPR(0); + _vm->_objectsManager.g_old_x = _vm->_objectsManager.getSpriteX(0); _vm->_globals.g_old_sens = -1; _vm->_globals.Compteur = 0; _vm->_globals.chemin = (int16 *)g_PTRNUL; - int v16 = _vm->_objectsManager.YSPR(0); - int v17 = _vm->_objectsManager.XSPR(0); + int v16 = _vm->_objectsManager.getSpriteY(0); + int v17 = _vm->_objectsManager.getSpriteX(0); _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v17, v16, 445, 332); _vm->_globals.NOT_VERIF = 1; do { @@ -941,7 +941,7 @@ LABEL_1141: _vm->_eventsManager.VBL(); } while (_vm->_objectsManager.BOBPOSI(3) != 48); _vm->_soundManager.DEL_SAMPLE(1); - _vm->_objectsManager.SETANISPR(0, 62); + _vm->_objectsManager.setSpriteIndex(0, 62); _vm->_objectsManager.SPRITE_ON(0); _vm->_objectsManager.BOBANIM_ON(6); _vm->_objectsManager.BOBANIM_OFF(7); @@ -1032,12 +1032,12 @@ LABEL_1141: } if (v76 == 81) { _vm->_globals.NOT_VERIF = 1; - _vm->_objectsManager.g_old_x = _vm->_objectsManager.XSPR(0); + _vm->_objectsManager.g_old_x = _vm->_objectsManager.getSpriteX(0); _vm->_globals.g_old_sens = -1; _vm->_globals.Compteur = 0; _vm->_globals.chemin = (int16 *)g_PTRNUL; - int v22 = _vm->_objectsManager.YSPR(0); - int v23 = _vm->_objectsManager.XSPR(0); + int v22 = _vm->_objectsManager.getSpriteY(0); + int v23 = _vm->_objectsManager.getSpriteX(0); _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v23, v22, 119, 268); _vm->_globals.NOT_VERIF = 1; do { @@ -1278,23 +1278,23 @@ LABEL_1141: _vm->_talkManager.OBJET_VIVANT("ScCADA.pe2"); if (v76 == 105) { _vm->_globals.NOT_VERIF = 1; - _vm->_objectsManager.g_old_x = _vm->_objectsManager.XSPR(0); + _vm->_objectsManager.g_old_x = _vm->_objectsManager.getSpriteX(0); _vm->_globals.g_old_sens = -1; _vm->_globals.Compteur = 0; _vm->_globals.chemin = (int16 *)g_PTRNUL; if (_vm->_globals.SAUVEGARDE->data[svField253] == 1) { - int v27 = _vm->_objectsManager.YSPR(0); - int v28 = _vm->_objectsManager.XSPR(0); + int v27 = _vm->_objectsManager.getSpriteY(0); + int v28 = _vm->_objectsManager.getSpriteX(0); _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v28, v27, 201, 294); } if (_vm->_globals.SAUVEGARDE->data[svField253] == 2) { - int v29 = _vm->_objectsManager.YSPR(0); - int v30 = _vm->_objectsManager.XSPR(0); + int v29 = _vm->_objectsManager.getSpriteY(0); + int v30 = _vm->_objectsManager.getSpriteX(0); _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v30, v29, 158, 338); } if (_vm->_globals.SAUVEGARDE->data[svField253] > 2) { - int v31 = _vm->_objectsManager.YSPR(0); - int v32 = _vm->_objectsManager.XSPR(0); + int v31 = _vm->_objectsManager.getSpriteY(0); + int v32 = _vm->_objectsManager.getSpriteX(0); _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v32, v31, 211, 393); } _vm->_globals.NOT_VERIF = 1; @@ -1306,7 +1306,7 @@ LABEL_1141: _vm->_eventsManager.VBL(); } while (_vm->_globals.chemin != (int16 *)g_PTRNUL); _vm->_objectsManager.SPRITE_OFF(0); - _vm->_objectsManager.SETANISPR(0, 60); + _vm->_objectsManager.setSpriteIndex(0, 60); _vm->_soundManager.CHARGE_SAMPLE(1, "SOUND63.WAV"); if (_vm->_globals.SAUVEGARDE->data[svField253] > 2) { _vm->_objectsManager.BOBANIM_ON(4); @@ -1529,8 +1529,8 @@ LABEL_1141: } _vm->_globals.NOT_VERIF = 1; _vm->_globals.chemin = (int16 *)g_PTRNUL; - int v37 = _vm->_objectsManager.YSPR(0); - int v38 = _vm->_objectsManager.XSPR(0); + int v37 = _vm->_objectsManager.getSpriteY(0); + int v38 = _vm->_objectsManager.getSpriteX(0); _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v38, v37, 330, 418); _vm->_globals.NOT_VERIF = 1; _vm->_objectsManager.NUMZONE = 0; @@ -1541,14 +1541,14 @@ LABEL_1141: _vm->_objectsManager.GOHOME(); _vm->_eventsManager.VBL(); } while (_vm->_globals.chemin != (int16 *)g_PTRNUL); - _vm->_objectsManager.SETANISPR(0, 64); + _vm->_objectsManager.setSpriteIndex(0, 64); _vm->_globals.SORTIE = _vm->_globals.SAUVEGARDE->data[svField401]; _vm->_globals._disableInventFl = false; } if (v76 == 209) { _vm->_objectsManager.SET_BOBPOSI(1, 0); _vm->_objectsManager.SET_BOBPOSI(2, 0); - _vm->_objectsManager.SETANISPR(0, 60); + _vm->_objectsManager.setSpriteIndex(0, 60); _vm->_objectsManager.BOBANIM_OFF(4); _vm->_objectsManager.BOBANIM_ON(1); do { @@ -1561,8 +1561,8 @@ LABEL_1141: _vm->_globals.NO_VISU = true; _vm->_globals.chemin = (int16 *)g_PTRNUL; _vm->_globals.NOT_VERIF = 1; - int v39 = _vm->_objectsManager.YSPR(0); - int v40 = _vm->_objectsManager.XSPR(0); + int v39 = _vm->_objectsManager.getSpriteY(0); + int v40 = _vm->_objectsManager.getSpriteX(0); _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v40, v39, 330, 314); _vm->_objectsManager.NUMZONE = 0; _vm->_globals.NOT_VERIF = 1; @@ -1573,7 +1573,7 @@ LABEL_1141: _vm->_objectsManager.GOHOME(); _vm->_eventsManager.VBL(); } while (_vm->_globals.chemin != (int16 *)g_PTRNUL); - _vm->_objectsManager.SETANISPR(0, 64); + _vm->_objectsManager.setSpriteIndex(0, 64); _vm->_objectsManager.BOBANIM_ON(2); _vm->_soundManager.PLAY_SOUND("SOUND66.WAV"); do { @@ -1653,7 +1653,7 @@ LABEL_1141: _vm->_objectsManager.SPRITE_ON(0); } if (v76 == 175) { - _vm->_objectsManager.SETANISPR(0, 55); + _vm->_objectsManager.setSpriteIndex(0, 55); _vm->_objectsManager.SPRITE_OFF(0); _vm->_objectsManager.BOBANIM_ON(9); _vm->_objectsManager.BOBANIM_ON(10); @@ -1710,13 +1710,13 @@ LABEL_1141: _vm->_objectsManager.OBSSEUL = 0; _vm->_globals.CACHE_ON(); _vm->_globals.NOT_VERIF = 1; - _vm->_objectsManager.g_old_x = _vm->_objectsManager.XSPR(0); + _vm->_objectsManager.g_old_x = _vm->_objectsManager.getSpriteX(0); _vm->_globals.g_old_sens = -1; _vm->_globals.Compteur = 0; _vm->_globals.chemin = (int16 *)g_PTRNUL; _vm->_globals.NOT_VERIF = 1; - int v43 = _vm->_objectsManager.YSPR(0); - int v44 = _vm->_objectsManager.XSPR(0); + int v43 = _vm->_objectsManager.getSpriteY(0); + int v44 = _vm->_objectsManager.getSpriteX(0); _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v44, v43, 488, 280); _vm->_globals.NOT_VERIF = 1; do { @@ -1740,8 +1740,8 @@ LABEL_1141: _vm->_eventsManager.VBL(); } while (_vm->_objectsManager.BOBPOSI(7) != 15); _vm->_objectsManager.BOBANIM_OFF(7); - _vm->_objectsManager.SETXSPR(0, 476); - _vm->_objectsManager.SETYSPR(0, 278); + _vm->_objectsManager.setSpriteX(0, 476); + _vm->_objectsManager.setSpriteY(0, 278); _vm->_objectsManager.SPRITE_ON(0); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 337, 154, 3); _vm->_objectsManager.OBSSEUL = 1; @@ -1938,9 +1938,9 @@ LABEL_1141: _vm->_eventsManager.VBL(); } - CharacterLocation *v51 = &_vm->_globals.SAUVEGARDE->realHopkins; - v51->_pos.x = _vm->_objectsManager.XSPR(0); - v51->_pos.y = _vm->_objectsManager.YSPR(0); + CharacterLocation *v51 = &_vm->_globals.SAUVEGARDE->_realHopkins; + v51->_pos.x = _vm->_objectsManager.getSpriteX(0); + v51->_pos.y = _vm->_objectsManager.getSpriteY(0); v51->field2 = 57; v51->_location = 97; _vm->_globals.SAUVEGARDE->data[svField121] = 1; @@ -2166,7 +2166,7 @@ LABEL_1141: _vm->_animationManager.NO_SEQ = true; _vm->_animationManager.playSequence("RESUF.SEQ", 1, 24, 1); _vm->_animationManager.NO_SEQ = false; - CharacterLocation *v53 = &_vm->_globals.SAUVEGARDE->samantha; + CharacterLocation *v53 = &_vm->_globals.SAUVEGARDE->_samantha; v53->_pos.x = 404; v53->_pos.y = 395; v53->field2 = 64; @@ -2189,7 +2189,7 @@ LABEL_1141: if (v76 == 245) { _vm->_soundManager.PLAY_SOUND("SOUND89.WAV"); _vm->_objectsManager.OPTI_ONE(5, 0, 6, 0); - _vm->_globals.ZONEP[4].destX = 276; + _vm->_globals.ZONEP[4]._destX = 276; _vm->_objectsManager.VERBE_ON(4, 19); _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, 285, 379, 0); _vm->_globals.SAUVEGARDE->data[svField399] = 1; @@ -2222,13 +2222,13 @@ LABEL_1141: _vm->_talkManager.PARLER_PERSO("gred1.pe2"); _vm->_globals.NOPARLE = false; _vm->_globals.NOT_VERIF = 1; - _vm->_objectsManager.g_old_x = _vm->_objectsManager.XSPR(0); + _vm->_objectsManager.g_old_x = _vm->_objectsManager.getSpriteX(0); _vm->_globals.g_old_sens = -1; _vm->_globals.Compteur = 0; _vm->_globals.chemin = (int16 *)g_PTRNUL; _vm->_globals.NOT_VERIF = 1; - int v55 = _vm->_objectsManager.YSPR(0); - int v56 = _vm->_objectsManager.XSPR(0); + int v55 = _vm->_objectsManager.getSpriteY(0); + int v56 = _vm->_objectsManager.getSpriteX(0); _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v56, v55, 361, 325); _vm->_globals.NOT_VERIF = 1; _vm->_objectsManager.NUMZONE = -1; @@ -2246,13 +2246,13 @@ LABEL_1141: _vm->_talkManager.PARLER_PERSO("gbleu1.pe2"); _vm->_globals.NOPARLE = false; _vm->_globals.NOT_VERIF = 1; - _vm->_objectsManager.g_old_x = _vm->_objectsManager.XSPR(0); + _vm->_objectsManager.g_old_x = _vm->_objectsManager.getSpriteX(0); _vm->_globals.g_old_sens = -1; _vm->_globals.Compteur = 0; _vm->_globals.chemin = (int16 *)g_PTRNUL; _vm->_globals.NOT_VERIF = 1; - int v57 = _vm->_objectsManager.YSPR(0); - int v58 = _vm->_objectsManager.XSPR(0); + int v57 = _vm->_objectsManager.getSpriteY(0); + int v58 = _vm->_objectsManager.getSpriteX(0); _vm->_globals.chemin = _vm->_linesManager.PARCOURS2(v58, v57, 361, 325); _vm->_globals.NOT_VERIF = 1; _vm->_objectsManager.NUMZONE = -1; diff --git a/engines/hopkins/talk.cpp b/engines/hopkins/talk.cpp index 292afafc98..0a89e9db31 100644 --- a/engines/hopkins/talk.cpp +++ b/engines/hopkins/talk.cpp @@ -739,18 +739,18 @@ void TalkManager::BOB_VISU_PARLE(int idx) { _vm->_objectsManager._priorityFl = true; if (!_vm->_globals.Bob[idx].field0) { _vm->_objectsManager.BOB_ZERO(idx); - v5 = _vm->_globals.Bqe_Anim[idx].data; + v5 = _vm->_globals.Bqe_Anim[idx]._data; v4 = (int16)READ_LE_UINT16(v5 + 2); if (!v4) v4 = 1; if ((int16)READ_LE_UINT16(v5 + 24)) { - _vm->_globals.Bob[idx].isSprite = true; + _vm->_globals.Bob[idx]._isSpriteFl = true; _vm->_globals.Bob[idx].field36 = 0; _vm->_globals.Bob[idx].field38 = 0; - _vm->_globals.Bob[idx].animData = _vm->_globals.Bqe_Anim[idx].data; + _vm->_globals.Bob[idx]._animData = _vm->_globals.Bqe_Anim[idx]._data; _vm->_globals.Bob[idx].field0 = 10; v5 = PERSOSPR; - _vm->_globals.Bob[idx].spriteData = PERSOSPR; + _vm->_globals.Bob[idx]._spriteData = PERSOSPR; _vm->_globals.Bob[idx].field1E = v4; _vm->_globals.Bob[idx].field20 = -1; _vm->_globals.Bob[idx].field22 = 0; @@ -853,7 +853,7 @@ void TalkManager::ANIM_PERSO_INIT() { void TalkManager::clearCharacterAnim() { for (int idx = 21; idx <= 34; ++idx) { - _vm->_globals.Bqe_Anim[idx].data = _vm->_globals.freeMemory(_vm->_globals.Bqe_Anim[idx].data); + _vm->_globals.Bqe_Anim[idx]._data = _vm->_globals.freeMemory(_vm->_globals.Bqe_Anim[idx]._data); _vm->_globals.Bqe_Anim[idx].field4 = 0; } } @@ -899,16 +899,16 @@ bool TalkManager::searchCharacterAnim(int a1, const byte *bufPerso, int a3, int if (v18 > a4) { _vm->_globals.Bqe_Anim[a1].field4 = 0; result = g_PTRNUL; - _vm->_globals.Bqe_Anim[v20].data = g_PTRNUL; + _vm->_globals.Bqe_Anim[v20]._data = g_PTRNUL; } ++v18; ++v6; ++v5; } while (v7 != 1); - _vm->_globals.Bqe_Anim[v20].data = _vm->_globals.allocMemory(v6 + 50); + _vm->_globals.Bqe_Anim[v20]._data = _vm->_globals.allocMemory(v6 + 50); _vm->_globals.Bqe_Anim[a1].field4 = 1; - memcpy(_vm->_globals.Bqe_Anim[v20].data, (const byte *)(v22 + bufPerso + 5), 20); - v8 = _vm->_globals.Bqe_Anim[v20].data; + memcpy(_vm->_globals.Bqe_Anim[v20]._data, (const byte *)(v22 + bufPerso + 5), 20); + v8 = _vm->_globals.Bqe_Anim[v20]._data; v9 = v8 + 20; v24 = v22 + bufPerso + 25; @@ -1076,7 +1076,7 @@ void TalkManager::REPONSE2(int a1, int a2) { if (a2 == 5 && _vm->_globals.SAUVEGARDE->data[svField3] == 4) { if ((uint16)(a1 - 22) <= 1u) { _vm->_objectsManager.SETFLIPSPR(0, 0); - _vm->_objectsManager.SETANISPR(0, 62); + _vm->_objectsManager.setSpriteIndex(0, 62); _vm->_objectsManager.SPACTION(_vm->_globals.FORETSPR, "2,3,4,5,6,7,8,9,10,11,12,-1,", 0, 0, 4, 0); if (a1 == 22) { v4 = _vm->_objectsManager.BOBX(3); @@ -1124,7 +1124,7 @@ void TalkManager::REPONSE2(int a1, int a2) { } if ((uint16)(a1 - 20) <= 1u) { _vm->_objectsManager.SETFLIPSPR(0, 1); - _vm->_objectsManager.SETANISPR(0, 62); + _vm->_objectsManager.setSpriteIndex(0, 62); _vm->_objectsManager.SPACTION(_vm->_globals.FORETSPR, "2,3,4,5,6,7,8,9,10,11,12,-1,", 0, 0, 4, 1); if (a1 == 20) { v8 = _vm->_objectsManager.BOBX(1); -- cgit v1.2.3