[Scummvm-cvs-logs] scummvm master -> a00c372f9eff8da8820cb06ed784fefb5cac247f
somaen
einarjohants at gmail.com
Thu Apr 18 12:32:32 CEST 2013
This automated email contains information about 8 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
a8f4f20f38 WINTERMUTE: Avoid including BaseGame in BaseFrame.
7ee757366b WINTERMUTE: Avoid including BaseGame in BaseViewport.
8f25b651e8 WINTERMUTE: Split the timers from BaseGame into a separate class.
32ace5f9d2 WINTERMUTE: Avoid including BaseGame in BaseFader.
e5b2107704 WINTERMUTE: Avoid including BaseGame in BaseSoundManager.
a4f7763579 WINTERMUTE: Avoid including BaseGame in PartEmitter.
8bcaf3e06c WINTERMUTE: Use BaseEngine for Logging, not _gameRef in base-classes.
a00c372f9e WINTERMUTE: Get Renderer from BaseEngine, not BaseGame in BaseClasses.
Commit: a8f4f20f38bd577ae9b63a15dec7416523de2b16
https://github.com/scummvm/scummvm/commit/a8f4f20f38bd577ae9b63a15dec7416523de2b16
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2013-04-18T02:13:32-07:00
Commit Message:
WINTERMUTE: Avoid including BaseGame in BaseFrame.
Changed paths:
engines/wintermute/base/base_engine.cpp
engines/wintermute/base/base_engine.h
engines/wintermute/base/base_frame.cpp
diff --git a/engines/wintermute/base/base_engine.cpp b/engines/wintermute/base/base_engine.cpp
index a13ca4d..3525b24 100644
--- a/engines/wintermute/base/base_engine.cpp
+++ b/engines/wintermute/base/base_engine.cpp
@@ -90,4 +90,12 @@ uint32 BaseEngine::randInt(int from, int to) {
return _rnd->getRandomNumberRng(from, to);
}
+BaseSoundMgr *BaseEngine::getSoundMgr() {
+ if (instance()._gameRef) {
+ return _gameRef->_soundMgr;
+ } else {
+ return nullptr;
+ }
+}
+
} // end of namespace Wintermute
diff --git a/engines/wintermute/base/base_engine.h b/engines/wintermute/base/base_engine.h
index f04c594..63a8d23 100644
--- a/engines/wintermute/base/base_engine.h
+++ b/engines/wintermute/base/base_engine.h
@@ -39,6 +39,7 @@ namespace Wintermute {
class BaseFileManager;
class BaseRegistry;
class BaseGame;
+class BaseSoundMgr;
class SystemClassRegistry;
class BaseEngine : public Common::Singleton<Wintermute::BaseEngine> {
void init(Common::Language lang);
@@ -60,6 +61,7 @@ public:
SystemClassRegistry *getClassRegistry() { return _classReg; }
BaseGame *getGameRef() { return _gameRef; }
BaseFileManager *getFileManager() { return _fileManager; }
+ BaseSoundMgr *getSoundMgr();
static void LOG(bool res, const char *fmt, ...);
const char *getGameId() { return _gameId.c_str(); }
};
diff --git a/engines/wintermute/base/base_frame.cpp b/engines/wintermute/base/base_frame.cpp
index 8a190c7..382e8ac 100644
--- a/engines/wintermute/base/base_frame.cpp
+++ b/engines/wintermute/base/base_frame.cpp
@@ -27,8 +27,9 @@
*/
#include "engines/wintermute/base/base_parser.h"
+#include "engines/wintermute/base/base_engine.h"
#include "engines/wintermute/base/base_frame.h"
-#include "engines/wintermute/base/base_game.h"
+#include "engines/wintermute/base/base_object.h"
#include "engines/wintermute/base/base_dynamic_buffer.h"
#include "engines/wintermute/base/sound/base_sound_manager.h"
#include "engines/wintermute/base/sound/base_sound.h"
@@ -264,8 +265,8 @@ bool BaseFrame::loadBuffer(byte *buffer, int lifeTime, bool keepLoaded) {
}
_sound = new BaseSound(_gameRef);
if (!_sound || DID_FAIL(_sound->setSound(params, Audio::Mixer::kSFXSoundType, false))) {
- if (_gameRef->_soundMgr->_soundAvailable) {
- _gameRef->LOG(0, "Error loading sound '%s'.", params);
+ if (BaseEngine::instance().getSoundMgr()->_soundAvailable) {
+ BaseEngine::LOG(0, "Error loading sound '%s'.", params);
}
delete _sound;
_sound = nullptr;
@@ -294,12 +295,12 @@ bool BaseFrame::loadBuffer(byte *buffer, int lifeTime, bool keepLoaded) {
}
}
if (cmd == PARSERR_TOKENNOTFOUND) {
- _gameRef->LOG(0, "Syntax error in FRAME definition");
+ BaseEngine::LOG(0, "Syntax error in FRAME definition");
return STATUS_FAILED;
}
if (cmd == PARSERR_GENERIC) {
- _gameRef->LOG(0, "Error loading FRAME definition");
+ BaseEngine::LOG(0, "Error loading FRAME definition");
return STATUS_FAILED;
}
@@ -314,7 +315,7 @@ bool BaseFrame::loadBuffer(byte *buffer, int lifeTime, bool keepLoaded) {
if (!sub->_surface) {
delete sub;
- _gameRef->LOG(0, "Error loading SUBFRAME");
+ BaseEngine::LOG(0, "Error loading SUBFRAME");
return STATUS_FAILED;
}
Commit: 7ee757366b9aee0e6a59669d263e29b5fe20278e
https://github.com/scummvm/scummvm/commit/7ee757366b9aee0e6a59669d263e29b5fe20278e
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2013-04-18T02:19:26-07:00
Commit Message:
WINTERMUTE: Avoid including BaseGame in BaseViewport.
Changed paths:
engines/wintermute/base/base_engine.cpp
engines/wintermute/base/base_engine.h
engines/wintermute/base/base_viewport.cpp
engines/wintermute/base/base_viewport.h
diff --git a/engines/wintermute/base/base_engine.cpp b/engines/wintermute/base/base_engine.cpp
index 3525b24..f8dc5df 100644
--- a/engines/wintermute/base/base_engine.cpp
+++ b/engines/wintermute/base/base_engine.cpp
@@ -98,4 +98,12 @@ BaseSoundMgr *BaseEngine::getSoundMgr() {
}
}
+BaseRenderer *BaseEngine::getRenderer() {
+ if (instance()._gameRef) {
+ return _gameRef->_renderer;
+ } else {
+ return nullptr;
+ }
+}
+
} // end of namespace Wintermute
diff --git a/engines/wintermute/base/base_engine.h b/engines/wintermute/base/base_engine.h
index 63a8d23..aa23cdd 100644
--- a/engines/wintermute/base/base_engine.h
+++ b/engines/wintermute/base/base_engine.h
@@ -40,6 +40,7 @@ class BaseFileManager;
class BaseRegistry;
class BaseGame;
class BaseSoundMgr;
+class BaseRenderer;
class SystemClassRegistry;
class BaseEngine : public Common::Singleton<Wintermute::BaseEngine> {
void init(Common::Language lang);
@@ -62,6 +63,7 @@ public:
BaseGame *getGameRef() { return _gameRef; }
BaseFileManager *getFileManager() { return _fileManager; }
BaseSoundMgr *getSoundMgr();
+ BaseRenderer *getRenderer();
static void LOG(bool res, const char *fmt, ...);
const char *getGameId() { return _gameId.c_str(); }
};
diff --git a/engines/wintermute/base/base_viewport.cpp b/engines/wintermute/base/base_viewport.cpp
index b6c4eb5..4f62a4f 100644
--- a/engines/wintermute/base/base_viewport.cpp
+++ b/engines/wintermute/base/base_viewport.cpp
@@ -26,9 +26,10 @@
* Copyright (c) 2011 Jan Nedoma
*/
-#include "engines/wintermute/base/base_game.h"
-#include "engines/wintermute/platform_osystem.h"
#include "engines/wintermute/base/base_viewport.h"
+#include "engines/wintermute/base/base_engine.h"
+#include "engines/wintermute/base/base_persistence_manager.h"
+#include "engines/wintermute/platform_osystem.h"
#include "engines/wintermute/base/gfx/base_renderer.h"
namespace Wintermute {
@@ -68,8 +69,8 @@ bool BaseViewport::setRect(int left, int top, int right, int bottom, bool noChec
if (!noCheck) {
left = MAX(left, 0);
top = MAX(top, 0);
- right = MIN(right, _gameRef->_renderer->getWidth());
- bottom = MIN(bottom, _gameRef->_renderer->getHeight());
+ right = MIN(right, BaseEngine::instance().getRenderer()->getWidth());
+ bottom = MIN(bottom, BaseEngine::instance().getRenderer()->getHeight());
}
BasePlatform::setRect(&_rect, left, top, right, bottom);
diff --git a/engines/wintermute/base/base_viewport.h b/engines/wintermute/base/base_viewport.h
index c69682d..636c9c5 100644
--- a/engines/wintermute/base/base_viewport.h
+++ b/engines/wintermute/base/base_viewport.h
@@ -31,6 +31,8 @@
#include "engines/wintermute/base/base.h"
+#include "engines/wintermute/math/rect32.h"
+#include "engines/wintermute/persistent.h"
namespace Wintermute {
class BaseObject;
Commit: 8f25b651e8fc05dc29e6ea5fff5eba1c8df78697
https://github.com/scummvm/scummvm/commit/8f25b651e8fc05dc29e6ea5fff5eba1c8df78697
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2013-04-18T03:10:40-07:00
Commit Message:
WINTERMUTE: Split the timers from BaseGame into a separate class.
Changed paths:
A engines/wintermute/base/timer.cpp
A engines/wintermute/base/timer.h
engines/wintermute/ad/ad_actor.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_engine.h
engines/wintermute/base/base_fader.cpp
engines/wintermute/base/base_game.cpp
engines/wintermute/base/base_game.h
engines/wintermute/base/base_game_music.cpp
engines/wintermute/base/base_parser.cpp
engines/wintermute/base/base_sprite.cpp
engines/wintermute/base/base_surface_storage.cpp
engines/wintermute/base/gfx/base_surface.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 d0d0476..9879cc9 100644
--- a/engines/wintermute/ad/ad_actor.cpp
+++ b/engines/wintermute/ad/ad_actor.cpp
@@ -752,7 +752,7 @@ bool AdActor::update() {
_tempSprite2 = _sentence->_currentSprite;
}
- bool timeIsUp = (_sentence->_sound && _sentence->_soundStarted && (!_sentence->_sound->isPlaying() && !_sentence->_sound->isPaused())) || (!_sentence->_sound && _sentence->_duration <= _gameRef->_timer - _sentence->_startTime);
+ bool timeIsUp = (_sentence->_sound && _sentence->_soundStarted && (!_sentence->_sound->isPlaying() && !_sentence->_sound->isPaused())) || (!_sentence->_sound && _sentence->_duration <= _gameRef->getTimer()->getTime() - _sentence->_startTime);
if (_tempSprite2 == nullptr || _tempSprite2->isFinished() || (/*_tempSprite2->_looping &&*/ timeIsUp)) {
if (timeIsUp) {
_sentence->finish();
diff --git a/engines/wintermute/ad/ad_entity.cpp b/engines/wintermute/ad/ad_entity.cpp
index 259b68f..6e47d0f 100644
--- a/engines/wintermute/ad/ad_entity.cpp
+++ b/engines/wintermute/ad/ad_entity.cpp
@@ -627,7 +627,7 @@ bool AdEntity::update() {
_tempSprite2 = _sentence->_currentSprite;
}
- bool timeIsUp = (_sentence->_sound && _sentence->_soundStarted && (!_sentence->_sound->isPlaying() && !_sentence->_sound->isPaused())) || (!_sentence->_sound && _sentence->_duration <= _gameRef->_timer - _sentence->_startTime);
+ bool timeIsUp = (_sentence->_sound && _sentence->_soundStarted && (!_sentence->_sound->isPlaying() && !_sentence->_sound->isPaused())) || (!_sentence->_sound && _sentence->_duration <= _gameRef->getTimer()->getTime() - _sentence->_startTime);
if (_tempSprite2 == nullptr || _tempSprite2->isFinished() || (/*_tempSprite2->_looping &&*/ timeIsUp)) {
if (timeIsUp) {
_sentence->finish();
diff --git a/engines/wintermute/ad/ad_item.cpp b/engines/wintermute/ad/ad_item.cpp
index 8534956..5781051 100644
--- a/engines/wintermute/ad/ad_item.cpp
+++ b/engines/wintermute/ad/ad_item.cpp
@@ -378,7 +378,7 @@ bool AdItem::update() {
_tempSprite2 = _sentence->_currentSprite;
}
- bool timeIsUp = (_sentence->_sound && _sentence->_soundStarted && (!_sentence->_sound->isPlaying() && !_sentence->_sound->isPaused())) || (!_sentence->_sound && _sentence->_duration <= _gameRef->_timer - _sentence->_startTime);
+ bool timeIsUp = (_sentence->_sound && _sentence->_soundStarted && (!_sentence->_sound->isPlaying() && !_sentence->_sound->isPaused())) || (!_sentence->_sound && _sentence->_duration <= _gameRef->getTimer()->getTime() - _sentence->_startTime);
if (_tempSprite2 == nullptr || _tempSprite2->isFinished() || (/*_tempSprite2->_looping &&*/ timeIsUp)) {
if (timeIsUp) {
_sentence->finish();
diff --git a/engines/wintermute/ad/ad_object.cpp b/engines/wintermute/ad/ad_object.cpp
index 5a61184..9026b28 100644
--- a/engines/wintermute/ad/ad_object.cpp
+++ b/engines/wintermute/ad/ad_object.cpp
@@ -904,7 +904,7 @@ void AdObject::talk(const char *text, const char *sound, uint32 duration, const
_sentence->setStances(stances);
_sentence->_duration = duration;
_sentence->_align = Align;
- _sentence->_startTime = _gameRef->_timer;
+ _sentence->_startTime = _gameRef->getTimer()->getTime();
_sentence->_currentStance = -1;
_sentence->_font = _font == nullptr ? _gameRef->getSystemFont() : _font;
_sentence->_freezable = _freezable;
diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp
index f7a6fdc..699ef06 100644
--- a/engines/wintermute/ad/ad_scene.cpp
+++ b/engines/wintermute/ad/ad_scene.cpp
@@ -931,13 +931,13 @@ bool AdScene::traverseNodes(bool doUpdate) {
if (_autoScroll) {
// adjust horizontal scroll
- if (_gameRef->_timer - _lastTimeH >= _scrollTimeH) {
- int timesMissed = (_gameRef->_timer - _lastTimeH) / _scrollTimeH;
+ if (_gameRef->getTimer()->getTime() - _lastTimeH >= _scrollTimeH) {
+ int timesMissed = (_gameRef->getTimer()->getTime() - _lastTimeH) / _scrollTimeH;
// Cap the amount of catch-up to avoid jittery characters.
if (timesMissed > 2) {
timesMissed = 2;
}
- _lastTimeH = _gameRef->_timer;
+ _lastTimeH = _gameRef->getTimer()->getTime();
if (_offsetLeft < _targetOffsetLeft) {
_offsetLeft += _scrollPixelsH * timesMissed;
_offsetLeft = MIN(_offsetLeft, _targetOffsetLeft);
@@ -948,13 +948,13 @@ bool AdScene::traverseNodes(bool doUpdate) {
}
// adjust vertical scroll
- if (_gameRef->_timer - _lastTimeV >= _scrollTimeV) {
- int timesMissed = (_gameRef->_timer - _lastTimeV) / _scrollTimeV;
+ if (_gameRef->getTimer()->getTime() - _lastTimeV >= _scrollTimeV) {
+ int timesMissed = (_gameRef->getTimer()->getTime() - _lastTimeV) / _scrollTimeV;
// Cap the amount of catch-up to avoid jittery characters.
if (timesMissed > 2) {
timesMissed = 2;
}
- _lastTimeV = _gameRef->_timer;
+ _lastTimeV = _gameRef->getTimer()->getTime();
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 69101fe..9192b74 100644
--- a/engines/wintermute/ad/ad_sentence.cpp
+++ b/engines/wintermute/ad/ad_sentence.cpp
@@ -314,9 +314,9 @@ bool AdSentence::update(TDirection dir) {
/*
if (_sound) CurrentTime = _sound->GetPositionTime();
- else CurrentTime = _gameRef->_timer - _startTime;
+ else CurrentTime = _gameRef->getTimer()->getTime() - _startTime;
*/
- currentTime = _gameRef->_timer - _startTime;
+ currentTime = _gameRef->getTimer()->getTime() - _startTime;
bool talkNodeFound = false;
for (uint32 i = 0; i < _talkDef->_nodes.size(); i++) {
@@ -355,7 +355,7 @@ bool AdSentence::update(TDirection dir) {
//////////////////////////////////////////////////////////////////////////
bool AdSentence::canSkip() {
// prevent accidental sentence skipping (TODO make configurable)
- return (_gameRef->_timer - _startTime) > 300;
+ return (_gameRef->getTimer()->getTime() - _startTime) > 300;
}
} // end of namespace Wintermute
diff --git a/engines/wintermute/base/base_engine.cpp b/engines/wintermute/base/base_engine.cpp
index f8dc5df..2dcf2d6 100644
--- a/engines/wintermute/base/base_engine.cpp
+++ b/engines/wintermute/base/base_engine.cpp
@@ -106,4 +106,20 @@ 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_engine.h b/engines/wintermute/base/base_engine.h
index aa23cdd..e460711 100644
--- a/engines/wintermute/base/base_engine.h
+++ b/engines/wintermute/base/base_engine.h
@@ -42,6 +42,7 @@ class BaseGame;
class BaseSoundMgr;
class BaseRenderer;
class SystemClassRegistry;
+class Timer;
class BaseEngine : public Common::Singleton<Wintermute::BaseEngine> {
void init(Common::Language lang);
BaseFileManager *_fileManager;
@@ -64,6 +65,8 @@ public:
BaseFileManager *getFileManager() { return _fileManager; }
BaseSoundMgr *getSoundMgr();
BaseRenderer *getRenderer();
+ static const Timer *getTimer();
+ static const Timer *getLiveTimer();
static void LOG(bool res, const char *fmt, ...);
const char *getGameId() { return _gameId.c_str(); }
};
diff --git a/engines/wintermute/base/base_fader.cpp b/engines/wintermute/base/base_fader.cpp
index 8f74d71..0793045 100644
--- a/engines/wintermute/base/base_fader.cpp
+++ b/engines/wintermute/base/base_fader.cpp
@@ -71,7 +71,7 @@ bool BaseFader::update() {
if (_system) {
time = g_system->getMillis() - _startTime;
} else {
- time = _gameRef->_timer - _startTime;
+ time = _gameRef->getTimer()->getTime() - _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 = _gameRef->_timer;
+ _startTime = _gameRef->getTimer()->getTime();
}
return STATUS_OK;
@@ -155,7 +155,7 @@ bool BaseFader::fadeOut(uint32 targetColor, uint32 duration, bool system) {
if (_system) {
_startTime = g_system->getMillis();
} else {
- _startTime = _gameRef->_timer;
+ _startTime = _gameRef->getTimer()->getTime();
}
diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index 9ae4417..4f8d099 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) {
diff --git a/engines/wintermute/base/base_game.h b/engines/wintermute/base/base_game.h
index f3496f7..a0af216 100644
--- a/engines/wintermute/base/base_game.h
+++ b/engines/wintermute/base/base_game.h
@@ -30,6 +30,7 @@
#define WINTERMUTE_BASE_GAME_H
#include "engines/wintermute/base/base_object.h"
+#include "engines/wintermute/base/timer.h"
#include "engines/wintermute/persistent.h"
#include "engines/wintermute/coll_templ.h"
#include "engines/wintermute/math/rect32.h"
@@ -214,14 +215,13 @@ public:
TGameState _state;
TGameState _origState;
bool _origInteractive;
- uint32 _timer;
- uint32 _timerDelta;
- uint32 _timerLast;
-
- uint32 _liveTimer;
- uint32 _liveTimerDelta;
- uint32 _liveTimerLast;
+ const Timer *getTimer() const { return &_timerNormal; }
+ const Timer *getLiveTimer() const { return &_timerLive; }
+private:
+ Timer _timerNormal;
+ Timer _timerLive;
+public:
BaseObject *_capturedObject;
Point32 _mousePos;
bool validObject(BaseObject *object);
diff --git a/engines/wintermute/base/base_game_music.cpp b/engines/wintermute/base/base_game_music.cpp
index 8dff41d..a39deb8 100644
--- a/engines/wintermute/base/base_game_music.cpp
+++ b/engines/wintermute/base/base_game_music.cpp
@@ -177,7 +177,7 @@ bool BaseGameMusic::updateMusicCrossfade() {
_music[_musicCrossfadeChannel2]->play();
}
- uint32 currentTime = _gameRef->_liveTimer - _musicCrossfadeStartTime;
+ uint32 currentTime = _gameRef->getLiveTimer()->getTime() - _musicCrossfadeStartTime;
if (currentTime >= _musicCrossfadeLength) {
_musicCrossfadeRunning = false;
@@ -469,7 +469,7 @@ bool BaseGameMusic::scCallMethod(ScScript *script, ScStack *stack, ScStack *this
return STATUS_OK;
}
- _musicCrossfadeStartTime = _gameRef->_liveTimer;
+ _musicCrossfadeStartTime = _gameRef->getLiveTimer()->getTime();
_musicCrossfadeChannel1 = channel1;
_musicCrossfadeChannel2 = channel2;
_musicCrossfadeLength = fadeLength;
diff --git a/engines/wintermute/base/base_parser.cpp b/engines/wintermute/base/base_parser.cpp
index 7f18c1f..aaa376f 100644
--- a/engines/wintermute/base/base_parser.cpp
+++ b/engines/wintermute/base/base_parser.cpp
@@ -27,8 +27,8 @@
*/
#include "engines/wintermute/base/base_parser.h"
-#include "engines/wintermute/base/base_game.h"
#include "engines/wintermute/base/base_engine.h"
+#include "engines/wintermute/base/base_game.h"
#include "engines/wintermute/platform_osystem.h"
#include "common/str.h"
#include "common/util.h"
diff --git a/engines/wintermute/base/base_sprite.cpp b/engines/wintermute/base/base_sprite.cpp
index 4f55e47..ecc878d 100644
--- a/engines/wintermute/base/base_sprite.cpp
+++ b/engines/wintermute/base/base_sprite.cpp
@@ -365,9 +365,9 @@ bool BaseSprite::getCurrentFrame(float zoomX, float zoomY) {
uint32 timer;
if (_owner && _owner->_freezable) {
- timer = _gameRef->_timer;
+ timer = _gameRef->getTimer()->getTime();
} else {
- timer = _gameRef->_liveTimer;
+ timer = _gameRef->getLiveTimer()->getTime();
}
int lastFrame = _currentFrame;
diff --git a/engines/wintermute/base/base_surface_storage.cpp b/engines/wintermute/base/base_surface_storage.cpp
index 08d2d2f..9c9b7dc 100644
--- a/engines/wintermute/base/base_surface_storage.cpp
+++ b/engines/wintermute/base/base_surface_storage.cpp
@@ -66,15 +66,15 @@ bool BaseSurfaceStorage::cleanup(bool warn) {
//////////////////////////////////////////////////////////////////////////
bool BaseSurfaceStorage::initLoop() {
- if (_gameRef->_smartCache && _gameRef->_liveTimer - _lastCleanupTime >= _gameRef->_surfaceGCCycleTime) {
- _lastCleanupTime = _gameRef->_liveTimer;
+ if (_gameRef->_smartCache && _gameRef->getLiveTimer()->getTime() - _lastCleanupTime >= _gameRef->_surfaceGCCycleTime) {
+ _lastCleanupTime = _gameRef->getLiveTimer()->getTime();
sortSurfaces();
for (uint32 i = 0; i < _surfaces.size(); i++) {
if (_surfaces[i]->_lifeTime <= 0) {
break;
}
- if (_surfaces[i]->_lifeTime > 0 && _surfaces[i]->_valid && (int)(_gameRef->_liveTimer - _surfaces[i]->_lastUsedTime) >= _surfaces[i]->_lifeTime) {
+ if (_surfaces[i]->_lifeTime > 0 && _surfaces[i]->_valid && (int)(_gameRef->getLiveTimer()->getTime() - _surfaces[i]->_lastUsedTime) >= _surfaces[i]->_lifeTime) {
//_gameRef->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 d882adf..2002463 100644
--- a/engines/wintermute/base/gfx/base_surface.cpp
+++ b/engines/wintermute/base/gfx/base_surface.cpp
@@ -129,7 +129,7 @@ bool BaseSurface::invalidate() {
//////////////////////////////////////////////////////////////////////////
bool BaseSurface::prepareToDraw() {
- _lastUsedTime = _gameRef->_liveTimer;
+ _lastUsedTime = _gameRef->getLiveTimer()->getTime();
if (!_valid) {
//_gameRef->LOG(0, "Reviving: %s", _filename);
diff --git a/engines/wintermute/base/particles/part_emitter.cpp b/engines/wintermute/base/particles/part_emitter.cpp
index 1026969..1a89417 100644
--- a/engines/wintermute/base/particles/part_emitter.cpp
+++ b/engines/wintermute/base/particles/part_emitter.cpp
@@ -252,7 +252,7 @@ bool PartEmitter::update() {
if (!_running) {
return STATUS_OK;
} else {
- return updateInternal(_gameRef->_timer, _gameRef->_timerDelta);
+ return updateInternal(_gameRef->getTimer()->getTime(), _gameRef->getTimer()->getTimeDelta());
}
}
@@ -353,7 +353,7 @@ bool PartEmitter::start() {
if (_overheadTime > 0) {
uint32 delta = 500;
int steps = _overheadTime / delta;
- uint32 currentTime = _gameRef->_timer - _overheadTime;
+ uint32 currentTime = _gameRef->getTimer()->getTime() - _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 23c452b..56ffbf7 100644
--- a/engines/wintermute/base/scriptables/script.cpp
+++ b/engines/wintermute/base/scriptables/script.cpp
@@ -1194,7 +1194,7 @@ bool ScScript::sleep(uint32 duration) {
_waitTime = g_system->getMillis() + duration;
_waitFrozen = true;
} else {
- _waitTime = _gameRef->_timer + duration;
+ _waitTime = _gameRef->getTimer()->getTime() + 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 d5c5797..d8f38f2 100644
--- a/engines/wintermute/base/scriptables/script_engine.cpp
+++ b/engines/wintermute/base/scriptables/script_engine.cpp
@@ -285,7 +285,7 @@ bool ScEngine::tick() {
_scripts[i]->run();
}
} else {
- if (_scripts[i]->_waitTime <= _gameRef->_timer) {
+ if (_scripts[i]->_waitTime <= _gameRef->getTimer()->getTime()) {
_scripts[i]->run();
}
}
diff --git a/engines/wintermute/base/timer.cpp b/engines/wintermute/base/timer.cpp
new file mode 100644
index 0000000..590dba4
--- /dev/null
+++ b/engines/wintermute/base/timer.cpp
@@ -0,0 +1,74 @@
+/* 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+/*
+ * 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->transfer(TMEMBER(_timer));
+ persistMgr->transfer(TMEMBER(_timerDelta));
+ persistMgr->transfer(TMEMBER(_timerLast));
+}
+
+} // End of namespace Wintermute
\ No newline at end of file
diff --git a/engines/wintermute/base/timer.h b/engines/wintermute/base/timer.h
new file mode 100644
index 0000000..8353b08
--- /dev/null
+++ b/engines/wintermute/base/timer.h
@@ -0,0 +1,57 @@
+/* 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+/*
+ * 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
\ No newline at end of file
diff --git a/engines/wintermute/module.mk b/engines/wintermute/module.mk
index 9c2f36f..32931bf 100644
--- a/engines/wintermute/module.mk
+++ b/engines/wintermute/module.mk
@@ -87,6 +87,7 @@ MODULE_OBJS := \
base/base_viewport.o \
base/saveload.o \
base/save_thumb_helper.o \
+ base/timer.o \
detection.o \
graphics/transparent_surface.o \
math/math_util.o \
diff --git a/engines/wintermute/video/video_theora_player.cpp b/engines/wintermute/video/video_theora_player.cpp
index 3777eed..f03be96 100644
--- a/engines/wintermute/video/video_theora_player.cpp
+++ b/engines/wintermute/video/video_theora_player.cpp
@@ -274,7 +274,7 @@ bool VideoTheoraPlayer::stop() {
//////////////////////////////////////////////////////////////////////////
bool VideoTheoraPlayer::update() {
- _currentTime = _freezeGame ? _gameRef->_liveTimer : _gameRef->_timer;
+ _currentTime = _freezeGame ? _gameRef->getLiveTimer()->getTime() : _gameRef->getTimer()->getTime();
if (!isPlaying()) {
return STATUS_OK;
Commit: 32ace5f9d204e746ab8503220749e194ab91508c
https://github.com/scummvm/scummvm/commit/32ace5f9d204e746ab8503220749e194ab91508c
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2013-04-18T03:13:12-07:00
Commit Message:
WINTERMUTE: Avoid including BaseGame in BaseFader.
Changed paths:
engines/wintermute/base/base_engine.cpp
engines/wintermute/base/base_engine.h
engines/wintermute/base/base_fader.cpp
diff --git a/engines/wintermute/base/base_engine.cpp b/engines/wintermute/base/base_engine.cpp
index 2dcf2d6..d4b17a0 100644
--- a/engines/wintermute/base/base_engine.cpp
+++ b/engines/wintermute/base/base_engine.cpp
@@ -100,7 +100,7 @@ BaseSoundMgr *BaseEngine::getSoundMgr() {
BaseRenderer *BaseEngine::getRenderer() {
if (instance()._gameRef) {
- return _gameRef->_renderer;
+ return instance()._gameRef->_renderer;
} else {
return nullptr;
}
diff --git a/engines/wintermute/base/base_engine.h b/engines/wintermute/base/base_engine.h
index e460711..d972e6e 100644
--- a/engines/wintermute/base/base_engine.h
+++ b/engines/wintermute/base/base_engine.h
@@ -64,7 +64,7 @@ public:
BaseGame *getGameRef() { return _gameRef; }
BaseFileManager *getFileManager() { return _fileManager; }
BaseSoundMgr *getSoundMgr();
- BaseRenderer *getRenderer();
+ static BaseRenderer *getRenderer();
static const Timer *getTimer();
static const Timer *getLiveTimer();
static void LOG(bool res, const char *fmt, ...);
diff --git a/engines/wintermute/base/base_fader.cpp b/engines/wintermute/base/base_fader.cpp
index 0793045..0d17b07 100644
--- a/engines/wintermute/base/base_fader.cpp
+++ b/engines/wintermute/base/base_fader.cpp
@@ -27,7 +27,8 @@
*/
#include "engines/wintermute/base/base_fader.h"
-#include "engines/wintermute/base/base_game.h"
+#include "engines/wintermute/base/base_engine.h"
+#include "engines/wintermute/base/timer.h"
#include "engines/wintermute/base/gfx/base_renderer.h"
#include "common/util.h"
@@ -71,7 +72,7 @@ bool BaseFader::update() {
if (_system) {
time = g_system->getMillis() - _startTime;
} else {
- time = _gameRef->getTimer()->getTime() - _startTime;
+ time = BaseEngine::getTimer()->getTime() - _startTime;
}
if (time >= _duration) {
@@ -97,7 +98,7 @@ bool BaseFader::display() {
}
if (_currentAlpha > 0x00) {
- _gameRef->_renderer->fadeToColor(_red, _green, _blue, _currentAlpha);
+ BaseEngine::getRenderer()->fadeToColor(_red, _green, _blue, _currentAlpha);
}
return STATUS_OK;
}
@@ -129,7 +130,7 @@ bool BaseFader::fadeIn(uint32 sourceColor, uint32 duration, bool system) {
if (_system) {
_startTime = g_system->getMillis();
} else {
- _startTime = _gameRef->getTimer()->getTime();
+ _startTime = BaseEngine::getTimer()->getTime();
}
return STATUS_OK;
@@ -155,7 +156,7 @@ bool BaseFader::fadeOut(uint32 targetColor, uint32 duration, bool system) {
if (_system) {
_startTime = g_system->getMillis();
} else {
- _startTime = _gameRef->getTimer()->getTime();
+ _startTime = BaseEngine::getTimer()->getTime();
}
Commit: e5b210770418c46b30e01c2ae2ed5b3ebf9b3223
https://github.com/scummvm/scummvm/commit/e5b210770418c46b30e01c2ae2ed5b3ebf9b3223
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2013-04-18T03:15:05-07:00
Commit Message:
WINTERMUTE: Avoid including BaseGame in BaseSoundManager.
Changed paths:
engines/wintermute/base/sound/base_sound_manager.cpp
diff --git a/engines/wintermute/base/sound/base_sound_manager.cpp b/engines/wintermute/base/sound/base_sound_manager.cpp
index e3f5fdc..f3e7bfb 100644
--- a/engines/wintermute/base/sound/base_sound_manager.cpp
+++ b/engines/wintermute/base/sound/base_sound_manager.cpp
@@ -30,7 +30,6 @@
#include "engines/wintermute/base/base_engine.h"
#include "engines/wintermute/utils/path_util.h"
#include "engines/wintermute/utils/string_util.h"
-#include "engines/wintermute/base/base_game.h"
#include "engines/wintermute/base/base_file_manager.h"
#include "engines/wintermute/base/gfx/base_renderer.h"
#include "engines/wintermute/base/sound/base_sound_buffer.h"
@@ -123,7 +122,7 @@ BaseSoundBuffer *BaseSoundMgr::addSound(const Common::String &filename, Audio::M
bool res = sound->loadFromFile(useFilename);
if (DID_FAIL(res)) {
- _gameRef->LOG(res, "Error loading sound '%s'", useFilename.c_str());
+ BaseEngine::LOG(res, "Error loading sound '%s'", useFilename.c_str());
delete sound;
return nullptr;
}
@@ -280,7 +279,7 @@ bool BaseSoundMgr::resumeAll() {
//////////////////////////////////////////////////////////////////////////
float BaseSoundMgr::posToPan(int x, int y) {
- float relPos = (float)x / ((float)_gameRef->_renderer->getWidth());
+ float relPos = (float)x / ((float)BaseEngine::getRenderer()->getWidth());
float minPan = -0.7f;
float maxPan = 0.7f;
Commit: a4f77635793ebb1fe0fc3b1b8ded6834762362c6
https://github.com/scummvm/scummvm/commit/a4f77635793ebb1fe0fc3b1b8ded6834762362c6
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2013-04-18T03:17:58-07:00
Commit Message:
WINTERMUTE: Avoid including BaseGame in PartEmitter.
Changed paths:
engines/wintermute/base/particles/part_emitter.cpp
diff --git a/engines/wintermute/base/particles/part_emitter.cpp b/engines/wintermute/base/particles/part_emitter.cpp
index 1a89417..d09f221 100644
--- a/engines/wintermute/base/particles/part_emitter.cpp
+++ b/engines/wintermute/base/particles/part_emitter.cpp
@@ -32,7 +32,8 @@
#include "engines/wintermute/math/matrix4.h"
#include "engines/wintermute/base/scriptables/script_value.h"
#include "engines/wintermute/base/scriptables/script_stack.h"
-#include "engines/wintermute/base/base_game.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/gfx/base_renderer.h"
@@ -131,7 +132,7 @@ bool PartEmitter::addSprite(const char *filename) {
// check if file exists
Common::SeekableReadStream *File = BaseFileManager::getEngineInstance()->openFile(filename);
if (!File) {
- _gameRef->LOG(0, "Sprite '%s' not found", filename);
+ BaseEngine::LOG(0, "Sprite '%s' not found", filename);
return STATUS_FAILED;
} else {
BaseFileManager::getEngineInstance()->closeFile(File);
@@ -252,7 +253,7 @@ bool PartEmitter::update() {
if (!_running) {
return STATUS_OK;
} else {
- return updateInternal(_gameRef->getTimer()->getTime(), _gameRef->getTimer()->getTimeDelta());
+ return updateInternal(BaseEngine::getTimer()->getTime(), BaseEngine::getTimer()->getTimeDelta());
}
}
@@ -321,7 +322,7 @@ bool PartEmitter::updateInternal(uint32 currentTime, uint32 timerDelta) {
//////////////////////////////////////////////////////////////////////////
bool PartEmitter::display(BaseRegion *region) {
if (_sprites.size() <= 1) {
- _gameRef->_renderer->startSpriteBatch();
+ BaseEngine::getRenderer()->startSpriteBatch();
}
for (uint32 i = 0; i < _particles.size(); i++) {
@@ -335,7 +336,7 @@ bool PartEmitter::display(BaseRegion *region) {
}
if (_sprites.size() <= 1) {
- _gameRef->_renderer->endSpriteBatch();
+ BaseEngine::getRenderer()->endSpriteBatch();
}
return STATUS_OK;
@@ -353,7 +354,7 @@ bool PartEmitter::start() {
if (_overheadTime > 0) {
uint32 delta = 500;
int steps = _overheadTime / delta;
- uint32 currentTime = _gameRef->getTimer()->getTime() - _overheadTime;
+ uint32 currentTime = BaseEngine::getTimer()->getTime() - _overheadTime;
for (int i = 0; i < steps; i++) {
updateInternal(currentTime, delta);
Commit: 8bcaf3e06c5c61d82686be4cbf5699f71db3e4a3
https://github.com/scummvm/scummvm/commit/8bcaf3e06c5c61d82686be4cbf5699f71db3e4a3
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2013-04-18T03:24:42-07:00
Commit Message:
WINTERMUTE: Use BaseEngine for Logging, not _gameRef in base-classes.
Changed paths:
engines/wintermute/base/base.cpp
engines/wintermute/base/base_script_holder.cpp
engines/wintermute/base/base_scriptable.cpp
engines/wintermute/base/base_sprite.cpp
engines/wintermute/base/base_string_table.cpp
engines/wintermute/base/base_sub_frame.cpp
engines/wintermute/base/base_surface_storage.cpp
engines/wintermute/base/saveload.cpp
diff --git a/engines/wintermute/base/base.cpp b/engines/wintermute/base/base.cpp
index c0459b0..d01972b 100644
--- a/engines/wintermute/base/base.cpp
+++ b/engines/wintermute/base/base.cpp
@@ -28,6 +28,7 @@
#include "engines/wintermute/base/base.h"
#include "engines/wintermute/base/base_game.h"
+#include "engines/wintermute/base/base_engine.h"
#include "engines/wintermute/base/base_parser.h"
#include "engines/wintermute/base/base_dynamic_buffer.h"
@@ -105,7 +106,7 @@ bool BaseClass::parseEditorProperty(byte *buffer, bool complete) {
if (complete) {
if (parser.getCommand((char **)&buffer, commands, (char **)¶ms) != TOKEN_EDITOR_PROPERTY) {
- _gameRef->LOG(0, "'EDITOR_PROPERTY' keyword expected.");
+ BaseEngine::LOG(0, "'EDITOR_PROPERTY' keyword expected.");
return STATUS_FAILED;
}
buffer = params;
@@ -143,7 +144,7 @@ bool BaseClass::parseEditorProperty(byte *buffer, bool complete) {
delete[] propValue;
propName = nullptr;
propValue = nullptr;
- _gameRef->LOG(0, "Syntax error in EDITOR_PROPERTY definition");
+ BaseEngine::LOG(0, "Syntax error in EDITOR_PROPERTY definition");
return STATUS_FAILED;
}
if (cmd == PARSERR_GENERIC || propName == nullptr || propValue == nullptr) {
@@ -151,7 +152,7 @@ bool BaseClass::parseEditorProperty(byte *buffer, bool complete) {
delete[] propValue;
propName = nullptr;
propValue = nullptr;
- _gameRef->LOG(0, "Error loading EDITOR_PROPERTY definition");
+ BaseEngine::LOG(0, "Error loading EDITOR_PROPERTY definition");
return STATUS_FAILED;
}
diff --git a/engines/wintermute/base/base_script_holder.cpp b/engines/wintermute/base/base_script_holder.cpp
index d1a9d4a..036bac1 100644
--- a/engines/wintermute/base/base_script_holder.cpp
+++ b/engines/wintermute/base/base_script_holder.cpp
@@ -29,6 +29,7 @@
#include "engines/wintermute/ad/ad_game.h"
#include "engines/wintermute/base/base_script_holder.h"
#include "engines/wintermute/base/base_parser.h"
+#include "engines/wintermute/base/base_engine.h"
#include "engines/wintermute/base/scriptables/script_value.h"
#include "engines/wintermute/base/scriptables/script_engine.h"
#include "engines/wintermute/base/scriptables/script.h"
@@ -301,7 +302,7 @@ bool BaseScriptHolder::addScript(const char *filename) {
for (uint32 i = 0; i < _scripts.size(); i++) {
if (scumm_stricmp(_scripts[i]->_filename, filename) == 0) {
if (_scripts[i]->_state != SCRIPT_FINISHED) {
- _gameRef->LOG(0, "BaseScriptHolder::AddScript - trying to add script '%s' mutiple times (obj: '%s')", filename, getName());
+ BaseEngine::LOG(0, "BaseScriptHolder::AddScript - trying to add script '%s' mutiple times (obj: '%s')", filename, getName());
return STATUS_OK;
}
}
@@ -382,7 +383,7 @@ bool BaseScriptHolder::parseProperty(byte *buffer, bool complete) {
if (complete) {
if (parser.getCommand((char **)&buffer, commands, (char **)¶ms) != TOKEN_PROPERTY) {
- _gameRef->LOG(0, "'PROPERTY' keyword expected.");
+ BaseEngine::LOG(0, "'PROPERTY' keyword expected.");
return STATUS_FAILED;
}
buffer = params;
@@ -420,7 +421,7 @@ bool BaseScriptHolder::parseProperty(byte *buffer, bool complete) {
delete[] propValue;
propName = nullptr;
propValue = nullptr;
- _gameRef->LOG(0, "Syntax error in PROPERTY definition");
+ BaseEngine::LOG(0, "Syntax error in PROPERTY definition");
return STATUS_FAILED;
}
if (cmd == PARSERR_GENERIC || propName == nullptr || propValue == nullptr) {
@@ -428,7 +429,7 @@ bool BaseScriptHolder::parseProperty(byte *buffer, bool complete) {
delete[] propValue;
propName = nullptr;
propValue = nullptr;
- _gameRef->LOG(0, "Error loading PROPERTY definition");
+ BaseEngine::LOG(0, "Error loading PROPERTY definition");
return STATUS_FAILED;
}
diff --git a/engines/wintermute/base/base_scriptable.cpp b/engines/wintermute/base/base_scriptable.cpp
index 7dbcd72..fca1df4 100644
--- a/engines/wintermute/base/base_scriptable.cpp
+++ b/engines/wintermute/base/base_scriptable.cpp
@@ -52,7 +52,7 @@ BaseScriptable::BaseScriptable(BaseGame *inGame, bool noValue, bool persistable)
//////////////////////////////////////////////////////////////////////////
BaseScriptable::~BaseScriptable() {
- //if (_refCount>0) _gameRef->LOG(0, "Warning: Destroying object, _refCount=%d", _refCount);
+ //if (_refCount>0) BaseEngine::LOG(0, "Warning: Destroying object, _refCount=%d", _refCount);
delete _scValue;
delete _scProp;
_scValue = nullptr;
diff --git a/engines/wintermute/base/base_sprite.cpp b/engines/wintermute/base/base_sprite.cpp
index ecc878d..3f809f7 100644
--- a/engines/wintermute/base/base_sprite.cpp
+++ b/engines/wintermute/base/base_sprite.cpp
@@ -32,6 +32,7 @@
#include "engines/wintermute/base/base_dynamic_buffer.h"
#include "engines/wintermute/base/gfx/base_surface.h"
#include "engines/wintermute/base/base_game.h"
+#include "engines/wintermute/base/base_engine.h"
#include "engines/wintermute/base/base_frame.h"
#include "engines/wintermute/base/sound/base_sound.h"
#include "engines/wintermute/base/base_sub_frame.h"
@@ -133,7 +134,7 @@ bool BaseSprite::isFinished() {
bool BaseSprite::loadFile(const Common::String &filename, int lifeTime, TSpriteCacheType cacheType) {
Common::SeekableReadStream *file = BaseFileManager::getEngineInstance()->openFile(filename);
if (!file) {
- _gameRef->LOG(0, "BaseSprite::LoadFile failed for file '%s'", filename.c_str());
+ BaseEngine::LOG(0, "BaseSprite::LoadFile failed for file '%s'", filename.c_str());
if (_gameRef->_debugDebugMode) {
return loadFile("invalid_debug.bmp", lifeTime, cacheType);
} else {
@@ -155,7 +156,7 @@ bool BaseSprite::loadFile(const Common::String &filename, int lifeTime, TSpriteC
BaseSubFrame *subframe = new BaseSubFrame(_gameRef);
subframe->setSurface(filename, true, 0, 0, 0, lifeTime, true);
if (subframe->_surface == nullptr) {
- _gameRef->LOG(0, "Error loading simple sprite '%s'", filename.c_str());
+ BaseEngine::LOG(0, "Error loading simple sprite '%s'", filename.c_str());
ret = STATUS_FAILED;
delete frame;
delete subframe;
@@ -170,7 +171,7 @@ bool BaseSprite::loadFile(const Common::String &filename, int lifeTime, TSpriteC
byte *buffer = BaseFileManager::getEngineInstance()->readWholeFile(filename);
if (buffer) {
if (DID_FAIL(ret = loadBuffer(buffer, true, lifeTime, cacheType))) {
- _gameRef->LOG(0, "Error parsing SPRITE file '%s'", filename.c_str());
+ BaseEngine::LOG(0, "Error parsing SPRITE file '%s'", filename.c_str());
} else {
ret = STATUS_OK;
}
@@ -231,7 +232,7 @@ bool BaseSprite::loadBuffer(byte *buffer, bool complete, int lifeTime, TSpriteCa
if (complete) {
if (parser.getCommand((char **)&buffer, commands, (char **)¶ms) != TOKEN_SPRITE) {
- _gameRef->LOG(0, "'SPRITE' keyword expected.");
+ BaseEngine::LOG(0, "'SPRITE' keyword expected.");
return STATUS_FAILED;
}
buffer = params;
@@ -311,7 +312,7 @@ bool BaseSprite::loadBuffer(byte *buffer, bool complete, int lifeTime, TSpriteCa
if (DID_FAIL(frame->loadBuffer(params, frameLifeTime, _streamedKeepLoaded))) {
delete frame;
- _gameRef->LOG(0, "Error parsing frame %d", frameCount);
+ BaseEngine::LOG(0, "Error parsing frame %d", frameCount);
return STATUS_FAILED;
}
@@ -330,7 +331,7 @@ bool BaseSprite::loadBuffer(byte *buffer, bool complete, int lifeTime, TSpriteCa
}
if (cmd == PARSERR_TOKENNOTFOUND) {
- _gameRef->LOG(0, "Syntax error in SPRITE definition");
+ BaseEngine::LOG(0, "Syntax error in SPRITE definition");
return STATUS_FAILED;
}
_canBreak = !_continuous;
diff --git a/engines/wintermute/base/base_string_table.cpp b/engines/wintermute/base/base_string_table.cpp
index 11ec7b0..8207c32 100644
--- a/engines/wintermute/base/base_string_table.cpp
+++ b/engines/wintermute/base/base_string_table.cpp
@@ -29,6 +29,7 @@
#include "engines/wintermute/platform_osystem.h"
#include "engines/wintermute/base/base_file_manager.h"
#include "engines/wintermute/base/base_game.h"
+#include "engines/wintermute/base/base_engine.h"
#include "engines/wintermute/base/base_string_table.h"
#include "common/str.h"
@@ -64,7 +65,7 @@ bool BaseStringTable::addString(const char *key, const char *val, bool reportDup
StringsIter it = _strings.find(finalKey);
if (it != _strings.end() && reportDuplicities) {
- _gameRef->LOG(0, " Warning: Duplicate definition of string '%s'.", finalKey.c_str());
+ BaseEngine::LOG(0, " Warning: Duplicate definition of string '%s'.", finalKey.c_str());
}
_strings[finalKey] = val;
@@ -185,7 +186,7 @@ const char *BaseStringTable::expandStatic(const char *string) const {
//////////////////////////////////////////////////////////////////////////
bool BaseStringTable::loadFile(const char *filename, bool clearOld) {
- _gameRef->LOG(0, "Loading string table...");
+ BaseEngine::LOG(0, "Loading string table...");
if (clearOld) {
_strings.clear();
@@ -194,7 +195,7 @@ bool BaseStringTable::loadFile(const char *filename, bool clearOld) {
uint32 size;
byte *buffer = BaseFileManager::getEngineInstance()->readWholeFile(filename, &size);
if (buffer == nullptr) {
- _gameRef->LOG(0, "BaseStringTable::LoadFile failed for file '%s'", filename);
+ BaseEngine::LOG(0, "BaseStringTable::LoadFile failed for file '%s'", filename);
return STATUS_FAILED;
}
@@ -205,7 +206,7 @@ bool BaseStringTable::loadFile(const char *filename, bool clearOld) {
if (_gameRef->_textEncoding != TEXT_UTF8) {
_gameRef->_textEncoding = TEXT_UTF8;
//_gameRef->_textEncoding = TEXT_ANSI;
- _gameRef->LOG(0, " UTF8 file detected, switching to UTF8 text encoding");
+ BaseEngine::LOG(0, " UTF8 file detected, switching to UTF8 text encoding");
}
} else {
_gameRef->_textEncoding = TEXT_ANSI;
@@ -247,7 +248,7 @@ bool BaseStringTable::loadFile(const char *filename, bool clearOld) {
delete[] buffer;
- _gameRef->LOG(0, " %d strings loaded", _strings.size());
+ BaseEngine::LOG(0, " %d strings loaded", _strings.size());
return STATUS_OK;
}
diff --git a/engines/wintermute/base/base_sub_frame.cpp b/engines/wintermute/base/base_sub_frame.cpp
index c8c0773..f71935b 100644
--- a/engines/wintermute/base/base_sub_frame.cpp
+++ b/engines/wintermute/base/base_sub_frame.cpp
@@ -33,6 +33,7 @@
#include "engines/wintermute/base/gfx/base_surface.h"
#include "engines/wintermute/base/base_surface_storage.h"
#include "engines/wintermute/base/base_game.h"
+#include "engines/wintermute/base/base_engine.h"
#include "engines/wintermute/platform_osystem.h"
#include "engines/wintermute/base/gfx/base_renderer.h"
#include "engines/wintermute/base/scriptables/script_value.h"
@@ -180,7 +181,7 @@ bool BaseSubFrame::loadBuffer(byte *buffer, int lifeTime, bool keepLoaded) {
}
}
if (cmd == PARSERR_TOKENNOTFOUND) {
- _gameRef->LOG(0, "Syntax error in SUBFRAME definition");
+ BaseEngine::LOG(0, "Syntax error in SUBFRAME definition");
return STATUS_FAILED;
}
@@ -200,7 +201,7 @@ bool BaseSubFrame::loadBuffer(byte *buffer, int lifeTime, bool keepLoaded) {
/*
if (_surface == nullptr)
{
- _gameRef->LOG(0, "Error parsing sub-frame. Image not set.");
+ BaseEngine::LOG(0, "Error parsing sub-frame. Image not set.");
return STATUS_FAILED;
}
*/
diff --git a/engines/wintermute/base/base_surface_storage.cpp b/engines/wintermute/base/base_surface_storage.cpp
index 9c9b7dc..d0e6042 100644
--- a/engines/wintermute/base/base_surface_storage.cpp
+++ b/engines/wintermute/base/base_surface_storage.cpp
@@ -30,6 +30,7 @@
#include "engines/wintermute/base/gfx/base_surface.h"
#include "engines/wintermute/base/gfx/base_renderer.h"
#include "engines/wintermute/base/base_game.h"
+#include "engines/wintermute/base/base_engine.h"
#include "engines/wintermute/base/base_file_manager.h"
#include "engines/wintermute/platform_osystem.h"
#include "common/str.h"
@@ -54,7 +55,7 @@ BaseSurfaceStorage::~BaseSurfaceStorage() {
bool BaseSurfaceStorage::cleanup(bool warn) {
for (uint32 i = 0; i < _surfaces.size(); i++) {
if (warn) {
- _gameRef->LOG(0, "BaseSurfaceStorage warning: purging surface '%s', usage:%d", _surfaces[i]->getFileName(), _surfaces[i]->_referenceCount);
+ BaseEngine::LOG(0, "BaseSurfaceStorage warning: purging surface '%s', usage:%d", _surfaces[i]->getFileName(), _surfaces[i]->_referenceCount);
}
delete _surfaces[i];
}
@@ -111,7 +112,7 @@ BaseSurface *BaseSurfaceStorage::addSurface(const Common::String &filename, bool
if (!BaseFileManager::getEngineInstance()->hasFile(filename)) {
if (filename.size()) {
- _gameRef->LOG(0, "Missing image: '%s'", filename.c_str());
+ BaseEngine::LOG(0, "Missing image: '%s'", filename.c_str());
}
if (_gameRef->_debugDebugMode) {
return addSurface("invalid_debug.bmp", defaultCK, ckRed, ckGreen, ckBlue, lifeTime, keepLoaded);
@@ -144,7 +145,7 @@ bool BaseSurfaceStorage::restoreAll() {
for (uint32 i = 0; i < _surfaces.size(); i++) {
ret = _surfaces[i]->restore();
if (ret != STATUS_OK) {
- _gameRef->LOG(0, "BaseSurfaceStorage::RestoreAll failed");
+ BaseEngine::LOG(0, "BaseSurfaceStorage::RestoreAll failed");
return ret;
}
}
diff --git a/engines/wintermute/base/saveload.cpp b/engines/wintermute/base/saveload.cpp
index 465684a..1b7dfd4 100644
--- a/engines/wintermute/base/saveload.cpp
+++ b/engines/wintermute/base/saveload.cpp
@@ -75,7 +75,7 @@ bool SaveLoad::loadGame(const Common::String &filename, BaseGame *gameRef) {
gameRef->_renderer->endSaveLoad();
- //_gameRef->LOG(0, "Load end %d", BaseUtils::GetUsedMemMB());
+ //BaseEngine::LOG(0, "Load end %d", BaseUtils::GetUsedMemMB());
// AdGame:
if (DID_SUCCEED(ret)) {
SystemClassRegistry::getInstance()->enumInstances(SaveLoad::afterLoadRegion, "AdRegion", nullptr);
Commit: a00c372f9eff8da8820cb06ed784fefb5cac247f
https://github.com/scummvm/scummvm/commit/a00c372f9eff8da8820cb06ed784fefb5cac247f
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2013-04-18T03:31:27-07:00
Commit Message:
WINTERMUTE: Get Renderer from BaseEngine, not BaseGame in BaseClasses.
Changed paths:
engines/wintermute/base/base_active_rect.cpp
engines/wintermute/base/base_sub_frame.cpp
engines/wintermute/base/base_surface_storage.cpp
engines/wintermute/base/base_transition_manager.cpp
diff --git a/engines/wintermute/base/base_active_rect.cpp b/engines/wintermute/base/base_active_rect.cpp
index 4c62cf9..7a91854 100644
--- a/engines/wintermute/base/base_active_rect.cpp
+++ b/engines/wintermute/base/base_active_rect.cpp
@@ -28,6 +28,7 @@
#include "engines/wintermute/base/base_active_rect.h"
#include "engines/wintermute/base/base_game.h"
+#include "engines/wintermute/base/base_engine.h"
#include "engines/wintermute/base/base_region.h"
#include "engines/wintermute/base/gfx/base_renderer.h"
#include "engines/wintermute/platform_osystem.h"
@@ -89,7 +90,7 @@ void BaseActiveRect::clipRect() {
Rect32 rc;
bool customViewport;
_gameRef->getCurrentViewportRect(&rc, &customViewport);
- BaseRenderer *Rend = _gameRef->_renderer;
+ BaseRenderer *Rend = BaseEngine::getRenderer();
if (!customViewport) {
rc.left -= Rend->_drawOffsetX;
diff --git a/engines/wintermute/base/base_sub_frame.cpp b/engines/wintermute/base/base_sub_frame.cpp
index f71935b..d93cf66 100644
--- a/engines/wintermute/base/base_sub_frame.cpp
+++ b/engines/wintermute/base/base_sub_frame.cpp
@@ -239,9 +239,9 @@ bool BaseSubFrame::draw(int x, int y, BaseObject *registerOwner, float zoomX, fl
if (registerOwner != nullptr && !_decoration) {
if (zoomX == 100 && zoomY == 100) {
- _gameRef->_renderer->addRectToList(new BaseActiveRect(_gameRef, registerOwner, this, x - _hotspotX + getRect().left, y - _hotspotY + getRect().top, getRect().right - getRect().left, getRect().bottom - getRect().top, zoomX, zoomY, precise));
+ BaseEngine::getRenderer()->addRectToList(new BaseActiveRect(_gameRef, registerOwner, this, x - _hotspotX + getRect().left, y - _hotspotY + getRect().top, getRect().right - getRect().left, getRect().bottom - getRect().top, zoomX, zoomY, precise));
} else {
- _gameRef->_renderer->addRectToList(new BaseActiveRect(_gameRef, registerOwner, this, (int)(x - (_hotspotX + getRect().left) * (zoomX / 100)), (int)(y - (_hotspotY + getRect().top) * (zoomY / 100)), (int)((getRect().right - getRect().left) * (zoomX / 100)), (int)((getRect().bottom - getRect().top) * (zoomY / 100)), zoomX, zoomY, precise));
+ BaseEngine::getRenderer()->addRectToList(new BaseActiveRect(_gameRef, registerOwner, this, (int)(x - (_hotspotX + getRect().left) * (zoomX / 100)), (int)(y - (_hotspotY + getRect().top) * (zoomY / 100)), (int)((getRect().right - getRect().left) * (zoomX / 100)), (int)((getRect().bottom - getRect().top) * (zoomY / 100)), zoomX, zoomY, precise));
}
}
if (_gameRef->getSuspendedRendering()) {
diff --git a/engines/wintermute/base/base_surface_storage.cpp b/engines/wintermute/base/base_surface_storage.cpp
index d0e6042..8dbd6a6 100644
--- a/engines/wintermute/base/base_surface_storage.cpp
+++ b/engines/wintermute/base/base_surface_storage.cpp
@@ -122,7 +122,7 @@ BaseSurface *BaseSurfaceStorage::addSurface(const Common::String &filename, bool
}
BaseSurface *surface;
- surface = _gameRef->_renderer->createSurface();
+ surface = BaseEngine::getRenderer()->createSurface();
if (!surface) {
return nullptr;
diff --git a/engines/wintermute/base/base_transition_manager.cpp b/engines/wintermute/base/base_transition_manager.cpp
index 6ae51d8..1c869e6 100644
--- a/engines/wintermute/base/base_transition_manager.cpp
+++ b/engines/wintermute/base/base_transition_manager.cpp
@@ -28,6 +28,7 @@
#include "engines/wintermute/base/base_transition_manager.h"
#include "engines/wintermute/base/base_game.h"
+#include "engines/wintermute/base/base_engine.h"
#include "engines/wintermute/base/gfx/base_renderer.h"
namespace Wintermute {
@@ -103,7 +104,7 @@ bool BaseTransitionMgr::update() {
uint32 time = g_system->getMillis() - _lastTime;
int alpha = (int)(255 - (float)time / (float)FADE_DURATION * 255);
alpha = MIN(255, MAX(alpha, 0));
- _gameRef->_renderer->fade((uint16)alpha);
+ BaseEngine::getRenderer()->fade((uint16)alpha);
if (time > FADE_DURATION) {
_state = TRANS_MGR_READY;
@@ -115,7 +116,7 @@ bool BaseTransitionMgr::update() {
uint32 time = g_system->getMillis() - _lastTime;
int alpha = (int)((float)time / (float)FADE_DURATION * 255);
alpha = MIN(255, MAX(alpha, 0));
- _gameRef->_renderer->fade((uint16)alpha);
+ BaseEngine::getRenderer()->fade((uint16)alpha);
if (time > FADE_DURATION) {
_state = TRANS_MGR_READY;
More information about the Scummvm-git-logs
mailing list