Revision: 4887
Author: pankdm
Date: Fri Oct 18 06:37:31 2013 UTC
Log: Changed the owner of ManaCost in LifeorManaCost to itself
http://code.google.com/p/wagic/source/detail?r=4887
Modified:
/trunk/projects/mtg/include/ExtraCost.h
/trunk/projects/mtg/src/ExtraCost.cpp
/trunk/projects/mtg/src/ManaCost.cpp
=======================================
--- /trunk/projects/mtg/include/ExtraCost.h Fri Oct 18 06:37:09 2013 UTC
+++ /trunk/projects/mtg/include/ExtraCost.h Fri Oct 18 06:37:31 2013 UTC
@@ -95,6 +95,7 @@
{
private:
string manaType;
+ ManaCost manaCost;
public:
LifeorManaCost(TargetChooser *_tc = NULL, string manaType = "");
=======================================
--- /trunk/projects/mtg/src/ExtraCost.cpp Fri Oct 18 06:37:09 2013 UTC
+++ /trunk/projects/mtg/src/ExtraCost.cpp Fri Oct 18 06:37:31 2013 UTC
@@ -162,22 +162,23 @@
ManaCost * LifeorManaCost::getManaCost()
{
- string buildType ="{";
- buildType.append(manaType);
- buildType.append("}");
- return ManaCost::parseManaCost(buildType);
+ return &manaCost;
}
LifeorManaCost::LifeorManaCost(TargetChooser *_tc, string manaType)
: ExtraCost("Phyrexian Mana", _tc), manaType(manaType)
{
+ string buildType ="{";
+ buildType.append(manaType);
+ buildType.append("}");
+ boost::scoped_ptr<ManaCost> cost(ManaCost::parseManaCost(buildType));
+ manaCost.copy(cost.get());
}
int LifeorManaCost::canPay()
{
MTGCardInstance * _target = (MTGCardInstance *) target;
- boost::scoped_ptr<ManaCost> manaCost(getManaCost());
- if (_target->controller()->getManaPool()->canAfford(manaCost.get()) ||
_target->controller()->life > 1)
+ if (_target->controller()->getManaPool()->canAfford(getManaCost()) ||
_target->controller()->life > 1)
{
return 1;
}
@@ -190,16 +191,14 @@
return 0;
MTGCardInstance * _target = (MTGCardInstance *) target;
- ManaCost * manaCost = getManaCost();
- if (_target->controller()->getManaPool()->canAfford(manaCost))
+ if (_target->controller()->getManaPool()->canAfford(&manaCost))
{
- _target->controller()->getManaPool()->pay(manaCost);
+ _target->controller()->getManaPool()->pay(&manaCost);
}
else
{
_target->controller()->loseLife(2);
}
- SAFE_DELETE(manaCost);
target = NULL;
if (tc)
tc->initTargets();
=======================================
--- /trunk/projects/mtg/src/ManaCost.cpp Fri Oct 18 06:37:09 2013 UTC
+++ /trunk/projects/mtg/src/ManaCost.cpp Fri Oct 18 06:37:31 2013 UTC
@@ -8,7 +8,6 @@
#include "WEvent.h"
#include "MTGAbility.h"
#include "iterator"
-#include <boost/scoped_ptr.hpp>
SUPPORT_OBJECT_ANALYTICS(ManaCost)
@@ -594,8 +593,7 @@
LifeorManaCost * phyrexianMana =
dynamic_cast<LifeorManaCost*>(extraCosts->costs[i]);
if (phyrexianMana)
{
- boost::scoped_ptr<ManaCost>
manaCost(phyrexianMana->getManaCost());
- result += manaCost->getManaSymbols(color);
+ result +=
phyrexianMana->getManaCost()->getManaSymbols(color);
}
}
}