diff --git a/apps/openmw/mwdialogue/dialoguemanagerimp.cpp b/apps/openmw/mwdialogue/dialoguemanagerimp.cpp index c853efad2..38ad821cd 100644 --- a/apps/openmw/mwdialogue/dialoguemanagerimp.cpp +++ b/apps/openmw/mwdialogue/dialoguemanagerimp.cpp @@ -633,6 +633,12 @@ namespace MWDialogue return; } + if (actor.getClass().isNpc() && MWBase::Environment::get().getWorld()->isSwimming(actor)) + { + // NPCs don't talk while submerged + return; + } + const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore(); const ESM::Dialogue *dial = store.get().find(topic);