aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra
diff options
context:
space:
mode:
authorJohannes Schickel2007-02-07 19:30:49 +0000
committerJohannes Schickel2007-02-07 19:30:49 +0000
commit63e3dfb1d146bdb79e57973f4330f44d39b40b73 (patch)
treeab80c1635d7cb8bb64a4e790a5b6e74259e2572c /engines/kyra
parente9e62cf67a8690c93a8f4949cabbeca82fd8603d (diff)
downloadscummvm-rg350-63e3dfb1d146bdb79e57973f4330f44d39b40b73.tar.gz
scummvm-rg350-63e3dfb1d146bdb79e57973f4330f44d39b40b73.tar.bz2
scummvm-rg350-63e3dfb1d146bdb79e57973f4330f44d39b40b73.zip
Support for new kyra.dat, which includes static data from the fm-towns version.
svn-id: r25416
Diffstat (limited to 'engines/kyra')
-rw-r--r--engines/kyra/seqplayer.cpp17
-rw-r--r--engines/kyra/staticres.cpp17
2 files changed, 14 insertions, 20 deletions
diff --git a/engines/kyra/seqplayer.cpp b/engines/kyra/seqplayer.cpp
index 5f7f020e1b..af173cad44 100644
--- a/engines/kyra/seqplayer.cpp
+++ b/engines/kyra/seqplayer.cpp
@@ -400,20 +400,11 @@ void SeqPlayer::s1_playEffect() {
void SeqPlayer::s1_playTrack() {
uint8 msg = *_seqData++;
- // HACK: as long as we don't have extracted static data from the fm-towns
- // version in kyra.dat we use this to get music working
- if (_vm->gameFlags().platform == Common::kPlatformFMTowns) {
- if (msg <= 1)
- _vm->snd_playWanderScoreViaMap(msg, 0);
- else
- _vm->snd_playWanderScoreViaMap(msg+55, 0);
+ if (msg == 1) {
+ _sound->beginFadeOut();
} else {
- if (msg == 1) {
- _sound->beginFadeOut();
- } else {
- _sound->haltTrack();
- _sound->playTrack(msg);
- }
+ _sound->haltTrack();
+ _sound->playTrack(msg);
}
}
diff --git a/engines/kyra/staticres.cpp b/engines/kyra/staticres.cpp
index 2367a8e268..fe7a68d988 100644
--- a/engines/kyra/staticres.cpp
+++ b/engines/kyra/staticres.cpp
@@ -31,7 +31,7 @@
namespace Kyra {
-#define RESFILE_VERSION 14
+#define RESFILE_VERSION 15
bool StaticResource::checkKyraDat() {
Common::File kyraDat;
@@ -74,7 +74,7 @@ enum {
GF_AMIGA = 1 << 17 // this is no special version flag yet!
};
-#define GAME_FLAGS (GF_FLOPPY | GF_TALKIE | GF_DEMO/* | GF_AUDIOCD*/)
+#define GAME_FLAGS (GF_FLOPPY | GF_TALKIE | GF_DEMO | GF_FMTOWNS)
#define LANGUAGE_FLAGS (GF_ENGLISH | GF_FRENCH | GF_GERMAN | GF_SPANISH | GF_ITALIAN | GF_JAPANESE | GF_LNGUNK)
uint32 createFeatures(const GameFlags &flags) {
@@ -82,8 +82,8 @@ uint32 createFeatures(const GameFlags &flags) {
return GF_TALKIE;
if (flags.isDemo)
return GF_DEMO;
- //if (flags.platform == Common::kPlatformFMTowns)
- // return GF_FMTOWNS;
+ if (flags.platform == Common::kPlatformFMTowns)
+ return GF_FMTOWNS;
return GF_FLOPPY;
}
@@ -98,6 +98,8 @@ uint32 createLanguage(const GameFlags &flags) {
return GF_SPANISH;
if (flags.lang == Common::IT_ITA)
return GF_ITALIAN;
+ if (flags.lang == Common::JA_JPN)
+ return GF_JAPANESE;
return GF_LNGUNK;
}
@@ -112,6 +114,7 @@ static const LanguageTypes languages[] = {
{ GF_GERMAN, "GER" },
{ GF_SPANISH, "SPA" },
{ GF_ITALIAN, "ITA" },
+ { GF_JAPANESE, "JPN" },
{ 0, 0 }
};
@@ -203,7 +206,7 @@ bool StaticResource::init() {
{ kPaletteList, kPaletteTable, "1 33 PALTABLE" },
// FM-TOWNS specific
- { kKyra1TownsSFXTable, kRawData, "SFXTABLE.TSX" },
+ { kKyra1TownsSFXTable, kRawData, "SFXTABLE" },
{ 0, 0, 0 }
};
@@ -607,9 +610,9 @@ uint8 *StaticResource::getFile(const char *name, int &size) {
ext = ".CD";
} else if (_engine->gameFlags().isDemo) {
ext = ".DEM";
- } /*else if (_engine->gameFlags().platform == Common::kPlatformFMTowns) {
+ } else if (_engine->gameFlags().platform == Common::kPlatformFMTowns) {
ext = ".TNS";
- } */
+ }
snprintf(buffer, 64, "%s%s", name, ext);
uint32 tempSize = 0;
uint8 *data = _engine->resource()->fileData(buffer, &tempSize);