[Scummvm-cvs-logs] scummvm master -> f76e02e5d65ae235e4816ace30398c3b923a6b4a

athrxx athrxx at scummvm.org
Sat Oct 11 20:55:09 CEST 2014


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
f76e02e5d6 KYRA: (EOB) - add support for Italian fan translation of EOB I


Commit: f76e02e5d65ae235e4816ace30398c3b923a6b4a
    https://github.com/scummvm/scummvm/commit/f76e02e5d65ae235e4816ace30398c3b923a6b4a
Author: athrxx (athrxx at scummvm.org)
Date: 2014-10-11T19:28:14+02:00

Commit Message:
KYRA: (EOB) - add support for Italian fan translation of EOB I

Changed paths:
  A devtools/create_kyradat/resources/eob1_dos_italian.h
    devtools/create_kyradat/create_kyradat.cpp
    devtools/create_kyradat/games.cpp
    devtools/create_kyradat/resources.cpp
    dists/engine-data/kyra.dat
    engines/kyra/detection_tables.h
    engines/kyra/staticres.cpp
    engines/kyra/staticres_eob.cpp
    engines/kyra/text_rpg.cpp



diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp
index 7da7bd4..441f315 100644
--- a/devtools/create_kyradat/create_kyradat.cpp
+++ b/devtools/create_kyradat/create_kyradat.cpp
@@ -45,7 +45,7 @@
 
 
 enum {
-	kKyraDatVersion = 85
+	kKyraDatVersion = 86
 };
 
 const ExtractFilename extractFilenames[] = {
diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp
index 0162bda..afe0c67 100644
--- a/devtools/create_kyradat/games.cpp
+++ b/devtools/create_kyradat/games.cpp
@@ -99,6 +99,7 @@ const Game kyra3Games[] = {
 const Game eob1Games[] = {
 	{ kEoB1, kPlatformDOS, kNoSpecial, EN_ANY },
 	{ kEoB1, kPlatformDOS, kNoSpecial, DE_DEU },
+	{ kEoB1, kPlatformDOS, kNoSpecial, IT_ITA },
 
 	GAME_DUMMY_ENTRY
 };
diff --git a/devtools/create_kyradat/resources.cpp b/devtools/create_kyradat/resources.cpp
index 66db495..4df6bb8 100644
--- a/devtools/create_kyradat/resources.cpp
+++ b/devtools/create_kyradat/resources.cpp
@@ -93,6 +93,7 @@
 #include "resources/eob1_dos.h"
 #include "resources/eob1_dos_english.h"
 #include "resources/eob1_dos_german.h"
+#include "resources/eob1_dos_italian.h"
 
 // Eye of the Beholder: The Legend of Darkmoon
 #include "resources/eob2_dos.h"
@@ -1249,6 +1250,94 @@ static const ResourceProvider resourceProviders[] = {
 	{ kEoBBaseManWord, kEoB1, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB1ManWordDOSGermanProvider },
 	{ kEoBBaseManPrompt, kEoB1, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB1ManPromptDOSGermanProvider },
 	{ kEoBBaseMonsterDistAttStrings, kEoB1, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB1MonsterDistAttStringsDOSGermanProvider },
+	{ kEoBBaseChargenStrings1, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ChargenStrings1DOSItalianProvider },
+	{ kEoBBaseChargenStrings2, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ChargenStrings2DOSItalianProvider },
+	{ kEoBBaseChargenStatStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ChargenStatStringsDOSItalianProvider },
+	{ kEoBBaseChargenRaceSexStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ChargenRaceSexStringsDOSItalianProvider },
+	{ kEoBBaseChargenClassStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ChargenClassStringsDOSItalianProvider },
+	{ kEoBBaseChargenAlignmentStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ChargenAlignmentStringsDOSItalianProvider },
+	{ kEoBBaseChargenEnterGameStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ChargenEnterGameStringsDOSItalianProvider },
+	{ kEoB1MainMenuStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MainMenuStringsDOSItalianProvider },
+	{ kEoB1BonusStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1BonusStringsDOSItalianProvider },
+	{ kEoB1TurnUndeadString, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1TurnUndeadStringDOSItalianProvider },
+	{ kEoB1Npc0Strings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1Npc0StringsDOSItalianProvider },
+	{ kEoB1Npc11Strings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1Npc11StringsDOSItalianProvider },
+	{ kEoB1Npc12Strings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1Npc12StringsDOSItalianProvider },
+	{ kEoB1Npc21Strings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1Npc21StringsDOSItalianProvider },
+	{ kEoB1Npc22Strings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1Npc22StringsDOSItalianProvider },
+	{ kEoB1Npc31Strings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1Npc31StringsDOSItalianProvider },
+	{ kEoB1Npc32Strings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1Npc32StringsDOSItalianProvider },
+	{ kEoB1Npc4Strings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1Npc4StringsDOSItalianProvider },
+	{ kEoB1Npc5Strings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1Npc5StringsDOSItalianProvider },
+	{ kEoB1Npc6Strings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1Npc6StringsDOSItalianProvider },
+	{ kEoB1Npc7Strings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1Npc7StringsDOSItalianProvider },
+	{ kEoBBasePryDoorStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1PryDoorStringsDOSItalianProvider },
+	{ kEoBBaseWarningStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1WarningStringsDOSItalianProvider },
+	{ kEoBBaseItemSuffixStringsRings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ItemSuffixStringsRingsDOSItalianProvider },
+	{ kEoBBaseItemSuffixStringsPotions, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ItemSuffixStringsPotionsDOSItalianProvider },
+	{ kEoBBaseItemSuffixStringsWands, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ItemSuffixStringsWandsDOSItalianProvider },
+	{ kEoBBaseRipItemStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1RipItemStringsDOSItalianProvider },
+	{ kEoBBaseCursedString, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1CursedStringDOSItalianProvider },
+	{ kEoBBaseMagicObjectStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MagicObjectStringsDOSItalianProvider },
+	{ kEoBBaseMagicObjectString5, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MagicObjectString5DOSItalianProvider },
+	{ kEoBBasePatternSuffix, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1PatternSuffixDOSItalianProvider },
+	{ kEoBBasePatternGrFix1, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1PatternGrFix1DOSItalianProvider },
+	{ kEoBBasePatternGrFix2, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1PatternGrFix2DOSItalianProvider },
+	{ kEoBBaseValidateArmorString, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ValidateArmorStringDOSItalianProvider },
+	{ kEoBBaseValidateNoDropString, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ValidateNoDropStringDOSItalianProvider },
+	{ kEoBBasePotionStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1PotionStringsDOSItalianProvider },
+	{ kEoBBaseWandStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1WandStringsDOSItalianProvider },
+	{ kEoBBaseItemMisuseStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ItemMisuseStringsDOSItalianProvider },
+	{ kEoBBaseTakenStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1TakenStringsDOSItalianProvider },
+	{ kEoBBasePotionEffectStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1PotionEffectStringsDOSItalianProvider },
+	{ kEoBBaseYesNoStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1YesNoStringsDOSItalianProvider },
+	{ kRpgCommonMoreStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MoreStringsDOSItalianProvider },
+	{ kEoBBaseNpcMaxStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1NpcMaxStringsDOSItalianProvider },
+	{ kEoBBaseNpcJoinStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1NpcJoinStringsDOSItalianProvider },
+	{ kEoBBaseCancelStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1CancelStringsDOSItalianProvider },
+	{ kEoBBaseMenuStringsMain, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuStringsMainDOSItalianProvider },
+	{ kEoBBaseMenuStringsSaveLoad, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuStringsSaveLoadDOSItalianProvider },
+	{ kEoBBaseMenuStringsOnOff, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuStringsOnOffDOSItalianProvider },
+	{ kEoBBaseMenuStringsSpells, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuStringsSpellsDOSItalianProvider },
+	{ kEoBBaseMenuStringsRest, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuStringsRestDOSItalianProvider },
+	{ kEoBBaseMenuStringsDrop, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuStringsDropDOSItalianProvider },
+	{ kEoBBaseMenuStringsExit, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuStringsExitDOSItalianProvider },
+	{ kEoBBaseMenuStringsStarve, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuStringsStarveDOSItalianProvider },
+	{ kEoBBaseMenuStringsScribe, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuStringsScribeDOSItalianProvider },
+	{ kEoBBaseMenuStringsDrop2, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuStringsDrop2DOSItalianProvider },
+	{ kEoBBaseMenuStringsHead, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuStringsHeadDOSItalianProvider },
+	{ kEoBBaseMenuStringsPoison, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuStringsPoisonDOSItalianProvider },
+	{ kEoBBaseMenuStringsMgc, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuStringsMgcDOSItalianProvider },
+	{ kEoBBaseMenuStringsPrefs, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuStringsPrefsDOSItalianProvider },
+	{ kEoBBaseMenuStringsRest2, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuStringsRest2DOSItalianProvider },
+	{ kEoBBaseMenuStringsRest4, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuStringsRest4DOSItalianProvider },
+	{ kEoBBaseMenuStringsDefeat, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuStringsDefeatDOSItalianProvider },
+	{ kEoBBaseMenuYesNoStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MenuYesNoStringsDOSItalianProvider },
+	{ kEoBBaseCharGuiStringsHp, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1CharGuiStringsHpDOSItalianProvider },
+	{ kEoBBaseCharGuiStringsWp1, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1CharGuiStringsWp1DOSItalianProvider },
+	{ kEoBBaseCharGuiStringsWr, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1CharGuiStringsWrDOSItalianProvider },
+	{ kEoBBaseCharGuiStringsSt1, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1CharGuiStringsSt1DOSItalianProvider },
+	{ kEoBBaseCharGuiStringsIn, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1CharGuiStringsInDOSItalianProvider },
+	{ kEoBBaseCharStatusStrings7, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1CharStatusStrings7DOSItalianProvider },
+	{ kEoBBaseCharStatusStrings81, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1CharStatusStrings81DOSItalianProvider },
+	{ kEoBBaseCharStatusStrings9, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1CharStatusStrings9DOSItalianProvider },
+	{ kEoBBaseCharStatusStrings131, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1CharStatusStrings131DOSItalianProvider },
+	{ kEoBBaseLevelGainStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1LevelGainStringsDOSItalianProvider },
+	{ kEoBBaseBookNumbers, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1BookNumbersDOSItalianProvider },
+	{ kEoBBaseMageSpellsList, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MageSpellsListDOSItalianProvider },
+	{ kEoBBaseClericSpellsList, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ClericSpellsListDOSItalianProvider },
+	{ kEoBBaseSpellNames, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1SpellNamesDOSItalianProvider },
+	{ kEoBBaseMagicStrings1, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MagicStrings1DOSItalianProvider },
+	{ kEoBBaseMagicStrings2, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MagicStrings2DOSItalianProvider },
+	{ kEoBBaseMagicStrings3, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MagicStrings3DOSItalianProvider },
+	{ kEoBBaseMagicStrings4, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MagicStrings4DOSItalianProvider },
+	{ kEoBBaseMagicStrings6, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MagicStrings6DOSItalianProvider },
+	{ kEoBBaseMagicStrings7, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MagicStrings7DOSItalianProvider },
+	{ kEoBBaseMagicStrings8, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MagicStrings8DOSItalianProvider },
+	{ kEoBBaseManDef, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ManDefDOSItalianProvider },
+	{ kEoBBaseManWord, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ManWordDOSItalianProvider },
+	{ kEoBBaseManPrompt, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1ManPromptDOSItalianProvider },
+	{ kEoBBaseMonsterDistAttStrings, kEoB1, kPlatformDOS, kNoSpecial, IT_ITA, &kEoB1MonsterDistAttStringsDOSItalianProvider },
 	{ kEoBBaseChargenStrings1, kEoB2, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB2ChargenStrings1DOSEnglishProvider },
 	{ kEoBBaseChargenStrings2, kEoB2, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB2ChargenStrings2DOSEnglishProvider },
 	{ kEoBBaseChargenStartLevels, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2ChargenStartLevelsDOSProvider },
diff --git a/devtools/create_kyradat/resources/eob1_dos_italian.h b/devtools/create_kyradat/resources/eob1_dos_italian.h
new file mode 100644
index 0000000..680e197
--- /dev/null
+++ b/devtools/create_kyradat/resources/eob1_dos_italian.h
@@ -0,0 +1,891 @@
+static const char *const kEoB1ChargenStrings1DOSItalian[9] = {
+	"Il tuo gruppo ""\x0E""\rcompleto.Premi il\rbottone GIOCA per\riniziare la nuova\rpartita.",
+	"          ",
+	"CA\rPF\rLIV",
+	"%s\r%d\r%d\r%d\r%d\r%d",
+	"%d\r%d",
+	"%d",
+	"%d/%d",
+	"%d/%d/%d",
+	"Scegli il riquadro\rdel personaggio\rche vuoi creare o\rvedere."
+};
+
+static const StringListProvider kEoB1ChargenStrings1DOSItalianProvider = { ARRAYSIZE(kEoB1ChargenStrings1DOSItalian), kEoB1ChargenStrings1DOSItalian };
+
+static const char *const kEoB1ChargenStrings2DOSItalian[12] = {
+	"%s",
+	"%d",
+	"%s",
+	"%d",
+	"%d",
+	"%d",
+	"%s",
+	"%d",
+	"SCEGLI RAZZA:",
+	"SCEGLI CLASSE:",
+	"SCEGLI ALLINEAMENTO:",
+	"NOME:"
+};
+
+static const StringListProvider kEoB1ChargenStrings2DOSItalianProvider = { ARRAYSIZE(kEoB1ChargenStrings2DOSItalian), kEoB1ChargenStrings2DOSItalian };
+
+static const char *const kEoB1ChargenStatStringsDOSItalian[12] = {
+	"FOR",
+	"INT",
+	"SAG",
+	"DES",
+	"COS",
+	"CAR",
+	"FORZA",
+	"INTELLIGENZA",
+	"SAGGEZZA",
+	"DESTREZZA",
+	"COSTITUZIONE",
+	"CARISMA"
+};
+
+static const StringListProvider kEoB1ChargenStatStringsDOSItalianProvider = { ARRAYSIZE(kEoB1ChargenStatStringsDOSItalian), kEoB1ChargenStatStringsDOSItalian };
+
+static const char *const kEoB1ChargenRaceSexStringsDOSItalian[12] = {
+	"UMANO MASCHIO",
+	"UMANO FEMMINA",
+	"ELFO MASCHIO",
+	"ELFO FEMMINA",
+	"MEZZUOMO MASCHIO",
+	"MEZZUOMO FEMMINA",
+	"NANO MASCHIO",
+	"NANO FEMMINA",
+	"GNOMO MASCHIO",
+	"GNOMO FEMMINA",
+	"MEZZUOMO MASCHIO",
+	"MEZZUOMO FEMMINA"
+};
+
+static const StringListProvider kEoB1ChargenRaceSexStringsDOSItalianProvider = { ARRAYSIZE(kEoB1ChargenRaceSexStringsDOSItalian), kEoB1ChargenRaceSexStringsDOSItalian };
+
+static const char *const kEoB1ChargenClassStringsDOSItalian[21] = {
+	"GUERRIERO",
+	"RANGER",
+	"PALADINO",
+	"MAGO",
+	"CHIERICO",
+	"LADRO",
+	"GUERRIERO/CHIERICO",
+	"GUERRIERO/LADRO",
+	"GUERRIERO/MAGO",
+	"GUER./MAGO/LADRO",
+	"LADRO/MAGO",
+	"CHIERICO/LADRO",
+	"GUER./CHIERICO/MAGO",
+	"RANGER/CHIERICO",
+	"CHIERICO/MAGO",
+	"GUERRIERO",
+	"MAGO",
+	"CHIERICO",
+	"LADRO",
+	"PALADINO",
+	"RANGER"
+};
+
+static const StringListProvider kEoB1ChargenClassStringsDOSItalianProvider = { ARRAYSIZE(kEoB1ChargenClassStringsDOSItalian), kEoB1ChargenClassStringsDOSItalian };
+
+static const char *const kEoB1ChargenAlignmentStringsDOSItalian[9] = {
+	"LEGALE BUONO",
+	"NEUTRALE BUONO",
+	"CAOTICO BUONO",
+	"LEGALE NEUTRALE",
+	"NEUTRALE PURO",
+	"CAOTICO NEUT.",
+	"LEGALE MALVAGIO",
+	"NEUTRALE MALV.",
+	"CAOTICO MALV."
+};
+
+static const StringListProvider kEoB1ChargenAlignmentStringsDOSItalianProvider = { ARRAYSIZE(kEoB1ChargenAlignmentStringsDOSItalian), kEoB1ChargenAlignmentStringsDOSItalian };
+
+static const char *const kEoB1ChargenEnterGameStringsDOSItalian[1] = {
+	"  Avvio partita.\r  in corso..."
+};
+
+static const StringListProvider kEoB1ChargenEnterGameStringsDOSItalianProvider = { ARRAYSIZE(kEoB1ChargenEnterGameStringsDOSItalian), kEoB1ChargenEnterGameStringsDOSItalian };
+
+static const char *const kEoB1MainMenuStringsDOSItalian[3] = {
+	"CARICA UNA PARTITA\r",
+	"CREA UN NUOVO GRUPPO\r",
+	"ESCI\r"
+};
+
+static const StringListProvider kEoB1MainMenuStringsDOSItalianProvider = { ARRAYSIZE(kEoB1MainMenuStringsDOSItalian), kEoB1MainMenuStringsDOSItalian };
+
+static const char *const kEoB1BonusStringsDOSItalian[3] = {
+	"Congratulazioni per aver scoperto tutte le 12 quest bonus di Beholder.\r\rI nomi dei personaggi del tuo gruppo vincente sono:\r\r",
+	"\r",
+	"\r\rPassword: %04x\r"
+};
+
+static const StringListProvider kEoB1BonusStringsDOSItalianProvider = { ARRAYSIZE(kEoB1BonusStringsDOSItalian), kEoB1BonusStringsDOSItalian };
+
+static const char *const kEoB1TurnUndeadStringDOSItalian[1] = {
+	"\x06\x06""%s usa scacciare non-morti!""\x06\x0F""\r"
+};
+
+static const StringListProvider kEoB1TurnUndeadStringDOSItalianProvider = { ARRAYSIZE(kEoB1TurnUndeadStringDOSItalian), kEoB1TurnUndeadStringDOSItalian };
+
+static const char *const kEoB1Npc0StringsDOSItalian[2] = {
+	"\rVi auguro fortuna nel vostro viaggio.",
+	"Chi dovrei resuscitare?"
+};
+
+static const StringListProvider kEoB1Npc0StringsDOSItalianProvider = { ARRAYSIZE(kEoB1Npc0StringsDOSItalian), kEoB1Npc0StringsDOSItalian };
+
+static const char *const kEoB1Npc11StringsDOSItalian[3] = {
+	"Curalo",
+	"Parla",
+	"Riparti"
+};
+
+static const StringListProvider kEoB1Npc11StringsDOSItalianProvider = { ARRAYSIZE(kEoB1Npc11StringsDOSItalian), kEoB1Npc11StringsDOSItalian };
+
+static const char *const kEoB1Npc12StringsDOSItalian[2] = {
+	"Curalo",
+	"Riparti"
+};
+
+static const StringListProvider kEoB1Npc12StringsDOSItalianProvider = { ARRAYSIZE(kEoB1Npc12StringsDOSItalian), kEoB1Npc12StringsDOSItalian };
+
+static const char *const kEoB1Npc21StringsDOSItalian[2] = {
+	"Ascolta Proposta",
+	"Riparti"
+};
+
+static const StringListProvider kEoB1Npc21StringsDOSItalianProvider = { ARRAYSIZE(kEoB1Npc21StringsDOSItalian), kEoB1Npc21StringsDOSItalian };
+
+static const char *const kEoB1Npc22StringsDOSItalian[2] = {
+	"Aiutalo",
+	"Riparti"
+};
+
+static const StringListProvider kEoB1Npc22StringsDOSItalianProvider = { ARRAYSIZE(kEoB1Npc22StringsDOSItalian), kEoB1Npc22StringsDOSItalian };
+
+static const char *const kEoB1Npc31StringsDOSItalian[2] = {
+	"Cura Gruppo",
+	"Riparti"
+};
+
+static const StringListProvider kEoB1Npc31StringsDOSItalianProvider = { ARRAYSIZE(kEoB1Npc31StringsDOSItalian), kEoB1Npc31StringsDOSItalian };
+
+static const char *const kEoB1Npc32StringsDOSItalian[3] = {
+	"Cura Gruppo",
+	"Resuscita morti",
+	"Riparti"
+};
+
+static const StringListProvider kEoB1Npc32StringsDOSItalianProvider = { ARRAYSIZE(kEoB1Npc32StringsDOSItalian), kEoB1Npc32StringsDOSItalian };
+
+static const char *const kEoB1Npc4StringsDOSItalian[2] = {
+	"Attacca",
+	"Corrompi"
+};
+
+static const StringListProvider kEoB1Npc4StringsDOSItalianProvider = { ARRAYSIZE(kEoB1Npc4StringsDOSItalian), kEoB1Npc4StringsDOSItalian };
+
+static const char *const kEoB1Npc5StringsDOSItalian[3] = {
+	"Uccidila",
+	"Ascoltala",
+	"Falla scappare"
+};
+
+static const StringListProvider kEoB1Npc5StringsDOSItalianProvider = { ARRAYSIZE(kEoB1Npc5StringsDOSItalian), kEoB1Npc5StringsDOSItalian };
+
+static const char *const kEoB1Npc6StringsDOSItalian[2] = {
+	"Arrenditi",
+	"Attacca"
+};
+
+static const StringListProvider kEoB1Npc6StringsDOSItalianProvider = { ARRAYSIZE(kEoB1Npc6StringsDOSItalian), kEoB1Npc6StringsDOSItalian };
+
+static const char *const kEoB1Npc7StringsDOSItalian[3] = {
+	"Liberalo",
+	"Uccidilo",
+	"Riparti"
+};
+
+static const StringListProvider kEoB1Npc7StringsDOSItalianProvider = { ARRAYSIZE(kEoB1Npc7StringsDOSItalian), kEoB1Npc7StringsDOSItalian };
+
+static const char *const kEoB1PryDoorStringsDOSItalian[7] = {
+	"Nessuno pu""\x11"" forzare la porta\r",
+	"Il gruppo forza la porta!\r",
+	"%s forza la porta!\r",
+	"Il gruppo prova a forzare la porta, ma fallisce.\r",
+	"Non puoi metterci quest'oggetto.\r",
+	"L'oggetto ""\x0E"" troppo grande.\r",
+	"Nessuno pu""\x11"" forzare questa porta.\r"
+};
+
+static const StringListProvider kEoB1PryDoorStringsDOSItalianProvider = { ARRAYSIZE(kEoB1PryDoorStringsDOSItalian), kEoB1PryDoorStringsDOSItalian };
+
+static const char *const kEoB1WarningStringsDOSItalian[3] = {
+	"Non potete proseguire da questa parte.\r",
+	"%s non pu""\x11"" consumare cibo!\r",
+	"Non ""\x0E"" commestibile!\r"
+};
+
+static const StringListProvider kEoB1WarningStringsDOSItalianProvider = { ARRAYSIZE(kEoB1WarningStringsDOSItalian), kEoB1WarningStringsDOSItalian };
+
+static const char *const kEoB1ItemSuffixStringsRingsDOSItalian[4] = {
+	"Ornamento",
+	"Stregoneria",
+	"Sostentamento",
+	"Caduta Morbida"
+};
+
+static const StringListProvider kEoB1ItemSuffixStringsRingsDOSItalianProvider = { ARRAYSIZE(kEoB1ItemSuffixStringsRingsDOSItalian), kEoB1ItemSuffixStringsRingsDOSItalian };
+
+static const char *const kEoB1ItemSuffixStringsPotionsDOSItalian[8] = {
+	"Forza dei Giganti",
+	"Guarigione",
+	"Super-Guarigione",
+	"Veleno",
+	"Vitalit""\x0C""",
+	"Velocit""\x0C""",
+	"Invisibilit""\x0C""",
+	"Antidoti"
+};
+
+static const StringListProvider kEoB1ItemSuffixStringsPotionsDOSItalianProvider = { ARRAYSIZE(kEoB1ItemSuffixStringsPotionsDOSItalian), kEoB1ItemSuffixStringsPotionsDOSItalian };
+
+static const char *const kEoB1ItemSuffixStringsWandsDOSItalian[7] = {
+	"Legno",
+	"Fulmini",
+	"Gelo",
+	"Cure",
+	"Palla di Fuoco",
+	"Silvias",
+	"Dardo Incantato",
+};
+
+static const StringListProvider kEoB1ItemSuffixStringsWandsDOSItalianProvider = { ARRAYSIZE(kEoB1ItemSuffixStringsWandsDOSItalian), kEoB1ItemSuffixStringsWandsDOSItalian };
+
+static const char *const kEoB1RipItemStringsDOSItalian[3] = {
+	"%s ha perso la sua ",
+	"%s ha perso il suo ",
+	".\r"
+};
+
+static const StringListProvider kEoB1RipItemStringsDOSItalianProvider = { ARRAYSIZE(kEoB1RipItemStringsDOSItalian), kEoB1RipItemStringsDOSItalian };
+
+static const char *const kEoB1CursedStringDOSItalian[1] = {
+	"Maledetta %s %d"
+};
+
+static const StringListProvider kEoB1CursedStringDOSItalianProvider = { ARRAYSIZE(kEoB1CursedStringDOSItalian), kEoB1CursedStringDOSItalian };
+
+static const char *const kEoB1MagicObjectStringsDOSItalian[5] = {
+	"Pergamena del mago",
+	"Pergamena del Chierico",
+	"Anello",
+	"Pozione",
+	"bacchetta"
+};
+
+static const StringListProvider kEoB1MagicObjectStringsDOSItalianProvider = { ARRAYSIZE(kEoB1MagicObjectStringsDOSItalian), kEoB1MagicObjectStringsDOSItalian };
+
+static const char *const kEoB1MagicObjectString5DOSItalian[1] = {
+	"Legno"
+};
+
+static const StringListProvider kEoB1MagicObjectString5DOSItalianProvider = { ARRAYSIZE(kEoB1MagicObjectString5DOSItalian), kEoB1MagicObjectString5DOSItalian };
+
+static const char *const kEoB1PatternSuffixDOSItalian[1] = {
+	"%s di %s"
+};
+
+static const StringListProvider kEoB1PatternSuffixDOSItalianProvider = { ARRAYSIZE(kEoB1PatternSuffixDOSItalian), kEoB1PatternSuffixDOSItalian };
+
+static const char *const kEoB1PatternGrFix1DOSItalian[1] = {
+	"%s di %s"
+};
+
+static const StringListProvider kEoB1PatternGrFix1DOSItalianProvider = { ARRAYSIZE(kEoB1PatternGrFix1DOSItalian), kEoB1PatternGrFix1DOSItalian };
+
+static const char *const kEoB1PatternGrFix2DOSItalian[1] = {
+	"%s di %s"
+};
+
+static const StringListProvider kEoB1PatternGrFix2DOSItalianProvider = { ARRAYSIZE(kEoB1PatternGrFix2DOSItalian), kEoB1PatternGrFix2DOSItalian };
+
+static const char *const kEoB1ValidateArmorStringDOSItalian[1] = {
+	"%s non pu""\x11"" indossare quest'armatura.\r"
+};
+
+static const StringListProvider kEoB1ValidateArmorStringDOSItalianProvider = { ARRAYSIZE(kEoB1ValidateArmorStringDOSItalian), kEoB1ValidateArmorStringDOSItalian };
+
+static const char *const kEoB1ValidateNoDropStringDOSItalian[1] = {
+	"Non puoi metterci quest'oggetto.\r"
+};
+
+static const StringListProvider kEoB1ValidateNoDropStringDOSItalianProvider = { ARRAYSIZE(kEoB1ValidateNoDropStringDOSItalian), kEoB1ValidateNoDropStringDOSItalian };
+
+static const char *const kEoB1PotionStringsDOSItalian[2] = {
+	"avvelenato",
+	"%s si sente %s!\r"
+};
+
+static const StringListProvider kEoB1PotionStringsDOSItalianProvider = { ARRAYSIZE(kEoB1PotionStringsDOSItalian), kEoB1PotionStringsDOSItalian };
+
+static const char *const kEoB1WandStringsDOSItalian[2] = {
+	"La bacchetta pare priva di magia\r",
+	"Nessun effetto.\r"
+};
+
+static const StringListProvider kEoB1WandStringsDOSItalianProvider = { ARRAYSIZE(kEoB1WandStringsDOSItalian), kEoB1WandStringsDOSItalian };
+
+static const char *const kEoB1ItemMisuseStringsDOSItalian[3] = {
+	" non pu""\x11"" usare quest'oggetto.\r",
+	"Se indossato quest'oggetto funziona in automatico.\r",
+	"Questo oggetto non si usa cos""\x10"".\r"
+};
+
+static const StringListProvider kEoB1ItemMisuseStringsDOSItalianProvider = { ARRAYSIZE(kEoB1ItemMisuseStringsDOSItalian), kEoB1ItemMisuseStringsDOSItalian };
+
+static const char *const kEoB1TakenStringsDOSItalian[1] = {
+	" preso.\r"
+};
+
+static const StringListProvider kEoB1TakenStringsDOSItalianProvider = { ARRAYSIZE(kEoB1TakenStringsDOSItalian), kEoB1TakenStringsDOSItalian };
+
+static const char *const kEoB1PotionEffectStringsDOSItalian[8] = {
+	"molto pi""\x12"" forte",
+	"meglio",
+	"molto meglio",
+	"ammalato",
+	"sazio",
+	"agile e veloce",
+	"trasparente",
+	"meglio"
+};
+
+static const StringListProvider kEoB1PotionEffectStringsDOSItalianProvider = { ARRAYSIZE(kEoB1PotionEffectStringsDOSItalian), kEoB1PotionEffectStringsDOSItalian };
+
+static const char *const kEoB1YesNoStringsDOSItalian[2] = {
+	"s""\x10""",
+	"no"
+};
+
+static const StringListProvider kEoB1YesNoStringsDOSItalianProvider = { ARRAYSIZE(kEoB1YesNoStringsDOSItalian), kEoB1YesNoStringsDOSItalian };
+
+static const char *const kEoB1MoreStringsDOSItalian[1] = {
+	" >> "
+};
+
+static const StringListProvider kEoB1MoreStringsDOSItalianProvider = { ARRAYSIZE(kEoB1MoreStringsDOSItalian), kEoB1MoreStringsDOSItalian };
+
+static const char *const kEoB1NpcMaxStringsDOSItalian[1] = {
+	"Puoi avere solo sei personaggi nel tuo gruppo.  Scegli chi congedare."
+};
+
+static const StringListProvider kEoB1NpcMaxStringsDOSItalianProvider = { ARRAYSIZE(kEoB1NpcMaxStringsDOSItalian), kEoB1NpcMaxStringsDOSItalian };
+
+static const char *const kEoB1NpcJoinStringsDOSItalian[1] = {
+	"%s si unisce al gruppo.\r"
+};
+
+static const StringListProvider kEoB1NpcJoinStringsDOSItalianProvider = { ARRAYSIZE(kEoB1NpcJoinStringsDOSItalian), kEoB1NpcJoinStringsDOSItalian };
+
+static const char *const kEoB1CancelStringsDOSItalian[1] = {
+	"ANNULLA"
+};
+
+static const StringListProvider kEoB1CancelStringsDOSItalianProvider = { ARRAYSIZE(kEoB1CancelStringsDOSItalian), kEoB1CancelStringsDOSItalian };
+
+static const char *const kEoB1MenuStringsMainDOSItalian[8] = {
+	"Opzioni:",
+	"Riposa",
+	"Studia Incantesimi",
+	"Prega Incantesimi",
+	"Trascrivi Pergamene",
+	"Impostazioni",
+	"Opzioni",
+	" << "
+};
+
+static const StringListProvider kEoB1MenuStringsMainDOSItalianProvider = { ARRAYSIZE(kEoB1MenuStringsMainDOSItalian), kEoB1MenuStringsMainDOSItalian };
+
+static const char *const kEoB1MenuStringsSaveLoadDOSItalian[8] = {
+	"Carica Partita",
+	"Salva Partita",
+	"Congeda Personaggio",
+	"Esci dal gioco",
+	"Opzioni:",
+	"\r   Salvato!",
+	"\r Salvataggio\r fallito!",
+	"\r Caricamento\r fallito!"
+};
+
+static const StringListProvider kEoB1MenuStringsSaveLoadDOSItalianProvider = { ARRAYSIZE(kEoB1MenuStringsSaveLoadDOSItalian), kEoB1MenuStringsSaveLoadDOSItalian };
+
+static const char *const kEoB1MenuStringsOnOffDOSItalian[2] = {
+	"ON",
+	"OFF"
+};
+
+static const StringListProvider kEoB1MenuStringsOnOffDOSItalianProvider = { ARRAYSIZE(kEoB1MenuStringsOnOffDOSItalian), kEoB1MenuStringsOnOffDOSItalian };
+
+static const char *const kEoB1MenuStringsSpellsDOSItalian[17] = {
+	"\r\r Scegli il\r personaggio del\r gruppo a cui\r far studiare gli\r incantesimi.",
+	"\r Il tuo Paladino ""\x0E""\r di livello troppo\r basso.",
+	"\r\r Il Mago non ha\r il Libro degli\r Incantesimi!",
+	"\r\r\r Scegli il\r personaggio del\r gruppo a cui far\r pregare per gli\r incantesimi.",
+	"\r Non hai nessun\r Chierico che\r possa pregare.",
+	"\r Non hai nessun\r Mago che possa\r studiare gli\r incantesimi.",
+	" Un Mago morto o\r svenuto non pu""\x11""\r memorizzare\r incantesimi.",
+	" Un Chierico morto o\r svenuto non pu""\x11""\r memorizzare\r incantesimi.",
+	"1",
+	"2",
+	"3",
+	"4",
+	"5",
+	"Canc.",
+	"Incantesimi:",
+	"S""\x10""",
+	"No"
+};
+
+static const StringListProvider kEoB1MenuStringsSpellsDOSItalianProvider = { ARRAYSIZE(kEoB1MenuStringsSpellsDOSItalian), kEoB1MenuStringsSpellsDOSItalian };
+
+static const char *const kEoB1MenuStringsRestDOSItalian[5] = {
+	"\rMetti i tuoi \rguaritori a curare\ril gruppo?",
+	" Qualcuno ""\x0E"" ancora\rferito. Riposa\rfino alla\rguarigione?",
+	"Riposando.",
+	"\r Tutti i\r personaggi sono\r riposati.",
+	" Il tuo gruppo ha\rbisogno di riposare\rper ottenere gli\rincantesimi."
+};
+
+static const StringListProvider kEoB1MenuStringsRestDOSItalianProvider = { ARRAYSIZE(kEoB1MenuStringsRestDOSItalian), kEoB1MenuStringsRestDOSItalian };
+
+static const char *const kEoB1MenuStringsDropDOSItalian[1] = {
+	" Non puoi avere\r meno di quattro\r personaggi."
+};
+
+static const StringListProvider kEoB1MenuStringsDropDOSItalianProvider = { ARRAYSIZE(kEoB1MenuStringsDropDOSItalian), kEoB1MenuStringsDropDOSItalian };
+
+static const char *const kEoB1MenuStringsExitDOSItalian[1] = {
+	" Sei sicuro di\rvoler uscire dal\rgioco?"
+};
+
+static const StringListProvider kEoB1MenuStringsExitDOSItalianProvider = { ARRAYSIZE(kEoB1MenuStringsExitDOSItalian), kEoB1MenuStringsExitDOSItalian };
+
+static const char *const kEoB1MenuStringsStarveDOSItalian[1] = {
+	" Il tuo gruppo sta\rpatendo la fame.\rContinua a riposare?"
+};
+
+static const StringListProvider kEoB1MenuStringsStarveDOSItalianProvider = { ARRAYSIZE(kEoB1MenuStringsStarveDOSItalian), kEoB1MenuStringsStarveDOSItalian };
+
+static const char *const kEoB1MenuStringsScribeDOSItalian[5] = {
+	"Scegli la pergamena\rda trascrivere.",
+	"\r\r\r Scegli un Mago che\r vorrebbe trascrivere\r gli incantesimi.",
+	" Non hai nessuna\r pergamena da\r trascrivere.",
+	" Non hai nessuna\r pergamena utile\r a questo Mago.",
+	"\r Non hai nessun\r Mago che possa\r trascrivere\r pergamene."
+};
+
+static const StringListProvider kEoB1MenuStringsScribeDOSItalianProvider = { ARRAYSIZE(kEoB1MenuStringsScribeDOSItalian), kEoB1MenuStringsScribeDOSItalian };
+
+static const char *const kEoB1MenuStringsDrop2DOSItalian[3] = {
+	" Scegli il\r personaggio da\r congedare.",
+	" Sei sicuro di\rvoler salvare la\rpartita?",
+	" Sei sicuro di\rvoler caricare una\rpartita?"
+};
+
+static const StringListProvider kEoB1MenuStringsDrop2DOSItalianProvider = { ARRAYSIZE(kEoB1MenuStringsDrop2DOSItalian), kEoB1MenuStringsDrop2DOSItalian };
+
+static const char *const kEoB1MenuStringsHeadDOSItalian[3] = {
+	"Al Campo:",
+	"Impostazioni:",
+	"Opzioni:"
+};
+
+static const StringListProvider kEoB1MenuStringsHeadDOSItalianProvider = { ARRAYSIZE(kEoB1MenuStringsHeadDOSItalian), kEoB1MenuStringsHeadDOSItalian };
+
+static const char *const kEoB1MenuStringsPoisonDOSItalian[1] = {
+	"I membri avvelenati\rmoriranno! Riposa\rcomunque?"
+};
+
+static const StringListProvider kEoB1MenuStringsPoisonDOSItalianProvider = { ARRAYSIZE(kEoB1MenuStringsPoisonDOSItalian), kEoB1MenuStringsPoisonDOSItalian };
+
+static const char *const kEoB1MenuStringsMgcDOSItalian[2] = {
+	"%-18s %1d",
+	"%d di %d rimanenti.  "
+};
+
+static const StringListProvider kEoB1MenuStringsMgcDOSItalianProvider = { ARRAYSIZE(kEoB1MenuStringsMgcDOSItalian), kEoB1MenuStringsMgcDOSItalian };
+
+static const char *const kEoB1MenuStringsPrefsDOSItalian[4] = {
+	"Musiche %-3s",
+	"Effetti sonori %-3s",
+	"Barre grafiche %-3s",
+	"Mouse %-3s"
+};
+
+static const StringListProvider kEoB1MenuStringsPrefsDOSItalianProvider = { ARRAYSIZE(kEoB1MenuStringsPrefsDOSItalian), kEoB1MenuStringsPrefsDOSItalian };
+
+static const char *const kEoB1MenuStringsRest2DOSItalian[4] = {
+	"%s ha ottenuto %s.\r",
+	"%s ha memorizzato %s.\r",
+	"%s Cura %s.\r",
+	"Ore di riposo: %-4d"
+};
+
+static const StringListProvider kEoB1MenuStringsRest2DOSItalianProvider = { ARRAYSIZE(kEoB1MenuStringsRest2DOSItalian), kEoB1MenuStringsRest2DOSItalian };
+
+static const char *const kEoB1MenuStringsRest4DOSItalian[1] = {
+	"\rNon potete riposare vicino a dei mostri."
+};
+
+static const StringListProvider kEoB1MenuStringsRest4DOSItalianProvider = { ARRAYSIZE(kEoB1MenuStringsRest4DOSItalian), kEoB1MenuStringsRest4DOSItalian };
+
+static const char *const kEoB1MenuStringsDefeatDOSItalian[1] = {
+	"L'intero gruppo ""\x0E"" stato sconfitto.  I servitori del male potranno portare avanti i loro piani indisturbati!\r"
+};
+
+static const StringListProvider kEoB1MenuStringsDefeatDOSItalianProvider = { ARRAYSIZE(kEoB1MenuStringsDefeatDOSItalian), kEoB1MenuStringsDefeatDOSItalian };
+
+static const char *const kEoB1MenuYesNoStringsDOSItalian[2] = {
+	"S""\x10""",
+	"No"
+};
+
+static const StringListProvider kEoB1MenuYesNoStringsDOSItalianProvider = { ARRAYSIZE(kEoB1MenuYesNoStringsDOSItalian), kEoB1MenuYesNoStringsDOSItalian };
+
+static const char *const kEoB1CharGuiStringsHpDOSItalian[2] = {
+	"PF",
+	"%3d di %-3d"
+};
+
+static const StringListProvider kEoB1CharGuiStringsHpDOSItalianProvider = { ARRAYSIZE(kEoB1CharGuiStringsHpDOSItalian), kEoB1CharGuiStringsHpDOSItalian };
+
+static const char *const kEoB1CharGuiStringsWp1DOSItalian[2] = {
+	"FFSSS",
+	"ZAC"
+};
+
+static const StringListProvider kEoB1CharGuiStringsWp1DOSItalianProvider = { ARRAYSIZE(kEoB1CharGuiStringsWp1DOSItalian), kEoB1CharGuiStringsWp1DOSItalian };
+
+static const char *const kEoB1CharGuiStringsWrDOSItalian[4] = {
+	"FUORI",
+	"PORTATA",
+	"NESSUNA",
+	"MUNIZIONE"
+};
+
+static const StringListProvider kEoB1CharGuiStringsWrDOSItalianProvider = { ARRAYSIZE(kEoB1CharGuiStringsWrDOSItalian), kEoB1CharGuiStringsWrDOSItalian };
+
+static const char *const kEoB1CharGuiStringsSt1DOSItalian[6] = {
+	"Scambiando",
+	"MORTO",
+	"SVENUTO",
+	"(LENTEZZA)",
+	"AVVELENATO",
+	"PARALIZZATO"
+};
+
+static const StringListProvider kEoB1CharGuiStringsSt1DOSItalianProvider = { ARRAYSIZE(kEoB1CharGuiStringsSt1DOSItalian), kEoB1CharGuiStringsSt1DOSItalian };
+
+static const char *const kEoB1CharGuiStringsInDOSItalian[4] = {
+	"INFO PERSONAGGIO",
+	"CLASSE ARMATURA",
+	"ESP",
+	"LIV"
+};
+
+static const StringListProvider kEoB1CharGuiStringsInDOSItalianProvider = { ARRAYSIZE(kEoB1CharGuiStringsInDOSItalian), kEoB1CharGuiStringsInDOSItalian };
+
+static const char *const kEoB1CharStatusStrings7DOSItalian[1] = {
+	"%s ha perso la forza dei giganti.\r"
+};
+
+static const StringListProvider kEoB1CharStatusStrings7DOSItalianProvider = { ARRAYSIZE(kEoB1CharStatusStrings7DOSItalian), kEoB1CharStatusStrings7DOSItalian };
+
+static const char *const kEoB1CharStatusStrings81DOSItalian[1] = {
+	"%s risente degli effetti del veleno!\r"
+};
+
+static const StringListProvider kEoB1CharStatusStrings81DOSItalianProvider = { ARRAYSIZE(kEoB1CharStatusStrings81DOSItalian), kEoB1CharStatusStrings81DOSItalian };
+
+static const char *const kEoB1CharStatusStrings9DOSItalian[1] = {
+	"%s non ""\x0E"" pi""\x12"" paralizzato!\r"
+};
+
+static const StringListProvider kEoB1CharStatusStrings9DOSItalianProvider = { ARRAYSIZE(kEoB1CharStatusStrings9DOSItalian), kEoB1CharStatusStrings9DOSItalian };
+
+static const char *const kEoB1CharStatusStrings131DOSItalian[1] = {
+	"%s ""\x0E"" %s!\r"
+};
+
+static const StringListProvider kEoB1CharStatusStrings131DOSItalianProvider = { ARRAYSIZE(kEoB1CharStatusStrings131DOSItalian), kEoB1CharStatusStrings131DOSItalian };
+
+static const char *const kEoB1LevelGainStringsDOSItalian[1] = {
+	"\x06\x01""%s ha guadagnato un livello di esperienza.""\x06\x0F""\r"
+};
+
+static const StringListProvider kEoB1LevelGainStringsDOSItalianProvider = { ARRAYSIZE(kEoB1LevelGainStringsDOSItalian), kEoB1LevelGainStringsDOSItalian };
+
+static const char *const kEoB1BookNumbersDOSItalian[5] = {
+	"Primo",
+	"Secondo",
+	"Terzo",
+	"Quarto",
+	"Quinto"
+};
+
+static const StringListProvider kEoB1BookNumbersDOSItalianProvider = { ARRAYSIZE(kEoB1BookNumbersDOSItalian), kEoB1BookNumbersDOSItalian };
+
+static const char *const kEoB1MageSpellsListDOSItalian[26] = {
+	"",
+	"Armatura",
+	"Mani Brucianti",
+	"Individua Magico",
+	"Dardo Incantato",
+	"Lettura Magico",
+	"Scudo",
+	"Scarica Elettrica",
+	"Invisibilit""\x0C",
+	"Chiavistello",
+	"Freccia Acida M.",
+	"Nube Maleodorante",
+	"Dissolvi Magie",
+	"Palla di Fuoco",
+	"Freccia Infuocata",
+	"Velocit""\x0C",
+	"Blocca Persone",
+	"Invisibilit""\x0C"" 3m",
+	"Fulmine",
+	"Tocco del Vampiro",
+	"Paura",
+	"Tempesta Ghiaccio",
+	"Pelle di Pietra",
+	"Nube Assassina",
+	"Cono di Freddo",
+	"Blocca Mostri"
+};
+
+static const StringListProvider kEoB1MageSpellsListDOSItalianProvider = { ARRAYSIZE(kEoB1MageSpellsListDOSItalian), kEoB1MageSpellsListDOSItalian };
+
+static const char *const kEoB1ClericSpellsListDOSItalian[25] = {
+	"",
+	"Benedizione",
+	"Cura Fer.L.",
+	"Causa Fer.L.",
+	"Individua Magico",
+	"Protez.Male",
+	"Aiuto",
+	"Lama Fiammegg.",
+	"Blocca Persone",
+	"Rallenta Veleno",
+	"Creare Cibo",
+	"Dissolvi Magie",
+	"Paramenti Magici",
+	"Preghiera",
+	"Rimuovi Paralisi",
+	"Cura Fer.G.",
+	"Causa Fer.G.",
+	"Neutral.Veleni",
+	"Protez.Male 3m",
+	"Protez.Fulmine",
+	"Cura Fer.C.",
+	"Causa Fer.C.",
+	"Colonna di Fuoco",
+	"Rianimare Morti",
+	"Imposizione Mani"
+};
+
+static const StringListProvider kEoB1ClericSpellsListDOSItalianProvider = { ARRAYSIZE(kEoB1ClericSpellsListDOSItalian), kEoB1ClericSpellsListDOSItalian };
+
+static const char *const kEoB1SpellNamesDOSItalian[51] = {
+	"",
+	"armatura",
+	"mani brucianti",
+	"individuazione del magico",
+	"dardo incantato",
+	"scudo",
+	"scarica elettrica",
+	"invisibilit""\x0C",
+	"freccia acida di melf",
+	"nube maleodorante",
+	"dissolvi magie",
+	"palla di fuoco",
+	"freccia infuocata",
+	"velocit""\x0C",
+	"blocca persone",
+	"invisibilit""\x0C"",raggio 3m",
+	"fulmine",
+	"tocco del vampiro",
+	"paura",
+	"tempesta di ghiaccio",
+	"pelle di pietra",
+	"nube assassina",
+	"cono di freddo",
+	"blocca mostri",
+	"benedizione",
+	"cura ferite leggere",
+	"causa ferita leggere",
+	"individuazione del magico",
+	"protezione dal male",
+	"aiuto",
+	"lama fiammeggiante",
+	"blocca persone",
+	"rallenta veleno",
+	"creare cibo e acqua",
+	"dissolvi magie",
+	"paramenti magici",
+	"preghiera",
+	"rimuovi paralisi",
+	"cura ferite gravi",
+	"causa ferite gravi",
+	"neutralizzare veleni",
+	"protezione dal male,raggio 3m",
+	"protezione dal fulmine",
+	"cura ferite critiche",
+	"causa ferite critiche",
+	"colonna di fuoco",
+	"rianimare morti",
+	"imposizione delle mani",
+	"",
+	"",
+	""
+};
+
+static const StringListProvider kEoB1SpellNamesDOSItalianProvider = { ARRAYSIZE(kEoB1SpellNamesDOSItalian), kEoB1SpellNamesDOSItalian };
+
+static const char *const kEoB1MagicStrings1DOSItalian[6] = {
+	"ANNULLA",
+	"ANNULLA",
+	"Questo incantesimo richiede una mano libera.\r",
+	"Non puoi avere due di questi incantesimi attivi.\r",
+	"%s lancia %s.\r",
+	"ok\r"
+};
+
+static const StringListProvider kEoB1MagicStrings1DOSItalianProvider = { ARRAYSIZE(kEoB1MagicStrings1DOSItalian), kEoB1MagicStrings1DOSItalian };
+
+static const char *const kEoB1MagicStrings2DOSItalian[3] = {
+	"nessun effetto\r",
+	"%s ""\x0E"" stato disintegrato!!\r",
+	"Il gruppo ""\x0E"" stato colpito da 'Morte'!\r"
+};
+
+static const StringListProvider kEoB1MagicStrings2DOSItalianProvider = { ARRAYSIZE(kEoB1MagicStrings2DOSItalian), kEoB1MagicStrings2DOSItalian };
+
+static const char *const kEoB1MagicStrings3DOSItalian[6] = {
+	"Su chi lanci l'incantesimo? ",
+	"\rok\r",
+	"\rAnnullato.\r",
+	"L'incantesimo di %s, %s svanisce.\r",
+	"%s ha mancato il mostro.\r",
+	"%s deve stare in prima linea per colpire!\r"
+};
+
+static const StringListProvider kEoB1MagicStrings3DOSItalianProvider = { ARRAYSIZE(kEoB1MagicStrings3DOSItalian), kEoB1MagicStrings3DOSItalian };
+
+static const char *const kEoB1MagicStrings4DOSItalian[1] = {
+	"nessun effetto.\r"
+};
+
+static const StringListProvider kEoB1MagicStrings4DOSItalianProvider = { ARRAYSIZE(kEoB1MagicStrings4DOSItalian), kEoB1MagicStrings4DOSItalian };
+
+static const char *const kEoB1MagicStrings6DOSItalian[1] = {
+	"%s ha gi""\x0C"" classe armatura base alta.\r"
+};
+
+static const StringListProvider kEoB1MagicStrings6DOSItalianProvider = { ARRAYSIZE(kEoB1MagicStrings6DOSItalian), kEoB1MagicStrings6DOSItalian };
+
+static const char *const kEoB1MagicStrings7DOSItalian[5] = {
+	"I",
+	"II",
+	"III",
+	"IV",
+	"V"
+};
+
+static const StringListProvider kEoB1MagicStrings7DOSItalianProvider = { ARRAYSIZE(kEoB1MagicStrings7DOSItalian), kEoB1MagicStrings7DOSItalian };
+
+static const char *const kEoB1MagicStrings8DOSItalian[3] = {
+	"Tutti gli incantesimi su %s si sono dissolti.\r",
+	"'Benedizione' ""\x0E"" gi""\x0C"" attiva sul gruppo.\r",
+	"'Aiuto' fallisce!\r"
+};
+
+static const StringListProvider kEoB1MagicStrings8DOSItalianProvider = { ARRAYSIZE(kEoB1MagicStrings8DOSItalian), kEoB1MagicStrings8DOSItalian };
+
+static const byte kEoB1ManDefDOSItalian[120] = {
+	0x09, 0x0A, 0x02, 0x00, 0x09, 0x04, 0x03, 0x00,
+	0x09, 0x06, 0x06, 0x00, 0x09, 0x03, 0x03, 0x00,
+	0x09, 0x04, 0x02, 0x00, 0x09, 0x01, 0x02, 0x00,
+	0x09, 0x05, 0x01, 0x00, 0x09, 0x09, 0x02, 0x00,
+	0x09, 0x06, 0x02, 0x00, 0x23, 0x01, 0x05, 0x00,
+	0x23, 0x02, 0x02, 0x00, 0x23, 0x03, 0x06, 0x00,
+	0x23, 0x05, 0x01, 0x00, 0x23, 0x06, 0x03, 0x00,
+	0x23, 0x07, 0x01, 0x00, 0x1A, 0x01, 0x01, 0x00,
+	0x1A, 0x03, 0x02, 0x00, 0x1A, 0x06, 0x01, 0x00,
+	0x24, 0x01, 0x03, 0x00, 0x24, 0x03, 0x04, 0x00,
+	0x24, 0x03, 0x01, 0x00, 0x02, 0x04, 0x03, 0x00,
+	0x02, 0x03, 0x03, 0x00, 0x02, 0x05, 0x03, 0x00,
+	0x01, 0x01, 0x01, 0x00, 0x01, 0x05, 0x03, 0x00,
+	0x01, 0x04, 0x03, 0x00, 0x0C, 0x02, 0x01, 0x00,
+	0x0C, 0x03, 0x03, 0x00, 0x0C, 0x04, 0x02, 0x00
+};
+
+static const ByteProvider kEoB1ManDefDOSItalianProvider = { ARRAYSIZE(kEoB1ManDefDOSItalian), kEoB1ManDefDOSItalian };
+
+static const char *const kEoB1ManWordDOSItalian[31] = {
+	"attacks",
+	"short",
+	"line",
+	"weapons",
+	"certain",
+	"rank",
+	"rear",
+	"can",
+	"away",
+	"dungeon",
+	"cursor",
+	"feature",
+	"information",
+	"displayed",
+	"below",
+	"around",
+	"carefree",
+	"gnomes",
+	"clerics",
+	"mystic",
+	"pummel",
+	"fitness",
+	"using",
+	"toughness",
+	"wealth",
+	"wizard",
+	"officials",
+	"hound",
+	"disturbing",
+	"flaming",
+	""
+};
+
+static const StringListProvider kEoB1ManWordDOSItalianProvider = { ARRAYSIZE(kEoB1ManWordDOSItalian), kEoB1ManWordDOSItalian };
+
+static const char *const kEoB1ManPromptDOSItalian[1] = {
+	"\r\r\r\rOn the page with this symbol...\r\rFind line %d\rEnter word %d\r"
+};
+
+static const StringListProvider kEoB1ManPromptDOSItalianProvider = { ARRAYSIZE(kEoB1ManPromptDOSItalian), kEoB1ManPromptDOSItalian };
+
+static const char *const kEoB1MonsterDistAttStringsDOSItalian[5] = {
+	"%s ""\x0E"" stato colpito da 'Causa Ferite Gravi'\r",
+	"Il gruppo ""\x0E"" stato colpito da 'Flagello Mentale'!\r",
+	"paralizzato",
+	"avvelenato",
+	"paralizzato"
+};
+
+static const StringListProvider kEoB1MonsterDistAttStringsDOSItalianProvider = { ARRAYSIZE(kEoB1MonsterDistAttStringsDOSItalian), kEoB1MonsterDistAttStringsDOSItalian };
+
diff --git a/dists/engine-data/kyra.dat b/dists/engine-data/kyra.dat
index 37b3b0e..3ad01b8 100644
Binary files a/dists/engine-data/kyra.dat and b/dists/engine-data/kyra.dat differ
diff --git a/engines/kyra/detection_tables.h b/engines/kyra/detection_tables.h
index 1ada9a8..2ee0262 100644
--- a/engines/kyra/detection_tables.h
+++ b/engines/kyra/detection_tables.h
@@ -1568,6 +1568,22 @@ const KYRAGameDescription adGameDescs[] = {
 		EOB_FLAGS
 	},
 
+	{	// Italian fan translation
+		{
+			"eob",
+			0,
+			{
+				{ "EOBDATA3.PAK", 0, "3ed915ab5b94d60dbfe1b55379889c51", -1 },
+				{ 0, 0, 0, 0 }
+			},
+				Common::IT_ITA,
+				Common::kPlatformDOS,
+				ADGF_TESTING,
+				GUIO7(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GUIO_RENDEREGA, GUIO_RENDERCGA, GAMEOPTION_EOB_HPGRAPHS)
+		},
+		EOB_FLAGS
+	},
+
 	{
 		{
 			"eob2",
diff --git a/engines/kyra/staticres.cpp b/engines/kyra/staticres.cpp
index 9b3b92b..731f2f4 100644
--- a/engines/kyra/staticres.cpp
+++ b/engines/kyra/staticres.cpp
@@ -39,7 +39,7 @@
 
 namespace Kyra {
 
-#define RESFILE_VERSION 85
+#define RESFILE_VERSION 86
 
 namespace {
 bool checkKyraDat(Common::SeekableReadStream *file) {
diff --git a/engines/kyra/staticres_eob.cpp b/engines/kyra/staticres_eob.cpp
index 54cc306..aa7adc7 100644
--- a/engines/kyra/staticres_eob.cpp
+++ b/engines/kyra/staticres_eob.cpp
@@ -464,20 +464,34 @@ void EoBCoreEngine::initStaticResource() {
 	// EOB I doesn't have load and save menus, because there is only one single
 	// save slot. Instead of emulating this we provide a menu similiar to EOB II.
 
-	static const char *const saveLoadStrings[3][4] = {
-		{   "Cancel",   "Empty Slot",   "Save Game",    "Load Game"     },
-		{   "Abbr.",    "Leerer Slot",  "Speichern",    "  Laden"       },
-		{   0,          0,              0,              0               }
+	static const char *const saveLoadStrings[4][4] = {
+		{   "Cancel",   "Empty Slot",		"Save Game",    "Load Game"     },
+		{   "Abbr.",    "Leerer Slot",		"Speichern",    "  Laden"       },
+		{	" < < ",	"Posizione Vuota",	"Salva",		"Carica"	    },
+		{   0,          0,					0,					0			}
 	};
 
-	static const char *const errorSlotEmptyString[3] = {
+	static const char *const errorSlotEmptyString[4] = {
 		"There is no game\rsaved in that slot!",
 		"Hier ist noch kein\rSpiel gespeichert!",
+		"Non c'\x0E alcun gioco\rsalvato in quella\rposizione!",
 		0
 	};
 
-	_saveLoadStrings = saveLoadStrings[(_flags.lang == Common::EN_ANY) ? 0 : ((_flags.lang == Common::DE_DEU) ? 1 : 2)];
-	_errorSlotEmptyString = errorSlotEmptyString[(_flags.lang == Common::EN_ANY) ? 0 : ((_flags.lang == Common::DE_DEU) ? 1 : 2)];
+	if (_flags.lang == Common::EN_ANY) {
+		_saveLoadStrings = saveLoadStrings[0];
+		_errorSlotEmptyString = errorSlotEmptyString[0];
+	} else if (_flags.lang == Common::DE_DEU) {
+		_saveLoadStrings = saveLoadStrings[1];
+		_errorSlotEmptyString = errorSlotEmptyString[1];
+	} else if (_flags.lang == Common::IT_ITA) {
+		_saveLoadStrings = saveLoadStrings[2];
+		_errorSlotEmptyString = errorSlotEmptyString[2];
+	} else {
+		_saveLoadStrings = saveLoadStrings[3];
+		_errorSlotEmptyString = errorSlotEmptyString[3];
+	}
+
 	_menuOkString = "OK";
 }
 
diff --git a/engines/kyra/text_rpg.cpp b/engines/kyra/text_rpg.cpp
index 03acde8..5cd9973 100644
--- a/engines/kyra/text_rpg.cpp
+++ b/engines/kyra/text_rpg.cpp
@@ -30,7 +30,7 @@
 namespace Kyra {
 
 enum {
-	kEoBTextBufferSize = 2048
+	kEoBTextBufferSize = 2560
 };
 
 TextDisplayer_rpg::TextDisplayer_rpg(KyraRpgEngine *engine, Screen *scr) : _vm(engine), _screen(scr),
@@ -216,7 +216,7 @@ void TextDisplayer_rpg::displayText(char *str, ...) {
 			break;
 
 		default:
-			if (_vm->game() == GI_LOL || (unsigned char)c > 30) {
+			if (_vm->game() == GI_EOB1 || _vm->game() == GI_LOL || (unsigned char)c > 30) {
 				_lineWidth += (sjisTextMode ? 4 : (_screen->_currentFont == Screen::FID_SJIS_FNT ? 9 : _screen->getCharWidth((uint8)c)));
 				_currentLine[_numCharsLeft++] = c;
 				_currentLine[_numCharsLeft] = 0;






More information about the Scummvm-git-logs mailing list