display quest names in client's native language in game info window

This commit is contained in:
Martin Michelsen
2025-10-11 17:37:35 -07:00
parent c2008f1f9c
commit 47f7e71ae9
3 changed files with 24 additions and 1 deletions
+20
View File
@@ -335,9 +335,29 @@ uint32_t Quest::versions_key(Version v, uint8_t language) {
return (static_cast<uint32_t>(v) << 8) | language;
}
const string& Quest::name_for_language(uint8_t language) const {
if (!this->names_by_language.at(language).empty()) {
return this->names_by_language[language];
}
if (!this->names_by_language[1].empty()) {
return this->names_by_language[1];
}
for (const string& name : this->names_by_language) {
if (!name.empty()) {
return name;
}
}
return this->meta.name;
}
void Quest::add_version(shared_ptr<const VersionedQuest> vq) {
this->meta.assert_compatible(vq->meta);
this->versions.emplace(this->versions_key(vq->version, vq->language), vq);
auto& name_by_language = this->names_by_language.at(vq->language);
if (name_by_language.empty()) {
name_by_language = vq->meta.name;
}
}
std::shared_ptr<const SuperMap> Quest::get_supermap(int64_t random_seed) const {