aboutsummaryrefslogtreecommitdiff
path: root/engines/hopkins/objects.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/hopkins/objects.cpp')
-rw-r--r--engines/hopkins/objects.cpp313
1 files changed, 150 insertions, 163 deletions
diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp
index 26c0d1c2a8..4c1b5949dc 100644
--- a/engines/hopkins/objects.cpp
+++ b/engines/hopkins/objects.cpp
@@ -278,7 +278,7 @@ void ObjectsManager::addObject(int objIndex) {
for (;;) {
++arrIndex;
if ((!_vm->_globals._inventory[arrIndex]) || (arrIndex == 32))
- break;;
+ break;
}
_vm->_globals._inventory[arrIndex] = objIndex;
@@ -620,7 +620,7 @@ void ObjectsManager::hideBob(int idx) {
_bob[idx].field0++;
}
-void ObjectsManager::BOB_OFFSET(int idx, int offset) {
+void ObjectsManager::setBobOffset(int idx, int offset) {
_bob[idx]._oldX2 = offset;
}
@@ -838,9 +838,9 @@ void ObjectsManager::computeSprite(int idx) {
offY = getOffsetY(spr->_spriteData, spr->_spriteIndex, false);
}
- int tmpX = spr->field12 + offX;
+ int tmpX = spr->_deltaX + offX;
int deltaX = tmpX;
- int tmpY = spr->field14 + offY;
+ int tmpY = spr->_deltaY + offY;
int deltaY = tmpY;
int zoomPercent = 0;
int reducePercent = 0;
@@ -927,10 +927,7 @@ void ObjectsManager::displayBobAnim() {
continue;
_bob[idx].field1C = false;
- int v1 = _bob[idx].field20;
- if (v1 == -1)
- v1 = 50;
- if (_bob[idx]._animData == g_PTRNUL || _bob[idx]._disabledAnimationFl || v1 <= 0) {
+ if (_bob[idx]._animData == g_PTRNUL || _bob[idx]._disabledAnimationFl || _bob[idx].field20 == 0 || _bob[idx].field20 < -1) {
if (_bob[idx].field1E == 1 || _bob[idx].field1E == 2)
_bob[idx].field1C = true;
continue;
@@ -964,11 +961,9 @@ void ObjectsManager::displayBobAnim() {
_bob[idx]._flipFl = (dataPtr[2 * dataIdx + 9] != 0);
_bob[idx]._animDataIdx += 5;
- int v5 = _bob[idx].field12;
- if (v5 > 0) {
- int v6 = v5 / _vm->_globals._speed;
- _bob[idx].field12 = v5 / _vm->_globals._speed;
- if (v6 > 0) {
+ if (_bob[idx].field12 > 0) {
+ _bob[idx].field12 /= _vm->_globals._speed;
+ if (_bob[idx].field12 > 0) {
_bob[idx].field14 = 1;
if (_bob[idx].field1E == 1 || _bob[idx].field1E == 2)
_bob[idx].field1C = true;
@@ -998,13 +993,11 @@ void ObjectsManager::displayBobAnim() {
_bob[idx]._frameIndex = v21[8];
_bob[idx]._flipFl = (v21[9] != 0);
_bob[idx]._animDataIdx += 5;
- int v10 = _bob[idx].field12;
- if (v10 > 0) {
- int v11 = v10 / _vm->_globals._speed;
- _bob[idx].field12 = v11;
+ if (_bob[idx].field12 > 0) {
+ _bob[idx].field12 /= _vm->_globals._speed;
// Original code. It can't be negative, so the check is on == 0
- if (v11 <= 0)
+ if (_bob[idx].field12 <= 0)
_bob[idx].field12 = 1;
}
}
@@ -1058,13 +1051,13 @@ void ObjectsManager::displayBobAnim() {
_bob[i]._oldY = 0;
if (_bob[i].field0 == 10 && !_bob[i]._disabledAnimationFl && _bob[i].field1C) {
CALCUL_BOB(i);
- int v19 = _bob[i]._oldX2 + _bob[i]._oldHeight + _bob[i]._oldY;
+ int priority = _bob[i]._oldX2 + _bob[i]._oldHeight + _bob[i]._oldY;
- if (v19 > 450)
- v19 = 600;
+ if (priority > 450)
+ priority = 600;
if (_bob[i]._activeFl)
- beforeSort(SORT_BOB, i, v19);
+ beforeSort(SORT_BOB, i, priority);
}
}
}
@@ -1194,7 +1187,7 @@ void ObjectsManager::animateSprite(int idx) {
_sprite[idx]._animationType = 1;
}
-void ObjectsManager::addStaticSprite(const byte *spriteData, Common::Point pos, int idx, int spriteIndex, int zoomFactor, bool flipFl, int a8, int a9) {
+void ObjectsManager::addStaticSprite(const byte *spriteData, Common::Point pos, int idx, int spriteIndex, int zoomFactor, bool flipFl, int deltaX, int deltaY) {
assert (idx <= MAX_SPRITE);
SpriteItem *spr = &_sprite[idx];
@@ -1203,8 +1196,8 @@ void ObjectsManager::addStaticSprite(const byte *spriteData, Common::Point pos,
spr->_spriteIndex = spriteIndex;
spr->_zoomFactor = zoomFactor;
spr->_flipFl = flipFl;
- spr->field12 = a8;
- spr->field14 = a9;
+ spr->_deltaX = deltaX;
+ spr->_deltaY = deltaY;
spr->_animationType = 0;
if (READ_BE_UINT24(spriteData) == MKTAG24('R', 'L', 'E')) {
@@ -1296,7 +1289,7 @@ void ObjectsManager::GOHOME() {
_vm->_globals._actionDirection = DIR_NONE;
int zoneId;
if (_vm->_globals._actionMoveTo)
- zoneId = _vm->_globals._saveData->_data[svField2];
+ zoneId = _vm->_globals._saveData->_data[svLastZoneNum];
else
zoneId = _zoneNum;
_vm->_linesManager._route = (RouteItem *)g_PTRNUL;
@@ -1514,7 +1507,7 @@ void ObjectsManager::GOHOME() {
if (newPosX == -1 && newPosY == -1) {
int zoneId;
if (_vm->_globals._actionMoveTo)
- zoneId = _vm->_globals._saveData->_data[svField2];
+ zoneId = _vm->_globals._saveData->_data[svLastZoneNum];
else
zoneId = _zoneNum;
setSpriteIndex(0, _vm->_globals._oldDirection + 59);
@@ -1766,7 +1759,7 @@ void ObjectsManager::handleCityMap() {
_vm->_graphicsManager.SETCOLOR3(254, 0, 0, 0);
for (int i = 0; i <= 4; i++)
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
_vm->_globals.iRegul = 1;
_vm->_graphicsManager.fadeInLong();
@@ -1777,15 +1770,17 @@ void ObjectsManager::handleCityMap() {
do {
int mouseButton = _vm->_eventsManager.getMouseButton();
if (mouseButton) {
- if (_vm->_globals._saveData->_data[svField170] == 1 && !_vm->_globals._saveData->_data[svField171]) {
- _vm->_globals._saveData->_data[svField171] = 1;
+ // First cop call : Go to the bank and free the hostages
+ if (_vm->_globals._saveData->_data[svBankAttackAnimPlayedFl] == 1 && !_vm->_globals._saveData->_data[svCopCall1PlayedFl]) {
+ _vm->_globals._saveData->_data[svCopCall1PlayedFl] = 1;
_vm->_globals._introSpeechOffFl = true;
_vm->_talkManager.startAnimatedCharacterDialogue("APPEL1.pe2");
_vm->_globals._introSpeechOffFl = false;
mouseButton = 0;
}
- if (_vm->_globals._saveData->_data[svField80] == 1 && !_vm->_globals._saveData->_data[svField172]) {
- _vm->_globals._saveData->_data[svField172] = 1;
+ // Second cop call: Helico has been found in the empty lot
+ if (_vm->_globals._saveData->_data[svFreedHostageFl] == 1 && !_vm->_globals._saveData->_data[svCopCall2PlayedFl]) {
+ _vm->_globals._saveData->_data[svCopCall2PlayedFl] = 1;
_vm->_globals._introSpeechOffFl = true;
_vm->_talkManager.startAnimatedCharacterDialogue("APPEL2.pe2");
_vm->_globals._introSpeechOffFl = false;
@@ -1801,7 +1796,7 @@ void ObjectsManager::handleCityMap() {
if (_vm->_linesManager._route == (RouteItem *)g_PTRNUL && _vm->_globals._actionMoveTo)
PARADISE();
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
if (_vm->_globals._exitId)
loopCond = true;
@@ -1869,18 +1864,18 @@ void ObjectsManager::handleLeftButton() {
return;
int routeIdx = 0;
do {
- _vm->_linesManager.essai2[routeIdx] = _vm->_linesManager._route[routeIdx];
+ _vm->_linesManager._testRoute2[routeIdx] = _vm->_linesManager._route[routeIdx];
++routeIdx;
} while (_vm->_linesManager._route[routeIdx]._x != -1);
- _vm->_linesManager.essai2[routeIdx].invalidate();;
+ _vm->_linesManager._testRoute2[routeIdx].invalidate();
}
if (_vm->_globals._actionMoveTo) {
_vm->_linesManager.checkZone();
_vm->_globals._actionMoveTo = false;
- _vm->_globals._saveData->_data[svField1] = 0;
- _vm->_globals._saveData->_data[svField2] = 0;
+ _vm->_globals._saveData->_data[svLastMouseCursor] = 0;
+ _vm->_globals._saveData->_data[svLastZoneNum] = 0;
}
if (_vm->_globals._cityMapEnabledFl && (_vm->_eventsManager._mouseCursorId != 4 || _zoneNum <= 0))
@@ -1937,14 +1932,14 @@ void ObjectsManager::handleLeftButton() {
if (_zoneNum != -1 && _zoneNum != 0) {
if (_vm->_eventsManager._mouseCursorId == 23)
- _vm->_globals._saveData->_data[svField1] = 5;
+ _vm->_globals._saveData->_data[svLastMouseCursor] = 5;
else
- _vm->_globals._saveData->_data[svField1] = _vm->_eventsManager._mouseCursorId;
+ _vm->_globals._saveData->_data[svLastMouseCursor] = _vm->_eventsManager._mouseCursorId;
if (_vm->_globals._cityMapEnabledFl)
- _vm->_globals._saveData->_data[svField1] = 6;
- _vm->_globals._saveData->_data[svField2] = _zoneNum;
- _vm->_globals._saveData->_data[svField3] = _curObjectIndex;
+ _vm->_globals._saveData->_data[svLastMouseCursor] = 6;
+ _vm->_globals._saveData->_data[svLastZoneNum] = _zoneNum;
+ _vm->_globals._saveData->_data[svLastObjectIndex] = _curObjectIndex;
_vm->_globals._actionMoveTo = true;
}
_vm->_fontManager.hideText(5);
@@ -1960,8 +1955,8 @@ void ObjectsManager::handleLeftButton() {
}
void ObjectsManager::PARADISE() {
- char result = _vm->_globals._saveData->_data[svField1];
- if (result && _vm->_globals._saveData->_data[svField2] && result != 4 && result > 3) {
+ char result = _vm->_globals._saveData->_data[svLastMouseCursor];
+ if (result && _vm->_globals._saveData->_data[svLastZoneNum] && result != 4 && result > 3) {
_vm->_fontManager.hideText(5);
if (!_forestFl || _zoneNum < 20 || _zoneNum > 23) {
if (_vm->_graphicsManager._largeScreenFl) {
@@ -1981,7 +1976,7 @@ void ObjectsManager::PARADISE() {
if (_vm->_eventsManager.getMouseX() > _vm->_graphicsManager._scrollPosX + 620)
_vm->_eventsManager.setMouseXY(_vm->_eventsManager._mousePos.x - 4, _vm->_eventsManager.getMouseY());
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
} while (!loopCond && _vm->_eventsManager._startPos.x > getSpriteX(0) - 320);
} else if (_vm->_eventsManager._startPos.x + 320 - getSpriteX(0) < -160) {
bool loopCond = false;
@@ -1998,30 +1993,30 @@ void ObjectsManager::PARADISE() {
if (_vm->_eventsManager.getMouseX() < _vm->_graphicsManager._scrollPosX + 10)
_vm->_eventsManager.setMouseXY(_vm->_eventsManager._mousePos.x + 4, _vm->_eventsManager.getMouseY());
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
} while (!loopCond && _vm->_eventsManager._startPos.x < getSpriteX(0) - 320);
}
if (_vm->_eventsManager.getMouseX() > _vm->_graphicsManager._scrollPosX + 620)
_vm->_eventsManager.setMouseXY(_vm->_graphicsManager._scrollPosX + 610, 0);
if (_vm->_eventsManager.getMouseX() < _vm->_graphicsManager._scrollPosX + 10)
_vm->_eventsManager.setMouseXY(_vm->_graphicsManager._scrollPosX + 10, 0);
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
_vm->_graphicsManager._scrollStatus = 0;
}
- _vm->_talkManager.REPONSE(_vm->_globals._saveData->_data[svField2], _vm->_globals._saveData->_data[svField1]);
+ _vm->_talkManager.REPONSE(_vm->_globals._saveData->_data[svLastZoneNum], _vm->_globals._saveData->_data[svLastMouseCursor]);
} else {
- _vm->_talkManager.REPONSE2(_vm->_globals._saveData->_data[svField2], _vm->_globals._saveData->_data[svField1]);
+ _vm->_talkManager.REPONSE2(_vm->_globals._saveData->_data[svLastZoneNum], _vm->_globals._saveData->_data[svLastMouseCursor]);
}
_vm->_eventsManager.changeMouseCursor(4);
if (_zoneNum != -1 && _zoneNum != 0 && !_vm->_linesManager.ZONEP[_zoneNum]._enabledFl) {
_zoneNum = -1;
_forceZoneFl = true;
}
- if (_zoneNum != _vm->_globals._saveData->_data[svField2] || _zoneNum == -1 || _zoneNum == 0) {
+ if (_zoneNum != _vm->_globals._saveData->_data[svLastZoneNum] || _zoneNum == -1 || _zoneNum == 0) {
_vm->_eventsManager._mouseCursorId = 4;
_changeVerbFl = false;
} else {
- _vm->_eventsManager._mouseCursorId = _vm->_globals._saveData->_data[svField1];
+ _vm->_eventsManager._mouseCursorId = _vm->_globals._saveData->_data[svLastMouseCursor];
if (_changeVerbFl) {
nextVerbIcon();
_changeVerbFl = false;
@@ -2032,8 +2027,8 @@ void ObjectsManager::PARADISE() {
if (_vm->_eventsManager._mouseCursorId != 23)
_vm->_eventsManager.changeMouseCursor(_vm->_eventsManager._mouseCursorId);
_zoneNum = 0;
- _vm->_globals._saveData->_data[svField1] = 0;
- _vm->_globals._saveData->_data[svField2] = 0;
+ _vm->_globals._saveData->_data[svLastMouseCursor] = 0;
+ _vm->_globals._saveData->_data[svLastZoneNum] = 0;
}
if (_vm->_globals._cityMapEnabledFl) {
_vm->_eventsManager._mouseCursorId = 0;
@@ -2075,8 +2070,8 @@ void ObjectsManager::clearScreen() {
_vm->_globals.SPRITE_ECRAN = _vm->_globals.freeMemory(_vm->_globals.SPRITE_ECRAN);
_vm->_eventsManager._startPos.x = 0;
_vm->_eventsManager._mouseSpriteId = 0;
- _vm->_globals._saveData->_data[svField1] = 0;
- _vm->_globals._saveData->_data[svField2] = 0;
+ _vm->_globals._saveData->_data[svLastMouseCursor] = 0;
+ _vm->_globals._saveData->_data[svLastZoneNum] = 0;
_vm->_globals._actionMoveTo = false;
_forceZoneFl = true;
_changeVerbFl = false;
@@ -2181,21 +2176,21 @@ void ObjectsManager::changeCharacterHead(PlayerCharacter oldCharacter, PlayerCha
switch (newCharacter) {
case CHARACTER_HOPKINS:
- _vm->_globals._saveData->_data[svField121] = 0;
+ _vm->_globals._saveData->_data[svHopkinsCloneFl] = 0;
_vm->_globals._saveData->_data[svField354] = 0;
_vm->_globals._saveData->_data[svField356] = 0;
_vm->_globals._saveData->_data[svField357] = 1;
_vm->_globals._exitId = _vm->_globals._saveData->_realHopkins._location;
break;
case CHARACTER_HOPKINS_CLONE:
- _vm->_globals._saveData->_data[svField121] = 1;
+ _vm->_globals._saveData->_data[svHopkinsCloneFl] = 1;
_vm->_globals._saveData->_data[svField354] = 1;
_vm->_globals._saveData->_data[svField356] = 0;
_vm->_globals._saveData->_data[svField357] = 0;
_vm->_globals._exitId = _vm->_globals._saveData->_cloneHopkins._location;
break;
case CHARACTER_SAMANTHA:
- _vm->_globals._saveData->_data[svField121] = 0;
+ _vm->_globals._saveData->_data[svHopkinsCloneFl] = 0;
_vm->_globals._saveData->_data[svField354] = 0;
_vm->_globals._saveData->_data[svField356] = 1;
_vm->_globals._saveData->_data[svField357] = 0;
@@ -2535,7 +2530,7 @@ void ObjectsManager::OPTI_OBJET() {
int lastOpcodeResult = 1;
file = "OBJET1.ini";
- data = _vm->_fileManager.searchCat(file, 1);
+ data = _vm->_fileManager.searchCat(file, RES_INI);
if (data == g_PTRNUL) {
data = _vm->_fileManager.loadFile(file);
if (data == g_PTRNUL)
@@ -2613,7 +2608,7 @@ void ObjectsManager::handleSpecialGames() {
memcpy(_vm->_graphicsManager._vesaBuffer, _vm->_graphicsManager._vesaScreen, 614399);
_vm->_graphicsManager._scrollStatus = 0;
- _vm->_graphicsManager.DD_VBL();
+ _vm->_graphicsManager.updateScreen();
break;
case 20:
_vm->_globals._saveData->_data[svField132] = (getSpriteX(0) > 65 && getSpriteX(0) <= 124 && getSpriteY(0) > 372 && getSpriteY(0) <= 398) ? 1 : 0;
@@ -2685,7 +2680,7 @@ void ObjectsManager::handleSpecialGames() {
_vm->_globals._disableInventFl = true;
do
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
while (getBobAnimDataIdx(8) != 3);
_vm->_globals._introSpeechOffFl = true;
_vm->_talkManager.startAnimatedCharacterDialogue("GM3.PE2");
@@ -2757,34 +2752,34 @@ void ObjectsManager::doActionBack(int idx) {
switch (idx) {
case 1:
- ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,8,8,8,8,8,7,6,5,4,3,2,1,0,-1,", 0, 0, 8, false);
+ ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,8,8,8,8,8,7,6,5,4,3,2,1,0,-1,", 8, false);
break;
case 2:
- SPACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,13,-1,", 0, 0, 8, false);
+ SPACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,13,-1,", 8, false);
break;
case 3:
- SPACTION1(_gestureBuf, "12,11,10,9,8,7,6,5,4,3,2,1,0,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "12,11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8);
break;
case 4:
- ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,8,8,8,8,8,9,10,11,12,13,12,11,12,13,12,11,12,13,12,11,10,9,8,7,6,5,4,3,2,1,0,-1,", 0, 0, 8, false);
+ ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,8,8,8,8,8,9,10,11,12,13,12,11,12,13,12,11,12,13,12,11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8, false);
break;
case 5:
- SPACTION(_gestureBuf, "15,16,17,18,19,20,21,-1,", 0, 0, 8, false);
+ SPACTION(_gestureBuf, "15,16,17,18,19,20,21,-1,", 8, false);
break;
case 6:
- SPACTION1(_gestureBuf, "20,19,18,17,16,15,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "20,19,18,17,16,15,-1,", 8);
break;
case 7:
- SPACTION(_gestureBuf, "15,16,17,18,19,20,21,22,23,24,-1,", 0, 0, 8, false);
+ SPACTION(_gestureBuf, "15,16,17,18,19,20,21,22,23,24,-1,", 8, false);
break;
case 8:
- SPACTION1(_gestureBuf, "23,22,21,20,19,18,17,16,15,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "23,22,21,20,19,18,17,16,15,-1,", 8);
break;
case 9:
- SPACTION(_gestureBuf, "15,16,17,18,19,20,21,22,23,24,-1,", 0, 0, 8, false);
+ SPACTION(_gestureBuf, "15,16,17,18,19,20,21,22,23,24,-1,", 8, false);
break;
case 10:
- SPACTION1(_gestureBuf, "23,22,21,20,19,18,17,16,15,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "23,22,21,20,19,18,17,16,15,-1,", 8);
break;
}
}
@@ -2798,34 +2793,34 @@ void ObjectsManager::doActionRight(int idx) {
switch (idx) {
case 1:
- ACTION(_gestureBuf, "20,19,18,17,16,15,14,13,13,13,13,13,14,15,16,17,18,19,20,-1,", 0, 0, 8, false);
+ ACTION(_gestureBuf, "20,19,18,17,16,15,14,13,13,13,13,13,14,15,16,17,18,19,20,-1,", 8, false);
break;
case 2:
- SPACTION(_gestureBuf, "1,2,3,4,5,6,7,8,-1,", 0, 0, 8, false);
+ SPACTION(_gestureBuf, "1,2,3,4,5,6,7,8,-1,", 8, false);
break;
case 3:
- SPACTION1(_gestureBuf, "9,10,11,12,13,14,15,16,17,18,19,20,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "9,10,11,12,13,14,15,16,17,18,19,20,-1,", 8);
break;
case 4:
- ACTION(_gestureBuf, "1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1,-1,", 0, 0, 8, false);
+ ACTION(_gestureBuf, "1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1,-1,", 8, false);
break;
case 5:
- SPACTION(_gestureBuf, "23,24,25,-1,", 0, 0, 8, false);
+ SPACTION(_gestureBuf, "23,24,25,-1,", 8, false);
break;
case 6:
- SPACTION1(_gestureBuf, "24,,23,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "24,,23,-1,", 8);
break;
case 7:
- SPACTION(_gestureBuf, "23,24,25,26,27,-1,", 0, 0, 8, false);
+ SPACTION(_gestureBuf, "23,24,25,26,27,-1,", 8, false);
break;
case 8:
- SPACTION1(_gestureBuf, "26,25,24,23,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "26,25,24,23,-1,", 8);
break;
case 9:
- SPACTION(_gestureBuf, "23,24,25,26,27,28,29,-1,", 0, 0, 8, false);
+ SPACTION(_gestureBuf, "23,24,25,26,27,28,29,-1,", 8, false);
break;
case 10:
- SPACTION1(_gestureBuf, "28,27,26,25,24,23,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "28,27,26,25,24,23,-1,", 8);
break;
}
}
@@ -2839,34 +2834,34 @@ void ObjectsManager::doActionDiagRight(int idx) {
switch (idx) {
case 1:
- ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,8,8,8,8,7,6,5,4,3,2,1,0,-1,", 0, 0, 8, false);
+ ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,8,8,8,8,7,6,5,4,3,2,1,0,-1,", 8, false);
break;
case 2:
- SPACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,-1,", 0, 0, 8, false);
+ SPACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,-1,", 8, false);
break;
case 3:
- SPACTION1(_gestureBuf, "11,10,9,8,7,6,5,4,3,2,1,0,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8);
break;
case 4:
- ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,11,12,11,12,11,12,11,10,9,8,7,6,5,4,3,2,1,0,-1,", 0, 0, 8, false);
+ ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,11,12,11,12,11,12,11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8, false);
break;
case 5:
- SPACTION(_gestureBuf, "15,16,17,18,-1,", 0, 0, 8, false);
+ SPACTION(_gestureBuf, "15,16,17,18,-1,", 8, false);
break;
case 6:
- SPACTION1(_gestureBuf, "17,16,15,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "17,16,15,-1,", 8);
break;
case 7:
- SPACTION(_gestureBuf, "15,16,17,18,19,20-1,", 0, 0, 8, false);
+ SPACTION(_gestureBuf, "15,16,17,18,19,20-1,", 8, false);
break;
case 8:
- SPACTION1(_gestureBuf, "19,18,17,16,15,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "19,18,17,16,15,-1,", 8);
break;
case 9:
- SPACTION(_gestureBuf, "15,16,17,18,19,20,21,-1,", 0, 0, 8, false);
+ SPACTION(_gestureBuf, "15,16,17,18,19,20,21,-1,", 8, false);
break;
case 10:
- SPACTION1(_gestureBuf, "20,19,18,17,15,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "20,19,18,17,15,-1,", 8);
break;
}
}
@@ -2880,16 +2875,16 @@ void ObjectsManager::doActionFront(int idx) {
switch (idx) {
case 1:
- ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,9,9,9,9,9,9,7,6,5,4,3,2,1,0,-1,", 0, 0, 8, false);
+ ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,9,9,9,9,9,9,7,6,5,4,3,2,1,0,-1,", 8, false);
break;
case 2:
- SPACTION(_gestureBuf, "0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,-1,", 0, 0, 8, false);
+ SPACTION(_gestureBuf, "0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,-1,", 8, false);
break;
case 3:
- SPACTION1(_gestureBuf, "14,13,12,11,10,9,7,6,5,4,3,2,1,0,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "14,13,12,11,10,9,7,6,5,4,3,2,1,0,-1,", 8);
break;
case 4:
- ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,9,10,11,12,13,14,13,12,11,10,9,7,6,5,4,3,2,1,0,-1,", 0, 0, 8, false);
+ ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,9,10,11,12,13,14,13,12,11,10,9,7,6,5,4,3,2,1,0,-1,", 8, false);
break;
}
}
@@ -2903,34 +2898,34 @@ void ObjectsManager::doActionDiagLeft(int idx) {
switch (idx) {
case 1:
- ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,8,8,8,8,7,6,5,4,3,2,1,0,-1,", 0, 0, 8, true);
+ ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,8,8,8,8,7,6,5,4,3,2,1,0,-1,", 8, true);
break;
case 2:
- SPACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,-1,", 0, 0, 8, true);
+ SPACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,-1,", 8, true);
break;
case 3:
- SPACTION1(_gestureBuf, "11,10,9,8,7,6,5,4,3,2,1,0,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8);
break;
case 4:
- ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,11,12,11,12,11,12,11,10,9,8,7,6,5,4,3,2,1,0,-1,", 0, 0, 8, true);
+ ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,11,12,11,12,11,12,11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8, true);
break;
case 5:
- SPACTION(_gestureBuf, "15,16,17,18,-1,", 0, 0, 8, true);
+ SPACTION(_gestureBuf, "15,16,17,18,-1,", 8, true);
break;
case 6:
- SPACTION1(_gestureBuf, "17,16,15,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "17,16,15,-1,", 8);
break;
case 7:
- SPACTION(_gestureBuf, "15,16,17,18,19,20,-1,", 0, 0, 8, true);
+ SPACTION(_gestureBuf, "15,16,17,18,19,20,-1,", 8, true);
break;
case 8:
- SPACTION1(_gestureBuf, "19,18,17,16,15,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "19,18,17,16,15,-1,", 8);
break;
case 9:
- SPACTION(_gestureBuf, "15,16,17,18,19,20,21,-1,", 0, 0, 8, true);
+ SPACTION(_gestureBuf, "15,16,17,18,19,20,21,-1,", 8, true);
break;
case 10:
- SPACTION1(_gestureBuf, "20,19,18,17,15,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "20,19,18,17,15,-1,", 8);
break;
}
}
@@ -2944,34 +2939,34 @@ void ObjectsManager::doActionLeft(int idx) {
switch (idx) {
case 1:
- ACTION(_gestureBuf, "20,19,18,17,16,15,14,13,13,13,13,13,14,15,16,17,18,19,20,-1,", 0, 0, 8, true);
+ ACTION(_gestureBuf, "20,19,18,17,16,15,14,13,13,13,13,13,14,15,16,17,18,19,20,-1,", 8, true);
break;
case 2:
- SPACTION(_gestureBuf, "1,2,3,4,5,6,7,8,-1,", 0, 0, 8, true);
+ SPACTION(_gestureBuf, "1,2,3,4,5,6,7,8,-1,", 8, true);
break;
case 3:
- SPACTION1(_gestureBuf, "9,10,11,12,13,14,15,16,17,18,19,20,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "9,10,11,12,13,14,15,16,17,18,19,20,-1,", 8);
break;
case 4:
- ACTION(_gestureBuf, "1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1,-1,", 0, 0, 8, true);
+ ACTION(_gestureBuf, "1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1,-1,", 8, true);
break;
case 5:
- SPACTION(_gestureBuf, "23,24,25,-1,", 0, 0, 8, true);
+ SPACTION(_gestureBuf, "23,24,25,-1,", 8, true);
break;
case 6:
- SPACTION1(_gestureBuf, "24,,23,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "24,,23,-1,", 8);
break;
case 7:
- SPACTION(_gestureBuf, "23,24,25,26,27,-1,", 0, 0, 8, true);
+ SPACTION(_gestureBuf, "23,24,25,26,27,-1,", 8, true);
break;
case 8:
- SPACTION1(_gestureBuf, "26,25,24,23,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "26,25,24,23,-1,", 8);
break;
case 9:
- SPACTION(_gestureBuf, "23,24,25,26,27,28,29,-1,", 0, 0, 8, true);
+ SPACTION(_gestureBuf, "23,24,25,26,27,28,29,-1,", 8, true);
break;
case 10:
- SPACTION1(_gestureBuf, "28,27,26,25,24,23,-1,", 0, 0, 8);
+ SPACTION1(_gestureBuf, "28,27,26,25,24,23,-1,", 8);
break;
}
}
@@ -2985,7 +2980,7 @@ void ObjectsManager::OPTI_ONE(int idx, int animIdx, int destPosi, int animAction
// Make Hopkins walk to the expected place
do {
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
} while (destPosi != getBobAnimDataIdx(idx));
if (!animAction)
@@ -2994,7 +2989,7 @@ void ObjectsManager::OPTI_ONE(int idx, int animIdx, int destPosi, int animAction
_vm->_graphicsManager.fastDisplay(_bob[idx]._spriteData,
_bob[idx]._oldX, _bob[idx]._oldY, _bob[idx]._frameIndex);
stopBobAnimation(idx);
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
}
}
@@ -3047,7 +3042,7 @@ int ObjectsManager::getBobFrameIndex(int idx) {
void ObjectsManager::loadLinkFile(const Common::String &file) {
Common::File f;
Common::String filename = file + ".LNK";
- byte *ptr = _vm->_fileManager.searchCat(filename, 3);
+ byte *ptr = _vm->_fileManager.searchCat(filename, RES_LIN);
size_t nbytes = _vm->_globals._catalogSize;
if (ptr == g_PTRNUL) {
if (!f.open(filename))
@@ -3068,7 +3063,7 @@ void ObjectsManager::loadLinkFile(const Common::String &file) {
Common::String filename2 = Common::String((const char *)ptr + 1000);
if (!filename2.empty()) {
- _vm->_globals._hidingItemData[1] = _vm->_fileManager.searchCat(filename2, 8);
+ _vm->_globals._hidingItemData[1] = _vm->_fileManager.searchCat(filename2, RES_SLI);
if (_vm->_globals._hidingItemData[1] || _vm->_globals._hidingItemData[1] == g_PTRNUL) {
_vm->_globals._hidingItemData[1] = _vm->_fileManager.loadFile(filename2);
@@ -3152,22 +3147,23 @@ void ObjectsManager::loadLinkFile(const Common::String &file) {
}
int curLineIdx = 0;
- int v28;
- do {
- v28 = READ_LE_INT16(curDataPtr + 2 * curDataIdx);
- if (v28 != -1) {
+ for (;;) {
+ int bobZoneId = READ_LE_INT16(curDataPtr + 2 * curDataIdx);
+ if (bobZoneId != -1) {
_vm->_linesManager.addZoneLine(
curLineIdx,
READ_LE_INT16(curDataPtr + 2 * curDataIdx + 2),
READ_LE_INT16(curDataPtr + 2 * curDataIdx + 4),
READ_LE_INT16(curDataPtr + 2 * curDataIdx + 6),
READ_LE_INT16(curDataPtr + 2 * curDataIdx + 8),
- v28);
- _vm->_linesManager.ZONEP[v28]._enabledFl = true;
+ bobZoneId);
+ _vm->_linesManager.ZONEP[bobZoneId]._enabledFl = true;
}
curDataIdx += 5;
++curLineIdx;
- } while (v28 != -1);
+ if (bobZoneId == -1)
+ break;
+ }
for (int i = 1; i <= 100; i++) {
_vm->_linesManager.ZONEP[i]._destX = READ_LE_INT16(curDataPtr + 2 * curDataIdx);
_vm->_linesManager.ZONEP[i]._destY = READ_LE_INT16(curDataPtr + 2 * curDataIdx + 2);
@@ -3201,7 +3197,7 @@ void ObjectsManager::loadLinkFile(const Common::String &file) {
_vm->_globals.freeMemory(ptr);
}
-void ObjectsManager::SPECIAL_INI() {
+void ObjectsManager::sceneSpecialIni() {
switch (_vm->_globals._screenId) {
case 17:
if (_vm->_globals._prevScreenId == 20) {
@@ -3211,11 +3207,11 @@ void ObjectsManager::SPECIAL_INI() {
_vm->_graphicsManager.SETCOLOR3(251, 100, 100, 100);
_vm->_graphicsManager.SETCOLOR3(254, 0, 0, 0);
for (int i = 0; i <= 4; i++)
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
_vm->_graphicsManager.fadeInLong();
animateSprite(0);
for (int i = 0; i <= 4; i++)
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
VBOB(_vm->_globals.SPRITE_ECRAN, 5, 15, 28, 1);
_vm->_fontManager.hideText(9);
bool displayedTxtFl = false;
@@ -3231,12 +3227,12 @@ void ObjectsManager::SPECIAL_INI() {
_vm->_globals._saveData->_data[svField320] = 1;
if (_vm->_soundManager._voiceOffFl) {
for (int i = 0; i <= 199; i++)
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
}
_vm->_fontManager.hideText(9);
VBOB_OFF(5);
for (int i = 0; i <= 3; i++)
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
_vm->_graphicsManager._noFadingFl = true;
_vm->_globals._disableInventFl = false;
}
@@ -3246,7 +3242,7 @@ void ObjectsManager::SPECIAL_INI() {
if (_vm->_globals._prevScreenId == 17) {
_vm->_eventsManager._mouseSpriteId = 4;
for (int i = 0; i <= 4; i++)
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
_vm->_graphicsManager.fadeInLong();
_vm->_globals.iRegul = 1;
_vm->_globals._disableInventFl = false;
@@ -3281,14 +3277,14 @@ void ObjectsManager::SPECIAL_INI() {
_vm->_linesManager.ZONEP[21]._messageId = 30;
_vm->_linesManager.ZONEP[22]._messageId = 30;
_vm->_linesManager.ZONEP[23]._messageId = 30;
- for (int i = 200; i <= 214; i++) {
+ for (int i = svField200; i <= svField214; i++) {
if (_vm->_globals._saveData->_data[i] != 2)
_vm->_globals._saveData->_data[i] = 0;
}
break;
case 73:
- if (!_vm->_globals._saveData->_data[svField318]) {
+ if (!_vm->_globals._saveData->_data[svSecondElevatorAvailableFl]) {
_vm->_globals.resetHidingUseCount(0);
_vm->_globals.resetHidingUseCount(1);
}
@@ -3316,7 +3312,7 @@ void ObjectsManager::OPTI_BOBON(int idx1, int idx2, int idx3, int anim1Idx, int
setBobAnimDataIdx(idx3, anim3Idx);
}
-void ObjectsManager::SCI_OPTI_ONE(int idx, int animIdx, int a3, int a4) {
+void ObjectsManager::SCI_OPTI_ONE(int idx, int animIdx, int animDataIdx, int a4) {
_vm->_eventsManager._curMouseButton = 0;
_vm->_eventsManager._mouseButton = 0;
@@ -3326,10 +3322,10 @@ void ObjectsManager::SCI_OPTI_ONE(int idx, int animIdx, int a3, int a4) {
}
do {
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
if (_vm->_eventsManager._curMouseButton)
break;
- } while (a3 != getBobAnimDataIdx(idx));
+ } while (animDataIdx != getBobAnimDataIdx(idx));
if (!a4)
stopBobAnimation(idx);
}
@@ -3444,7 +3440,7 @@ void ObjectsManager::enableVerb(int idx, int a2) {
}
}
-void ObjectsManager::ACTION(const byte *spriteData, const Common::String &actionStr, int a3, int a4, int speed, bool flipFl) {
+void ObjectsManager::ACTION(const byte *spriteData, const Common::String &actionStr, int speed, bool flipFl) {
Common::String tmpStr = "";
int realSpeed = speed;
if (_vm->_globals._speed == 2)
@@ -3454,8 +3450,6 @@ void ObjectsManager::ACTION(const byte *spriteData, const Common::String &action
const byte *oldSpriteData = _sprite[0]._spriteData;
int spriteIndex = _sprite[0]._spriteIndex;
bool oldFlipFl = _sprite[0]._flipFl;
- _sprite[0].field12 += a3;
- _sprite[0].field14 += a4;
_sprite[0]._flipFl = flipFl;
int idx = 0;
@@ -3474,22 +3468,20 @@ void ObjectsManager::ACTION(const byte *spriteData, const Common::String &action
if (idx == -1) {
_sprite[0]._spriteData = oldSpriteData;
_sprite[0]._spriteIndex = spriteIndex;
- _sprite[0].field12 -= a3;
- _sprite[0].field14 -= a4;
_sprite[0]._flipFl = oldFlipFl;
} else {
_sprite[0]._spriteData = spriteData;
_sprite[0]._spriteIndex = idx;
}
for (int i = 0; i < realSpeed; i++)
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
if (idx == -1)
break;
}
}
}
-void ObjectsManager::SPACTION(byte *spriteData, const Common::String &animationSeq, int a3, int a4, int speed, bool flipFl) {
+void ObjectsManager::SPACTION(byte *spriteData, const Common::String &animationSeq, int speed, bool flipFl) {
Common::String tmpStr = "";
int realSpeed = speed;
@@ -3501,8 +3493,6 @@ void ObjectsManager::SPACTION(byte *spriteData, const Common::String &animationS
_oldSpriteData = _sprite[0]._spriteData;
_oldSpriteIndex = _sprite[0]._spriteIndex;
_oldFlipFl = _sprite[0]._flipFl;
- _sprite[0].field12 += a3;
- _sprite[0].field14 += a4;
_sprite[0]._flipFl = flipFl;
uint strPos = 0;
@@ -3529,11 +3519,11 @@ void ObjectsManager::SPACTION(byte *spriteData, const Common::String &animationS
_sprite[0]._spriteIndex = spriteIndex;
}
for (int i = 0; i < realSpeed; i++)
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
} while (spriteIndex != -1);
}
-void ObjectsManager::SPACTION1(byte *spriteData, const Common::String &animString, int a3, int a4, int speed) {
+void ObjectsManager::SPACTION1(byte *spriteData, const Common::String &animString, int speed) {
Common::String tmpStr = "";
int realSpeed = speed;
if (_vm->_globals._speed == 2)
@@ -3560,8 +3550,6 @@ void ObjectsManager::SPACTION1(byte *spriteData, const Common::String &animStrin
if (spriteIndex == -1) {
_sprite[0]._spriteData = _oldSpriteData;
_sprite[0]._spriteIndex = _oldSpriteIndex;
- _sprite[0].field12 -= a3;
- _sprite[0].field14 -= a4;
_sprite[0]._flipFl = _oldFlipFl;
} else {
_sprite[0]._spriteData = spriteData;
@@ -3569,7 +3557,7 @@ void ObjectsManager::SPACTION1(byte *spriteData, const Common::String &animStrin
}
for (int i = 0; i < realSpeed; i++)
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
if (spriteIndex == -1)
break;
@@ -3708,7 +3696,7 @@ void ObjectsManager::PERSONAGE(const Common::String &backgroundFile, const Commo
_vm->_graphicsManager.SETCOLOR3(254, 0, 0, 0);
_vm->_eventsManager.changeMouseCursor(4);
for (int i = 0; i <= 4; i++)
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
_vm->_graphicsManager.fadeInLong();
if (_vm->_globals._screenId == 61) {
_vm->_animationManager.playSequence("OUVRE.SEQ", 10, 4, 10);
@@ -3722,7 +3710,7 @@ void ObjectsManager::PERSONAGE(const Common::String &backgroundFile, const Commo
_vm->_globals._checkDistanceFl = true;
do {
GOHOME();
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
} while (_vm->_linesManager._route != (RouteItem *)g_PTRNUL);
setSpriteIndex(0, 64);
}
@@ -3738,7 +3726,7 @@ void ObjectsManager::PERSONAGE(const Common::String &backgroundFile, const Commo
if (_vm->_globals._actionMoveTo)
PARADISE();
if (!_vm->_globals._exitId)
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
if (_vm->_globals._exitId)
break;
@@ -3793,17 +3781,16 @@ void ObjectsManager::PERSONAGE2(const Common::String &backgroundFile, const Comm
_vm->_graphicsManager.SETCOLOR3(251, 100, 100, 100);
_vm->_graphicsManager.SETCOLOR3(254, 0, 0, 0);
if (_vm->_globals._characterType) {
- if (!_vm->_globals._saveData->_data[svField122] && !_vm->_globals._saveData->_data[svField356]) {
+ if (!_vm->_globals._saveData->_data[svAlternateSpriteFl] && !_vm->_globals._saveData->_data[svField356]) {
_vm->_globals.PERSO = _vm->_fileManager.loadFile("PERSO.SPR");
_vm->_globals._characterType = 0;
}
}
- if (!_vm->_globals._characterType) {
- if (_vm->_globals._saveData->_data[svField122] == 1) {
- _vm->_globals.PERSO = _vm->_fileManager.loadFile("HOPFEM.SPR");
- _vm->_globals._characterType = 1;
- }
+ if (!_vm->_globals._characterType && _vm->_globals._saveData->_data[svAlternateSpriteFl] == 1) {
+ _vm->_globals.PERSO = _vm->_fileManager.loadFile("HOPFEM.SPR");
+ _vm->_globals._characterType = 1;
}
+
if (_vm->_globals._characterType != 2 && _vm->_globals._saveData->_data[svField356] == 1) {
_vm->_globals.PERSO = _vm->_fileManager.loadFile("PSAMAN.SPR");
_vm->_globals._characterType = 2;
@@ -3828,7 +3815,7 @@ void ObjectsManager::PERSONAGE2(const Common::String &backgroundFile, const Comm
_vm->_globals.enableHiding();
_vm->_linesManager._route = (RouteItem *)g_PTRNUL;
computeAndSetSpriteSize();
- SPECIAL_INI();
+ sceneSpecialIni();
_vm->_eventsManager._mouseSpriteId = 4;
_oldCharacterPosX = _characterPos.x;
_oldCharacterPosY = _characterPos.y;
@@ -3836,7 +3823,7 @@ void ObjectsManager::PERSONAGE2(const Common::String &backgroundFile, const Comm
_vm->_globals.Compteur = 0;
for (int idx = 0; idx < 5; ++idx)
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
_vm->_globals.iRegul = 1;
if (!_vm->_graphicsManager._noFadingFl)
@@ -3879,7 +3866,7 @@ void ObjectsManager::PERSONAGE2(const Common::String &backgroundFile, const Comm
PARADISE();
}
handleSpecialGames();
- _vm->_eventsManager.VBL();
+ _vm->_eventsManager.refreshScreenAndEvents();
if (!_vm->_globals._exitId)
continue;
}