[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