[Scummvm-cvs-logs] SF.net SVN: scummvm: [27545] scummvm/trunk/engines/saga

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Tue Jun 19 13:23:21 CEST 2007


Revision: 27545
          http://scummvm.svn.sourceforge.net/scummvm/?rev=27545&view=rev
Author:   thebluegr
Date:     2007-06-19 04:23:20 -0700 (Tue, 19 Jun 2007)

Log Message:
-----------
When saving the game in IHNM after a chapter point change, the chapter point change music will no longer be incorrectly saved, and the normal chapter music will be saved instead

Modified Paths:
--------------
    scummvm/trunk/engines/saga/scene.cpp
    scummvm/trunk/engines/saga/scene.h
    scummvm/trunk/engines/saga/sfuncs.cpp

Modified: scummvm/trunk/engines/saga/scene.cpp
===================================================================
--- scummvm/trunk/engines/saga/scene.cpp	2007-06-19 11:12:56 UTC (rev 27544)
+++ scummvm/trunk/engines/saga/scene.cpp	2007-06-19 11:23:20 UTC (rev 27545)
@@ -568,6 +568,8 @@
 	event.time = 0;
 	_vm->_events->queue(&event);
 
+	_chapterPointsChanged = false;
+
 	if ((_vm->getGameType() == GType_IHNM) && (loadSceneParams->chapter != NO_CHAPTER_CHANGE)) {
 		if (loadSceneParams->loadFlag != kLoadBySceneNumber) {
 			error("loadScene wrong usage");

Modified: scummvm/trunk/engines/saga/scene.h
===================================================================
--- scummvm/trunk/engines/saga/scene.h	2007-06-19 11:12:56 UTC (rev 27544)
+++ scummvm/trunk/engines/saga/scene.h	2007-06-19 11:23:20 UTC (rev 27545)
@@ -321,6 +321,8 @@
 	void setCurrentMusicTrack(int tr) { _currentMusicTrack = tr; }
 	int getCurrentMusicRepeat() const { return _currentMusicRepeat; }
 	void setCurrentMusicRepeat(int rp) { _currentMusicRepeat = rp; }
+	bool haveChapterPointsChanged() const { return _chapterPointsChanged; }
+	void setChapterPointsChanged(bool cp) { _chapterPointsChanged = cp; }
 
 	void cutawaySkip() {
 		if (_vm->_scene->isInIntro())
@@ -361,6 +363,7 @@
 	int _sceneResourceId;
 	int _currentMusicTrack;
 	int _currentMusicRepeat;
+	bool _chapterPointsChanged;
 	bool _inGame;
 	bool _loadDescription;
 	SceneDescription _sceneDescription;

Modified: scummvm/trunk/engines/saga/sfuncs.cpp
===================================================================
--- scummvm/trunk/engines/saga/sfuncs.cpp	2007-06-19 11:12:56 UTC (rev 27544)
+++ scummvm/trunk/engines/saga/sfuncs.cpp	2007-06-19 11:23:20 UTC (rev 27545)
@@ -1683,8 +1683,13 @@
 		} else {
 			_vm->_music->setVolume(-1, 1);
 			_vm->_music->play(_vm->_music->_songTable[param1], param2 ? MUSIC_LOOP : MUSIC_NORMAL);
-			_vm->_scene->setCurrentMusicTrack(param1);
-			_vm->_scene->setCurrentMusicRepeat(param2);
+			if (!_vm->_scene->haveChapterPointsChanged()) {
+				_vm->_scene->setCurrentMusicTrack(param1);
+				_vm->_scene->setCurrentMusicRepeat(param2);
+			} else {
+				// Don't save this music track when saving in IHNM
+				_vm->_scene->setChapterPointsChanged(false);
+			}
 		}
 	}
 }
@@ -1885,6 +1890,7 @@
 
 	_vm->_ethicsPoints[chapter] = ethics;
 	_vm->_spiritualBarometer = ethics * 256 / barometer;
+	_vm->_scene->setChapterPointsChanged(true);		// don't save this music when saving in IHNM
 }
 
 void Script::sfSetPortraitBgColor(SCRIPTFUNC_PARAMS) {


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