aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dists/engine-data/kyra.datbin232687 -> 231823 bytes
-rw-r--r--engines/kyra/sequences_hof.cpp4
-rw-r--r--engines/kyra/sound_towns.cpp5
-rw-r--r--engines/kyra/staticres.cpp10
-rw-r--r--tools/create_kyradat/create_kyradat.cpp7
-rw-r--r--tools/create_kyradat/create_kyradat.h2
-rw-r--r--tools/create_kyradat/hof_towns.h2
-rw-r--r--tools/create_kyradat/misc.h2
8 files changed, 18 insertions, 14 deletions
diff --git a/dists/engine-data/kyra.dat b/dists/engine-data/kyra.dat
index 7706b1a9dc..c1504ebba8 100644
--- a/dists/engine-data/kyra.dat
+++ b/dists/engine-data/kyra.dat
Binary files differ
diff --git a/engines/kyra/sequences_hof.cpp b/engines/kyra/sequences_hof.cpp
index 23b6da2314..3e9f6030ac 100644
--- a/engines/kyra/sequences_hof.cpp
+++ b/engines/kyra/sequences_hof.cpp
@@ -284,8 +284,10 @@ void KyraEngine_HoF::seq_playSequences(int startSeq, int endSeq) {
seq_sequenceCommand(cseq.finalCommand);
seq_resetAllTextEntries();
- if (_abortIntroFlag || skipFlag())
+ if (_abortIntroFlag || skipFlag()) {
_sound->haltTrack();
+ _sound->voiceStop();
+ }
if (_flags.isDemo && !_flags.isTalkie) {
if (seqNum == kSequenceDemoFisher) {
diff --git a/engines/kyra/sound_towns.cpp b/engines/kyra/sound_towns.cpp
index 9efdee6c2a..513f523194 100644
--- a/engines/kyra/sound_towns.cpp
+++ b/engines/kyra/sound_towns.cpp
@@ -1443,10 +1443,7 @@ bool SoundTowns_v2::voicePlay(const char *file, bool) {
}
char filename [13];
- if (scumm_stricmp(file + strlen(file) - 4, ".PCM"))
- sprintf(filename, "%s.PCM", file);
- else
- strcpy(filename, file);
+ sprintf(filename, "%s.PCM", file);
uint8 * data = _vm->resource()->fileData(filename, 0);
uint8 * src = data;
diff --git a/engines/kyra/staticres.cpp b/engines/kyra/staticres.cpp
index a03fa82a39..3904ae550f 100644
--- a/engines/kyra/staticres.cpp
+++ b/engines/kyra/staticres.cpp
@@ -44,7 +44,7 @@
namespace Kyra {
-#define RESFILE_VERSION 26
+#define RESFILE_VERSION 27
bool StaticResource::checkKyraDat() {
Common::File kyraDat;
@@ -1226,10 +1226,12 @@ void KyraEngine_HoF::initStaticResource() {
tmpSndLst[i] = new char[len + 1];
tmpSndLst[i][0] = 0;
- if (tlkfiles) {
+ if (tlkfiles && strlen(seqSoundList[i])) {
for (int ii = 0; ii < tmpSize; ii++) {
- if (!scumm_stricmp(&seqSoundList[i][1], &tlkfiles[ii][1]))
- strcpy(tmpSndLst[i], tlkfiles[ii]);
+ if (strlen(seqSoundList[i])) {
+ if (!scumm_stricmp(&seqSoundList[i][1], &tlkfiles[ii][1]))
+ strcpy(tmpSndLst[i], tlkfiles[ii]);
+ }
}
}
diff --git a/tools/create_kyradat/create_kyradat.cpp b/tools/create_kyradat/create_kyradat.cpp
index e49b5672b4..abd1d54570 100644
--- a/tools/create_kyradat/create_kyradat.cpp
+++ b/tools/create_kyradat/create_kyradat.cpp
@@ -31,7 +31,7 @@
#include "md5.h"
enum {
- kKyraDatVersion = 26,
+ kKyraDatVersion = 27,
kIndexSize = 12
};
@@ -87,8 +87,8 @@ const ExtractType extractTypeTable[] = {
{ k2TypeSeqData, extractHofSeqData, createFilename },
{ k2TypeShpDataV1, extractHofShapeAnimDataV1, createFilename },
{ k2TypeShpDataV2, extractHofShapeAnimDataV2, createFilename },
-
{ k2TypeSoundList, extractStringsWoSuffix, createFilename },
+ { k2TypeLangSoundList, extractStringsWoSuffix, createLangFilename },
{ k2TypeSfxList, extractPaddedStrings, createFilename },
{ k3TypeRaw16to8, extractRaw16to8, createFilename },
{ k3TypeShpData, extractMrShapeAnimData, createFilename },
@@ -219,7 +219,7 @@ const ExtractFilename extractFilenames[] = {
{ k2SeqplayCreditsSpecial, kTypeStringList, "S_CREDITS2.TXT" },
{ k2SeqplayStrings, kTypeLanguageList, "S_STRINGS" },
{ k2SeqplaySfxFiles, k2TypeSoundList, "S_SFXFILES.TXT" },
- { k2SeqplayTlkFiles, kTypeLanguageList, "S_TLKFILES" },
+ { k2SeqplayTlkFiles, k2TypeLangSoundList, "S_TLKFILES" },
{ k2SeqplaySeqData, k2TypeSeqData, "S_DATA.SEQ" },
{ k2SeqplayIntroTracks, kTypeStringList, "S_INTRO.TRA" },
{ k2SeqplayFinaleTracks, kTypeStringList, "S_FINALE.TRA" },
@@ -230,6 +230,7 @@ const ExtractFilename extractFilenames[] = {
// Ingame
{ k2IngamePakFiles, kTypeStringList, "I_PAKFILES.TXT" },
{ k2IngameSfxFiles, kTypeStringList, "I_SFXFILES.TRA" },
+ { k2IngameSfxFilesTns, k2TypeSoundList, "I_SFXFILES.TRA" },
{ k2IngameSfxIndex, kTypeRawData, "I_SFXINDEX.MAP" },
{ k2IngameTracks, kTypeStringList, "I_TRACKS.TRA" },
{ k2IngameCDA, kTypeRawData, "I_TRACKS.CDA" },
diff --git a/tools/create_kyradat/create_kyradat.h b/tools/create_kyradat/create_kyradat.h
index 62cfbc3374..c8bcb7d583 100644
--- a/tools/create_kyradat/create_kyradat.h
+++ b/tools/create_kyradat/create_kyradat.h
@@ -156,6 +156,7 @@ enum kExtractID {
k2IngamePakFiles,
k2IngameSfxFiles,
+ k2IngameSfxFilesTns,
k2IngameSfxIndex,
k2IngameTracks,
k2IngameCDA,
@@ -257,6 +258,7 @@ enum kExtractType {
k2TypeShpDataV1,
k2TypeShpDataV2,
k2TypeSoundList,
+ k2TypeLangSoundList,
k2TypeSfxList,
k3TypeRaw16to8,
diff --git a/tools/create_kyradat/hof_towns.h b/tools/create_kyradat/hof_towns.h
index bff2b35673..f2dd82d431 100644
--- a/tools/create_kyradat/hof_towns.h
+++ b/tools/create_kyradat/hof_towns.h
@@ -15,7 +15,7 @@ const ExtractEntry kyra2File1FMTownsJ[] = {
const ExtractEntry kyra2File2FMTownsE[] = {
{ k2IngamePakFiles, 0x00000540, 0x0000065C },
- { k2IngameSfxFiles, 0x00003E3C, 0x000047A3 },
+ { k2IngameSfxFilesTns, 0x00003E3C, 0x000047A3 },
{ k2IngameSfxIndex, 0x00013980, 0x00013CD8 },
{ k2IngameCDA, 0x0001808C, 0x000181BC },
{ k2IngameTalkObjIndex, 0x000199B6, 0x00019A30 },
diff --git a/tools/create_kyradat/misc.h b/tools/create_kyradat/misc.h
index 194624acba..1e1cd29cc9 100644
--- a/tools/create_kyradat/misc.h
+++ b/tools/create_kyradat/misc.h
@@ -433,7 +433,7 @@ const int kyra2TownsFile1JapNeed[] = {
const int kyra2TownsFile2EngNeed[] = {
k2IngamePakFiles,
- k2IngameSfxFiles,
+ k2IngameSfxFilesTns,
k2IngameSfxIndex,
k2IngameCDA,
k2IngameTalkObjIndex,