fix edge case in quest episode detection
This commit is contained in:
+5
-1
@@ -1667,9 +1667,10 @@ Episode find_quest_episode_from_script(const void* data, size_t size, Version ve
|
||||
throw logic_error("invalid quest version");
|
||||
}
|
||||
|
||||
const auto& opcodes = opcodes_for_version(version);
|
||||
unordered_set<Episode> found_episodes;
|
||||
|
||||
try {
|
||||
const auto& opcodes = opcodes_for_version(version);
|
||||
// The set_episode opcode should always be in the first function (0)
|
||||
StringReader cmd_r = r.sub(code_offset + r.pget_u32l(function_table_offset));
|
||||
|
||||
@@ -1762,6 +1763,9 @@ Episode find_quest_episode_from_script(const void* data, size_t size, Version ve
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (const exception& e) {
|
||||
log_warning("Cannot determine episode from quest script (%s)", e.what());
|
||||
}
|
||||
|
||||
if (found_episodes.size() > 1) {
|
||||
throw runtime_error("multiple episodes found");
|
||||
|
||||
Reference in New Issue
Block a user