aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra
diff options
context:
space:
mode:
authorNorbert Lange2009-08-14 13:15:40 +0000
committerNorbert Lange2009-08-14 13:15:40 +0000
commit2b147c57161cdacf3cdc5bc572ce46160cbd6b5e (patch)
treec1164c49d1b2987b77a93d64eb26e432dabb221b /engines/kyra
parent29b145310c6263124d3a4930136cb7ecba8eb1d8 (diff)
downloadscummvm-rg350-2b147c57161cdacf3cdc5bc572ce46160cbd6b5e.tar.gz
scummvm-rg350-2b147c57161cdacf3cdc5bc572ce46160cbd6b5e.tar.bz2
scummvm-rg350-2b147c57161cdacf3cdc5bc572ce46160cbd6b5e.zip
changed handling of finale - music should use right tempo now
svn-id: r43364
Diffstat (limited to 'engines/kyra')
-rw-r--r--engines/kyra/sequences_lok.cpp6
-rw-r--r--engines/kyra/sound_amiga.cpp28
2 files changed, 17 insertions, 17 deletions
diff --git a/engines/kyra/sequences_lok.cpp b/engines/kyra/sequences_lok.cpp
index 2f902aa1c5..83b4dd9af4 100644
--- a/engines/kyra/sequences_lok.cpp
+++ b/engines/kyra/sequences_lok.cpp
@@ -997,9 +997,9 @@ int KyraEngine_LoK::seq_playEnd() {
if (_flags.platform == Common::kPlatformAmiga) {
_sound->loadSoundFile(kMusicFinale);
- // The original used 0 here. Due to how our Sound code
- // is implemented we need to use track 10 here though.
- _sound->playTrack(10);
+ // The original started song 0 directly here. Since our player
+ // uses 0, 1 for stop and fade we start song 0 with 2
+ _sound->playTrack(2);
}
_finalA = createWSAMovie();
diff --git a/engines/kyra/sound_amiga.cpp b/engines/kyra/sound_amiga.cpp
index 6602759b33..0b64e67525 100644
--- a/engines/kyra/sound_amiga.cpp
+++ b/engines/kyra/sound_amiga.cpp
@@ -120,13 +120,14 @@ void SoundAmiga::loadSoundFile(uint file) {
void SoundAmiga::playTrack(uint8 track) {
debugC(5, kDebugLevelSound, "SoundAmiga::playTrack(%d)", track);
- static const byte tempoIntro[6] = { 0x46, 0x55, 0x3C, 0x41, 0x78, 0x50 };
- static const byte tempoIngame[23] = {
+ static const byte tempoIntro[] = { 0x46, 0x55, 0x3C, 0x41 };
+ static const byte tempoFinal[] = { 0x78, 0x50 };
+ static const byte tempoIngame[] = {
0x64, 0x64, 0x64, 0x64, 0x64, 0x73, 0x4B, 0x64,
0x64, 0x64, 0x55, 0x9C, 0x6E, 0x91, 0x78, 0x84,
0x32, 0x64, 0x64, 0x6E, 0x3C, 0xD8, 0xAF
};
- static const byte loopIngame[23] = {
+ static const byte loopIngame[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00
@@ -139,17 +140,6 @@ void SoundAmiga::playTrack(uint8 track) {
switch (_fileLoaded) {
- case kFileFinal:
- // score 0 gets started immediately after loading the music-files with different tempo.
- // we need to define a track-value for the fake call of this function
- if (track == 10) {
- score = 0;
- loop = true;
- tempo = 0x78;
- break;
- }
- // if this is not the hardcoded start of the song then
- // Fallthrough
case kFileIntro:
if (track >= 2 && track < ARRAYSIZE(tempoIntro) + 2) {
score = track - 2;
@@ -165,6 +155,16 @@ void SoundAmiga::playTrack(uint8 track) {
}
break;
+ case kFileFinal:
+ // score 0 gets started immediately after loading the music-files with different tempo.
+ // we need to define a track-value for the fake call of this function
+ if (track >= 2 && track < ARRAYSIZE(tempoFinal) + 2) {
+ score = track - 2;
+ loop = true;
+ tempo = tempoFinal[score];
+ }
+ break;
+
default:
return;
}