aboutsummaryrefslogtreecommitdiff
path: root/engines/illusions/updatefunctions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/illusions/updatefunctions.cpp')
-rw-r--r--engines/illusions/updatefunctions.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/engines/illusions/updatefunctions.cpp b/engines/illusions/updatefunctions.cpp
index 7317508249..ae14a0ccab 100644
--- a/engines/illusions/updatefunctions.cpp
+++ b/engines/illusions/updatefunctions.cpp
@@ -35,8 +35,9 @@ UpdateFunctions::UpdateFunctions() {
UpdateFunctions::~UpdateFunctions() {
// Free update functions
- for (UpdateFunctionListIterator it = _updateFunctions.begin(); it != _updateFunctions.end(); ++it)
+ for (UpdateFunctionListIterator it = _updateFunctions.begin(); it != _updateFunctions.end(); ++it) {
delete *it;
+ }
}
void UpdateFunctions::add(int priority, uint32 sceneId, UpdateFunctionCallback *callback) {
@@ -51,8 +52,9 @@ void UpdateFunctions::add(int priority, uint32 sceneId, UpdateFunctionCallback *
void UpdateFunctions::update() {
// Avoid running updates multiple times in the current time slice
- while (_lastTimerUpdateTime == getCurrentTime())
+ while (_lastTimerUpdateTime == getCurrentTime()) {
g_system->delayMillis(10); // CHECKME Timer resolution
+ }
_lastTimerUpdateTime = getCurrentTime();
UpdateFunctionListIterator it = _updateFunctions.begin();
while (it != _updateFunctions.end()) {
@@ -72,9 +74,10 @@ void UpdateFunctions::update() {
}
void UpdateFunctions::terminateByScene(uint32 sceneId) {
- for (UpdateFunctionListIterator it = _updateFunctions.begin(); it != _updateFunctions.end(); ++it)
+ for (UpdateFunctionListIterator it = _updateFunctions.begin(); it != _updateFunctions.end(); ++it) {
if ((*it)->_sceneId == sceneId)
(*it)->terminate();
+ }
}
} // End of namespace Illusions