diff --git a/src/game_config.h b/src/game_config.h index a444762..4913c46 100644 --- a/src/game_config.h +++ b/src/game_config.h @@ -88,6 +88,7 @@ namespace fallout { #define GERMAN "german" #define ITALIAN "italian" #define SPANISH "spanish" +#define TCHINESE "cht" typedef enum GameDifficulty { GAME_DIFFICULTY_EASY, diff --git a/src/message.cc b/src/message.cc index ce87165..60c064e 100644 --- a/src/message.cc +++ b/src/message.cc @@ -476,6 +476,7 @@ static int _message_load_field(File* file, char* str) int len; len = 0; + bool ischt = compat_stricmp(settings.system.language.c_str(), TCHINESE) == 0; while (1) { ch = fileReadChar(file); @@ -510,6 +511,13 @@ static int _message_load_field(File* file, char* str) *(str + len) = ch; len++; + if (ischt && ch >= 0x81 && ch <= 0xfe) { + // language is "cht", and it's a big5 encoding char + ch = fileReadChar(file); + *(str + len) = ch; + len++; + } + if (len > 1024) { debugPrint("\nError reading message file - text exceeds limit.\n"); return 4;