[Scummvm-cvs-logs] SF.net SVN: scummvm:[35007] scummvm/trunk/engines/saga
thebluegr at users.sourceforge.net
thebluegr at users.sourceforge.net
Tue Nov 11 18:34:52 CET 2008
Revision: 35007
http://scummvm.svn.sourceforge.net/scummvm/?rev=35007&view=rev
Author: thebluegr
Date: 2008-11-11 17:34:52 +0000 (Tue, 11 Nov 2008)
Log Message:
-----------
Implemented pauseEngineIntern() for the SAGA engine
Modified Paths:
--------------
scummvm/trunk/engines/saga/music.cpp
scummvm/trunk/engines/saga/music.h
scummvm/trunk/engines/saga/render.cpp
scummvm/trunk/engines/saga/saga.cpp
scummvm/trunk/engines/saga/saga.h
Modified: scummvm/trunk/engines/saga/music.cpp
===================================================================
--- scummvm/trunk/engines/saga/music.cpp 2008-11-11 13:10:34 UTC (rev 35006)
+++ scummvm/trunk/engines/saga/music.cpp 2008-11-11 17:34:52 UTC (rev 35007)
@@ -366,6 +366,7 @@
_songTable = 0;
_midiMusicData = NULL;
+ _digitalMusic = false;
}
Music::~Music() {
@@ -474,6 +475,7 @@
stream = Audio::AudioStream::openStreamFile(trackName[i], 0, 10000 * 40 / 3, (flags == MUSIC_LOOP) ? 0 : 1);
if (stream) {
_mixer->playInputStream(Audio::Mixer::kMusicSoundType, &_musicHandle, stream);
+ _digitalMusic = true;
return;
}
}
@@ -497,6 +499,7 @@
if (audioStream) {
debug(2, "Playing digitized music");
_mixer->playInputStream(Audio::Mixer::kMusicSoundType, &_musicHandle, audioStream);
+ _digitalMusic = true;
return;
}
Modified: scummvm/trunk/engines/saga/music.h
===================================================================
--- scummvm/trunk/engines/saga/music.h 2008-11-11 13:10:34 UTC (rev 35006)
+++ scummvm/trunk/engines/saga/music.h 2008-11-11 17:34:52 UTC (rev 35007)
@@ -113,6 +113,7 @@
bool hasAdlib() { return _adlib; }
void setPassThrough(bool b) { _player->setPassThrough(b); }
bool isPlaying(void);
+ bool hasDigitalMusic() { return _digitalMusic; }
void play(uint32 resourceId, MusicFlags flags = MUSIC_DEFAULT);
void pause(void);
@@ -138,6 +139,7 @@
int _targetVolume;
int _currentVolume;
int _currentVolumePercent;
+ bool _digitalMusic;
ResourceContext *_digitalMusicContext;
MidiParser *xmidiParser;
Modified: scummvm/trunk/engines/saga/render.cpp
===================================================================
--- scummvm/trunk/engines/saga/render.cpp 2008-11-11 13:10:34 UTC (rev 35006)
+++ scummvm/trunk/engines/saga/render.cpp 2008-11-11 17:34:52 UTC (rev 35007)
@@ -42,7 +42,8 @@
namespace Saga {
const char *test_txt = "The quick brown fox jumped over the lazy dog. She sells sea shells down by the sea shore.";
-const char *pauseString = "PAWS GAME";
+const char *pauseStringITE = "PAWS GAME";
+const char *pauseStringIHNM = "Game Paused";
Render::Render(SagaEngine *vm, OSystem *system) {
_vm = vm;
@@ -153,10 +154,17 @@
// Display "paused game" message, if applicable
if (_flags & RF_RENDERPAUSE) {
- textPoint.x = (backBufferSurface->w - _vm->_font->getStringWidth(kKnownFontPause, pauseString, 0, kFontOutline)) / 2;
- textPoint.y = 90;
+ if (_vm->getGameType() == GType_ITE) {
+ textPoint.x = (backBufferSurface->w - _vm->_font->getStringWidth(kKnownFontPause, pauseStringITE, 0, kFontOutline)) / 2;
+ textPoint.y = 90;
- _vm->_font->textDraw(kKnownFontPause, backBufferSurface, pauseString, textPoint, kITEColorBrightWhite, kITEColorBlack, kFontOutline);
+ _vm->_font->textDraw(kKnownFontPause, backBufferSurface, pauseStringITE, textPoint, _vm->KnownColor2ColorId(kKnownColorBrightWhite), _vm->KnownColor2ColorId(kKnownColorBlack), kFontOutline);
+ } else {
+ textPoint.x = (backBufferSurface->w - _vm->_font->getStringWidth(kKnownFontPause, pauseStringIHNM, 0, kFontOutline)) / 2;
+ textPoint.y = 90;
+
+ _vm->_font->textDraw(kKnownFontPause, backBufferSurface, pauseStringIHNM, textPoint, _vm->KnownColor2ColorId(kKnownColorBrightWhite), _vm->KnownColor2ColorId(kKnownColorBlack), kFontOutline);
+ }
}
// Update user interface
Modified: scummvm/trunk/engines/saga/saga.cpp
===================================================================
--- scummvm/trunk/engines/saga/saga.cpp 2008-11-11 13:10:34 UTC (rev 35006)
+++ scummvm/trunk/engines/saga/saga.cpp 2008-11-11 17:34:52 UTC (rev 35007)
@@ -532,4 +532,22 @@
_sound->setVolume();
}
+void SagaEngine::pauseEngineIntern(bool pause) {
+ bool isPaused = (_render->getFlags() & RF_RENDERPAUSE);
+ if (isPaused == pause)
+ return;
+
+ if (pause) {
+ _render->setFlag(RF_RENDERPAUSE);
+ if (!_music->hasDigitalMusic())
+ _music->pause();
+ } else {
+ _render->clearFlag(RF_RENDERPAUSE);
+ if (!_music->hasDigitalMusic())
+ _music->resume();
+ }
+
+ _mixer->pauseAll(pause);
+}
+
} // End of namespace Saga
Modified: scummvm/trunk/engines/saga/saga.h
===================================================================
--- scummvm/trunk/engines/saga/saga.h 2008-11-11 13:10:34 UTC (rev 35006)
+++ scummvm/trunk/engines/saga/saga.h 2008-11-11 17:34:52 UTC (rev 35007)
@@ -493,6 +493,7 @@
virtual Common::Error go();
virtual bool hasFeature(EngineFeature f) const;
virtual void syncSoundSettings();
+ virtual void pauseEngineIntern(bool pause);
public:
SagaEngine(OSystem *syst, const SAGAGameDescription *gameDesc);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list