diff --git a/projects/mtg/include/DamagerDamaged.h b/projects/mtg/include/DamagerDamaged.h index 97fcdebc0..8819846bc 100644 --- a/projects/mtg/include/DamagerDamaged.h +++ b/projects/mtg/include/DamagerDamaged.h @@ -30,6 +30,7 @@ struct AttackerDamaged : DamagerDamaged { vector blockers; AttackerDamaged(MTGCardInstance* card, float x, float y, bool show, Player* damageSelecter); AttackerDamaged(MTGCardInstance* card, const Pos& ref, bool show, Player* damageSelecter); + ~AttackerDamaged(); }; #endif diff --git a/projects/mtg/src/DamagerDamaged.cpp b/projects/mtg/src/DamagerDamaged.cpp index 830b9b3a5..3bbb58a3c 100644 --- a/projects/mtg/src/DamagerDamaged.cpp +++ b/projects/mtg/src/DamagerDamaged.cpp @@ -88,3 +88,8 @@ void DamagerDamaged::Render(CombatStep mode) AttackerDamaged::AttackerDamaged(MTGCardInstance* card, float x, float y, bool show, Player * damageSelecter) : DamagerDamaged(card, x, y, show, damageSelecter) {} AttackerDamaged::AttackerDamaged(MTGCardInstance* card, const Pos& ref, bool show, Player * damageSelecter) : DamagerDamaged(card, ref, show, damageSelecter) {} + +AttackerDamaged::~AttackerDamaged(){ +for (vector::iterator q = blockers.begin(); q != blockers.end(); ++q) + delete(*q); +} \ No newline at end of file diff --git a/projects/mtg/src/GuiCombat.cpp b/projects/mtg/src/GuiCombat.cpp index 3e61bc4b4..889383f2b 100644 --- a/projects/mtg/src/GuiCombat.cpp +++ b/projects/mtg/src/GuiCombat.cpp @@ -33,8 +33,6 @@ GuiCombat::~GuiCombat() for (inner_iterator it = attackers.begin(); it != attackers.end(); ++it) { - for (vector::iterator q = (*it)->blockers.begin(); q != (*it)->blockers.end(); ++q) - delete(*q); delete (*it); } } @@ -370,7 +368,6 @@ int GuiCombat::receiveEventMinus(WEvent* e) { AttackerDamaged* d = *it; if (activeAtk == *it) activeAtk = NULL; - for (vector::iterator q = (*it)->blockers.begin(); q != (*it)->blockers.end(); ++q) delete(*q); attackers.erase(it); SAFE_DELETE(d); return 1;