improve error message for missing quest common/rare item sets

This commit is contained in:
Martin Michelsen
2026-04-05 21:50:53 -07:00
parent 87e85932a4
commit b34c9a7c88
2 changed files with 45 additions and 40 deletions
+12 -2
View File
@@ -506,7 +506,12 @@ ItemData ServerState::parse_item_description(Version version, const string& desc
shared_ptr<const CommonItemSet> ServerState::common_item_set(Version logic_version, shared_ptr<const Quest> q) const {
if (q && !q->meta.common_item_set_name.empty()) {
return this->common_item_sets.at(q->meta.common_item_set_name);
try {
return this->common_item_sets.at(q->meta.common_item_set_name);
} catch (const std::out_of_range&) {
throw runtime_error(std::format("common item set {} for quest {} does not exist",
q->meta.common_item_set_name, q->meta.name));
}
} else if (is_v1_or_v2(logic_version) && (logic_version != Version::GC_NTE)) {
// TODO: We should probably have a v1 common item set at some point too
return this->common_item_sets.at("common-table-v1-v2");
@@ -520,7 +525,12 @@ shared_ptr<const CommonItemSet> ServerState::common_item_set(Version logic_versi
shared_ptr<const RareItemSet> ServerState::rare_item_set(Version logic_version, shared_ptr<const Quest> q) const {
if (q && !q->meta.rare_item_set_name.empty()) {
return this->rare_item_sets.at(q->meta.rare_item_set_name);
try {
return this->rare_item_sets.at(q->meta.rare_item_set_name);
} catch (const std::out_of_range&) {
throw runtime_error(std::format("rare item set {} for quest {} does not exist",
q->meta.rare_item_set_name, q->meta.name));
}
} else if (is_v1(logic_version)) {
return this->rare_item_sets.at("rare-table-v1");
} else if (is_v2(logic_version) && (logic_version != Version::GC_NTE)) {