Replaced ManaCost's int array with int8_t. Shrinks ManaCost by another 24 bytes, which in turn lowers CardPrimitive's footprint by the same amount.

This commit is contained in:
wrenczes
2011-05-04 10:02:47 +00:00
parent d922d4fe06
commit 0cb8c50b39
5 changed files with 17 additions and 17 deletions

View File

@@ -3857,7 +3857,7 @@ public:
MTGAbility(id, _source)
{
counters = 0;
int _cost[] = { Constants::MTG_COLOR_ARTIFACT, 4 };
int8_t _cost[] = { Constants::MTG_COLOR_ARTIFACT, 4 };
cost = ManaCost(_cost, 1);
}
@@ -3921,7 +3921,7 @@ public:
MTGAbility(_id, _source)
{
canprevent = 0;
int _cost[] = { Constants::MTG_COLOR_ARTIFACT, 2 };
int8_t _cost[] = { Constants::MTG_COLOR_ARTIFACT, 2 };
cost = ManaCost(_cost, 1);
}
@@ -4017,7 +4017,7 @@ public:
AFarmstead(int _id, MTGCardInstance * source, MTGCardInstance * _target) :
ActivatedAbility(_id, source, 0, 1)
{
int _cost[] = { Constants::MTG_COLOR_WHITE, 2 };
int8_t _cost[] = { Constants::MTG_COLOR_WHITE, 2 };
cost = NEW ManaCost(_cost, 1);
target = _target;
usedThisTurn = 0;

View File

@@ -23,7 +23,7 @@ class ManaCost
friend std::ostream& operator<<(std::ostream& out, ManaCost m);
protected:
int cost[Constants::MTG_NB_COLORS+1];
int8_t cost[Constants::MTG_NB_COLORS+1];
std::vector<ManaCostHybrid> hybrids;
@@ -55,7 +55,7 @@ public:
virtual void reinit();
void x();
int hasX();
ManaCost(int _cost[], int nb_elems = 1);
ManaCost(int8_t _cost[], int nb_elems = 1);
ManaCost();
~ManaCost();
ManaCost(ManaCost * _manaCost);
@@ -82,8 +82,8 @@ public:
int doPayExtra();
int addHybrid(int c1, int v1, int c2, int v2);
int tryToPayHybrids(std::vector<ManaCostHybrid>& _hybrids, int _nbhybrids, int diff[]);
void randomDiffHybrids(ManaCost * _cost, int diff[]);
int tryToPayHybrids(std::vector<ManaCostHybrid>& _hybrids, int _nbhybrids, int8_t diff[]);
void randomDiffHybrids(ManaCost * _cost, int8_t diff[]);
int add(ManaCost * _cost);
int remove(ManaCost * _cost);
int removeAll(int color);

View File

@@ -53,7 +53,7 @@ int AIMomirPlayer::momir()
if (efficiency >= chance)
{
int _cost[] = { Constants::MTG_COLOR_ARTIFACT, converted };
int8_t _cost[] = { Constants::MTG_COLOR_ARTIFACT, converted };
ManaCost * cost = NEW ManaCost(_cost);
MTGAbility * ability = getMomirAbility();
MTGCardInstance * card = game->hand->cards[0];

View File

@@ -2710,7 +2710,7 @@ void AbilityFactory::addAbilities(int _id, Spell * spell)
case 1103: //Crystal Rod
{
int cost[] = { Constants::MTG_COLOR_ARTIFACT, 1 };
int8_t cost[] = { Constants::MTG_COLOR_ARTIFACT, 1 };
ASpellCastLife* ability = NEW ASpellCastLife(_id, card, Constants::MTG_COLOR_BLUE, NEW ManaCost(cost, 1), 1);
game->addObserver(ability);
break;
@@ -2742,7 +2742,7 @@ void AbilityFactory::addAbilities(int _id, Spell * spell)
}
case 1113: //Iron Star
{
int cost[] = { Constants::MTG_COLOR_ARTIFACT, 1 };
int8_t cost[] = { Constants::MTG_COLOR_ARTIFACT, 1 };
ASpellCastLife* ability = NEW ASpellCastLife(_id, card, Constants::MTG_COLOR_RED, NEW ManaCost(cost, 1), 1);
game->addObserver(ability);
break;
@@ -2754,7 +2754,7 @@ void AbilityFactory::addAbilities(int _id, Spell * spell)
}
case 1114: //Ivory cup
{
int cost[] = { Constants::MTG_COLOR_ARTIFACT, 1 };
int8_t cost[] = { Constants::MTG_COLOR_ARTIFACT, 1 };
ASpellCastLife* ability = NEW ASpellCastLife(_id, card, Constants::MTG_COLOR_WHITE, NEW ManaCost(cost, 1), 1);
game->addObserver(ability);
break;
@@ -2827,7 +2827,7 @@ void AbilityFactory::addAbilities(int _id, Spell * spell)
case 1140: //Throne of Bone
{
int cost[] = { Constants::MTG_COLOR_ARTIFACT, 1 };
int8_t cost[] = { Constants::MTG_COLOR_ARTIFACT, 1 };
ASpellCastLife* ability = NEW ASpellCastLife(_id, card, Constants::MTG_COLOR_BLACK, NEW ManaCost(cost, 1), 1);
game->addObserver(ability);
break;
@@ -2835,7 +2835,7 @@ void AbilityFactory::addAbilities(int _id, Spell * spell)
case 1142: //Wooden Sphere
{
int cost[] = { Constants::MTG_COLOR_ARTIFACT, 1 };
int8_t cost[] = { Constants::MTG_COLOR_ARTIFACT, 1 };
ASpellCastLife* ability = NEW ASpellCastLife(_id, card, Constants::MTG_COLOR_GREEN, NEW ManaCost(cost, 1), 1);
game->addObserver(ability);
break;

View File

@@ -243,7 +243,7 @@ ManaCost::ManaCost()
init();
}
ManaCost::ManaCost(int _cost[], int nb_elems)
ManaCost::ManaCost(int8_t _cost[], int nb_elems)
{
init();
for (int i = 0; i < nb_elems; i++)
@@ -624,7 +624,7 @@ int ManaCost::isPositive()
}
void ManaCost::randomDiffHybrids(ManaCost * _cost, int diff[])
void ManaCost::randomDiffHybrids(ManaCost * _cost, int8_t diff[])
{
for (size_t i = 0; i < _cost->hybrids.size(); i++)
{
@@ -636,7 +636,7 @@ void ManaCost::randomDiffHybrids(ManaCost * _cost, int diff[])
/**
starting from the end of the array (diff)
*/
int ManaCost::tryToPayHybrids(std::vector<ManaCostHybrid>& _hybrids, int _nbhybrids, int diff[])
int ManaCost::tryToPayHybrids(std::vector<ManaCostHybrid>& _hybrids, int _nbhybrids, int8_t diff[])
{
if (!_nbhybrids)
return 1;
@@ -664,7 +664,7 @@ int ManaCost::tryToPayHybrids(std::vector<ManaCostHybrid>& _hybrids, int _nbhybr
//compute the difference between two mana costs
ManaCost * ManaCost::Diff(ManaCost * _cost)
{
int diff[(Constants::MTG_NB_COLORS + 1) * 2];
int8_t diff[(Constants::MTG_NB_COLORS + 1) * 2];
diff[Constants::MTG_NB_COLORS * 2] = Constants::MTG_NB_COLORS;
for (int i = 0; i < Constants::MTG_NB_COLORS; i++)
{