|
@@ -131,6 +131,15 @@ CSpell::CSpell()
|
|
|
isOffensive = false;
|
|
|
}
|
|
|
|
|
|
+CSpell::~CSpell()
|
|
|
+{
|
|
|
+ for (size_t i=0; i<effects.size(); i++)
|
|
|
+ {
|
|
|
+ for (size_t j=0; j<effects[i].size(); j++)
|
|
|
+ delete effects[i][j];
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
std::vector<BattleHex> CSpell::rangeInHexes(BattleHex centralHex, ui8 schoolLvl, ui8 side, bool *outDroppedHexes) const
|
|
|
{
|
|
|
std::vector<BattleHex> ret;
|
|
@@ -479,7 +488,7 @@ CSpellHandler::CSpellHandler()
|
|
|
auto v = v_node.convertTo<std::vector<int> >();
|
|
|
auto a = a_node.convertTo<std::vector<int> >();
|
|
|
|
|
|
- for (int i=0; i<4 ; i++)
|
|
|
+ for (int i=0; i<s->effects.size() ; i++)
|
|
|
{
|
|
|
Bonus * b = JsonUtils::parseBonus(bonus_node);
|
|
|
b->sid = s->id; //for all
|
|
@@ -493,10 +502,8 @@ CSpellHandler::CSpellHandler()
|
|
|
|
|
|
s->effects[i].push_back(b);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
-
|
|
|
auto find_in_map = [](std::string name, std::vector<Bonus::BonusType> &vec)
|
|
|
{
|
|
|
auto it = bonusNameMap.find(name);
|
|
@@ -533,6 +540,14 @@ CSpellHandler::CSpellHandler()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+CSpellHandler::~CSpellHandler()
|
|
|
+{
|
|
|
+ BOOST_FOREACH(auto & spell, spells)
|
|
|
+ {
|
|
|
+ spell.dellNull();
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
std::vector<bool> CSpellHandler::getDefaultAllowed() const
|
|
|
{
|
|
|
std::vector<bool> allowedSpells;
|