diff options
author | Eugene Sandulenko | 2016-09-10 21:50:57 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2016-09-10 21:50:57 +0200 |
commit | 786f2449293faaa914522239fafc74559dfb5c60 (patch) | |
tree | 99e8a7de674ef7bd8684aebb65ca34d67888587c /engines/dm | |
parent | 7871874dab045b012d8a6f48fe1fb642eb0f68a6 (diff) | |
download | scummvm-rg350-786f2449293faaa914522239fafc74559dfb5c60.tar.gz scummvm-rg350-786f2449293faaa914522239fafc74559dfb5c60.tar.bz2 scummvm-rg350-786f2449293faaa914522239fafc74559dfb5c60.zip |
DM: Rename _B to _Bu to avoid name clashes on some platforms
Diffstat (limited to 'engines/dm')
-rw-r--r-- | engines/dm/champion.cpp | 12 | ||||
-rw-r--r-- | engines/dm/eventman.cpp | 12 | ||||
-rw-r--r-- | engines/dm/group.cpp | 40 | ||||
-rw-r--r-- | engines/dm/inventory.cpp | 8 | ||||
-rw-r--r-- | engines/dm/menus.cpp | 30 | ||||
-rw-r--r-- | engines/dm/movesens.cpp | 18 | ||||
-rw-r--r-- | engines/dm/projexpl.cpp | 18 | ||||
-rw-r--r-- | engines/dm/sounds.cpp | 4 | ||||
-rw-r--r-- | engines/dm/timeline.cpp | 92 | ||||
-rw-r--r-- | engines/dm/timeline.h | 4 |
10 files changed, 119 insertions, 119 deletions
diff --git a/engines/dm/champion.cpp b/engines/dm/champion.cpp index 6b895063ea..3d54fad827 100644 --- a/engines/dm/champion.cpp +++ b/engines/dm/champion.cpp @@ -130,11 +130,11 @@ void ChampionMan::initConstants() { 0x0400 /* Chest 8 Chest */ }; - _boxChampionPortrait = Box(0, 31, 0, 28); // @ G0047_s_Graphic562_Box_ChampionPortrait + _boxChampionPortrait = Box(0, 31, 0, 28); // @ G0047_s_Graphic562_Box_ChampionPortrait const char **baseSkillName; switch (_vm->getGameLanguage()) { // localized - case Common::EN_ANY: + case Common::EN_ANY: baseSkillName = g417_baseSkillName_EN_ANY; break; case Common::DE_DEU: @@ -927,7 +927,7 @@ void ChampionMan::disableAction(uint16 champIndex, uint16 ticks) { TimelineEvent curEvent; curEvent._type = k11_TMEventTypeEnableChampionAction; curEvent._priority = champIndex; - curEvent._B._slotOrdinal = 0; + curEvent._Bu._slotOrdinal = 0; int16 eventIndex = curChampion->_enableActionEventIndex; if (eventIndex >= 0) { @@ -1118,7 +1118,7 @@ void ChampionMan::championPoison(int16 champIndex, uint16 attack) { newEvent._type = k75_TMEventTypePoisonChampion; newEvent._priority = champIndex; setMapAndTime(newEvent._mapTime, _vm->_dungeonMan->_partyMapIndex, _vm->_gameTime + 36); - newEvent._B._attack = attack; + newEvent._Bu._attack = attack; _vm->_timeline->addEventGetEventIndex(&newEvent); } @@ -2113,8 +2113,8 @@ uint16 ChampionMan::getMaximumLoad(Champion *champ) { } void ChampionMan::drawChampionState(ChampionIndex champIndex) { - static Box boxMouth = Box(55, 72, 12, 29); // @ G0048_s_Graphic562_Box_Mouth - static Box boxEye = Box(11, 28, 12, 29); // @ G0049_s_Graphic562_Box_Eye + static Box boxMouth = Box(55, 72, 12, 29); // @ G0048_s_Graphic562_Box_Mouth + static Box boxEye = Box(11, 28, 12, 29); // @ G0049_s_Graphic562_Box_Eye int16 championStatusBoxX = champIndex * k69_ChampionStatusBoxSpacing; Champion *curChampion = &_champions[champIndex]; diff --git a/engines/dm/eventman.cpp b/engines/dm/eventman.cpp index e7095ce4a7..508f95946b 100644 --- a/engines/dm/eventman.cpp +++ b/engines/dm/eventman.cpp @@ -446,8 +446,8 @@ void EventManager::setPointerToObject(byte *bitmap) { 120, 120, 120, 120, 0, 120, 120, 120}; // @ K0027_auc_PaletteChanges_MousePointerObjectIconShadow static byte palChangesMousePointerIcon[16] = {120, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 0, 130, 140, 150}; // @ G0044_auc_Graphic562_PaletteChanges_MousePointerIcon - static Box boxMousePointerObjectShadow(2, 17, 2, 17); // @ G0619_s_Box_MousePointer_ObjectShadow - static Box boxMousePointerObject(0, 15, 0, 15); // @ G0620_s_Box_MousePointer_Object + static Box boxMousePointerObjectShadow(2, 17, 2, 17); // @ G0619_s_Box_MousePointer_ObjectShadow + static Box boxMousePointerObject(0, 15, 0, 15); // @ G0620_s_Box_MousePointer_Object _preventBuildPointerScreenArea = true; _useObjectAsMousePointerBitmap = true; @@ -1047,8 +1047,8 @@ void EventManager::commandMoveParty(CommandType cmdType) { } bool EventManager::isLeaderHandObjThrown(int16 posX, int16 posY) { -#define k0_sideLeft 0 // @ C0_SIDE_LEFT -#define k1_sideRight 1 // @ C0_SIDE_LEFT +#define k0_sideLeft 0 // @ C0_SIDE_LEFT +#define k1_sideRight 1 // @ C0_SIDE_LEFT if ((posY < 47) || (posY > 102)) return false; @@ -1386,8 +1386,8 @@ void EventManager::processType80_clickInDungeonViewDropLeaderHandObject(uint16 v setMapAndTime(newEvent._mapTime, _vm->_dungeonMan->_partyMapIndex, _vm->_gameTime + 1); newEvent._type = k13_TMEventTypeViAltarRebirth; newEvent._priority = removedJunk->getChargeCount(); - newEvent._B._location._mapX = mapX; - newEvent._B._location._mapY = mapY; + newEvent._Bu._location._mapX = mapX; + newEvent._Bu._location._mapY = mapY; newEvent._C.A._cell = currCell; newEvent._C.A._effect = k2_SensorEffToggle; _vm->_timeline->addEventGetEventIndex(&newEvent); diff --git a/engines/dm/group.cpp b/engines/dm/group.cpp index 4ec74ef424..416c91ba7d 100644 --- a/engines/dm/group.cpp +++ b/engines/dm/group.cpp @@ -359,8 +359,8 @@ bool GroupMan::groupIsDoorDestoryedByAttack(uint16 mapX, uint16 mapY, int16 atta setMapAndTime(newEvent._mapTime, _vm->_dungeonMan->_currMapIndex, _vm->_gameTime + ticks); newEvent._type = k2_TMEventTypeDoorDestruction; newEvent._priority = 0; - newEvent._B._location._mapX = mapX; - newEvent._B._location._mapY = mapY; + newEvent._Bu._location._mapX = mapX; + newEvent._Bu._location._mapY = mapY; _vm->_timeline->addEventGetEventIndex(&newEvent); } else { ((Square *)curSquare)->setDoorState(k5_doorState_DESTROYED); @@ -415,8 +415,8 @@ int16 GroupMan::groupGetDamageCreatureOutcome(Group *group, uint16 creatureIndex for (uint16 eventIndex = 0; eventIndex < _vm->_timeline->_eventMaxCount; eventIndex++) { uint16 curEventType = curEvent->_type; if ((getMap(curEvent->_mapTime) == _vm->_dungeonMan->_currMapIndex) && - (curEvent->_B._location._mapX == mapX) && - (curEvent->_B._location._mapY == mapY) && + (curEvent->_Bu._location._mapX == mapX) && + (curEvent->_Bu._location._mapY == mapY) && (curEventType > k32_TMEventTypeUpdateAspectGroup) && (curEventType < k41_TMEventTypeUpdateBehaviour_3 + 1)) { uint16 nextCreatureIndex; @@ -502,7 +502,7 @@ void GroupMan::groupDeleteEvents(int16 mapX, int16 mapY) { uint16 curEventType = curEvent->_type; if ((getMap(curEvent->_mapTime) == _vm->_dungeonMan->_currMapIndex) && (curEventType > k29_TMEventTypeGroupReactionDangerOnSquare - 1) && (curEventType < k41_TMEventTypeUpdateBehaviour_3 + 1) && - (curEvent->_B._location._mapX == mapX) && (curEvent->_B._location._mapY == mapY)) { + (curEvent->_Bu._location._mapX == mapX) && (curEvent->_Bu._location._mapY == mapY)) { _vm->_timeline->deleteEvent(eventIndex); } curEvent++; @@ -536,7 +536,7 @@ int16 GroupMan::getDamageAllCreaturesOutcome(Group *group, int16 mapX, int16 map if (killedSomeCreatures) return k1_outcomeKilledSomeCreaturesInGroup; } - + return k0_outcomeKilledNoCreaturesInGroup; } @@ -590,8 +590,8 @@ void GroupMan::processEvents29to41(int16 eventMapX, int16 eventMapY, int16 event TimelineEvent nextEvent; setMapAndTime(nextEvent._mapTime, _vm->_dungeonMan->_currMapIndex, _vm->_gameTime); nextEvent._priority = 255 - creatureInfo._movementTicks; /* The fastest creatures (with small MovementTicks value) get higher event priority */ - nextEvent._B._location._mapX = eventMapX; - nextEvent._B._location._mapY = eventMapY; + nextEvent._Bu._location._mapX = eventMapX; + nextEvent._Bu._location._mapY = eventMapY; /* If the creature is not on the party map then try and move the creature in a random direction and place a new event 37 in the timeline for the next creature movement */ if (_vm->_dungeonMan->_currMapIndex != _vm->_dungeonMan->_partyMapIndex) { if (isMovementPossible(&creatureInfo, eventMapX, eventMapY, AL0446_i_Direction = _vm->getRandomNumber(4), false)) { /* BUG0_67 A group that is not on the party map may wrongly move or not move into a teleporter. Normally, a creature type with Wariness >= 10 (Vexirk, Materializer / Zytaz, Demon, Lord Chaos, Red Dragon / Dragon) would only move into a teleporter if the creature type is allowed on the destination map. However, the variable G0380_T_CurrentGroupThing identifying the group is not set before being used by F0139_DUNGEON_IsCreatureAllowedOnMap called by f202_isMovementPossible so the check to see if the creature type is allowed may operate on another creature type and thus return an incorrect result, causing the creature to teleport while it should not, or not to teleport while it should */ @@ -601,8 +601,8 @@ void GroupMan::processEvents29to41(int16 eventMapX, int16 eventMapY, int16 event AL0451_i_DestinationMapY += _vm->_dirIntoStepCountNorth[AL0446_i_Direction]; if (_vm->_moveSens->getMoveResult(groupThing, eventMapX, eventMapY, AL0450_i_DestinationMapX, AL0451_i_DestinationMapY)) return; - nextEvent._B._location._mapX = _vm->_moveSens->_moveResultMapX; - nextEvent._B._location._mapY = _vm->_moveSens->_moveResultMapY; + nextEvent._Bu._location._mapX = _vm->_moveSens->_moveResultMapX; + nextEvent._Bu._location._mapY = _vm->_moveSens->_moveResultMapY; } nextEvent._type = k37_TMEventTypeUpdateBehaviourGroup; AL0446_i_Ticks = MAX(ABS(_vm->_dungeonMan->_currMapIndex - _vm->_dungeonMan->_partyMapIndex) << 4, creatureInfo._movementTicks << 1); @@ -793,8 +793,8 @@ T0209061_MoveGroup: if (newGroupDirectionFound) { if (_vm->_moveSens->getMoveResult(groupThing, eventMapX, eventMapY, AL0450_i_DestinationMapX, AL0451_i_DestinationMapY)) return; - nextEvent._B._location._mapX = _vm->_moveSens->_moveResultMapX; - nextEvent._B._location._mapY = _vm->_moveSens->_moveResultMapY;; + nextEvent._Bu._location._mapX = _vm->_moveSens->_moveResultMapX; + nextEvent._Bu._location._mapY = _vm->_moveSens->_moveResultMapY;; activeGroup->_priorMapX = eventMapX; activeGroup->_priorMapY = eventMapY; activeGroup->_lastMoveTime = _vm->_gameTime; @@ -1199,8 +1199,8 @@ int16 GroupMan::getDistanceBetweenUnblockedSquares(int16 srcMapX, int16 srcMapY, /* 128 when the creature is on the same row or column as the party */ do { if (isDistanceXEqualsDistanceY) { - if (( (CALL_MEMBER_FN(*_vm->_groupMan, isBlocked))(pathMapX + axisStepX, pathMapY) - && (CALL_MEMBER_FN(*_vm->_groupMan, isBlocked))(pathMapX, pathMapY + axisStepY)) + if (( (CALL_MEMBER_FN(*_vm->_groupMan, isBlocked))(pathMapX + axisStepX, pathMapY) + && (CALL_MEMBER_FN(*_vm->_groupMan, isBlocked))(pathMapX, pathMapY + axisStepY)) || (CALL_MEMBER_FN(*_vm->_groupMan, isBlocked))(pathMapX = pathMapX + axisStepX, pathMapY = pathMapY + axisStepY)) return 0; } else { @@ -1644,8 +1644,8 @@ void GroupMan::startWandering(int16 mapX, int16 mapY) { nextEvent._type = k37_TMEventTypeUpdateBehaviourGroup; nextEvent._priority = 255 - _vm->_dungeonMan->_creatureInfos[L0332_ps_Group->_type]._movementTicks; /* The fastest creatures (with small MovementTicks value) get higher event priority */ nextEvent._C._ticks = 0; - nextEvent._B._location._mapX = mapX; - nextEvent._B._location._mapY = mapY; + nextEvent._Bu._location._mapX = mapX; + nextEvent._Bu._location._mapY = mapY; _vm->_timeline->addEventGetEventIndex(&nextEvent); } @@ -1661,7 +1661,7 @@ void GroupMan::addActiveGroup(Thing thing, int16 mapX, int16 mapY) { _currActiveGroupCount++; activeGroup->_groupThingIndex = (thing).getIndex(); - Group *curGroup = (Group *)(_vm->_dungeonMan->_thingData[k4_GroupThingType] + + Group *curGroup = (Group *)(_vm->_dungeonMan->_thingData[k4_GroupThingType] + _vm->_dungeonMan->_thingDataWordCount[k4_GroupThingType] * activeGroup->_groupThingIndex); activeGroup->_cells = curGroup->_cells; @@ -1888,9 +1888,9 @@ void GroupMan::fluxCageAction(int16 mapX, int16 mapY) { newEvent._type = k24_TMEventTypeRemoveFluxcage; newEvent._priority = 0; newEvent._C._slot = unusedThing.toUint16(); - newEvent._B._location._mapX = mapX; - newEvent._B._location._mapY = mapY; - newEvent._B._location._mapY = mapY; + newEvent._Bu._location._mapX = mapX; + newEvent._Bu._location._mapY = mapY; + newEvent._Bu._location._mapY = mapY; _vm->_timeline->addEventGetEventIndex(&newEvent); int16 fluxcageCount; if (isLordChaosOnSquare(mapX, mapY - 1)) { diff --git a/engines/dm/inventory.cpp b/engines/dm/inventory.cpp index 7355708bf5..60c6f62096 100644 --- a/engines/dm/inventory.cpp +++ b/engines/dm/inventory.cpp @@ -466,7 +466,7 @@ void InventoryMan::drawPanelObjectDescriptionString(const char *descString) { } void InventoryMan::drawPanelArrowOrEye(bool pressingEye) { - static Box boxArrowOrEye(83, 98, 57, 65); // @ G0033_s_Graphic562_Box_ArrowOrEye + static Box boxArrowOrEye(83, 98, 57, 65); // @ G0033_s_Graphic562_Box_ArrowOrEye DisplayMan &dispMan = *_vm->_displayMan; dispMan.blitToViewport(_vm->_displayMan->getNativeBitmapOrGraphic(pressingEye ? k19_EyeForObjectDescriptionIndice : k18_ArrowForChestContentIndice), @@ -474,7 +474,7 @@ void InventoryMan::drawPanelArrowOrEye(bool pressingEye) { } void InventoryMan::drawPanelObject(Thing thingToDraw, bool pressingEye) { - static Box boxObjectDescCircle(105, 136, 53, 79); // @ G0034_s_Graphic562_Box_ObjectDescriptionCircle + static Box boxObjectDescCircle(105, 136, 53, 79); // @ G0034_s_Graphic562_Box_ObjectDescriptionCircle DungeonMan &dunMan = *_vm->_dungeonMan; ObjectMan &objMan = *_vm->_objectMan; @@ -621,7 +621,7 @@ void InventoryMan::drawPanelObject(Thing thingToDraw, bool pressingEye) { } default: break; - } // end of switch + } // end of switch if (potentialAttribMask) { static const char *attribStringEN[4] = {"CONSUMABLE", "POISONED", "BROKEN", "CURSED"}; @@ -959,7 +959,7 @@ void InventoryMan::clickOnMouth() { newEvent._type = k72_TMEventTypeChampionShield; setMapAndTime(newEvent._mapTime, _vm->_dungeonMan->_partyMapIndex, _vm->_gameTime + (adjustedPotionPower * adjustedPotionPower)); newEvent._priority = championIndex; - newEvent._B._defense = adjustedPotionPower; + newEvent._Bu._defense = adjustedPotionPower; _vm->_timeline->addEventGetEventIndex(&newEvent); setFlag(curChampion->_attributes, kDMAttributeStatusBox); } diff --git a/engines/dm/menus.cpp b/engines/dm/menus.cpp index e3bc0880b1..20e733b00f 100644 --- a/engines/dm/menus.cpp +++ b/engines/dm/menus.cpp @@ -139,7 +139,7 @@ void MenuMan::initConstants() { _boxActionArea1ActionMenu = Box(224, 319, 77, 97); // @ G0501_s_Graphic560_Box_ActionArea1ActionMenu _boxActionArea2ActionMenu = Box(224, 319, 77, 109); // @ G0500_s_Graphic560_Box_ActionArea2ActionsMenu _boxActionArea3ActionMenu = Box(224, 319, 77, 121); // @ G0499_s_Graphic560_Box_ActionArea3ActionsMenu - _boxActionArea = Box(224, 319, 77, 121); // @ G0001_s_Graphic562_Box_ActionArea + _boxActionArea = Box(224, 319, 77, 121); // @ G0001_s_Graphic562_Box_ActionArea _boxSpellArea = Box(224, 319, 42, 74); for (int i = 0; i < 44; i++) { @@ -346,7 +346,7 @@ const char *MenuMan::getActionName(ChampionAction actionIndex) { } void MenuMan::drawSpellAreaControls(ChampionIndex champIndex) { - static Box boxSpellAreaControls(233, 319, 42, 49); // @ G0504_s_Graphic560_Box_SpellAreaControls + static Box boxSpellAreaControls(233, 319, 42, 49); // @ G0504_s_Graphic560_Box_SpellAreaControls Champion *champ = &_vm->_championMan->_champions[champIndex]; _vm->_displayMan->_useByteBoxCoordinates = false; @@ -421,7 +421,7 @@ void MenuMan::drawSpellAreaControls(ChampionIndex champIndex) { } void MenuMan::buildSpellAreaLine(int16 spellAreaBitmapLine) { - static Box boxSpellAreaLine(0, 95, 0, 11); // @ K0074_s_Box_SpellAreaLine + static Box boxSpellAreaLine(0, 95, 0, 11); // @ K0074_s_Box_SpellAreaLine char spellSymbolString[2] = {'\0', '\0'}; Champion *magicChampion = &_vm->_championMan->_champions[_vm->_championMan->_magicCasterChampionIndex]; @@ -449,8 +449,8 @@ void MenuMan::buildSpellAreaLine(int16 spellAreaBitmapLine) { } void MenuMan::setMagicCasterAndDrawSpellArea(ChampionIndex champIndex) { - static Box boxSpellAreaLine2(224, 319, 50, 61); // @ K0075_s_Box_SpellAreaLine2 - static Box boxSpellAreaLine3(224, 319, 62, 73); // @ K0076_s_Box_SpellAreaLine3 + static Box boxSpellAreaLine2(224, 319, 50, 61); // @ K0075_s_Box_SpellAreaLine2 + static Box boxSpellAreaLine3(224, 319, 62, 73); // @ K0076_s_Box_SpellAreaLine3 if ((champIndex == _vm->_championMan->_magicCasterChampionIndex) || ((champIndex != kDMChampionNone) && !_vm->_championMan->_champions[champIndex]._currHealth)) @@ -624,11 +624,11 @@ int16 MenuMan::getChampionSpellCastResult(uint16 champIndex) { break; case kDMSpellTypeOtherPartyShield: { newEvent._type = k74_TMEventTypePartyShield; - newEvent._B._defense = spellPower; + newEvent._Bu._defense = spellPower; if (_vm->_championMan->_party._shieldDefense > 50) - newEvent._B._defense >>= 2; + newEvent._Bu._defense >>= 2; - _vm->_championMan->_party._shieldDefense += newEvent._B._defense; + _vm->_championMan->_party._shieldDefense += newEvent._Bu._defense; _vm->_timeline->refreshAllChampionStatusBoxes(); uint16 spellTicks = spellPower * spellPower; setMapAndTime(newEvent._mapTime, _vm->_dungeonMan->_partyMapIndex, _vm->_gameTime + spellTicks); @@ -800,7 +800,7 @@ Potion *MenuMan::getEmptyFlaskInHand(Champion *champ, Thing *potionThing) { void MenuMan::createEvent70_light(int16 lightPower, int16 ticks) { TimelineEvent newEvent; newEvent._type = k70_TMEventTypeLight; - newEvent._B._lightPower = lightPower; + newEvent._Bu._lightPower = lightPower; setMapAndTime(newEvent._mapTime, _vm->_dungeonMan->_partyMapIndex, _vm->_gameTime + ticks); newEvent._priority = 0; _vm->_timeline->addEventGetEventIndex(&newEvent); @@ -821,19 +821,19 @@ bool MenuMan::isPartySpellOrFireShieldSuccessful(Champion *champ, bool spellShie champ->_currMana -= 4; } TimelineEvent newEvent; - newEvent._B._defense = ticks >> 5; + newEvent._Bu._defense = ticks >> 5; if (spellShield) { newEvent._type = k77_TMEventTypeSpellShield; if (_vm->_championMan->_party._spellShieldDefense > 50) - newEvent._B._defense >>= 2; + newEvent._Bu._defense >>= 2; - _vm->_championMan->_party._spellShieldDefense += newEvent._B._defense; + _vm->_championMan->_party._spellShieldDefense += newEvent._Bu._defense; } else { newEvent._type = k78_TMEventTypeFireShield; if (_vm->_championMan->_party._fireShieldDefense > 50) - newEvent._B._defense >>= 2; + newEvent._Bu._defense >>= 2; - _vm->_championMan->_party._fireShieldDefense += newEvent._B._defense; + _vm->_championMan->_party._fireShieldDefense += newEvent._Bu._defense; } newEvent._priority = 0; setMapAndTime(newEvent._mapTime, _vm->_dungeonMan->_partyMapIndex, _vm->_gameTime + ticks); @@ -1310,7 +1310,7 @@ bool MenuMan::isActionPerformed(uint16 champIndex, int16 actionIndex) { setChampionDirectionToPartyDirection(curChampion); actionPerformed = _vm->_championMan->isObjectThrown(champIndex, kDMSlotActionHand, (curChampion->_cell == returnNextVal(_vm->_dungeonMan->_partyDir)) || (curChampion->_cell == (ViewCell)returnOppositeDir(_vm->_dungeonMan->_partyDir))); if (actionPerformed) - _vm->_timeline->_events[curChampion->_enableActionEventIndex]._B._slotOrdinal = _vm->indexToOrdinal(kDMSlotActionHand); + _vm->_timeline->_events[curChampion->_enableActionEventIndex]._Bu._slotOrdinal = _vm->indexToOrdinal(kDMSlotActionHand); break; } diff --git a/engines/dm/movesens.cpp b/engines/dm/movesens.cpp index bca61fe5bb..d28b540bca 100644 --- a/engines/dm/movesens.cpp +++ b/engines/dm/movesens.cpp @@ -81,10 +81,10 @@ bool MovesensMan::sensorIsTriggeredByClickOnWall(int16 mapX, int16 mapY, uint16 SensorType processedSensorType = currentSensor->getType(); if (processedSensorType == k0_SensorDisabled) continue; - + if ((_vm->_championMan->_leaderIndex == kDMChampionNone) && (processedSensorType != k127_SensorWallChampionPortrait)) continue; - + if (cellIdx != cellParam) continue; @@ -205,7 +205,7 @@ bool MovesensMan::sensorIsTriggeredByClickOnWall(int16 mapX, int16 mapY, uint16 continue; } if (ProcessedThingType >= k4_GroupThingType) - break; + break; } processRotationEffect(); return atLeastOneSensorWasTriggered; @@ -508,7 +508,7 @@ bool MovesensMan::moveIsKilledByProjectileImpact(int16 srcMapX, int16 srcMapY, i Party: Projectiles on target square: Incorrect result without the test for the intermediary step (the champion would have passed through the projectile without impact): 00 -> 00 00 01 P0 P1 */ - byte intermediaryChampionOrCreatureOrdinalInCell[4]; + byte intermediaryChampionOrCreatureOrdinalInCell[4]; /* This array has an entry for each cell on the source square, containing the ordinal of the champion or creature (0 if there is no champion or creature at this cell) */ @@ -592,8 +592,8 @@ void MovesensMan::addEvent(byte type, byte mapX, byte mapY, byte cell, byte effe setMapAndTime(newEvent._mapTime, _vm->_dungeonMan->_currMapIndex, time); newEvent._type = type; newEvent._priority = 0; - newEvent._B._location._mapX = mapX; - newEvent._B._location._mapY = mapY; + newEvent._Bu._location._mapX = mapX; + newEvent._Bu._location._mapY = mapY; newEvent._C.A._cell = cell; newEvent._C.A._effect = effect; _vm->_timeline->addEventGetEventIndex(&newEvent); @@ -665,7 +665,7 @@ int16 MovesensMan::getTeleporterRotatedGroupResult(Teleporter *teleporter, Thing updatedGroupDirections = _vm->_groupMan->getGroupValueUpdatedWithCreatureValue(updatedGroupDirections, creatureIdx, absoluteRotation ? rotation : normalizeModulo4(groupDirections + rotation)); if (creatureSize == k0_MaskCreatureSizeQuarter) { relativeRotation = absoluteRotation ? 1 : 0; - if (relativeRotation) + if (relativeRotation) relativeRotation = rotation; } if (relativeRotation) @@ -990,8 +990,8 @@ void MovesensMan::createEventMoveGroup(Thing groupThing, int16 mapX, int16 mapY, setMapAndTime(newEvent._mapTime, mapIndex, _vm->_gameTime + 5); newEvent._type = audible ? k61_TMEventTypeMoveGroupAudible : k60_TMEventTypeMoveGroupSilent; newEvent._priority = 0; - newEvent._B._location._mapX = mapX; - newEvent._B._location._mapY = mapY; + newEvent._Bu._location._mapX = mapX; + newEvent._Bu._location._mapY = mapY; newEvent._C._slot = groupThing.toUint16(); _vm->_timeline->addEventGetEventIndex(&newEvent); } diff --git a/engines/dm/projexpl.cpp b/engines/dm/projexpl.cpp index c9682a18e1..131e015656 100644 --- a/engines/dm/projexpl.cpp +++ b/engines/dm/projexpl.cpp @@ -64,7 +64,7 @@ void ProjExpl::createProjectile(Thing thing, int16 mapX, int16 mapY, uint16 cell newEvent._type = k48_TMEventTypeMoveProjectileIgnoreImpacts; /* Projectiles created by champions or creatures ignore impacts on their first movement */ newEvent._priority = 0; - newEvent._B._slot = projectileThing.toUint16(); + newEvent._Bu._slot = projectileThing.toUint16(); newEvent._C._projectile.setMapX(mapX); newEvent._C._projectile.setMapY(mapY); newEvent._C._projectile.setStepEnergy(stepEnergy); @@ -315,8 +315,8 @@ void ProjExpl::createExplosion(Thing explThing, uint16 attack, uint16 mapXCombo, newEvent._type = k25_TMEventTypeExplosion; newEvent._priority = 0; newEvent._C._slot = unusedThing.toUint16(); - newEvent._B._location._mapX = projectileMapX; - newEvent._B._location._mapY = projectileMapY; + newEvent._Bu._location._mapX = projectileMapX; + newEvent._Bu._location._mapY = projectileMapY; _vm->_timeline->addEventGetEventIndex(&newEvent); if ((explThing == Thing::_explLightningBolt) || (explThing == Thing::_explFireBall)) { projectileMapX = projectileTargetMapX; @@ -350,7 +350,7 @@ void ProjExpl::createExplosion(Thing explThing, uint16 attack, uint16 mapXCombo, int16 ProjExpl::projectileGetImpactCount(int16 impactType, int16 mapX, int16 mapY, int16 cell) { int16 impactCount = 0; _creatureDamageOutcome = k0_outcomeKilledNoCreaturesInGroup; - + for (Thing curThing = _vm->_dungeonMan->getSquareFirstThing(mapX, mapY); curThing != Thing::_endOfList; ) { if (((curThing).getType() == k14_ProjectileThingType) && ((curThing).getCell() == cell) && hasProjectileImpactOccurred(impactType, mapX, mapY, cell, curThing)) { @@ -394,7 +394,7 @@ void ProjExpl::processEvents48To49(TimelineEvent *event) { int16 sourceMapY = -1; TimelineEvent firstEvent = *event; TimelineEvent *curEvent = &firstEvent; - Thing projectileThingNewCell = Thing(curEvent->_B._slot); + Thing projectileThingNewCell = Thing(curEvent->_Bu._slot); Thing projectileThing = projectileThingNewCell; Projectile *projectile = (Projectile *)_vm->_dungeonMan->getThingData(projectileThing); int16 destinationMapX = curEvent->_C._projectile.getMapX(); @@ -423,7 +423,7 @@ void ProjExpl::processEvents48To49(TimelineEvent *event) { projectile->_attack -= stepEnergy; } uint16 projectileDirection = curEvent->_C._projectile.getDir(); - projectileThingNewCell = Thing(curEvent->_B._slot); + projectileThingNewCell = Thing(curEvent->_Bu._slot); uint16 projectileNewCell = projectileThingNewCell.getCell(); bool projectileMovesToOtherSquare = (projectileDirection == projectileNewCell) || (returnNextVal(projectileDirection) == projectileNewCell); if (projectileMovesToOtherSquare) { @@ -465,13 +465,13 @@ void ProjExpl::processEvents48To49(TimelineEvent *event) { // This code is from CSB20. The projectiles move at the same speed on all maps instead of moving slower on maps other than the party map */ curEvent->_mapTime++; - curEvent->_B._slot = projectileThingNewCell.toUint16(); + curEvent->_Bu._slot = projectileThingNewCell.toUint16(); projectile->_eventIndex = _vm->_timeline->addEventGetEventIndex(curEvent); } void ProjExpl::processEvent25(TimelineEvent *event) { - uint16 mapX = event->_B._location._mapX; - uint16 mapY = event->_B._location._mapY; + uint16 mapX = event->_Bu._location._mapX; + uint16 mapY = event->_Bu._location._mapY; Explosion *explosion = &((Explosion *)_vm->_dungeonMan->_thingData[k15_ExplosionThingType])[Thing((event->_C._slot)).getIndex()]; int16 curSquareType = Square(_vm->_dungeonMan->_currMapData[mapX][mapY]).getType(); bool explosionOnPartySquare = (_vm->_dungeonMan->_currMapIndex == _vm->_dungeonMan->_partyMapIndex) && (mapX == _vm->_dungeonMan->_partyMapX) && (mapY == _vm->_dungeonMan->_partyMapY); diff --git a/engines/dm/sounds.cpp b/engines/dm/sounds.cpp index bcc333c7b0..1a8b9a3b0f 100644 --- a/engines/dm/sounds.cpp +++ b/engines/dm/sounds.cpp @@ -206,8 +206,8 @@ void SoundMan::requestPlay(uint16 soundIndex, int16 mapX, int16 mapY, uint16 mod newEvent._type = k20_TMEventTypePlaySound; newEvent._priority = sound->_priority; newEvent._C._soundIndex = soundIndex; - newEvent._B._location._mapX = mapX; - newEvent._B._location._mapY = mapY; + newEvent._Bu._location._mapX = mapX; + newEvent._Bu._location._mapY = mapY; _vm->_timeline->addEventGetEventIndex(&newEvent); return; } diff --git a/engines/dm/timeline.cpp b/engines/dm/timeline.cpp index 8ec70f7f53..adb8825355 100644 --- a/engines/dm/timeline.cpp +++ b/engines/dm/timeline.cpp @@ -124,7 +124,7 @@ void Timeline::deleteEvent(uint16 eventIndex) { _firstUnusedEventIndex = eventIndex; _eventCount--; - + uint16 eventCount = _eventCount; if (eventCount == 0) return; @@ -160,7 +160,7 @@ void Timeline::fixChronology(uint16 timelineIndex) { uint16 altTimelineIndex = (timelineIndex << 1) + 1; if (((altTimelineIndex + 1) < _eventCount) && (isEventABeforeB(&_events[_timeline[altTimelineIndex + 1]], &_events[_timeline[altTimelineIndex]]))) altTimelineIndex++; - + if (isEventABeforeB(&_events[_timeline[altTimelineIndex]], timelineEvent)) { _timeline[timelineIndex] = _timeline[altTimelineIndex]; timelineIndex = altTimelineIndex; @@ -262,7 +262,7 @@ void Timeline::processTimeline() { _vm->_dungeonMan->setCurrentMap(getMap(newEvent._mapTime)); uint16 curEventType = newEvent._type; if ((curEventType > (k29_TMEventTypeGroupReactionDangerOnSquare - 1)) && (curEventType < (k41_TMEventTypeUpdateBehaviour_3 + 1))) - _vm->_groupMan->processEvents29to41(newEvent._B._location._mapX, newEvent._B._location._mapY, curEventType, newEvent._C._ticks); + _vm->_groupMan->processEvents29to41(newEvent._Bu._location._mapX, newEvent._Bu._location._mapY, curEventType, newEvent._C._ticks); else { switch (curEventType) { case k48_TMEventTypeMoveProjectileIgnoreImpacts: @@ -304,19 +304,19 @@ void Timeline::processTimeline() { procesEventEnableGroupGenerator(curEvent); break; case k20_TMEventTypePlaySound: - _vm->_sound->requestPlay(newEvent._C._soundIndex, newEvent._B._location._mapX, newEvent._B._location._mapY, k1_soundModePlayIfPrioritized); + _vm->_sound->requestPlay(newEvent._C._soundIndex, newEvent._Bu._location._mapX, newEvent._Bu._location._mapY, k1_soundModePlayIfPrioritized); break; case k24_TMEventTypeRemoveFluxcage: if (!_vm->_gameWon) { - _vm->_dungeonMan->unlinkThingFromList(Thing(newEvent._C._slot), Thing(0), newEvent._B._location._mapX, newEvent._B._location._mapY); + _vm->_dungeonMan->unlinkThingFromList(Thing(newEvent._C._slot), Thing(0), newEvent._Bu._location._mapX, newEvent._Bu._location._mapY); curEvent = (TimelineEvent *)_vm->_dungeonMan->getThingData(Thing(newEvent._C._slot)); ((Explosion *)curEvent)->setNextThing(Thing::_none); } break; case k11_TMEventTypeEnableChampionAction: processEventEnableChampionAction(newEvent._priority); - if (newEvent._B._slotOrdinal) - processEventMoveWeaponFromQuiverToSlot(newEvent._priority, _vm->ordinalToIndex(newEvent._B._slotOrdinal)); + if (newEvent._Bu._slotOrdinal) + processEventMoveWeaponFromQuiverToSlot(newEvent._priority, _vm->ordinalToIndex(newEvent._Bu._slotOrdinal)); _vm->_championMan->drawChampionState((ChampionIndex)newEvent._priority); break; @@ -332,7 +332,7 @@ void Timeline::processTimeline() { _vm->_championMan->_party._event71Count_Invisibility--; break; case k72_TMEventTypeChampionShield: - _vm->_championMan->_champions[newEvent._priority]._shieldDefense -= newEvent._B._defense; + _vm->_championMan->_champions[newEvent._priority]._shieldDefense -= newEvent._Bu._defense; setFlag(_vm->_championMan->_champions[newEvent._priority]._attributes, kDMAttributeStatusBox); _vm->_championMan->drawChampionState((ChampionIndex)newEvent._priority); break; @@ -340,21 +340,21 @@ void Timeline::processTimeline() { _vm->_championMan->_party._event73Count_ThievesEye--; break; case k74_TMEventTypePartyShield: - _vm->_championMan->_party._shieldDefense -= newEvent._B._defense; + _vm->_championMan->_party._shieldDefense -= newEvent._Bu._defense; refreshAllChampionStatusBoxes(); break; case k77_TMEventTypeSpellShield: - _vm->_championMan->_party._spellShieldDefense -= newEvent._B._defense; + _vm->_championMan->_party._spellShieldDefense -= newEvent._Bu._defense; refreshAllChampionStatusBoxes(); break; case k78_TMEventTypeFireShield: - _vm->_championMan->_party._fireShieldDefense -= newEvent._B._defense; + _vm->_championMan->_party._fireShieldDefense -= newEvent._Bu._defense; refreshAllChampionStatusBoxes(); break; case k75_TMEventTypePoisonChampion: { uint16 championIndex = newEvent._priority; _vm->_championMan->_champions[championIndex = newEvent._priority]._poisonEventCount--; - _vm->_championMan->championPoison(championIndex, newEvent._B._attack); + _vm->_championMan->championPoison(championIndex, newEvent._Bu._attack); } break; case k13_TMEventTypeViAltarRebirth: @@ -380,8 +380,8 @@ void Timeline::extractFirstEvent(TimelineEvent *event) { } void Timeline::processEventDoorAnimation(TimelineEvent *event) { - uint16 mapX = event->_B._location._mapX; - uint16 mapY = event->_B._location._mapY; + uint16 mapX = event->_Bu._location._mapX; + uint16 mapY = event->_Bu._location._mapY; Square *curSquare = (Square *)&_vm->_dungeonMan->_currMapData[mapX][mapY]; int16 doorState = Square(*curSquare).getDoorState(); if (doorState == k5_doorState_DESTROYED) @@ -444,8 +444,8 @@ void Timeline::processEventDoorAnimation(TimelineEvent *event) { } void Timeline::processEventSquareFakewall(TimelineEvent *event) { - uint16 mapX = event->_B._location._mapX; - uint16 mapY = event->_B._location._mapY; + uint16 mapX = event->_Bu._location._mapX; + uint16 mapY = event->_Bu._location._mapY; byte *curSquare = &_vm->_dungeonMan->_currMapData[mapX][mapY]; int16 effect = event->_C.A._effect; if (effect == k2_SensorEffToggle) @@ -468,12 +468,12 @@ void Timeline::processEventSquareFakewall(TimelineEvent *event) { } void Timeline::processEventDoorDestruction(TimelineEvent *event) { - Square *square = (Square *)&_vm->_dungeonMan->_currMapData[event->_B._location._mapX][event->_B._location._mapY]; + Square *square = (Square *)&_vm->_dungeonMan->_currMapData[event->_Bu._location._mapX][event->_Bu._location._mapY]; square->setDoorState(k5_doorState_DESTROYED); } void Timeline::processEventSquareDoor(TimelineEvent *event) { - int16 doorState = Square(_vm->_dungeonMan->_currMapData[event->_B._location._mapX][event->_B._location._mapY]).getDoorState(); + int16 doorState = Square(_vm->_dungeonMan->_currMapData[event->_Bu._location._mapX][event->_Bu._location._mapY]).getDoorState(); if (doorState == k5_doorState_DESTROYED) return; @@ -488,8 +488,8 @@ void Timeline::processEventSquareDoor(TimelineEvent *event) { } void Timeline::processEventSquarePit(TimelineEvent *event) { - uint16 mapX = event->_B._location._mapX; - uint16 mapY = event->_B._location._mapY; + uint16 mapX = event->_Bu._location._mapX; + uint16 mapY = event->_Bu._location._mapY; byte *square = &_vm->_dungeonMan->_currMapData[mapX][mapY]; if (event->_C.A._effect == k2_SensorEffToggle) @@ -537,14 +537,14 @@ void Timeline::moveTeleporterOrPitSquareThings(uint16 mapX, uint16 mapY) { newEvent->_C._projectile.setMapX(_vm->_moveSens->_moveResultMapX); newEvent->_C._projectile.setMapY(_vm->_moveSens->_moveResultMapY); newEvent->_C._projectile.setDir((Direction)_vm->_moveSens->_moveResultDir); - newEvent->_B._slot = thingWithNewCell(curThing, _vm->_moveSens->_moveResultCell).toUint16(); + newEvent->_Bu._slot = thingWithNewCell(curThing, _vm->_moveSens->_moveResultCell).toUint16(); M31_setMap(newEvent->_mapTime, _vm->_moveSens->_moveResultMapIndex); } else if (curThingType == k15_ExplosionThingType) { TimelineEvent *newEvent = _events; for (uint16 i = 0; i < _eventMaxCount; newEvent++, i++) { if ((newEvent->_type == k25_TMEventTypeExplosion) && (newEvent->_C._slot == curThing.toUint16())) { /* BUG0_23 A Fluxcage explosion remains on a square forever. If you open a pit or teleporter on a square where there is a Fluxcage explosion, the Fluxcage explosion is moved but the associated event is not updated (because Fluxcage explosions do not use k25_TMEventTypeExplosion but rather k24_TMEventTypeRemoveFluxcage) causing the Fluxcage explosion to remain in the dungeon forever on its destination square. When the k24_TMEventTypeRemoveFluxcage expires the explosion thing is not removed, but it is marked as unused. Consequently, any objects placed on the Fluxcage square after it was moved but before it expires become orphans upon expiration. After expiration, any object placed on the fluxcage square is cloned when picked up */ - newEvent->_B._location._mapX = _vm->_moveSens->_moveResultMapX; - newEvent->_B._location._mapY = _vm->_moveSens->_moveResultMapY; + newEvent->_Bu._location._mapX = _vm->_moveSens->_moveResultMapX; + newEvent->_Bu._location._mapY = _vm->_moveSens->_moveResultMapY; newEvent->_C._slot = thingWithNewCell(curThing, _vm->_moveSens->_moveResultCell).toUint16(); M31_setMap(newEvent->_mapTime, _vm->_moveSens->_moveResultMapIndex); } @@ -555,8 +555,8 @@ void Timeline::moveTeleporterOrPitSquareThings(uint16 mapX, uint16 mapY) { } void Timeline::processEventSquareTeleporter(TimelineEvent *event) { - uint16 mapX = event->_B._location._mapX; - uint16 mapY = event->_B._location._mapY; + uint16 mapX = event->_Bu._location._mapX; + uint16 mapY = event->_Bu._location._mapY; byte *curSquare = &_vm->_dungeonMan->_currMapData[mapX][mapY]; if (event->_C.A._effect == k2_SensorEffToggle) @@ -570,8 +570,8 @@ void Timeline::processEventSquareTeleporter(TimelineEvent *event) { } void Timeline::processEventSquareWall(TimelineEvent *event) { - int16 mapX = event->_B._location._mapX; - int16 mapY = event->_B._location._mapY; + int16 mapX = event->_Bu._location._mapX; + int16 mapY = event->_Bu._location._mapY; Thing curThing = _vm->_dungeonMan->getSquareFirstThing(mapX, mapY); uint16 curCell = event->_C.A._cell; while (curThing != Thing::_endOfList) { @@ -612,7 +612,7 @@ void Timeline::processEventSquareWall(TimelineEvent *event) { clearFlag(curSensorData, bitMask); else setFlag(curSensorData, bitMask); - + curThingSensor->setData(curSensorData); bool triggerSetEffect = (Sensor::getDataMask1(curSensorData) == Sensor::getDataMask2(curSensorData)) != curThingSensor->getAttrRevertEffectA(); if (curThingSensor->getAttrEffectA() == k3_SensorEffHold) @@ -636,8 +636,8 @@ void Timeline::processEventSquareWall(TimelineEvent *event) { } void Timeline::triggerProjectileLauncher(Sensor *sensor, TimelineEvent *event) { - int16 mapX = event->_B._location._mapX; - int16 mapY = event->_B._location._mapY; + int16 mapX = event->_Bu._location._mapX; + int16 mapY = event->_Bu._location._mapY; uint16 cell = event->_C.A._cell; uint16 projectileCell = returnOppositeDir((Direction)cell); int16 sensorType = sensor->getType(); @@ -701,8 +701,8 @@ void Timeline::triggerProjectileLauncher(Sensor *sensor, TimelineEvent *event) { } void Timeline::processEventSquareCorridor(TimelineEvent *event) { - uint16 mapX = event->_B._location._mapX; - uint16 mapY = event->_B._location._mapY; + uint16 mapX = event->_Bu._location._mapX; + uint16 mapY = event->_Bu._location._mapY; Thing curThing = _vm->_dungeonMan->getSquareFirstThing(mapX, mapY); while (curThing != Thing::_endOfList) { int16 curThingType = curThing.getType(); @@ -748,9 +748,9 @@ void Timeline::processEventSquareCorridor(TimelineEvent *event) { newEvent._type = k65_TMEventTypeEnableGroupGenerator; setMapAndTime(newEvent._mapTime, _vm->_dungeonMan->_currMapIndex, _vm->_gameTime + actionTicks); newEvent._priority = 0; - newEvent._B._location._mapX = mapX; - newEvent._B._location._mapY = mapY; - newEvent._B._location._mapY = mapY; + newEvent._Bu._location._mapX = mapX; + newEvent._Bu._location._mapY = mapY; + newEvent._Bu._location._mapY = mapY; addEventGetEventIndex(&newEvent); } } @@ -762,8 +762,8 @@ void Timeline::processEventSquareCorridor(TimelineEvent *event) { void Timeline::processEventsMoveGroup(TimelineEvent *event) { bool randomDirectionMoveRetried = false; - uint16 mapX = event->_B._location._mapX; - uint16 mapY = event->_B._location._mapY; + uint16 mapX = event->_Bu._location._mapX; + uint16 mapY = event->_Bu._location._mapY; T0252001: if (((_vm->_dungeonMan->_currMapIndex != _vm->_dungeonMan->_partyMapIndex) || (mapX != _vm->_dungeonMan->_partyMapX) || (mapY != _vm->_dungeonMan->_partyMapY)) && (_vm->_groupMan->groupGetThing(mapX, mapY) == Thing::_endOfList)) { /* BUG0_24 Lord Chaos may teleport into one of the Black Flames and become invisible until the Black Flame is killed. In this case, _vm->_groupMan->f175_groupGetThing returns the Black Flame thing and the Lord Chaos thing is not moved into the dungeon until the Black Flame is killed */ @@ -799,7 +799,7 @@ T0252001: } void Timeline::procesEventEnableGroupGenerator(TimelineEvent *event) { - Thing curThing = _vm->_dungeonMan->getSquareFirstThing(event->_B._location._mapX, event->_B._location._mapY); + Thing curThing = _vm->_dungeonMan->getSquareFirstThing(event->_Bu._location._mapX, event->_Bu._location._mapY); while (curThing != Thing::_none) { if ((curThing.getType()) == k3_SensorThingType) { Sensor *curSensor = (Sensor *)_vm->_dungeonMan->getThingData(curThing); @@ -878,7 +878,7 @@ void Timeline::processEventHideDamageReceived(uint16 champIndex) { } void Timeline::processEventLight(TimelineEvent *event) { - int16 lightPower = event->_B._lightPower; + int16 lightPower = event->_Bu._lightPower; if (lightPower == 0) return; @@ -896,7 +896,7 @@ void Timeline::processEventLight(TimelineEvent *event) { if (weakerLightPower) { TimelineEvent newEvent; newEvent._type = k70_TMEventTypeLight; - newEvent._B._lightPower = weakerLightPower; + newEvent._Bu._lightPower = weakerLightPower; setMapAndTime(newEvent._mapTime, _vm->_dungeonMan->_partyMapIndex, _vm->_gameTime + 4); newEvent._priority = 0; addEventGetEventIndex(&newEvent); @@ -911,8 +911,8 @@ void Timeline::refreshAllChampionStatusBoxes() { } void Timeline::processEventViAltarRebirth(TimelineEvent *event) { - int16 mapX = event->_B._location._mapX; - int16 mapY = event->_B._location._mapY; + int16 mapX = event->_Bu._location._mapX; + int16 mapY = event->_Bu._location._mapY; uint16 cell = event->_C.A._cell; uint16 championIndex = event->_priority; uint16 rebirthStep = event->_C.A._effect; @@ -955,8 +955,8 @@ void Timeline::saveEventsPart(Common::OutSaveFile *file) { file->writeSint32BE(event->_mapTime); file->writeByte(event->_type); file->writeByte(event->_priority); - file->writeByte(event->_B._location._mapX); // writing bytes of the union I think should preserve the union's identity - file->writeByte(event->_B._location._mapY); + file->writeByte(event->_Bu._location._mapX); // writing bytes of the union I think should preserve the union's identity + file->writeByte(event->_Bu._location._mapY); file->writeUint16BE(event->_C.A._cell); // writing bytes of the union I think should preserve the union's identity file->writeUint16BE(event->_C.A._effect); } @@ -973,8 +973,8 @@ void Timeline::loadEventsPart(Common::InSaveFile *file) { event->_mapTime = file->readSint32BE(); event->_type = file->readByte(); event->_priority = file->readByte(); - event->_B._location._mapX = file->readByte(); - event->_B._location._mapY = file->readByte(); + event->_Bu._location._mapX = file->readByte(); + event->_Bu._location._mapY = file->readByte(); event->_C.A._cell = file->readUint16BE(); event->_C.A._effect = file->readUint16BE(); } diff --git a/engines/dm/timeline.h b/engines/dm/timeline.h index ef076be593..168ae3f04c 100644 --- a/engines/dm/timeline.h +++ b/engines/dm/timeline.h @@ -118,9 +118,9 @@ public: int16 _slotOrdinal; }; - B_unionTimelineEvent _B; + B_unionTimelineEvent _Bu; - int16 getMapXY() { return (_B._location._mapX << 8) + _B._location._mapY; } + int16 getMapXY() { return (_Bu._location._mapX << 8) + _Bu._location._mapY; } union C_uionTimelineEvent { struct { |