HOPKINS: Remove setParent() from MenuManager and ObjectsManager

This commit is contained in:
Strangerke 2013-03-20 07:56:16 +01:00
parent 56ae004475
commit c5c7ced5ee
17 changed files with 915 additions and 917 deletions

View File

@ -520,8 +520,8 @@ int AnimationManager::loadSpriteBank(int idx, const Common::String &filename) {
int objectDataIdx = 0;
for(objectDataIdx = 0; objectDataIdx <= 249; objectDataIdx++) {
int width = _vm->_objectsManager.getWidth(fileDataPtr, objectDataIdx);
int height = _vm->_objectsManager.getHeight(fileDataPtr, objectDataIdx);
int width = _vm->_objectsManager->getWidth(fileDataPtr, objectDataIdx);
int height = _vm->_objectsManager->getHeight(fileDataPtr, objectDataIdx);
if (!width && !height)
break;
}
@ -551,9 +551,9 @@ int AnimationManager::loadSpriteBank(int idx, const Common::String &filename) {
int x2 = READ_LE_INT16(curOfsData + 4);
int y2 = READ_LE_INT16(curOfsData + 6);
_vm->_objectsManager.setOffsetXY(_vm->_globals->Bank[idx]._data, objIdx, x1, y1, 0);
_vm->_objectsManager->setOffsetXY(_vm->_globals->Bank[idx]._data, objIdx, x1, y1, 0);
if (_vm->_globals->Bank[idx]._fileHeader == 2)
_vm->_objectsManager.setOffsetXY(_vm->_globals->Bank[idx]._data, objIdx, x2, y2, 1);
_vm->_objectsManager->setOffsetXY(_vm->_globals->Bank[idx]._data, objIdx, x2, y2, 1);
}
_vm->_globals->freeMemory(ofsData);

View File

@ -530,7 +530,7 @@ void ComputerManager::readText(int idx) {
* Display breakout when Games sub-menu is selected
*/
void ComputerManager::displayGamesSubMenu() {
const byte *oldSpriteData = _vm->_objectsManager._sprite[0]._spriteData;
const byte *oldSpriteData = _vm->_objectsManager->_sprite[0]._spriteData;
uint oldSpeed = _vm->_globals->_speed;
_vm->_globals->_speed = 1;
@ -562,7 +562,7 @@ void ComputerManager::displayGamesSubMenu() {
_vm->_graphicsManager->resetDirtyRects();
_breakoutSpr = _vm->_globals->freeMemory(_breakoutSpr);
_breakoutLevel = (int16 *)_vm->_globals->freeMemory((byte *)_breakoutLevel);
_vm->_objectsManager._sprite[0]._spriteData = oldSpriteData;
_vm->_objectsManager->_sprite[0]._spriteData = oldSpriteData;
_vm->_soundManager.removeSample(1);
_vm->_soundManager.removeSample(2);
@ -619,8 +619,8 @@ void ComputerManager::setModeVGA256() {
* Load new level
*/
void ComputerManager::newLevel() {
_vm->_objectsManager.removeSprite(0);
_vm->_objectsManager.removeSprite(1);
_vm->_objectsManager->removeSprite(0);
_vm->_objectsManager->removeSprite(1);
++_breakoutLives;
if (_breakoutLives > 11)
_breakoutLives = 11;
@ -643,13 +643,13 @@ void ComputerManager::newLevel() {
_breakoutLevel = (int16 *)_vm->_fileManager->loadFile(file);
displayBricks();
_vm->_objectsManager.addStaticSprite(_breakoutSpr, Common::Point(150, 192), 0, 13, 0, false, 0, 0);
_vm->_objectsManager.addStaticSprite(_breakoutSpr, Common::Point(164, 187), 1, 14, 0, false, 0, 0);
_vm->_objectsManager->addStaticSprite(_breakoutSpr, Common::Point(150, 192), 0, 13, 0, false, 0, 0);
_vm->_objectsManager->addStaticSprite(_breakoutSpr, Common::Point(164, 187), 1, 14, 0, false, 0, 0);
_ballPosition = Common::Point(164, 187);
_padPositionX = 150;
_vm->_objectsManager.animateSprite(0);
_vm->_objectsManager.animateSprite(1);
_vm->_objectsManager->animateSprite(0);
_vm->_objectsManager->animateSprite(1);
_vm->_eventsManager->mouseOn();
_vm->_soundManager.playSample(3, 5);
@ -727,8 +727,8 @@ void ComputerManager::playBreakout() {
// Set up the racket and ball
_vm->_eventsManager->mouseOff();
_ballPosition = Common::Point(_padPositionX + 14, 187);
_vm->_objectsManager.setSpriteY(1, 187);
_vm->_objectsManager.setSpriteX(1, _ballPosition.x);
_vm->_objectsManager->setSpriteY(1, 187);
_vm->_objectsManager->setSpriteX(1, _ballPosition.x);
_vm->_graphicsManager->resetDirtyRects();
_vm->_eventsManager->refreshScreenAndEvents();
@ -741,9 +741,9 @@ void ComputerManager::playBreakout() {
_padPositionX = 5;
if (_padPositionX > 282)
_padPositionX = 282;
_vm->_objectsManager.setSpriteX(0, _padPositionX);
_vm->_objectsManager.setSpriteX(1, _padPositionX + 14);
_vm->_objectsManager.setSpriteY(1, 187);
_vm->_objectsManager->setSpriteX(0, _padPositionX);
_vm->_objectsManager->setSpriteX(1, _padPositionX + 14);
_vm->_objectsManager->setSpriteY(1, 187);
_vm->_eventsManager->refreshScreenAndEvents();
} while (!_vm->shouldQuit() && _vm->_eventsManager->getMouseButton() != 1);
@ -761,7 +761,7 @@ void ComputerManager::playBreakout() {
_padPositionX = 5;
if (_padPositionX > 282)
_padPositionX = 282;
_vm->_objectsManager.setSpriteX(0, _padPositionX);
_vm->_objectsManager->setSpriteX(0, _padPositionX);
lastBreakoutEvent = moveBall();
_vm->_eventsManager->refreshScreenAndEvents();
} while (!_vm->shouldQuit() && !lastBreakoutEvent);
@ -778,8 +778,8 @@ void ComputerManager::playBreakout() {
_vm->_graphicsManager->fadeOutBreakout();
_vm->_eventsManager->mouseOn();
_vm->_objectsManager.removeSprite(0);
_vm->_objectsManager.removeSprite(1);
_vm->_objectsManager->removeSprite(0);
_vm->_objectsManager->removeSprite(1);
if (_breakoutScore > _breakoutHiscore)
getScoreName();
if (displayHiscores() != 1)
@ -1094,8 +1094,8 @@ int ComputerManager::moveBall() {
if (_ballPosition.y > 194)
retVal = 1;
checkBallCollisions();
_vm->_objectsManager.setSpriteX(1, _ballPosition.x);
_vm->_objectsManager.setSpriteY(1, _ballPosition.y);
_vm->_objectsManager->setSpriteX(1, _ballPosition.x);
_vm->_objectsManager->setSpriteY(1, _ballPosition.y);
if (!_breakoutBrickNbr)
retVal = 2;
return retVal;

View File

@ -311,8 +311,8 @@ void DialogsManager::showInventory() {
return;
_vm->_graphicsManager->_scrollStatus = 1;
_vm->_objectsManager._eraseVisibleCounter = 4;
_vm->_objectsManager._visibleFl = false;
_vm->_objectsManager->_eraseVisibleCounter = 4;
_vm->_objectsManager->_visibleFl = false;
for (int i = 0; i <= 1; i++) {
inventAnim();
_vm->_eventsManager->getMouseX();
@ -359,8 +359,8 @@ void DialogsManager::showInventory() {
_inventX = _vm->_graphicsManager->_scrollOffset + 152;
_inventY = 114;
_inventWidth = _vm->_objectsManager.getWidth(_inventWin1, 0);
_inventHeight = _vm->_objectsManager.getHeight(_inventWin1, 0);
_inventWidth = _vm->_objectsManager->getWidth(_inventWin1, 0);
_inventHeight = _vm->_objectsManager->getHeight(_inventWin1, 0);
_vm->_graphicsManager->Affiche_Perfect(_vm->_graphicsManager->_vesaBuffer, _inventWin1, _inventX + 300, 414, 0, 0, 0, false);
int curPosY = 0;
@ -372,7 +372,7 @@ void DialogsManager::showInventory() {
int inventIdx = _vm->_globals->_inventory[inventCount];
// The last two zones are not reserved for the inventory: Options and Save/Load
if (inventIdx && inventCount <= 29) {
byte *obj = _vm->_objectsManager.loadObjectFromFile(inventIdx, false);
byte *obj = _vm->_objectsManager->loadObjectFromFile(inventIdx, false);
_vm->_graphicsManager->restoreSurfaceRect(_vm->_graphicsManager->_vesaBuffer, obj, _inventX + curPosX + 6,
curPosY + 120, _vm->_globals->_objectWidth, _vm->_globals->_objectHeight);
_vm->_globals->freeMemory(obj);
@ -396,10 +396,10 @@ void DialogsManager::showInventory() {
int oldInventoryItem = newInventoryItem;
newInventoryItem = _vm->_linesManager->checkInventoryHotspots(mousePosX, mousePosY);
if (newInventoryItem != oldInventoryItem)
_vm->_objectsManager.initBorder(newInventoryItem);
_vm->_objectsManager->initBorder(newInventoryItem);
if (_vm->_eventsManager->_mouseCursorId != 1 && _vm->_eventsManager->_mouseCursorId != 2 && _vm->_eventsManager->_mouseCursorId != 3 && _vm->_eventsManager->_mouseCursorId != 16) {
if (mouseButton == 2) {
_vm->_objectsManager.nextObjectIcon(newInventoryItem);
_vm->_objectsManager->nextObjectIcon(newInventoryItem);
if (_vm->_eventsManager->_mouseCursorId != 23)
_vm->_eventsManager->changeMouseCursor(_vm->_eventsManager->_mouseCursorId);
}
@ -407,15 +407,15 @@ void DialogsManager::showInventory() {
if (mouseButton == 1) {
if (_vm->_eventsManager->_mouseCursorId == 1 || _vm->_eventsManager->_mouseCursorId == 2 || _vm->_eventsManager->_mouseCursorId == 3 || _vm->_eventsManager->_mouseCursorId == 16 || !_vm->_eventsManager->_mouseCursorId)
break;
_vm->_objectsManager.takeInventoryObject(_vm->_globals->_inventory[newInventoryItem]);
_vm->_objectsManager->takeInventoryObject(_vm->_globals->_inventory[newInventoryItem]);
if (_vm->_eventsManager->_mouseCursorId == 8)
break;
_vm->_scriptManager._tempObjectFl = true;
_vm->_globals->_saveData->_data[svLastObjectIndex] = _vm->_objectsManager._curObjectIndex;
_vm->_globals->_saveData->_data[svLastObjectIndex] = _vm->_objectsManager->_curObjectIndex;
_vm->_globals->_saveData->_data[svLastInventoryItem] = _vm->_globals->_inventory[newInventoryItem];
_vm->_globals->_saveData->_data[svLastInvMouseCursor] = _vm->_eventsManager->_mouseCursorId;
_vm->_objectsManager.OPTI_OBJET();
_vm->_objectsManager->OPTI_OBJET();
_vm->_scriptManager._tempObjectFl = false;
if (_vm->_soundManager._voiceOffFl) {
@ -442,7 +442,7 @@ void DialogsManager::showInventory() {
break;
_vm->_eventsManager->refreshScreenAndEvents();
if (_vm->_globals->_screenId >= 35 && _vm->_globals->_screenId <= 40)
_vm->_objectsManager.handleSpecialGames();
_vm->_objectsManager->handleSpecialGames();
}
} while (loopFl);
@ -451,7 +451,7 @@ void DialogsManager::showInventory() {
_inventDisplayedFl = false;
_vm->_graphicsManager->copySurface(_vm->_graphicsManager->_vesaScreen, _inventX, 114, _inventWidth, _inventHeight, _vm->_graphicsManager->_vesaBuffer, _inventX, 114);
_vm->_graphicsManager->addDirtyRect(_inventX, 114, _inventX + _inventWidth, _inventWidth + 114);
_vm->_objectsManager.BOBTOUS = true;
_vm->_objectsManager->BOBTOUS = true;
}
_inventWin1 = _vm->_globals->freeMemory(_inventWin1);
@ -466,8 +466,8 @@ void DialogsManager::showInventory() {
_vm->_eventsManager->_mouseCursorId = 4;
_vm->_eventsManager->changeMouseCursor(4);
_vm->_objectsManager._oldBorderPos = Common::Point(0, 0);
_vm->_objectsManager._borderPos = Common::Point(0, 0);
_vm->_objectsManager->_oldBorderPos = Common::Point(0, 0);
_vm->_objectsManager->_borderPos = Common::Point(0, 0);
_vm->_globals->_disableInventFl = false;
_vm->_graphicsManager->_scrollStatus = 0;
}
@ -479,41 +479,41 @@ void DialogsManager::inventAnim() {
if (_vm->_globals->_disableInventFl)
return;
if (_vm->_objectsManager._eraseVisibleCounter && !_vm->_objectsManager._visibleFl) {
_vm->_graphicsManager->copySurface(_vm->_graphicsManager->_vesaScreen, _vm->_objectsManager._oldInventoryPosX, 27, 48, 38,
_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager._oldInventoryPosX, 27);
_vm->_graphicsManager->addDirtyRect(_vm->_objectsManager._oldInventoryPosX, 27, _vm->_objectsManager._oldInventoryPosX + 48, 65);
--_vm->_objectsManager._eraseVisibleCounter;
if (_vm->_objectsManager->_eraseVisibleCounter && !_vm->_objectsManager->_visibleFl) {
_vm->_graphicsManager->copySurface(_vm->_graphicsManager->_vesaScreen, _vm->_objectsManager->_oldInventoryPosX, 27, 48, 38,
_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager->_oldInventoryPosX, 27);
_vm->_graphicsManager->addDirtyRect(_vm->_objectsManager->_oldInventoryPosX, 27, _vm->_objectsManager->_oldInventoryPosX + 48, 65);
--_vm->_objectsManager->_eraseVisibleCounter;
}
if (_vm->_objectsManager._visibleFl) {
if (_vm->_objectsManager._oldInventoryPosX <= 1)
_vm->_objectsManager._oldInventoryPosX = 2;
_vm->_graphicsManager->copySurface(_vm->_graphicsManager->_vesaScreen, _vm->_objectsManager._oldInventoryPosX, 27, 48, 38,
_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager._oldInventoryPosX, 27);
if (_vm->_objectsManager->_visibleFl) {
if (_vm->_objectsManager->_oldInventoryPosX <= 1)
_vm->_objectsManager->_oldInventoryPosX = 2;
_vm->_graphicsManager->copySurface(_vm->_graphicsManager->_vesaScreen, _vm->_objectsManager->_oldInventoryPosX, 27, 48, 38,
_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager->_oldInventoryPosX, 27);
_vm->_graphicsManager->addDirtyRect(_vm->_objectsManager._oldInventoryPosX, 27, _vm->_objectsManager._oldInventoryPosX + 48, 65);
_vm->_graphicsManager->addDirtyRect(_vm->_objectsManager->_oldInventoryPosX, 27, _vm->_objectsManager->_oldInventoryPosX + 48, 65);
int newOffset = _vm->_graphicsManager->_scrollOffset + 2;
_vm->_graphicsManager->Sprite_Vesa(_vm->_graphicsManager->_vesaBuffer, _inventoryIcons, newOffset + 300, 327, 0);
_vm->_graphicsManager->addDirtyRect(newOffset, 27, newOffset + 45, 62);
_vm->_objectsManager._oldInventoryPosX = newOffset;
_vm->_objectsManager->_oldInventoryPosX = newOffset;
}
if (_vm->_globals->_saveData->_data[svField357] == 1) {
if (_vm->_globals->_saveData->_data[svField353] == 1)
_vm->_graphicsManager->Affiche_Perfect(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager._headSprites, 832, 325, 0, 0, 0, false);
_vm->_graphicsManager->Affiche_Perfect(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager->_headSprites, 832, 325, 0, 0, 0, false);
if (_vm->_globals->_saveData->_data[svField355] == 1)
_vm->_graphicsManager->Affiche_Perfect(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager._headSprites, 866, 325, 1, 0, 0, false);
_vm->_graphicsManager->Affiche_Perfect(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager->_headSprites, 866, 325, 1, 0, 0, false);
_vm->_graphicsManager->addDirtyRect(532, 25, 560, 60);
_vm->_graphicsManager->addDirtyRect(566, 25, 594, 60);
}
if (_vm->_globals->_saveData->_data[svField356] == 1) {
_vm->_graphicsManager->Affiche_Perfect(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager._headSprites, 832, 325, 0, 0, 0, false);
_vm->_graphicsManager->Affiche_Perfect(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager->_headSprites, 832, 325, 0, 0, 0, false);
_vm->_graphicsManager->addDirtyRect(532, 25, 560, 60);
}
if (_vm->_globals->_saveData->_data[svField354] == 1) {
_vm->_graphicsManager->Affiche_Perfect(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager._headSprites, 832, 325, 0, 0, 0, false);
_vm->_graphicsManager->Affiche_Perfect(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager->_headSprites, 832, 325, 0, 0, 0, false);
_vm->_graphicsManager->addDirtyRect(532, 25, 560, 60);
}
}
@ -571,20 +571,20 @@ void DialogsManager::showLoadGame() {
slotNumber = searchSavegames();
_vm->_eventsManager->refreshScreenAndEvents();
} while (!_vm->shouldQuit() && (!slotNumber || _vm->_eventsManager->getMouseButton() != 1));
_vm->_objectsManager._saveLoadFl = false;
_vm->_objectsManager->_saveLoadFl = false;
_vm->_graphicsManager->copySurface(_vm->_graphicsManager->_vesaScreen, _vm->_eventsManager->_startPos.x + 183, 60, 274, 353, _vm->_graphicsManager->_vesaBuffer, _vm->_eventsManager->_startPos.x + 183, 60);
_vm->_graphicsManager->addDirtyRect(_vm->_eventsManager->_startPos.x + 183, 60, 457, 413);
_vm->_objectsManager.BOBTOUS = true;
_vm->_objectsManager._saveLoadSprite = _vm->_globals->freeMemory(_vm->_objectsManager._saveLoadSprite);
_vm->_objectsManager._saveLoadSprite2 = _vm->_globals->freeMemory(_vm->_objectsManager._saveLoadSprite2);
_vm->_objectsManager._saveLoadX = 0;
_vm->_objectsManager._saveLoadY = 0;
_vm->_objectsManager->BOBTOUS = true;
_vm->_objectsManager->_saveLoadSprite = _vm->_globals->freeMemory(_vm->_objectsManager->_saveLoadSprite);
_vm->_objectsManager->_saveLoadSprite2 = _vm->_globals->freeMemory(_vm->_objectsManager->_saveLoadSprite2);
_vm->_objectsManager->_saveLoadX = 0;
_vm->_objectsManager->_saveLoadY = 0;
if (slotNumber != 7) {
_vm->_saveLoadManager.loadGame(slotNumber);
}
_vm->_objectsManager.changeObject(14);
_vm->_objectsManager->changeObject(14);
}
/**
@ -600,14 +600,14 @@ void DialogsManager::showSaveGame() {
_vm->_eventsManager->refreshScreenAndEvents();
} while (!_vm->shouldQuit() && (!slotNumber || _vm->_eventsManager->getMouseButton() != 1));
_vm->_objectsManager._saveLoadFl = false;
_vm->_objectsManager->_saveLoadFl = false;
_vm->_graphicsManager->copySurface(_vm->_graphicsManager->_vesaScreen, _vm->_eventsManager->_startPos.x + 183, 60, 274, 353, _vm->_graphicsManager->_vesaBuffer, _vm->_eventsManager->_startPos.x + 183, 60);
_vm->_graphicsManager->addDirtyRect(_vm->_eventsManager->_startPos.x + 183, 60, _vm->_eventsManager->_startPos.x + 457, 413);
_vm->_objectsManager.BOBTOUS = true;
_vm->_objectsManager._saveLoadSprite = _vm->_globals->freeMemory(_vm->_objectsManager._saveLoadSprite);
_vm->_objectsManager._saveLoadSprite2 = _vm->_globals->freeMemory(_vm->_objectsManager._saveLoadSprite2);
_vm->_objectsManager._saveLoadX = 0;
_vm->_objectsManager._saveLoadY = 0;
_vm->_objectsManager->BOBTOUS = true;
_vm->_objectsManager->_saveLoadSprite = _vm->_globals->freeMemory(_vm->_objectsManager->_saveLoadSprite);
_vm->_objectsManager->_saveLoadSprite2 = _vm->_globals->freeMemory(_vm->_objectsManager->_saveLoadSprite2);
_vm->_objectsManager->_saveLoadX = 0;
_vm->_objectsManager->_saveLoadY = 0;
if (slotNumber != 7) {
// Since the original GUI doesn't support save names, use a default name
@ -640,20 +640,20 @@ void DialogsManager::showSaveLoad(SaveLoadMode mode) {
}
}
_vm->_objectsManager._saveLoadSprite = _vm->_objectsManager.loadSprite(filename);
_vm->_objectsManager._saveLoadSprite2 = _vm->_objectsManager.loadSprite("SAVE2.SPR");
_vm->_graphicsManager->Sprite_Vesa(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager._saveLoadSprite, _vm->_eventsManager->_startPos.x + 483, 360, 0);
_vm->_objectsManager->_saveLoadSprite = _vm->_objectsManager->loadSprite(filename);
_vm->_objectsManager->_saveLoadSprite2 = _vm->_objectsManager->loadSprite("SAVE2.SPR");
_vm->_graphicsManager->Sprite_Vesa(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager->_saveLoadSprite, _vm->_eventsManager->_startPos.x + 483, 360, 0);
if (_vm->_globals->_language == LANG_FR) {
if (mode == MODE_SAVE)
_vm->_graphicsManager->Sprite_Vesa(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager._saveLoadSprite, _vm->_eventsManager->_startPos.x + 525, 375, 1);
_vm->_graphicsManager->Sprite_Vesa(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager->_saveLoadSprite, _vm->_eventsManager->_startPos.x + 525, 375, 1);
else if (mode == MODE_LOAD)
_vm->_graphicsManager->Sprite_Vesa(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager._saveLoadSprite, _vm->_eventsManager->_startPos.x + 515, 375, 2);
_vm->_graphicsManager->Sprite_Vesa(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager->_saveLoadSprite, _vm->_eventsManager->_startPos.x + 515, 375, 2);
} else {
if (mode == MODE_SAVE)
_vm->_graphicsManager->Sprite_Vesa(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager._saveLoadSprite, _vm->_eventsManager->_startPos.x + 535, 372, 1);
_vm->_graphicsManager->Sprite_Vesa(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager->_saveLoadSprite, _vm->_eventsManager->_startPos.x + 535, 372, 1);
else if (mode == MODE_LOAD)
_vm->_graphicsManager->Sprite_Vesa(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager._saveLoadSprite, _vm->_eventsManager->_startPos.x + 539, 372, 2);
_vm->_graphicsManager->Sprite_Vesa(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager->_saveLoadSprite, _vm->_eventsManager->_startPos.x + 539, 372, 2);
}
for (int slotNumber = 1; slotNumber <= 6; ++slotNumber) {
@ -691,10 +691,10 @@ void DialogsManager::showSaveLoad(SaveLoadMode mode) {
}
}
_vm->_graphicsManager->copySurfaceRect(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager._saveLoadSprite, _vm->_eventsManager->_startPos.x + 183, 60, 274, 353);
_vm->_objectsManager._saveLoadFl = true;
_vm->_objectsManager._saveLoadX = 0;
_vm->_objectsManager._saveLoadY = 0;
_vm->_graphicsManager->copySurfaceRect(_vm->_graphicsManager->_vesaBuffer, _vm->_objectsManager->_saveLoadSprite, _vm->_eventsManager->_startPos.x + 183, 60, 274, 353);
_vm->_objectsManager->_saveLoadFl = true;
_vm->_objectsManager->_saveLoadX = 0;
_vm->_objectsManager->_saveLoadY = 0;
}
/**
@ -710,41 +710,41 @@ int DialogsManager::searchSavegames() {
if (yp >= 112 && yp <= 198) {
if (xp > _vm->_eventsManager->_startPos.x + 189 && xp < _vm->_eventsManager->_startPos.x + 318) {
slotNumber = 1;
_vm->_objectsManager._saveLoadX = 189;
_vm->_objectsManager._saveLoadY = 111;
_vm->_objectsManager->_saveLoadX = 189;
_vm->_objectsManager->_saveLoadY = 111;
} else if (xp > _vm->_graphicsManager->_scrollOffset + 322 && xp < _vm->_graphicsManager->_scrollOffset + 452) {
slotNumber = 2;
_vm->_objectsManager._saveLoadX = 322;
_vm->_objectsManager._saveLoadY = 111;
_vm->_objectsManager->_saveLoadX = 322;
_vm->_objectsManager->_saveLoadY = 111;
}
} else if (yp >= 203 && yp <= 289) {
if (xp > _vm->_graphicsManager->_scrollOffset + 189 && xp < _vm->_graphicsManager->_scrollOffset + 318) {
slotNumber = 3;
_vm->_objectsManager._saveLoadX = 189;
_vm->_objectsManager._saveLoadY = 202;
_vm->_objectsManager->_saveLoadX = 189;
_vm->_objectsManager->_saveLoadY = 202;
} else if (xp > _vm->_graphicsManager->_scrollOffset + 322 && xp < _vm->_graphicsManager->_scrollOffset + 452) {
slotNumber = 4;
_vm->_objectsManager._saveLoadX = 322;
_vm->_objectsManager._saveLoadY = 202;
_vm->_objectsManager->_saveLoadX = 322;
_vm->_objectsManager->_saveLoadY = 202;
}
} else if (yp >= 294 && yp <= 380) {
if (xp > _vm->_graphicsManager->_scrollOffset + 189 && xp < _vm->_graphicsManager->_scrollOffset + 318) {
slotNumber = 5;
_vm->_objectsManager._saveLoadX = 189;
_vm->_objectsManager._saveLoadY = 293;
_vm->_objectsManager->_saveLoadX = 189;
_vm->_objectsManager->_saveLoadY = 293;
} else if (xp > _vm->_graphicsManager->_scrollOffset + 322 && xp < _vm->_graphicsManager->_scrollOffset + 452) {
slotNumber = 6;
_vm->_objectsManager._saveLoadX = 322;
_vm->_objectsManager._saveLoadY = 293;
_vm->_objectsManager->_saveLoadX = 322;
_vm->_objectsManager->_saveLoadY = 293;
}
} else if (yp >= 388 && yp <= 404 && xp > _vm->_graphicsManager->_scrollOffset + 273 && xp < _vm->_graphicsManager->_scrollOffset + 355) {
slotNumber = 7;
_vm->_objectsManager._saveLoadX = 0;
_vm->_objectsManager._saveLoadY = 0;
_vm->_objectsManager->_saveLoadX = 0;
_vm->_objectsManager->_saveLoadY = 0;
} else {
slotNumber = 0;
_vm->_objectsManager._saveLoadX = 0;
_vm->_objectsManager._saveLoadY = 0;
_vm->_objectsManager->_saveLoadX = 0;
_vm->_objectsManager->_saveLoadY = 0;
}
return slotNumber;

View File

@ -393,7 +393,7 @@ void EventsManager::refreshScreenAndEvents() {
}
if (!_vm->_globals->_linuxEndDemoFl)
_vm->_objectsManager.displaySprite();
_vm->_objectsManager->displaySprite();
if (!_mouseFl) {
updateCursor();
} else if (_mouseCursorId == 23) {

View File

@ -260,7 +260,7 @@ void FontManager::box(int idx, int messageId, const Common::String &filename, in
byte curChar = _tempText[curStrIdx];
if (curChar <= 31)
curChar = ' ';
_vm->_globals->_boxWidth += _vm->_objectsManager.getWidth(_font, curChar - 32);
_vm->_globals->_boxWidth += _vm->_objectsManager->getWidth(_font, curChar - 32);
}
_vm->_globals->_boxWidth += 2;
@ -316,7 +316,7 @@ void FontManager::box(int idx, int messageId, const Common::String &filename, in
byte curChar2 = (curIdx >= (int)line.size()) ? '\0' : line.c_str()[curIdx];
if (curChar2 <= 31)
curChar2 = ' ';
ptrc += _vm->_objectsManager.getWidth(_font, (byte)curChar2 - 32);
ptrc += _vm->_objectsManager->getWidth(_font, (byte)curChar2 - 32);
}
_textSortArray[i] = ptrc;
}
@ -414,7 +414,7 @@ void FontManager::displayTextVesa(int xp, int yp, const Common::String &message,
if (currChar >= 32) {
charIndex = currChar - 32;
_vm->_graphicsManager->displayFont(_vm->_graphicsManager->_vesaBuffer, _font, currentX, yp, currChar - 32, col);
currentX += _vm->_objectsManager.getWidth(_font, charIndex);
currentX += _vm->_objectsManager->getWidth(_font, charIndex);
}
}
@ -431,7 +431,7 @@ void FontManager::displayText(int xp, int yp, const Common::String &message, int
if (currentChar > 31) {
int characterIndex = currentChar - 32;
_vm->_graphicsManager->displayFont(_vm->_graphicsManager->_vesaBuffer, _font, xp, yp, characterIndex, col);
xp += _vm->_objectsManager.getWidth(_font, characterIndex);
xp += _vm->_objectsManager->getWidth(_font, characterIndex);
}
}
}
@ -466,13 +466,13 @@ void FontManager::renderTextDisplay(int xp, int yp, const Common::String &msg, i
int charWidth;
if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS) {
if ((curChar >= 'A' && curChar <= 'Z') || (curChar >= 'a' && curChar <= 'z' && curChar != 'm' && curChar != 'w') || (curChar >= '0' && curChar <= '9') || curChar == '*' || (curChar >= 128 && curChar <= 168))
charWidth = _vm->_objectsManager.getWidth(_font, printChar) - 1;
charWidth = _vm->_objectsManager->getWidth(_font, printChar) - 1;
else if (curChar == 'm' || curChar == 'w')
charWidth = _vm->_objectsManager.getWidth(_font, printChar);
charWidth = _vm->_objectsManager->getWidth(_font, printChar);
else
charWidth = 6;
} else
charWidth = _vm->_objectsManager.getWidth(_font, printChar);
charWidth = _vm->_objectsManager->getWidth(_font, printChar);
int charStartPosX = charEndPosX;
charEndPosX += charWidth;

View File

@ -244,10 +244,10 @@ void Globals::clearAll() {
_answerBuffer = g_PTRNUL;
SPRITE_ECRAN = g_PTRNUL;
_saveData = (Savegame *)g_PTRNUL;
_vm->_objectsManager._curObjectIndex = 0;
_vm->_objectsManager->_curObjectIndex = 0;
_vm->_linesManager->clearAll();
_vm->_objectsManager.clearAll();
_vm->_objectsManager->clearAll();
_saveData = (Savegame *)malloc(sizeof(Savegame));
memset(_saveData, 0, sizeof(Savegame));
@ -378,7 +378,7 @@ void Globals::disableHiding() {
void Globals::B_CACHE_OFF(int idx) {
assert(idx < 36);
_vm->_objectsManager._bob[idx].field34 = true;
_vm->_objectsManager->_bob[idx].field34 = true;
}
void Globals::resetHidingUseCount(int idx) {
@ -411,8 +411,8 @@ void Globals::loadHidingItems(const Common::String &file) {
_hidingItem[i]._useCount = 0;
} else {
_hidingItem[i]._spriteData = spriteData;
_hidingItem[i]._width = _vm->_objectsManager.getWidth(spriteData, _hidingItem[i]._spriteIndex);
_hidingItem[i]._height = _vm->_objectsManager.getHeight(spriteData, _hidingItem[i]._spriteIndex);
_hidingItem[i]._width = _vm->_objectsManager->getWidth(spriteData, _hidingItem[i]._spriteIndex);
_hidingItem[i]._height = _vm->_objectsManager->getHeight(spriteData, _hidingItem[i]._spriteIndex);
_hidingItem[i]._useCount = 1;
}

View File

@ -1062,7 +1062,7 @@ void GraphicsManager::Sprite_Vesa(byte *surface, const byte *spriteData, int xp,
void GraphicsManager::endDisplayBob() {
for (int idx = 1; idx <= 20; ++idx) {
if (_vm->_globals->_animBqe[idx]._enabledFl)
_vm->_objectsManager.hideBob(idx);
_vm->_objectsManager->hideBob(idx);
}
_vm->_eventsManager->refreshScreenAndEvents();
@ -1070,7 +1070,7 @@ void GraphicsManager::endDisplayBob() {
for (int idx = 1; idx <= 20; ++idx) {
if (_vm->_globals->_animBqe[idx]._enabledFl)
_vm->_objectsManager.resetBob(idx);
_vm->_objectsManager->resetBob(idx);
}
for (int idx = 1; idx <= 29; ++idx) {
@ -1085,7 +1085,7 @@ void GraphicsManager::endDisplayBob() {
void GraphicsManager::displayAllBob() {
for (int idx = 1; idx <= 20; ++idx) {
if (_vm->_globals->_animBqe[idx]._enabledFl)
_vm->_objectsManager.displayBob(idx);
_vm->_objectsManager->displayBob(idx);
}
}
@ -1225,8 +1225,8 @@ void GraphicsManager::displayRefreshRects() {
}
void GraphicsManager::AFFICHE_SPEEDVGA(const byte *objectData, int xp, int yp, int idx, bool addSegment) {
int width = _vm->_objectsManager.getWidth(objectData, idx);
int height = _vm->_objectsManager.getHeight(objectData, idx);
int width = _vm->_objectsManager->getWidth(objectData, idx);
int height = _vm->_objectsManager->getHeight(objectData, idx);
if (*objectData == 78) {
Affiche_Perfect(_vesaScreen, objectData, xp + 300, yp + 300, idx, 0, 0, false);
Affiche_Perfect(_vesaBuffer, objectData, xp + 300, yp + 300, idx, 0, 0, false);
@ -1641,8 +1641,8 @@ void GraphicsManager::Affiche_Perfect(byte *surface, const byte *srcData, int xp
* Fast Display
*/
void GraphicsManager::fastDisplay(const byte *spriteData, int xp, int yp, int spriteIndex, bool addSegment) {
int width = _vm->_objectsManager.getWidth(spriteData, spriteIndex);
int height = _vm->_objectsManager.getHeight(spriteData, spriteIndex);
int width = _vm->_objectsManager->getWidth(spriteData, spriteIndex);
int height = _vm->_objectsManager->getHeight(spriteData, spriteIndex);
if (*spriteData == 78) {
Affiche_Perfect(_vesaScreen, spriteData, xp + 300, yp + 300, spriteIndex, 0, 0, false);
@ -1787,8 +1787,8 @@ void GraphicsManager::initScreen(const Common::String &file, int mode, bool init
dataP = _vm->_fileManager->loadFile(filename);
_vm->_globals->_answerBuffer = dataP;
_vm->_objectsManager._forceZoneFl = true;
_vm->_objectsManager._changeVerbFl = false;
_vm->_objectsManager->_forceZoneFl = true;
_vm->_objectsManager->_changeVerbFl = false;
}
void GraphicsManager::NB_SCREEN(bool initPalette) {

File diff suppressed because it is too large Load Diff

View File

@ -152,9 +152,9 @@ public:
Globals *_globals;
GraphicsManager *_graphicsManager;
LinesManager *_linesManager;
MenuManager *_menuManager;
ObjectsManager *_objectsManager;
MenuManager _menuManager;
ObjectsManager _objectsManager;
SaveLoadManager _saveLoadManager;
ScriptManager _scriptManager;
SoundManager _soundManager;

View File

@ -1085,11 +1085,11 @@ RouteItem *LinesManager::PARCOURS2(int fromX, int fromY, int destX, int destY) {
if (abs(fromX - destX) <= 4 && abs(fromY - clipDestY) <= 4)
return (RouteItem *)g_PTRNUL;
if (_vm->_globals->_oldZoneNum > 0 && _vm->_objectsManager._zoneNum > 0 && _vm->_globals->_oldZoneNum == _vm->_objectsManager._zoneNum)
if (_vm->_globals->_oldZoneNum > 0 && _vm->_objectsManager->_zoneNum > 0 && _vm->_globals->_oldZoneNum == _vm->_objectsManager->_zoneNum)
return (RouteItem *)g_PTRNUL;
}
_vm->_globals->_checkDistanceFl = false;
_vm->_globals->_oldZoneNum = _vm->_objectsManager._zoneNum;
_vm->_globals->_oldZoneNum = _vm->_objectsManager->_zoneNum;
_vm->_globals->_oldRouteFromX = fromX;
_vm->_globals->_oldRouteDestX = destX;
_vm->_globals->_oldRouteFromY = fromY;
@ -2529,17 +2529,17 @@ int LinesManager::getMouseZone() {
if ((_vm->_eventsManager->_mousePos.y + _vm->_eventsManager->_mouseOffset.y) > 19) {
for (int bobZoneId = 0; bobZoneId <= 48; bobZoneId++) {
int bobId = BOBZONE[bobZoneId];
if (bobId && BOBZONE_FLAG[bobZoneId] && _vm->_objectsManager._bob[bobId]._bobMode && _vm->_objectsManager._bob[bobId]._frameIndex != 250 &&
!_vm->_objectsManager._bob[bobId]._disabledAnimationFl && xp > _vm->_objectsManager._bob[bobId]._oldX &&
xp < _vm->_objectsManager._bob[bobId]._oldWidth + _vm->_objectsManager._bob[bobId]._oldX && yp > _vm->_objectsManager._bob[bobId]._oldY) {
if (yp < _vm->_objectsManager._bob[bobId]._oldHeight + _vm->_objectsManager._bob[bobId]._oldY) {
if (bobId && BOBZONE_FLAG[bobZoneId] && _vm->_objectsManager->_bob[bobId]._bobMode && _vm->_objectsManager->_bob[bobId]._frameIndex != 250 &&
!_vm->_objectsManager->_bob[bobId]._disabledAnimationFl && xp > _vm->_objectsManager->_bob[bobId]._oldX &&
xp < _vm->_objectsManager->_bob[bobId]._oldWidth + _vm->_objectsManager->_bob[bobId]._oldX && yp > _vm->_objectsManager->_bob[bobId]._oldY) {
if (yp < _vm->_objectsManager->_bob[bobId]._oldHeight + _vm->_objectsManager->_bob[bobId]._oldY) {
if (ZONEP[bobZoneId]._spriteIndex == -1) {
ZONEP[bobZoneId]._destX = 0;
ZONEP[bobZoneId]._destY = 0;
}
if (!ZONEP[bobZoneId]._destX && !ZONEP[bobZoneId]._destY) {
ZONEP[bobZoneId]._destX = _vm->_objectsManager._bob[bobId]._oldWidth + _vm->_objectsManager._bob[bobId]._oldX;
ZONEP[bobZoneId]._destY = _vm->_objectsManager._bob[bobId]._oldHeight + _vm->_objectsManager._bob[bobId]._oldY + 6;
ZONEP[bobZoneId]._destX = _vm->_objectsManager->_bob[bobId]._oldWidth + _vm->_objectsManager->_bob[bobId]._oldX;
ZONEP[bobZoneId]._destY = _vm->_objectsManager->_bob[bobId]._oldHeight + _vm->_objectsManager->_bob[bobId]._oldY + 6;
ZONEP[bobZoneId]._spriteIndex = -1;
}
return bobZoneId;
@ -2815,18 +2815,18 @@ void LinesManager::checkZone() {
|| _vm->_eventsManager->_startPos.x >= mouseX
|| (mouseY = _vm->_graphicsManager->_scrollOffset + 54, mouseX >= mouseY)
|| (mouseY = oldMouseY - 1, mouseY < 0 || mouseY > 59)) {
if (_vm->_objectsManager._visibleFl)
_vm->_objectsManager._eraseVisibleCounter = 4;
_vm->_objectsManager._visibleFl = false;
if (_vm->_objectsManager->_visibleFl)
_vm->_objectsManager->_eraseVisibleCounter = 4;
_vm->_objectsManager->_visibleFl = false;
} else {
_vm->_objectsManager._visibleFl = true;
_vm->_objectsManager->_visibleFl = true;
}
if (_vm->_objectsManager._forceZoneFl) {
if (_vm->_objectsManager->_forceZoneFl) {
_vm->_globals->compteur_71 = 100;
_vm->_globals->_oldMouseZoneId = -1;
_vm->_globals->_oldMouseX = -200;
_vm->_globals->_oldMouseY = -220;
_vm->_objectsManager._forceZoneFl = false;
_vm->_objectsManager->_forceZoneFl = false;
}
_vm->_globals->compteur_71++;
@ -2871,7 +2871,7 @@ void LinesManager::checkZone() {
if (ZONEP[zoneId]._verbFl1 == 2) {
_vm->_eventsManager->changeMouseCursor(16);
_vm->_eventsManager->_mouseCursorId = 16;
_vm->_objectsManager.setVerb(16);
_vm->_objectsManager->setVerb(16);
}
}
} else {
@ -2880,16 +2880,16 @@ void LinesManager::checkZone() {
_vm->_eventsManager->changeMouseCursor(4);
}
}
_vm->_objectsManager._zoneNum = zoneId;
_vm->_objectsManager->_zoneNum = zoneId;
_vm->_globals->_oldMouseX = mouseX;
_vm->_globals->_oldMouseY = oldMouseY;
_vm->_globals->_oldMouseZoneId = zoneId;
if (_vm->_globals->_freezeCharacterFl && (_vm->_eventsManager->_mouseCursorId == 4)) {
if (zoneId != -1 && zoneId != 0)
_vm->_objectsManager.handleRightButton();
_vm->_objectsManager->handleRightButton();
}
if ((_vm->_globals->_cityMapEnabledFl && zoneId == -1) || !zoneId) {
_vm->_objectsManager.setVerb(0);
_vm->_objectsManager->setVerb(0);
_vm->_eventsManager->_mouseCursorId = 0;
_vm->_eventsManager->changeMouseCursor(0);
}

View File

@ -37,12 +37,12 @@
namespace Hopkins {
void MenuManager::setParent(HopkinsEngine *vm) {
enum MenuSelection { MENU_NONE = 0, PLAY_GAME = 1, LOAD_GAME = 2, OPTIONS = 3, INTRODUCTION = 4, QUIT = 5 };
MenuManager::MenuManager(HopkinsEngine *vm) {
_vm = vm;
}
enum MenuSelection { MENU_NONE = 0, PLAY_GAME = 1, LOAD_GAME = 2, OPTIONS = 3, INTRODUCTION = 4, QUIT = 5 };
int MenuManager::menu() {
byte *spriteData = NULL;
MenuSelection menuIndex;
@ -55,7 +55,7 @@ int MenuManager::menu() {
result = 0;
while (!g_system->getEventManager()->shouldQuit()) {
_vm->_objectsManager._forestFl = false;
_vm->_objectsManager->_forestFl = false;
_vm->_eventsManager->_breakoutFl = false;
_vm->_globals->_disableInventFl = true;
_vm->_globals->_exitId = 0;
@ -64,7 +64,7 @@ int MenuManager::menu() {
_vm->_globals->_inventory[idx] = 0;
memset(_vm->_globals->_saveData, 0, 2000);
_vm->_objectsManager.addObject(14);
_vm->_objectsManager->addObject(14);
memset(frameIndex, 0, sizeof(int) * ARRAYSIZE(frameIndex));
if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS)
@ -79,13 +79,13 @@ int MenuManager::menu() {
_vm->_graphicsManager->fadeInLong();
if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS)
spriteData = _vm->_objectsManager.loadSprite("MENU.SPR");
spriteData = _vm->_objectsManager->loadSprite("MENU.SPR");
else if (_vm->_globals->_language == LANG_EN)
spriteData = _vm->_objectsManager.loadSprite("MENUAN.SPR");
spriteData = _vm->_objectsManager->loadSprite("MENUAN.SPR");
else if (_vm->_globals->_language == LANG_FR)
spriteData = _vm->_objectsManager.loadSprite("MENUFR.SPR");
spriteData = _vm->_objectsManager->loadSprite("MENUFR.SPR");
else if (_vm->_globals->_language == LANG_SP)
spriteData = _vm->_objectsManager.loadSprite("MENUES.SPR");
spriteData = _vm->_objectsManager->loadSprite("MENUES.SPR");
_vm->_eventsManager->mouseOn();
_vm->_eventsManager->changeMouseCursor(0);

View File

@ -36,8 +36,7 @@ private:
HopkinsEngine *_vm;
public:
MenuManager() {}
void setParent(HopkinsEngine *vm);
MenuManager(HopkinsEngine *vm);
int menu();
};

View File

@ -35,7 +35,9 @@
namespace Hopkins {
ObjectsManager::ObjectsManager() {
ObjectsManager::ObjectsManager(HopkinsEngine *vm) {
_vm = vm;
for (int i = 0; i < 6; ++i)
Common::fill((byte *)&_sprite[i], (byte *)&_sprite[i] + sizeof(SpriteItem), 0);
@ -89,10 +91,6 @@ ObjectsManager::~ObjectsManager() {
_vm->_globals->freeMemory(_headSprites);
}
void ObjectsManager::setParent(HopkinsEngine *vm) {
_vm = vm;
}
void ObjectsManager::clearAll() {
_forestFl = false;
_forestSprite = _vm->_globals->freeMemory(_forestSprite);

View File

@ -164,10 +164,9 @@ public:
bool BOBTOUS;
bool OBSSEUL;
ObjectsManager();
ObjectsManager(HopkinsEngine *vm);
~ObjectsManager();
void setParent(HopkinsEngine *vm);
void clearAll();
int getWidth(const byte *objectData, int idx);

View File

@ -148,8 +148,8 @@ Common::Error SaveLoadManager::saveGame(int slot, const Common::String &saveName
for (int i = 0; i < 35; ++i)
_vm->_globals->_saveData->_inventory[i] = _vm->_globals->_inventory[i];
_vm->_globals->_saveData->_mapCarPosX = _vm->_objectsManager._mapCarPosX;
_vm->_globals->_saveData->_mapCarPosY = _vm->_objectsManager._mapCarPosY;
_vm->_globals->_saveData->_mapCarPosX = _vm->_objectsManager->_mapCarPosX;
_vm->_globals->_saveData->_mapCarPosY = _vm->_objectsManager->_mapCarPosY;
/* Create the savegame */
Common::OutSaveFile *savefile = g_system->getSavefileManager()->openForSaving(_vm->generateSaveName(slot));
@ -207,8 +207,8 @@ Common::Error SaveLoadManager::loadGame(int slot) {
_vm->_globals->_exitId = _vm->_globals->_saveData->_data[svLastScreenId];
_vm->_globals->_saveData->_data[svLastPrevScreenId] = 0;
_vm->_globals->_screenId = 0;
_vm->_objectsManager._mapCarPosX = _vm->_globals->_saveData->_mapCarPosX;
_vm->_objectsManager._mapCarPosY = _vm->_globals->_saveData->_mapCarPosY;
_vm->_objectsManager->_mapCarPosX = _vm->_globals->_saveData->_mapCarPosX;
_vm->_objectsManager->_mapCarPosY = _vm->_globals->_saveData->_mapCarPosY;
return Common::kNoError;
}

File diff suppressed because it is too large Load Diff

View File

@ -81,9 +81,9 @@ void TalkManager::startAnimatedCharacterDialogue(const Common::String &filename)
_paletteBufferIdx = 20 * READ_LE_INT16((uint16 *)_characterBuffer + 42) + 110;
_characterSprite = _vm->_fileManager->searchCat(spriteFilename, RES_SAN);
if (_characterSprite) {
_characterSprite = _vm->_objectsManager.loadSprite(spriteFilename);
_characterSprite = _vm->_objectsManager->loadSprite(spriteFilename);
} else {
_characterSprite = _vm->_objectsManager.loadSprite("RES_SAN.RES");
_characterSprite = _vm->_objectsManager->loadSprite("RES_SAN.RES");
}
if (_vm->_graphicsManager->_lineNbr == SCREEN_WIDTH)
@ -94,7 +94,7 @@ void TalkManager::startAnimatedCharacterDialogue(const Common::String &filename)
if (!_vm->_graphicsManager->_lineNbr)
_vm->_graphicsManager->_scrollOffset = 0;
_vm->_graphicsManager->NB_SCREEN(true);
_vm->_objectsManager.PERSO_ON = true;
_vm->_objectsManager->PERSO_ON = true;
searchCharacterPalette(_paletteBufferIdx, false);
startCharacterAnim0(_paletteBufferIdx, false);
initCharacterAnim();
@ -132,7 +132,7 @@ void TalkManager::startAnimatedCharacterDialogue(const Common::String &filename)
_vm->_saveLoadManager.load("TEMP.SCR", _vm->_graphicsManager->_vesaScreen);
g_system->getSavefileManager()->removeSavefile("TEMP.SCR");
_vm->_objectsManager.PERSO_ON = false;
_vm->_objectsManager->PERSO_ON = false;
_vm->_eventsManager->_mouseCursorId = oldMouseCursorId;
_vm->_eventsManager->changeMouseCursor(oldMouseCursorId);
@ -233,15 +233,15 @@ int TalkManager::dialogQuestion(bool animatedFl) {
uint16 *bufPtr = (uint16 *)_characterBuffer + 48;
int curVal = READ_LE_INT16(bufPtr);
if (curVal != 0)
_vm->_objectsManager.setBobAnimation(curVal);
_vm->_objectsManager->setBobAnimation(curVal);
if (curVal != 1)
_vm->_objectsManager.setBobAnimation(READ_LE_INT16(bufPtr + 1));
_vm->_objectsManager->setBobAnimation(READ_LE_INT16(bufPtr + 1));
if (curVal != 2)
_vm->_objectsManager.setBobAnimation(READ_LE_INT16(bufPtr + 2));
_vm->_objectsManager->setBobAnimation(READ_LE_INT16(bufPtr + 2));
if (curVal != 3)
_vm->_objectsManager.setBobAnimation(READ_LE_INT16(bufPtr + 3));
_vm->_objectsManager->setBobAnimation(READ_LE_INT16(bufPtr + 3));
if (curVal != 4)
_vm->_objectsManager.setBobAnimation(READ_LE_INT16(bufPtr + 4));
_vm->_objectsManager->setBobAnimation(READ_LE_INT16(bufPtr + 4));
} else {
dialogWait();
}
@ -304,23 +304,23 @@ int TalkManager::dialogQuestion(bool animatedFl) {
int curVal = READ_LE_INT16(bufPtr);
if (curVal != 0)
_vm->_objectsManager.stopBobAnimation(curVal);
_vm->_objectsManager->stopBobAnimation(curVal);
curVal = READ_LE_INT16(bufPtr + 1);
if (curVal != 1)
_vm->_objectsManager.stopBobAnimation(curVal);
_vm->_objectsManager->stopBobAnimation(curVal);
curVal = READ_LE_INT16(bufPtr + 2);
if (curVal != 2)
_vm->_objectsManager.stopBobAnimation(curVal);
_vm->_objectsManager->stopBobAnimation(curVal);
curVal = READ_LE_INT16(bufPtr + 3);
if (curVal != 3)
_vm->_objectsManager.stopBobAnimation(curVal);
_vm->_objectsManager->stopBobAnimation(curVal);
curVal = READ_LE_INT16(bufPtr + 4);
if (curVal != 4)
_vm->_objectsManager.stopBobAnimation(curVal);
_vm->_objectsManager->stopBobAnimation(curVal);
} else {
dialogTalk();
}
@ -357,23 +357,23 @@ int TalkManager::dialogAnswer(int idx, bool animatedFl) {
uint16 *bufPtr = (uint16 *)_characterBuffer + 43;
int curVal = READ_LE_INT16(bufPtr);
if (curVal)
_vm->_objectsManager.stopBobAnimation(curVal);
_vm->_objectsManager->stopBobAnimation(curVal);
curVal = READ_LE_INT16(bufPtr + 1);
if (curVal)
_vm->_objectsManager.stopBobAnimation(curVal);
_vm->_objectsManager->stopBobAnimation(curVal);
curVal = READ_LE_INT16(bufPtr + 2);
if (curVal)
_vm->_objectsManager.stopBobAnimation(curVal);
_vm->_objectsManager->stopBobAnimation(curVal);
curVal = READ_LE_INT16(bufPtr + 3);
if (curVal)
_vm->_objectsManager.stopBobAnimation(curVal);
_vm->_objectsManager->stopBobAnimation(curVal);
curVal = READ_LE_INT16(bufPtr + 4);
if (curVal)
_vm->_objectsManager.stopBobAnimation(curVal);
_vm->_objectsManager->stopBobAnimation(curVal);
} else {
VISU_PARLE();
}
@ -409,23 +409,23 @@ int TalkManager::dialogAnswer(int idx, bool animatedFl) {
uint16 *bufPtr = (uint16 *)_characterBuffer + 43;
int curVal = READ_LE_INT16(bufPtr);
if (curVal)
_vm->_objectsManager.stopBobAnimation(curVal);
_vm->_objectsManager->stopBobAnimation(curVal);
curVal = READ_LE_INT16(bufPtr + 1);
if (curVal)
_vm->_objectsManager.stopBobAnimation(curVal);
_vm->_objectsManager->stopBobAnimation(curVal);
curVal = READ_LE_INT16(bufPtr + 2);
if (curVal)
_vm->_objectsManager.stopBobAnimation(curVal);
_vm->_objectsManager->stopBobAnimation(curVal);
curVal = READ_LE_INT16(bufPtr + 3);
if (curVal)
_vm->_objectsManager.stopBobAnimation(curVal);
_vm->_objectsManager->stopBobAnimation(curVal);
curVal = READ_LE_INT16(bufPtr + 4);
if (curVal)
_vm->_objectsManager.stopBobAnimation(curVal);
_vm->_objectsManager->stopBobAnimation(curVal);
} else {
dialogEndTalk();
}
@ -481,19 +481,19 @@ void TalkManager::dialogWait() {
void TalkManager::dialogTalk() {
for (int idx = 26; idx <= 30; ++idx) {
if (_vm->_globals->_animBqe[idx]._enabledFl)
_vm->_objectsManager.hideBob(idx);
_vm->_objectsManager->hideBob(idx);
}
for (int idx = 26; idx <= 30; ++idx) {
if (_vm->_globals->_animBqe[idx]._enabledFl)
_vm->_objectsManager.resetBob(idx);
_vm->_objectsManager->resetBob(idx);
}
}
void TalkManager::dialogEndTalk() {
for (int idx = 21; idx <= 25; ++idx) {
if (_vm->_globals->_animBqe[idx]._enabledFl)
_vm->_objectsManager.hideBob(idx);
_vm->_objectsManager->hideBob(idx);
}
_vm->_eventsManager->refreshScreenAndEvents();
@ -501,7 +501,7 @@ void TalkManager::dialogEndTalk() {
for (int idx = 21; idx <= 25; ++idx) {
if (_vm->_globals->_animBqe[idx]._enabledFl)
_vm->_objectsManager.resetBob(idx);
_vm->_objectsManager->resetBob(idx);
}
}
@ -601,24 +601,24 @@ void TalkManager::VISU_PARLE() {
}
void TalkManager::BOB_VISU_PARLE(int idx) {
_vm->_objectsManager._priorityFl = true;
if (!_vm->_objectsManager._bob[idx]._bobMode) {
_vm->_objectsManager.resetBob(idx);
_vm->_objectsManager->_priorityFl = true;
if (!_vm->_objectsManager->_bob[idx]._bobMode) {
_vm->_objectsManager->resetBob(idx);
byte *bqeData = _vm->_globals->_animBqe[idx]._data;
int newMode = READ_LE_INT16(bqeData + 2);
if (!newMode)
newMode = 1;
if (READ_LE_INT16(bqeData + 24)) {
_vm->_objectsManager._bob[idx]._isSpriteFl = true;
_vm->_objectsManager._bob[idx]._zoomFactor = 0;
_vm->_objectsManager._bob[idx]._flipFl = false;
_vm->_objectsManager._bob[idx]._animData = _vm->_globals->_animBqe[idx]._data;
_vm->_objectsManager._bob[idx]._bobMode = 10;
_vm->_objectsManager->_bob[idx]._isSpriteFl = true;
_vm->_objectsManager->_bob[idx]._zoomFactor = 0;
_vm->_objectsManager->_bob[idx]._flipFl = false;
_vm->_objectsManager->_bob[idx]._animData = _vm->_globals->_animBqe[idx]._data;
_vm->_objectsManager->_bob[idx]._bobMode = 10;
bqeData = _characterSprite;
_vm->_objectsManager._bob[idx]._spriteData = _characterSprite;
_vm->_objectsManager._bob[idx]._bobModeChange = newMode;
_vm->_objectsManager._bob[idx].field20 = -1;
_vm->_objectsManager._bob[idx].field22 = 0;
_vm->_objectsManager->_bob[idx]._spriteData = _characterSprite;
_vm->_objectsManager->_bob[idx]._bobModeChange = newMode;
_vm->_objectsManager->_bob[idx].field20 = -1;
_vm->_objectsManager->_bob[idx].field22 = 0;
}
}
}
@ -848,8 +848,8 @@ void TalkManager::REPONSE(int zone, int verb) {
else if (opcodeType == 6) {
// JUMP
_vm->_globals->freeMemory(ptr);
zoneObj = _vm->_objectsManager._jumpZone;
verbObj = _vm->_objectsManager._jumpVerb;
zoneObj = _vm->_objectsManager->_jumpZone;
verbObj = _vm->_objectsManager->_jumpVerb;
outerLoopFl = true;
break;
}
@ -866,26 +866,26 @@ void TalkManager::REPONSE2(int zone, int verb) {
return;
if (zone == 22 || zone == 23) {
_vm->_objectsManager.setFlipSprite(0, false);
_vm->_objectsManager.setSpriteIndex(0, 62);
_vm->_objectsManager.SPACTION(_vm->_objectsManager._forestSprite, "2,3,4,5,6,7,8,9,10,11,12,-1,", 4, false);
_vm->_objectsManager->setFlipSprite(0, false);
_vm->_objectsManager->setSpriteIndex(0, 62);
_vm->_objectsManager->SPACTION(_vm->_objectsManager->_forestSprite, "2,3,4,5,6,7,8,9,10,11,12,-1,", 4, false);
if (zone == 22) {
_vm->_objectsManager.lockAnimX(6, _vm->_objectsManager.getBobPosX(3));
_vm->_objectsManager.lockAnimX(8, _vm->_objectsManager.getBobPosX(3));
_vm->_objectsManager->lockAnimX(6, _vm->_objectsManager->getBobPosX(3));
_vm->_objectsManager->lockAnimX(8, _vm->_objectsManager->getBobPosX(3));
} else { // zone == 23
_vm->_objectsManager.lockAnimX(6, _vm->_objectsManager.getBobPosX(4));
_vm->_objectsManager.lockAnimX(8, _vm->_objectsManager.getBobPosX(4));
_vm->_objectsManager->lockAnimX(6, _vm->_objectsManager->getBobPosX(4));
_vm->_objectsManager->lockAnimX(8, _vm->_objectsManager->getBobPosX(4));
}
_vm->_objectsManager.stopBobAnimation(3);
_vm->_objectsManager.stopBobAnimation(4);
_vm->_objectsManager.setBobAnimation(6);
_vm->_objectsManager->stopBobAnimation(3);
_vm->_objectsManager->stopBobAnimation(4);
_vm->_objectsManager->setBobAnimation(6);
_vm->_soundManager.playSample(1);
_vm->_objectsManager.SPACTION1(_vm->_objectsManager._forestSprite, "13,14,15,14,13,12,13,14,15,16,-1,", 4);
_vm->_objectsManager->SPACTION1(_vm->_objectsManager->_forestSprite, "13,14,15,14,13,12,13,14,15,16,-1,", 4);
do
_vm->_eventsManager->refreshScreenAndEvents();
while (_vm->_objectsManager.getBobAnimDataIdx(6) < 12);
_vm->_objectsManager.stopBobAnimation(6);
_vm->_objectsManager.setBobAnimation(8);
while (_vm->_objectsManager->getBobAnimDataIdx(6) < 12);
_vm->_objectsManager->stopBobAnimation(6);
_vm->_objectsManager->setBobAnimation(8);
switch (_vm->_globals->_screenId) {
case 35:
@ -914,26 +914,26 @@ void TalkManager::REPONSE2(int zone, int verb) {
_vm->_linesManager->disableZone(22);
_vm->_linesManager->disableZone(23);
} else if (zone == 20 || zone == 21) {
_vm->_objectsManager.setFlipSprite(0, true);
_vm->_objectsManager.setSpriteIndex(0, 62);
_vm->_objectsManager.SPACTION(_vm->_objectsManager._forestSprite, "2,3,4,5,6,7,8,9,10,11,12,-1,", 4, true);
_vm->_objectsManager->setFlipSprite(0, true);
_vm->_objectsManager->setSpriteIndex(0, 62);
_vm->_objectsManager->SPACTION(_vm->_objectsManager->_forestSprite, "2,3,4,5,6,7,8,9,10,11,12,-1,", 4, true);
if (zone == 20) {
_vm->_objectsManager.lockAnimX(5, _vm->_objectsManager.getBobPosX(1));
_vm->_objectsManager.lockAnimX(7, _vm->_objectsManager.getBobPosX(1));
_vm->_objectsManager->lockAnimX(5, _vm->_objectsManager->getBobPosX(1));
_vm->_objectsManager->lockAnimX(7, _vm->_objectsManager->getBobPosX(1));
} else { // zone == 21
_vm->_objectsManager.lockAnimX(5, _vm->_objectsManager.getBobPosX(2));
_vm->_objectsManager.lockAnimX(7, _vm->_objectsManager.getBobPosX(2));
_vm->_objectsManager->lockAnimX(5, _vm->_objectsManager->getBobPosX(2));
_vm->_objectsManager->lockAnimX(7, _vm->_objectsManager->getBobPosX(2));
}
_vm->_objectsManager.stopBobAnimation(1);
_vm->_objectsManager.stopBobAnimation(2);
_vm->_objectsManager.setBobAnimation(5);
_vm->_objectsManager->stopBobAnimation(1);
_vm->_objectsManager->stopBobAnimation(2);
_vm->_objectsManager->setBobAnimation(5);
_vm->_soundManager.playSample(1);
_vm->_objectsManager.SPACTION1(_vm->_objectsManager._forestSprite, "13,14,15,14,13,12,13,14,15,16,-1,", 4);
_vm->_objectsManager->SPACTION1(_vm->_objectsManager->_forestSprite, "13,14,15,14,13,12,13,14,15,16,-1,", 4);
do
_vm->_eventsManager->refreshScreenAndEvents();
while (_vm->_objectsManager.getBobAnimDataIdx(5) < 12);
_vm->_objectsManager.stopBobAnimation(5);
_vm->_objectsManager.setBobAnimation(7);
while (_vm->_objectsManager->getBobAnimDataIdx(5) < 12);
_vm->_objectsManager->stopBobAnimation(5);
_vm->_objectsManager->setBobAnimation(7);
switch (_vm->_globals->_screenId) {
case 35:
indx = 200;
@ -975,7 +975,7 @@ void TalkManager::animateObject(const Common::String &filename) {
for (int i = 0; i <= 44; i++)
_vm->_linesManager->BOBZONE[i] = 0;
_vm->_objectsManager._zoneNum = -1;
_vm->_objectsManager->_zoneNum = -1;
_vm->_eventsManager->_mouseCursorId = 4;
_vm->_eventsManager->changeMouseCursor(0);
_characterBuffer = _vm->_fileManager->searchCat(filename, RES_PER);
@ -996,9 +996,9 @@ void TalkManager::animateObject(const Common::String &filename) {
_characterSprite = _vm->_fileManager->searchCat(spriteFilename, RES_SAN);
if (_characterSprite)
_characterSprite = _vm->_objectsManager.loadSprite(spriteFilename);
_characterSprite = _vm->_objectsManager->loadSprite(spriteFilename);
else
_characterSprite = _vm->_objectsManager.loadSprite("RES_SAN.RES");
_characterSprite = _vm->_objectsManager->loadSprite("RES_SAN.RES");
if (_vm->_graphicsManager->_lineNbr == SCREEN_WIDTH)
_vm->_saveLoadManager.saveFile("TEMP.SCR", _vm->_graphicsManager->_vesaScreen, 307200);
@ -1010,33 +1010,33 @@ void TalkManager::animateObject(const Common::String &filename) {
_vm->_graphicsManager->NB_SCREEN(true);
_paletteBufferIdx = 20 * READ_LE_INT16((uint16 *)_characterBuffer + 42) + 110;
_vm->_graphicsManager->NB_SCREEN(true);
_vm->_objectsManager.PERSO_ON = true;
_vm->_objectsManager->PERSO_ON = true;
searchCharacterPalette(_paletteBufferIdx, true);
startCharacterAnim0(_paletteBufferIdx, false);
byte *oldAnswerBufferPtr = _vm->_globals->_answerBuffer;
_vm->_globals->_answerBuffer = g_PTRNUL;
_vm->_globals->_freezeCharacterFl = true;
_vm->_objectsManager.loadLinkFile(screenFilename);
_vm->_objectsManager.PERSO_ON = true;
_vm->_objectsManager->loadLinkFile(screenFilename);
_vm->_objectsManager->PERSO_ON = true;
_vm->_globals->_actionMoveTo = false;
_vm->_objectsManager._zoneNum = -1;
_vm->_objectsManager->_zoneNum = -1;
initCharacterAnim();
VISU_PARLE();
dialogWait();
_vm->_graphicsManager->initScreen(screenFilename, 2, true);
_vm->_globals->_freezeCharacterFl = true;
_vm->_objectsManager._forceZoneFl = true;
_vm->_objectsManager._zoneNum = -1;
_vm->_objectsManager->_forceZoneFl = true;
_vm->_objectsManager->_zoneNum = -1;
do {
int mouseButton = _vm->_eventsManager->getMouseButton();
if (mouseButton == 1)
_vm->_objectsManager.handleLeftButton();
_vm->_objectsManager->handleLeftButton();
else if (mouseButton == 2)
_vm->_objectsManager.handleRightButton();
_vm->_objectsManager->handleRightButton();
_vm->_linesManager->checkZone();
if (_vm->_globals->_actionMoveTo)
_vm->_objectsManager.PARADISE();
_vm->_objectsManager->PARADISE();
_vm->_eventsManager->refreshScreenAndEvents();
} while (!_vm->_globals->_exitId);
dialogEndTalk();
@ -1055,10 +1055,10 @@ void TalkManager::animateObject(const Common::String &filename) {
_vm->_globals->freeMemory(_vm->_globals->_answerBuffer);
_vm->_globals->_answerBuffer = oldAnswerBufferPtr;
_vm->_objectsManager._disableFl = true;
_vm->_objectsManager.loadLinkFile(curScreenFilename);
_vm->_objectsManager->_disableFl = true;
_vm->_objectsManager->loadLinkFile(curScreenFilename);
_vm->_graphicsManager->initScreen(curScreenFilename, 2, true);
_vm->_objectsManager._disableFl = false;
_vm->_objectsManager->_disableFl = false;
_vm->_globals->_freezeCharacterFl = false;
if (_vm->_globals->_exitId == 101)
_vm->_globals->_exitId = 0;
@ -1066,7 +1066,7 @@ void TalkManager::animateObject(const Common::String &filename) {
_vm->_saveLoadManager.load("TEMP.SCR", _vm->_graphicsManager->_vesaScreen);
g_system->getSavefileManager()->removeSavefile("TEMP.SCR");
_vm->_objectsManager.PERSO_ON = false;
_vm->_objectsManager->PERSO_ON = false;
_vm->_eventsManager->_mouseCursorId = 4;
_vm->_eventsManager->changeMouseCursor(4);
_vm->_graphicsManager->SETCOLOR3(253, 100, 100, 100);