mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-02-21 14:09:39 +00:00
Spell creation: do not add skill/attribute effects before selecting the skill or attribute
This commit is contained in:
parent
93ed019ca3
commit
1385a86bd4
2 changed files with 15 additions and 8 deletions
|
@ -524,16 +524,24 @@ namespace MWGui
|
||||||
|
|
||||||
void EffectEditorBase::onSelectAttribute ()
|
void EffectEditorBase::onSelectAttribute ()
|
||||||
{
|
{
|
||||||
mAddEffectDialog.setVisible(true);
|
const ESM::MagicEffect* effect =
|
||||||
|
MWBase::Environment::get().getWorld()->getStore().get<ESM::MagicEffect>().find(mSelectedKnownEffectId);
|
||||||
|
|
||||||
|
mAddEffectDialog.newEffect(effect);
|
||||||
mAddEffectDialog.setAttribute (mSelectAttributeDialog->getAttributeId());
|
mAddEffectDialog.setAttribute (mSelectAttributeDialog->getAttributeId());
|
||||||
|
mAddEffectDialog.setVisible(true);
|
||||||
MWBase::Environment::get().getWindowManager ()->removeDialog (mSelectAttributeDialog);
|
MWBase::Environment::get().getWindowManager ()->removeDialog (mSelectAttributeDialog);
|
||||||
mSelectAttributeDialog = 0;
|
mSelectAttributeDialog = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EffectEditorBase::onSelectSkill ()
|
void EffectEditorBase::onSelectSkill ()
|
||||||
{
|
{
|
||||||
|
const ESM::MagicEffect* effect =
|
||||||
|
MWBase::Environment::get().getWorld()->getStore().get<ESM::MagicEffect>().find(mSelectedKnownEffectId);
|
||||||
|
|
||||||
|
mAddEffectDialog.newEffect(effect);
|
||||||
|
mAddEffectDialog.setSkill (mSelectSkillDialog->getSkillId());
|
||||||
mAddEffectDialog.setVisible(true);
|
mAddEffectDialog.setVisible(true);
|
||||||
mAddEffectDialog.setSkill (mSelectSkillDialog->getSkillId ());
|
|
||||||
MWBase::Environment::get().getWindowManager ()->removeDialog (mSelectSkillDialog);
|
MWBase::Environment::get().getWindowManager ()->removeDialog (mSelectSkillDialog);
|
||||||
mSelectSkillDialog = 0;
|
mSelectSkillDialog = 0;
|
||||||
}
|
}
|
||||||
|
@ -558,11 +566,10 @@ namespace MWGui
|
||||||
}
|
}
|
||||||
|
|
||||||
int buttonId = *sender->getUserData<int>();
|
int buttonId = *sender->getUserData<int>();
|
||||||
short effectId = mButtonMapping[buttonId];
|
mSelectedKnownEffectId = mButtonMapping[buttonId];
|
||||||
|
|
||||||
for (std::vector<ESM::ENAMstruct>::const_iterator it = mEffects.begin(); it != mEffects.end(); ++it)
|
for (std::vector<ESM::ENAMstruct>::const_iterator it = mEffects.begin(); it != mEffects.end(); ++it)
|
||||||
{
|
{
|
||||||
if (it->mEffectID == effectId)
|
if (it->mEffectID == mSelectedKnownEffectId)
|
||||||
{
|
{
|
||||||
MWBase::Environment::get().getWindowManager()->messageBox ("#{sOnetypeEffectMessage}");
|
MWBase::Environment::get().getWindowManager()->messageBox ("#{sOnetypeEffectMessage}");
|
||||||
return;
|
return;
|
||||||
|
@ -570,9 +577,7 @@ namespace MWGui
|
||||||
}
|
}
|
||||||
|
|
||||||
const ESM::MagicEffect* effect =
|
const ESM::MagicEffect* effect =
|
||||||
MWBase::Environment::get().getWorld()->getStore().get<ESM::MagicEffect>().find(effectId);
|
MWBase::Environment::get().getWorld()->getStore().get<ESM::MagicEffect>().find(mSelectedKnownEffectId);
|
||||||
|
|
||||||
mAddEffectDialog.newEffect (effect);
|
|
||||||
|
|
||||||
if (effect->mData.mFlags & ESM::MagicEffect::TargetSkill)
|
if (effect->mData.mFlags & ESM::MagicEffect::TargetSkill)
|
||||||
{
|
{
|
||||||
|
@ -592,6 +597,7 @@ namespace MWGui
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
mAddEffectDialog.newEffect(effect);
|
||||||
mAddEffectDialog.setVisible(true);
|
mAddEffectDialog.setVisible(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,6 +99,7 @@ namespace MWGui
|
||||||
SelectSkillDialog* mSelectSkillDialog;
|
SelectSkillDialog* mSelectSkillDialog;
|
||||||
|
|
||||||
int mSelectedEffect;
|
int mSelectedEffect;
|
||||||
|
short mSelectedKnownEffectId;
|
||||||
|
|
||||||
std::vector<ESM::ENAMstruct> mEffects;
|
std::vector<ESM::ENAMstruct> mEffects;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue