[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