[Scummvm-git-logs] scummvm master -> 2daf8b1ce9b4d9ebb630d7cb5abf2e666e1ac8fa

athrxx noreply at scummvm.org
Tue Jul 28 22:58:43 UTC 2026


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

Summary:
9d3e97ce4d KYRA: (EOBII/FM-TOWNS) - minor gfx optimization
2daf8b1ce9 KYRA: (HOF) -  fix Korean FM-TOWNS fan translation


Commit: 9d3e97ce4d57780cf6c487a8276b970b15373163
    https://github.com/scummvm/scummvm/commit/9d3e97ce4d57780cf6c487a8276b970b15373163
Author: athrxx (athrxx at scummvm.org)
Date: 2026-07-29T00:57:21+02:00

Commit Message:
KYRA: (EOBII/FM-TOWNS) - minor gfx optimization

Changed paths:
    engines/kyra/engine/kyra_rpg.cpp
    engines/kyra/engine/kyra_rpg.h
    engines/kyra/engine/scene_rpg.cpp


diff --git a/engines/kyra/engine/kyra_rpg.cpp b/engines/kyra/engine/kyra_rpg.cpp
index 688047a95b7..7dd92627d81 100644
--- a/engines/kyra/engine/kyra_rpg.cpp
+++ b/engines/kyra/engine/kyra_rpg.cpp
@@ -53,6 +53,7 @@ KyraRpgEngine::KyraRpgEngine(OSystem *system, const GameFlags &flags) : KyraEngi
 	_vcnBpp = 1;
 	_vcnSrcBitsPerPixel = (_flags.platform == Common::kPlatformAmiga) ? 5 : (_flags.platform == Common::kPlatformFMTowns ? 8 : 4);
 	_vcnDrawLine = nullptr;
+	_vcnHiColorPalette = nullptr;
 	_vmpVisOffs = (flags.platform == Common::kPlatformSegaCD) ? _vmpOffsetsSegaCD : _vmpOffsetsDefault;
 
 	_vmpPtr = 0;
diff --git a/engines/kyra/engine/kyra_rpg.h b/engines/kyra/engine/kyra_rpg.h
index 9a54b471dfd..24eed7f7fae 100644
--- a/engines/kyra/engine/kyra_rpg.h
+++ b/engines/kyra/engine/kyra_rpg.h
@@ -383,6 +383,7 @@ protected:
 	uint8 *_vcnShift;
 	uint8 _vcnShiftVal;
 	uint8 *_vcnColTable;
+	const void *_vcnHiColorPalette;
 	uint8 _vcnSrcBitsPerPixel;
 	uint8 _vcnBpp;
 	uint16 *_blockDrawingBuffer;
diff --git a/engines/kyra/engine/scene_rpg.cpp b/engines/kyra/engine/scene_rpg.cpp
index ccee439213b..26e48fdfba4 100644
--- a/engines/kyra/engine/scene_rpg.cpp
+++ b/engines/kyra/engine/scene_rpg.cpp
@@ -373,6 +373,11 @@ void KyraRpgEngine::drawVcnBlocks() {
 	uint8 *d = _sceneWindowBuffer;
 	uint16 *bdb = _blockDrawingBuffer;
 
+	if (_vcnBpp > 1) {
+		_vcnHiColorPalette = screen()->getHiColorPalette();
+		assert(_vcnHiColorPalette);
+	}
+
 	for (int y = 0; y < 15; y++) {
 		for (int x = 0; x < 22; x++) {
 			bool horizontalFlip = false;
@@ -520,7 +525,7 @@ template void KyraRpgEngine::vcnDraw_fw_trans_4bit<false>(uint8 *&dst, const uin
 template void KyraRpgEngine::vcnDraw_bw_trans_4bit<false>(uint8 *&dst, const uint8 *&src);
 
 template<typename T> void KyraRpgEngine::vcnDraw_fw_hiCol(uint8 *&dst, const uint8 *&src) {
-	const T *hiColorPal = reinterpret_cast<const T*>(screen()->getHiColorPalette());
+	const T *hiColorPal = reinterpret_cast<const T*>(_vcnHiColorPalette);
 	T *d = reinterpret_cast<T*>(dst);
 	for (int blockX = 0; blockX < _vcnSrcBitsPerPixel; blockX++)
 		*d++ = hiColorPal[*src++];
@@ -529,7 +534,7 @@ template<typename T> void KyraRpgEngine::vcnDraw_fw_hiCol(uint8 *&dst, const uin
 
 template<typename T> void KyraRpgEngine::vcnDraw_bw_hiCol(uint8 *&dst, const uint8 *&src) {
 	src += 7;
-	const T *hiColorPal = reinterpret_cast<const T*>(screen()->getHiColorPalette());
+	const T *hiColorPal = reinterpret_cast<const T*>(_vcnHiColorPalette);
 	T *d = reinterpret_cast<T*>(dst);
 	for (int blockX = 0; blockX < _vcnSrcBitsPerPixel; blockX++)
 		*d++ = hiColorPal[*src--];
@@ -538,7 +543,7 @@ template<typename T> void KyraRpgEngine::vcnDraw_bw_hiCol(uint8 *&dst, const uin
 }
 
 template<typename T> void KyraRpgEngine::vcnDraw_fw_trans_hiCol(uint8 *&dst, const uint8 *&src) {
-	const T *hiColorPal = reinterpret_cast<const T*>(screen()->getHiColorPalette());
+	const T *hiColorPal = reinterpret_cast<const T*>(_vcnHiColorPalette);
 	T *d = reinterpret_cast<T*>(dst);
 	for (int blockX = 0; blockX < _vcnSrcBitsPerPixel; blockX++) {
 		uint8 bl = *src++;
@@ -551,7 +556,7 @@ template<typename T> void KyraRpgEngine::vcnDraw_fw_trans_hiCol(uint8 *&dst, con
 
 template<typename T> void KyraRpgEngine::vcnDraw_bw_trans_hiCol(uint8 *&dst, const uint8 *&src) {
 	src += 7;
-	const T *hiColorPal = reinterpret_cast<const T*>(screen()->getHiColorPalette());
+	const T *hiColorPal = reinterpret_cast<const T*>(_vcnHiColorPalette);
 	T *d = reinterpret_cast<T*>(dst);
 	for (int blockX = 0; blockX < _vcnSrcBitsPerPixel; blockX++) {
 		uint8 bl = *src--;


Commit: 2daf8b1ce9b4d9ebb630d7cb5abf2e666e1ac8fa
    https://github.com/scummvm/scummvm/commit/2daf8b1ce9b4d9ebb630d7cb5abf2e666e1ac8fa
Author: athrxx (athrxx at scummvm.org)
Date: 2026-07-29T00:57:22+02:00

Commit Message:
KYRA: (HOF) -  fix Korean FM-TOWNS fan translation

- add missing kyra.dat resources
- remove unneeded code

Changed paths:
  A devtools/create_kyradat/resources/hof_fmtowns_korean.h
    devtools/create_kyradat/games.cpp
    devtools/create_kyradat/resources.cpp
    dists/engine-data/kyra.dat
    engines/kyra/resource/staticres.cpp


diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp
index 52b7e4994e6..ea253ba5178 100644
--- a/devtools/create_kyradat/games.cpp
+++ b/devtools/create_kyradat/games.cpp
@@ -100,6 +100,7 @@ const Game kyra2Games[] = {
 
 	{ kKyra2, kPlatformFMTowns, kNoSpecial, EN_ANY },
 	{ kKyra2, kPlatformFMTowns, kNoSpecial, JA_JPN },
+	{ kKyra2, kPlatformFMTowns, kNoSpecial, KO_KOR },
 
 	{ kKyra2, kPlatformPC98, kNoSpecial, EN_ANY },
 	{ kKyra2, kPlatformPC98, kNoSpecial, JA_JPN },
diff --git a/devtools/create_kyradat/resources.cpp b/devtools/create_kyradat/resources.cpp
index 0659d41f6c1..9d498f20257 100644
--- a/devtools/create_kyradat/resources.cpp
+++ b/devtools/create_kyradat/resources.cpp
@@ -103,6 +103,7 @@
 #include "resources/hof_fmtowns.h"
 #include "resources/hof_fmtowns_english.h"
 #include "resources/hof_fmtowns_japanese.h"
+#include "resources/hof_fmtowns_korean.h"
 
 #include "resources/hof_pc98.h"
 #include "resources/hof_pc98_english.h"
@@ -1377,6 +1378,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ k2SeqplayTlkFiles, kKyra2, kPlatformDOS, kTalkieVersion, CS_CZE, &k2SeqplayTlkFilesDOSCDCzechProvider },
 	{ k2SeqplayStrings, kKyra2, kPlatformDOS, kTalkieVersion, KO_KOR, &k2SeqplayStringsDOSCDKoreanProvider },
 	{ k2SeqplayTlkFiles, kKyra2, kPlatformDOS, kTalkieVersion, KO_KOR, &k2SeqplayTlkFilesDOSCDKoreanProvider },
+	{ k2SeqplayStrings, kKyra2, kPlatformFMTowns, kNoSpecial, KO_KOR, &k2SeqplayStringsFMTownsKoreanProvider},
 	{ k2SeqplayPakFiles, kKyra2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &k2SeqplayPakFilesFMTownsProvider },
 	{ k2SeqplayStrings, kKyra2, kPlatformFMTowns, kNoSpecial, EN_ANY, &k2SeqplayStringsFMTownsEnglishProvider },
 	{ k2SeqplaySfxFiles, kKyra2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &k2SeqplaySfxFilesFMTownsProvider },
diff --git a/devtools/create_kyradat/resources/hof_fmtowns_korean.h b/devtools/create_kyradat/resources/hof_fmtowns_korean.h
new file mode 100644
index 00000000000..4fbe04dacbd
--- /dev/null
+++ b/devtools/create_kyradat/resources/hof_fmtowns_korean.h
@@ -0,0 +1,110 @@
+static const char *const k2SeqplayStringsFMTownsKorean[105] = {
+	"\xC5\xB0\xB6\xF5\xB5\xF0\xBE\xC6\xB0\xA1 \xBB\xE7\xB6\xF3\xC1\xF6\xB0\xED \xC0\xD6\xB4\xD9!",                     // "키란디아가 사라지고 있다!"
+	"\xB9\xD9\xC0\xA7 \xC7\xCF\xB3\xAA\xC7\xCF\xB3\xAA...",                                                               // "바위 하나하나..."
+	"...\xB1\xD7\xB8\xAE\xB0\xED \xB3\xAA\xB9\xAB \xC7\xD1 \xB1\xD7\xB7\xE7 \xC7\xD1 \xB1\xD7\xB7\xE7.",               // "...그리고 나무 한 그루 한 그루."
+	"\xC5\xB0\xB6\xF5\xB5\xF0\xBE\xC6\xB0\xA1 \xBC\xD2\xB8\xEA\xC7\xCF\xB0\xED \xC0\xD6\xB4\xD9!",                         // "키란디아가 소멸하고 있다!"
+	"\xBF\xD5\xB1\xC3 \xB8\xB6\xB9\xFD\xBB\xE7\xB5\xE9\xC0\xCC \xB4\xE7\xC8\xB2\xC7\xCF\xB0\xED \xC0\xD6\xB4\xD9.",     // "왕궁 마법사들이 당황하고 있다."
+	"\xB8\xF0\xB5\xE7 \xC2\xFC\xB0\xED\xB9\xAE\xC7\xE5\xC0\xBB \xB4\xD9 \xC3\xA3\xBE\xC6\xBA\xC3\xB4\xD9.",                               // "모든 참고문헌을 다 찾아봤다."
+	"\xB8\xB6\xB8\xA3\xC4\xDA\xBF\xCD \xB1\xD7\xC0\xC7 \xBB\xF5 \xBD\xC3\xC1\xBE\xB5\xB5 \xC8\xB8\xC0\xC7\xBF\xA1 \xC2\xFC\xBC\xAE\xC0\xCC \xC7\xE3\xB6\xF4\xB5\xC7\xBE\xFA\xB4\xD9.", // "마르코와 그의 새 시종도 회의에 참석이 허락되었다."
+	"\xB4\xD9\xC7\xE0\xC8\xF7 \xBF\xEE\xB8\xED\xC0\xC7 \xBC\xD5\xC0\xBA \xC0\xCC\xB7\xB1 \xB9\xAE\xC1\xA6\xBF\xA1 \xB0\xE6\xC7\xE8\xC0\xCC \xC0\xD6\xBE\xFA\xB4\xD9.",                   // "다행히 운명의 손은 이런 문제에 경험이 있었다."
+	"\xB1\xD7\xB8\xAE\xB0\xED \xB8\xB6\xC4\xA7\xB3\xBB \xB0\xE8\xC8\xB9\xC0\xCC \xBD\xC2\xC0\xCE\xB5\xC7\xBE\xFA\xB4\xD9...",                                                               // "그리고 마침내 계획이 승인되었다..."
+	"...\xB8\xB6\xB9\xFD\xC0\xC7 \xB4\xE9\xB5\xB9\xC0\xBB...",                                                               // "...마법의 닻돌을..."
+	"...\xBC\xBC\xBB\xF3\xC0\xC7 \xC1\xDF\xBD\xC9\xBF\xA1\xBC\xAD \xC3\xA3\xBE\xC6\xBF\xCD\xBE\xDF \xC7\xDF\xB4\xD9.",   // "...세상의 중심에서 찾아와야 했다."
+	"\xC5\xB0\xB6\xF5\xB5\xF0\xBE\xC6 \xB8\xB6\xB9\xFD\xBB\xE7 \xC1\xDF \xB0\xA1\xC0\xE5 \xC0\xFE\xC0\xBA \xC0\xDC\xC6\xBC\xBE\xC6\xB0\xA1 \xB5\xB9\xC0\xBB \xC3\xA3\xB4\xC2 \xC0\xD3\xB9\xAB\xBF\xA1 \xBC\xB1\xC5\xC3\xB5\xC7\xBE\xFA\xB4\xD9.", // "키란디아 마법사 중 가장 젊은 잔티아가 돌을 찾는 임무에 선택되었다."
+	"\xBF\xEE\xB8\xED\xC0\xC7 \xBC\xD5\xC0\xBB \xC7\xC3\xB7\xB9\xC0\xCC\xC7\xD8 \xC1\xD6\xBC\xC5\xBC\xAD \xB0\xA8\xBB\xE7\xC7\xD5\xB4\xCF\xB4\xD9.",                                       // "운명의 손을 플레이해 주셔서 감사합니다."
+	"\xC0\xCC \xC1\xA4\xB5\xB5 \xBA\xED\xB7\xE7\xBA\xA3\xB8\xAE\xB8\xE9 \xBC\xBC\xBB\xF3\xC0\xC7 \xC1\xDF\xBD\xC9\xC0\xB8\xB7\xCE \xB0\xA1\xB4\xC2 \xC6\xF7\xC5\xD0\xC0\xBB \xBF\xAD \xBC\xF6 \xC0\xD6\xC0\xBB \xB0\xC5\xBE\xDF.", // "이 정도 블루베리면 세상의 중심으로 가는 포털을 열 수 있을 거야."
+	" DUMMY STRING... ",
+	" DUMMY STRING... ",
+	"\xC0\xCC\xB7\xB1! \xB3\xBB \xC0\xE5\xBA\xF1\xB0\xA1 \xB4\xD9 \xB5\xB5\xB5\xCF\xB8\xC2\xBE\xD2\xBE\xEE!",           // "이런! 내 장비가 다 도둑맞았어!"
+	" DUMMY STRING... ",
+	"\xB3\xBB\xB0\xA1 \xC0\xFA \xBE\xC6\xB7\xA1\xB1\xEE\xC1\xF6 \xB0\xC9\xBE\xEE\xB0\xA5 \xB0\xC5\xB6\xF3\xB0\xED \xBB\xFD\xB0\xA2\xC7\xCF\xB8\xE9, \xB9\xCC\xC4\xA5 \xB0\xC5\xBE\xDF!", // "내가 저 아래까지 걸어갈 거라고 생각하면, 미칠 거야!"
+	" DUMMY STRING... ",
+	" DUMMY STRING... ",
+	"\xBC\xAD\xB5\xD1\xB7\xAF \xC6\xC4\xBF\xEE!",                                                                             // "서둘러 파운!"
+	"\xBE\xDF, \xC5\xAB\xC0\xCF \xB3\xAF \xBB\xB7\xC7\xDF\xB3\xD7!",                                                       // "야, 큰일 날 뻔했네!"
+	"\xB8\xC2\xBE\xC6. \xB3\xAA\xB4\xC2 \xB4\xD9\xBD\xC5 \xBB\xE7\xB3\xC9\xC0\xBA \xBE\xC8 \xB0\xA5 \xB0\xC5\xBE\xDF!",                                                                     // "맞아. 나는 다신 사냥은 안 갈 거야!"
+	"\xB0\xB3\xB1\xBC\xB0\xB3\xB1\xBC.",                                                                                     // "개굴개굴."
+	"\xB8\xEE \xB9\xF8\xC0\xBB \xB8\xBB\xC7\xD8\xBE\xDF \xBE\xCB\xBE\xC6\xB5\xE9\xBE\xEE? \xB3\xCA\xB4\xC2 \xB5\xCE\xB2\xA8\xBA\xF1\xB6\xF3\xB0\xED.", // "몇 번을 말해야 알아들어? 너는 두꺼비라고."
+	"\xC0\xCC\xB7\xB1! \xC4\xA1\xC1\xEE\xB0\xA1 \xB4\xD9 \xB6\xB3\xBE\xEE\xC1\xB3\xBE\xEE!",                               // "이런! 치즈가 다 떨어졌어!"
+	"\xC0\xCC \xB1\xCD\xC1\xF6\xB8\xA6 \xBD\xE1\xBA\xB8\xC0\xDA. \xC1\xD6\xC8\xB2\xBB\xF6\xC0\xCC\xB3\xD7.",               // "이 귀지를 써보자. 주황색이네."
+	"\xBE\xF6\xB8\xB6, \xB3\xAA\xB4\xC2 \xBE\xF0\xC1\xA6 \xB4\xE3\xC0\xEF\xC0\xCC\xB5\xA2\xB1\xBC\xC0\xBB \xB9\xDE\xBE\xC6\xBF\xE4?", // "엄마, 나는 언제 담쟁이덩굴을 받아요?"
+	"\xC0\xFA\xB8\xAE \xBA\xF1\xC4\xD1, \xBD\xB5!",                                                                         // "저리 비켜, 슉!"
+	"\xB3\xD7\xB0\xA1 \xC0\xDA\xB8\xA3\xB0\xED, \xB3\xBB\xB0\xA1 \xB0\xED\xB8\xA6\xB0\xD4.",                               // "네가 자르고, 내가 고를게."
+	"\xBE\xC6\xB4\xCF. \xB3\xD7\xB0\xA1 \xC0\xDA\xB8\xA3\xB0\xED \xB3\xBB\xB0\xA1 \xB0\xED\xB8\xA6\xB0\xD4.",             // "아니. 네가 자르고 내가 고를게."
+	"\xBE\xC6\xC1\xF7\xB5\xB5 \xBE\xE2\xC6\xC5\xC7\xD1 \xB8\xF0\xB9\xE6\xC0\xDB\xC0\xCC\xB6\xF3\xB0\xED \xBB\xFD\xB0\xA2\xC7\xD8.", // "아직도 얄팍한 모방작이라고 생각해."
+	"\xBE\xEE\xC8\xDE, \xB3\xCD \xBE\xFB\xB5\xA2\xC0\xCC\xB0\xA1 \xB9\xB0\xB7\xC1\xB5\xB5 5\xC0\xBD\xBA\xB8\xB0\xDD\xC0\xCC \xB9\xBA\xC1\xF6 \xB8\xF8 \xBE\xCB\xBE\xC6\xB5\xE9\xC0\xBB \xB0\xC5\xBE\xDF!", // "어휴, 넌 엉덩이가 물려도 5음보격이 뭔지 못 알아들을 거야!"
+	"Executive Producer",
+	"Brett W. Sperry",
+	"Designed & Directed by",
+	"Rick Gush",
+	"Lead Programmer",
+	"Michael Legg",
+	"Art Management",
+	"Louis Castle",
+	"Joseph B. Hewitt IV",
+	"Lead Artist",
+	"Rick Parks",
+	"Additional Coding by",
+	"Philip W. Gorrow",
+	"Matt Collins",
+	"Mark McCubbin",
+	"Artists",
+	"Cameron Chun",
+	"Cary Averett",
+	"Cindy Chinn",
+	"Elie Arabian",
+	"Fei Cheng",
+	"Ferby Miguel",
+	"Frank Mendeola",
+	"Jack Martin",
+	"Jerry Moore",
+	"",
+	"Judith Peterson",
+	"Larry Miller",
+	"Lenny Lee",
+	"Louise Sandoval",
+	"Ren Olsen",
+	"Music & Sounds by",
+	"Paul Mudra",
+	"Frank Klepacki",
+	"Dwight Okahara",
+	"Pat Collins",
+	"Qualilty Assurance by",
+	"Glenn Sperry",
+	"Michael Lightner",
+	"William Foster",
+	"Jesse Clemit",
+	"Jeff Fillhaber",
+	"Manual, Package Design",
+	"& Fulfillment",
+	"Eydie Laramore",
+	"Lisa Marcinko",
+	"Lauren Rifkin",
+	"\xC3\xE0\xC7\xCF\xC7\xD5\xB4\xCF\xB4\xD9!",                                                                           // "축하합니다!"
+	"\xBF\xEE\xB8\xED\xC0\xC7 \xBC\xD5\xC0\xBB \xC7\xC3\xB7\xB9\xC0\xCC\xC7\xD8 \xC1\xD6\xBC\xC5\xBC\xAD \xB0\xA8\xBB\xE7\xC7\xD5\xB4\xCF\xB4\xD9!",                                       // "운명의 손을 플레이해 주셔서 감사합니다!"
+	"Guest Coding",
+	"Producer Liaison",
+	"Scott Duckett",
+	"Irvine Testers",
+	"Chris McFarland",
+	"Paul Moore",
+	"Chad Soares",
+	"Jared Brinkley",
+	"Jon Willliams",
+	"Chris Toft",
+	"Chris's Hair by",
+	"Cumulo Nimbus",
+	"\xB0\xD4\xC0\xD3 \xBA\xD2\xB7\xAF\xBF\xC0\xB1\xE2",                                                                   // "게임 불러오기"
+	"\xC0\xCE\xC6\xAE\xB7\xCE \xBA\xB8\xB1\xE2",                                                                             // "인트로 보기"
+	"\xBB\xF5 \xB0\xD4\xC0\xD3 \xBD\xC3\xC0\xDB",                                                                             // "새 게임 시작"
+	"\xB0\xD4\xC0\xD3 \xC1\xBE\xB7\xE1",                                                                                     // "게임 종료"
+	"Special Thanks to",
+	"Sake Joe Bostic-san",
+	"Tim Fritz",
+	"Kenny Dunne",
+	"Yukio Sekiguchi (Japan)",
+	"Takeshi Abo (Japan)"
+};
+
+static const StringListProvider k2SeqplayStringsFMTownsKoreanProvider = { ARRAYSIZE(k2SeqplayStringsFMTownsKorean), k2SeqplayStringsFMTownsKorean };
+
diff --git a/dists/engine-data/kyra.dat b/dists/engine-data/kyra.dat
index 2edacd78311..c27383c0f5b 100644
Binary files a/dists/engine-data/kyra.dat and b/dists/engine-data/kyra.dat differ
diff --git a/engines/kyra/resource/staticres.cpp b/engines/kyra/resource/staticres.cpp
index 37778950da6..ab227f56afc 100644
--- a/engines/kyra/resource/staticres.cpp
+++ b/engines/kyra/resource/staticres.cpp
@@ -157,34 +157,6 @@ bool StaticResource::loadStaticResourceFile() {
 		if (!res->loadPakFile(staticDataFilename(), *i))
 			continue;
 
-		// Fan translations (e.g. Korean) may provide only a subset of
-		// resources in kyra.dat (e.g. intro strings).  Load the base
-		// (replaced) language first, then merge fan language entries on
-		// top — only replacing IDs that the fan language provides.
-		if (_vm->gameFlags().fanLang != Common::UNK_LANG &&
-		    _vm->gameFlags().replacedLang != Common::UNK_LANG) {
-			if ((setLanguage(_vm->gameFlags().replacedLang) && prefetchId(-1))) {
-				foundWorkingKyraDat = true;
-				// Merge: load the fan language ID map WITHOUT clearing
-				// existing _dataTable entries, then reload only the
-				// IDs that changed.
-				Common::SeekableReadStream *fanMap = loadIdMap(_vm->gameFlags().fanLang);
-				if (fanMap) {
-					int numIDs = fanMap->readUint16BE();
-					while (numIDs--) {
-						uint16 id2 = fanMap->readUint16BE();
-						uint8 type = fanMap->readByte();
-						uint32 filename = fanMap->readUint32BE();
-						_dataTable[id2] = DataDescriptor(filename, type);
-						unloadId(id2);
-						prefetchId(id2);
-					}
-					delete fanMap;
-				}
-				break;
-			}
-		}
-
 		if ((setLanguage(_vm->gameFlags().lang) && prefetchId(-1))) {
 			foundWorkingKyraDat = true;
 			break;




More information about the Scummvm-git-logs mailing list