From 7d2dd3422dc552564321c3267267f705cb18798a Mon Sep 17 00:00:00 2001 From: Evil Eye Date: Tue, 21 Jan 2025 20:31:12 +0100 Subject: [PATCH] Ignore missing global variables when filtering dialogue --- apps/openmw/mwdialogue/filter.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwdialogue/filter.cpp b/apps/openmw/mwdialogue/filter.cpp index e21a57aad9..b7d4a1361c 100644 --- a/apps/openmw/mwdialogue/filter.cpp +++ b/apps/openmw/mwdialogue/filter.cpp @@ -301,9 +301,13 @@ bool MWDialogue::Filter::testSelectStructNumeric(const SelectWrapper& select) co switch (select.getFunction()) { case ESM::DialogueCondition::Function_Global: - + { + const auto& world = MWBase::Environment::get().getWorld(); + if (world->getGlobalVariableType(select.getName()) == ' ') + return true; // ignore this filter if the global doesn't exist // internally all globals are float :( - return select.selectCompare(MWBase::Environment::get().getWorld()->getGlobalFloat(select.getName())); + return select.selectCompare(world->getGlobalFloat(select.getName())); + } case ESM::DialogueCondition::Function_Local: {