diff --git a/CHANGELOG.md b/CHANGELOG.md index 390934f9bc..5ee31b6762 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -69,6 +69,7 @@ Bug #7459: Icons get stacked on the cursor when picking up multiple items simultaneously Bug #7472: Crash when enchanting last projectiles Bug #7505: Distant terrain does not support sample size greater than cell size + Bug #7553: Faction reaction loading is incorrect Feature #3537: Shader-based water ripples Feature #5492: Let rain and snow collide with statics Feature #6447: Add LOD support to Object Paging diff --git a/components/esm3/loadfact.cpp b/components/esm3/loadfact.cpp index 410ea1d40e..768de4f513 100644 --- a/components/esm3/loadfact.cpp +++ b/components/esm3/loadfact.cpp @@ -57,7 +57,12 @@ namespace ESM ESM::RefId faction = esm.getRefId(); int reaction; esm.getHNT(reaction, "INTV"); - mReactions[faction] = reaction; + // Prefer the lowest reaction in case a faction is listed multiple times + auto it = mReactions.find(faction); + if (it == mReactions.end()) + mReactions.emplace(faction, reaction); + else if (it->second > reaction) + it->second = reaction; break; } case SREC_DELE: