[Scummvm-git-logs] scummvm master -> bbf543abcb514db5f9bba6b6a13b839069bfd3bd
sev-
noreply at scummvm.org
Fri Mar 24 20:20:08 UTC 2023
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
9f28d71443 KYRA: Add support for French Amiga release and Czech DOS fan translation
fa006c0282 KYRA: Add versions, sizes for entries
3f3bdafce4 KYRA: Add accurate GUIs for each version/language
bbf543abcb KYRA: Remove error string from lok_dos_french.h
Commit: 9f28d7144328ef1f55858f11938b3e0261de7522
https://github.com/scummvm/scummvm/commit/9f28d7144328ef1f55858f11938b3e0261de7522
Author: eientei (einstein95 at users.noreply.github.com)
Date: 2023-03-24T21:20:02+01:00
Commit Message:
KYRA: Add support for French Amiga release and Czech DOS fan translation
Changed paths:
A devtools/create_kyradat/resources/lok_amiga_french.h
A devtools/create_kyradat/resources/lok_dos_oldfloppy_czech.h
devtools/create_kyradat/create_kyradat.cpp
devtools/create_kyradat/games.cpp
devtools/create_kyradat/resources.cpp
engines/kyra/detection_tables.h
engines/kyra/resource/staticres.cpp
diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp
index 1a4be94b41f..f5372db6726 100644
--- a/devtools/create_kyradat/create_kyradat.cpp
+++ b/devtools/create_kyradat/create_kyradat.cpp
@@ -1204,6 +1204,7 @@ const TypeTable languageTable[] = {
{ ZH_CHN, 9 },
{ ZH_TWN, 10 },
{ KO_KOR, 11 },
+ { CS_CZE, 12 },
{ -1, -1 }
};
diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp
index a226fddb98b..24a3ac0e963 100644
--- a/devtools/create_kyradat/games.cpp
+++ b/devtools/create_kyradat/games.cpp
@@ -36,6 +36,7 @@ const Game kyra1Games[] = {
{ kKyra1, kPlatformAmiga, kNoSpecial, EN_ANY },
{ kKyra1, kPlatformAmiga, kNoSpecial, DE_DEU },
+ { kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA },
{ kKyra1, kPlatformAmiga, kNoSpecial, IT_ITA },
{ kKyra1, kPlatformDOS, kNoSpecial, EN_ANY },
@@ -44,6 +45,7 @@ const Game kyra1Games[] = {
{ kKyra1, kPlatformDOS, kNoSpecial, IT_ITA },
{ kKyra1, kPlatformDOS, kNoSpecial, ES_ESP },
{ kKyra1, kPlatformDOS, kOldFloppy, RU_RUS },
+ { kKyra1, kPlatformDOS, kOldFloppy, CS_CZE },
{ kKyra1, kPlatformDOS, kNoSpecial, KO_KOR },
{ kKyra1, kPlatformDOS, kNoSpecial, ZH_TWN },
diff --git a/devtools/create_kyradat/resources.cpp b/devtools/create_kyradat/resources.cpp
index 95327e2eea1..2d556ab9b72 100644
--- a/devtools/create_kyradat/resources.cpp
+++ b/devtools/create_kyradat/resources.cpp
@@ -25,6 +25,7 @@
// The Legend of Kyrandia
#include "resources/lok_amiga.h"
#include "resources/lok_amiga_english.h"
+#include "resources/lok_amiga_french.h"
#include "resources/lok_amiga_german.h"
#include "resources/lok_amiga_italian.h"
@@ -37,6 +38,7 @@
#include "resources/lok_dos_german.h"
#include "resources/lok_dos_italian.h"
#include "resources/lok_dos_oldfloppy.h"
+#include "resources/lok_dos_oldfloppy_czech.h"
#include "resources/lok_dos_oldfloppy_russian.h"
#include "resources/lok_dos_spanish.h"
#include "resources/lok_dos_korean.h"
@@ -265,6 +267,29 @@ static const ResourceProvider resourceProviders[] = {
{ k1NewGameString, kKyra1, kPlatformAmiga, kNoSpecial, DE_DEU, &k1NewGameStringAmigaGermanProvider },
{ k1ConfigStrings, kKyra1, kPlatformAmiga, kNoSpecial, DE_DEU, &k1ConfigStringsAmigaGermanProvider },
{ k1CreditsStrings, kKyra1, kPlatformAmiga, kNoSpecial, DE_DEU, &k1CreditsStringsAmigaGermanProvider },
+ { k1IntroStrings, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1IntroStringsAmigaFrenchProvider },
+ { k1ItemNames, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1ItemNamesAmigaFrenchProvider },
+ { k1TakenStrings, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1TakenStringsAmigaFrenchProvider },
+ { k1PlacedStrings, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1PlacedStringsAmigaFrenchProvider },
+ { k1DroppedStrings, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1DroppedStringsAmigaFrenchProvider },
+ { k1NoDropStrings, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1NoDropStringsAmigaFrenchProvider },
+ { k1PutDownString, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1PutDownStringAmigaFrenchProvider },
+ { k1WaitAmuletString, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1WaitAmuletStringAmigaFrenchProvider },
+ { k1BlackJewelString, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1BlackJewelStringAmigaFrenchProvider },
+ { k1HealingTipString, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1HealingTipStringAmigaFrenchProvider },
+ { k1PoisonGoneString, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1PoisonGoneStringAmigaFrenchProvider },
+ { k1ThePoisonStrings, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1ThePoisonStringsAmigaFrenchProvider },
+ { k1FluteStrings, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1FluteStringsAmigaFrenchProvider },
+ { k1WispJewelStrings, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1WispJewelStringsAmigaFrenchProvider },
+ { k1MagicJewelStrings, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1MagicJewelStringsAmigaFrenchProvider },
+ { k1FlaskFullString, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1FlaskFullStringAmigaFrenchProvider },
+ { k1FullFlaskString, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1FullFlaskStringAmigaFrenchProvider },
+ { k1OutroHomeString, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1OutroHomeStringAmigaFrenchProvider },
+ { k1VeryCleverString, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1VeryCleverStringAmigaFrenchProvider },
+ { k1GUIStrings, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1GUIStringsAmigaFrenchProvider },
+ { k1NewGameString, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1NewGameStringAmigaFrenchProvider },
+ { k1ConfigStrings, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1ConfigStringsAmigaFrenchProvider },
+ { k1CreditsStrings, kKyra1, kPlatformAmiga, kNoSpecial, FR_FRA, &k1CreditsStringsAmigaFrenchProvider },
{ k1IntroStrings, kKyra1, kPlatformAmiga, kNoSpecial, IT_ITA, &k1IntroStringsAmigaItalianProvider },
{ k1ItemNames, kKyra1, kPlatformAmiga, kNoSpecial, IT_ITA, &k1ItemNamesAmigaItalianProvider },
{ k1TakenStrings, kKyra1, kPlatformAmiga, kNoSpecial, IT_ITA, &k1TakenStringsAmigaItalianProvider },
@@ -599,6 +624,27 @@ static const ResourceProvider resourceProviders[] = {
{ k1ConfigStrings, kKyra1, kPlatformDOS, kOldFloppy, RU_RUS, &k1ConfigStringsDOSOldFloppyRussianProvider },
{ k1AudioTracks, kKyra1, kPlatformDOS, kOldFloppy, UNK_LANG, &k1AudioTracksDOSOldFloppyProvider },
{ k1AudioTracksIntro, kKyra1, kPlatformDOS, kOldFloppy, UNK_LANG, &k1AudioTracksIntroDOSOldFloppyProvider },
+ { k1IntroStrings, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1IntroStringsDOSOldFloppyCzechProvider },
+ { k1ItemNames, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1ItemNamesDOSOldFloppyCzechProvider },
+ { k1TakenStrings, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1TakenStringsDOSOldFloppyCzechProvider },
+ { k1PlacedStrings, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1PlacedStringsDOSOldFloppyCzechProvider },
+ { k1DroppedStrings, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1DroppedStringsDOSOldFloppyCzechProvider },
+ { k1PutDownString, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1PutDownStringDOSOldFloppyCzechProvider },
+ { k1WaitAmuletString, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1WaitAmuletStringDOSOldFloppyCzechProvider },
+ { k1BlackJewelString, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1BlackJewelStringDOSOldFloppyCzechProvider },
+ { k1HealingTipString, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1HealingTipStringDOSOldFloppyCzechProvider },
+ { k1PoisonGoneString, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1PoisonGoneStringDOSOldFloppyCzechProvider },
+ { k1ThePoisonStrings, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1ThePoisonStringsDOSOldFloppyCzechProvider },
+ { k1FluteStrings, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1FluteStringsDOSOldFloppyCzechProvider },
+ { k1WispJewelStrings, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1WispJewelStringsDOSOldFloppyCzechProvider },
+ { k1MagicJewelStrings, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1MagicJewelStringsDOSOldFloppyCzechProvider },
+ { k1FlaskFullString, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1FlaskFullStringDOSOldFloppyCzechProvider },
+ { k1FullFlaskString, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1FullFlaskStringDOSOldFloppyCzechProvider },
+ { k1OutroHomeString, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1OutroHomeStringDOSOldFloppyCzechProvider },
+ { k1VeryCleverString, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1VeryCleverStringDOSOldFloppyCzechProvider },
+ { k1GUIStrings, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1GUIStringsDOSOldFloppyCzechProvider },
+ { k1NewGameString, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1NewGameStringDOSOldFloppyCzechProvider },
+ { k1ConfigStrings, kKyra1, kPlatformDOS, kOldFloppy, CS_CZE, &k1ConfigStringsDOSOldFloppyCzechProvider },
{ k1KallakWritingSeq, kKyra1, kPlatformDOS, kTalkieVersion, UNK_LANG, &k1KallakWritingSeqDOSCDProvider },
{ k1MalcolmTreeSeq, kKyra1, kPlatformDOS, kTalkieVersion, UNK_LANG, &k1MalcolmTreeSeqDOSCDProvider },
{ k1WestwoodLogoSeq, kKyra1, kPlatformDOS, kTalkieVersion, UNK_LANG, &k1WestwoodLogoSeqDOSCDProvider },
diff --git a/devtools/create_kyradat/resources/lok_amiga_french.h b/devtools/create_kyradat/resources/lok_amiga_french.h
new file mode 100644
index 00000000000..0345db71a92
--- /dev/null
+++ b/devtools/create_kyradat/resources/lok_amiga_french.h
@@ -0,0 +1,477 @@
+static const char *const k1IntroStringsAmigaFrench[51] = {
+ "This is a text test - 1",
+ "This is a text test - 2",
+ "Salut Kallak...",
+ "...Puissant Chef de l'Ordre des Mystiques Royaux!",
+ "Je t'ai fait peur?",
+ "Malcolm!",
+ "On m'a dit hier que tu t'""\x82""tais ""\x82""vad""\x82"".",
+ "Je t'attendais depuis longtemps.",
+ "Pourquoi me serais-je press""\x82""?",
+ "C'est moi qui gouverne ce pays!",
+ "Ton faible sort n'a pas d'effet sur moi.",
+ "Tue-moi maintenant!",
+ "Il ne me reste pas beaucoup de pouvoirs magiques.",
+ "Je veux te faire du mal, sois-en s""\x96""r...",
+ "...Maintenant, tu es transform""\x82"" en pierre...",
+ "...mais je te laisse tes yeux.",
+ "Je ne verse aucune larme pour Kyrandia...",
+ "...mais je ne peux pas te refuser les tiennes.",
+ "Malcolm le Bouffon est libre!",
+ "Il contr""\x93""le la Kyragemme maintenant...",
+ "...source de tous les pouvoirs magiques de Kyrandia!",
+ "",
+ "Comment oses-tu ME faire tr""\x82""bucher!",
+ "Mais non, quelque chose de sp""\x82""cial pour toi...",
+ "Un sort humoristique!",
+ "Mais je pr""\x82""viendrai.",
+ "Ne saute pas sur CET arbre!",
+ "Ne grimpe pas sur CET arbre, petit ""\x82""cureuil!",
+ "Hou!",
+ "C'est plus marrant comme ""\x87""a...",
+ "...n'est-ce pas?",
+ "Ha ha ha...",
+ "Les doigts ne sont-ils pas une chose merveilleuse?",
+ "C'est super d'""\x88""tre en vie!",
+ "Brandon!",
+ "Grand-P""\x8A""re! On y est arriv""\x82""!",
+ "Non! TU y es arriv""\x82""!",
+ "Longue vie au Roi Brandon!",
+ "Longue vie ""\x85"" l'Ordre des Mystiques Royaux!",
+ "Retournons mettre de l'ordre dans Kyrandia!",
+ "Bonne id""\x82""e!",
+ "En tant que Roi...",
+ "je d""\x82""clare que les sandales sont d""\x82""sormais les souliers officiels ""\x85"" Kyrandia!",
+ "Bien jou""\x82"", Brandon!",
+ "La Terre ne pleure plus...",
+ "Et tu as retrouv""\x82"" tes amis!",
+ "Ma Ch""\x8A""re Brynn...",
+ "Malcolm s'est ""\x82""vad""\x82""!",
+ "Il viendra me chercher bient""\x93""t.",
+ "S'il te pla""\x8C""t Brandon, aide-moi...",
+ ""
+};
+
+static const StringListProvider k1IntroStringsAmigaFrenchProvider = { ARRAYSIZE(k1IntroStringsAmigaFrench), k1IntroStringsAmigaFrench };
+
+static const char *const k1ItemNamesAmigaFrench[82] = {
+ "Grenat",
+ "Am""\x82""thyste",
+ "Aigue-marine",
+ "Diamant",
+ "Emeraude",
+ "Perle",
+ "Rubis",
+ "Olivine",
+ "Saphir",
+ "Opale",
+ "Topaze",
+ "Onyx",
+ "Aventurine",
+ "Pierre de Lune",
+ "Pierre d'Iris",
+ "Magn""\x82""tite",
+ "Rose",
+ "Tulipe",
+ "Orchid""\x82""e",
+ "Rose d'argent",
+ "Statuette d'argent",
+ "Pi""\x8A""ce d'argent",
+ "Pi""\x8A""ce d'or",
+ "Bague en or",
+ "Calice royal",
+ "Pomme de pin",
+ "Gland",
+ "Noix",
+ "Baie de feu luisantes",
+ "Baie de feu",
+ "Poisson",
+ "Ar""\x88""te",
+ "Gigot de mouton",
+ "Os",
+ "Pomme",
+ "Trognon de pomme",
+ "Myrtille",
+ "Champignon",
+ "Note",
+ "Bille",
+ "Scie",
+ "Croix ans""\x82""e",
+ "Plume",
+ "Oeuf",
+ "Feuille",
+ "Tr""\x8A""fle",
+ "Etoile bris""\x82""e",
+ "Boule de cristal",
+ "Larme",
+ "Miroir",
+ "Tesson de glace",
+ "Fl""\x96""te",
+ "Sablier",
+ "Cl""\x82"" m""\x82""tallique",
+ "Cl""\x82"" de jade",
+ "Cl""\x82"" obsidion",
+ "Potion rouge",
+ "Potion bleue",
+ "Potion jaune",
+ "Potion verte",
+ "Potion orange",
+ "Potion violette",
+ "Potion d'arcs-en-ciel",
+ "Eau fraiche",
+ "Eau sal""\x82""e",
+ "Eau min""\x82""rale",
+ "Eau magique",
+ "Gourde vide",
+ "Parchemin",
+ "Morceau de parchemin",
+ "Pierre magique rouge",
+ "Pierre magique orange",
+ "Pierre magique jaune",
+ "Pierre magique verte",
+ "Pierre magique turquoise",
+ "Pierre magique bleue",
+ "Pierre magique violette",
+ "Rocher lourd",
+ "Couronne royale",
+ "Sceptre royal",
+ "Cl""\x82"" en or",
+ "Objet inconnu"
+};
+
+static const StringListProvider k1ItemNamesAmigaFrenchProvider = { ARRAYSIZE(k1ItemNamesAmigaFrench), k1ItemNamesAmigaFrench };
+
+static const char *const k1TakenStringsAmigaFrench[1] = {
+ " pris."
+};
+
+static const StringListProvider k1TakenStringsAmigaFrenchProvider = { ARRAYSIZE(k1TakenStringsAmigaFrench), k1TakenStringsAmigaFrench };
+
+static const char *const k1PlacedStringsAmigaFrench[1] = {
+ " plac""\x82""."
+};
+
+static const StringListProvider k1PlacedStringsAmigaFrenchProvider = { ARRAYSIZE(k1PlacedStringsAmigaFrench), k1PlacedStringsAmigaFrench };
+
+static const char *const k1DroppedStringsAmigaFrench[1] = {
+ " l""\x83""ch""\x82""."
+};
+
+static const StringListProvider k1DroppedStringsAmigaFrenchProvider = { ARRAYSIZE(k1DroppedStringsAmigaFrench), k1DroppedStringsAmigaFrench };
+
+static const char *const k1NoDropStringsAmigaFrench[2] = {
+ "Vous ne pouvez pas l""\x83""cher autre chose ici.",
+ "Vous ne pouvez pas mettre ""\x87""a l""\x85""."
+};
+
+static const StringListProvider k1NoDropStringsAmigaFrenchProvider = { ARRAYSIZE(k1NoDropStringsAmigaFrench), k1NoDropStringsAmigaFrench };
+
+static const char *const k1PutDownStringAmigaFrench[1] = {
+ "Il faudrait peut-""\x88""tre que je pose ""\x87""a d'abord."
+};
+
+static const StringListProvider k1PutDownStringAmigaFrenchProvider = { ARRAYSIZE(k1PutDownStringAmigaFrench), k1PutDownStringAmigaFrench };
+
+static const char *const k1WaitAmuletStringAmigaFrench[1] = {
+ "Je suppose qu'il me faut attendre que mon amulette retrouve son pouvoir."
+};
+
+static const StringListProvider k1WaitAmuletStringAmigaFrenchProvider = { ARRAYSIZE(k1WaitAmuletStringAmigaFrench), k1WaitAmuletStringAmigaFrench };
+
+static const char *const k1BlackJewelStringAmigaFrench[1] = {
+ "C'est un bijou, mais pourquoi est-il noir?"
+};
+
+static const StringListProvider k1BlackJewelStringAmigaFrenchProvider = { ARRAYSIZE(k1BlackJewelStringAmigaFrench), k1BlackJewelStringAmigaFrench };
+
+static const char *const k1HealingTipStringAmigaFrench[1] = {
+ "Hue, ""\x87""a pourrait bien m'""\x88""tre utile si je suis bless""\x82""."
+};
+
+static const StringListProvider k1HealingTipStringAmigaFrenchProvider = { ARRAYSIZE(k1HealingTipStringAmigaFrench), k1HealingTipStringAmigaFrench };
+
+static const char *const k1PoisonGoneStringAmigaFrench[2] = {
+ "G""\x82""nial!",
+ "Les effets du poison ont disparu!"
+};
+
+static const StringListProvider k1PoisonGoneStringAmigaFrenchProvider = { ARRAYSIZE(k1PoisonGoneStringAmigaFrench), k1PoisonGoneStringAmigaFrench };
+
+static const char *const k1ThePoisonStringsAmigaFrench[4] = {
+ "Le poison...",
+ "Je ne peux plus respirer...",
+ "Je ne me sens pas tr""\x8A""s bien...",
+ "Ce serpent doit ""\x88""tre \rvenimeux!"
+};
+
+static const StringListProvider k1ThePoisonStringsAmigaFrenchProvider = { ARRAYSIZE(k1ThePoisonStringsAmigaFrench), k1ThePoisonStringsAmigaFrench };
+
+static const char *const k1FluteStringsAmigaFrench[2] = {
+ // Original:
+ // "a ne sonne pas tr UBYTE s bien.",
+ // "Cette derni UBYTE re note int tait vraiment aigue!"
+ // Using the proper strings from DOS FR
+ "\x80""a ne sonne pas tr""\x8A""s bien.",
+ "Cette derni""\x8A""re note ""\x82""tait vraiment aigue!"
+};
+
+static const StringListProvider k1FluteStringsAmigaFrenchProvider = { ARRAYSIZE(k1FluteStringsAmigaFrench), k1FluteStringsAmigaFrench };
+
+static const char *const k1WispJewelStringsAmigaFrench[3] = {
+ "Je ne m'en sens pas vraiment capable maintenant.",
+ "Je devrait poser mon, ma, mes ",
+ ", d'abord."
+};
+
+static const StringListProvider k1WispJewelStringsAmigaFrenchProvider = { ARRAYSIZE(k1WispJewelStringsAmigaFrench), k1WispJewelStringsAmigaFrench };
+
+static const char *const k1MagicJewelStringsAmigaFrench[1] = {
+ "C'""\x82""tait bizarre."
+};
+
+static const StringListProvider k1MagicJewelStringsAmigaFrenchProvider = { ARRAYSIZE(k1MagicJewelStringsAmigaFrench), k1MagicJewelStringsAmigaFrench };
+
+static const char *const k1FlaskFullStringAmigaFrench[1] = {
+ // Original: "Cette gourde est ddjj pleine."
+ // Using the proper string from DOS FR
+ "Cette gourde est d""\x82""j""\x85"" pleine."
+};
+
+static const StringListProvider k1FlaskFullStringAmigaFrenchProvider = { ARRAYSIZE(k1FlaskFullStringAmigaFrench), k1FlaskFullStringAmigaFrench };
+
+static const char *const k1FullFlaskStringAmigaFrench[4] = {
+ "La gourde est remplie \rd'eau gazeuse fra""\x8C""che.",
+ "La gourde est remplie \rd'eau sal""\x82""e.",
+ "La gourde est remplie \rd'eau min""\x82""rale.",
+ "Eau magique."
+};
+
+static const StringListProvider k1FullFlaskStringAmigaFrenchProvider = { ARRAYSIZE(k1FullFlaskStringAmigaFrench), k1FullFlaskStringAmigaFrench };
+
+static const char *const k1OutroHomeStringAmigaFrench[1] = {
+ "Maison"
+};
+
+static const StringListProvider k1OutroHomeStringAmigaFrenchProvider = { ARRAYSIZE(k1OutroHomeStringAmigaFrench), k1OutroHomeStringAmigaFrench };
+
+static const char *const k1VeryCleverStringAmigaFrench[1] = {
+ "Malin! Mais vos efforts restent vains."
+};
+
+static const StringListProvider k1VeryCleverStringAmigaFrenchProvider = { ARRAYSIZE(k1VeryCleverStringAmigaFrench), k1VeryCleverStringAmigaFrench };
+
+static const char *const k1GUIStringsAmigaFrench[28] = {
+ "The Legend of Kyrandia",
+ "Charger un jeu",
+ "Sauvegarder ce jeu",
+ "Contr""\x93""les du jeu",
+ "Quitter le jeu",
+ "Reprendre le jeu",
+ "Contr""\x93""les du jeu",
+ "Quel jeu voulez-vous re-charger?",
+ "S""\x82""lectionnez une position o""\x97"" sauvegarder:",
+ "[ EMPLACEMENT VIDE ]",
+ "Annuler",
+ "Entrez description de votre jeu sauvegard""\x82"".",
+ "Sauvegarder",
+ "Repose en paix, Brandon.",
+ "Vous voulez vraiment quitter le jeu?",
+ "XXXXXXXXXXXXXXXXX",
+ "XXXXXXXXXXXXXXXXX",
+ "XXXXXXXXXXXXXXXXX",
+ "XXXXXXXXXXXXXXXXX",
+ "Menu principal",
+ "activ""\x82",
+ "d""\x82""sactiv""\x82",
+ "Oui",
+ "Non",
+ "Vitesse de d""\x82""placement",
+ "Vitesse du texte",
+ "La musique est ",
+ "Les sons sont "
+};
+
+static const StringListProvider k1GUIStringsAmigaFrenchProvider = { ARRAYSIZE(k1GUIStringsAmigaFrench), k1GUIStringsAmigaFrench };
+
+static const char *const k1NewGameStringAmigaFrench[1] = {
+ "[ COMMENCER UN NOUVEAU JEU ]"
+};
+
+static const StringListProvider k1NewGameStringAmigaFrenchProvider = { ARRAYSIZE(k1NewGameStringAmigaFrench), k1NewGameStringAmigaFrench };
+
+static const char *const k1ConfigStringsAmigaFrench[6] = {
+ "plus lent",
+ "lent",
+ "normal",
+ "rapide",
+ "plus rapide",
+ "cliquable"
+};
+
+static const StringListProvider k1ConfigStringsAmigaFrenchProvider = { ARRAYSIZE(k1ConfigStringsAmigaFrench), k1ConfigStringsAmigaFrench };
+
+static const byte k1CreditsStringsAmigaFrench[1280] = {
+ 0x05, 0x46, 0x61, 0x62, 0x6C, 0x65, 0x73, 0x20,
+ 0x26, 0x20, 0x46, 0x69, 0x65, 0x6E, 0x64, 0x73,
+ 0x0D, 0x05, 0x42, 0x6F, 0x6F, 0x6B, 0x20, 0x49,
+ 0x0D, 0x05, 0x54, 0x48, 0x45, 0x20, 0x4C, 0x45,
+ 0x47, 0x45, 0x4E, 0x44, 0x20, 0x4F, 0x46, 0x20,
+ 0x4B, 0x59, 0x52, 0x41, 0x4E, 0x44, 0x49, 0x41,
+ 0x0D, 0x0D, 0x05, 0x44, 0x69, 0x73, 0x74, 0x72,
+ 0x69, 0x62, 0x75, 0x82, 0x20, 0x70, 0x61, 0x72,
+ 0x0D, 0x05, 0x57, 0x65, 0x73, 0x74, 0x77, 0x6F,
+ 0x6F, 0x64, 0x20, 0x53, 0x74, 0x75, 0x64, 0x69,
+ 0x6F, 0x73, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D,
+ 0x0D, 0x0D, 0x03, 0x52, 0x82, 0x61, 0x6C, 0x69,
+ 0x73, 0x61, 0x74, 0x65, 0x75, 0x72, 0x3A, 0x04,
+ 0x42, 0x72, 0x65, 0x74, 0x74, 0x20, 0x57, 0x2E,
+ 0x20, 0x53, 0x70, 0x65, 0x72, 0x72, 0x79, 0x0D,
+ 0x0D, 0x03, 0x43, 0x6F, 0x6E, 0x63, 0x65, 0x70,
+ 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x04, 0x4D, 0x69,
+ 0x63, 0x68, 0x61, 0x65, 0x6C, 0x20, 0x4C, 0x65,
+ 0x67, 0x67, 0x0D, 0x04, 0x52, 0x69, 0x63, 0x6B,
+ 0x20, 0x50, 0x61, 0x72, 0x6B, 0x73, 0x0D, 0x04,
+ 0x50, 0x61, 0x75, 0x6C, 0x20, 0x53, 0x2E, 0x20,
+ 0x4D, 0x75, 0x64, 0x72, 0x61, 0x0D, 0x0D, 0x03,
+ 0x43, 0x68, 0x65, 0x66, 0x20, 0x50, 0x72, 0x6F,
+ 0x67, 0x72, 0x61, 0x6D, 0x6D, 0x65, 0x75, 0x72,
+ 0x3A, 0x04, 0x4D, 0x69, 0x63, 0x68, 0x61, 0x65,
+ 0x6C, 0x20, 0x4C, 0x65, 0x67, 0x67, 0x0D, 0x0D,
+ 0x03, 0x50, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D,
+ 0x6D, 0x65, 0x75, 0x72, 0x20, 0x64, 0x75, 0x20,
+ 0x53, 0x63, 0x82, 0x6E, 0x61, 0x72, 0x69, 0x6F,
+ 0x3A, 0x04, 0x53, 0x63, 0x6F, 0x74, 0x74, 0x20,
+ 0x42, 0x6F, 0x77, 0x65, 0x6E, 0x0D, 0x0D, 0x03,
+ 0x50, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D,
+ 0x65, 0x75, 0x72, 0x20, 0x41, 0x6D, 0x69, 0x67,
+ 0x61, 0x3A, 0x04, 0x42, 0x69, 0x6C, 0x6C, 0x20,
+ 0x53, 0x74, 0x6F, 0x6B, 0x65, 0x73, 0x0D, 0x0D,
+ 0x03, 0x47, 0x82, 0x6E, 0x82, 0x72, 0x69, 0x71,
+ 0x75, 0x65, 0x3A, 0x04, 0x43, 0x68, 0x72, 0x69,
+ 0x73, 0x74, 0x6F, 0x70, 0x68, 0x65, 0x72, 0x20,
+ 0x59, 0x61, 0x74, 0x65, 0x73, 0x0D, 0x0D, 0x03,
+ 0x43, 0x6F, 0x6E, 0x63, 0x65, 0x70, 0x74, 0x69,
+ 0x6F, 0x6E, 0x20, 0x61, 0x72, 0x74, 0x69, 0x73,
+ 0x74, 0x69, 0x71, 0x75, 0x65, 0x3A, 0x04, 0x52,
+ 0x69, 0x63, 0x6B, 0x20, 0x50, 0x61, 0x72, 0x6B,
+ 0x73, 0x0D, 0x04, 0x52, 0x65, 0x6E, 0x20, 0x4F,
+ 0x6C, 0x73, 0x65, 0x6E, 0x0D, 0x04, 0x4C, 0x6F,
+ 0x75, 0x69, 0x73, 0x65, 0x20, 0x53, 0x61, 0x6E,
+ 0x64, 0x6F, 0x76, 0x61, 0x6C, 0x0D, 0x04, 0x4A,
+ 0x6F, 0x73, 0x65, 0x70, 0x68, 0x20, 0x48, 0x65,
+ 0x77, 0x69, 0x74, 0x74, 0x20, 0x49, 0x56, 0x0D,
+ 0x04, 0x4A, 0x75, 0x64, 0x69, 0x74, 0x68, 0x20,
+ 0x50, 0x65, 0x74, 0x65, 0x72, 0x73, 0x6F, 0x6E,
+ 0x0D, 0x04, 0x41, 0x61, 0x72, 0x6F, 0x6E, 0x20,
+ 0x50, 0x6F, 0x77, 0x65, 0x6C, 0x6C, 0x0D, 0x04,
+ 0x45, 0x6C, 0x69, 0x65, 0x20, 0x41, 0x72, 0x61,
+ 0x62, 0x69, 0x61, 0x6E, 0x0D, 0x04, 0x45, 0x72,
+ 0x69, 0x63, 0x20, 0x53, 0x68, 0x75, 0x6C, 0x74,
+ 0x73, 0x0D, 0x0D, 0x03, 0x52, 0x82, 0x61, 0x6C,
+ 0x69, 0x73, 0x61, 0x74, 0x65, 0x75, 0x72, 0x20,
+ 0x41, 0x75, 0x64, 0x69, 0x6F, 0x3A, 0x04, 0x50,
+ 0x61, 0x75, 0x6C, 0x20, 0x53, 0x2E, 0x20, 0x4D,
+ 0x75, 0x64, 0x72, 0x61, 0x0D, 0x0D, 0x03, 0x4D,
+ 0x75, 0x73, 0x69, 0x71, 0x75, 0x65, 0x3A, 0x04,
+ 0x46, 0x72, 0x61, 0x6E, 0x6B, 0x20, 0x4B, 0x6C,
+ 0x65, 0x70, 0x61, 0x63, 0x6B, 0x69, 0x0D, 0x0D,
+ 0x03, 0x45, 0x66, 0x66, 0x65, 0x74, 0x73, 0x20,
+ 0x53, 0x6F, 0x6E, 0x6F, 0x72, 0x65, 0x73, 0x3A,
+ 0x04, 0x44, 0x77, 0x69, 0x67, 0x68, 0x74, 0x20,
+ 0x4F, 0x6B, 0x61, 0x68, 0x61, 0x72, 0x61, 0x0D,
+ 0x0D, 0x03, 0x41, 0x75, 0x74, 0x65, 0x75, 0x72,
+ 0x3A, 0x04, 0x22, 0x4C, 0x65, 0x20, 0x43, 0x6F,
+ 0x63, 0x6F, 0x22, 0x0D, 0x0D, 0x03, 0x41, 0x73,
+ 0x73, 0x75, 0x72, 0x61, 0x6E, 0x63, 0x65, 0x20,
+ 0x51, 0x75, 0x61, 0x6C, 0x69, 0x74, 0x82, 0x3A,
+ 0x04, 0x47, 0x6C, 0x65, 0x6E, 0x6E, 0x20, 0x53,
+ 0x70, 0x65, 0x72, 0x72, 0x79, 0x0D, 0x04, 0x4D,
+ 0x61, 0x74, 0x74, 0x20, 0x43, 0x6F, 0x6C, 0x6C,
+ 0x69, 0x6E, 0x73, 0x0D, 0x04, 0x42, 0x69, 0x6C,
+ 0x6C, 0x20, 0x46, 0x6F, 0x73, 0x74, 0x65, 0x72,
+ 0x0D, 0x04, 0x4D, 0x69, 0x63, 0x68, 0x61, 0x65,
+ 0x6C, 0x20, 0x4C, 0x69, 0x67, 0x68, 0x74, 0x6E,
+ 0x65, 0x72, 0x0D, 0x04, 0x4D, 0x69, 0x63, 0x68,
+ 0x61, 0x65, 0x6C, 0x20, 0x47, 0x61, 0x74, 0x65,
+ 0x72, 0x0D, 0x04, 0x45, 0x75, 0x67, 0x65, 0x6E,
+ 0x65, 0x20, 0x4D, 0x61, 0x72, 0x74, 0x69, 0x6E,
+ 0x0D, 0x04, 0x4D, 0x69, 0x63, 0x68, 0x61, 0x65,
+ 0x6C, 0x20, 0x47, 0x6C, 0x6F, 0x73, 0x65, 0x63,
+ 0x6B, 0x6C, 0x0D, 0x04, 0x4A, 0x75, 0x73, 0x74,
+ 0x69, 0x6E, 0x20, 0x4E, 0x6F, 0x72, 0x72, 0x0D,
+ 0x04, 0x54, 0x6F, 0x70, 0x20, 0x53, 0x74, 0x61,
+ 0x72, 0x20, 0x54, 0x65, 0x73, 0x74, 0x69, 0x6E,
+ 0x67, 0x0D, 0x04, 0x54, 0x65, 0x73, 0x74, 0x69,
+ 0x6E, 0x67, 0x20, 0x31, 0x2C, 0x20, 0x32, 0x2C,
+ 0x20, 0x33, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x05,
+ 0x52, 0x65, 0x6D, 0x65, 0x72, 0x63, 0x69, 0x65,
+ 0x6D, 0x65, 0x6E, 0x74, 0x73, 0x20, 0x50, 0x61,
+ 0x72, 0x74, 0x69, 0x63, 0x75, 0x6C, 0x69, 0x65,
+ 0x72, 0x73, 0x20, 0x85, 0x0D, 0x05, 0x4C, 0x79,
+ 0x6C, 0x65, 0x20, 0x4A, 0x2E, 0x20, 0x48, 0x61,
+ 0x6C, 0x6C, 0x0D, 0x05, 0x44, 0x61, 0x76, 0x69,
+ 0x64, 0x20, 0x42, 0x69, 0x73, 0x68, 0x6F, 0x70,
+ 0x0D, 0x05, 0x22, 0x44, 0x6F, 0x63, 0x22, 0x0D,
+ 0x05, 0x65, 0x74, 0x0D, 0x05, 0x22, 0x54, 0x68,
+ 0x65, 0x20, 0x4C, 0x6F, 0x75, 0x22, 0x0D, 0x0D,
+ 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x05, 0x50,
+ 0x45, 0x52, 0x53, 0x4F, 0x4E, 0x4E, 0x41, 0x47,
+ 0x45, 0x53, 0x0D, 0x0D, 0x05, 0x4D, 0x61, 0x6C,
+ 0x63, 0x6F, 0x6C, 0x6D, 0x20, 0x6C, 0x65, 0x20,
+ 0x42, 0x6F, 0x75, 0x66, 0x66, 0x6F, 0x6E, 0x0D,
+ 0x05, 0x42, 0x72, 0x61, 0x6E, 0x64, 0x6F, 0x6E,
+ 0x20, 0x6C, 0x65, 0x20, 0x43, 0x6F, 0x75, 0x72,
+ 0x61, 0x67, 0x65, 0x75, 0x78, 0x0D, 0x05, 0x42,
+ 0x72, 0x61, 0x6E, 0x64, 0x79, 0x77, 0x69, 0x6E,
+ 0x65, 0x20, 0x65, 0x74, 0x20, 0x44, 0x61, 0x72,
+ 0x6D, 0x0D, 0x05, 0x50, 0x72, 0x88, 0x74, 0x72,
+ 0x65, 0x73, 0x73, 0x65, 0x20, 0x42, 0x72, 0x79,
+ 0x6E, 0x6E, 0x0D, 0x05, 0x5A, 0x61, 0x6E, 0x74,
+ 0x68, 0x69, 0x61, 0x2C, 0x20, 0x6C, 0x61, 0x20,
+ 0x52, 0x65, 0x69, 0x6E, 0x65, 0x20, 0x64, 0x65,
+ 0x20, 0x6C, 0x27, 0x41, 0x6C, 0x63, 0x68, 0x69,
+ 0x6D, 0x69, 0x65, 0x0D, 0x05, 0x48, 0x65, 0x72,
+ 0x6D, 0x61, 0x6E, 0x2C, 0x20, 0x6C, 0x27, 0x68,
+ 0x6F, 0x6D, 0x6D, 0x65, 0x20, 0x85, 0x20, 0x74,
+ 0x6F, 0x75, 0x74, 0x20, 0x66, 0x61, 0x69, 0x72,
+ 0x65, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D,
+ 0x05, 0x54, 0x4F, 0x55, 0x54, 0x45, 0x20, 0x52,
+ 0x45, 0x53, 0x53, 0x45, 0x4D, 0x42, 0x4C, 0x41,
+ 0x4E, 0x43, 0x45, 0x20, 0x44, 0x45, 0x53, 0x20,
+ 0x50, 0x45, 0x52, 0x53, 0x4F, 0x4E, 0x4E, 0x41,
+ 0x47, 0x45, 0x53, 0x20, 0x44, 0x45, 0x20, 0x43,
+ 0x45, 0x20, 0x4A, 0x45, 0x55, 0x0D, 0x05, 0x41,
+ 0x56, 0x45, 0x43, 0x20, 0x44, 0x45, 0x53, 0x20,
+ 0x50, 0x45, 0x52, 0x53, 0x4F, 0x4E, 0x4E, 0x45,
+ 0x53, 0x20, 0x56, 0x49, 0x56, 0x41, 0x4E, 0x54,
+ 0x45, 0x53, 0x20, 0x4F, 0x55, 0x20, 0x44, 0x45,
+ 0x43, 0x45, 0x44, 0x45, 0x45, 0x53, 0x0D, 0x05,
+ 0x45, 0x53, 0x54, 0x20, 0x55, 0x4E, 0x45, 0x20,
+ 0x50, 0x55, 0x52, 0x45, 0x20, 0x43, 0x4F, 0x4E,
+ 0x43, 0x49, 0x44, 0x45, 0x4E, 0x43, 0x45, 0x2E,
+ 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x05, 0x4D, 0x61,
+ 0x78, 0x54, 0x72, 0x61, 0x78, 0xE2, 0x20, 0x6D,
+ 0x75, 0x73, 0x69, 0x63, 0x20, 0x73, 0x6F, 0x66,
+ 0x74, 0x77, 0x61, 0x72, 0x65, 0x0D, 0x05, 0x20,
+ 0xE3, 0x20, 0x31, 0x39, 0x39, 0x32, 0x20, 0x53,
+ 0x79, 0x6C, 0x76, 0x61, 0x6E, 0x20, 0x54, 0x65,
+ 0x63, 0x68, 0x6E, 0x69, 0x63, 0x61, 0x6C, 0x20,
+ 0x41, 0x72, 0x74, 0x73, 0x0D, 0x05, 0x4C, 0x69,
+ 0x63, 0x65, 0x6E, 0x73, 0x65, 0x64, 0x20, 0x62,
+ 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x72,
+ 0x65, 0x61, 0x6D, 0x65, 0x72, 0x73, 0x20, 0x47,
+ 0x75, 0x69, 0x6C, 0x64, 0x2C, 0x20, 0x49, 0x6E,
+ 0x63, 0x2E, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D,
+ 0x05, 0x43, 0x6F, 0x70, 0x79, 0x72, 0x69, 0x67,
+ 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x31,
+ 0x39, 0x39, 0x32, 0x2C, 0x20, 0x57, 0x65, 0x73,
+ 0x74, 0x77, 0x6F, 0x6F, 0x64, 0x20, 0x53, 0x74,
+ 0x75, 0x64, 0x69, 0x6F, 0x73, 0x2C, 0x20, 0x49,
+ 0x6E, 0x63, 0x2E, 0x0D, 0x05, 0x54, 0x6F, 0x75,
+ 0x73, 0x20, 0x64, 0x72, 0x6F, 0x69, 0x74, 0x73,
+ 0x20, 0x72, 0x82, 0x73, 0x65, 0x72, 0x76, 0x82,
+ 0x73, 0x2E, 0x0D, 0x0D, 0x0D, 0x0D, 0x00, 0x00
+};
+
+static const ByteProvider k1CreditsStringsAmigaFrenchProvider = { ARRAYSIZE(k1CreditsStringsAmigaFrench), k1CreditsStringsAmigaFrench };
+
diff --git a/devtools/create_kyradat/resources/lok_dos_oldfloppy_czech.h b/devtools/create_kyradat/resources/lok_dos_oldfloppy_czech.h
new file mode 100644
index 00000000000..5893a4d2baf
--- /dev/null
+++ b/devtools/create_kyradat/resources/lok_dos_oldfloppy_czech.h
@@ -0,0 +1,328 @@
+static const char *const k1IntroStringsDOSOldFloppyCzech[51] = {
+ "This is a text test - 1",
+ "This is a text test - 2",
+ "Zdravicko, Kalaku...",
+ "...Mocny vudce Kralovskych Mystiku!",
+ "Snad ses nepolekal?",
+ "Malcolm!",
+ "Vcera jsem slysel o tvem uteku.",
+ "A cekal jsem, ze prijdes uz driv.",
+ "Mam snad spechat?",
+ "Vladnu teto zemi!",
+ "Tvoje smesna kletba me uz nesvazuje.",
+ "Dobra, zabij me!",
+ "Zbyva mi jen malo kouzel.",
+ "Chci ti ublizit, bud bez obav...",
+ "...Ted je z tebe kamen.",
+ " Ale necham ti tve oci.",
+ "Neronim slzy pro Kyrandii...",
+ "...Ale ty tvoje ti neodepru.",
+ "Sasek Malcolm se osvobodil!",
+ "Ovlada ted Kyragem...",
+ "...zdroj vsech kouzel v Kyradnii!",
+ "",
+ "Tys mi podrazil nohy!",
+ "Hmm, mam pro tebe neco zvlastniho...",
+ "Malou legracku!",
+ "Varuju te, veverko.",
+ "Na TENHLE strom nelez!",
+ "Na TENHLE strom neskakej, veverko!",
+ "Buu!",
+ "Tak je to zabavnejsi...",
+ "...Nebo neni?",
+ "Ha ha ha...",
+ "Nejsou prsty skvela vec?",
+ "Je nadherne byt nazivu!",
+ "Chlapce!",
+ " Dedecku! Jsi zivy!",
+ "Ano, diky TOBE!",
+ "At zije Kral Brandon!",
+ "At ziji Kralovsti Mystikove!",
+ "Ted pojdme dat Kyrandii zase do poradku!",
+ "Dobra!",
+ "Jako prvni kralovske narizeni...",
+ "Prohlasuji sandaly za oficialni obuv v Kyrandii!",
+ "Dobra prace, synu!",
+ "Kraj uz nadale netrpi...",
+ "A tvoji pratele byli oziveni!",
+ "Draha Bryn...",
+ "Malcolm se osvobodil!",
+ "Brzy si pro mne prijde.",
+ "Pomoz Brandonovi...",
+ ""
+};
+
+static const StringListProvider k1IntroStringsDOSOldFloppyCzechProvider = { ARRAYSIZE(k1IntroStringsDOSOldFloppyCzech), k1IntroStringsDOSOldFloppyCzech };
+
+static const char *const k1ItemNamesDOSOldFloppyCzech[107] = {
+ "Garnet",
+ "Amethyst",
+ "Aquamarine",
+ "Diamond",
+ "Emerald",
+ "Pearl",
+ "Ruby",
+ "Peridot",
+ "Sapphire",
+ "Opal",
+ "Topaz",
+ "Onyx",
+ "Sunstone",
+ "Moonstone",
+ "Rainbowstone",
+ "Lodestone",
+ "Rose",
+ "Tulip",
+ "Orchid",
+ "Silver Rose",
+ "Silver Statuette",
+ "Silver Coin",
+ "Gold Coin",
+ "Gold Ring",
+ "Royal Chalice",
+ "Pinecone",
+ "Acorn",
+ "Walnut",
+ "Everglowing Fireberries",
+ "Fireberries",
+ "Fireberries",
+ "Fireberries",
+ "Fireberries",
+ "Fireberries",
+ "Fish",
+ "Fish Bone",
+ "Mutton Leg",
+ "Bone",
+ "Apple",
+ "Apple Core",
+ "Blueberries",
+ "Mushroom",
+ "Note",
+ "Marble",
+ "Saw",
+ "Ankh",
+ "Feather",
+ "Egg",
+ "Leaf",
+ "Shamrock",
+ "Fallen Star",
+ "Crystal Ball",
+ "Teardrop",
+ "Mirror",
+ "Ice Shard",
+ "Flute",
+ "Hourglass",
+ "Iron Key",
+ "Jade Key",
+ "Obsidion Key",
+ "Red Potion",
+ "Red Potion",
+ "Blue Potion",
+ "Blue Potion",
+ "Yellow Potion",
+ "Yellow Potion",
+ "Green Potion",
+ "Orange Potion",
+ "Purple Potion",
+ "Potion of Rainbows",
+ "Fresh Water",
+ "Fresh Water",
+ "Salt Water",
+ "Salt Water",
+ "Mineral Water",
+ "Mineral Water",
+ "Magical Water",
+ "Magical Water",
+ "Empty Flask",
+ "Empty Flask",
+ "Scroll",
+ "Scroll",
+ "Scroll",
+ "Scroll",
+ "Scroll",
+ "Scroll",
+ "Scroll",
+ "Scroll",
+ "Scroll",
+ "Scroll",
+ "Parchment scrap",
+ "Parchment scrap",
+ "Parchment scrap",
+ "Parchment scrap",
+ "Parchment scrap",
+ "Red Magestone",
+ "Orange Magestone",
+ "Yellow Magestone",
+ "Green Magestone",
+ "Blue-Green Magestone",
+ "Blue Magestone",
+ "Purple Magestone",
+ "Heavy rock",
+ "Royal Crown",
+ "Royal Sceptre",
+ "Gold key",
+ "Unknown item"
+};
+
+static const StringListProvider k1ItemNamesDOSOldFloppyCzechProvider = { ARRAYSIZE(k1ItemNamesDOSOldFloppyCzech), k1ItemNamesDOSOldFloppyCzech };
+
+static const char *const k1TakenStringsDOSOldFloppyCzech[2] = {
+ " drzen.",
+ " drzen."
+};
+
+static const StringListProvider k1TakenStringsDOSOldFloppyCzechProvider = { ARRAYSIZE(k1TakenStringsDOSOldFloppyCzech), k1TakenStringsDOSOldFloppyCzech };
+
+static const char *const k1PlacedStringsDOSOldFloppyCzech[1] = {
+ " ulozen."
+};
+
+static const StringListProvider k1PlacedStringsDOSOldFloppyCzechProvider = { ARRAYSIZE(k1PlacedStringsDOSOldFloppyCzech), k1PlacedStringsDOSOldFloppyCzech };
+
+static const char *const k1DroppedStringsDOSOldFloppyCzech[1] = {
+ " odlozen"
+};
+
+static const StringListProvider k1DroppedStringsDOSOldFloppyCzechProvider = { ARRAYSIZE(k1DroppedStringsDOSOldFloppyCzech), k1DroppedStringsDOSOldFloppyCzech };
+
+static const char *const k1PutDownStringDOSOldFloppyCzech[1] = {
+ "Mozna, ze tohle bych mel polozit."
+};
+
+static const StringListProvider k1PutDownStringDOSOldFloppyCzechProvider = { ARRAYSIZE(k1PutDownStringDOSOldFloppyCzech), k1PutDownStringDOSOldFloppyCzech };
+
+static const char *const k1WaitAmuletStringDOSOldFloppyCzech[1] = {
+ "Nejspis budu muset pockat, az muj amulet znovu ziska silu."
+};
+
+static const StringListProvider k1WaitAmuletStringDOSOldFloppyCzechProvider = { ARRAYSIZE(k1WaitAmuletStringDOSOldFloppyCzech), k1WaitAmuletStringDOSOldFloppyCzech };
+
+static const char *const k1BlackJewelStringDOSOldFloppyCzech[1] = {
+ "Je to drahokam, ale proc je cerny?"
+};
+
+static const StringListProvider k1BlackJewelStringDOSOldFloppyCzechProvider = { ARRAYSIZE(k1BlackJewelStringDOSOldFloppyCzech), k1BlackJewelStringDOSOldFloppyCzech };
+
+static const char *const k1HealingTipStringDOSOldFloppyCzech[1] = {
+ "Juu, timhle bych si mohl vylecit zraneni."
+};
+
+static const StringListProvider k1HealingTipStringDOSOldFloppyCzechProvider = { ARRAYSIZE(k1HealingTipStringDOSOldFloppyCzech), k1HealingTipStringDOSOldFloppyCzech };
+
+static const char *const k1PoisonGoneStringDOSOldFloppyCzech[2] = {
+ "Uzasne!",
+ "Ucinky jedu jsou pryc!"
+};
+
+static const StringListProvider k1PoisonGoneStringDOSOldFloppyCzechProvider = { ARRAYSIZE(k1PoisonGoneStringDOSOldFloppyCzech), k1PoisonGoneStringDOSOldFloppyCzech };
+
+static const char *const k1ThePoisonStringsDOSOldFloppyCzech[4] = {
+ "Ten jed...",
+ "Nemuzu dychat...",
+ "Nejak se necitim dobre.",
+ "Ten had musel \rbyt jedovaty!"
+};
+
+static const StringListProvider k1ThePoisonStringsDOSOldFloppyCzechProvider = { ARRAYSIZE(k1ThePoisonStringsDOSOldFloppyCzech), k1ThePoisonStringsDOSOldFloppyCzech };
+
+static const char *const k1FluteStringsDOSOldFloppyCzech[2] = {
+ "No, nezni zrovna impozantne.",
+ "Ta posledni nota byla vysoko!"
+};
+
+static const StringListProvider k1FluteStringsDOSOldFloppyCzechProvider = { ARRAYSIZE(k1FluteStringsDOSOldFloppyCzech), k1FluteStringsDOSOldFloppyCzech };
+
+static const char *const k1WispJewelStringsDOSOldFloppyCzech[3] = {
+ "Zrovna ted se na to opravdu moc necitim.",
+ "Nejdriv bych asi mel polozit",
+ "."
+};
+
+static const StringListProvider k1WispJewelStringsDOSOldFloppyCzechProvider = { ARRAYSIZE(k1WispJewelStringsDOSOldFloppyCzech), k1WispJewelStringsDOSOldFloppyCzech };
+
+static const char *const k1MagicJewelStringsDOSOldFloppyCzech[1] = {
+ "To bylo zvlastni.."
+};
+
+static const StringListProvider k1MagicJewelStringsDOSOldFloppyCzechProvider = { ARRAYSIZE(k1MagicJewelStringsDOSOldFloppyCzech), k1MagicJewelStringsDOSOldFloppyCzech };
+
+static const char *const k1FlaskFullStringDOSOldFloppyCzech[1] = {
+ "Tahle lahev je uz naplnena."
+};
+
+static const StringListProvider k1FlaskFullStringDOSOldFloppyCzechProvider = { ARRAYSIZE(k1FlaskFullStringDOSOldFloppyCzech), k1FlaskFullStringDOSOldFloppyCzech };
+
+static const char *const k1FullFlaskStringDOSOldFloppyCzech[4] = {
+ "Lahev je ted naplnena \rcerstvou, perlivou vodou.",
+ "Lahev je ted naplnena \rslanou vodou.",
+ "Lahev je ted naplnena \rmineralni vodou.",
+ "Ziva voda."
+};
+
+static const StringListProvider k1FullFlaskStringDOSOldFloppyCzechProvider = { ARRAYSIZE(k1FullFlaskStringDOSOldFloppyCzech), k1FullFlaskStringDOSOldFloppyCzech };
+
+static const char *const k1OutroHomeStringDOSOldFloppyCzech[1] = {
+ "Doma"
+};
+
+static const StringListProvider k1OutroHomeStringDOSOldFloppyCzechProvider = { ARRAYSIZE(k1OutroHomeStringDOSOldFloppyCzech), k1OutroHomeStringDOSOldFloppyCzech };
+
+static const char *const k1VeryCleverStringDOSOldFloppyCzech[1] = {
+ "Velmi chytre! Ale tvoje chabe snahy jsou marne."
+};
+
+static const StringListProvider k1VeryCleverStringDOSOldFloppyCzechProvider = { ARRAYSIZE(k1VeryCleverStringDOSOldFloppyCzech), k1VeryCleverStringDOSOldFloppyCzech };
+
+static const char *const k1GUIStringsDOSOldFloppyCzech[28] = {
+ "Legenda o Kyrandii",
+ "Nahrat hru",
+ "Ulozit hru",
+ "Ovladani hry",
+ "Ukonceni hry",
+ "Zpet do hry",
+ "Ovladani hry",
+ "Kterou hru chces nahrat?",
+ "Vyber pozici pro ulozeni hry:",
+ "[ - VOLNO - ]",
+ "Zrusit",
+ "Napis popis teto pozice:",
+ "Uloz",
+ " Odpocivej v pokoji..",
+ "Jsi si jisty, ze chces ukoncit hru?",
+ "XXX",
+ "XXX",
+ "XXXXXXX",
+ "XXXXXXXXX",
+ "Hl. menu",
+ "+",
+ "-",
+ "Ano",
+ "Ne",
+ "Chuze",
+ "Titulky",
+ "Hudba",
+ "Zvuky"
+};
+
+static const StringListProvider k1GUIStringsDOSOldFloppyCzechProvider = { ARRAYSIZE(k1GUIStringsDOSOldFloppyCzech), k1GUIStringsDOSOldFloppyCzech };
+
+static const char *const k1NewGameStringDOSOldFloppyCzech[1] = {
+ "[ ZACIT NOVOU HRU ]"
+};
+
+static const StringListProvider k1NewGameStringDOSOldFloppyCzechProvider = { ARRAYSIZE(k1NewGameStringDOSOldFloppyCzech), k1NewGameStringDOSOldFloppyCzech };
+
+static const char *const k1ConfigStringsDOSOldFloppyCzech[9] = {
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "1",
+ "2",
+ "3",
+ "cvaknuti"
+};
+
+static const StringListProvider k1ConfigStringsDOSOldFloppyCzechProvider = { ARRAYSIZE(k1ConfigStringsDOSOldFloppyCzech), k1ConfigStringsDOSOldFloppyCzech };
+
diff --git a/engines/kyra/detection_tables.h b/engines/kyra/detection_tables.h
index ccf72d78542..322201d83f2 100644
--- a/engines/kyra/detection_tables.h
+++ b/engines/kyra/detection_tables.h
@@ -220,17 +220,17 @@ const KYRAGameDescription adGameDescs[] = {
KYRA1_FLOPPY_FLAGS
},
- { // Bugreport #7773
+ { // Czech fan translation of v1.0, bugreport #7773
{
"kyra1",
- msg_fanTrans_missingLangResources, // Reason for being unsupported
+ "Extracted",
AD_ENTRY1s("GEMCUT.EMC", "20f876423f4caa20f5de6b4fc5dfafeb", 6686),
Common::CS_CZE,
Common::kPlatformDOS,
- ADGF_UNSUPPORTED,
+ ADGF_NO_FLAGS,
GUIO5(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
- KYRA1_FLOPPY_FLAGS
+ KYRA1_OLDFLOPPY_FLAGS
},
{ // from trembyle
@@ -287,6 +287,21 @@ const KYRAGameDescription adGameDescs[] = {
KYRA1_AMIGA_FLAGS
},
+ {
+ {
+ "kyra1",
+ 0,
+ AD_ENTRY1s("GEMCUT.EMC", "ed6ed782ead16d9dba0719a347e01eea", 7146),
+ Common::FR_FRA,
+ Common::kPlatformAmiga,
+ ADGF_NO_FLAGS,
+ GUIO3(GUIO_NOSPEECH, GUIO_MIDIAMIGA, GUIO_RENDERAMIGA)
+ },
+ KYRA1_AMIGA_FLAGS
+ },
+
+
+
{ // Supplied by CaptainHIT in bug report #11596
{
"kyra1",
diff --git a/engines/kyra/resource/staticres.cpp b/engines/kyra/resource/staticres.cpp
index 8fe76bc54d6..9eada747656 100644
--- a/engines/kyra/resource/staticres.cpp
+++ b/engines/kyra/resource/staticres.cpp
@@ -97,6 +97,7 @@ const IndexTable iLanguageTable[] = {
{ Common::ZH_CHN, 9 },
{ Common::ZH_TWN, 10 },
{ Common::KO_KOR, 11 },
+ { Common::CS_CZE, 12 },
{ -1, -1 }
};
Commit: fa006c02820776b30712d087173d995c3c377067
https://github.com/scummvm/scummvm/commit/fa006c02820776b30712d087173d995c3c377067
Author: eientei (einstein95 at users.noreply.github.com)
Date: 2023-03-24T21:20:02+01:00
Commit Message:
KYRA: Add versions, sizes for entries
Changed paths:
engines/kyra/detection_tables.h
diff --git a/engines/kyra/detection_tables.h b/engines/kyra/detection_tables.h
index 322201d83f2..c365c584c91 100644
--- a/engines/kyra/detection_tables.h
+++ b/engines/kyra/detection_tables.h
@@ -76,6 +76,7 @@ static const char msg_nonEngineDemo[] = _s("Demo plays simple animations wit
const KYRAGameDescription adGameDescs[] = {
/* disable these targets until they get supported
+ // Each DISK*.EXE file contains an embedded ZIP archive
{
{
"kyra1",
@@ -103,11 +104,11 @@ const KYRAGameDescription adGameDescs[] = {
},
*/
- {
+ { // floppy v1.0
{
"kyra1",
"Extracted",
- AD_ENTRY1("GEMCUT.EMC", "3c244298395520bb62b5edfe41688879"),
+ AD_ENTRY1s("GEMCUT.EMC", "3c244298395520bb62b5edfe41688879", 6792),
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
@@ -116,11 +117,11 @@ const KYRAGameDescription adGameDescs[] = {
KYRA1_FLOPPY_FLAGS
},
- {
+ { // floppy v1.3
{
"kyra1",
"Extracted",
- AD_ENTRY1("GEMCUT.EMC", "796e44863dd22fa635b042df1bf16673"),
+ AD_ENTRY1s("GEMCUT.EMC", "796e44863dd22fa635b042df1bf16673", 6816),
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
@@ -129,11 +130,11 @@ const KYRAGameDescription adGameDescs[] = {
KYRA1_FLOPPY_FLAGS
},
- {
+ { // floppy v1.7
{
"kyra1",
"Extracted",
- AD_ENTRY1("GEMCUT.EMC", "abf8eb360e79a6c2a837751fbd4d3d24"),
+ AD_ENTRY1s("GEMCUT.EMC", "abf8eb360e79a6c2a837751fbd4d3d24", 7148),
Common::FR_FRA,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
@@ -146,7 +147,7 @@ const KYRAGameDescription adGameDescs[] = {
{
"kyra1",
"Extracted",
- AD_ENTRY1("GEMCUT.EMC", "6018e1dfeaca7fe83f8d0b00eb0dd049"),
+ AD_ENTRY1s("GEMCUT.EMC", "6018e1dfeaca7fe83f8d0b00eb0dd049", 7216),
Common::DE_DEU,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
@@ -181,11 +182,11 @@ const KYRAGameDescription adGameDescs[] = {
KYRA1_OLDFLOPPY_FLAGS
},
- { // from VooD
+ { // floppy v2.2 from VooD
{
"kyra1",
"Extracted",
- AD_ENTRY1("GEMCUT.EMC", "8909b41596913b3f5deaf3c9f1017b01"),
+ AD_ENTRY1s("GEMCUT.EMC", "8909b41596913b3f5deaf3c9f1017b01", 7030),
Common::ES_ESP,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
@@ -194,7 +195,7 @@ const KYRAGameDescription adGameDescs[] = {
KYRA1_FLOPPY_FLAGS
},
- { // floppy 1.8 from clemmy
+ { // floppy v1.8 from clemmy
{
"kyra1",
"Extracted",
@@ -250,7 +251,7 @@ const KYRAGameDescription adGameDescs[] = {
{
"kyra1",
"Extracted",
- AD_ENTRY1("GEMCUT.EMC", "57907d931675dbd16386c1d81d18fee4"),
+ AD_ENTRY1s("GEMCUT.EMC", "57907d931675dbd16386c1d81d18fee4", 6904),
Common::KO_KOR,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
@@ -263,8 +264,7 @@ const KYRAGameDescription adGameDescs[] = {
{
"kyra1",
0,
- AD_ENTRY2s("GEMCUT.PAK", "2bd1da653eaefd691e050e4a9eb68a64", -1,
- "GEMCUT.EMC", "2a3f44e179f1e9f7643e90083c747571", -1),
+ AD_ENTRY1s("GEMCUT.EMC", "2a3f44e179f1e9f7643e90083c747571", 6814),
Common::EN_ANY,
Common::kPlatformAmiga,
ADGF_NO_FLAGS,
@@ -277,8 +277,7 @@ const KYRAGameDescription adGameDescs[] = {
{
"kyra1",
0,
- AD_ENTRY2s("GEMCUT.PAK", "2bd1da653eaefd691e050e4a9eb68a64", -1,
- "GEMCUT.EMC", "74f99e9ed99abf8d0429826d78485a2a", -1),
+ AD_ENTRY1s("GEMCUT.EMC", "74f99e9ed99abf8d0429826d78485a2a", 7214),
Common::DE_DEU,
Common::kPlatformAmiga,
ADGF_NO_FLAGS,
@@ -300,8 +299,6 @@ const KYRAGameDescription adGameDescs[] = {
KYRA1_AMIGA_FLAGS
},
-
-
{ // Supplied by CaptainHIT in bug report #11596
{
"kyra1",
@@ -315,12 +312,12 @@ const KYRAGameDescription adGameDescs[] = {
KYRA1_AMIGA_FLAGS
},
- {
+ { // Floppy/CD v1.0
{
"kyra1",
0,
- AD_ENTRY2s("GEMCUT.EMC", "796e44863dd22fa635b042df1bf16673", -1,
- "BEAD.CPS", "3038466f65b7751451844707187aa401", -1),
+ AD_ENTRY2s("GEMCUT.EMC", "796e44863dd22fa635b042df1bf16673", 6816,
+ "BEAD.CPS", "3038466f65b7751451844707187aa401", 534),
Common::EN_ANY,
Common::kPlatformMacintosh,
ADGF_NO_FLAGS,
@@ -339,7 +336,7 @@ const KYRAGameDescription adGameDescs[] = {
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSPEECH, GUIO_MIDIGM, GUIO_RENDERVGA)
},
- KYRA1_FLOPPY_CMP_FLAGS
+ KYRA1_FLOPPY_CMP_FLAGS
},
{
@@ -359,8 +356,8 @@ const KYRAGameDescription adGameDescs[] = {
{
"kyra1",
0,
- AD_ENTRY2s("EMC.PAK", "a046bb0b422061aab8e4c4689400343a", -1,
- "TWMUSIC.PAK", "e53bca3a3e3fb49107d59463ec387a59", -1),
+ AD_ENTRY2s("EMC.PAK", "a046bb0b422061aab8e4c4689400343a", 167021,
+ "TWMUSIC.PAK", "e53bca3a3e3fb49107d59463ec387a59", 140352),
Common::EN_ANY,
Common::kPlatformFMTowns,
ADGF_NO_FLAGS,
@@ -373,8 +370,8 @@ const KYRAGameDescription adGameDescs[] = {
{
"kyra1",
0,
- AD_ENTRY2s("JMC.PAK", "9c5707a2a478e8167e44283246612d2c", -1,
- "TWMUSIC.PAK", "e53bca3a3e3fb49107d59463ec387a59", -1),
+ AD_ENTRY2s("JMC.PAK", "9c5707a2a478e8167e44283246612d2c", 168001,
+ "TWMUSIC.PAK", "e53bca3a3e3fb49107d59463ec387a59", 140352),
Common::JA_JPN,
Common::kPlatformFMTowns,
ADGF_NO_FLAGS,
@@ -424,11 +421,11 @@ const KYRAGameDescription adGameDescs[] = {
KYRA1_CD_FLAGS
},
- {
+ { // CD v3.7
{
"kyra1",
"CD",
- AD_ENTRY1("GEMCUT.PAK", "230f54e6afc007ab4117159181a1c722"),
+ AD_ENTRY1s("GEMCUT.PAK", "230f54e6afc007ab4117159181a1c722", 33771),
Common::DE_DEU,
Common::kPlatformDOS,
ADGF_CD,
@@ -437,7 +434,7 @@ const KYRAGameDescription adGameDescs[] = {
KYRA1_CD_FLAGS
},
- {
+ { // CD v3.7
{
"kyra1",
"CD",
Commit: 3f3bdafce4127d4bec1bb9dceff2075433216831
https://github.com/scummvm/scummvm/commit/3f3bdafce4127d4bec1bb9dceff2075433216831
Author: eientei (einstein95 at users.noreply.github.com)
Date: 2023-03-24T21:20:02+01:00
Commit Message:
KYRA: Add accurate GUIs for each version/language
Changed paths:
engines/kyra/detection_tables.h
engines/kyra/gui/gui_lok.cpp
engines/kyra/resource/staticres.cpp
diff --git a/engines/kyra/detection_tables.h b/engines/kyra/detection_tables.h
index c365c584c91..564bbc384ec 100644
--- a/engines/kyra/detection_tables.h
+++ b/engines/kyra/detection_tables.h
@@ -30,6 +30,7 @@ namespace {
#define KYRA1_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
#define KYRA1_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, false, false, true, Kyra::GI_KYRA1)
#define KYRA1_OLDFLOPPY_FLAGS FLAGS(false, false, false, true, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_OLDFLOPPY_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, false, true, false, false, false, false, false, Kyra::GI_KYRA1)
#define KYRA1_AMIGA_FLAGS FLAGS(false, false, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
#define KYRA1_TOWNS_FLAGS FLAGS(false, true, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
#define KYRA1_TOWNS_SJIS_FLAGS FLAGS(false, true, false, false, true, false, false, false, false, Kyra::GI_KYRA1)
@@ -179,7 +180,7 @@ const KYRAGameDescription adGameDescs[] = {
ADGF_NO_FLAGS,
GUIO5(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
- KYRA1_OLDFLOPPY_FLAGS
+ KYRA1_OLDFLOPPY_FAN_FLAGS(Common::RU_RUS, Common::EN_ANY)
},
{ // floppy v2.2 from VooD
@@ -231,7 +232,7 @@ const KYRAGameDescription adGameDescs[] = {
ADGF_NO_FLAGS,
GUIO5(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
- KYRA1_OLDFLOPPY_FLAGS
+ KYRA1_OLDFLOPPY_FAN_FLAGS(Common::CS_CZE, Common::EN_ANY)
},
{ // from trembyle
@@ -408,7 +409,7 @@ const KYRAGameDescription adGameDescs[] = {
KYRA1_CD_FLAGS
},
- { // HEBREW FAN TRANSLATION
+ { // Hebrew fan translation
{
"kyra1",
"CD",
@@ -418,7 +419,7 @@ const KYRAGameDescription adGameDescs[] = {
ADGF_CD,
GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
- KYRA1_CD_FLAGS
+ KYRA1_CD_FAN_FLAGS(Common::HE_ISR, Common::EN_ANY)
},
{ // CD v3.7
@@ -457,7 +458,7 @@ const KYRAGameDescription adGameDescs[] = {
ADGF_CD,
GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
- KYRA1_CD_FLAGS
+ KYRA1_CD_FAN_FLAGS(Common::IT_ITA, Common::EN_ANY)
},
{ // Spanish fan translation
@@ -470,7 +471,7 @@ const KYRAGameDescription adGameDescs[] = {
ADGF_CD,
GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
- KYRA1_CD_FLAGS
+ KYRA1_CD_FAN_FLAGS(Common::ES_ESP, Common::EN_ANY)
},
{ // Kyra 1 Mac CD as mentioned in bug #7695 "KYRA1: Add support for Macintosh CD" by nnooiissee
@@ -493,12 +494,12 @@ const KYRAGameDescription adGameDescs[] = {
"CD",
AD_ENTRY2s("GEMCUT.PAK", "8ddf09fd6bfafdb27b4cf31c5a6fc91d", -1,
"BEAD.CPS", "3038466f65b7751451844707187aa401", -1),
- Common::EN_ANY,
+ Common::PL_POL,
Common::kPlatformMacintosh,
ADGF_CD,
GUIO0()
},
- KYRA1_CD_FLAGS
+ KYRA1_CD_FAN_FLAGS(Common::PL_POL, Common::EN_ANY)
},
{
diff --git a/engines/kyra/gui/gui_lok.cpp b/engines/kyra/gui/gui_lok.cpp
index 51e4eafd867..81ef9d4a267 100644
--- a/engines/kyra/gui/gui_lok.cpp
+++ b/engines/kyra/gui/gui_lok.cpp
@@ -375,6 +375,10 @@ void GUI_LoK::setGUILabels() {
offset = offsetOn = 12;
offsetOptions = 21;
offsetMainMenu = 12;
+ } else if (_vm->gameFlags().lang == Common::IT_ITA) {
+ offset = offsetOn = 32;
+ offsetOptions = 32;
+ offsetMainMenu = 32;
}
} else if (_vm->gameFlags().lang == Common::ES_ESP) {
offsetOn = offsetMainMenu = offsetOptions = offset = -4;
diff --git a/engines/kyra/resource/staticres.cpp b/engines/kyra/resource/staticres.cpp
index 9eada747656..9f7344d5c78 100644
--- a/engines/kyra/resource/staticres.cpp
+++ b/engines/kyra/resource/staticres.cpp
@@ -986,12 +986,12 @@ void KyraEngine_LoK::loadItems() {
void KyraEngine_LoK::loadButtonShapes() {
_screen->loadBitmap("BUTTONS2.CPS", 3, 3, nullptr);
_screen->_curPage = 2;
- _gui->_scrollUpButton.data0ShapePtr = _screen->encodeShape(0, 0, 24, 14, 1);
- _gui->_scrollUpButton.data1ShapePtr = _screen->encodeShape(24, 0, 24, 14, 1);
- _gui->_scrollUpButton.data2ShapePtr = _screen->encodeShape(48, 0, 24, 14, 1);
- _gui->_scrollDownButton.data0ShapePtr = _screen->encodeShape(0, 15, 24, 14, 1);
- _gui->_scrollDownButton.data1ShapePtr = _screen->encodeShape(24, 15, 24, 14, 1);
- _gui->_scrollDownButton.data2ShapePtr = _screen->encodeShape(48, 15, 24, 14, 1);
+ _gui->_scrollUpButton.data0ShapePtr = _screen->encodeShape(0, 0, 24, 15, 1);
+ _gui->_scrollUpButton.data1ShapePtr = _screen->encodeShape(24, 0, 24, 15, 1);
+ _gui->_scrollUpButton.data2ShapePtr = _screen->encodeShape(48, 0, 24, 15, 1);
+ _gui->_scrollDownButton.data0ShapePtr = _screen->encodeShape(0, 15, 24, 15, 1);
+ _gui->_scrollDownButton.data1ShapePtr = _screen->encodeShape(24, 15, 24, 15, 1);
+ _gui->_scrollDownButton.data2ShapePtr = _screen->encodeShape(48, 15, 24, 15, 1);
_screen->_curPage = 0;
}
@@ -1149,15 +1149,14 @@ const uint8 KyraEngine_LoK::_itemPosY[] = {
};
void GUI_LoK::initStaticResource() {
- GUI_V1_BUTTON(_scrollUpButton, 0x12, 1, 1, 1, 0x483, 0, 0, 0, 0x18, 0x0F, 0);
- GUI_V1_BUTTON(_scrollDownButton, 0x13, 1, 1, 1, 0x483, 0, 0, 0, 0x18, 0x0F, 0);
-
- GUI_V1_BUTTON(_menuButtonData[0], 0x0C, 1, 1, 1, 0x487, 0, 0, 0, 0, 0, 0);
- GUI_V1_BUTTON(_menuButtonData[1], 0x0D, 1, 1, 1, 0x487, 0, 0, 0, 0, 0, 0);
- GUI_V1_BUTTON(_menuButtonData[2], 0x0E, 1, 1, 1, 0x487, 0, 0, 0, 0, 0, 0);
- GUI_V1_BUTTON(_menuButtonData[3], 0x0F, 1, 1, 1, 0x487, 0, 0, 0, 0, 0, 0);
- GUI_V1_BUTTON(_menuButtonData[4], 0x10, 1, 1, 1, 0x487, 0, 0, 0, 0, 0, 0);
- GUI_V1_BUTTON(_menuButtonData[5], 0x11, 1, 1, 1, 0x487, 0, 0, 0, 0, 0, 0);
+ GUI_V1_BUTTON(_scrollUpButton, 0x12, 1, 1, 1, 0x483, 0, 0, 0, 24, 15, 0);
+ GUI_V1_BUTTON(_scrollDownButton, 0x13, 1, 1, 1, 0x483, 0, 0, 0, 24, 15, 0);
+ GUI_V1_BUTTON(_menuButtonData[0], 0x0C, 1, 1, 1, 0x487, 0, 0, 0, 0, 0, 0);
+ GUI_V1_BUTTON(_menuButtonData[1], 0x0D, 1, 1, 1, 0x487, 0, 0, 0, 0, 0, 0);
+ GUI_V1_BUTTON(_menuButtonData[2], 0x0E, 1, 1, 1, 0x487, 0, 0, 0, 0, 0, 0);
+ GUI_V1_BUTTON(_menuButtonData[3], 0x0F, 1, 1, 1, 0x487, 0, 0, 0, 0, 0, 0);
+ GUI_V1_BUTTON(_menuButtonData[4], 0x10, 1, 1, 1, 0x487, 0, 0, 0, 0, 0, 0);
+ GUI_V1_BUTTON(_menuButtonData[5], 0x11, 1, 1, 1, 0x487, 0, 0, 0, 0, 0, 0);
delete[] _menu;
_menu = new Menu[6];
@@ -1171,7 +1170,13 @@ void GUI_LoK::initStaticResource() {
int menuItemYEnd = 110;
int menuItemYInc = 17;
int menuItemHeight = 15;
+ int menuItemWidth = 220;
+ int lastItemWidth = 220;
int menuHeight = 139;
+ int menuWidth = 256;
+ int menuItemOffset = -1;
+ int lastItemX = -1;
+ int lastItemLabelX = -1;
if (_vm->gameFlags().lang == Common::ZH_TWN) {
menuItemYStart = 27;
@@ -1182,14 +1187,29 @@ void GUI_LoK::initStaticResource() {
menuItemHeight = 22;
menuHeight = 160;
menuItemYEnd = menuItemYStart + menuItemYInc * 4;
+ } else if (_vm->gameFlags().lang == Common::EN_ANY || _vm->gameFlags().replacedLang == Common::EN_ANY) {
+ // English releases (+ fan translations) have left-aligned text, right-floating "Resume game"
+ menuHeight = 136;
+ menuWidth = 208;
+ menuItemWidth = 148;
+ menuItemOffset = 24;
+ lastItemX = 86;
+ lastItemWidth = 92;
+ lastItemLabelX = -1;
+ } else if (_vm->gameFlags().platform == Common::kPlatformAmiga || _vm->gameFlags().platform == Common::kPlatformDOS) {
+ // European DOS/Amiga releases
+ menuHeight = 136;
+ menuWidth = 208;
+ menuItemWidth = lastItemWidth = 162;
}
- GUI_V1_MENU(_menu[0], -1, -1, 0x100, menuHeight, 248, 249, 250, 0, 251, -1, 8, 0, 5, -1, -1, -1, -1);
- GUI_V1_MENU_ITEM(_menu[0].item[0], 1, 0, 0, 0, -1, -1, menuItemYStart, 0xDC, menuItemHeight, 252, 253, -1, 0, 248, 249, 250, -1, 0, 0, 0, 0, 0);
- GUI_V1_MENU_ITEM(_menu[0].item[1], 1, 0, 0, 0, -1, -1, menuItemYStart + menuItemYInc, 0xDC, menuItemHeight, 252, 253, -1, 0, 248, 249, 250, -1, 0, 0, 0, 0, 0);
- GUI_V1_MENU_ITEM(_menu[0].item[2], 1, 0, 0, 0, -1, -1, menuItemYStart + menuItemYInc * 2, 0xDC, menuItemHeight, 252, 253, -1, 0, 248, 249, 250, -1, 0, 0, 0, 0, 0);
- GUI_V1_MENU_ITEM(_menu[0].item[3], 1, 0, 0, 0, -1, -1, menuItemYStart + menuItemYInc * 3, 0xDC, menuItemHeight, 252, 253, -1, 0, 248, 249, 250, -1, 0, 0, 0, 0, 0);
- GUI_V1_MENU_ITEM(_menu[0].item[4], 1, 0, 0, 0, -1, 0, menuItemYEnd, 0xDC, menuItemHeight, 252, 253, -1, 255, 248, 249, 250, -1, 0, 0, 0, 0, 0);
+ GUI_V1_MENU(_menu[0], -1, -1, menuWidth, menuHeight, 248, 249, 250, 0, 251, -1, 8, 0, 5, -1, -1, -1, -1);
+ GUI_V1_MENU_ITEM(_menu[0].item[0], 1, 0, 0, 0, -1, -1, menuItemYStart, menuItemWidth, menuItemHeight, 252, 253, menuItemOffset, 0, 248, 249, 250, -1, 0, 0, 0, 0, 0);
+ GUI_V1_MENU_ITEM(_menu[0].item[1], 1, 0, 0, 0, -1, -1, menuItemYStart + menuItemYInc, menuItemWidth, menuItemHeight, 252, 253, menuItemOffset, 0, 248, 249, 250, -1, 0, 0, 0, 0, 0);
+ GUI_V1_MENU_ITEM(_menu[0].item[2], 1, 0, 0, 0, -1, -1, menuItemYStart + menuItemYInc * 2, menuItemWidth, menuItemHeight, 252, 253, menuItemOffset, 0, 248, 249, 250, -1, 0, 0, 0, 0, 0);
+ GUI_V1_MENU_ITEM(_menu[0].item[3], 1, 0, 0, 0, -1, -1, menuItemYStart + menuItemYInc * 3, menuItemWidth, menuItemHeight, 252, 253, menuItemOffset, 0, 248, 249, 250, -1, 0, 0, 0, 0, 0);
+ GUI_V1_MENU_ITEM(_menu[0].item[4], 1, 0, 0, 0, lastItemX, 0, menuItemYEnd, lastItemWidth, menuItemHeight, 252, 253, -1, 255, 248, 249, 250, -1, 0, lastItemLabelX, 0, 0, 0);
+
_menu[0].item[0].callback = loadGameMenuFunctor;
_menu[0].item[1].callback = BUTTON_FUNCTOR(GUI_LoK, this, &GUI_LoK::saveGameMenu);
_menu[0].item[2].callback = BUTTON_FUNCTOR(GUI_LoK, this, &GUI_LoK::gameControlsMenu);
@@ -1197,12 +1217,20 @@ void GUI_LoK::initStaticResource() {
_menu[0].item[4].callback = BUTTON_FUNCTOR(GUI_LoK, this, &GUI_LoK::resumeGame);
menuHeight = 56;
- if (_vm->gameFlags().lang == Common::KO_KOR)
+ menuWidth = 320;
+ lastItemX = 216;
+ if (_vm->gameFlags().lang == Common::KO_KOR) {
menuHeight = 60;
+ } else if (_vm->gameFlags().platform == Common::kPlatformPC98 || _vm->gameFlags().lang == Common::EN_ANY) {
+ menuWidth = 288;
+ lastItemX = 192;
+ } else if (_vm->gameFlags().platform == Common::kPlatformAmiga) {
+ lastItemX = 192;
+ }
- GUI_V1_MENU(_menu[1], -1, -1, 0x140, menuHeight, 248, 249, 250, 0, 254, -1, 8, 0, 2, -1, -1, -1, -1);
- GUI_V1_MENU_ITEM(_menu[1].item[0], 1, 0, 0, 0, 0x18, 0, 0x1E, 0x48, menuItemHeight, 252, 253, -1, 255, 248, 249, 250, -1, 0, 0, 0, 0, 0);
- GUI_V1_MENU_ITEM(_menu[1].item[1], 1, 0, 0, 0, 0xD8, 0, 0x1E, 0x48, menuItemHeight, 252, 253, -1, 255, 248, 249, 250, -1, 0, 0, 0, 0, 0);
+ GUI_V1_MENU(_menu[1], -1, -1, menuWidth, menuHeight, 248, 249, 250, 0, 254, -1, 8, 0, 2, -1, -1, -1, -1);
+ GUI_V1_MENU_ITEM(_menu[1].item[0], 1, 0, 0, 0, 24, 0, 30, 72, menuItemHeight, 252, 253, -1, 255, 248, 249, 250, -1, 0, 0, 0, 0, 0);
+ GUI_V1_MENU_ITEM(_menu[1].item[1], 1, 0, 0, 0, lastItemX, 0, 30, 72, menuItemHeight, 252, 253, -1, 255, 248, 249, 250, -1, 0, 0, 0, 0, 0);
_menu[1].item[0].callback = BUTTON_FUNCTOR(GUI_LoK, this, &GUI_LoK::quitConfirmYes);
_menu[1].item[1].callback = BUTTON_FUNCTOR(GUI_LoK, this, &GUI_LoK::quitConfirmNo);
@@ -1240,10 +1268,7 @@ void GUI_LoK::initStaticResource() {
menuHeight = 67;
labelYStart = 44;
- if (_vm->gameFlags().lang == Common::ZH_TWN) {
- menuHeight = 80;
- labelYStart = 50;
- } else if (_vm->gameFlags().lang == Common::KO_KOR) {
+ if (_vm->gameFlags().lang == Common::ZH_TWN || _vm->gameFlags().lang == Common::KO_KOR) {
menuHeight = 80;
labelYStart = 50;
}
@@ -1254,9 +1279,9 @@ void GUI_LoK::initStaticResource() {
_menu[3].item[0].callback = BUTTON_FUNCTOR(GUI_LoK, this, &GUI_LoK::savegameConfirm);
_menu[3].item[1].callback = cancelSubMenuFunctor;
- int menuWidth = 208;
+ menuWidth = 208;
menuHeight = 76;
- int menuItemWidth = 180;
+ menuItemWidth = 180;
menuItemYStart = 30;
menuItemYInc = 17;
@@ -1277,10 +1302,16 @@ void GUI_LoK::initStaticResource() {
_menu[4].item[1].callback = quitPlayingFunctor;
menuHeight = 153;
+ menuWidth = 304;
+ menuItemOffset = 165;
+ menuItemWidth = 128;
menuItemYStart = 30;
menuItemYInc = 17;
+ int labelXStart = 16;
labelYStart = 32;
menuItemYEnd = 127;
+ lastItemWidth = 108;
+ lastItemX = -1;
if (_vm->gameFlags().lang == Common::ZH_TWN) {
menuItemYStart = 27;
@@ -1290,22 +1321,43 @@ void GUI_LoK::initStaticResource() {
menuItemYInc = 24;
menuHeight = 160;
menuItemYEnd = 130;
+ } else if (_vm->gameFlags().lang == Common::EN_ANY ||
+ _vm->gameFlags().platform == Common::kPlatformPC98 ||
+ _vm->gameFlags().platform == Common::kPlatformFMTowns) {
+ menuHeight = 136;
+ menuWidth = 208;
+ menuItemOffset = 110;
+ menuItemWidth = 64;
+ labelXStart = 34;
+ menuItemYEnd = 110;
+ lastItemWidth = 92;
+ lastItemX = 86;
+ } else if (_vm->gameFlags().platform == Common::kPlatformDOS) {
+ menuHeight = 136;
+ menuWidth = 288;
+ menuItemWidth = 116;
+ } else if (_vm->gameFlags().platform == Common::kPlatformAmiga) {
+ menuHeight = 136;
+ menuWidth = 288;
+ menuItemWidth = 116;
+ menuItemOffset = 160;
+ menuItemYEnd = 110;
}
- GUI_V1_MENU(_menu[5], -1, -1, 0x130, menuHeight, 248, 249, 250, 0, 251, -1, 8, 0, 6, -1, -1, -1, -1);
- GUI_V1_MENU_ITEM(_menu[5].item[0], 1, 0, 0, 0, 0xA5, 0, menuItemYStart, 0x80, menuItemHeight, 252, 253, 5, 0, 248, 249, 250, -1, 0, 0x10, labelYStart, 0, 0);
- GUI_V1_MENU_ITEM(_menu[5].item[1], 1, 0, 0, 0, 0xA5, 0, menuItemYStart + menuItemYInc, 0x80, menuItemHeight, 252, 253, 5, 0, 248, 249, 250, -1, 0, 0x10, labelYStart + menuItemYInc, 0, 0);
- GUI_V1_MENU_ITEM(_menu[5].item[2], 1, 0, 0, 0, 0xA5, 0, menuItemYStart + menuItemYInc * 2, 0x80, menuItemHeight, 252, 253, 5, 0, 248, 249, 250, -1, 0, 0x10, labelYStart + menuItemYInc * 2, 0, 0);
- GUI_V1_MENU_ITEM(_menu[5].item[3], 1, 0, 0, 0, 0xA5, 0, menuItemYStart + menuItemYInc * 3, 0x80, menuItemHeight, 252, 253, 5, 0, 248, 249, 250, -1, 0, 0x10, labelYStart + menuItemYInc * 3, 0, 0);
- GUI_V1_MENU_ITEM(_menu[5].item[4], 1, 0, 0, 0, 0xA5, 0, menuItemYStart + menuItemYInc * 4, 0x80, menuItemHeight, 252, 253, 5, 0, 248, 249, 250, -1, 0, 0x10, 0x65, 0, 0);
- GUI_V1_MENU_ITEM(_menu[5].item[5], 1, 0, 0, 0, -1, 0, menuItemYEnd, 0x6C, menuItemHeight, 252, 253, -1, 255, 248, 249, 250, -1, 0, 0, 0, 0, 0);
+ GUI_V1_MENU(_menu[5], -1, -1, menuWidth, menuHeight, 248, 249, 250, 0, 251, -1, 8, 0, 6, -1, -1, -1, -1);
+ GUI_V1_MENU_ITEM(_menu[5].item[0], 1, 0, 0, 0, menuItemOffset, 0, menuItemYStart, menuItemWidth, menuItemHeight, 252, 253, 5, 0, 248, 249, 250, -1, 0, labelXStart, labelYStart, 0, 0);
+ GUI_V1_MENU_ITEM(_menu[5].item[1], 1, 0, 0, 0, menuItemOffset, 0, menuItemYStart + menuItemYInc, menuItemWidth, menuItemHeight, 252, 253, 5, 0, 248, 249, 250, -1, 0, labelXStart, labelYStart + menuItemYInc, 0, 0);
+ GUI_V1_MENU_ITEM(_menu[5].item[2], 1, 0, 0, 0, menuItemOffset, 0, menuItemYStart + menuItemYInc * 2, menuItemWidth, menuItemHeight, 252, 253, 5, 0, 248, 249, 250, -1, 0, labelXStart, labelYStart + menuItemYInc * 2, 0, 0);
+ GUI_V1_MENU_ITEM(_menu[5].item[3], 1, 0, 0, 0, menuItemOffset, 0, menuItemYStart + menuItemYInc * 3, menuItemWidth, menuItemHeight, 252, 253, 5, 0, 248, 249, 250, -1, 0, labelXStart, labelYStart + menuItemYInc * 3, 0, 0);
+ GUI_V1_MENU_ITEM(_menu[5].item[4], 1, 0, 0, 0, menuItemOffset, 0, menuItemYStart + menuItemYInc * 4, menuItemWidth, menuItemHeight, 252, 253, 5, 0, 248, 249, 250, -1, 0, labelXStart, 101, 0, 0);
+ GUI_V1_MENU_ITEM(_menu[5].item[5], 1, 0, 0, 0, lastItemX, 0, menuItemYEnd, lastItemWidth, menuItemHeight, 252, 253, -1, 255, 248, 249, 250, -1, 0, 0, 0, 0, 0);
_menu[5].item[0].callback = BUTTON_FUNCTOR(GUI_LoK, this, &GUI_LoK::controlsChangeMusic);
_menu[5].item[1].callback = BUTTON_FUNCTOR(GUI_LoK, this, &GUI_LoK::controlsChangeSounds);
_menu[5].item[2].callback = BUTTON_FUNCTOR(GUI_LoK, this, &GUI_LoK::controlsChangeWalk);
_menu[5].item[4].callback = BUTTON_FUNCTOR(GUI_LoK, this, &GUI_LoK::controlsChangeText);
_menu[5].item[5].callback = BUTTON_FUNCTOR(GUI_LoK, this, &GUI_LoK::controlsApply);
- // The AMIGA version uses different colors, due to its 32 color nature. We did setup the 256 color version
+ // The Amiga version uses different colors, due to its 32 color nature. We did setup the 256 color version
// colors above, so we need to overwrite those with the correct values over here.
if (_vm->gameFlags().platform == Common::kPlatformAmiga) {
for (int i = 0; i < 6; ++i) {
Commit: bbf543abcb514db5f9bba6b6a13b839069bfd3bd
https://github.com/scummvm/scummvm/commit/bbf543abcb514db5f9bba6b6a13b839069bfd3bd
Author: eientei (einstein95 at users.noreply.github.com)
Date: 2023-03-24T21:20:02+01:00
Commit Message:
KYRA: Remove error string from lok_dos_french.h
Changed paths:
devtools/create_kyradat/resources/lok_dos_french.h
diff --git a/devtools/create_kyradat/resources/lok_dos_french.h b/devtools/create_kyradat/resources/lok_dos_french.h
index fbc98d92da8..0d6f70b79bc 100644
--- a/devtools/create_kyradat/resources/lok_dos_french.h
+++ b/devtools/create_kyradat/resources/lok_dos_french.h
@@ -221,10 +221,9 @@ static const char *const k1HealingTipStringDOSFrench[1] = {
static const StringListProvider k1HealingTipStringDOSFrenchProvider = { ARRAYSIZE(k1HealingTipStringDOSFrench), k1HealingTipStringDOSFrench };
-static const char *const k1PoisonGoneStringDOSFrench[3] = {
+static const char *const k1PoisonGoneStringDOSFrench[2] = {
"G""\x82""nial!",
- "Les effets du poison ont disparu!",
- "MBL1ERREUR: Jeu sauvegard""\x82"" d'un autre produit."
+ "Les effets du poison ont disparu!"
};
static const StringListProvider k1PoisonGoneStringDOSFrenchProvider = { ARRAYSIZE(k1PoisonGoneStringDOSFrench), k1PoisonGoneStringDOSFrench };
More information about the Scummvm-git-logs
mailing list