diff options
author | Einar Johan Trøan Sømåen | 2013-04-18 12:10:40 +0200 |
---|---|---|
committer | Einar Johan Trøan Sømåen | 2013-04-18 12:10:40 +0200 |
commit | 8f25b651e8fc05dc29e6ea5fff5eba1c8df78697 (patch) | |
tree | 14bd6bbe7177e586f55c2f83dc458d6508d9e6cc /engines/wintermute/base/base_game.cpp | |
parent | 7ee757366b9aee0e6a59669d263e29b5fe20278e (diff) | |
download | scummvm-rg350-8f25b651e8fc05dc29e6ea5fff5eba1c8df78697.tar.gz scummvm-rg350-8f25b651e8fc05dc29e6ea5fff5eba1c8df78697.tar.bz2 scummvm-rg350-8f25b651e8fc05dc29e6ea5fff5eba1c8df78697.zip |
WINTERMUTE: Split the timers from BaseGame into a separate class.
Diffstat (limited to 'engines/wintermute/base/base_game.cpp')
-rw-r--r-- | engines/wintermute/base/base_game.cpp | 33 |
1 files changed, 8 insertions, 25 deletions
diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp index 9ae44173e4..4f8d099506 100644 --- a/engines/wintermute/base/base_game.cpp +++ b/engines/wintermute/base/base_game.cpp @@ -81,7 +81,7 @@ IMPLEMENT_PERSISTENT(BaseGame, true) ////////////////////////////////////////////////////////////////////// -BaseGame::BaseGame(const Common::String &gameId) : BaseObject(this), _gameId(gameId) { +BaseGame::BaseGame(const Common::String &gameId) : BaseObject(this), _gameId(gameId), _timerNormal(), _timerLive() { _shuttingDown = false; _state = GAME_RUNNING; @@ -122,14 +122,6 @@ BaseGame::BaseGame(const Common::String &gameId) : BaseObject(this), _gameId(gam _subtitles = true; _videoSubtitles = true; - _timer = 0; - _timerDelta = 0; - _timerLast = 0; - - _liveTimer = 0; - _liveTimerDelta = 0; - _liveTimerLast = 0; - _sequence = 0; _mousePos.x = _mousePos.y = 0; @@ -561,16 +553,12 @@ bool BaseGame::initLoop() { _lastTime = _currentTime; _fpsTime += _deltaTime; - _liveTimerDelta = _liveTimer - _liveTimerLast; - _liveTimerLast = _liveTimer; - _liveTimer += MIN((uint32)1000, _deltaTime); + _timerLive.updateTime(_deltaTime, 1000); if (_state != GAME_FROZEN) { - _timerDelta = _timer - _timerLast; - _timerLast = _timer; - _timer += MIN((uint32)1000, _deltaTime); + _timerNormal.updateTime(_deltaTime, 1000); } else { - _timerDelta = 0; + _timerNormal.setTimeDelta(0); } _framesRendered++; @@ -1985,7 +1973,7 @@ ScValue *BaseGame::scGetProperty(const Common::String &name) { // CurrentTime (RO) ////////////////////////////////////////////////////////////////////////// else if (name == "CurrentTime") { - _scValue->setInt((int)_timer); + _scValue->setInt((int)getTimer()->getTime()); return _scValue; } @@ -3104,13 +3092,8 @@ bool BaseGame::persist(BasePersistenceManager *persistMgr) { persistMgr->transfer(TMEMBER(_videoFont)); persistMgr->transfer(TMEMBER(_videoSubtitles)); - persistMgr->transfer(TMEMBER(_timer)); - persistMgr->transfer(TMEMBER(_timerDelta)); - persistMgr->transfer(TMEMBER(_timerLast)); - - persistMgr->transfer(TMEMBER(_liveTimer)); - persistMgr->transfer(TMEMBER(_liveTimerDelta)); - persistMgr->transfer(TMEMBER(_liveTimerLast)); + _timerNormal.persist(persistMgr); + _timerLive.persist(persistMgr); _renderer->persistSaveLoadImages(persistMgr); @@ -3777,7 +3760,7 @@ bool BaseGame::displayDebugInfo() { _systemFont->drawText((byte *)str, 0, 70, _renderer->getWidth(), TAL_RIGHT); - sprintf(str, "Timer: %d", _timer); + sprintf(str, "Timer: %d", getTimer()->getTime()); _gameRef->_systemFont->drawText((byte *)str, 0, 130, _renderer->getWidth(), TAL_RIGHT); if (_activeObject != nullptr) { |