mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-17 01:10:10 +00:00
Update the spells window when constant effects are added/removed (bug #7475)
This commit is contained in:
parent
961c53f1c4
commit
c1c774e11d
@ -88,6 +88,7 @@
|
||||
Bug #7450: Evading obstacles does not work for actors missing certain animations
|
||||
Bug #7459: Icons get stacked on the cursor when picking up multiple items simultaneously
|
||||
Bug #7472: Crash when enchanting last projectiles
|
||||
Bug #7475: Equipping a constant effect item doesn't update the magic menu
|
||||
Bug #7502: Data directories dialog (0.48.0) forces adding subdirectory instead of intended directory
|
||||
Bug #7505: Distant terrain does not support sample size greater than cell size
|
||||
Bug #7553: Faction reaction loading is incorrect
|
||||
|
@ -228,6 +228,7 @@ namespace MWMechanics
|
||||
mSpells.emplace_back(ActiveSpellParams{ spell, ptr });
|
||||
}
|
||||
|
||||
bool updateSpellWindow = false;
|
||||
if (ptr.getClass().hasInventoryStore(ptr)
|
||||
&& !(creatureStats.isDead() && !creatureStats.isDeathAnimationFinished()))
|
||||
{
|
||||
@ -264,6 +265,7 @@ namespace MWMechanics
|
||||
for (const auto& effect : params.mEffects)
|
||||
MWMechanics::playEffects(
|
||||
ptr, *world->getStore().get<ESM::MagicEffect>().find(effect.mEffectId), playNonLooping);
|
||||
updateSpellWindow = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -365,6 +367,7 @@ namespace MWMechanics
|
||||
for (const auto& effect : params.mEffects)
|
||||
onMagicEffectRemoved(ptr, params, effect);
|
||||
applyPurges(ptr, &spellIt);
|
||||
updateSpellWindow = true;
|
||||
continue;
|
||||
}
|
||||
++spellIt;
|
||||
@ -377,6 +380,14 @@ namespace MWMechanics
|
||||
if (creatureStats.getMagicEffects().getOrDefault(effect).getMagnitude() > 0.f)
|
||||
creatureStats.getAiSequence().stopCombat();
|
||||
}
|
||||
|
||||
if (ptr == player && updateSpellWindow)
|
||||
{
|
||||
// Something happened with the spell list -- possibly while the game is paused,
|
||||
// so we want to make the spell window get the memo.
|
||||
// We don't normally want to do this, so this targets constant enchantments.
|
||||
MWBase::Environment::get().getWindowManager()->updateSpellWindow();
|
||||
}
|
||||
}
|
||||
|
||||
void ActiveSpells::addToSpells(const MWWorld::Ptr& ptr, const ActiveSpellParams& spell)
|
||||
|
Loading…
Reference in New Issue
Block a user