aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Kagerer2008-05-18 20:14:28 +0000
committerFlorian Kagerer2008-05-18 20:14:28 +0000
commit17874266bd540aed192e2a8f550b181d2bd4b8ad (patch)
tree452951985ec3534922ccdfb7c98a82af28365885
parent8d0766f4f741df6d9c0a633c895fb158dac85f34 (diff)
downloadscummvm-rg350-17874266bd540aed192e2a8f550b181d2bd4b8ad.tar.gz
scummvm-rg350-17874266bd540aed192e2a8f550b181d2bd4b8ad.tar.bz2
scummvm-rg350-17874266bd540aed192e2a8f550b181d2bd4b8ad.zip
add support for Kyra 1 Italian floppy (this fixes so called bug #1409244 - KYRA1: GFX problems with ITALIAN floppy)
svn-id: r32175
-rw-r--r--dists/engine-data/kyra.datbin231823 -> 236767 bytes
-rw-r--r--engines/kyra/gui_lok.cpp2
-rw-r--r--engines/kyra/staticres.cpp2
-rw-r--r--tools/create_kyradat/create_kyradat.cpp11
-rw-r--r--tools/create_kyradat/ita.h39
5 files changed, 47 insertions, 7 deletions
diff --git a/dists/engine-data/kyra.dat b/dists/engine-data/kyra.dat
index c1504ebba8..7171707e8b 100644
--- a/dists/engine-data/kyra.dat
+++ b/dists/engine-data/kyra.dat
Binary files differ
diff --git a/engines/kyra/gui_lok.cpp b/engines/kyra/gui_lok.cpp
index 2b823b1ae7..6fa30c9e9a 100644
--- a/engines/kyra/gui_lok.cpp
+++ b/engines/kyra/gui_lok.cpp
@@ -337,6 +337,8 @@ void GUI_LoK::setGUILabels() {
} else if (_vm->gameFlags().lang == Common::ES_ESP) {
offsetOn = offsetMainMenu = offsetOptions = offset = -4;
menuLabelGarbageOffset = 72;
+ } else if (_vm->gameFlags().lang == Common::IT_ITA) {
+ offsetOn = offsetMainMenu = offsetOptions = offset = 32;
} else if (_vm->gameFlags().lang == Common::DE_DEU) {
offset = offsetMainMenu = offsetOn = offsetOptions = 24;
} else if (_vm->gameFlags().platform == Common::kPlatformFMTowns || _vm->gameFlags().platform == Common::kPlatformPC98) {
diff --git a/engines/kyra/staticres.cpp b/engines/kyra/staticres.cpp
index 224bdb509c..e57a68c746 100644
--- a/engines/kyra/staticres.cpp
+++ b/engines/kyra/staticres.cpp
@@ -44,7 +44,7 @@
namespace Kyra {
-#define RESFILE_VERSION 27
+#define RESFILE_VERSION 28
bool StaticResource::checkKyraDat() {
Common::File kyraDat;
diff --git a/tools/create_kyradat/create_kyradat.cpp b/tools/create_kyradat/create_kyradat.cpp
index abd1d54570..173ba0f993 100644
--- a/tools/create_kyradat/create_kyradat.cpp
+++ b/tools/create_kyradat/create_kyradat.cpp
@@ -31,7 +31,7 @@
#include "md5.h"
enum {
- kKyraDatVersion = 27,
+ kKyraDatVersion = 28,
kIndexSize = 12
};
@@ -42,6 +42,7 @@ enum {
#include "esp.h"
#include "fre.h"
#include "ger.h"
+#include "ita.h"
#include "towns.h"
#include "amiga.h"
@@ -425,12 +426,9 @@ bool extractStrings(PAKFile &out, const Game *g, const byte *data, const uint32
continue;
uint32 len = strlen((const char*) data + i);
i += len;
-#if 1
- // FIXME: Not sure whether this correct; the original code was ambiguious, see below
+
targetsize = targetsize - 1 - len;
-#else
- targetsize = --targetsize - len; // FIXME: This operation is undefined
-#endif
+
while (!data[++i]) {
if (i == len)
break;
@@ -1334,6 +1332,7 @@ const Game *gameDescs[] = {
kyra1EspGames,
kyra1FreGames,
kyra1GerGames,
+ kyra1ItaGames,
kyra1TownsGames,
kyra1AmigaGames,
kyra1FanTranslations,
diff --git a/tools/create_kyradat/ita.h b/tools/create_kyradat/ita.h
new file mode 100644
index 0000000000..6099f8f07d
--- /dev/null
+++ b/tools/create_kyradat/ita.h
@@ -0,0 +1,39 @@
+const ExtractEntry kyra1ItaFloppy[] = {
+ { kKallakWritingSeq, 0x000304fa, 0x00030cef },
+ { kMalcolmTreeSeq, 0x00030cef, 0x00030F05 },
+ { kWestwoodLogoSeq, 0x00030F05, 0x00030F50 },
+ { kKyrandiaLogoSeq, 0x00030F50, 0x00030FAC },
+ { kKallakMalcolmSeq, 0x00030FAC, 0x00031217 },
+ { kForestSeq, 0x00031217, 0x000313ac },
+ { kIntroCPSStrings, 0x000313AC, 0x000313C0 },
+ { kIntroWSAStrings, 0x000313C0, 0x00031440 },
+ { kIntroCOLStrings, 0x00031440, 0x0003146B },
+ { kIntroStrings, 0x0003146B, 0x000319E7 },
+ { kItemNames, 0x000346DC, 0x00034C6D },
+ { kTakenStrings, 0x00033F60, 0x00033F74 },
+ { kPlacedStrings, 0x00033F74, 0x00033F81 },
+ { kDroppedStrings, 0x00033FAA, 0x00033FB5 },
+ { kNoDropStrings, 0x00033F1A, 0x00033F5F },
+ { kPutDownString, 0x0002f120, 0x0002f154 },
+ { kWaitAmuletString, 0x0002f154, 0x0002f19e },
+ { kBlackJewelString, 0x0002f19e, 0x0002f1c0 },
+ { kHealingTipString, 0x0002f1c0, 0x0002f1ff },
+ { kPoisonGoneString, 0x0002f290, 0x0002f2c4 },
+ { kThePoisonStrings, 0x0002ff20, 0x0002ff83 },
+ { kFluteStrings, 0x000323ab, 0x000323f7 },
+ { kWispJewelStrings, 0x0002f1ff, 0x0002f273 },
+ { kMagicJewelStrings, 0x0002f273, 0x0002f290 },
+ { kFlaskFullString, 0x00030059, 0x0003007a },
+ { kFullFlaskString, 0x0002ffa4, 0x00030059 },
+ { kOutroHomeString, 0x000320f2, 0x000320f7 },
+ { kVeryCleverString, 0x0003204c, 0x00032084 },
+ { kGUIStrings, 0x0002f434, 0x0002f659 },
+ { kNewGameString, 0x00032ba6, 0x00032bc2 },
+ { kConfigStrings, 0x0002fe9f, 0x0002fef3 },
+ { -1, 0, 0 }
+};
+
+const Game kyra1ItaGames[] = {
+ { kKyra1, IT_ITA, -1, "5d7550306b369a3492f9f3402702477c", kyra1ItaFloppy },
+ GAME_DUMMY_ENTRY
+};