From 3160d86eaac05dd9b8b8a6d4e756d2fbe9540d75 Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Fri, 1 Dec 2023 22:27:58 -0800 Subject: [PATCH] only use language from quest header if it's valid --- src/QuestScript.cc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/QuestScript.cc b/src/QuestScript.cc index d5225203..0ad2060b 100644 --- a/src/QuestScript.cc +++ b/src/QuestScript.cc @@ -886,7 +886,9 @@ std::string disassemble_quest_script(const void* data, size_t size, Version vers const auto& header = r.get(); code_offset = header.code_offset; function_table_offset = header.function_table_offset; - language = header.language; + if (header.language < 5) { + language = header.language; + } lines.emplace_back(string_printf(".quest_num %hu", header.quest_number.load())); lines.emplace_back(string_printf(".language %hhu", header.language)); lines.emplace_back(".name " + escape_string(header.name.decode(language))); @@ -899,7 +901,9 @@ std::string disassemble_quest_script(const void* data, size_t size, Version vers const auto& header = r.get(); code_offset = header.code_offset; function_table_offset = header.function_table_offset; - language = header.language; + if (header.language < 8) { + language = header.language; + } lines.emplace_back(string_printf(".quest_num %hu", header.quest_number.load())); lines.emplace_back(string_printf(".language %hhu", header.language)); lines.emplace_back(".name " + escape_string(header.name.decode(language))); @@ -915,7 +919,9 @@ std::string disassemble_quest_script(const void* data, size_t size, Version vers const auto& header = r.get(); code_offset = header.code_offset; function_table_offset = header.function_table_offset; - language = header.language; + if (header.language < 5) { + language = header.language; + } lines.emplace_back(string_printf(".quest_num %hhu", header.quest_number)); lines.emplace_back(string_printf(".language %hhu", header.language)); lines.emplace_back(string_printf(".episode %hhu", header.episode));