aboutsummaryrefslogtreecommitdiff
path: root/engines/dm
diff options
context:
space:
mode:
Diffstat (limited to 'engines/dm')
-rw-r--r--engines/dm/champion.cpp217
-rw-r--r--engines/dm/dialog.cpp145
-rw-r--r--engines/dm/dungeonman.cpp24
-rw-r--r--engines/dm/eventman.cpp76
-rw-r--r--engines/dm/movesens.cpp3
5 files changed, 267 insertions, 198 deletions
diff --git a/engines/dm/champion.cpp b/engines/dm/champion.cpp
index 1fe6e8749b..f95b775aa5 100644
--- a/engines/dm/champion.cpp
+++ b/engines/dm/champion.cpp
@@ -263,11 +263,13 @@ int16 ChampionMan::getDecodedValue(char *string, uint16 characterCount) {
}
void ChampionMan::drawHealthOrStaminaOrManaValue(int16 posY, int16 currVal, int16 maxVal) {
+ TextMan &txtMan = *_vm->_textMan;
+
Common::String tmp = getStringFromInteger(currVal, true, 3);
- _vm->_textMan->printToViewport(55, posY, kDMColorLightestGray, tmp.c_str());
- _vm->_textMan->printToViewport(73, posY, kDMColorLightestGray, "/");
+ txtMan.printToViewport(55, posY, kDMColorLightestGray, tmp.c_str());
+ txtMan.printToViewport(73, posY, kDMColorLightestGray, "/");
tmp = getStringFromInteger(maxVal, true, 3);
- _vm->_textMan->printToViewport(79, posY, kDMColorLightestGray, tmp.c_str());
+ txtMan.printToViewport(79, posY, kDMColorLightestGray, tmp.c_str());
}
uint16 ChampionMan::getHandSlotIndex(uint16 slotBoxIndex) {
@@ -898,16 +900,18 @@ uint16 ChampionMan::getStatisticAdjustedAttack(Champion *champ, uint16 statIndex
}
void ChampionMan::wakeUp() {
+ EventManager &evtMan = *_vm->_eventMan;
+
_vm->_stopWaitingForPlayerInput = true;
_partyIsSleeping = false;
_vm->_waitForInputMaxVerticalBlankCount = 10;
_vm->delay(10);
_vm->_displayMan->drawFloorAndCeiling();
- _vm->_eventMan->_primaryMouseInput = _vm->_eventMan->_primaryMouseInputInterface;
- _vm->_eventMan->_secondaryMouseInput = _vm->_eventMan->_secondaryMouseInputMovement;
- _vm->_eventMan->_primaryKeyboardInput = _vm->_eventMan->_primaryKeyboardInputInterface;
- _vm->_eventMan->_secondaryKeyboardInput = _vm->_eventMan->_secondaryKeyboardInputMovement;
- _vm->_eventMan->discardAllInput();
+ evtMan._primaryMouseInput = evtMan._primaryMouseInputInterface;
+ evtMan._secondaryMouseInput = evtMan._secondaryMouseInputMovement;
+ evtMan._primaryKeyboardInput = evtMan._primaryKeyboardInputInterface;
+ evtMan._secondaryKeyboardInput = evtMan._secondaryKeyboardInputMovement;
+ evtMan.discardAllInput();
_vm->_menuMan->drawEnabledMenus();
}
@@ -948,6 +952,8 @@ void ChampionMan::disableAction(uint16 champIndex, uint16 ticks) {
void ChampionMan::addSkillExperience(uint16 champIndex, uint16 skillIndex, uint16 exp) {
DungeonMan &dungeon = *_vm->_dungeonMan;
+ TextMan &txtMan = *_vm->_textMan;
+
if ((skillIndex >= kDMSkillSwing) && (skillIndex <= kDMSkillShoot) && (_vm->_projexpl->_lastCreatureAttackTime < _vm->_gameTime - 150))
exp >>= 1;
@@ -1032,24 +1038,36 @@ void ChampionMan::addSkillExperience(uint16 champIndex, uint16 skillIndex, uint1
setFlag(curChampion->_attributes, kDMAttributeStatistics);
drawChampionState((ChampionIndex)champIndex);
- _vm->_textMan->printLineFeed();
+ txtMan.printLineFeed();
Color curChampionColor = _championColor[champIndex];
- _vm->_textMan->printMessage(curChampionColor, curChampion->_name);
+ txtMan.printMessage(curChampionColor, curChampion->_name);
switch (_vm->getGameLanguage()) { // localized
default:
- case Common::EN_ANY: _vm->_textMan->printMessage(curChampionColor, " JUST GAINED A "); break;
- case Common::DE_DEU: _vm->_textMan->printMessage(curChampionColor, " HAT SOEBEN STUFE"); break;
- case Common::FR_FRA: _vm->_textMan->printMessage(curChampionColor, " VIENT DE DEVENIR "); break;
+ case Common::EN_ANY:
+ txtMan.printMessage(curChampionColor, " JUST GAINED A ");
+ break;
+ case Common::DE_DEU:
+ txtMan.printMessage(curChampionColor, " HAT SOEBEN STUFE");
+ break;
+ case Common::FR_FRA:
+ txtMan.printMessage(curChampionColor, " VIENT DE DEVENIR ");
+ break;
}
- _vm->_textMan->printMessage(curChampionColor, _baseSkillName[baseSkillIndex]);
+ txtMan.printMessage(curChampionColor, _baseSkillName[baseSkillIndex]);
switch (_vm->getGameLanguage()) { // localized
default:
- case Common::EN_ANY: _vm->_textMan->printMessage(curChampionColor, "!"); break;
- case Common::DE_DEU: _vm->_textMan->printMessage(curChampionColor, " LEVEL!"); break;
- case Common::FR_FRA: _vm->_textMan->printMessage(curChampionColor, " ERREICHT!"); break;
+ case Common::EN_ANY:
+ txtMan.printMessage(curChampionColor, "!");
+ break;
+ case Common::DE_DEU:
+ txtMan.printMessage(curChampionColor, " LEVEL!");
+ break;
+ case Common::FR_FRA:
+ txtMan.printMessage(curChampionColor, " ERREICHT!");
+ break;
}
}
}
@@ -1200,17 +1218,19 @@ void ChampionMan::putObjectInLeaderHand(Thing thing, bool setMousePointer) {
if (thing == Thing::_none)
return;
+ EventManager &evtMan = *_vm->_eventMan;
+
_leaderEmptyHanded = false;
_vm->_objectMan->extractIconFromBitmap(_leaderHandObjectIconIndex = _vm->_objectMan->getIconIndex(_leaderHandObject = thing), _vm->_objectMan->_objectIconForMousePointer);
- _vm->_eventMan->showMouse();
+ evtMan.showMouse();
_vm->_objectMan->drawLeaderObjectName(thing);
if (setMousePointer)
_vm->_setMousePointerToObjectInMainLoop = true;
else
- _vm->_eventMan->setPointerToObject(_vm->_objectMan->_objectIconForMousePointer);
+ evtMan.setPointerToObject(_vm->_objectMan->_objectIconForMousePointer);
- _vm->_eventMan->hideMouse();
+ evtMan.hideMouse();
if (_leaderIndex != kDMChampionNone) {
_champions[_leaderIndex]._load += _vm->_dungeonMan->getObjectWeight(thing);
setFlag(_champions[_leaderIndex]._attributes, kDMAttributeLoad);
@@ -1329,7 +1349,8 @@ void ChampionMan::clickOnSlotBox(uint16 slotBoxIndex) {
if ((leaderHandObject != Thing::_none) && (!(dungeon._objectInfos[dungeon.getObjectInfoIndex(leaderHandObject)]._allowedSlots & _slotMasks[slotIndex])))
return;
- _vm->_eventMan->showMouse();
+ EventManager &evtMan = *_vm->_eventMan;
+ evtMan.showMouse();
if (leaderHandObject != Thing::_none)
getObjectRemovedFromLeaderHand();
@@ -1342,7 +1363,7 @@ void ChampionMan::clickOnSlotBox(uint16 slotBoxIndex) {
addObjectInSlot((ChampionIndex)champIndex, leaderHandObject, (ChampionSlot)slotIndex);
drawChampionState((ChampionIndex)champIndex);
- _vm->_eventMan->hideMouse();
+ evtMan.hideMouse();
}
bool ChampionMan::isProjectileSpellCast(uint16 champIndex, Thing thing, int16 kineticEnergy, uint16 requiredManaAmount) {
@@ -1372,6 +1393,9 @@ void ChampionMan::championShootProjectile(Champion *champ, Thing thing, int16 ki
void ChampionMan::applyAndDrawPendingDamageAndWounds() {
Champion *championPtr = _champions;
+ EventManager &evtMan = *_vm->_eventMan;
+ TextMan &txtMan = *_vm->_textMan;
+
for (uint16 championIndex = kDMChampionFirst; championIndex < _partyChampionCount; championIndex++, championPtr++) {
int16 pendingWounds = _championPendingWounds[championIndex];
setFlag(championPtr->_wounds, pendingWounds);
@@ -1402,7 +1426,7 @@ void ChampionMan::applyAndDrawPendingDamageAndWounds() {
Box blitBox;
blitBox._rect.top = 0;
- _vm->_eventMan->showMouse();
+ evtMan.showMouse();
if (_vm->indexToOrdinal(championIndex) == _vm->_inventoryMan->_inventoryChampionOrdinal) {
blitBox._rect.bottom = 28;
@@ -1433,7 +1457,7 @@ void ChampionMan::applyAndDrawPendingDamageAndWounds() {
textPosY = 5;
}
- _vm->_textMan->printToLogicalScreen(textPosX, textPosY, kDMColorWhite, kDMColorRed, getStringFromInteger(pendingDamage, false, 3).c_str());
+ txtMan.printToLogicalScreen(textPosX, textPosY, kDMColorWhite, kDMColorRed, getStringFromInteger(pendingDamage, false, 3).c_str());
int16 eventIndex = championPtr->_hideDamageReceivedIndex;
if (eventIndex == -1) {
@@ -1448,7 +1472,7 @@ void ChampionMan::applyAndDrawPendingDamageAndWounds() {
_vm->_timeline->fixChronology(_vm->_timeline->getIndex(eventIndex));
}
drawChampionState((ChampionIndex)championIndex);
- _vm->_eventMan->hideMouse();
+ evtMan.hideMouse();
}
}
}
@@ -1456,23 +1480,24 @@ void ChampionMan::applyAndDrawPendingDamageAndWounds() {
void ChampionMan::championKill(uint16 champIndex) {
DungeonMan &dungeon = *_vm->_dungeonMan;
Champion *curChampion = &_champions[champIndex];
+ EventManager &evtMan = *_vm->_eventMan;
curChampion->_currHealth = 0;
setFlag(curChampion->_attributes, kDMAttributeStatusBox);
if (_vm->indexToOrdinal(champIndex) == _vm->_inventoryMan->_inventoryChampionOrdinal) {
if (_vm->_pressingEye) {
_vm->_pressingEye = false;
- _vm->_eventMan->_ignoreMouseMovements = false;
+ evtMan._ignoreMouseMovements = false;
if (!_leaderEmptyHanded) {
_vm->_objectMan->drawLeaderObjectName(_leaderHandObject);
}
- _vm->_eventMan->_hideMousePointerRequestCount = 1;
- _vm->_eventMan->hideMouse();
+ evtMan._hideMousePointerRequestCount = 1;
+ evtMan.hideMouse();
} else if (_vm->_pressingMouth) {
_vm->_pressingMouth = false;
- _vm->_eventMan->_ignoreMouseMovements = false;
- _vm->_eventMan->_hideMousePointerRequestCount = 1;
- _vm->_eventMan->hideMouse();
+ evtMan._ignoreMouseMovements = false;
+ evtMan._hideMousePointerRequestCount = 1;
+ evtMan.hideMouse();
}
_vm->_inventoryMan->toggleInventory(kDMChampionCloseInventory);
}
@@ -1492,9 +1517,9 @@ void ChampionMan::championKill(uint16 champIndex) {
curChampion->_dir = dungeon._partyDir;
curChampion->_maximumDamageReceived = 0;
uint16 curChampionIconIndex = getChampionIconIndex(curCell, dungeon._partyDir);
- if (_vm->indexToOrdinal(curChampionIconIndex) == _vm->_eventMan->_useChampionIconOrdinalAsMousePointerBitmap) {
- _vm->_eventMan->_mousePointerBitmapUpdated = true;
- _vm->_eventMan->_useChampionIconOrdinalAsMousePointerBitmap = _vm->indexToOrdinal(kDMChampionNone);
+ if (_vm->indexToOrdinal(curChampionIconIndex) == evtMan._useChampionIconOrdinalAsMousePointerBitmap) {
+ evtMan._mousePointerBitmapUpdated = true;
+ evtMan._useChampionIconOrdinalAsMousePointerBitmap = _vm->indexToOrdinal(kDMChampionNone);
}
if (curChampion->_poisonEventCount)
@@ -1516,7 +1541,7 @@ void ChampionMan::championKill(uint16 champIndex) {
}
if (champIndex == _leaderIndex)
- _vm->_eventMan->commandSetLeader(aliveChampionIndex);
+ evtMan.commandSetLeader(aliveChampionIndex);
if (champIndex == _magicCasterChampionIndex)
_vm->_menuMan->setMagicCasterAndDrawSpellArea(aliveChampionIndex);
@@ -1841,10 +1866,12 @@ ChampionIndex ChampionMan::getIndexInCell(int16 cell) {
void ChampionMan::resetDataToStartGame() {
if (_vm->_gameMode == kDMModeLoadSavedGame) {
Thing handThing = _leaderHandObject;
+ EventManager &evtMan = *_vm->_eventMan;
+
if (handThing == Thing::_none) {
_leaderEmptyHanded = true;
_leaderHandObjectIconIndex = kDMIconIndiceNone;
- _vm->_eventMan->setMousePointer();
+ evtMan.setMousePointer();
} else
putObjectInLeaderHand(handThing, true); /* This call will add the weight of the leader hand object to the Load of the leader a first time */
@@ -1858,7 +1885,7 @@ void ChampionMan::resetDataToStartGame() {
ChampionIndex championIndex = _leaderIndex;
if (championIndex != kDMChampionNone) {
_leaderIndex = kDMChampionNone;
- _vm->_eventMan->commandSetLeader(championIndex);
+ evtMan.commandSetLeader(championIndex);
}
championIndex = _magicCasterChampionIndex;
@@ -2047,8 +2074,10 @@ void ChampionMan::addCandidateChampionToParty(uint16 championPortraitIndex) {
}
void ChampionMan::drawChampionBarGraphs(ChampionIndex champIndex) {
- int16 barGraphHeights[3];
Champion *champ = &_champions[champIndex];
+ EventManager &evtMan = *_vm->_eventMan;
+
+ int16 barGraphHeights[3];
int16 barGraphIdx = 0;
if (champ->_currHealth > 0) {
int32 barGraphHeight = (((int32)champ->_currHealth << 10) * 25) / champ->_maxHealth;
@@ -2072,7 +2101,7 @@ void ChampionMan::drawChampionBarGraphs(ChampionIndex champIndex) {
} else {
barGraphHeights[barGraphIdx] = 0;
}
- _vm->_eventMan->showMouse();
+ evtMan.showMouse();
// Strangerke - TO CHECK: if portraits, maybe the old (assembly) code is required for older versions
Box box;
@@ -2095,7 +2124,7 @@ void ChampionMan::drawChampionBarGraphs(ChampionIndex champIndex) {
box._rect.left += 7;
box._rect.right += 7;
}
- _vm->_eventMan->hideMouse();
+ evtMan.hideMouse();
}
@@ -2130,13 +2159,16 @@ void ChampionMan::drawChampionState(ChampionIndex champIndex) {
int16 championStatusBoxX = champIndex * kDMChampionStatusBoxSpacing;
Champion *curChampion = &_champions[champIndex];
+ EventManager &evtMan = *_vm->_eventMan;
+ TextMan &txtMan = *_vm->_textMan;
+
uint16 championAttributes = curChampion->_attributes;
if (!getFlag(championAttributes, kDMAttributeNameTitle | kDMAttributeStatistics | kDMAttributeLoad | kDMAttributeIcon | kDMAttributePanel | kDMAttributeStatusBox | kDMAttributeWounds | kDMAttributeViewport | kDMAttributeActionHand))
return;
bool isInventoryChampion = (_vm->indexToOrdinal(champIndex) == _vm->_inventoryMan->_inventoryChampionOrdinal);
_vm->_displayMan->_useByteBoxCoordinates = false;
- _vm->_eventMan->showMouse();
+ evtMan.showMouse();
if (getFlag(championAttributes, kDMAttributeStatusBox)) {
Box box;
box._rect.top = 0;
@@ -2169,17 +2201,17 @@ void ChampionMan::drawChampionState(ChampionIndex champIndex) {
setFlag(championAttributes, kDMAttributeNameTitle | kDMAttributeStatistics | kDMAttributeWounds | kDMAttributeActionHand);
} else {
_vm->_displayMan->blitToScreen(_vm->_displayMan->getNativeBitmapOrGraphic(kDMGraphicIdxStatusBoxDeadChampion), &box, k40_byteWidth, kDMColorNoTransparency, 29);
- _vm->_textMan->printToLogicalScreen(championStatusBoxX + 1, 5, kDMColorLightestGray, kDMColorDarkGary, curChampion->_name);
+ txtMan.printToLogicalScreen(championStatusBoxX + 1, 5, kDMColorLightestGray, kDMColorDarkGary, curChampion->_name);
_vm->_menuMan->drawActionIcon(champIndex);
clearFlag(curChampion->_attributes, kDMAttributeNameTitle | kDMAttributeStatistics | kDMAttributeLoad | kDMAttributeIcon | kDMAttributePanel | kDMAttributeStatusBox | kDMAttributeWounds | kDMAttributeViewport | kDMAttributeActionHand);
- _vm->_eventMan->hideMouse();
+ evtMan.hideMouse();
return;
}
}
if (!(curChampion->_currHealth)) {
clearFlag(curChampion->_attributes, kDMAttributeNameTitle | kDMAttributeStatistics | kDMAttributeLoad | kDMAttributeIcon | kDMAttributePanel | kDMAttributeStatusBox | kDMAttributeWounds | kDMAttributeViewport | kDMAttributeActionHand);
- _vm->_eventMan->hideMouse();
+ evtMan.hideMouse();
return;
}
@@ -2187,13 +2219,13 @@ void ChampionMan::drawChampionState(ChampionIndex champIndex) {
Color nameColor = (champIndex == _leaderIndex) ? kDMColorGold : kDMColorLightestGray;
if (isInventoryChampion) {
char *championName = curChampion->_name;
- _vm->_textMan->printToViewport(3, 7, nameColor, championName);
+ txtMan.printToViewport(3, 7, nameColor, championName);
int16 championTitleX = 6 * strlen(championName) + 3;
char titleFirstCharacter = curChampion->_title[0];
if ((titleFirstCharacter != ',') && (titleFirstCharacter != ';') && (titleFirstCharacter != '-'))
championTitleX += 6;
- _vm->_textMan->printToViewport(championTitleX, 7, nameColor, curChampion->_title);
+ txtMan.printToViewport(championTitleX, 7, nameColor, curChampion->_title);
setFlag(championAttributes, kDMAttributeViewport);
} else {
Box box;
@@ -2202,7 +2234,7 @@ void ChampionMan::drawChampionState(ChampionIndex champIndex) {
box._rect.left = championStatusBoxX;
box._rect.right = box._rect.left + 42;
_vm->_displayMan->fillScreenBox(box, kDMColorDarkGary);
- _vm->_textMan->printToLogicalScreen(championStatusBoxX + 1, 5, nameColor, kDMColorDarkGary, curChampion->_name);
+ txtMan.printToLogicalScreen(championStatusBoxX + 1, 5, nameColor, kDMColorDarkGary, curChampion->_name);
}
}
if (getFlag(championAttributes, kDMAttributeStatistics)) {
@@ -2246,9 +2278,15 @@ void ChampionMan::drawChampionState(ChampionIndex champIndex) {
switch (_vm->getGameLanguage()) { // localized
default:
- case Common::EN_ANY: _vm->_textMan->printToViewport(104, 132, loadColor, "LOAD "); break;
- case Common::DE_DEU: _vm->_textMan->printToViewport(104, 132, loadColor, "LAST "); break;
- case Common::FR_FRA: _vm->_textMan->printToViewport(104, 132, loadColor, "CHARGE "); break;
+ case Common::EN_ANY:
+ txtMan.printToViewport(104, 132, loadColor, "LOAD ");
+ break;
+ case Common::DE_DEU:
+ txtMan.printToViewport(104, 132, loadColor, "LAST ");
+ break;
+ case Common::FR_FRA:
+ txtMan.printToViewport(104, 132, loadColor, "CHARGE ");
+ break;
}
maxLoad = curChampion->_load / 10;
@@ -2267,12 +2305,12 @@ void ChampionMan::drawChampionState(ChampionIndex champIndex) {
maxLoad = (getMaximumLoad(curChampion) + 5) / 10;
strcat(_vm->_stringBuildBuffer, getStringFromInteger(maxLoad, true, 3).c_str());
strcat(_vm->_stringBuildBuffer, " KG");
- _vm->_textMan->printToViewport(148, 132, loadColor, _vm->_stringBuildBuffer);
+ txtMan.printToViewport(148, 132, loadColor, _vm->_stringBuildBuffer);
setFlag(championAttributes, kDMAttributeViewport);
}
DungeonMan &dungeon = *_vm->_dungeonMan;
uint16 championIconIndex = getChampionIconIndex(curChampion->_cell, dungeon._partyDir);
- if (getFlag(championAttributes, kDMAttributeIcon) && (_vm->_eventMan->_useChampionIconOrdinalAsMousePointerBitmap != _vm->indexToOrdinal(championIconIndex))) {
+ if (getFlag(championAttributes, kDMAttributeIcon) && (evtMan._useChampionIconOrdinalAsMousePointerBitmap != _vm->indexToOrdinal(championIconIndex))) {
_vm->_displayMan->fillScreenBox(_boxChampionIcons[championIconIndex], _championColor[champIndex]);
_vm->_displayMan->blitToBitmap(_vm->_displayMan->getNativeBitmapOrGraphic(kDMGraphicIdxChampionIcons), _vm->_displayMan->_bitmapScreen, _boxChampionIcons[championIconIndex], getChampionIconIndex(curChampion->_dir, dungeon._partyDir) * 19, 0, k40_byteWidth, k160_byteWidthScreen, kDMColorDarkestGray, 14, k200_heightScreen);
}
@@ -2297,7 +2335,7 @@ void ChampionMan::drawChampionState(ChampionIndex champIndex) {
_vm->_displayMan->drawViewport(k0_viewportNotDungeonView);
clearFlag(curChampion->_attributes, kDMAttributeNameTitle | kDMAttributeStatistics | kDMAttributeLoad | kDMAttributeIcon | kDMAttributePanel | kDMAttributeStatusBox | kDMAttributeWounds | kDMAttributeViewport | kDMAttributeActionHand);
- _vm->_eventMan->hideMouse();
+ evtMan.hideMouse();
}
uint16 ChampionMan::getChampionIconIndex(int16 val, Direction dir) {
@@ -2311,8 +2349,10 @@ void ChampionMan::drawHealthStaminaManaValues(Champion *champ) {
}
void ChampionMan::drawSlot(uint16 champIndex, int16 slotIndex) {
- int16 nativeBitmapIndex = -1;
Champion *champ = &_champions[champIndex];
+ EventManager &evtMan = *_vm->_eventMan;
+
+ int16 nativeBitmapIndex = -1;
bool isInventoryChamp = (_vm->_inventoryMan->_inventoryChampionOrdinal == _vm->indexToOrdinal(champIndex));
uint16 slotBoxIndex;
@@ -2338,7 +2378,7 @@ void ChampionMan::drawSlot(uint16 champIndex, int16 slotIndex) {
box._rect.bottom = box._rect.top + 17;
if (!isInventoryChamp)
- _vm->_eventMan->hideMouse();
+ evtMan.hideMouse();
int16 iconIndex;
if (thing == Thing::_none) {
@@ -2387,16 +2427,19 @@ void ChampionMan::drawSlot(uint16 champIndex, int16 slotIndex) {
_vm->_objectMan->drawIconInSlotBox(slotBoxIndex, iconIndex);
if (!isInventoryChamp)
- _vm->_eventMan->showMouse();
+ evtMan.showMouse();
}
void ChampionMan::renameChampion(Champion *champ) {
-#define k1_RENAME_CHAMPION_NAME 1
-#define k2_RENAME_CHAMPION_TITLE 2
+#define kDMRenameChampionName 1
+#define kDMRenameChampionTitle 2
static const char underscoreCharacterString[2] = "_";
static char renameChampionInputCharacterString[2] = " ";
static const char reincarnateSpecialCharacters[6] = {',', '.', ';', ':', ' '};
+ EventManager &evtMan = *_vm->_eventMan;
+ TextMan &txtMan = *_vm->_textMan;
+
Box displayBox;
displayBox._rect.top = 3;
displayBox._rect.bottom = 8;
@@ -2405,32 +2448,32 @@ void ChampionMan::renameChampion(Champion *champ) {
_vm->_displayMan->fillBoxBitmap(_vm->_displayMan->_bitmapViewport, displayBox, kDMColorDarkestGray, k112_byteWidthViewport, k136_heightViewport);
_vm->_displayMan->blitToViewport(_vm->_displayMan->getNativeBitmapOrGraphic(kDMGraphicIdxPanelRenameChampion), _vm->_inventoryMan->_boxPanel, k72_byteWidth, kDMColorCyan, 73);
- _vm->_textMan->printToViewport(177, 58, kDMColorLightestGray, "_______");
- _vm->_textMan->printToViewport(105, 76, kDMColorLightestGray, "___________________");
- _vm->_eventMan->showMouse();
+ txtMan.printToViewport(177, 58, kDMColorLightestGray, "_______");
+ txtMan.printToViewport(105, 76, kDMColorLightestGray, "___________________");
+ evtMan.showMouse();
_vm->_displayMan->drawViewport(k0_viewportNotDungeonView);
- _vm->_eventMan->setMousePointerToNormal(k0_pointerArrow);
- _vm->_eventMan->hideMouse();
+ evtMan.setMousePointerToNormal(k0_pointerArrow);
+ evtMan.hideMouse();
uint16 curCharacterIndex = 0;
champ->_name[curCharacterIndex] = '\0';
champ->_title[0] = '\0';
- int16 renamedChampionStringMode = k1_RENAME_CHAMPION_NAME;
+ int16 renamedChampionStringMode = kDMRenameChampionName;
char *renamedChampionString = champ->_name;
int16 textPosX = 177;
int16 textPosY = 91;
for (;;) { /*_Infinite loop_*/
- bool championTitleIsFull = ((renamedChampionStringMode == k2_RENAME_CHAMPION_TITLE) && (curCharacterIndex == 19));
+ bool championTitleIsFull = ((renamedChampionStringMode == kDMRenameChampionTitle) && (curCharacterIndex == 19));
if (!championTitleIsFull) {
- _vm->_eventMan->showMouse();
- _vm->_textMan->printTextToBitmap(_vm->_displayMan->_bitmapScreen, k160_byteWidthScreen, textPosX, textPosY, kDMColorGold, kDMColorDarkestGray, underscoreCharacterString, k200_heightScreen);
- _vm->_eventMan->hideMouse();
+ evtMan.showMouse();
+ txtMan.printTextToBitmap(_vm->_displayMan->_bitmapScreen, k160_byteWidthScreen, textPosX, textPosY, kDMColorGold, kDMColorDarkestGray, underscoreCharacterString, k200_heightScreen);
+ evtMan.hideMouse();
}
int16 curCharacter = 256;
while (curCharacter == 256) {
Common::Event event;
- Common::EventType eventType = _vm->_eventMan->processInput(&event, &event);
+ Common::EventType eventType = evtMan.processInput(&event, &event);
_vm->_displayMan->updateScreen();
if (_vm->_engineShouldQuit)
return;
@@ -2440,8 +2483,8 @@ void ChampionMan::renameChampion(Champion *champ) {
if (eventType == Common::EVENT_LBUTTONDOWN) {
// If left mouse button status has changed
- Common::Point mousePos = _vm->_eventMan->getMousePos();
- if ((renamedChampionStringMode == k2_RENAME_CHAMPION_TITLE || (curCharacterIndex > 0)) && (mousePos.x >= 197) && (mousePos.x <= 215) && (mousePos.y >= 147) && (mousePos.y <= 155)) { /* Coordinates of 'OK' button */
+ Common::Point mousePos = evtMan.getMousePos();
+ if ((renamedChampionStringMode == kDMRenameChampionTitle || (curCharacterIndex > 0)) && (mousePos.x >= 197) && (mousePos.x <= 215) && (mousePos.y >= 147) && (mousePos.y <= 155)) { /* Coordinates of 'OK' button */
int16 characterIndexBackup = curCharacterIndex;
char championNameBackupString[8];
renamedChampionString = champ->_name;
@@ -2462,7 +2505,7 @@ void ChampionMan::renameChampion(Champion *champ) {
if (!found)
return;
- if (renamedChampionStringMode == k2_RENAME_CHAMPION_TITLE)
+ if (renamedChampionStringMode == kDMRenameChampionTitle)
renamedChampionString = champ->_title;
strcpy(renamedChampionString = champ->_name, championNameBackupString);
@@ -2507,14 +2550,14 @@ void ChampionMan::renameChampion(Champion *champ) {
if ((curCharacter != ' ') || curCharacterIndex != 0) {
if (!championTitleIsFull) {
renameChampionInputCharacterString[0] = curCharacter;
- _vm->_eventMan->showMouse();
- _vm->_textMan->printTextToBitmap(_vm->_displayMan->_bitmapScreen, k160_byteWidthScreen, textPosX, textPosY, kDMColorLightestGray, kDMColorDarkestGray, renameChampionInputCharacterString, k200_heightScreen);
- _vm->_eventMan->hideMouse();
+ evtMan.showMouse();
+ txtMan.printTextToBitmap(_vm->_displayMan->_bitmapScreen, k160_byteWidthScreen, textPosX, textPosY, kDMColorLightestGray, kDMColorDarkestGray, renameChampionInputCharacterString, k200_heightScreen);
+ evtMan.hideMouse();
renamedChampionString[curCharacterIndex++] = curCharacter;
renamedChampionString[curCharacterIndex] = '\0';
textPosX += 6;
- if ((renamedChampionStringMode == k1_RENAME_CHAMPION_NAME) && (curCharacterIndex == 7)) {
- renamedChampionStringMode = k2_RENAME_CHAMPION_TITLE;
+ if ((renamedChampionStringMode == kDMRenameChampionName) && (curCharacterIndex == 7)) {
+ renamedChampionStringMode = kDMRenameChampionTitle;
renamedChampionString = champ->_title;
textPosX = 105;
textPosY = 109;
@@ -2523,29 +2566,29 @@ void ChampionMan::renameChampion(Champion *champ) {
}
}
} else if (curCharacter == '\r') { // Carriage return
- if ((renamedChampionStringMode == k1_RENAME_CHAMPION_NAME) && (curCharacterIndex > 0)) {
- _vm->_eventMan->showMouse();
- _vm->_textMan->printTextToBitmap(_vm->_displayMan->_bitmapScreen, k160_byteWidthScreen, textPosX, textPosY, kDMColorLightestGray, kDMColorDarkestGray, underscoreCharacterString, k200_heightScreen);
- _vm->_eventMan->hideMouse();
- renamedChampionStringMode = k2_RENAME_CHAMPION_TITLE;
+ if ((renamedChampionStringMode == kDMRenameChampionName) && (curCharacterIndex > 0)) {
+ evtMan.showMouse();
+ txtMan.printTextToBitmap(_vm->_displayMan->_bitmapScreen, k160_byteWidthScreen, textPosX, textPosY, kDMColorLightestGray, kDMColorDarkestGray, underscoreCharacterString, k200_heightScreen);
+ evtMan.hideMouse();
+ renamedChampionStringMode = kDMRenameChampionTitle;
renamedChampionString = champ->_title;
textPosX = 105;
textPosY = 109;
curCharacterIndex = 0;
}
} else if (curCharacter == '\b') { // Backspace
- if ((renamedChampionStringMode == k1_RENAME_CHAMPION_NAME) && (curCharacterIndex == 0))
+ if ((renamedChampionStringMode == kDMRenameChampionName) && (curCharacterIndex == 0))
continue;
if (!championTitleIsFull) {
- _vm->_eventMan->showMouse();
- _vm->_textMan->printTextToBitmap(_vm->_displayMan->_bitmapScreen, k160_byteWidthScreen, textPosX, textPosY, kDMColorLightestGray, kDMColorDarkestGray, underscoreCharacterString, k200_heightScreen);
- _vm->_eventMan->hideMouse();
+ evtMan.showMouse();
+ txtMan.printTextToBitmap(_vm->_displayMan->_bitmapScreen, k160_byteWidthScreen, textPosX, textPosY, kDMColorLightestGray, kDMColorDarkestGray, underscoreCharacterString, k200_heightScreen);
+ evtMan.hideMouse();
}
if (curCharacterIndex == 0) {
renamedChampionString = champ->_name;
curCharacterIndex = strlen(renamedChampionString) - 1;
- renamedChampionStringMode = k1_RENAME_CHAMPION_NAME;
+ renamedChampionStringMode = kDMRenameChampionName;
textPosX = 177 + (curCharacterIndex * 6);
textPosY = 91;
} else {
diff --git a/engines/dm/dialog.cpp b/engines/dm/dialog.cpp
index 3fbab203d3..8d16deae9d 100644
--- a/engines/dm/dialog.cpp
+++ b/engines/dm/dialog.cpp
@@ -43,10 +43,14 @@ void DialogMan::dialogDraw(const char *msg1, const char *msg2, const char *choic
static Box dialog2ChoicesPatch = Box(102, 122, 89, 125);
static Box dialog4ChoicesPatch = Box(102, 122, 62, 97);
- _vm->_displayMan->loadIntoBitmap(kDMGraphicIdxDialogBox, _vm->_displayMan->_bitmapViewport);
+ EventManager &evtMan = *_vm->_eventMan;
+ DisplayMan &displMan = *_vm->_displayMan;
+ TextMan &txtMan = *_vm->_textMan;
+
+ displMan.loadIntoBitmap(kDMGraphicIdxDialogBox, displMan._bitmapViewport);
//Strangerke: the version should be replaced by a ScummVM/RogueVM (?) string
// TODO: replace with ScummVM version string
- _vm->_textMan->printTextToBitmap(_vm->_displayMan->_bitmapViewport, k112_byteWidthViewport, 192, 7, kDMColorLightGray, kDMColorDarkGary, "V2.2", k136_heightViewport);
+ txtMan.printTextToBitmap(displMan._bitmapViewport, k112_byteWidthViewport, 192, 7, kDMColorLightGray, kDMColorDarkGary, "V2.2", k136_heightViewport);
int16 choiceCount = 1;
if (choice2)
choiceCount++;
@@ -58,31 +62,31 @@ void DialogMan::dialogDraw(const char *msg1, const char *msg2, const char *choic
choiceCount++;
if (fading)
- _vm->_displayMan->startEndFadeToPalette(_vm->_displayMan->_blankBuffer);
+ displMan.startEndFadeToPalette(displMan._blankBuffer);
if (clearScreen)
- _vm->_displayMan->fillScreen(kDMColorBlack);
+ displMan.fillScreen(kDMColorBlack);
- _vm->_displayMan->_useByteBoxCoordinates = false;
+ displMan._useByteBoxCoordinates = false;
if (choiceCount == 1) {
- _vm->_displayMan->blitToBitmap(_vm->_displayMan->_bitmapViewport, _vm->_displayMan->_bitmapViewport, constBox1, 0, 64, k112_byteWidthViewport, k112_byteWidthViewport, kDMColorNoTransparency, k136_heightViewport, k136_heightViewport);
- _vm->_displayMan->blitToBitmap(_vm->_displayMan->_bitmapViewport, _vm->_displayMan->_bitmapViewport, constBox2, 0, 39, k112_byteWidthViewport, k112_byteWidthViewport, kDMColorNoTransparency, k136_heightViewport, k136_heightViewport);
- _vm->_displayMan->blitToBitmap(_vm->_displayMan->_bitmapViewport, _vm->_displayMan->_bitmapViewport, constBox3, 0, 14, k112_byteWidthViewport, k112_byteWidthViewport, kDMColorNoTransparency, k136_heightViewport, k136_heightViewport);
- printCenteredChoice(_vm->_displayMan->_bitmapViewport, choice1, 112, 114);
+ displMan.blitToBitmap(displMan._bitmapViewport, displMan._bitmapViewport, constBox1, 0, 64, k112_byteWidthViewport, k112_byteWidthViewport, kDMColorNoTransparency, k136_heightViewport, k136_heightViewport);
+ displMan.blitToBitmap(displMan._bitmapViewport, displMan._bitmapViewport, constBox2, 0, 39, k112_byteWidthViewport, k112_byteWidthViewport, kDMColorNoTransparency, k136_heightViewport, k136_heightViewport);
+ displMan.blitToBitmap(displMan._bitmapViewport, displMan._bitmapViewport, constBox3, 0, 14, k112_byteWidthViewport, k112_byteWidthViewport, kDMColorNoTransparency, k136_heightViewport, k136_heightViewport);
+ printCenteredChoice(displMan._bitmapViewport, choice1, 112, 114);
} else if (choiceCount == 2) {
- _vm->_displayMan->blitToBitmap(_vm->_displayMan->_bitmapViewport, _vm->_displayMan->_bitmapViewport, dialog2ChoicesPatch, 102, 52, k112_byteWidthViewport, k112_byteWidthViewport, kDMColorNoTransparency, k136_heightViewport, k136_heightViewport);
- printCenteredChoice(_vm->_displayMan->_bitmapViewport, choice1, 112, 77);
- printCenteredChoice(_vm->_displayMan->_bitmapViewport, choice2, 112, 114);
+ displMan.blitToBitmap(displMan._bitmapViewport, displMan._bitmapViewport, dialog2ChoicesPatch, 102, 52, k112_byteWidthViewport, k112_byteWidthViewport, kDMColorNoTransparency, k136_heightViewport, k136_heightViewport);
+ printCenteredChoice(displMan._bitmapViewport, choice1, 112, 77);
+ printCenteredChoice(displMan._bitmapViewport, choice2, 112, 114);
} else if (choiceCount == 3) {
- printCenteredChoice(_vm->_displayMan->_bitmapViewport, choice1, 112, 77);
- printCenteredChoice(_vm->_displayMan->_bitmapViewport, choice2, 59, 114);
- printCenteredChoice(_vm->_displayMan->_bitmapViewport, choice3, 166, 114);
+ printCenteredChoice(displMan._bitmapViewport, choice1, 112, 77);
+ printCenteredChoice(displMan._bitmapViewport, choice2, 59, 114);
+ printCenteredChoice(displMan._bitmapViewport, choice3, 166, 114);
} else if (choiceCount == 4) {
- _vm->_displayMan->blitToBitmap(_vm->_displayMan->_bitmapViewport, _vm->_displayMan->_bitmapViewport, dialog4ChoicesPatch, 102, 99, k112_byteWidthViewport, k112_byteWidthViewport, kDMColorNoTransparency, k136_heightViewport, k136_heightViewport);
- printCenteredChoice(_vm->_displayMan->_bitmapViewport, choice1, 59, 77);
- printCenteredChoice(_vm->_displayMan->_bitmapViewport, choice2, 166, 77);
- printCenteredChoice(_vm->_displayMan->_bitmapViewport, choice3, 59, 114);
- printCenteredChoice(_vm->_displayMan->_bitmapViewport, choice4, 166, 114);
+ displMan.blitToBitmap(displMan._bitmapViewport, displMan._bitmapViewport, dialog4ChoicesPatch, 102, 99, k112_byteWidthViewport, k112_byteWidthViewport, kDMColorNoTransparency, k136_heightViewport, k136_heightViewport);
+ printCenteredChoice(displMan._bitmapViewport, choice1, 59, 77);
+ printCenteredChoice(displMan._bitmapViewport, choice2, 166, 77);
+ printCenteredChoice(displMan._bitmapViewport, choice3, 59, 114);
+ printCenteredChoice(displMan._bitmapViewport, choice4, 166, 114);
}
int16 textPosX;
@@ -93,14 +97,14 @@ void DialogMan::dialogDraw(const char *msg1, const char *msg2, const char *choic
if (isMessageOnTwoLines(msg1, L1312_ac_StringPart1, L1313_ac_StringPart2)) {
textPosY = 21;
textPosX = 113 - ((strlen(L1312_ac_StringPart1) * 6) >> 1);
- _vm->_textMan->printTextToBitmap(_vm->_displayMan->_bitmapViewport, k112_byteWidthViewport, textPosX, textPosY, kDMColorYellow, kDMColorLightBrown, L1312_ac_StringPart1, k136_heightViewport);
+ txtMan.printTextToBitmap(displMan._bitmapViewport, k112_byteWidthViewport, textPosX, textPosY, kDMColorYellow, kDMColorLightBrown, L1312_ac_StringPart1, k136_heightViewport);
textPosY += 8;
textPosX = 113 - ((strlen(L1313_ac_StringPart2) * 6) >> 1);
- _vm->_textMan->printTextToBitmap(_vm->_displayMan->_bitmapViewport, k112_byteWidthViewport, textPosX, textPosY, kDMColorYellow, kDMColorLightBrown, L1313_ac_StringPart2, k136_heightViewport);
+ txtMan.printTextToBitmap(displMan._bitmapViewport, k112_byteWidthViewport, textPosX, textPosY, kDMColorYellow, kDMColorLightBrown, L1313_ac_StringPart2, k136_heightViewport);
textPosY += 8;
} else {
textPosX = 113 - ((strlen(msg1) * 6) >> 1);
- _vm->_textMan->printTextToBitmap(_vm->_displayMan->_bitmapViewport, k112_byteWidthViewport, textPosX, textPosY, kDMColorYellow, kDMColorLightBrown, msg1, k136_heightViewport);
+ txtMan.printTextToBitmap(displMan._bitmapViewport, k112_byteWidthViewport, textPosX, textPosY, kDMColorYellow, kDMColorLightBrown, msg1, k136_heightViewport);
textPosY += 8;
}
}
@@ -109,30 +113,30 @@ void DialogMan::dialogDraw(const char *msg1, const char *msg2, const char *choic
char L1313_ac_StringPart2[70];
if (isMessageOnTwoLines(msg2, L1312_ac_StringPart1, L1313_ac_StringPart2)) {
textPosX = 113 - ((strlen(L1312_ac_StringPart1) * 6) >> 1);
- _vm->_textMan->printTextToBitmap(_vm->_displayMan->_bitmapViewport, k112_byteWidthViewport, textPosX, textPosY, kDMColorGold, kDMColorLightBrown, L1312_ac_StringPart1, k136_heightViewport);
+ txtMan.printTextToBitmap(displMan._bitmapViewport, k112_byteWidthViewport, textPosX, textPosY, kDMColorGold, kDMColorLightBrown, L1312_ac_StringPart1, k136_heightViewport);
textPosY += 8;
textPosX = 113 - ((strlen(L1313_ac_StringPart2) * 6) >> 1);
- _vm->_textMan->printTextToBitmap(_vm->_displayMan->_bitmapViewport, k112_byteWidthViewport, textPosX, textPosY, kDMColorGold, kDMColorLightBrown, L1313_ac_StringPart2, k136_heightViewport);
+ txtMan.printTextToBitmap(displMan._bitmapViewport, k112_byteWidthViewport, textPosX, textPosY, kDMColorGold, kDMColorLightBrown, L1313_ac_StringPart2, k136_heightViewport);
} else {
textPosX = 113 - ((strlen(msg2) * 6) >> 1);
- _vm->_textMan->printTextToBitmap(_vm->_displayMan->_bitmapViewport, k112_byteWidthViewport, textPosX, textPosY, kDMColorGold, kDMColorLightBrown, msg2, k136_heightViewport);
+ txtMan.printTextToBitmap(displMan._bitmapViewport, k112_byteWidthViewport, textPosX, textPosY, kDMColorGold, kDMColorLightBrown, msg2, k136_heightViewport);
}
}
if (screenDialog) {
Box displayBox(47, 270, 33, 168);
- _vm->_eventMan->showMouse();
- _vm->_displayMan->blitToScreen(_vm->_displayMan->_bitmapViewport, &displayBox, k112_byteWidthViewport, kDMColorNoTransparency, k136_heightViewport);
- _vm->_eventMan->hideMouse();
+ evtMan.showMouse();
+ displMan.blitToScreen(displMan._bitmapViewport, &displayBox, k112_byteWidthViewport, kDMColorNoTransparency, k136_heightViewport);
+ evtMan.hideMouse();
} else {
- _vm->_displayMan->drawViewport(k0_viewportNotDungeonView);
+ displMan.drawViewport(k0_viewportNotDungeonView);
_vm->delay(1);
}
if (fading)
- _vm->_displayMan->startEndFadeToPalette(_vm->_displayMan->_paletteTopAndBottomScreen);
+ displMan.startEndFadeToPalette(displMan._paletteTopAndBottomScreen);
- _vm->_displayMan->_drawFloorAndCeilingRequested = true;
- _vm->_displayMan->updateScreen();
+ displMan._drawFloorAndCeilingRequested = true;
+ displMan.updateScreen();
}
void DialogMan::printCenteredChoice(byte *bitmap, const char *str, int16 posX, int16 posY) {
@@ -158,96 +162,99 @@ bool DialogMan::isMessageOnTwoLines(const char *str, char *part1, char *part2) {
}
int16 DialogMan::getChoice(uint16 choiceCount, uint16 dialogSetIndex, int16 driveType, int16 automaticChoiceIfFlopyInDrive) {
- _vm->_eventMan->hideMouse();
- MouseInput *primaryMouseInputBackup = _vm->_eventMan->_primaryMouseInput;
- MouseInput *secondaryMouseInputBackup = _vm->_eventMan->_secondaryMouseInput;
- KeyboardInput *primaryKeyboardInputBackup = _vm->_eventMan->_primaryKeyboardInput;
- KeyboardInput *secondaryKeyboardInputBackup = _vm->_eventMan->_secondaryKeyboardInput;
- _vm->_eventMan->_secondaryMouseInput = nullptr;
- _vm->_eventMan->_primaryKeyboardInput = nullptr;
- _vm->_eventMan->_secondaryKeyboardInput = nullptr;
- _vm->_eventMan->_primaryMouseInput = _vm->_eventMan->_primaryMouseInputDialogSets[dialogSetIndex][choiceCount - 1];
- _vm->_eventMan->discardAllInput();
+ EventManager &evtMan = *_vm->_eventMan;
+ DisplayMan &displMan = *_vm->_displayMan;
+
+ evtMan.hideMouse();
+ MouseInput *primaryMouseInputBackup = evtMan._primaryMouseInput;
+ MouseInput *secondaryMouseInputBackup = evtMan._secondaryMouseInput;
+ KeyboardInput *primaryKeyboardInputBackup = evtMan._primaryKeyboardInput;
+ KeyboardInput *secondaryKeyboardInputBackup = evtMan._secondaryKeyboardInput;
+ evtMan._secondaryMouseInput = nullptr;
+ evtMan._primaryKeyboardInput = nullptr;
+ evtMan._secondaryKeyboardInput = nullptr;
+ evtMan._primaryMouseInput = evtMan._primaryMouseInputDialogSets[dialogSetIndex][choiceCount - 1];
+ evtMan.discardAllInput();
_selectedDialogChoice = 99;
do {
Common::Event key;
- Common::EventType eventType = _vm->_eventMan->processInput(&key);
- _vm->_eventMan->processCommandQueue();
+ Common::EventType eventType = evtMan.processInput(&key);
+ evtMan.processCommandQueue();
_vm->delay(1);
- _vm->_displayMan->updateScreen();
+ displMan.updateScreen();
if ((_selectedDialogChoice == 99) && (choiceCount == 1)
&& (eventType != Common::EVENT_INVALID) && key.kbd.keycode == Common::KEYCODE_RETURN) {
/* If a choice has not been made yet with the mouse and the dialog has only one possible choice and carriage return was pressed on the keyboard */
_selectedDialogChoice = kDMDialogChoice1;
}
} while (_selectedDialogChoice == 99);
- _vm->_displayMan->_useByteBoxCoordinates = false;
- Box boxA = _vm->_eventMan->_primaryMouseInput[_selectedDialogChoice - 1]._hitbox;
+ displMan._useByteBoxCoordinates = false;
+ Box boxA = evtMan._primaryMouseInput[_selectedDialogChoice - 1]._hitbox;
boxA._rect.left -= 3;
boxA._rect.right += 3;
boxA._rect.top -= 3;
boxA._rect.bottom += 4;
- _vm->_eventMan->showMouse();
- _vm->_displayMan->_drawFloorAndCeilingRequested = true;
+ evtMan.showMouse();
+ displMan._drawFloorAndCeilingRequested = true;
Box boxB(0, 0, boxA._rect.right - boxA._rect.left + 3, boxA._rect.bottom - boxA._rect.top + 3);
- _vm->_displayMan->blitToBitmap(_vm->_displayMan->_bitmapScreen, _vm->_displayMan->_bitmapViewport,
+ displMan.blitToBitmap(displMan._bitmapScreen, displMan._bitmapViewport,
boxB, boxA._rect.left, boxA._rect.top, k160_byteWidthScreen, k160_byteWidthScreen, kDMColorNoTransparency, 200, 25);
_vm->delay(1);
boxB = boxA;
boxB._rect.bottom = boxB._rect.top;
- _vm->_displayMan->fillScreenBox(boxB, kDMColorLightBrown);
+ displMan.fillScreenBox(boxB, kDMColorLightBrown);
boxB = boxA;
boxB._rect.right = boxB._rect.left;
boxB._rect.bottom--;
- _vm->_displayMan->fillScreenBox(boxB, kDMColorLightBrown);
+ displMan.fillScreenBox(boxB, kDMColorLightBrown);
boxB = boxA;
boxB._rect.bottom--;
boxB._rect.top = boxB._rect.bottom;
boxB._rect.left -= 2;
- _vm->_displayMan->fillScreenBox(boxB, kDMColorBlack);
+ displMan.fillScreenBox(boxB, kDMColorBlack);
boxB = boxA;
boxB._rect.left = boxB._rect.right;
- _vm->_displayMan->fillScreenBox(boxB, kDMColorBlack);
+ displMan.fillScreenBox(boxB, kDMColorBlack);
_vm->delay(2);
boxB = boxA;
boxB._rect.top++;
boxB._rect.bottom = boxB._rect.top;
boxB._rect.right -= 2;
- _vm->_displayMan->fillScreenBox(boxB, kDMColorLightBrown);
+ displMan.fillScreenBox(boxB, kDMColorLightBrown);
boxB = boxA;
boxB._rect.left++;
boxB._rect.right = boxB._rect.left;
boxB._rect.bottom--;
- _vm->_displayMan->fillScreenBox(boxB, kDMColorLightBrown);
+ displMan.fillScreenBox(boxB, kDMColorLightBrown);
boxB = boxA;
boxB._rect.right--;
boxB._rect.left = boxB._rect.right;
- _vm->_displayMan->fillScreenBox(boxB, kDMColorBlack);
+ displMan.fillScreenBox(boxB, kDMColorBlack);
boxB = boxA;
boxB._rect.top = boxB._rect.bottom = boxB._rect.bottom - 2;
boxB._rect.left++;
- _vm->_displayMan->fillScreenBox(boxB, kDMColorBlack);
+ displMan.fillScreenBox(boxB, kDMColorBlack);
boxB = boxA;
boxB._rect.top = boxB._rect.bottom = boxB._rect.bottom + 2;
boxB._rect.left--;
boxB._rect.right += 2;
- _vm->_displayMan->fillScreenBox(boxB, kDMColorLightestGray);
+ displMan.fillScreenBox(boxB, kDMColorLightestGray);
boxB = boxA;
boxB._rect.left = boxB._rect.right = boxB._rect.right + 3;
boxB._rect.bottom += 2;
- _vm->_displayMan->fillScreenBox(boxB, kDMColorLightestGray);
+ displMan.fillScreenBox(boxB, kDMColorLightestGray);
_vm->delay(2);
boxA._rect.right += 3;
boxA._rect.bottom += 3;
- _vm->_displayMan->blitToBitmap(_vm->_displayMan->_bitmapViewport, _vm->_displayMan->_bitmapScreen,
+ displMan.blitToBitmap(displMan._bitmapViewport, displMan._bitmapScreen,
boxA, 0, 0, k160_byteWidthScreen, k160_byteWidthScreen, kDMColorNoTransparency, 25, k200_heightScreen);
- _vm->_eventMan->hideMouse();
- _vm->_eventMan->_primaryMouseInput = primaryMouseInputBackup;
- _vm->_eventMan->_secondaryMouseInput = secondaryMouseInputBackup;
- _vm->_eventMan->_primaryKeyboardInput = primaryKeyboardInputBackup;
- _vm->_eventMan->_secondaryKeyboardInput = secondaryKeyboardInputBackup;
- _vm->_eventMan->discardAllInput();
- _vm->_eventMan->showMouse();
+ evtMan.hideMouse();
+ evtMan._primaryMouseInput = primaryMouseInputBackup;
+ evtMan._secondaryMouseInput = secondaryMouseInputBackup;
+ evtMan._primaryKeyboardInput = primaryKeyboardInputBackup;
+ evtMan._secondaryKeyboardInput = secondaryKeyboardInputBackup;
+ evtMan.discardAllInput();
+ evtMan.showMouse();
return _selectedDialogChoice;
}
}
diff --git a/engines/dm/dungeonman.cpp b/engines/dm/dungeonman.cpp
index 2886c6c66b..bdc565b7a5 100644
--- a/engines/dm/dungeonman.cpp
+++ b/engines/dm/dungeonman.cpp
@@ -786,23 +786,24 @@ void DungeonMan::setCurrentMap(uint16 mapIndex) {
}
void DungeonMan::setCurrentMapAndPartyMap(uint16 mapIndex) {
- setCurrentMap(_partyMapIndex = mapIndex);
+ DisplayMan &displMan = *_vm->_displayMan;
+ setCurrentMap(_partyMapIndex = mapIndex);
byte *metaMapData = _currMapData[_currMapWidth - 1] + _currMapHeight;
- _vm->_displayMan->_currMapAllowedCreatureTypes = metaMapData;
+ displMan._currMapAllowedCreatureTypes = metaMapData;
metaMapData += _currMap->_creatureTypeCount;
- memcpy(_vm->_displayMan->_currMapWallOrnIndices, metaMapData, _currMap->_wallOrnCount);
+ memcpy(displMan._currMapWallOrnIndices, metaMapData, _currMap->_wallOrnCount);
metaMapData += _currMap->_wallOrnCount;
- memcpy(_vm->_displayMan->_currMapFloorOrnIndices, metaMapData, _currMap->_floorOrnCount);
+ memcpy(displMan._currMapFloorOrnIndices, metaMapData, _currMap->_floorOrnCount);
metaMapData += _currMap->_floorOrnCount;
- memcpy(_vm->_displayMan->_currMapDoorOrnIndices, metaMapData, _currMap->_doorOrnCount);
+ memcpy(displMan._currMapDoorOrnIndices, metaMapData, _currMap->_doorOrnCount);
_currMapInscriptionWallOrnIndex = _currMap->_wallOrnCount;
- _vm->_displayMan->_currMapWallOrnIndices[_currMapInscriptionWallOrnIndex] = k0_WallOrnInscription;
+ displMan._currMapWallOrnIndices[_currMapInscriptionWallOrnIndex] = k0_WallOrnInscription;
}
@@ -865,6 +866,8 @@ void DungeonMan::setSquareAspect(uint16 *aspectArray, Direction dir, int16 mapX,
#define AL0307_uc_FootprintsAllowed L0307_uc_Multiple
#define AL0307_uc_ScentOrdinal L0307_uc_Multiple
+ DisplayMan &displMan = *_vm->_displayMan;
+
for (uint16 i = 0; i < 5; ++i)
aspectArray[i] = 0;
@@ -902,7 +905,7 @@ void DungeonMan::setSquareAspect(uint16 *aspectArray, Direction dir, int16 mapX,
default:
assert(false);
}
- _vm->_displayMan->_championPortraitOrdinal = 0;
+ displMan._championPortraitOrdinal = 0;
squareIsFakeWall = false;
T0172010_ClosedFakeWall:
setSquareAspectOrnOrdinals(aspectArray, leftRandomWallOrnamentAllowed, frontRandomWallOrnamentAllowed, rightRandomWallOrnamentAllowed, dir, mapX, mapY, squareIsFakeWall);
@@ -914,12 +917,12 @@ T0172010_ClosedFakeWall:
if (curThingType == kDMstringTypeText) {
if (((TextString *)curSensor)->isVisible()) {
aspectArray[AL0310_i_SideIndex + 1] = _currMapInscriptionWallOrnIndex + 1;
- _vm->_displayMan->_inscriptionThing = curThing; /* BUG0_76 The same text is drawn on multiple sides of a wall square. The engine stores only a single text to draw on a wall in a global variable. Even if different texts are placed on different sides of the wall, the same text is drawn on each affected side */
+ displMan._inscriptionThing = curThing; /* BUG0_76 The same text is drawn on multiple sides of a wall square. The engine stores only a single text to draw on a wall in a global variable. Even if different texts are placed on different sides of the wall, the same text is drawn on each affected side */
}
} else {
aspectArray[AL0310_i_SideIndex + 1] = curSensor->getAttrOrnOrdinal();
if (curSensor->getType() == kDMSensorWallChampionPortrait) {
- _vm->_displayMan->_championPortraitOrdinal = _vm->indexToOrdinal(curSensor->getData());
+ displMan._championPortraitOrdinal = _vm->indexToOrdinal(curSensor->getData());
}
}
}
@@ -1027,8 +1030,9 @@ int16 DungeonMan::getRandomOrnOrdinal(bool allowed, int16 count, int16 mapX, int
bool DungeonMan::isWallOrnAnAlcove(int16 wallOrnIndex) {
if (wallOrnIndex >= 0) {
+ DisplayMan &displMan = *_vm->_displayMan;
for (uint16 i = 0; i < k3_AlcoveOrnCount; ++i) {
- if (_vm->_displayMan->_currMapAlcoveOrnIndices[i] == wallOrnIndex)
+ if (displMan._currMapAlcoveOrnIndices[i] == wallOrnIndex)
return true;
}
}
diff --git a/engines/dm/eventman.cpp b/engines/dm/eventman.cpp
index 2fc0e5e0ab..1cd2c048c5 100644
--- a/engines/dm/eventman.cpp
+++ b/engines/dm/eventman.cpp
@@ -449,31 +449,35 @@ void EventManager::setPointerToObject(byte *bitmap) {
static Box boxMousePointerObjectShadow(2, 17, 2, 17); // @ G0619_s_Box_MousePointer_ObjectShadow
static Box boxMousePointerObject(0, 15, 0, 15); // @ G0620_s_Box_MousePointer_Object
+ DisplayMan &displMan = *_vm->_displayMan;
+
_preventBuildPointerScreenArea = true;
_useObjectAsMousePointerBitmap = true;
_useHandAsMousePointerBitmap = false;
_mousePointerBitmapUpdated = true;
- _vm->_displayMan->_useByteBoxCoordinates = true;
+ displMan._useByteBoxCoordinates = true;
byte *L0051_puc_Bitmap = _mousePointerOriginalColorsObject;
memset(L0051_puc_Bitmap, 0, 32 * 18);
- _vm->_displayMan->blitToBitmapShrinkWithPalChange(bitmap, _mousePointerTempBuffer, 16, 16, 16, 16, palChangesMousepointerOjbectIconShadow);
- _vm->_displayMan->blitToBitmap(_mousePointerTempBuffer, L0051_puc_Bitmap, boxMousePointerObjectShadow, 0, 0, 8, 16, kDMColorNoTransparency, 16, 18);
- _vm->_displayMan->blitToBitmapShrinkWithPalChange(bitmap, _mousePointerTempBuffer, 16, 16, 16, 16, palChangesMousePointerIcon);
- _vm->_displayMan->blitToBitmap(_mousePointerTempBuffer, L0051_puc_Bitmap, boxMousePointerObject, 0, 0, 8, 16, kDMColorBlack, 16, 18);
+ displMan.blitToBitmapShrinkWithPalChange(bitmap, _mousePointerTempBuffer, 16, 16, 16, 16, palChangesMousepointerOjbectIconShadow);
+ displMan.blitToBitmap(_mousePointerTempBuffer, L0051_puc_Bitmap, boxMousePointerObjectShadow, 0, 0, 8, 16, kDMColorNoTransparency, 16, 18);
+ displMan.blitToBitmapShrinkWithPalChange(bitmap, _mousePointerTempBuffer, 16, 16, 16, 16, palChangesMousePointerIcon);
+ displMan.blitToBitmap(_mousePointerTempBuffer, L0051_puc_Bitmap, boxMousePointerObject, 0, 0, 8, 16, kDMColorBlack, 16, 18);
_preventBuildPointerScreenArea = false;
buildpointerScreenArea(_mousePos.x, _mousePos.y);
}
void EventManager::mouseDropChampionIcon() {
+ DisplayMan &displMan = *_vm->_displayMan;
+
_preventBuildPointerScreenArea = true;
uint16 championIconIndex = _vm->ordinalToIndex(_useChampionIconOrdinalAsMousePointerBitmap);
_useChampionIconOrdinalAsMousePointerBitmap = _vm->indexToOrdinal(kDMChampionNone);
_mousePointerBitmapUpdated = true;
- bool useByteBoxCoordinatesBackup = _vm->_displayMan->_useByteBoxCoordinates;
- _vm->_displayMan->blitToScreen(_mousePointerOriginalColorsChampionIcon, &_vm->_championMan->_boxChampionIcons[championIconIndex << 2], 16, kDMColorDarkestGray, 18);
- _vm->_displayMan->_useByteBoxCoordinates = useByteBoxCoordinatesBackup;
+ bool useByteBoxCoordinatesBackup = displMan._useByteBoxCoordinates;
+ displMan.blitToScreen(_mousePointerOriginalColorsChampionIcon, &_vm->_championMan->_boxChampionIcons[championIconIndex << 2], 16, kDMColorDarkestGray, 18);
+ displMan._useByteBoxCoordinates = useByteBoxCoordinatesBackup;
_preventBuildPointerScreenArea = false;
}
@@ -719,6 +723,9 @@ void EventManager::processCommandQueue() {
static MouseInput *primaryMouseInputBackup;
static MouseInput *secondaryMouseInputBackup;
+ DisplayMan &displMan = *_vm->_displayMan;
+ TextMan &txtMan = *_vm->_textMan;
+
_isCommandQueueLocked = true;
if (_commandQueue.empty()) { /* If the command queue is empty */
_isCommandQueueLocked = false;
@@ -836,7 +843,7 @@ void EventManager::processCommandQueue() {
_vm->_menuMan->drawDisabledMenu();
_vm->_championMan->_partyIsSleeping = true;
drawSleepScreen();
- _vm->_displayMan->drawViewport(k2_viewportAsBeforeSleepOrFreezeGame);
+ displMan.drawViewport(k2_viewportAsBeforeSleepOrFreezeGame);
_vm->_waitForInputMaxVerticalBlankCount = 0;
_primaryMouseInput = _primaryMouseInputPartySleeping;
_secondaryMouseInput = 0;
@@ -862,24 +869,24 @@ void EventManager::processCommandQueue() {
if (cmdType == kDMCommandFreezeGame) {
_vm->_gameTimeTicking = false;
_vm->_menuMan->drawDisabledMenu();
- _vm->_displayMan->fillBitmap(_vm->_displayMan->_bitmapViewport, kDMColorBlack, 112, 136);
+ displMan.fillBitmap(displMan._bitmapViewport, kDMColorBlack, 112, 136);
switch (_vm->getGameLanguage()) { // localized
default:
case Common::EN_ANY:
- _vm->_textMan->printTextToBitmap(_vm->_displayMan->_bitmapViewport, k112_byteWidthViewport, 81, 69, kDMColorCyan, kDMColorBlack,
+ txtMan.printTextToBitmap(displMan._bitmapViewport, k112_byteWidthViewport, 81, 69, kDMColorCyan, kDMColorBlack,
"GAME FROZEN", k136_heightViewport);
break;
case Common::DE_DEU:
- _vm->_textMan->printTextToBitmap(_vm->_displayMan->_bitmapViewport, k112_byteWidthViewport, 66, 69, kDMColorCyan, kDMColorBlack,
+ txtMan.printTextToBitmap(displMan._bitmapViewport, k112_byteWidthViewport, 66, 69, kDMColorCyan, kDMColorBlack,
"SPIEL ANGEHALTEN", k136_heightViewport);
break;
case Common::FR_FRA:
- _vm->_textMan->printTextToBitmap(_vm->_displayMan->_bitmapViewport, k112_byteWidthViewport, 84, 69, kDMColorCyan, kDMColorBlack,
+ txtMan.printTextToBitmap(displMan._bitmapViewport, k112_byteWidthViewport, 84, 69, kDMColorCyan, kDMColorBlack,
"JEU BLOQUE", k136_heightViewport);
break;
}
- _vm->_displayMan->drawViewport(k2_viewportAsBeforeSleepOrFreezeGame);
+ displMan.drawViewport(k2_viewportAsBeforeSleepOrFreezeGame);
primaryMouseInputBackup = _primaryMouseInput;
secondaryMouseInputBackup = _secondaryMouseInput;
primaryKeyboardInputBackup = _primaryKeyboardInput;
@@ -1244,6 +1251,7 @@ void EventManager::commandProcessCommands160To162ClickInResurrectReincarnatePane
InventoryMan &invMan = *_vm->_inventoryMan;
DisplayMan &dispMan = *_vm->_displayMan;
DungeonMan &dunMan = *_vm->_dungeonMan;
+ TextMan &txtMan = *_vm->_textMan;
uint16 championIndex = champMan._partyChampionCount - 1;
Champion *champ = &champMan._champions[championIndex];
@@ -1306,20 +1314,20 @@ void EventManager::commandProcessCommands160To162ClickInResurrectReincarnatePane
} else
_vm->_menuMan->drawSpellAreaControls(champMan._magicCasterChampionIndex);
- _vm->_textMan->printLineFeed();
+ txtMan.printLineFeed();
Color champColor = _vm->_championMan->_championColor[championIndex];
- _vm->_textMan->printMessage(champColor, champ->_name);
+ txtMan.printMessage(champColor, champ->_name);
switch (_vm->getGameLanguage()) { // localized
default:
case Common::EN_ANY:
- _vm->_textMan->printMessage(champColor, (commandType == kDMCommandClickInPanelResurrect) ? " RESURRECTED." : " REINCARNATED.");
+ txtMan.printMessage(champColor, (commandType == kDMCommandClickInPanelResurrect) ? " RESURRECTED." : " REINCARNATED.");
break;
case Common::DE_DEU:
- _vm->_textMan->printMessage(champColor, (commandType == kDMCommandClickInPanelResurrect) ? " VOM TODE ERWECKT." : " REINKARNIERT.");
+ txtMan.printMessage(champColor, (commandType == kDMCommandClickInPanelResurrect) ? " VOM TODE ERWECKT." : " REINKARNIERT.");
break;
case Common::FR_FRA:
- _vm->_textMan->printMessage(champColor, (commandType == kDMCommandClickInPanelResurrect) ? " RESSUSCITE." : " REINCARNE.");
+ txtMan.printMessage(champColor, (commandType == kDMCommandClickInPanelResurrect) ? " RESSUSCITE." : " REINCARNE.");
break;
}
@@ -1339,7 +1347,7 @@ void EventManager::commandProcess81ClickInPanel(int16 x, int16 y) {
return;
commandType = getCommandTypeFromMouseInput(_mouseInputPanelChest, Common::Point(x, y), kDMMouseButtonLeft);
if (commandType != kDMCommandNone)
- _vm->_championMan->clickOnSlotBox(commandType - kDMCommandClickOnSlotBoxChampion0StatusBoxReadyHand);
+ champMan.clickOnSlotBox(commandType - kDMCommandClickOnSlotBoxChampion0StatusBoxReadyHand);
break;
case kDMPanelContentResurrectReincarnate:
if (!champMan._leaderEmptyHanded)
@@ -1417,17 +1425,20 @@ bool EventManager::hasPendingClick(Common::Point& point, MouseButton button) {
}
void EventManager::drawSleepScreen() {
- _vm->_displayMan->fillBitmap(_vm->_displayMan->_bitmapViewport, kDMColorBlack, 112, 136);
+ DisplayMan &displMan = *_vm->_displayMan;
+ TextMan &txtMan = *_vm->_textMan;
+
+ displMan.fillBitmap(displMan._bitmapViewport, kDMColorBlack, 112, 136);
switch (_vm->getGameLanguage()) { // localized
default:
case Common::EN_ANY:
- _vm->_textMan->printTextToBitmap(_vm->_displayMan->_bitmapViewport, k112_byteWidthViewport, 93, 69, kDMColorCyan, kDMColorBlack, "WAKE UP", k136_heightViewport);
+ txtMan.printTextToBitmap(displMan._bitmapViewport, k112_byteWidthViewport, 93, 69, kDMColorCyan, kDMColorBlack, "WAKE UP", k136_heightViewport);
break;
case Common::DE_DEU:
- _vm->_textMan->printTextToBitmap(_vm->_displayMan->_bitmapViewport, k112_byteWidthViewport, 96, 69, kDMColorCyan, kDMColorBlack, "WECKEN", k136_heightViewport);
+ txtMan.printTextToBitmap(displMan._bitmapViewport, k112_byteWidthViewport, 96, 69, kDMColorCyan, kDMColorBlack, "WECKEN", k136_heightViewport);
break;
case Common::FR_FRA:
- _vm->_textMan->printTextToBitmap(_vm->_displayMan->_bitmapViewport, k112_byteWidthViewport, 72, 69, kDMColorCyan, kDMColorBlack, "REVEILLEZ-VOUS", k136_heightViewport);
+ txtMan.printTextToBitmap(displMan._bitmapViewport, k112_byteWidthViewport, 72, 69, kDMColorCyan, kDMColorBlack, "REVEILLEZ-VOUS", k136_heightViewport);
break;
}
}
@@ -1466,6 +1477,8 @@ void EventManager::mouseProcessCommands125To128_clickOnChampionIcon(uint16 champ
static Box championIconBox = Box(0, 18, 0, 13);
static byte mousePointerIconShadowBox[16] = {0, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 0, 120, 120, 120};
+ DisplayMan &displMan = *_vm->_displayMan;
+
_preventBuildPointerScreenArea = true;
if (!_useChampionIconOrdinalAsMousePointerBitmap) {
if (_vm->_championMan->getIndexInCell(_vm->normalizeModulo4(champIconIndex + _vm->_dungeonMan->_partyDir)) == kDMChampionNone) {
@@ -1474,15 +1487,15 @@ void EventManager::mouseProcessCommands125To128_clickOnChampionIcon(uint16 champ
}
_mousePointerBitmapUpdated = true;
_useChampionIconOrdinalAsMousePointerBitmap = true;
- _vm->_displayMan->_useByteBoxCoordinates = false;
+ displMan._useByteBoxCoordinates = false;
byte *tmpBitmap = _mousePointerTempBuffer;
memset(tmpBitmap, 0, 32 * 18);
Box *curChampionIconBox = &_vm->_championMan->_boxChampionIcons[champIconIndex];
- _vm->_displayMan->blitToBitmap(_vm->_displayMan->_bitmapScreen, tmpBitmap, championIconShadowBox, curChampionIconBox->_rect.left, curChampionIconBox->_rect.top, k160_byteWidthScreen, k16_byteWidth, kDMColorBlack, 200, 18);
- _vm->_displayMan->blitToBitmapShrinkWithPalChange(tmpBitmap, _mousePointerOriginalColorsChampionIcon, 32, 18, 32, 18, mousePointerIconShadowBox);
- _vm->_displayMan->blitToBitmap(_vm->_displayMan->_bitmapScreen, _mousePointerOriginalColorsChampionIcon, championIconBox, curChampionIconBox->_rect.left, curChampionIconBox->_rect.top, k160_byteWidthScreen, k16_byteWidth, kDMColorBlack, 200, 18);
- _vm->_displayMan->fillScreenBox(*curChampionIconBox, kDMColorBlack);
+ displMan.blitToBitmap(displMan._bitmapScreen, tmpBitmap, championIconShadowBox, curChampionIconBox->_rect.left, curChampionIconBox->_rect.top, k160_byteWidthScreen, k16_byteWidth, kDMColorBlack, 200, 18);
+ displMan.blitToBitmapShrinkWithPalChange(tmpBitmap, _mousePointerOriginalColorsChampionIcon, 32, 18, 32, 18, mousePointerIconShadowBox);
+ displMan.blitToBitmap(displMan._bitmapScreen, _mousePointerOriginalColorsChampionIcon, championIconBox, curChampionIconBox->_rect.left, curChampionIconBox->_rect.top, k160_byteWidthScreen, k16_byteWidth, kDMColorBlack, 200, 18);
+ displMan.fillScreenBox(*curChampionIconBox, kDMColorBlack);
_useChampionIconOrdinalAsMousePointerBitmap = _vm->indexToOrdinal(champIconIndex);
} else {
_mousePointerBitmapUpdated = true;
@@ -1499,7 +1512,7 @@ void EventManager::mouseProcessCommands125To128_clickOnChampionIcon(uint16 champ
setFlag(_vm->_championMan->_champions[championIndex]._attributes, kDMAttributeIcon);
_vm->_championMan->drawChampionState((ChampionIndex)championIndex);
} else
- _vm->_displayMan->fillScreenBox(_vm->_championMan->_boxChampionIcons[championIconIndex], kDMColorBlack);
+ displMan.fillScreenBox(_vm->_championMan->_boxChampionIcons[championIconIndex], kDMColorBlack);
_vm->_championMan->_champions[championCellIndex]._cell = (ViewCell)_vm->normalizeModulo4(champIconIndex + _vm->_dungeonMan->_partyDir);
setFlag(_vm->_championMan->_champions[championCellIndex]._attributes, kDMAttributeIcon);
@@ -1639,6 +1652,7 @@ void EventManager::resetPressingEyeOrMouth() {
void EventManager::waitForMouseOrKeyActivity() {
discardAllInput();
Common::Event event;
+ DisplayMan &displMan = *_vm->_displayMan;
while (true) {
if (g_system->getEventManager()->pollEvent(event)) {
switch (event.type) {
@@ -1653,7 +1667,7 @@ void EventManager::waitForMouseOrKeyActivity() {
}
}
_vm->delay(1);
- _vm->_displayMan->updateScreen();
+ displMan.updateScreen();
}
}
diff --git a/engines/dm/movesens.cpp b/engines/dm/movesens.cpp
index 6e07ad49f6..eeafc4d951 100644
--- a/engines/dm/movesens.cpp
+++ b/engines/dm/movesens.cpp
@@ -701,6 +701,7 @@ Thing MovesensMan::getTeleporterRotatedProjectileThing(Teleporter *teleporter, T
void MovesensMan::processThingAdditionOrRemoval(uint16 mapX, uint16 mapY, Thing thing, bool partySquare, bool addThing) {
DungeonMan &dungeon = *_vm->_dungeonMan;
+ TextMan &txtMan = *_vm->_textMan;
int16 thingType;
IconIndice objectType;
@@ -734,7 +735,7 @@ void MovesensMan::processThingAdditionOrRemoval(uint16 mapX, uint16 mapY, Thing
squareContainsGroup = true;
else if ((curThingType == kDMstringTypeText) && (thingType == kDMThingTypeParty) && addThing && !partySquare) {
dungeon.decodeText(_vm->_stringBuildBuffer, curThing, kDMTextTypeMessage);
- _vm->_textMan->printMessage(kDMColorWhite, _vm->_stringBuildBuffer);
+ txtMan.printMessage(kDMColorWhite, _vm->_stringBuildBuffer);
} else if ((curThingType > kDMThingTypeGroup) && (curThingType < kDMThingTypeProjectile)) {
squareContainsObject = true;
squareContainsThingOfSameType |= (_vm->_objectMan->getObjectType(curThing) == objectType);