1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-06-26 02:11:33 +00:00

Play all of a spell's casting effects

This commit is contained in:
Allofich 2016-08-31 18:25:59 +09:00
parent b4577fe751
commit 446c0a4fa8

View file

@ -880,7 +880,6 @@ namespace MWMechanics
inflict(mTarget, mCaster, spell->mEffects, ESM::RT_Touch); inflict(mTarget, mCaster, spell->mEffects, ESM::RT_Touch);
} }
std::string projectileModel; std::string projectileModel;
std::string sound; std::string sound;
float speed = 0; float speed = 0;
@ -970,10 +969,12 @@ namespace MWMechanics
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore(); const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
const ESM::Spell *spell = store.get<ESM::Spell>().find(spellid); const ESM::Spell *spell = store.get<ESM::Spell>().find(spellid);
const ESM::ENAMstruct &effectentry = spell->mEffects.mList.at(0);
for (std::vector<ESM::ENAMstruct>::const_iterator iter = spell->mEffects.mList.begin();
iter != spell->mEffects.mList.end(); ++iter)
{
const ESM::MagicEffect *effect; const ESM::MagicEffect *effect;
effect = store.get<ESM::MagicEffect>().find(effectentry.mEffectID); effect = store.get<ESM::MagicEffect>().find(iter->mEffectID);
MWRender::Animation* animation = MWBase::Environment::get().getWorld()->getAnimation(mCaster); MWRender::Animation* animation = MWBase::Environment::get().getWorld()->getAnimation(mCaster);
@ -1001,6 +1002,7 @@ namespace MWMechanics
else else
sndMgr->playSound3D(mCaster, schools[effect->mData.mSchool]+" cast", 1.0f, 1.0f); sndMgr->playSound3D(mCaster, schools[effect->mData.mSchool]+" cast", 1.0f, 1.0f);
} }
}
int getEffectiveEnchantmentCastCost(float castCost, const MWWorld::Ptr &actor) int getEffectiveEnchantmentCastCost(float castCost, const MWWorld::Ptr &actor)
{ {