Files
wagic/projects/mtg/src/DamagerDamaged.cpp
T
wrenczes d5f3e4cfea Enabled precompiled headers for the build. This cuts the win compile time in debug by at least half on my laptop; on the psp compile, it shaves it down by ~ 45 seconds. I only did a cursory inspection of what to add to PrecompiledHeader.h, there's probably more that we can throw in there for more incremental speed improvements.
Also fixed the project includes so that we don't need to always use the indirect include path, ie:
#include "../include/foo.h" -> #include "foo.h"

I'm don't know much about make files - if I busted the linux build, mea culpa, but I think we're okay on that front too.  For future reference, here's the most straightforward link on the topic of adding pch support to make files:

http://www.mercs-eng.com/~hulud/index.php?2008/06/13/6-writing-a-good-makefile-for-a-c-project
2010-10-24 05:55:24 +00:00

87 lines
2.5 KiB
C++

#include "PrecompiledHeader.h"
#include "DamagerDamaged.h"
/*
Temporary objects that store the damages dealt to/from creatures during the combat phase
*/
DamagerDamaged::DamagerDamaged(MTGCardInstance* card, float x, float y, bool show, Player * damageSelecter) : TransientCardView(card, x, y), show(show), damageSelecter(damageSelecter) {}
DamagerDamaged::DamagerDamaged(MTGCardInstance* card, const Pos& ref, bool show, Player * damageSelecter) : TransientCardView(card, ref), show(show), damageSelecter(damageSelecter) {}
DamagerDamaged::~DamagerDamaged(){}
int DamagerDamaged::sumDamages(){
int total = 0;
for (vector<Damage>::iterator i = damages.begin(); i != damages.end(); ++i)
total += i->damage;
return total;
}
bool DamagerDamaged::hasLethalDamage(){
return (sumDamages() >= card->life);
}
void DamagerDamaged::addDamage(int damage, DamagerDamaged* source){
for (vector<Damage>::iterator i = damages.begin(); i != damages.end(); ++i)
if (i->source == source->card){
i->damage += damage;
if (0 >= i->damage) damages.erase(i);
return;
}
if (0 < damage) damages.push_back(Damage(source->card, card, damage,DAMAGE_COMBAT));
return;
}
int DamagerDamaged::removeDamagesFrom(DamagerDamaged* source){
for (vector<Damage>::iterator i = damages.begin(); i != damages.end(); ++i)
if (i->source == source->card){
int damage = i->damage;
damages.erase(i);
return damage;
}
return 0;
}
void DamagerDamaged::clearDamage()
{
damages.clear();
}
void DamagerDamaged::Render(CombatStep mode)
{
TransientCardView::Render();
WFont * mFont = resources.GetWFont(Fonts::MAIN_FONT);
mFont->SetBase(0);
switch (mode)
{
case BLOCKERS :
case TRIGGERS :
case ORDER :
mFont->SetColor(ARGB(92,255,255,255));
break;
case FIRST_STRIKE :
case END_FIRST_STRIKE :
case DAMAGE :
case END_DAMAGE :
mFont->SetColor(ARGB(255, 255, 64, 0));
break;
}
char buf[6];
sprintf(buf, "%i", sumDamages());
mFont->DrawString(buf, actX - 14 * actZ + 5, actY - 14 * actZ);
}
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<DefenserDamaged*>::iterator q = blockers.begin(); q != blockers.end(); ++q)
delete(*q);
}