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

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Tue Jun 19 04:43:00 CEST 2007


Revision: 27542
          http://scummvm.svn.sourceforge.net/scummvm/?rev=27542&view=rev
Author:   thebluegr
Date:     2007-06-18 19:42:59 -0700 (Mon, 18 Jun 2007)

Log Message:
-----------
The correct music track is now played when loading a game in IHNM. The save/load mechanism in IHNM seems to be working correctly now (although it needs testing), however there are still some graphical glitches with the save/load dialogs. Also, moved some unfinished code for returning to the chapter selection screen to a more appropriate place

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

Modified: scummvm/trunk/engines/saga/saveload.cpp
===================================================================
--- scummvm/trunk/engines/saga/saveload.cpp	2007-06-19 01:41:10 UTC (rev 27541)
+++ scummvm/trunk/engines/saga/saveload.cpp	2007-06-19 02:42:59 UTC (rev 27542)
@@ -195,6 +195,8 @@
 		out->writeSint32LE(_scene->currentChapterNumber());
 		// Protagonist
 		out->writeSint32LE(_scene->currentProtag());
+		out->writeSint32LE(_scene->getCurrentMusicTrack());
+		out->writeSint32LE(_scene->getCurrentMusicRepeat());
 	}
 
 	// Inset scene
@@ -270,6 +272,10 @@
 		_scene->setProtag(in->readSint32LE());
 		if (_scene->currentChapterNumber())
 			_scene->changeScene(-2, 0, kTransitionFade, _scene->currentChapterNumber());
+		_scene->setCurrentMusicTrack(in->readSint32LE());
+		_scene->setCurrentMusicRepeat(in->readSint32LE());
+		_music->stop();
+		_music->play(_music->_songTable[_scene->getCurrentMusicTrack()], _scene->getCurrentMusicRepeat() ? MUSIC_LOOP : MUSIC_NORMAL);			
 	}
 
 	// Inset scene

Modified: scummvm/trunk/engines/saga/scene.cpp
===================================================================
--- scummvm/trunk/engines/saga/scene.cpp	2007-06-19 01:41:10 UTC (rev 27541)
+++ scummvm/trunk/engines/saga/scene.cpp	2007-06-19 02:42:59 UTC (rev 27542)
@@ -478,11 +478,6 @@
 		endScene();
 	}
 
-	if (sceneParams.sceneDescriptor == -1 && _vm->getGameType() == GType_IHNM) {
-		sceneParams.chapter = 8;
-		sceneParams.sceneDescriptor = 152;
-	}
-
 	loadScene(&sceneParams);
 }
 

Modified: scummvm/trunk/engines/saga/scene.h
===================================================================
--- scummvm/trunk/engines/saga/scene.h	2007-06-19 01:41:10 UTC (rev 27541)
+++ scummvm/trunk/engines/saga/scene.h	2007-06-19 02:42:59 UTC (rev 27542)
@@ -317,6 +317,11 @@
 	void setChapterNumber(int ch) { _chapterNumber = ch; }
 	int getOutsetSceneNumber() const { return _outsetSceneNumber; }
 	int currentSceneResourceId() const { return _sceneResourceId; }
+	int getCurrentMusicTrack() const { return _currentMusicTrack; }
+	void setCurrentMusicTrack(int tr) { _currentMusicTrack = tr; }
+	int getCurrentMusicRepeat() const { return _currentMusicRepeat; }
+	void setCurrentMusicRepeat(int rp) { _currentMusicRepeat = rp; }
+
 	void cutawaySkip() {
 		if (_vm->_scene->isInIntro())
 			_vm->_framesEsc = 2;
@@ -354,6 +359,8 @@
 	int _chapterNumber;
 	int _outsetSceneNumber;
 	int _sceneResourceId;
+	int _currentMusicTrack;
+	int _currentMusicRepeat;
 	bool _inGame;
 	bool _loadDescription;
 	SceneDescription _sceneDescription;

Modified: scummvm/trunk/engines/saga/sfuncs.cpp
===================================================================
--- scummvm/trunk/engines/saga/sfuncs.cpp	2007-06-19 01:41:10 UTC (rev 27541)
+++ scummvm/trunk/engines/saga/sfuncs.cpp	2007-06-19 02:42:59 UTC (rev 27542)
@@ -574,7 +574,14 @@
 		_vm->_interface->setMode(kPanelMain);
 	}
 
-	_vm->_scene->changeScene(sceneNumber, entrance, (sceneNumber == ITE_SCENE_ENDCREDIT1) ? kTransitionFade : kTransitionNoFade);
+	if (sceneNumber == -1 && _vm->getGameType() == GType_IHNM) {
+		// TODO: This is used to return back to the character selection screen in IHNM.
+		// However, it seems more than this is needed, AM's speech is wrong and no actors
+		// are shown
+		_vm->_scene->changeScene(154, entrance, kTransitionFade, 8);
+	} else {
+		_vm->_scene->changeScene(sceneNumber, entrance, (sceneNumber == ITE_SCENE_ENDCREDIT1) ? kTransitionFade : kTransitionNoFade);
+	}
 
 	//TODO: placard stuff
 	_pendingVerb = _vm->_script->getVerbType(kVerbNone);
@@ -1676,6 +1683,8 @@
 		} 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);
 		}
 	}
 }


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