[Scummvm-git-logs] scummvm master -> d70d9f3b11630779962bcd5e6f2337cba1506094

athrxx noreply at scummvm.org
Mon Nov 15 21:06:27 UTC 2021


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:
d70d9f3b11 KYRA: (LoK/Traditional Chinese) - add final credits


Commit: d70d9f3b11630779962bcd5e6f2337cba1506094
    https://github.com/scummvm/scummvm/commit/d70d9f3b11630779962bcd5e6f2337cba1506094
Author: athrxx (athrxx at scummvm.org)
Date: 2021-11-15T22:05:28+01:00

Commit Message:
KYRA: (LoK/Traditional Chinese) - add final credits

This version does have special hard coded credits text in Chinese. The code also requires some tweaks for correct display.

Changed paths:
    devtools/create_kyradat/create_kyradat.cpp
    devtools/create_kyradat/create_kyradat.h
    devtools/create_kyradat/games.cpp
    devtools/create_kyradat/resources.cpp
    devtools/create_kyradat/resources/lok_dos.h
    devtools/create_kyradat/resources/lok_dos_chinese_trad.h
    dists/engine-data/kyra.dat
    engines/kyra/resource/resource.h
    engines/kyra/resource/staticres.cpp
    engines/kyra/sequence/sequences_lok.cpp


diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp
index 44c85580ee..2348d270c9 100644
--- a/devtools/create_kyradat/create_kyradat.cpp
+++ b/devtools/create_kyradat/create_kyradat.cpp
@@ -39,7 +39,7 @@
 
 
 enum {
-	kKyraDatVersion = 112
+	kKyraDatVersion = 113
 };
 
 const ExtractFilename extractFilenames[] = {
@@ -153,7 +153,7 @@ const ExtractFilename extractFilenames[] = {
 	{ k1SpecialPalette32, kRawData, false },
 	{ k1SpecialPalette33, kRawData, false },
 
-	// CREDITS (used in FM-TOWNS and AMIGA)
+	// CREDITS (used in FM-TOWNS, AMIGA, Chinese DOS)
 	{ k1CreditsStrings, kRawData, true },
 
 	// FM-TOWNS specific
@@ -168,7 +168,6 @@ const ExtractFilename extractFilenames[] = {
 
 	// Chinese version specific
 	{ k1TwoByteFontLookupTable, kRawDataBe16, true },
-	{ k1TwoByteDummyGlyph, kRawData, true },
 
 	// AMIGA specific
 	{ k1AmigaIntroSFXTable, kAmigaSfxTable, false },
diff --git a/devtools/create_kyradat/create_kyradat.h b/devtools/create_kyradat/create_kyradat.h
index 0234e27783..9d1b01171e 100644
--- a/devtools/create_kyradat/create_kyradat.h
+++ b/devtools/create_kyradat/create_kyradat.h
@@ -147,7 +147,6 @@ enum kExtractID {
 	k1AmigaGameSFXTable,
 
 	k1TwoByteFontLookupTable,
-	k1TwoByteDummyGlyph,
 
 	k2SeqplayPakFiles,
 	k2SeqplayCredits,
diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp
index ed7d15b142..7e14bee918 100644
--- a/devtools/create_kyradat/games.cpp
+++ b/devtools/create_kyradat/games.cpp
@@ -265,8 +265,8 @@ const int kyra1FloppyNeed[] = {
 	k1ConfigStrings,
 	k1AudioTracks,
 	k1AudioTracksIntro,
+	k1CreditsStrings,
 	k1TwoByteFontLookupTable,
-	k1TwoByteDummyGlyph,
 	-1
 };
 
diff --git a/devtools/create_kyradat/resources.cpp b/devtools/create_kyradat/resources.cpp
index b236c4d3b1..6f9ac5e9c0 100644
--- a/devtools/create_kyradat/resources.cpp
+++ b/devtools/create_kyradat/resources.cpp
@@ -336,7 +336,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ k1NewGameString, kKyra1, kPlatformDOS, kNoSpecial, EN_ANY, &k1NewGameStringDOSEnglishProvider },
 	{ k1ConfigStrings, kKyra1, kPlatformDOS, kNoSpecial, EN_ANY, &k1ConfigStringsDOSEnglishProvider },
 	{ k1TwoByteFontLookupTable, kKyra1, kPlatformDOS, kNoSpecial, EN_ANY, &k1TwoByteFontLookupTableDOSProvider },
-	{ k1TwoByteDummyGlyph, kKyra1, kPlatformDOS, kNoSpecial, EN_ANY, &k1TwoByteDummyGlyphDOSProvider },
+	{ k1CreditsStrings, kKyra1, kPlatformDOS, kNoSpecial, EN_ANY, &k1k1CreditsStringsDummyDOSProvider },
 	{ k1AudioTracks, kKyra1, kPlatformDOS, kNoSpecial, UNK_LANG, &k1AudioTracksDOSProvider },
 	{ k1AudioTracksIntro, kKyra1, kPlatformDOS, kNoSpecial, UNK_LANG, &k1AudioTracksIntroDOSProvider },
 	{ k1IntroStrings, kKyra1, kPlatformDOS, kNoSpecial, DE_DEU, &k1IntroStringsDOSGermanProvider },
@@ -362,7 +362,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ k1NewGameString, kKyra1, kPlatformDOS, kNoSpecial, DE_DEU, &k1NewGameStringDOSGermanProvider },
 	{ k1ConfigStrings, kKyra1, kPlatformDOS, kNoSpecial, DE_DEU, &k1ConfigStringsDOSGermanProvider },
 	{ k1TwoByteFontLookupTable, kKyra1, kPlatformDOS, kNoSpecial, DE_DEU, &k1TwoByteFontLookupTableDOSProvider },
-	{ k1TwoByteDummyGlyph, kKyra1, kPlatformDOS, kNoSpecial, DE_DEU, &k1TwoByteDummyGlyphDOSProvider },
+	{ k1CreditsStrings, kKyra1, kPlatformDOS, kNoSpecial, DE_DEU, &k1k1CreditsStringsDummyDOSProvider },
 	{ k1IntroStrings, kKyra1, kPlatformDOS, kNoSpecial, FR_FRA, &k1IntroStringsDOSFrenchProvider },
 	{ k1ItemNames, kKyra1, kPlatformDOS, kNoSpecial, FR_FRA, &k1ItemNamesDOSFrenchProvider },
 	{ k1TakenStrings, kKyra1, kPlatformDOS, kNoSpecial, FR_FRA, &k1TakenStringsDOSFrenchProvider },
@@ -386,7 +386,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ k1NewGameString, kKyra1, kPlatformDOS, kNoSpecial, FR_FRA, &k1NewGameStringDOSFrenchProvider },
 	{ k1ConfigStrings, kKyra1, kPlatformDOS, kNoSpecial, FR_FRA, &k1ConfigStringsDOSFrenchProvider },
 	{ k1TwoByteFontLookupTable, kKyra1, kPlatformDOS, kNoSpecial, FR_FRA, &k1TwoByteFontLookupTableDOSProvider },
-	{ k1TwoByteDummyGlyph, kKyra1, kPlatformDOS, kNoSpecial, FR_FRA, &k1TwoByteDummyGlyphDOSProvider },
+	{ k1CreditsStrings, kKyra1, kPlatformDOS, kNoSpecial, FR_FRA, &k1k1CreditsStringsDummyDOSProvider },
 	{ k1IntroStrings, kKyra1, kPlatformDOS, kNoSpecial, IT_ITA, &k1IntroStringsDOSItalianProvider },
 	{ k1ItemNames, kKyra1, kPlatformDOS, kNoSpecial, IT_ITA, &k1ItemNamesDOSItalianProvider },
 	{ k1TakenStrings, kKyra1, kPlatformDOS, kNoSpecial, IT_ITA, &k1TakenStringsDOSItalianProvider },
@@ -410,7 +410,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ k1NewGameString, kKyra1, kPlatformDOS, kNoSpecial, IT_ITA, &k1NewGameStringDOSItalianProvider },
 	{ k1ConfigStrings, kKyra1, kPlatformDOS, kNoSpecial, IT_ITA, &k1ConfigStringsDOSItalianProvider },
 	{ k1TwoByteFontLookupTable, kKyra1, kPlatformDOS, kNoSpecial, IT_ITA, &k1TwoByteFontLookupTableDOSProvider },
-	{ k1TwoByteDummyGlyph, kKyra1, kPlatformDOS, kNoSpecial, IT_ITA, &k1TwoByteDummyGlyphDOSProvider },
+	{ k1CreditsStrings, kKyra1, kPlatformDOS, kNoSpecial, IT_ITA, &k1k1CreditsStringsDummyDOSProvider },
 	{ k1IntroStrings, kKyra1, kPlatformDOS, kNoSpecial, ES_ESP, &k1IntroStringsDOSSpanishProvider },
 	{ k1ItemNames, kKyra1, kPlatformDOS, kNoSpecial, ES_ESP, &k1ItemNamesDOSSpanishProvider },
 	{ k1TakenStrings, kKyra1, kPlatformDOS, kNoSpecial, ES_ESP, &k1TakenStringsDOSSpanishProvider },
@@ -434,7 +434,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ k1NewGameString, kKyra1, kPlatformDOS, kNoSpecial, ES_ESP, &k1NewGameStringDOSSpanishProvider },
 	{ k1ConfigStrings, kKyra1, kPlatformDOS, kNoSpecial, ES_ESP, &k1ConfigStringsDOSSpanishProvider },
 	{ k1TwoByteFontLookupTable, kKyra1, kPlatformDOS, kNoSpecial, ES_ESP, &k1TwoByteFontLookupTableDOSProvider },
-	{ k1TwoByteDummyGlyph, kKyra1, kPlatformDOS, kNoSpecial, ES_ESP, &k1TwoByteDummyGlyphDOSProvider },
+	{ k1CreditsStrings, kKyra1, kPlatformDOS, kNoSpecial, ES_ESP, &k1k1CreditsStringsDummyDOSProvider },
 	{ k1IntroStrings, kKyra1, kPlatformDOS, kNoSpecial, ZH_TWN, &k1IntroStringsDOSChineseTradProvider },
 	{ k1ItemNames, kKyra1, kPlatformDOS, kNoSpecial, ZH_TWN, &k1ItemNamesDOSChineseTradProvider },
 	{ k1TakenStrings, kKyra1, kPlatformDOS, kNoSpecial, ZH_TWN, &k1TakenStringsDOSChineseTradProvider },
@@ -458,7 +458,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ k1NewGameString, kKyra1, kPlatformDOS, kNoSpecial, ZH_TWN, &k1NewGameStringDOSChineseTradProvider },
 	{ k1ConfigStrings, kKyra1, kPlatformDOS, kNoSpecial, ZH_TWN, &k1ConfigStringsDOSChineseTradProvider },
 	{ k1TwoByteFontLookupTable, kKyra1, kPlatformDOS, kNoSpecial, ZH_TWN, &k1TwoByteFontLookupTableDOSChineseTradProvider },
-	{ k1TwoByteDummyGlyph, kKyra1, kPlatformDOS, kNoSpecial, ZH_TWN, &k1TwoByteDummyGlyphDOSChineseTradProvider },
+	{ k1CreditsStrings, kKyra1, kPlatformDOS, kNoSpecial, ZH_TWN, &k1CreditsStringsDOSChineseTradProvider },
 	{ k1KallakWritingSeq, kKyra1, kPlatformDOS, kOldFloppy, UNK_LANG, &k1KallakWritingSeqDOSOldFloppyProvider },
 	{ k1MalcolmTreeSeq, kKyra1, kPlatformDOS, kOldFloppy, UNK_LANG, &k1MalcolmTreeSeqDOSOldFloppyProvider },
 	{ k1WestwoodLogoSeq, kKyra1, kPlatformDOS, kOldFloppy, UNK_LANG, &k1WestwoodLogoSeqDOSOldFloppyProvider },
diff --git a/devtools/create_kyradat/resources/lok_dos.h b/devtools/create_kyradat/resources/lok_dos.h
index f6b55ba7ee..1d4bf3ad35 100644
--- a/devtools/create_kyradat/resources/lok_dos.h
+++ b/devtools/create_kyradat/resources/lok_dos.h
@@ -1924,8 +1924,8 @@ static const uint16 k1TwoByteFontLookupTableDOS[] = {
 
 static const Uint16Provider k1TwoByteFontLookupTableDOSProvider = { ARRAYSIZE(k1TwoByteFontLookupTableDOS), k1TwoByteFontLookupTableDOS };
 
-static const uint8 k1TwoByteDummyGlyphDOS[] = {
+static const uint8 k1k1CreditsStringsDummyDOS[] = {
 	0
 };
 
-static const ByteProvider k1TwoByteDummyGlyphDOSProvider = { ARRAYSIZE(k1TwoByteDummyGlyphDOS), k1TwoByteDummyGlyphDOS };
+static const ByteProvider k1k1CreditsStringsDummyDOSProvider = { ARRAYSIZE(k1k1CreditsStringsDummyDOS), k1k1CreditsStringsDummyDOS };
diff --git a/devtools/create_kyradat/resources/lok_dos_chinese_trad.h b/devtools/create_kyradat/resources/lok_dos_chinese_trad.h
index 47597af53a..99050051e0 100644
--- a/devtools/create_kyradat/resources/lok_dos_chinese_trad.h
+++ b/devtools/create_kyradat/resources/lok_dos_chinese_trad.h
@@ -494,11 +494,132 @@ static const uint16 k1TwoByteFontLookupTableDOSChineseTrad[] = {
 
 static const Uint16Provider k1TwoByteFontLookupTableDOSChineseTradProvider = { ARRAYSIZE(k1TwoByteFontLookupTableDOSChineseTrad), k1TwoByteFontLookupTableDOSChineseTrad };
 
-static const uint8 k1TwoByteDummyGlyphDOSChineseTrad[] = {
-	0xff, 0xfe, 0x80, 0x02, 0xa2, 0xfa, 0xb2, 0x8a,
-	0xaa, 0x8a, 0xa6, 0x8a, 0xa2, 0xfa, 0x80, 0x02,
-	0xbb, 0xba, 0xaa, 0x92, 0xbb, 0x92, 0xa2, 0x92,
-	0x80, 0x02, 0xff, 0xfe
+static const uint8 k1CreditsStringsDOSChineseTrad[] = {
+	0x0d, 0xbc, 0x40, 0xa1, 0x40, 0xa1, 0x40, 0xa1,
+	0x40, 0xb2, 0xd7, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d,
+	0x0d, 0x0d, 0x0d, 0xaf, 0xab, 0xa1, 0x40, 0xb8,
+	0xdc, 0xa1, 0x40, 0xbb, 0x50, 0xa1, 0x40, 0xb4,
+	0x63, 0xa1, 0x40, 0xc5, 0x5d, 0x0d, 0xb2, 0xc4,
+	0xa4, 0x40, 0xb3, 0xa1, 0x0d, 0xb3, 0xcd, 0xc4,
+	0xf5, 0xad, 0x7d, 0xa8, 0xc8, 0xb6, 0xc7, 0xa9,
+	0x5f, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d,
+	0xb9, 0x43, 0xc0, 0xb8, 0xb3, 0x5d, 0xad, 0x70,
+	0x0d, 0x57, 0x65, 0x73, 0x74, 0x77, 0x6f, 0x6f,
+	0x64, 0x20, 0x53, 0x74, 0x75, 0x64, 0x69, 0x6f,
+	0x73, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d,
+	0xba, 0xca, 0xa1, 0x40, 0xbb, 0x73, 0x0d, 0x42,
+	0x72, 0x65, 0x74, 0x74, 0x20, 0x57, 0x2e, 0x20,
+	0x53, 0x70, 0x65, 0x72, 0x72, 0x79, 0x0d, 0x0d,
+	0xb5, 0xa6, 0xa1, 0x40, 0xb9, 0xba, 0x0d, 0x4d,
+	0x69, 0x63, 0x68, 0x61, 0x65, 0x6c, 0x20, 0x4c,
+	0x65, 0x67, 0x67, 0x0d, 0x52, 0x69, 0x63, 0x6b,
+	0x20, 0x50, 0x61, 0x72, 0x6b, 0x73, 0x0d, 0x50,
+	0x61, 0x75, 0x6c, 0x20, 0x53, 0x2e, 0x20, 0x4d,
+	0x75, 0x64, 0x72, 0x61, 0x0d, 0x0d, 0xb5, 0x7b,
+	0xa6, 0xa1, 0xa5, 0x44, 0xba, 0xde, 0x0d, 0x4d,
+	0x69, 0x63, 0x68, 0x61, 0x65, 0x6c, 0x20, 0x4c,
+	0x65, 0x67, 0x67, 0x0d, 0x0d, 0xb9, 0x43, 0xc0,
+	0xb8, 0xbc, 0x40, 0xa5, 0xbb, 0x0d, 0x53, 0x63,
+	0x6f, 0x74, 0x74, 0x20, 0x42, 0x6f, 0x77, 0x65,
+	0x6e, 0x0d, 0x0d, 0x41, 0x6d, 0x69, 0x67, 0x61,
+	0x20, 0xaa, 0xa9, 0xb5, 0x7b, 0xa6, 0xa1, 0xb3,
+	0x5d, 0xad, 0x70, 0x0d, 0x42, 0x69, 0x6c, 0x6c,
+	0x20, 0x53, 0x74, 0x6f, 0x6b, 0x65, 0x73, 0x0d,
+	0x0d, 0xa4, 0xf9, 0xc0, 0x59, 0xbb, 0x50, 0xb5,
+	0xb2, 0xa7, 0xf4, 0xb5, 0x65, 0xad, 0xb1, 0x0d,
+	0x43, 0x68, 0x72, 0x69, 0x73, 0x74, 0x6f, 0x70,
+	0x68, 0x65, 0x72, 0x20, 0x59, 0x61, 0x74, 0x65,
+	0x73, 0x0d, 0x0d, 0xac, 0xfc, 0xa1, 0x40, 0xa4,
+	0x75, 0x0d, 0x52, 0x69, 0x63, 0x6b, 0x20, 0x50,
+	0x61, 0x72, 0x6b, 0x73, 0x0d, 0x52, 0x65, 0x6e,
+	0x20, 0x4f, 0x6c, 0x73, 0x65, 0x6e, 0x0d, 0x4c,
+	0x6f, 0x75, 0x69, 0x73, 0x65, 0x20, 0x53, 0x61,
+	0x6e, 0x64, 0x6f, 0x76, 0x61, 0x6c, 0x0d, 0x4a,
+	0x6f, 0x73, 0x65, 0x70, 0x68, 0x20, 0x48, 0x65,
+	0x77, 0x69, 0x74, 0x74, 0x20, 0x49, 0x56, 0x0d,
+	0x4a, 0x75, 0x64, 0x69, 0x74, 0x68, 0x20, 0x50,
+	0x65, 0x74, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x0d,
+	0x41, 0x61, 0x72, 0x6f, 0x6e, 0x20, 0x50, 0x6f,
+	0x77, 0x65, 0x6c, 0x6c, 0x0d, 0x45, 0x6c, 0x69,
+	0x65, 0x20, 0x41, 0x72, 0x61, 0x62, 0x69, 0x61,
+	0x6e, 0x0d, 0x45, 0x72, 0x69, 0x63, 0x20, 0x53,
+	0x68, 0x75, 0x6c, 0x74, 0x73, 0x0d, 0x0d, 0xad,
+	0xb5, 0xae, 0xc4, 0xa5, 0x44, 0xba, 0xde, 0x0d,
+	0x50, 0x61, 0x75, 0x6c, 0x20, 0x53, 0x2e, 0x20,
+	0x4d, 0x75, 0x64, 0x72, 0x61, 0x0d, 0x0d, 0xad,
+	0xb5, 0xbc, 0xd6, 0xbb, 0x73, 0xa7, 0x40, 0x0d,
+	0x46, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x4b, 0x6c,
+	0x65, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x0d, 0x0d,
+	0xad, 0xb5, 0xae, 0xc4, 0xbb, 0x73, 0xa7, 0x40,
+	0x0d, 0x44, 0x77, 0x69, 0x67, 0x68, 0x74, 0x20,
+	0x4f, 0x6b, 0x61, 0x68, 0x61, 0x72, 0x61, 0x0d,
+	0x0d, 0xa7, 0x40, 0xa1, 0x40, 0xaa, 0xcc, 0x0d,
+	0x22, 0x43, 0x6f, 0x63, 0x6f, 0x22, 0x0d, 0x0d,
+	0xab, 0x7e, 0xbd, 0xe8, 0xb4, 0xfa, 0xb8, 0xd5,
+	0x0d, 0x47, 0x6c, 0x65, 0x6e, 0x6e, 0x20, 0x53,
+	0x70, 0x65, 0x72, 0x72, 0x79, 0x0d, 0x4d, 0x61,
+	0x74, 0x74, 0x20, 0x43, 0x6f, 0x6c, 0x6c, 0x69,
+	0x6e, 0x73, 0x0d, 0x42, 0x69, 0x6c, 0x6c, 0x20,
+	0x46, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x0d, 0x4d,
+	0x69, 0x63, 0x68, 0x61, 0x65, 0x6c, 0x20, 0x4c,
+	0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x72, 0x0d,
+	0x4d, 0x69, 0x63, 0x68, 0x61, 0x65, 0x6c, 0x20,
+	0x47, 0x61, 0x74, 0x65, 0x72, 0x0d, 0x45, 0x75,
+	0x67, 0x65, 0x6e, 0x65, 0x20, 0x4d, 0x61, 0x72,
+	0x74, 0x69, 0x6e, 0x0d, 0x4d, 0x69, 0x63, 0x68,
+	0x61, 0x65, 0x6c, 0x20, 0x47, 0x6c, 0x6f, 0x73,
+	0x65, 0x63, 0x6b, 0x69, 0x0d, 0x4a, 0x75, 0x73,
+	0x74, 0x69, 0x6e, 0x20, 0x4e, 0x6f, 0x72, 0x72,
+	0x0d, 0x54, 0x6f, 0x70, 0x20, 0x53, 0x74, 0x61,
+	0x72, 0x20, 0x54, 0x65, 0x73, 0x74, 0x69, 0x6e,
+	0x67, 0x0d, 0x54, 0x65, 0x73, 0x74, 0x69, 0x6e,
+	0x67, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x0d,
+	0x0d, 0x0d, 0x0d, 0x0d, 0xa6, 0x62, 0xa6, 0xb9,
+	0xaf, 0x53, 0xa7, 0x4f, 0xb7, 0x50, 0xc1, 0xc2,
+	0x0d, 0x4c, 0x79, 0x6c, 0x65, 0x20, 0x4a, 0x2e,
+	0x20, 0x48, 0x61, 0x6c, 0x6c, 0x0d, 0x44, 0x61,
+	0x76, 0x69, 0x64, 0x20, 0x42, 0x69, 0x73, 0x68,
+	0x6f, 0x70, 0x0d, 0x22, 0x54, 0x68, 0x65, 0x20,
+	0x44, 0x6f, 0x63, 0x22, 0x0d, 0xa1, 0xae, 0x0d,
+	0x46, 0x69, 0x72, 0x65, 0x62, 0x65, 0x72, 0x72,
+	0x79, 0x20, 0x47, 0x72, 0x65, 0x65, 0x6e, 0x0d,
+	0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0xa5, 0x58,
+	0xb3, 0xf5, 0xa4, 0x48, 0xaa, 0xab, 0x0d, 0x0d,
+	0xa1, 0x75, 0xa7, 0xcb, 0xa1, 0x40, 0xa6, 0xda,
+	0xa1, 0x76, 0xa1, 0x40, 0xba, 0xbf, 0xba, 0xb8,
+	0xb1, 0x46, 0x0d, 0xa1, 0x75, 0xab, 0x69, 0xa1,
+	0x40, 0xaa, 0xcc, 0xa1, 0x76, 0xa1, 0x40, 0xa5,
+	0xac, 0xc4, 0xf5, 0xb5, 0x6e, 0x0d, 0xa1, 0x40,
+	0xb9, 0x46, 0xae, 0xa6, 0xa1, 0x40, 0xa1, 0xae,
+	0xa1, 0x40, 0xa5, 0xd5, 0xc4, 0xf5, 0xa6, 0x61,
+	0x0d, 0xa1, 0x75, 0xa4, 0x6b, 0xb2, 0xbd, 0xa5,
+	0x71, 0xa1, 0x76, 0xa1, 0x40, 0xa5, 0xac, 0xb5,
+	0xdc, 0xae, 0xa6, 0x0d, 0xa1, 0x75, 0xc1, 0xe5,
+	0xaa, 0xf7, 0xb3, 0x4e, 0xa4, 0x68, 0xa1, 0x76,
+	0xac, 0xc0, 0xa6, 0xe8, 0xa8, 0xc8, 0x0d, 0xa1,
+	0x75, 0xa5, 0xa9, 0xa1, 0x40, 0xa4, 0xe2, 0xa1,
+	0x76, 0xa1, 0x40, 0xbb, 0xae, 0xa1, 0x40, 0xb0,
+	0xd2, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d,
+	0xa5, 0xbb, 0xc0, 0xb8, 0xa5, 0xfe, 0xc5, 0xe9,
+	0xa5, 0x58, 0xb3, 0xf5, 0xa4, 0x48, 0xaa, 0xab,
+	0x0d, 0xa7, 0xa1, 0xac, 0xb0, 0xb5, 0xea, 0xba,
+	0x63, 0x0d, 0xa6, 0x70, 0xa6, 0xb3, 0xb9, 0x70,
+	0xa6, 0x50, 0xa1, 0x40, 0xaf, 0xc2, 0xc4, 0xdd,
+	0xa5, 0xa9, 0xa6, 0x58, 0x0d, 0x0d, 0x0d, 0x0d,
+	0x0d, 0x0d, 0xa4, 0xa4, 0xa4, 0xe5, 0xaa, 0xa9,
+	0x0d, 0xb2, 0xc4, 0xa1, 0x40, 0xa1, 0x40, 0xa2,
+	0xb2, 0xa1, 0x40, 0xa1, 0x40, 0xaa, 0x69, 0x0d,
+	0xa4, 0xe5, 0xa4, 0xc6, 0xa8, 0xc6, 0xb7, 0x7e,
+	0xaa, 0xd1, 0xa5, 0xf7, 0xa6, 0xb3, 0xad, 0xad,
+	0xa4, 0xbd, 0xa5, 0x71, 0x0d, 0x0d, 0x0d, 0x0d,
+	0x0d, 0x0d, 0x0d, 0x0d, 0xaa, 0xa9, 0xc5, 0x76,
+	0xa9, 0xd2, 0xa6, 0xb3, 0xa1, 0x40, 0xc2, 0xbd,
+	0xa6, 0x4c, 0xa5, 0xb2, 0xa8, 0x73, 0x0d, 0x28,
+	0x43, 0x29, 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, 0x0d,
+	0x0d, 0x0d, 0x00
 };
 
-static const ByteProvider k1TwoByteDummyGlyphDOSChineseTradProvider = { ARRAYSIZE(k1TwoByteDummyGlyphDOSChineseTrad), k1TwoByteDummyGlyphDOSChineseTrad };
+static const ByteProvider k1CreditsStringsDOSChineseTradProvider = { ARRAYSIZE(k1CreditsStringsDOSChineseTrad), k1CreditsStringsDOSChineseTrad };
diff --git a/dists/engine-data/kyra.dat b/dists/engine-data/kyra.dat
index cff7303289..edbaa0dfd2 100644
Binary files a/dists/engine-data/kyra.dat and b/dists/engine-data/kyra.dat differ
diff --git a/engines/kyra/resource/resource.h b/engines/kyra/resource/resource.h
index 86b4b7bfc7..a1d63dc53b 100644
--- a/engines/kyra/resource/resource.h
+++ b/engines/kyra/resource/resource.h
@@ -228,7 +228,6 @@ enum KyraResources {
 	k1AmigaGameSFXTable,
 
 	k1TwoByteFontLookupTable,
-	k1TwoByteDummyGlyph,
 
 	k2SeqplayPakFiles,
 	k2SeqplayCredits,
diff --git a/engines/kyra/resource/staticres.cpp b/engines/kyra/resource/staticres.cpp
index 2f3e902f89..6f3d0573a3 100644
--- a/engines/kyra/resource/staticres.cpp
+++ b/engines/kyra/resource/staticres.cpp
@@ -39,7 +39,7 @@
 
 namespace Kyra {
 
-#define RESFILE_VERSION 112
+#define RESFILE_VERSION 113
 
 namespace {
 bool checkKyraDat(Common::SeekableReadStream *file) {
diff --git a/engines/kyra/sequence/sequences_lok.cpp b/engines/kyra/sequence/sequences_lok.cpp
index 5a6e0de90f..e2fca95e4a 100644
--- a/engines/kyra/sequence/sequences_lok.cpp
+++ b/engines/kyra/sequence/sequences_lok.cpp
@@ -1221,16 +1221,31 @@ void KyraEngine_LoK::seq_playCredits() {
 	CreditsLineList lines;
 
 	_screen->disableDualPaletteMode();
-
 	_screen->hideMouse();
-	if (!_flags.isTalkie) {
+
+	Screen::FontId font1, font2;
+	int alignX3 = 157;
+	int alignX4 = 161;
+	int alignXOffs = 0;
+	int lineHeight = 10;
+	int fin = 175;
+
+	if (_flags.lang == Common::ZH_TWN) {
+		font1 = font2 = Screen::FID_CHINESE_FNT;
+		alignX3 = alignX4 = 150;
+		alignXOffs = 10;
+		lineHeight = 16;
+		fin = 160;
+	} else if (!_flags.isTalkie) {
 		_screen->loadFont(Screen::FID_CRED6_FNT, "CREDIT6.FNT");
 		_screen->loadFont(Screen::FID_CRED8_FNT, "CREDIT8.FNT");
+		font1 = Screen::FID_CRED6_FNT;
+		font2 = Screen::FID_CRED8_FNT;
+	} else {
+		font1 = font2 = Screen::FID_8_FNT;
+	}
 
-		_screen->setFont(Screen::FID_CRED8_FNT);
-	} else
-		_screen->setFont(Screen::FID_8_FNT);
-
+	_screen->setFont(font2);
 	_screen->loadBitmap("CHALET.CPS", 4, 4, &_screen->getPalette(0));
 
 	_screen->setCurPage(0);
@@ -1245,7 +1260,7 @@ void KyraEngine_LoK::seq_playCredits() {
 	uint8 *buffer = nullptr;
 	uint32 size = 0;
 
-	if (_flags.platform == Common::kPlatformFMTowns || _flags.platform == Common::kPlatformPC98) {
+	if (_flags.platform == Common::kPlatformFMTowns || _flags.platform == Common::kPlatformPC98 || _flags.lang == Common::ZH_TWN) {
 		int sizeTmp = 0;
 		const uint8 *bufferTmp = _staticres->loadRawData(k1CreditsStrings, sizeTmp);
 		buffer = new uint8[sizeTmp];
@@ -1283,28 +1298,24 @@ void KyraEngine_LoK::seq_playCredits() {
 
 		if (*currentString == 1) {
 			currentString++;
-
-			if (!_flags.isTalkie)
-				_screen->setFont(Screen::FID_CRED6_FNT);
+			_screen->setFont(font1);
 		} else if (*currentString == 2) {
 			currentString++;
-
-			if (!_flags.isTalkie)
-				_screen->setFont(Screen::FID_CRED8_FNT);
+			_screen->setFont(font2);
 		}
 
 		line.font = _screen->_currentFont;
 
 		if (alignment == 3)
-			line.x = 157 - _screen->getTextWidth((const char *)currentString);
+			line.x = alignX3 - _screen->getTextWidth((const char *)currentString);
 		else if (alignment == 4)
-			line.x = 161;
+			line.x = alignX4;
 		else
-			line.x = (320  - _screen->getTextWidth((const char *)currentString)) / 2 + 1;
+			line.x = (320  - _screen->getTextWidth((const char *)currentString)) / 2 + 1 - alignXOffs;
 
 		line.y = currentY;
 		if (lineEndCode != 5)
-			currentY += 10;
+			currentY += lineHeight;
 
 		line.str = currentString;
 
@@ -1324,7 +1335,7 @@ void KyraEngine_LoK::seq_playCredits() {
 	while (!finished && !shouldQuit()) {
 		uint32 startLoop = _system->getMillis();
 
-		if (bottom > 175) {
+		if (bottom > fin) {
 			_screen->copyRegion(0, 32, 0, 32, 320, 128, 4, 2, Screen::CR_NO_P_CHECK);
 			bottom = 0;
 




More information about the Scummvm-git-logs mailing list