DC: Use OSystem's 'slots' for timer/savefile manager & fsFactory
This commit is contained in:
parent
04afdf7c7d
commit
c30018ef37
4 changed files with 8 additions and 12 deletions
|
@ -185,24 +185,19 @@ public:
|
|||
void setWindowCaption(const char *caption);
|
||||
|
||||
// Modulatized backend
|
||||
Common::SaveFileManager *getSavefileManager() { return _savefile; }
|
||||
Audio::Mixer *getMixer() { return _mixer; }
|
||||
Common::TimerManager *getTimerManager() { return _timer; }
|
||||
|
||||
// Extra SoftKbd support
|
||||
void mouseToSoftKbd(int x, int y, int &rx, int &ry) const;
|
||||
|
||||
// Filesystem
|
||||
FilesystemFactory *getFilesystemFactory() { return this; }
|
||||
AbstractFSNode *makeRootFileNode() const;
|
||||
AbstractFSNode *makeCurrentDirectoryFileNode() const;
|
||||
AbstractFSNode *makeFileNodePath(const Common::String &path) const;
|
||||
|
||||
private:
|
||||
|
||||
Common::SaveFileManager *_savefile;
|
||||
Audio::MixerImpl *_mixer;
|
||||
DefaultTimerManager *_timer;
|
||||
SoftKeyboard _softkbd;
|
||||
|
||||
int _ms_cur_x, _ms_cur_y, _ms_cur_w, _ms_cur_h, _ms_old_x, _ms_old_y;
|
||||
|
|
|
@ -41,20 +41,21 @@ const char *gGameName;
|
|||
|
||||
OSystem_Dreamcast::OSystem_Dreamcast()
|
||||
: _devpoll(0), screen(NULL), mouse(NULL), overlay(NULL), _softkbd(this),
|
||||
_ms_buf(NULL), _timer(NULL), _mixer(NULL), _savefile(NULL),
|
||||
_ms_buf(NULL), _mixer(NULL),
|
||||
_current_shake_pos(0), _aspect_stretch(false), _softkbd_on(false),
|
||||
_softkbd_motion(0), _enable_cursor_palette(false), _screenFormat(0)
|
||||
{
|
||||
memset(screen_tx, 0, sizeof(screen_tx));
|
||||
memset(mouse_tx, 0, sizeof(mouse_tx));
|
||||
memset(ovl_tx, 0, sizeof(ovl_tx));
|
||||
_fsFactory = this;
|
||||
}
|
||||
|
||||
void OSystem_Dreamcast::initBackend()
|
||||
{
|
||||
ConfMan.setInt("autosave_period", 0);
|
||||
_savefile = createSavefileManager();
|
||||
_timer = new DefaultTimerManager();
|
||||
_savefileManager = createSavefileManager();
|
||||
_timerManager = new DefaultTimerManager();
|
||||
|
||||
uint sampleRate = initSound();
|
||||
_mixer = new Audio::MixerImpl(this, sampleRate);
|
||||
|
|
|
@ -192,8 +192,8 @@ bool OSystem_Dreamcast::pollEvent(Common::Event &event)
|
|||
{
|
||||
unsigned int t = Timer();
|
||||
|
||||
if (_timer != NULL)
|
||||
_timer->handler();
|
||||
if (_timerManager != NULL)
|
||||
((DefaultTimerManager *)_timerManager)->handler();
|
||||
|
||||
if (((int)(t-_devpoll))<0)
|
||||
return false;
|
||||
|
|
|
@ -48,8 +48,8 @@ void OSystem_Dreamcast::delayMillis(uint msecs)
|
|||
unsigned int t, start = Timer();
|
||||
int time = (((unsigned int)msecs)*3125U)>>6;
|
||||
while (((int)((t = Timer())-start))<time) {
|
||||
if (_timer != NULL)
|
||||
_timer->handler();
|
||||
if (_timerManager != NULL)
|
||||
((DefaultTimerManager *)_timerManager)->handler();
|
||||
checkSound();
|
||||
}
|
||||
getMillis();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue