aboutsummaryrefslogtreecommitdiff
path: root/engines/mads
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mads')
-rw-r--r--engines/mads/game.cpp1
-rw-r--r--engines/mads/game.h1
-rw-r--r--engines/mads/scene.cpp4
-rw-r--r--engines/mads/scene.h2
-rw-r--r--engines/mads/screen.cpp13
-rw-r--r--engines/mads/screen.h1
-rw-r--r--engines/mads/user_interface.cpp4
7 files changed, 18 insertions, 8 deletions
diff --git a/engines/mads/game.cpp b/engines/mads/game.cpp
index 2b42080d35..2736e77ef6 100644
--- a/engines/mads/game.cpp
+++ b/engines/mads/game.cpp
@@ -60,7 +60,6 @@ Game::Game(MADSEngine *vm): _vm(vm), _surface(nullptr), _objects(vm),
_anyEmergency = false;
_triggerMode = KERNEL_TRIGGER_PARSER;
_triggerSetupMode = KERNEL_TRIGGER_PARSER;
- _ticksExpiry = 0;
_winStatus = 0;
// Load the inventory object list
diff --git a/engines/mads/game.h b/engines/mads/game.h
index 54aef443a6..f41e7d248c 100644
--- a/engines/mads/game.h
+++ b/engines/mads/game.h
@@ -138,7 +138,6 @@ public:
TriggerMode _triggerSetupMode;
uint32 _priorFrameTimer;
Common::String _aaName;
- uint32 _ticksExpiry;
int _winStatus;
public:
virtual ~Game();
diff --git a/engines/mads/scene.cpp b/engines/mads/scene.cpp
index 71e6873de5..d37834ab55 100644
--- a/engines/mads/scene.cpp
+++ b/engines/mads/scene.cpp
@@ -582,4 +582,8 @@ void Scene::resetScene() {
_sequences.clear();
}
+void Scene::backgroundAnimation() {
+ warning("TODO: Scene::backgroundAnimation");
+}
+
} // End of namespace MADS
diff --git a/engines/mads/scene.h b/engines/mads/scene.h
index 1caba12851..1b0c9c9388 100644
--- a/engines/mads/scene.h
+++ b/engines/mads/scene.h
@@ -210,6 +210,8 @@ public:
void changeDepthSurface(int arg1);
void resetScene();
+
+ void backgroundAnimation();
};
} // End of namespace MADS
diff --git a/engines/mads/screen.cpp b/engines/mads/screen.cpp
index 8bb17d30a6..391ba71eeb 100644
--- a/engines/mads/screen.cpp
+++ b/engines/mads/screen.cpp
@@ -266,6 +266,7 @@ ScreenObjects::ScreenObjects(MADSEngine *vm) : _vm(vm) {
_scrollerY = -1;
_milliTime = 0;
_eventFlag = false;
+ _baseTime = 0;
}
void ScreenObjects::add(const Common::Rect &bounds, Layer layer, ScrCategory category, int descId) {
@@ -343,7 +344,7 @@ void ScreenObjects::check(bool scanFlag) {
scene._action.refresh();
uint32 currentTicks = _vm->_events->getFrameCounter();
- if (currentTicks >= _vm->_game->_ticksExpiry) {
+ if (currentTicks >= _baseTime) {
// Check the user interface slots to see if there's any slots that need to be expired
UISlots &uiSlots = userInterface._uiSlots;
for (uint idx = 0; idx < uiSlots.size(); ++idx) {
@@ -354,12 +355,16 @@ void ScreenObjects::check(bool scanFlag) {
slot._slotType = ST_EXPIRED;
}
+ // TODO: The stuff here could probably be moved to Scene::doFrame
+ // Any background animation
+ scene.backgroundAnimation();
+
// Handle animating the selected inventory animation
userInterface.inventoryAnim();
- // Set the next frame expiry
- _vm->_game->_ticksExpiry = currentTicks + 6;
- }
+ // Set the base time
+ _baseTime = currentTicks + 6;
+ }
}
int ScreenObjects::scanBackwards(const Common::Point &pt, int layer) {
diff --git a/engines/mads/screen.h b/engines/mads/screen.h
index c733452aa2..d292a7a7d7 100644
--- a/engines/mads/screen.h
+++ b/engines/mads/screen.h
@@ -161,6 +161,7 @@ public:
int _uiCount;
uint32 _milliTime;
bool _eventFlag;
+ uint32 _baseTime;
/*
* Constructor
diff --git a/engines/mads/user_interface.cpp b/engines/mads/user_interface.cpp
index d0139e2897..2cd1662077 100644
--- a/engines/mads/user_interface.cpp
+++ b/engines/mads/user_interface.cpp
@@ -264,7 +264,7 @@ void UserInterface::setup(int id) {
scene._userInterface._uiSlots.clear();
scene._userInterface._uiSlots.fullRefresh();
- _vm->_game->_ticksExpiry = _vm->_events->getFrameCounter();
+ _vm->_game->_screenObjects._baseTime = _vm->_events->getFrameCounter();
_highlightedCommandIndex = -1;
_highlightedActionIndex = -1;
_highlightedItemIndex = -1;
@@ -590,7 +590,7 @@ void UserInterface::noInventoryAnim() {
if (_invSpritesIndex >= 0) {
scene._sprites.remove(_invSpritesIndex);
- _vm->_game->_ticksExpiry = _vm->_events->getFrameCounter();
+ _vm->_game->_screenObjects._baseTime = _vm->_events->getFrameCounter();
_invSpritesIndex = -1;
}