add support for Kyra 1 Italian floppy (this fixes so called bug #1409244 - KYRA1: GFX problems with ITALIAN floppy)

svn-id: r32175
This commit is contained in:
Florian Kagerer 2008-05-18 20:14:28 +00:00
parent 8d0766f4f7
commit 17874266bd
5 changed files with 47 additions and 7 deletions

Binary file not shown.

View File

@ -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) {

View File

@ -44,7 +44,7 @@
namespace Kyra {
#define RESFILE_VERSION 27
#define RESFILE_VERSION 28
bool StaticResource::checkKyraDat() {
Common::File kyraDat;

View File

@ -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,

View File

@ -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
};