aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorFlorian Kagerer2008-05-18 20:14:28 +0000
committerFlorian Kagerer2008-05-18 20:14:28 +0000
commit17874266bd540aed192e2a8f550b181d2bd4b8ad (patch)
tree452951985ec3534922ccdfb7c98a82af28365885 /tools
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
Diffstat (limited to 'tools')
-rw-r--r--tools/create_kyradat/create_kyradat.cpp11
-rw-r--r--tools/create_kyradat/ita.h39
2 files changed, 44 insertions, 6 deletions
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
+};