[Scummvm-git-logs] scummvm master -> 831087f77720574e4e3491b55a8fcd4d05607809
aquadran
noreply at scummvm.org
Wed Sep 3 19:22:17 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
831087f777 WINTERMUTE: Restore original code related timer
Commit: 831087f77720574e4e3491b55a8fcd4d05607809
https://github.com/scummvm/scummvm/commit/831087f77720574e4e3491b55a8fcd4d05607809
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2025-09-03T21:22:12+02:00
Commit Message:
WINTERMUTE: Restore original code related timer
Changed paths:
R engines/wintermute/base/timer.cpp
R engines/wintermute/base/timer.h
engines/wintermute/ad/ad_actor.cpp
engines/wintermute/ad/ad_actor_3dx.cpp
engines/wintermute/ad/ad_entity.cpp
engines/wintermute/ad/ad_item.cpp
engines/wintermute/ad/ad_object.cpp
engines/wintermute/ad/ad_scene.cpp
engines/wintermute/ad/ad_sentence.cpp
engines/wintermute/base/base_engine.cpp
engines/wintermute/base/base_fader.cpp
engines/wintermute/base/base_game.cpp
engines/wintermute/base/base_game.h
engines/wintermute/base/base_sprite.cpp
engines/wintermute/base/base_surface_storage.cpp
engines/wintermute/base/gfx/base_surface.cpp
engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
engines/wintermute/base/particles/part_emitter.cpp
engines/wintermute/base/scriptables/script.cpp
engines/wintermute/base/scriptables/script_engine.cpp
engines/wintermute/module.mk
engines/wintermute/video/video_theora_player.cpp
diff --git a/engines/wintermute/ad/ad_actor.cpp b/engines/wintermute/ad/ad_actor.cpp
index 4fda047016b..4296087c18c 100644
--- a/engines/wintermute/ad/ad_actor.cpp
+++ b/engines/wintermute/ad/ad_actor.cpp
@@ -755,7 +755,7 @@ bool AdActor::update() {
_tempSprite2 = _sentence->_currentSprite;
}
- bool timeIsUp = (_sentence->_sound && _sentence->_soundStarted && (!_sentence->_sound->isPlaying() && !_sentence->_sound->isPaused())) || (!_sentence->_sound && _sentence->_duration <= _game->getTimer()->getTime() - _sentence->_startTime);
+ bool timeIsUp = (_sentence->_sound && _sentence->_soundStarted && (!_sentence->_sound->isPlaying() && !_sentence->_sound->isPaused())) || (!_sentence->_sound && _sentence->_duration <= _game->_timer - _sentence->_startTime);
if (_tempSprite2 == nullptr || _tempSprite2->_finished || (/*_tempSprite2->_looping &&*/ timeIsUp)) {
if (timeIsUp) {
_sentence->finish();
diff --git a/engines/wintermute/ad/ad_actor_3dx.cpp b/engines/wintermute/ad/ad_actor_3dx.cpp
index 9de4eb36201..e482d6be673 100644
--- a/engines/wintermute/ad/ad_actor_3dx.cpp
+++ b/engines/wintermute/ad/ad_actor_3dx.cpp
@@ -288,7 +288,7 @@ bool AdActor3DX::update() {
_tempSkelAnim = _sentence->_currentSkelAnim;
}
- bool timeIsUp = (_sentence->_sound && _sentence->_soundStarted && (!_sentence->_sound->isPlaying() && !_sentence->_sound->isPaused())) || (!_sentence->_sound && _sentence->_duration <= _game->getTimer()->getTime() - _sentence->_startTime);
+ bool timeIsUp = (_sentence->_sound && _sentence->_soundStarted && (!_sentence->_sound->isPlaying() && !_sentence->_sound->isPaused())) || (!_sentence->_sound && _sentence->_duration <= _game->_timer - _sentence->_startTime);
if (_tempSkelAnim == nullptr || !_xmodel->isAnimPending(0, _tempSkelAnim) || timeIsUp) {
if (timeIsUp) {
_sentence->finish();
diff --git a/engines/wintermute/ad/ad_entity.cpp b/engines/wintermute/ad/ad_entity.cpp
index 7343c8172b5..f75129bf6ce 100644
--- a/engines/wintermute/ad/ad_entity.cpp
+++ b/engines/wintermute/ad/ad_entity.cpp
@@ -650,7 +650,7 @@ bool AdEntity::update() {
_tempSprite2 = _sentence->_currentSprite;
}
- bool timeIsUp = (_sentence->_sound && _sentence->_soundStarted && (!_sentence->_sound->isPlaying() && !_sentence->_sound->isPaused())) || (!_sentence->_sound && _sentence->_duration <= _game->getTimer()->getTime() - _sentence->_startTime);
+ bool timeIsUp = (_sentence->_sound && _sentence->_soundStarted && (!_sentence->_sound->isPlaying() && !_sentence->_sound->isPaused())) || (!_sentence->_sound && _sentence->_duration <= _game->_timer - _sentence->_startTime);
if (_tempSprite2 == nullptr || _tempSprite2->_finished || (/*_tempSprite2->_looping &&*/ timeIsUp)) {
if (timeIsUp) {
_sentence->finish();
diff --git a/engines/wintermute/ad/ad_item.cpp b/engines/wintermute/ad/ad_item.cpp
index 43f803afb4b..e22fa57ca1a 100644
--- a/engines/wintermute/ad/ad_item.cpp
+++ b/engines/wintermute/ad/ad_item.cpp
@@ -375,7 +375,7 @@ bool AdItem::update() {
_tempSprite2 = _sentence->_currentSprite;
}
- bool timeIsUp = (_sentence->_sound && _sentence->_soundStarted && (!_sentence->_sound->isPlaying() && !_sentence->_sound->isPaused())) || (!_sentence->_sound && _sentence->_duration <= _game->getTimer()->getTime() - _sentence->_startTime);
+ bool timeIsUp = (_sentence->_sound && _sentence->_soundStarted && (!_sentence->_sound->isPlaying() && !_sentence->_sound->isPaused())) || (!_sentence->_sound && _sentence->_duration <= _game->_timer - _sentence->_startTime);
if (_tempSprite2 == nullptr || _tempSprite2->_finished || (/*_tempSprite2->_looping &&*/ timeIsUp)) {
if (timeIsUp) {
_sentence->finish();
diff --git a/engines/wintermute/ad/ad_object.cpp b/engines/wintermute/ad/ad_object.cpp
index 1c87279fb81..db2afd5c4cf 100644
--- a/engines/wintermute/ad/ad_object.cpp
+++ b/engines/wintermute/ad/ad_object.cpp
@@ -870,7 +870,7 @@ int32 AdObject::getHeight() {
}
//////////////////////////////////////////////////////////////////////////
-void AdObject::talk(const char *text, const char *sound, uint32 duration, const char *stances, TTextAlign Align) {
+void AdObject::talk(const char *text, const char *sound, uint32 duration, const char *stances, TTextAlign align) {
if (!_sentence) {
_sentence = new AdSentence(_game);
}
@@ -889,8 +889,8 @@ void AdObject::talk(const char *text, const char *sound, uint32 duration, const
_game->expandStringByStringTable(&_sentence->_text);
_sentence->setStances(stances);
_sentence->_duration = duration;
- _sentence->_align = Align;
- _sentence->_startTime = _game->getTimer()->getTime();
+ _sentence->_align = align;
+ _sentence->_startTime = _game->_timer;
_sentence->_currentStance = -1;
_sentence->_font = _font == nullptr ? _game->_systemFont : _font;
_sentence->_freezable = _freezable;
diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp
index 9c1258bec3b..e8ecb3b89d2 100644
--- a/engines/wintermute/ad/ad_scene.cpp
+++ b/engines/wintermute/ad/ad_scene.cpp
@@ -1091,15 +1091,15 @@ bool AdScene::traverseNodes(bool doUpdate) {
if (_autoScroll) {
// adjust horizontal scroll
- if (_game->getTimer()->getTime() - _lastTimeH >= _scrollTimeH) {
+ if (_game->_timer - _lastTimeH >= _scrollTimeH) {
// Cap the amount of catch-up to avoid jittery characters.
- int timesMissed = (_game->getTimer()->getTime() - _lastTimeH) / _scrollTimeH;
+ int timesMissed = (_game->_timer - _lastTimeH) / _scrollTimeH;
if (timesMissed > 2) {
timesMissed = 2;
}
- _lastTimeH = _game->getTimer()->getTime();
+ _lastTimeH = _game->_timer;
if (_offsetLeft < _targetOffsetLeft) {
_offsetLeft += _scrollPixelsH * timesMissed;
_offsetLeft = MIN(_offsetLeft, _targetOffsetLeft);
@@ -1110,15 +1110,15 @@ bool AdScene::traverseNodes(bool doUpdate) {
}
// adjust vertical scroll
- if (_game->getTimer()->getTime() - _lastTimeV >= _scrollTimeV) {
+ if (_game->_timer - _lastTimeV >= _scrollTimeV) {
// Cap the amount of catch-up to avoid jittery characters.
- int timesMissed = (_game->getTimer()->getTime() - _lastTimeV) / _scrollTimeV;
+ int timesMissed = (_game->_timer - _lastTimeV) / _scrollTimeV;
if (timesMissed > 2) {
timesMissed = 2;
}
- _lastTimeV = _game->getTimer()->getTime();
+ _lastTimeV = _game->_timer;
if (_offsetTop < _targetOffsetTop) {
_offsetTop += _scrollPixelsV * timesMissed;
_offsetTop = MIN(_offsetTop, _targetOffsetTop);
diff --git a/engines/wintermute/ad/ad_sentence.cpp b/engines/wintermute/ad/ad_sentence.cpp
index 83894086168..bd8ec04edd1 100644
--- a/engines/wintermute/ad/ad_sentence.cpp
+++ b/engines/wintermute/ad/ad_sentence.cpp
@@ -301,10 +301,10 @@ bool AdSentence::update(TDirection dir) {
// if sound is available, synchronize with sound, otherwise use timer
/*
- if (_sound) CurrentTime = _sound->GetPositionTime();
- else CurrentTime = _game->getTimer()->getTime() - _startTime;
+ if (_sound) currentTime = _sound->getPositionTime();
+ else currentTime = _game->_timer - _startTime;
*/
- currentTime = _game->getTimer()->getTime() - _startTime;
+ currentTime = _game->_timer - _startTime;
bool talkNodeFound = false;
for (int32 i = 0; i < _talkDef->_nodes.getSize(); i++) {
@@ -343,7 +343,7 @@ bool AdSentence::update(TDirection dir) {
//////////////////////////////////////////////////////////////////////////
bool AdSentence::canSkip() {
// prevent accidental sentence skipping (TODO make configurable)
- return (_game->getTimer()->getTime() - _startTime) > 300;
+ return (_game->_timer - _startTime) > 300;
}
} // End of namespace Wintermute
diff --git a/engines/wintermute/base/base_engine.cpp b/engines/wintermute/base/base_engine.cpp
index 44620326074..6848f98eea8 100644
--- a/engines/wintermute/base/base_engine.cpp
+++ b/engines/wintermute/base/base_engine.cpp
@@ -112,20 +112,4 @@ BaseRenderer *BaseEngine::getRenderer() {
}
}
-const Timer *BaseEngine::getTimer() {
- if (instance()._gameRef) {
- return instance()._gameRef->getTimer();
- } else {
- return nullptr;
- }
-}
-
-const Timer *BaseEngine::getLiveTimer() {
- if (instance()._gameRef) {
- return instance()._gameRef->getLiveTimer();
- } else {
- return nullptr;
- }
-}
-
} // End of namespace Wintermute
diff --git a/engines/wintermute/base/base_fader.cpp b/engines/wintermute/base/base_fader.cpp
index 92b51a7492e..0601b1998da 100644
--- a/engines/wintermute/base/base_fader.cpp
+++ b/engines/wintermute/base/base_fader.cpp
@@ -27,7 +27,7 @@
#include "engines/wintermute/base/base_fader.h"
#include "engines/wintermute/base/base_engine.h"
-#include "engines/wintermute/base/timer.h"
+#include "engines/wintermute/base/base_game.h"
#include "engines/wintermute/base/gfx/base_renderer.h"
#include "common/util.h"
@@ -71,7 +71,7 @@ bool BaseFader::update() {
if (_system) {
time = g_system->getMillis() - _startTime;
} else {
- time = BaseEngine::getTimer()->getTime() - _startTime;
+ time = _game->_timer - _startTime;
}
if (time >= _duration) {
@@ -129,7 +129,7 @@ bool BaseFader::fadeIn(uint32 sourceColor, uint32 duration, bool system) {
if (_system) {
_startTime = g_system->getMillis();
} else {
- _startTime = BaseEngine::getTimer()->getTime();
+ _startTime = _game->_timer;
}
return STATUS_OK;
@@ -155,7 +155,7 @@ bool BaseFader::fadeOut(uint32 targetColor, uint32 duration, bool system) {
if (_system) {
_startTime = g_system->getMillis();
} else {
- _startTime = BaseEngine::getTimer()->getTime();
+ _startTime = _game->_timer;
}
diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index 0537b63421b..c5ffb4266db 100644
--- a/engines/wintermute/base/base_game.cpp
+++ b/engines/wintermute/base/base_game.cpp
@@ -99,7 +99,7 @@ IMPLEMENT_PERSISTENT(BaseGame, true)
//////////////////////////////////////////////////////////////////////
-BaseGame::BaseGame(const Common::String &targetName) : BaseObject(this), _targetName(targetName), _timerNormal(), _timerLive() {
+BaseGame::BaseGame(const Common::String &targetName) : BaseObject(this), _targetName(targetName) {
_shuttingDown = false;
_state = GAME_RUNNING;
@@ -144,6 +144,14 @@ BaseGame::BaseGame(const Common::String &targetName) : BaseObject(this), _target
_subtitles = true;
_videoSubtitles = true;
+ _timer = 0;
+ _timerDelta = 0;
+ _timerLast = 0;
+
+ _liveTimer = 0;
+ _liveTimerDelta = 0;
+ _liveTimerLast = 0;
+
_sequence = 0;
_mousePos.x = _mousePos.y = 0;
@@ -695,12 +703,16 @@ bool BaseGame::initLoop() {
_lastTime = _currentTime;
_fpsTime += _deltaTime;
- _timerLive.updateTime(_deltaTime, 1000);
+ _liveTimerDelta = _liveTimer - _liveTimerLast;
+ _liveTimerLast = _liveTimer;
+ _liveTimer += MIN((uint32)1000, _deltaTime);
if (_state != GAME_FROZEN) {
- _timerNormal.updateTime(_deltaTime, 1000);
+ _timerDelta = _timer - _timerLast;
+ _timerLast = _timer;
+ _timer += MIN((uint32)1000, _deltaTime);
} else {
- _timerNormal.setTimeDelta(0);
+ _timerDelta = 0;
}
_framesRendered++;
@@ -1483,7 +1495,7 @@ bool BaseGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
return STATUS_OK;
}
- _musicCrossfadeStartTime = _game->getLiveTimer()->getTime();
+ _musicCrossfadeStartTime = _game->_liveTimer;
_musicCrossfadeChannel1 = channel1;
_musicCrossfadeChannel2 = channel2;
_musicCrossfadeLength = fadeLength;
@@ -1515,7 +1527,7 @@ bool BaseGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
return STATUS_OK;
}
- _musicCrossfadeStartTime = _game->getLiveTimer()->getTime();
+ _musicCrossfadeStartTime = _game->_liveTimer;
_musicCrossfadeChannel1 = channel;
_musicCrossfadeChannel2 = channel;
_musicCrossfadeLength = fadeLength;
@@ -2737,7 +2749,7 @@ ScValue *BaseGame::scGetProperty(const Common::String &name) {
// CurrentTime (RO)
//////////////////////////////////////////////////////////////////////////
else if (name == "CurrentTime") {
- _scValue->setInt((int)getTimer()->getTime());
+ _scValue->setInt((int)_timer);
return _scValue;
}
@@ -4285,7 +4297,7 @@ bool BaseGame::updateMusicCrossfade() {
_music[_musicCrossfadeChannel2]->play();
}
- uint32 currentTime = _game->getLiveTimer()->getTime() - _musicCrossfadeStartTime;
+ uint32 currentTime = _game->_liveTimer - _musicCrossfadeStartTime;
if (currentTime >= _musicCrossfadeLength) {
_musicCrossfadeRunning = false;
@@ -4390,8 +4402,13 @@ bool BaseGame::persist(BasePersistenceManager *persistMgr) {
persistMgr->transferPtr(TMEMBER_PTR(_videoFont));
persistMgr->transferBool(TMEMBER(_videoSubtitles));
- _timerNormal.persist(persistMgr);
- _timerLive.persist(persistMgr);
+ persistMgr->transferUint32(TMEMBER(_timer));
+ persistMgr->transferUint32(TMEMBER(_timerDelta));
+ persistMgr->transferUint32(TMEMBER(_timerLast));
+
+ persistMgr->transferUint32(TMEMBER(_liveTimer));
+ persistMgr->transferUint32(TMEMBER(_liveTimerDelta));
+ persistMgr->transferUint32(TMEMBER(_liveTimerLast));
_renderer->persistSaveLoadImages(persistMgr);
@@ -5101,7 +5118,7 @@ bool BaseGame::displayDebugInfo() {
_systemFont->drawText((byte *)str, 0, 70, _renderer->getWidth(), TAL_RIGHT);
- Common::sprintf_s(str, "Timer: %d", getTimer()->getTime());
+ Common::sprintf_s(str, "Timer: %d", _timer);
_game->_systemFont->drawText((byte *)str, 0, 130, _renderer->getWidth(), TAL_RIGHT);
if (_activeObject != nullptr) {
diff --git a/engines/wintermute/base/base_game.h b/engines/wintermute/base/base_game.h
index a991b8a0b0a..2bcb928ff45 100644
--- a/engines/wintermute/base/base_game.h
+++ b/engines/wintermute/base/base_game.h
@@ -30,7 +30,6 @@
#include "engines/wintermute/base/base_object.h"
#include "engines/wintermute/base/base_game_custom_actions.h"
-#include "engines/wintermute/base/timer.h"
#include "engines/wintermute/ext/plugin_event.h"
#include "engines/wintermute/persistent.h"
#include "engines/wintermute/coll_templ.h"
@@ -305,8 +304,13 @@ public:
TGameState _state;
TGameState _origState;
bool _origInteractive;
- Timer _timerNormal;
- Timer _timerLive;
+ uint32 _timer;
+ uint32 _timerDelta;
+ uint32 _timerLast;
+
+ uint32 _liveTimer;
+ uint32 _liveTimerDelta;
+ uint32 _liveTimerLast;
BaseObject *_capturedObject;
Common::Point32 _mousePos;
@@ -398,8 +402,6 @@ public:
bool getBilinearFiltering() { return _bilinearFiltering; }
void addMem(int32 bytes);
- const Timer *getTimer() const { return &_timerNormal; }
- const Timer *getLiveTimer() const { return &_timerLive; }
void autoSaveOnExit();
PluginEvent &pluginEvents() { return _pluginEvents; }
diff --git a/engines/wintermute/base/base_sprite.cpp b/engines/wintermute/base/base_sprite.cpp
index b63b4fd662f..f5db41df4e0 100644
--- a/engines/wintermute/base/base_sprite.cpp
+++ b/engines/wintermute/base/base_sprite.cpp
@@ -364,9 +364,9 @@ bool BaseSprite::getCurrentFrame(float zoomX, float zoomY) {
uint32 timer;
if (_owner && _owner->_freezable) {
- timer = _game->getTimer()->getTime();
+ timer = _game->_timer;
} else {
- timer = _game->getLiveTimer()->getTime();
+ timer = _game->_liveTimer;
}
int lastFrame = _currentFrame;
diff --git a/engines/wintermute/base/base_surface_storage.cpp b/engines/wintermute/base/base_surface_storage.cpp
index 41ee90f447f..12b1d5f0b54 100644
--- a/engines/wintermute/base/base_surface_storage.cpp
+++ b/engines/wintermute/base/base_surface_storage.cpp
@@ -67,15 +67,15 @@ bool BaseSurfaceStorage::cleanup(bool warn) {
//////////////////////////////////////////////////////////////////////////
bool BaseSurfaceStorage::initLoop() {
- if (_game->_smartCache && _game->getLiveTimer()->getTime() - _lastCleanupTime >= _game->_surfaceGCCycleTime) {
- _lastCleanupTime = _game->getLiveTimer()->getTime();
+ if (_game->_smartCache && _game->_liveTimer - _lastCleanupTime >= _game->_surfaceGCCycleTime) {
+ _lastCleanupTime = _game->_liveTimer;
sortSurfaces();
for (int32 i = 0; i < _surfaces.getSize(); i++) {
if (_surfaces[i]->_lifeTime <= 0) {
break;
}
- if (_surfaces[i]->_lifeTime > 0 && _surfaces[i]->_valid && (int)(_game->getLiveTimer()->getTime() - _surfaces[i]->_lastUsedTime) >= _surfaces[i]->_lifeTime) {
+ if (_surfaces[i]->_lifeTime > 0 && _surfaces[i]->_valid && (int)(_game->_liveTimer - _surfaces[i]->_lastUsedTime) >= _surfaces[i]->_lifeTime) {
//_game->QuickMessageForm("Invalidating: %s", _surfaces[i]->_filename);
_surfaces[i]->invalidate();
}
diff --git a/engines/wintermute/base/gfx/base_surface.cpp b/engines/wintermute/base/gfx/base_surface.cpp
index 3677d2dfe3f..45d03af3301 100644
--- a/engines/wintermute/base/gfx/base_surface.cpp
+++ b/engines/wintermute/base/gfx/base_surface.cpp
@@ -85,7 +85,7 @@ bool BaseSurface::invalidate() {
//////////////////////////////////////////////////////////////////////////
bool BaseSurface::prepareToDraw() {
- _lastUsedTime = _game->getLiveTimer()->getTime();
+ _lastUsedTime = _game->_liveTimer;
if (!_valid) {
//_game->LOG(0, "Reviving: %s", _filename);
diff --git a/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp b/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
index 220971ae9ee..0a5ecfeca5c 100644
--- a/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
+++ b/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
@@ -273,7 +273,7 @@ bool BaseSurfaceOSystem::startPixelOp() {
//////////////////////////////////////////////////////////////////////////
bool BaseSurfaceOSystem::endPixelOp() {
- _lastUsedTime = _game->getLiveTimer()->getTime();
+ _lastUsedTime = _game->_liveTimer;
_pixelOpReady = false;
if (_surfaceModified) {
BaseRenderOSystem *renderer = static_cast<BaseRenderOSystem *>(_game->_renderer);
@@ -332,7 +332,7 @@ bool BaseSurfaceOSystem::displayTiled(int x, int y, Common::Rect32 rect, int num
bool BaseSurfaceOSystem::drawSprite(int x, int y, Common::Rect32 *rect, Common::Rect32 *newRect, Graphics::TransformStruct transform) {
BaseRenderOSystem *renderer = static_cast<BaseRenderOSystem *>(_game->_renderer);
- _lastUsedTime = _game->getLiveTimer()->getTime();
+ _lastUsedTime = _game->_liveTimer;
// TODO: Skip this check if we can reuse an existing ticket?
if (!_valid) {
diff --git a/engines/wintermute/base/particles/part_emitter.cpp b/engines/wintermute/base/particles/part_emitter.cpp
index 73eeb1f58dc..26fc544246a 100644
--- a/engines/wintermute/base/particles/part_emitter.cpp
+++ b/engines/wintermute/base/particles/part_emitter.cpp
@@ -32,9 +32,9 @@
#include "engines/wintermute/base/scriptables/script_value.h"
#include "engines/wintermute/base/scriptables/script_stack.h"
#include "engines/wintermute/base/base_engine.h"
-#include "engines/wintermute/base/timer.h"
#include "engines/wintermute/base/base_region.h"
#include "engines/wintermute/base/base_file_manager.h"
+#include "engines/wintermute/base/base_game.h"
#include "engines/wintermute/base/gfx/base_renderer.h"
#include "engines/wintermute/utils/utils.h"
#include "engines/wintermute/platform_osystem.h"
@@ -252,7 +252,7 @@ bool PartEmitter::update() {
if (!_running) {
return STATUS_OK;
} else {
- return updateInternal(BaseEngine::getTimer()->getTime(), BaseEngine::getTimer()->getTimeDelta());
+ return updateInternal(_game->_timer, _game->_timerDelta);
}
}
@@ -353,7 +353,7 @@ bool PartEmitter::start() {
if (_overheadTime > 0) {
uint32 delta = 500;
int steps = _overheadTime / delta;
- uint32 currentTime = BaseEngine::getTimer()->getTime() - _overheadTime;
+ uint32 currentTime = _game->_timer - _overheadTime;
for (int i = 0; i < steps; i++) {
updateInternal(currentTime, delta);
diff --git a/engines/wintermute/base/scriptables/script.cpp b/engines/wintermute/base/scriptables/script.cpp
index eaea1254a26..2b22184d7f1 100644
--- a/engines/wintermute/base/scriptables/script.cpp
+++ b/engines/wintermute/base/scriptables/script.cpp
@@ -1246,7 +1246,7 @@ bool ScScript::sleep(uint32 duration) {
_waitTime = g_system->getMillis() + duration;
_waitFrozen = true;
} else {
- _waitTime = _game->getTimer()->getTime() + duration;
+ _waitTime = _game->_timer + duration;
_waitFrozen = false;
}
return STATUS_OK;
diff --git a/engines/wintermute/base/scriptables/script_engine.cpp b/engines/wintermute/base/scriptables/script_engine.cpp
index f218f841748..43522ef0b33 100644
--- a/engines/wintermute/base/scriptables/script_engine.cpp
+++ b/engines/wintermute/base/scriptables/script_engine.cpp
@@ -310,7 +310,7 @@ bool ScEngine::tick() {
_scripts[i]->run();
}
} else {
- if (_scripts[i]->_waitTime <= _game->getTimer()->getTime()) {
+ if (_scripts[i]->_waitTime <= _game->_timer) {
_scripts[i]->run();
}
}
diff --git a/engines/wintermute/base/timer.cpp b/engines/wintermute/base/timer.cpp
deleted file mode 100644
index 83a11c5777e..00000000000
--- a/engines/wintermute/base/timer.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-/*
- * This file is based on WME Lite.
- * http://dead-code.org/redir.php?target=wmelite
- * Copyright (c) 2011 Jan Nedoma
- */
-
-#include "engines/wintermute/base/timer.h"
-#include "engines/wintermute/base/base_persistence_manager.h"
-#include "engines/wintermute/persistent.h"
-
-namespace Wintermute {
-Timer::Timer() : _timer(0), _timerDelta(0), _timerLast(0) {
-
-}
-
-void Timer::setTime(uint32 time) {
- _timer = time;
-}
-
-void Timer::setTimeDelta(uint32 timeDelta) {
- _timerDelta = timeDelta;
-}
-
-void Timer::setTimeLast(uint32 timeLast) {
- _timerLast = timeLast;
-}
-
-void Timer::updateTime(uint32 delta, uint32 max) {
- _timerDelta = _timer - _timerLast;
- _timerLast = _timer;
- _timer += MIN((uint32)max, delta);
-}
-
-uint32 Timer::getTime() const {
- return _timer;
-}
-
-uint32 Timer::getTimeDelta() const {
- return _timerDelta;
-}
-
-uint32 Timer::getTimeLast() const {
- return _timerLast;
-}
-
-void Timer::persist(BasePersistenceManager *persistMgr) {
- persistMgr->transferUint32(TMEMBER(_timer));
- persistMgr->transferUint32(TMEMBER(_timerDelta));
- persistMgr->transferUint32(TMEMBER(_timerLast));
-}
-
-} // End of namespace Wintermute
diff --git a/engines/wintermute/base/timer.h b/engines/wintermute/base/timer.h
deleted file mode 100644
index ed89b073798..00000000000
--- a/engines/wintermute/base/timer.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-/*
- * This file is based on WME Lite.
- * http://dead-code.org/redir.php?target=wmelite
- * Copyright (c) 2011 Jan Nedoma
- */
-
-#ifndef WINTERMUTE_TIMER_H
-#define WINTERMUTE_TIMER_H
-
-#include "common/scummsys.h"
-
-namespace Wintermute {
-
-class BasePersistenceManager;
-
-class Timer {
- uint32 _timer;
- uint32 _timerDelta;
- uint32 _timerLast;
-public:
- Timer();
- void setTime(uint32 time);
- void setTimeDelta(uint32 timeDelta);
- void setTimeLast(uint32 timeLast);
- void updateTime(uint32 delta, uint32 max);
- uint32 getTime() const;
- uint32 getTimeDelta() const;
- uint32 getTimeLast() const;
- void persist(BasePersistenceManager *persistMgr);
-};
-
-
-} // End of namespace Wintermute
-
-#endif
diff --git a/engines/wintermute/module.mk b/engines/wintermute/module.mk
index 5aa32084eab..5b082a9e0be 100644
--- a/engines/wintermute/module.mk
+++ b/engines/wintermute/module.mk
@@ -90,7 +90,6 @@ MODULE_OBJS := \
base/base_viewport.o \
base/saveload.o \
base/save_thumb_helper.o \
- base/timer.o \
ext/dll_dlltest.o \
ext/dll_geturl.o \
ext/dll_httpconnect.o \
diff --git a/engines/wintermute/video/video_theora_player.cpp b/engines/wintermute/video/video_theora_player.cpp
index 348885fd43d..57479a4c243 100644
--- a/engines/wintermute/video/video_theora_player.cpp
+++ b/engines/wintermute/video/video_theora_player.cpp
@@ -272,7 +272,7 @@ bool VideoTheoraPlayer::stop() {
//////////////////////////////////////////////////////////////////////////
bool VideoTheoraPlayer::update() {
- _currentTime = _freezeGame ? _game->getLiveTimer()->getTime() : _game->getTimer()->getTime();
+ _currentTime = _freezeGame ? _game->_liveTimer : _game->_timer;
if (!isPlaying()) {
return STATUS_OK;
More information about the Scummvm-git-logs
mailing list