[Scummvm-git-logs] scummvm master -> 85123819a88aed53b6e905fbb70ff2c88f2ee28a
bluegr
noreply at scummvm.org
Thu Dec 30 15:16:24 UTC 2021
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
07775d1f6b BURIED: Reduce cases with global flag access via offsets. Some cleanup
85123819a8 BURIED: Remove unused global flag access methods
Commit: 07775d1f6b01ff05309505228af3a3245a9058b6
https://github.com/scummvm/scummvm/commit/07775d1f6b01ff05309505228af3a3245a9058b6
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2021-12-30T17:15:31+02:00
Commit Message:
BURIED: Reduce cases with global flag access via offsets. Some cleanup
Changed paths:
engines/buried/environ/ai_lab.cpp
engines/buried/environ/castle.cpp
engines/buried/environ/future_apartment.cpp
engines/buried/environ/scene_common.cpp
engines/buried/environ/scene_common.h
diff --git a/engines/buried/environ/ai_lab.cpp b/engines/buried/environ/ai_lab.cpp
index d81c53c8bcc..80a65398bf6 100644
--- a/engines/buried/environ/ai_lab.cpp
+++ b/engines/buried/environ/ai_lab.cpp
@@ -3636,28 +3636,29 @@ int MachineRoomEntry::timerCallback(Window *viewWindow) {
class DockingBayPlaySoundEntering : public SceneBase {
public:
DockingBayPlaySoundEntering(BuriedEngine *vm, Window *viewWindow, const LocationStaticData &sceneStaticData, const Location &priorLocation,
- int soundFileNameID = -1, int flagOffset = -1);
+ int soundFileNameID = -1);
int postEnterRoom(Window *viewWindow, const Location &priorLocation) override;
private:
int _soundFileNameID;
- int _flagOffset;
};
DockingBayPlaySoundEntering::DockingBayPlaySoundEntering(BuriedEngine *vm, Window *viewWindow, const LocationStaticData &sceneStaticData, const Location &priorLocation,
- int soundFileNameID, int flagOffset) :
+ int soundFileNameID) :
SceneBase(vm, viewWindow, sceneStaticData, priorLocation) {
_soundFileNameID = soundFileNameID;
- _flagOffset = flagOffset;
if (((SceneViewWindow *)viewWindow)->getGlobalFlags().generalWalkthroughMode == 1)
_staticData.destForward.destinationScene = Location(-1, -1, -1, -1, -1, -1);
}
int DockingBayPlaySoundEntering::postEnterRoom(Window *viewWindow, const Location &priorLocation) {
- if (_flagOffset >= 0 && ((SceneViewWindow *)viewWindow)->getGlobalFlagByte(_flagOffset) == 0) {
+ SceneViewWindow *sceneView = ((SceneViewWindow *)viewWindow);
+ GlobalFlags &globalFlags = sceneView->getGlobalFlags();
+
+ if (globalFlags.aiDBPlayedMomComment == 0) {
_vm->_sound->playSynchronousSoundEffect(_vm->getFilePath(_staticData.location.timeZone, _staticData.location.environment, _soundFileNameID));
- ((SceneViewWindow *)viewWindow)->setGlobalFlagByte(_flagOffset, 1);
+ globalFlags.aiDBPlayedMomComment = 1;
}
return SC_TRUE;
@@ -3825,7 +3826,7 @@ SceneBase *SceneViewWindow::constructAILabSceneObject(Window *viewWindow, const
case 33:
return new SpaceDoor(_vm, viewWindow, sceneStaticData, priorLocation, 185, 42, 253, 110, 167, -1, 1, TRANSITION_VIDEO, 1, -1, -1, -1, 0);
case 35:
- return new DockingBayPlaySoundEntering(_vm, viewWindow, sceneStaticData, priorLocation, 4, offsetof(GlobalFlags, aiDBPlayedMomComment));
+ return new DockingBayPlaySoundEntering(_vm, viewWindow, sceneStaticData, priorLocation, 4);
case 36:
return new PlaySoundEnteringScene(_vm, viewWindow, sceneStaticData, priorLocation, 6, offsetof(GlobalFlags, aiDBPlayedSecondArthur));
case 37:
diff --git a/engines/buried/environ/castle.cpp b/engines/buried/environ/castle.cpp
index 859a369e656..6bae492e97f 100644
--- a/engines/buried/environ/castle.cpp
+++ b/engines/buried/environ/castle.cpp
@@ -96,6 +96,9 @@ TowerStairsGuardEncounter::TowerStairsGuardEncounter(BuriedEngine *vm, Window *v
}
int TowerStairsGuardEncounter::timerCallback(Window *viewWindow) {
+ SceneViewWindow *sceneView = ((SceneViewWindow *)viewWindow);
+ GlobalFlags &globalFlags = sceneView->getGlobalFlags();
+
if (_frameCycleCount < 0 || _busy)
return SC_FALSE;
@@ -103,7 +106,7 @@ int TowerStairsGuardEncounter::timerCallback(Window *viewWindow) {
_frameCycleCount++;
viewWindow->invalidateWindow(false);
} else {
- if (((SceneViewWindow *)viewWindow)->getGlobalFlags().bcCloakingEnabled == 0) {
+ if (globalFlags.bcCloakingEnabled == 0) {
((SceneViewWindow *)viewWindow)->playSynchronousAnimation(0);
_busy = true;
((SceneViewWindow *)viewWindow)->showDeathScene(0);
@@ -790,7 +793,7 @@ class StorageRoomDoor : public SceneBase {
public:
StorageRoomDoor(BuriedEngine *vm, Window *viewWindow, const LocationStaticData &sceneStaticData, const Location &priorLocation,
int left = -1, int top = -1, int right = -1, int bottom = -1, int timeZone = -1, int environment = -1, int node = -1,
- int facing = -1, int orientation = -1, int depth = -1, int flagOffset = 0, int data = -1, int startFrame = -1,
+ int facing = -1, int orientation = -1, int depth = -1, int data = -1, int startFrame = -1,
int length = -1, int animDB = -1);
int mouseDown(Window *viewWindow, const Common::Point &pointLocation) override;
int mouseUp(Window *viewWindow, const Common::Point &pointLocation) override;
@@ -799,19 +802,20 @@ public:
private:
bool _clicked;
Common::Rect _clickable;
- int _flagOffset;
DestinationScene _destData;
int _agent3VideoID;
};
StorageRoomDoor::StorageRoomDoor(BuriedEngine *vm, Window *viewWindow, const LocationStaticData &sceneStaticData, const Location &priorLocation,
int left, int top, int right, int bottom, int timeZone, int environment, int node,
- int facing, int orientation, int depth, int flagOffset, int data, int startFrame,
+ int facing, int orientation, int depth, int data, int startFrame,
int length, int animDB) :
SceneBase(vm, viewWindow, sceneStaticData, priorLocation) {
+ SceneViewWindow *sceneView = ((SceneViewWindow *)viewWindow);
+ GlobalFlags &globalFlags = sceneView->getGlobalFlags();
+
_agent3VideoID = animDB;
_clicked = false;
- _flagOffset = flagOffset;
_clickable = Common::Rect(left, top, right, bottom);
_destData.destinationScene.timeZone = timeZone;
@@ -821,7 +825,7 @@ StorageRoomDoor::StorageRoomDoor(BuriedEngine *vm, Window *viewWindow, const Loc
_destData.destinationScene.orientation = orientation;
_destData.destinationScene.depth = depth;
- if (((SceneViewWindow *)viewWindow)->getGlobalFlagByte(flagOffset) != 0) {
+ if (globalFlags.cgStorageRoomVisit != 0) {
_destData.transitionType = 2; // constant?
_destData.transitionData = data;
_destData.transitionStartFrame = startFrame;
@@ -843,22 +847,22 @@ int StorageRoomDoor::mouseDown(Window *viewWindow, const Common::Point &pointLoc
int StorageRoomDoor::mouseUp(Window *viewWindow, const Common::Point &pointLocation) {
if (_clicked) {
+ SceneViewWindow *sceneView = ((SceneViewWindow *)viewWindow);
+ GlobalFlags &globalFlags = sceneView->getGlobalFlags();
BuriedEngine *vm = _vm;
- int flagOffset = _flagOffset;
-
if (_clickable.contains(pointLocation)) {
((SceneViewWindow *)viewWindow)->moveToDestination(_destData);
} else {
_clicked = false;
}
- if (((SceneViewWindow *)viewWindow)->getGlobalFlagByte(flagOffset) == 0) {
+ if (globalFlags.cgStorageRoomVisit == 0) {
if (((SceneViewWindow *)viewWindow)->addNumberToGlobalFlagTable(offsetof(GlobalFlags, evcapBaseID), offsetof(GlobalFlags, evcapNumCaptured), 12, CASTLE_EVIDENCE_AGENT3))
((SceneViewWindow *)viewWindow)->displayLiveText(vm->getString(IDS_MBT_EVIDENCE_ACQUIRED));
else
((SceneViewWindow *)viewWindow)->displayLiveText(vm->getString(IDS_MBT_EVIDENCE_ALREADY_ACQUIRED));
- ((SceneViewWindow *)viewWindow)->setGlobalFlagByte(flagOffset, 1);
+ globalFlags.cgStorageRoomVisit = 1;
}
}
@@ -875,7 +879,7 @@ int StorageRoomDoor::specifyCursor(Window *viewWindow, const Common::Point &poin
class StorageRoomCheckUnlock : public SceneBase {
public:
StorageRoomCheckUnlock(BuriedEngine *vm, Window *viewWindow, const LocationStaticData &sceneStaticData, const Location &priorLocation,
- int flagOffset = 0, int itemID = 0, int filledFrameIndex = 0, int animID = 0, int depthA = 0, int depthB = 0,
+ int itemID = 0, int filledFrameIndex = 0, int animID = 0, int depthA = 0, int depthB = 0,
int left = 0, int top = 0, int right = 0, int bottom = 0);
int mouseUp(Window *viewWindow, const Common::Point &pointLocation) override;
int draggingItem(Window *viewWindow, int itemID, const Common::Point &pointLocation, int itemFlags) override;
@@ -883,7 +887,6 @@ public:
int specifyCursor(Window *viewWindow, const Common::Point &pointLocation) override;
private:
- int _flagOffset;
int _itemID;
int _filledFrameIndex;
int _animID;
@@ -894,10 +897,9 @@ private:
};
StorageRoomCheckUnlock::StorageRoomCheckUnlock(BuriedEngine *vm, Window *viewWindow, const LocationStaticData &sceneStaticData, const Location &priorLocation,
- int flagOffset, int itemID, int filledFrameIndex, int animID, int depthA, int depthB,
+ int itemID, int filledFrameIndex, int animID, int depthA, int depthB,
int left, int top, int right, int bottom) :
SceneBase(vm, viewWindow, sceneStaticData, priorLocation) {
- _flagOffset = flagOffset;
_itemID = itemID;
_filledFrameIndex = filledFrameIndex;
_depthA = depthA;
@@ -930,13 +932,16 @@ int StorageRoomCheckUnlock::draggingItem(Window *viewWindow, int itemID, const C
}
int StorageRoomCheckUnlock::droppedItem(Window *viewWindow, int itemID, const Common::Point &pointLocation, int itemFlags) {
+ SceneViewWindow *sceneView = ((SceneViewWindow *)viewWindow);
+ GlobalFlags &globalFlags = sceneView->getGlobalFlags();
+
if (_dropRegion.contains(pointLocation) && _itemID == itemID) {
((SceneViewWindow *)viewWindow)->playSynchronousAnimation(_animID);
_staticData.navFrameIndex = _filledFrameIndex;
Location newDest = _staticData.location;
- if (((SceneViewWindow *)viewWindow)->getGlobalFlagByte(_flagOffset) != 0)
+ if (globalFlags.cgTapestryFlag != 0)
newDest.depth = _depthB;
else
newDest.depth = _depthA;
@@ -1025,34 +1030,34 @@ int KingsChamberGuardEncounter::timerCallback(Window *viewWindow) {
bool SceneViewWindow::initializeCastleTimeZoneAndEnvironment(Window *viewWindow, int environment) {
// If we passed -1, initialize time zone, otherwise the environment
if (environment == -1) {
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().cgWallExploded = 0;
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().cgHookPresent = ((GameUIWindow *)viewWindow->getParent())->_inventoryWindow->isItemInInventory(kItemGrapplingHook) ? 1 : 0;
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().cgArrowPresent = ((GameUIWindow *)viewWindow->getParent())->_inventoryWindow->isItemInInventory(kItemBloodyArrow) ? 1 : 0;
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().cgHammerPresent = ((GameUIWindow *)viewWindow->getParent())->_inventoryWindow->isItemInInventory(kItemHammer) ? 1 : 0;
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().cgSmithyStatus = 0;
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().cgSmithyGuard = 0;
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().cgBaileyOneWayGuard = 0;
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().cgBaileyTwoWayGuards = 0;
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().cgTapestryFlag = 0;
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().cgStorageRoomVisit = 0;
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().cgBurnedLetterPresent = ((GameUIWindow *)viewWindow->getParent())->_inventoryWindow->isItemInInventory(kItemBurnedLetter) ? 1 : 0;
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().cgGoldCoinsPresent = ((GameUIWindow *)viewWindow->getParent())->_inventoryWindow->isItemInInventory(kItemGoldCoins) ? 1 : 0;
-
- if (((SceneViewWindow *)viewWindow)->getGlobalFlags().generalWalkthroughMode == 1) {
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().cgSmithyStatus = 6;
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().cgTapestryFlag = 1;
+ _globalFlags.cgWallExploded = 0;
+ _globalFlags.cgHookPresent = ((GameUIWindow *)viewWindow->getParent())->_inventoryWindow->isItemInInventory(kItemGrapplingHook) ? 1 : 0;
+ _globalFlags.cgArrowPresent = ((GameUIWindow *)viewWindow->getParent())->_inventoryWindow->isItemInInventory(kItemBloodyArrow) ? 1 : 0;
+ _globalFlags.cgHammerPresent = ((GameUIWindow *)viewWindow->getParent())->_inventoryWindow->isItemInInventory(kItemHammer) ? 1 : 0;
+ _globalFlags.cgSmithyStatus = 0;
+ _globalFlags.cgSmithyGuard = 0;
+ _globalFlags.cgBaileyOneWayGuard = 0;
+ _globalFlags.cgBaileyTwoWayGuards = 0;
+ _globalFlags.cgTapestryFlag = 0;
+ _globalFlags.cgStorageRoomVisit = 0;
+ _globalFlags.cgBurnedLetterPresent = ((GameUIWindow *)viewWindow->getParent())->_inventoryWindow->isItemInInventory(kItemBurnedLetter) ? 1 : 0;
+ _globalFlags.cgGoldCoinsPresent = ((GameUIWindow *)viewWindow->getParent())->_inventoryWindow->isItemInInventory(kItemGoldCoins) ? 1 : 0;
+
+ if (_globalFlags.generalWalkthroughMode == 1) {
+ _globalFlags.cgSmithyStatus = 6;
+ _globalFlags.cgTapestryFlag = 1;
}
}
// Environment-specific
if (environment == 4) {
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().scoreEnteredKeep = 1;
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().cgMBVisited = 1;
+ _globalFlags.scoreEnteredKeep = 1;
+ _globalFlags.cgMBVisited = 1;
} else if (environment == 6) {
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().cgKCVisited = 1;
+ _globalFlags.cgKCVisited = 1;
} else if (environment == 10) {
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().scoreEnteredTreasureRoom = 1;
- ((SceneViewWindow *)viewWindow)->getGlobalFlags().cgTRVisited = 1;
+ _globalFlags.scoreEnteredTreasureRoom = 1;
+ _globalFlags.cgTRVisited = 1;
}
return true;
@@ -1226,7 +1231,7 @@ SceneBase *SceneViewWindow::constructCastleSceneObject(Window *viewWindow, const
case 33:
return new OneShotEntryVideoWarning(_vm, viewWindow, sceneStaticData, priorLocation, _vm->isDemo() ? 2 : 6, offsetof(GlobalFlags, cgBaileyOneWayGuard), IDS_HUMAN_PRESENCE_10METERS);
case 34:
- return new CycleEntryVideoWarning(_vm, viewWindow, sceneStaticData, priorLocation, _vm->isDemo() ? 5 : 7, _vm->isDemo() ? 6 : 8, offsetof(GlobalFlags, cgBaileyTwoWayGuards), IDS_HUMAN_PRESENCE_10METERS);
+ return new CycleEntryVideoWarning(_vm, viewWindow, sceneStaticData, priorLocation, _vm->isDemo() ? 5 : 7, _vm->isDemo() ? 6 : 8, IDS_HUMAN_PRESENCE_10METERS);
case 35:
return new ClickPlayVideoSwitch(_vm, viewWindow, sceneStaticData, priorLocation, 3, kCursorFinger, offsetof(GlobalFlags, cgTapestryFlag), 0, 0, 330, 189);
case 36:
@@ -1234,9 +1239,9 @@ SceneBase *SceneViewWindow::constructCastleSceneObject(Window *viewWindow, const
case 37:
return new GenericItemAcquire(_vm, viewWindow, sceneStaticData, priorLocation, 175, 64, 237, 126, kItemBurnedLetter, 84, offsetof(GlobalFlags, cgBurnedLetterPresent));
case 38:
- return new StorageRoomCheckUnlock(_vm, viewWindow, sceneStaticData, priorLocation, offsetof(GlobalFlags, cgTapestryFlag), kItemCopperKey, 51, 1, 2, 1, 258, 100, 320, 185);
+ return new StorageRoomCheckUnlock(_vm, viewWindow, sceneStaticData, priorLocation, kItemCopperKey, 51, 1, 2, 1, 258, 100, 320, 185);
case 39:
- return new StorageRoomDoor(_vm, viewWindow, sceneStaticData, priorLocation, 38, 0, 386, 189, 1, 9, 5, 2, 1, 1, offsetof(GlobalFlags, cgStorageRoomVisit), 11, 130, 12, 0);
+ return new StorageRoomDoor(_vm, viewWindow, sceneStaticData, priorLocation, 38, 0, 386, 189, 1, 9, 5, 2, 1, 1, 11, 130, 12, 0);
case 41:
return new OpenFirstItemAcquire(_vm, viewWindow, sceneStaticData, priorLocation, 138, 32, 288, 107, 175, 65, 226, 90, 2, 1, kItemGoldCoins, 34, 35, offsetof(GlobalFlags, cgGoldCoinsPresent));
case 42:
@@ -1254,7 +1259,7 @@ SceneBase *SceneViewWindow::constructCastleSceneObject(Window *viewWindow, const
case 48:
return new KingsChamberGuardEncounter(_vm, viewWindow, sceneStaticData, priorLocation);
case 50:
- return new ClickPlaySoundSynchronous(_vm, viewWindow, sceneStaticData, priorLocation, offsetof(GlobalFlags, cgTSTriedDoorA), 14, kCursorFinger, 72, 0, 372, 189);
+ return new ClickPlaySoundSynchronous(_vm, viewWindow, sceneStaticData, priorLocation, 14, kCursorFinger, 72, 0, 372, 189);
case 51:
return new ClickZoom(_vm, viewWindow, sceneStaticData, priorLocation, 5, 36, 6, 12, kCursorMagnifyingGlass, 0, 0, 432, 189);
case 52:
diff --git a/engines/buried/environ/future_apartment.cpp b/engines/buried/environ/future_apartment.cpp
index fc3f54ed30b..0fbc9bed74d 100644
--- a/engines/buried/environ/future_apartment.cpp
+++ b/engines/buried/environ/future_apartment.cpp
@@ -40,7 +40,7 @@ namespace Buried {
class OvenDoor : public SceneBase {
public:
OvenDoor(BuriedEngine *vm, Window *viewWindow, const LocationStaticData &sceneStaticData, const Location &priorLocation,
- int openAnimID = 0, int closeAnimID = 0, int openFrame = 0, int closedFrame = 0, int flagOffset = 0,
+ int openAnimID = 0, int closeAnimID = 0, int openFrame = 0, int closedFrame = 0,
int left = 0, int top = 0, int right = 0, int bottom = 0);
int postExitRoom(Window *viewWindow, const Location &newLocation) override;
int mouseUp(Window *viewWindow, const Common::Point &pointLocation) override;
@@ -51,43 +51,52 @@ private:
int _closeAnimationID;
int _openFrame;
int _closedFrame;
- int _flagOffset;
Common::Rect _clickableRegion;
};
OvenDoor::OvenDoor(BuriedEngine *vm, Window *viewWindow, const LocationStaticData &sceneStaticData, const Location &priorLocation,
- int openAnimID, int closeAnimID, int openFrame, int closedFrame, int flagOffset,
+ int openAnimID, int closeAnimID, int openFrame, int closedFrame,
int left, int top, int right, int bottom) :
SceneBase(vm, viewWindow, sceneStaticData, priorLocation) {
+ SceneViewWindow *sceneView = ((SceneViewWindow *)viewWindow);
+ GlobalFlags &globalFlags = sceneView->getGlobalFlags();
+
_openAnimationID = openAnimID;
_closeAnimationID = closeAnimID;
_openFrame = openFrame;
_closedFrame = closedFrame;
- _flagOffset = flagOffset;
_clickableRegion = Common::Rect(left, top, right, bottom);
- if (((SceneViewWindow *)viewWindow)->getGlobalFlagByte(_flagOffset) == 1)
+ if (globalFlags.faKIOvenStatus == 1)
_staticData.navFrameIndex = _openFrame;
else
_staticData.navFrameIndex = _closedFrame;
}
int OvenDoor::postExitRoom(Window *viewWindow, const Location &newLocation) {
- if ((newLocation.orientation == 0 || newLocation.facing != _staticData.location.facing || newLocation.node != _staticData.location.node) && ((SceneViewWindow *)viewWindow)->getGlobalFlagByte(_flagOffset) == 1) {
+ SceneViewWindow *sceneView = ((SceneViewWindow *)viewWindow);
+ GlobalFlags &globalFlags = sceneView->getGlobalFlags();
+
+ if ((newLocation.orientation == 0 ||
+ newLocation.facing != _staticData.location.facing ||
+ newLocation.node != _staticData.location.node) && globalFlags.faKIOvenStatus == 1) {
if (_staticData.location.timeZone == newLocation.timeZone)
_vm->_sound->playSoundEffect(_vm->getFilePath(_staticData.location.timeZone, _staticData.location.environment, 7));
- ((SceneViewWindow *)viewWindow)->setGlobalFlagByte(_flagOffset, 0);
+ globalFlags.faKIOvenStatus = 0;
}
return SC_TRUE;
}
int OvenDoor::mouseUp(Window *viewWindow, const Common::Point &pointLocation) {
+ SceneViewWindow *sceneView = ((SceneViewWindow *)viewWindow);
+ GlobalFlags &globalFlags = sceneView->getGlobalFlags();
+
if (_clickableRegion.contains(pointLocation)) {
- if (((SceneViewWindow *)viewWindow)->getGlobalFlagByte(_flagOffset) == 1) {
+ if (globalFlags.faKIOvenStatus == 1) {
// Change the flag status
- ((SceneViewWindow *)viewWindow)->setGlobalFlagByte(_flagOffset, 0);
+ globalFlags.faKIOvenStatus = 0;
// Play the specified animation
((SceneViewWindow *)viewWindow)->playSynchronousAnimation(_closeAnimationID);
@@ -96,7 +105,7 @@ int OvenDoor::mouseUp(Window *viewWindow, const Common::Point &pointLocation) {
return SC_TRUE;
} else {
// Change the flag status
- ((SceneViewWindow *)viewWindow)->setGlobalFlagByte(_flagOffset, 1);
+ globalFlags.faKIOvenStatus = 1;
// Play the specified animation
((SceneViewWindow *)viewWindow)->playSynchronousAnimation(_openAnimationID);
@@ -1955,9 +1964,9 @@ SceneBase *SceneViewWindow::constructFutureApartmentSceneObject(Window *viewWind
case 2:
return new ClickPlayVideoSwitchAI(_vm, viewWindow, sceneStaticData, priorLocation, 1, kCursorFinger, offsetof(GlobalFlags, faKIBirdsBobbed), 150, 40, 260, 164);
case 3:
- return new OvenDoor(_vm, viewWindow, sceneStaticData, priorLocation, 2, 3, 37, 25, offsetof(GlobalFlags, faKIOvenStatus), 0, 0, 270, 80);
+ return new OvenDoor(_vm, viewWindow, sceneStaticData, priorLocation, 2, 3, 37, 25, 0, 0, 270, 80);
case 4:
- return new OvenDoor(_vm, viewWindow, sceneStaticData, priorLocation, 4, 5, 38, 26, offsetof(GlobalFlags, faKIOvenStatus), 0, 50, 300, 189);
+ return new OvenDoor(_vm, viewWindow, sceneStaticData, priorLocation, 4, 5, 38, 26, 0, 50, 300, 189);
case 5:
return new KitchenUnitTurnOn(_vm, viewWindow, sceneStaticData, priorLocation);
case 6:
diff --git a/engines/buried/environ/scene_common.cpp b/engines/buried/environ/scene_common.cpp
index bf40f56f30d..5474091afe2 100644
--- a/engines/buried/environ/scene_common.cpp
+++ b/engines/buried/environ/scene_common.cpp
@@ -833,23 +833,25 @@ DisableForwardMovement::DisableForwardMovement(BuriedEngine *vm, Window *viewWin
}
CycleEntryVideoWarning::CycleEntryVideoWarning(BuriedEngine *vm, Window *viewWindow, const LocationStaticData &sceneStaticData, const Location &priorLocation,
- int animIDA, int animIDB, int flagOffset, int warningMessageID) : SceneBase(vm, viewWindow, sceneStaticData, priorLocation) {
+ int animIDA, int animIDB, int warningMessageID) : SceneBase(vm, viewWindow, sceneStaticData, priorLocation) {
_animIDA = animIDA;
_animIDB = animIDB;
- _flagOffset = flagOffset;
_warningMessageID = warningMessageID;
}
int CycleEntryVideoWarning::postEnterRoom(Window *viewWindow, const Location &priorLocation) {
+ SceneViewWindow *sceneView = ((SceneViewWindow *)viewWindow);
+ GlobalFlags &globalFlags = sceneView->getGlobalFlags();
+
if (_warningMessageID >= 0)
((SceneViewWindow *)viewWindow)->displayLiveText(_vm->getString(_warningMessageID));
- if (((SceneViewWindow *)viewWindow)->getGlobalFlagByte(_flagOffset) == 0) {
+ if (globalFlags.cgBaileyTwoWayGuards == 0) {
((SceneViewWindow *)viewWindow)->playSynchronousAnimation(_animIDA);
- ((SceneViewWindow *)viewWindow)->setGlobalFlagByte(_flagOffset, 1);
+ globalFlags.cgBaileyTwoWayGuards = 1;
} else {
((SceneViewWindow *)viewWindow)->playSynchronousAnimation(_animIDB);
- ((SceneViewWindow *)viewWindow)->setGlobalFlagByte(_flagOffset, 0);
+ globalFlags.cgBaileyTwoWayGuards = 0;
}
return SC_TRUE;
@@ -1253,20 +1255,21 @@ int BrowseBook::textTranslated(Window *viewWindow) {
}
ClickPlaySoundSynchronous::ClickPlaySoundSynchronous(BuriedEngine *vm, Window *viewWindow, const LocationStaticData &sceneStaticData, const Location &priorLocation,
- int flagOffset, int soundID, int cursorID, int left, int top, int right, int bottom) :
+ int soundID, int cursorID, int left, int top, int right, int bottom) :
SceneBase(vm, viewWindow, sceneStaticData, priorLocation) {
_cursorID = cursorID;
_soundID = soundID;
_clickRegion = Common::Rect(left, top, right, bottom);
- _flagOffset = flagOffset;
}
int ClickPlaySoundSynchronous::mouseUp(Window *viewWindow, const Common::Point &pointLocation) {
+ SceneViewWindow *sceneView = ((SceneViewWindow *)viewWindow);
+ GlobalFlags &globalFlags = sceneView->getGlobalFlags();
+
if (_clickRegion.contains(pointLocation)) {
_vm->_sound->playSynchronousSoundEffect(_vm->getFilePath(_staticData.location.timeZone, _staticData.location.environment, _soundID), 127);
- if (_flagOffset >= 0)
- ((SceneViewWindow *)viewWindow)->setGlobalFlagByte(_flagOffset, 1);
+ globalFlags.cgTSTriedDoorA = 1;
if (((GameUIWindow *)viewWindow->getParent())->_inventoryWindow->isItemInInventory(kItemBioChipAI))
((SceneViewWindow *)viewWindow)->playAIComment(_staticData.location, AI_COMMENT_TYPE_SPONTANEOUS);
diff --git a/engines/buried/environ/scene_common.h b/engines/buried/environ/scene_common.h
index 7b2627b15be..d1a5fe304dd 100644
--- a/engines/buried/environ/scene_common.h
+++ b/engines/buried/environ/scene_common.h
@@ -283,13 +283,12 @@ public:
class CycleEntryVideoWarning : public SceneBase {
public:
CycleEntryVideoWarning(BuriedEngine *vm, Window *viewWindow, const LocationStaticData &sceneStaticData, const Location &priorLocation,
- int animIDA = 0, int animIDB = 0, int flagOffset = 0, int warningMessageID = -1);
+ int animIDA = 0, int animIDB = 0, int warningMessageID = -1);
int postEnterRoom(Window *viewWindow, const Location &priorLocation);
private:
int _animIDA;
int _animIDB;
- int _flagOffset;
int _warningMessageID;
};
@@ -396,7 +395,7 @@ private:
class ClickPlaySoundSynchronous : public SceneBase {
public:
ClickPlaySoundSynchronous(BuriedEngine *vm, Window *viewWindow, const LocationStaticData &sceneStaticData, const Location &priorLocation,
- int flagOffset = -1, int soundID = 0, int cursorID = 0, int left = 0, int top = 0, int right = 0, int bottom = 0);
+ int soundID = 0, int cursorID = 0, int left = 0, int top = 0, int right = 0, int bottom = 0);
int mouseUp(Window *viewWindow, const Common::Point &pointLocation);
int specifyCursor(Window *viewWindow, const Common::Point &pointLocation);
@@ -404,7 +403,6 @@ private:
int _cursorID;
int _soundID;
Common::Rect _clickRegion;
- int _flagOffset;
};
class TrialRecallScene : public SceneBase {
Commit: 85123819a88aed53b6e905fbb70ff2c88f2ee28a
https://github.com/scummvm/scummvm/commit/85123819a88aed53b6e905fbb70ff2c88f2ee28a
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2021-12-30T17:15:31+02:00
Commit Message:
BURIED: Remove unused global flag access methods
Changed paths:
engines/buried/scene_view.cpp
engines/buried/scene_view.h
diff --git a/engines/buried/scene_view.cpp b/engines/buried/scene_view.cpp
index 25d6f1a8641..484cbbfa23f 100644
--- a/engines/buried/scene_view.cpp
+++ b/engines/buried/scene_view.cpp
@@ -1436,12 +1436,6 @@ bool SceneViewWindow::closeCycleFrameMovie() {
return true;
}
-int SceneViewWindow::getGlobalFlag(int offset) {
- // TODO: Verify the offset
- const byte *data = (const byte *)&_globalFlags;
- return READ_UINT16(data + offset);
-}
-
byte SceneViewWindow::getGlobalFlagByte(int offset) {
// TODO: Verify the offset
@@ -1452,14 +1446,6 @@ byte SceneViewWindow::getGlobalFlagByte(int offset) {
return data[offset];
}
-bool SceneViewWindow::setGlobalFlag(int offset, int value) {
- // TODO: Verify the offset
-
- byte *data = (byte *)&_globalFlags;
- WRITE_UINT16(data + offset, value);
- return true;
-}
-
bool SceneViewWindow::setGlobalFlagByte(int offset, byte value) {
// TODO: Verify the offset
diff --git a/engines/buried/scene_view.h b/engines/buried/scene_view.h
index 69b87867274..340b95dccb8 100644
--- a/engines/buried/scene_view.h
+++ b/engines/buried/scene_view.h
@@ -98,9 +98,7 @@ public:
bool isCyclingEnabled() const { return _cycleEnabled || _forceCycleEnabled; }
bool closeCycleFrameMovie();
- int getGlobalFlag(int offset);
byte getGlobalFlagByte(int offset);
- bool setGlobalFlag(int offset, int value);
bool setGlobalFlagByte(int offset, byte value);
bool setGlobalFlagDWord(int offset, uint32 value);
uint32 getGlobalFlagDWord(int offset);
More information about the Scummvm-git-logs
mailing list