diff --git a/projects/mtg/include/ManaCost.h b/projects/mtg/include/ManaCost.h index 6a24f274e..f98bcaf82 100644 --- a/projects/mtg/include/ManaCost.h +++ b/projects/mtg/include/ManaCost.h @@ -15,7 +15,7 @@ class ManaCost{ protected: int cost[Constants::MTG_NB_COLORS+1]; ManaCostHybrid * hybrids[10]; - int nbhybrids; + unsigned int nbhybrids; public: ExtraCosts * extraCosts; diff --git a/projects/mtg/src/ExtraCost.cpp b/projects/mtg/src/ExtraCost.cpp index 1edb8a061..22fa1992e 100644 --- a/projects/mtg/src/ExtraCost.cpp +++ b/projects/mtg/src/ExtraCost.cpp @@ -1,119 +1,119 @@ -#include "../include/ExtraCost.h" -#include "../include/TargetChooser.h" -#include "../include/MTGCardInstance.h" -#include - -ExtraCost::ExtraCost( TargetChooser *_tc):tc(_tc){ - -} - - -int ExtraCost::setSource(MTGCardInstance * _source){ - source=_source; - if (tc){ tc->source = _source;} - return 1; -} - -SacrificeCost::SacrificeCost(TargetChooser *_tc):ExtraCost(_tc){ - target = NULL; -} - -int SacrificeCost::setSource(MTGCardInstance * card){ - ExtraCost::setSource(card); - if (!tc) target = card; - return 1; -} - -int SacrificeCost::setPayment(MTGCardInstance * card){ - if (tc) { - int result = tc->addTarget(card); - if (result) { - target = card; - return result; - } - } - return 0; -} - -int SacrificeCost::isPaymentSet(){ - if (target) return 1; - return 0; -} - +#include "../include/ExtraCost.h" +#include "../include/TargetChooser.h" +#include "../include/MTGCardInstance.h" +#include + +ExtraCost::ExtraCost( TargetChooser *_tc):tc(_tc){ + +} + + +int ExtraCost::setSource(MTGCardInstance * _source){ + source=_source; + if (tc){ tc->source = _source;} + return 1; +} + +SacrificeCost::SacrificeCost(TargetChooser *_tc):ExtraCost(_tc){ + target = NULL; +} + +int SacrificeCost::setSource(MTGCardInstance * card){ + ExtraCost::setSource(card); + if (!tc) target = card; + return 1; +} + +int SacrificeCost::setPayment(MTGCardInstance * card){ + if (tc) { + int result = tc->addTarget(card); + if (result) { + target = card; + return result; + } + } + return 0; +} + +int SacrificeCost::isPaymentSet(){ + if (target) return 1; + return 0; +} + int SacrificeCost::doPay(){ if(target){ - target->controller()->game->putInGraveyard(target); - return 1; - } - return 0; -} - -void SacrificeCost::Render(){ - //TODO : real stuff + target->controller()->game->putInGraveyard(target); + return 1; + } + return 0; +} + +void SacrificeCost::Render(){ + //TODO : real stuff JLBFont * mFont = GameApp::CommonRes->GetJLBFont(Constants::MAIN_FONT); mFont->SetScale(DEFAULT_MAIN_FONT_SCALE); char buffer[200]; sprintf(buffer, "sacrifice"); - mFont->DrawString(buffer, 20 ,20, JGETEXT_LEFT); -} - -// -//Container -// -ExtraCosts::ExtraCosts(){ - action = NULL; - source = NULL; -} - -void ExtraCosts::Render(){ - //TODO cool window and stuff... - for (int i=0; i < costs.size(); i++){ - costs[i]->Render(); - } -} - -int ExtraCosts::setAction(MTGAbility * _action, MTGCardInstance * _card){ - action = _action; - source = _card; - for (int i=0; i < costs.size(); i++){ - costs[i]->setSource(_card); - } - return 1; -} - -int ExtraCosts::reset(){ - action = NULL; - source = NULL; - //TODO set all payments to "unset" - return 1; -} - -int ExtraCosts::tryToSetPayment(MTGCardInstance * card){ - for (int i=0; i < costs.size(); i++){ - if (int result = costs[i]->setPayment(card)) return result; - } - return 0; -} - -int ExtraCosts::isPaymentSet(){ - for (int i=0; i < costs.size(); i++){ - if (!costs[i]->isPaymentSet()) return 0; - } - return 1; -} - -int ExtraCosts::doPay(){ - int result = 0; - for (int i=0; i < costs.size(); i++){ - result+=costs[i]->doPay(); - } - return result; -} -void ExtraCosts::Dump(){ -#ifdef WIN32 - char buf[4096]; - OutputDebugString("=====\nDumping ExtraCosts=====\n"); - sprintf(buf, "NbElements : %i\n", costs.size()); - OutputDebugString(buf); -#endif -} \ No newline at end of file + mFont->DrawString(buffer, 20 ,20, JGETEXT_LEFT); +} + +// +//Container +// +ExtraCosts::ExtraCosts(){ + action = NULL; + source = NULL; +} + +void ExtraCosts::Render(){ + //TODO cool window and stuff... + for (size_t i = 0; i < costs.size(); i++){ + costs[i]->Render(); + } +} + +int ExtraCosts::setAction(MTGAbility * _action, MTGCardInstance * _card){ + action = _action; + source = _card; + for (size_t i = 0; i < costs.size(); i++){ + costs[i]->setSource(_card); + } + return 1; +} + +int ExtraCosts::reset(){ + action = NULL; + source = NULL; + //TODO set all payments to "unset" + return 1; +} + +int ExtraCosts::tryToSetPayment(MTGCardInstance * card){ + for (size_t i = 0; i < costs.size(); i++){ + if (int result = costs[i]->setPayment(card)) return result; + } + return 0; +} + +int ExtraCosts::isPaymentSet(){ + for (size_t i = 0; i < costs.size(); i++){ + if (!costs[i]->isPaymentSet()) return 0; + } + return 1; +} + +int ExtraCosts::doPay(){ + int result = 0; + for (size_t i = 0; i < costs.size(); i++){ + result+=costs[i]->doPay(); + } + return result; +} +void ExtraCosts::Dump(){ +#ifdef WIN32 + char buf[4096]; + OutputDebugString("=====\nDumping ExtraCosts=====\n"); + sprintf(buf, "NbElements : %i\n", costs.size()); + OutputDebugString(buf); +#endif +} diff --git a/projects/mtg/src/ManaCost.cpp b/projects/mtg/src/ManaCost.cpp index 122b55f91..0ac585d8e 100644 --- a/projects/mtg/src/ManaCost.cpp +++ b/projects/mtg/src/ManaCost.cpp @@ -59,8 +59,8 @@ ManaCost * ManaCost::parseManaCost(string s, ManaCost * _manaCost){ OutputDebugString("Sacrifice\n"); TargetChooserFactory tcf; TargetChooser * tc = NULL; - int target_start = value.find("("); - int target_end = value.find(")"); + size_t target_start = value.find("("); + size_t target_end = value.find(")"); if (target_start!=string::npos && target_end!=string::npos){ string target = value.substr(target_start+1, target_end-1 - target_start); tc = tcf.createTargetChooser(target,NULL);