Merge branch 'master' into wp8
Conflicts: JGE/src/Qtmain.cpp
This commit is contained in:
@@ -57,7 +57,7 @@ void NextGamePhase::Render()
|
||||
if (observer->currentActionPlayer == observer->players[1])
|
||||
playerId = 2;
|
||||
|
||||
sprintf(buffer, "%s %i : %s", _("Player").c_str(), playerId, observer->getNextGamePhaseName());
|
||||
sprintf(buffer, "%s %i : %s", _("Player").c_str(), playerId, observer->getNextGamePhaseName().c_str());
|
||||
|
||||
mFont->DrawString(buffer, x + 15, y+10, JGETEXT_LEFT);
|
||||
mFont->SetScale(DEFAULT_MAIN_FONT_SCALE);
|
||||
@@ -675,6 +675,7 @@ ActionStack::ActionStack(GameObserver* game)
|
||||
currentState = -1;
|
||||
mode = ACTIONSTACK_STANDARD;
|
||||
checked = 0;
|
||||
lastActionController = NULL;
|
||||
|
||||
if(!observer->getResourceManager()) return;
|
||||
for (int i = 0; i < 8; ++i)
|
||||
|
||||
@@ -55,6 +55,12 @@ GenericActivatedAbility::GenericActivatedAbility(GameObserver* observer, string
|
||||
target = ability->target;
|
||||
}
|
||||
|
||||
GenericActivatedAbility::GenericActivatedAbility(const GenericActivatedAbility &other):
|
||||
ActivatedAbility(other), NestedAbility(other), activeZone(other.activeZone), newName(other.newName)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
int GenericActivatedAbility::resolve()
|
||||
{
|
||||
//Note: I've seen a similar block in some other MTGAbility, can this be refactored .
|
||||
@@ -71,7 +77,7 @@ int GenericActivatedAbility::resolve()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * GenericActivatedAbility::getMenuText()
|
||||
const string GenericActivatedAbility::getMenuText()
|
||||
{
|
||||
if(newName.size())
|
||||
return newName.c_str();
|
||||
@@ -105,6 +111,7 @@ int GenericActivatedAbility::testDestroy()
|
||||
GenericActivatedAbility * GenericActivatedAbility::clone() const
|
||||
{
|
||||
GenericActivatedAbility * a = NEW GenericActivatedAbility(*this);
|
||||
|
||||
a->ability = ability->clone();
|
||||
return a;
|
||||
}
|
||||
@@ -133,7 +140,7 @@ int AAAlterPoison::resolve()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * AAAlterPoison::getMenuText()
|
||||
const string AAAlterPoison::getMenuText()
|
||||
{
|
||||
return "Poison";
|
||||
}
|
||||
@@ -165,7 +172,7 @@ int AADamagePrevent::resolve()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * AADamagePrevent::getMenuText()
|
||||
const string AADamagePrevent::getMenuText()
|
||||
{
|
||||
return "Prevent Damage";
|
||||
}
|
||||
@@ -237,7 +244,7 @@ AADamager::AADamager(GameObserver* observer, int _id, MTGCardInstance * _source,
|
||||
return damage.getValue();
|
||||
}
|
||||
|
||||
const char * AADamager::getMenuText()
|
||||
const string AADamager::getMenuText()
|
||||
{
|
||||
MTGCardInstance * _target = dynamic_cast<MTGCardInstance*>(target);
|
||||
if(_target && _target->hasType(Subtypes::TYPE_PLANESWALKER))
|
||||
@@ -276,7 +283,7 @@ AADepleter::AADepleter(GameObserver* observer, int _id, MTGCardInstance * card,
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * AADepleter::getMenuText()
|
||||
const string AADepleter::getMenuText()
|
||||
{
|
||||
return "Deplete";
|
||||
}
|
||||
@@ -311,7 +318,7 @@ AAModTurn::AAModTurn(GameObserver* observer, int _id, MTGCardInstance * card, Ta
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * AAModTurn::getMenuText()
|
||||
const string AAModTurn::getMenuText()
|
||||
{
|
||||
WParsedInt numTurns(nbTurnStr, NULL, source);
|
||||
if(numTurns.getValue() > 0)
|
||||
@@ -354,7 +361,7 @@ int AALibraryBottom::resolve()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * AALibraryBottom::getMenuText()
|
||||
const string AALibraryBottom::getMenuText()
|
||||
{
|
||||
return "Bottom Of Library";
|
||||
}
|
||||
@@ -382,7 +389,7 @@ int AACopier::resolve()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * AACopier::getMenuText()
|
||||
const string AACopier::getMenuText()
|
||||
{
|
||||
return "Copy";
|
||||
}
|
||||
@@ -415,7 +422,7 @@ int AAPhaseOut::resolve()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * AAPhaseOut::getMenuText()
|
||||
const string AAPhaseOut::getMenuText()
|
||||
{
|
||||
return "Phase Out";
|
||||
}
|
||||
@@ -506,7 +513,7 @@ AACounter::AACounter(GameObserver* observer, int id, MTGCardInstance * source, M
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* AACounter::getMenuText()
|
||||
const string AACounter::getMenuText()
|
||||
{
|
||||
if (menu.size())
|
||||
{
|
||||
@@ -695,7 +702,7 @@ int AARemoveAllCounter::resolve()
|
||||
return nb;
|
||||
}
|
||||
|
||||
const char* AARemoveAllCounter::getMenuText()
|
||||
const string AARemoveAllCounter::getMenuText()
|
||||
{
|
||||
if (menu.size())
|
||||
{
|
||||
@@ -773,7 +780,7 @@ int AAProliferate::resolve()
|
||||
|
||||
}
|
||||
|
||||
const char* AAProliferate::getMenuText()
|
||||
const string AAProliferate::getMenuText()
|
||||
{
|
||||
return "Proliferate";
|
||||
}
|
||||
@@ -837,7 +844,7 @@ int GenericChooseTypeColor::resolve()
|
||||
|
||||
}
|
||||
|
||||
const char* GenericChooseTypeColor::getMenuText()
|
||||
const string GenericChooseTypeColor::getMenuText()
|
||||
{
|
||||
if(chooseColor)
|
||||
return "Choose a color";
|
||||
@@ -899,7 +906,7 @@ int AASetColorChosen::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char* AASetColorChosen::getMenuText()
|
||||
const string AASetColorChosen::getMenuText()
|
||||
{
|
||||
return Constants::MTGColorStrings[color];
|
||||
}
|
||||
@@ -956,7 +963,7 @@ int AASetTypeChosen::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char* AASetTypeChosen::getMenuText()
|
||||
const string AASetTypeChosen::getMenuText()
|
||||
{
|
||||
return menutext.c_str();
|
||||
}
|
||||
@@ -1003,7 +1010,7 @@ int GenericFlipACoin::resolve()
|
||||
|
||||
}
|
||||
|
||||
const char* GenericFlipACoin::getMenuText()
|
||||
const string GenericFlipACoin::getMenuText()
|
||||
{
|
||||
return "Flip A Coin";
|
||||
}
|
||||
@@ -1095,7 +1102,7 @@ int AASetCoin::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char* AASetCoin::getMenuText()
|
||||
const string AASetCoin::getMenuText()
|
||||
{
|
||||
if(side == 1)
|
||||
return "Tails";
|
||||
@@ -1186,7 +1193,7 @@ int GenericPaidAbility::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char* GenericPaidAbility::getMenuText()
|
||||
const string GenericPaidAbility::getMenuText()
|
||||
{
|
||||
if (newName.size())
|
||||
return newName.c_str();
|
||||
@@ -1288,7 +1295,7 @@ int AAResetDamage::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char* AAResetDamage::getMenuText()
|
||||
const string AAResetDamage::getMenuText()
|
||||
{
|
||||
return "Reset Damages";
|
||||
}
|
||||
@@ -1309,7 +1316,7 @@ int AAFakeAbility::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char* AAFakeAbility::getMenuText()
|
||||
const string AAFakeAbility::getMenuText()
|
||||
{
|
||||
if(named.size())
|
||||
return named.c_str();
|
||||
@@ -1356,7 +1363,7 @@ int AAFizzler::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * AAFizzler::getMenuText()
|
||||
const string AAFizzler::getMenuText()
|
||||
{
|
||||
return "Fizzle";
|
||||
}
|
||||
@@ -1403,7 +1410,7 @@ int AABuryCard::resolve()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * AABuryCard::getMenuText()
|
||||
const string AABuryCard::getMenuText()
|
||||
{
|
||||
if(menu.size())
|
||||
return menu.c_str();
|
||||
@@ -1459,7 +1466,7 @@ int AADestroyCard::resolve()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * AADestroyCard::getMenuText()
|
||||
const string AADestroyCard::getMenuText()
|
||||
{
|
||||
return "Destroy";
|
||||
}
|
||||
@@ -1515,7 +1522,7 @@ int AASacrificeCard::resolve()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * AASacrificeCard::getMenuText()
|
||||
const string AASacrificeCard::getMenuText()
|
||||
{
|
||||
return "Sacrifice";
|
||||
}
|
||||
@@ -1570,7 +1577,7 @@ int AADiscardCard::resolve()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * AADiscardCard::getMenuText()
|
||||
const string AADiscardCard::getMenuText()
|
||||
{
|
||||
return "Discard";
|
||||
}
|
||||
@@ -1634,7 +1641,7 @@ AADrawer::AADrawer(GameObserver* observer, int _id, MTGCardInstance * card, Targ
|
||||
return numCards.getValue();
|
||||
}
|
||||
|
||||
const char * AADrawer::getMenuText()
|
||||
const string AADrawer::getMenuText()
|
||||
{
|
||||
return "Draw";
|
||||
}
|
||||
@@ -1663,7 +1670,7 @@ int AAFrozen::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * AAFrozen::getMenuText()
|
||||
const string AAFrozen::getMenuText()
|
||||
{
|
||||
return "Freeze";
|
||||
}
|
||||
@@ -1728,7 +1735,7 @@ int AANewTarget::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * AANewTarget::getMenuText()
|
||||
const string AANewTarget::getMenuText()
|
||||
{
|
||||
return "New Target";
|
||||
}
|
||||
@@ -1809,7 +1816,7 @@ int AAMorph::testDestroy()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * AAMorph::getMenuText()
|
||||
const string AAMorph::getMenuText()
|
||||
{
|
||||
return "Morph";
|
||||
}
|
||||
@@ -1946,7 +1953,7 @@ int AAFlip::testDestroy()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * AAFlip::getMenuText()
|
||||
const string AAFlip::getMenuText()
|
||||
{
|
||||
string s = flipStats;
|
||||
sprintf(menuText, "Transform:%s", s.c_str());
|
||||
@@ -2252,7 +2259,7 @@ int AADynamic::activateStored()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * AADynamic::getMenuText()
|
||||
const string AADynamic::getMenuText()
|
||||
{
|
||||
if (menu.size())
|
||||
{
|
||||
@@ -2367,7 +2374,7 @@ int AALifer::getLife()
|
||||
return life.getValue();
|
||||
}
|
||||
|
||||
const char * AALifer::getMenuText()
|
||||
const string AALifer::getMenuText()
|
||||
{
|
||||
if(getLife() < 0)
|
||||
return "Life Loss";
|
||||
@@ -2400,7 +2407,7 @@ int AASetHand::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * AASetHand::getMenuText()
|
||||
const string AASetHand::getMenuText()
|
||||
{
|
||||
return "Set Hand Size";
|
||||
}
|
||||
@@ -2431,7 +2438,7 @@ int AALifeSet::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * AALifeSet::getMenuText()
|
||||
const string AALifeSet::getMenuText()
|
||||
{
|
||||
return "Set Life";
|
||||
}
|
||||
@@ -2513,7 +2520,7 @@ int AACloner::resolve()
|
||||
|
||||
}
|
||||
|
||||
const char * AACloner::getMenuText()
|
||||
const string AACloner::getMenuText()
|
||||
{
|
||||
if (who == 1)
|
||||
return "Clone For Opponent";
|
||||
@@ -2588,7 +2595,7 @@ int ACastRestriction::destroy()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * ACastRestriction::getMenuText()
|
||||
const string ACastRestriction::getMenuText()
|
||||
{
|
||||
if (modifyExisting)
|
||||
return "Additional Lands"; //hardoced because only the lands rule allows to modify existing rule for now
|
||||
@@ -2623,7 +2630,7 @@ int AInstantCastRestrictionUEOT::resolve()
|
||||
wrapper->addToGame();
|
||||
return 1;
|
||||
}
|
||||
const char * AInstantCastRestrictionUEOT::getMenuText()
|
||||
const string AInstantCastRestrictionUEOT::getMenuText()
|
||||
{
|
||||
return ability->getMenuText();
|
||||
}
|
||||
@@ -2717,14 +2724,14 @@ int AAMover::resolve()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * AAMover::getMenuText()
|
||||
const string AAMover::getMenuText()
|
||||
{
|
||||
if(named.size())
|
||||
return named.c_str();
|
||||
return "Move";
|
||||
}
|
||||
|
||||
const char * AAMover::getMenuText(TargetChooser * tc)
|
||||
const char* AAMover::getMenuText(TargetChooser * tc)
|
||||
{
|
||||
if(named.size())
|
||||
return named.c_str();
|
||||
@@ -2864,7 +2871,7 @@ int AARandomMover::resolve()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * AARandomMover::getMenuText()
|
||||
const string AARandomMover::getMenuText()
|
||||
{
|
||||
return "Dig";
|
||||
}
|
||||
@@ -2902,7 +2909,7 @@ int AARandomDiscarder::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * AARandomDiscarder::getMenuText()
|
||||
const string AARandomDiscarder::getMenuText()
|
||||
{
|
||||
return "Discard Random";
|
||||
}
|
||||
@@ -2929,7 +2936,7 @@ int AAShuffle::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * AAShuffle::getMenuText()
|
||||
const string AAShuffle::getMenuText()
|
||||
{
|
||||
return "Shuffle";
|
||||
}
|
||||
@@ -3027,7 +3034,7 @@ int AARemoveMana::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * AARemoveMana::getMenuText()
|
||||
const string AARemoveMana::getMenuText()
|
||||
{
|
||||
if (mRemoveAll && !mManaDesc)
|
||||
return "Empty Manapool";
|
||||
@@ -3066,7 +3073,7 @@ int AATapper::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * AATapper::getMenuText()
|
||||
const string AATapper::getMenuText()
|
||||
{
|
||||
return "Tap";
|
||||
}
|
||||
@@ -3096,7 +3103,7 @@ int AAUntapper::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * AAUntapper::getMenuText()
|
||||
const string AAUntapper::getMenuText()
|
||||
{
|
||||
return "Untap";
|
||||
}
|
||||
@@ -3177,7 +3184,7 @@ int AAWinGame::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * AAWinGame::getMenuText()
|
||||
const string AAWinGame::getMenuText()
|
||||
{
|
||||
return "Win Game";
|
||||
}
|
||||
@@ -3268,7 +3275,7 @@ int IfThenAbility::resolve()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * IfThenAbility::getMenuText()
|
||||
const string IfThenAbility::getMenuText()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
@@ -3320,7 +3327,7 @@ void MayAbility::Update(float dt)
|
||||
}
|
||||
}
|
||||
|
||||
const char * MayAbility::getMenuText()
|
||||
const string MayAbility::getMenuText()
|
||||
{
|
||||
return ability->getMenuText();
|
||||
}
|
||||
@@ -3456,7 +3463,7 @@ int MenuAbility::resolve()
|
||||
return a->addToGame();
|
||||
}
|
||||
|
||||
const char * MenuAbility::getMenuText()
|
||||
const string MenuAbility::getMenuText()
|
||||
{
|
||||
if((abilities.size() > 1 && must)||(abilities.size() > 2 && !must))
|
||||
return "choose one";
|
||||
@@ -3657,7 +3664,7 @@ int MultiAbility::destroy()
|
||||
return ActivatedAbility::destroy();
|
||||
}
|
||||
|
||||
const char * MultiAbility::getMenuText()
|
||||
const string MultiAbility::getMenuText()
|
||||
{
|
||||
if (abilities.size() && abilities[0])
|
||||
return abilities[0]->getMenuText();
|
||||
@@ -3696,7 +3703,7 @@ GenericTargetAbility::GenericTargetAbility(GameObserver* observer, string newNam
|
||||
counters = 0;
|
||||
}
|
||||
|
||||
const char * GenericTargetAbility::getMenuText()
|
||||
const string GenericTargetAbility::getMenuText()
|
||||
{
|
||||
if (!ability)
|
||||
return "Error";
|
||||
@@ -4249,7 +4256,7 @@ int ATransformer::destroy()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * ATransformer::getMenuText()
|
||||
const string ATransformer::getMenuText()
|
||||
{
|
||||
if(menutext.size())
|
||||
return menutext.c_str();
|
||||
@@ -4282,7 +4289,7 @@ int ATransformerInstant::resolve()
|
||||
wrapper->addToGame();
|
||||
return 1;
|
||||
}
|
||||
const char * ATransformerInstant::getMenuText()
|
||||
const string ATransformerInstant::getMenuText()
|
||||
{
|
||||
if(menu.size())
|
||||
return menu.c_str();
|
||||
@@ -4316,7 +4323,7 @@ int PTInstant::resolve()
|
||||
wrapper->addToGame();
|
||||
return 1;
|
||||
}
|
||||
const char * PTInstant::getMenuText()
|
||||
const string PTInstant::getMenuText()
|
||||
{
|
||||
return ability->getMenuText();
|
||||
}
|
||||
@@ -4347,7 +4354,7 @@ int ASwapPTUEOT::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * ASwapPTUEOT::getMenuText()
|
||||
const string ASwapPTUEOT::getMenuText()
|
||||
{
|
||||
return ability->getMenuText();
|
||||
}
|
||||
@@ -4417,7 +4424,7 @@ int AAExchangeLife::resolve()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * AAExchangeLife::getMenuText()
|
||||
const string AAExchangeLife::getMenuText()
|
||||
{
|
||||
return "Exchange life";
|
||||
}
|
||||
@@ -4655,7 +4662,7 @@ int APreventDamageTypesUEOT::destroy()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * APreventDamageTypesUEOT::getMenuText()
|
||||
const string APreventDamageTypesUEOT::getMenuText()
|
||||
{
|
||||
return ability->getMenuText();
|
||||
}
|
||||
@@ -4725,7 +4732,7 @@ int AVanishing::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * AVanishing::getMenuText()
|
||||
const string AVanishing::getMenuText()
|
||||
{
|
||||
if(counterName.find("fade") != string::npos)
|
||||
return "Fading";
|
||||
@@ -4821,7 +4828,7 @@ int AUpkeep::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * AUpkeep::getMenuText()
|
||||
const string AUpkeep::getMenuText()
|
||||
{
|
||||
return "Upkeep";
|
||||
}
|
||||
@@ -4921,7 +4928,7 @@ int APhaseAction::resolve()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * APhaseAction::getMenuText()
|
||||
const string APhaseAction::getMenuText()
|
||||
{
|
||||
if(psMenuText.size())
|
||||
return psMenuText.c_str();
|
||||
@@ -4958,7 +4965,7 @@ int APhaseActionGeneric::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * APhaseActionGeneric::getMenuText()
|
||||
const string APhaseActionGeneric::getMenuText()
|
||||
{
|
||||
return ability->getMenuText();
|
||||
}
|
||||
@@ -5116,7 +5123,7 @@ int ABlink::resolve()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
const char * ABlink::getMenuText()
|
||||
const string ABlink::getMenuText()
|
||||
{
|
||||
return "Blink";
|
||||
}
|
||||
@@ -5147,7 +5154,7 @@ int ABlinkGeneric::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * ABlinkGeneric::getMenuText()
|
||||
const string ABlinkGeneric::getMenuText()
|
||||
{
|
||||
return "Blink";
|
||||
}
|
||||
@@ -5316,6 +5323,7 @@ int AEquip::unequip()
|
||||
{
|
||||
MTGAbility * a = currentAbilities[i];
|
||||
if (dynamic_cast<AEquip *> (a) || dynamic_cast<ATeach *> (a) || dynamic_cast<AAConnect *> (a)
|
||||
|| dynamic_cast<AANewTarget *> (AbilityFactory::getCoreAbility(a))
|
||||
|| (a->aType == MTGAbility::STANDARD_TOKENCREATOR && a->oneShot))
|
||||
{
|
||||
SAFE_DELETE(a);
|
||||
@@ -5369,7 +5377,7 @@ int AEquip::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * AEquip::getMenuText()
|
||||
const string AEquip::getMenuText()
|
||||
{
|
||||
if (isAttach)
|
||||
return "Attach";
|
||||
@@ -5583,7 +5591,7 @@ int AACastCard::resolveSpell()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * AACastCard::getMenuText()
|
||||
const string AACastCard::getMenuText()
|
||||
{
|
||||
if(nameThis.size())
|
||||
return nameThis.c_str();
|
||||
|
||||
@@ -84,6 +84,9 @@ int CardPrimitive::init()
|
||||
alias = 0;
|
||||
restrictions = NULL;
|
||||
dredgeAmount = 0;
|
||||
|
||||
power = 0;
|
||||
toughness = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -344,18 +347,12 @@ bool CardPrimitive::hasSubtype(int _subtype)
|
||||
return hasType(_subtype);
|
||||
}
|
||||
|
||||
bool CardPrimitive::hasType(const char * _type)
|
||||
bool CardPrimitive::hasType(const string& _type)
|
||||
{
|
||||
int id = MTGAllCards::findType(_type);
|
||||
return hasType(id);
|
||||
}
|
||||
|
||||
bool CardPrimitive::hasSubtype(const char * _subtype)
|
||||
{
|
||||
int id = MTGAllCards::findType(_subtype);
|
||||
return hasType(id);
|
||||
}
|
||||
|
||||
bool CardPrimitive::hasSubtype(const string& _subtype)
|
||||
{
|
||||
int id = MTGAllCards::findType(_subtype);
|
||||
|
||||
@@ -66,7 +66,7 @@ CardSelector::SelectorMemory::SelectorMemory()
|
||||
}
|
||||
|
||||
CardSelector::CardSelector(GameObserver *observer, DuelLayers* duel) :
|
||||
CardSelectorBase(observer), active(NULL), duel(duel), limitor(NULL), bigpos(300, 145, 1.0, 0.0, 220)
|
||||
CardSelectorBase(observer), active(NULL), duel(duel), limitor(NULL), bigpos(300, 145, 1.0, 0.0, 220), timer(0.0f)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include <iomanip>
|
||||
#include "Translate.h"
|
||||
|
||||
DeckEditorMenu::DeckEditorMenu(int id, JGuiListener* listener, int fontId, const char * _title, DeckDataWrapper *_selectedDeck, StatsWrapper *stats) :
|
||||
DeckEditorMenu::DeckEditorMenu(int id, JGuiListener* listener, int fontId, const string& _title, DeckDataWrapper *_selectedDeck, StatsWrapper *stats) :
|
||||
DeckMenu(id, listener, fontId, _title), selectedDeck(_selectedDeck), stw(stats)
|
||||
{
|
||||
backgroundName = "DeckEditorMenuBackdrop";
|
||||
|
||||
@@ -370,7 +370,7 @@ void DeckMenu::Update(float dt)
|
||||
|
||||
}
|
||||
|
||||
void DeckMenu::Add(int id, const char * text, string desc, bool forceFocus, DeckMetaData * deckMetaData)
|
||||
void DeckMenu::Add(int id, const string& text, const string& desc, bool forceFocus, DeckMetaData * deckMetaData)
|
||||
{
|
||||
DeckMenuItem * menuItem = NEW DeckMenuItem(this, id, fontId, text, 0,
|
||||
mY + DeckMenuConst::kVerticalMargin + mCount * DeckMenuConst::kLineHeight, (mCount == 0), mAutoTranslate, deckMetaData);
|
||||
|
||||
@@ -587,7 +587,7 @@ void StatsWrapper::updateStats(DeckDataWrapper *myDeck)
|
||||
|
||||
// This should probably be cached in DeckDataWrapper
|
||||
// or at least be calculated for all common types in one go
|
||||
int StatsWrapper::countCardsByType(const char * _type, DeckDataWrapper * myDeck)
|
||||
int StatsWrapper::countCardsByType(const string& _type, DeckDataWrapper * myDeck)
|
||||
{
|
||||
int result = 0;
|
||||
for (int i = 0; i < myDeck->Size(true); i++)
|
||||
|
||||
@@ -110,12 +110,12 @@ GamePhase GameObserver::getCurrentGamePhase()
|
||||
return mCurrentGamePhase;
|
||||
}
|
||||
|
||||
const char* GameObserver::getCurrentGamePhaseName()
|
||||
const string& GameObserver::getCurrentGamePhaseName()
|
||||
{
|
||||
return phaseRing->phaseName(mCurrentGamePhase);
|
||||
}
|
||||
|
||||
const char* GameObserver::getNextGamePhaseName()
|
||||
const string& GameObserver::getNextGamePhaseName()
|
||||
{
|
||||
return phaseRing->phaseName((mCurrentGamePhase + 1) % MTG_PHASE_CLEANUP);
|
||||
}
|
||||
@@ -1042,7 +1042,7 @@ void GameObserver::Affinity()
|
||||
}
|
||||
else
|
||||
{
|
||||
reduce = card->controller()->game->battlefield->countByType(type.c_str());
|
||||
reduce = card->controller()->game->battlefield->countByType(type);
|
||||
}
|
||||
for(int i = 0; i < reduce;i++)
|
||||
{
|
||||
|
||||
@@ -818,9 +818,9 @@ void GameSettings::createUsersFirstDeck(int setId)
|
||||
mCollection->addRandomCards(10, 0, 0, Constants::RARITY_L, "Island");
|
||||
|
||||
//Starter Deck
|
||||
mCollection->addRandomCards(3, sets, 1, Constants::RARITY_R, NULL);
|
||||
mCollection->addRandomCards(9, sets, 1, Constants::RARITY_U, NULL);
|
||||
mCollection->addRandomCards(48, sets, 1, Constants::RARITY_C, NULL);
|
||||
mCollection->addRandomCards(3, sets, 1, Constants::RARITY_R);
|
||||
mCollection->addRandomCards(9, sets, 1, Constants::RARITY_U);
|
||||
mCollection->addRandomCards(48, sets, 1, Constants::RARITY_C);
|
||||
|
||||
//Boosters
|
||||
for (int i = 0; i < 2; i++)
|
||||
@@ -956,7 +956,7 @@ OptionMaxGrade::OptionMaxGrade()
|
||||
|
||||
// MARK: OptionASkipPhase
|
||||
|
||||
OptionASkipPhase OptionASkipPhase::mDef;
|
||||
OptionASkipPhase OptionASkipPhase::mDef = OptionASkipPhase();
|
||||
OptionASkipPhase::OptionASkipPhase()
|
||||
{
|
||||
mDef.values.push_back(EnumDefinition::assoc(Constants::ASKIP_NONE, "Off"));
|
||||
|
||||
@@ -134,7 +134,7 @@ void GameState::renderDeckMenu(DeckMenu * _menu, const vector<DeckMetaData *>& d
|
||||
// deck sorting routines
|
||||
bool sortByName(DeckMetaData * d1, DeckMetaData * d2)
|
||||
{
|
||||
return strcmp(d1->getName().c_str(), d2->getName().c_str()) < 0;
|
||||
return d1->getName() < d2->getName();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ void GameStateStory::Update(float dt)
|
||||
if (!menu && mEngine->GetButtonClick(JGE_BTN_MENU))
|
||||
{
|
||||
menu = NEW SimpleMenu(JGE::GetInstance(), WResourceManager::Instance(), 100, this, Fonts::MENU_FONT, SCREEN_WIDTH / 2 - 100, 25);
|
||||
menu->Add(0, "Back to main menu");
|
||||
menu->Add(0, string("Back to main menu"));
|
||||
menu->Add(kCancelMenuID, "Cancel");
|
||||
}
|
||||
if (menu)
|
||||
|
||||
@@ -1145,7 +1145,7 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
|
||||
}
|
||||
|
||||
|
||||
if(strncmp(s.c_str(), "chooseacolor ", strlen("chooseacolor ")) == 0 || strncmp(s.c_str(), "chooseatype ", strlen("chooseatype ")) == 0)
|
||||
if(s.compare(0, strlen("chooseacolor "), "chooseacolor ") == 0 || s.compare(0, strlen("chooseatype "), "chooseatype ") == 0)
|
||||
{
|
||||
MTGAbility * choose = parseChooseActionAbility(s,card,spell,target,0,id);
|
||||
choose = NEW GenericActivatedAbility(observer, "","",id, card,choose,NULL);
|
||||
@@ -4368,6 +4368,7 @@ MTGAbility::MTGAbility(GameObserver* observer, int id, MTGCardInstance * card) :
|
||||
aType = MTGAbility::UNKNOWN;
|
||||
mCost = NULL;
|
||||
forceDestroy = 0;
|
||||
forcedAlive = 0;
|
||||
oneShot = 0;
|
||||
canBeInterrupted = true;
|
||||
}
|
||||
@@ -4381,6 +4382,7 @@ MTGAbility::MTGAbility(GameObserver* observer, int id, MTGCardInstance * _source
|
||||
aType = MTGAbility::UNKNOWN;
|
||||
mCost = NULL;
|
||||
forceDestroy = 0;
|
||||
forcedAlive = 0;
|
||||
oneShot = 0;
|
||||
canBeInterrupted = true;
|
||||
}
|
||||
@@ -4893,7 +4895,7 @@ int TargetAbility::resolve()
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char * TargetAbility::getMenuText()
|
||||
const string TargetAbility::getMenuText()
|
||||
{
|
||||
if (ability)
|
||||
return ability->getMenuText();
|
||||
@@ -5423,7 +5425,7 @@ GenericTriggeredAbility::~GenericTriggeredAbility()
|
||||
SAFE_DELETE(destroyCondition);
|
||||
}
|
||||
|
||||
const char * GenericTriggeredAbility::getMenuText()
|
||||
const string GenericTriggeredAbility::getMenuText()
|
||||
{
|
||||
return ability->getMenuText();
|
||||
}
|
||||
@@ -5451,6 +5453,7 @@ AManaProducer::AManaProducer(GameObserver* observer, int id, MTGCardInstance * c
|
||||
aType = MTGAbility::MANA_PRODUCER;
|
||||
setCost(_cost);
|
||||
output = _output;
|
||||
tap = 0;
|
||||
Producing = producing;
|
||||
menutext = "";
|
||||
DoesntEmpty = doesntEmpty;
|
||||
@@ -5516,7 +5519,7 @@ int AManaProducer::reactToClick(MTGCardInstance * _card)
|
||||
return ActivatedAbility::activateAbility();
|
||||
}
|
||||
|
||||
const char * AManaProducer::getMenuText()
|
||||
const string AManaProducer::getMenuText()
|
||||
{
|
||||
if (menutext.size())
|
||||
return menutext.c_str();
|
||||
|
||||
@@ -125,6 +125,7 @@ int MTGCardInstance::init()
|
||||
|
||||
void MTGCardInstance::initMTGCI()
|
||||
{
|
||||
X = 0;
|
||||
sample = "";
|
||||
model = NULL;
|
||||
isToken = false;
|
||||
@@ -195,6 +196,8 @@ void MTGCardInstance::initMTGCI()
|
||||
lastController = NULL;
|
||||
regenerateTokens = 0;
|
||||
blocked = false;
|
||||
graveEffects = false;
|
||||
exileEffects = false;
|
||||
currentZone = NULL;
|
||||
cardsAbilities = vector<MTGAbility *>();
|
||||
data = this; //an MTGCardInstance point to itself for data, allows to update it without killing the underlying database item
|
||||
@@ -254,22 +257,22 @@ void MTGCardInstance::addType(int type)
|
||||
SAFE_DELETE(e);
|
||||
}
|
||||
|
||||
void MTGCardInstance::addType(char * type_text)
|
||||
void MTGCardInstance::addType(const string& type_text)
|
||||
{
|
||||
setSubtype(type_text);
|
||||
}
|
||||
|
||||
void MTGCardInstance::setType(const char * type_text)
|
||||
void MTGCardInstance::setType(const string& type_text)
|
||||
{
|
||||
setSubtype(type_text);
|
||||
}
|
||||
|
||||
void MTGCardInstance::setSubtype(string value)
|
||||
void MTGCardInstance::setSubtype(const string& value)
|
||||
{
|
||||
int id = MTGAllCards::findType(value);
|
||||
addType(id);
|
||||
}
|
||||
int MTGCardInstance::removeType(string value, int removeAll)
|
||||
int MTGCardInstance::removeType(const string& value, int removeAll)
|
||||
{
|
||||
int id = MTGAllCards::findType(value);
|
||||
return removeType(id, removeAll);
|
||||
|
||||
@@ -47,33 +47,33 @@ static inline int getGrade(int v)
|
||||
int MTGAllCards::processConfLine(string &s, MTGCard *card, CardPrimitive * primitive)
|
||||
{
|
||||
if ('#' == s[0]) return 1; // a comment shouldn't be treated as an error condition
|
||||
size_t i = s.find_first_of('=');
|
||||
if (i == string::npos || 0 == i)
|
||||
size_t del_pos = s.find_first_of('=');
|
||||
if (del_pos == string::npos || 0 == del_pos)
|
||||
return 0;
|
||||
|
||||
char* key = const_cast<char*> (s.c_str()); // I know what I'm doing, let me do it
|
||||
key[i] = 0;
|
||||
char* val = key + i + 1;
|
||||
|
||||
s[del_pos] = '\0';
|
||||
const string key = s.substr(0, del_pos);
|
||||
const string val = s.substr(del_pos + 1);
|
||||
|
||||
switch (key[0])
|
||||
{
|
||||
case 'a':
|
||||
if (0 == strcmp("auto", key))
|
||||
if (key == "auto")
|
||||
{
|
||||
if (!primitive) primitive = NEW CardPrimitive();
|
||||
primitive->addMagicText(val);
|
||||
}
|
||||
else if (0 == strncmp("auto", key, 4))
|
||||
else if (StartsWith(key, "auto"))
|
||||
{
|
||||
if (!primitive) primitive = NEW CardPrimitive();
|
||||
primitive->addMagicText(val, key + 4);
|
||||
primitive->addMagicText(val, key.substr(4));
|
||||
}
|
||||
else if (0 == strcmp("alias", key))
|
||||
else if (key == "alias")
|
||||
{
|
||||
if (!primitive) primitive = NEW CardPrimitive();
|
||||
primitive->alias = atoi(val);
|
||||
primitive->alias = atoi(val.c_str());
|
||||
}
|
||||
else if (0 == strcmp("abilities", key))
|
||||
else if (key == "abilities")
|
||||
{
|
||||
if (!primitive) primitive = NEW CardPrimitive();
|
||||
string value = val;
|
||||
@@ -152,12 +152,12 @@ int MTGAllCards::processConfLine(string &s, MTGCard *card, CardPrimitive * primi
|
||||
}
|
||||
|
||||
case 'g': //grade
|
||||
if (s.size() - i - 1 > 2) currentGrade = getGrade(val[2]);
|
||||
if (s.size() - del_pos - 1 > 2) currentGrade = getGrade(val[2]);
|
||||
break;
|
||||
|
||||
case 'i': //id
|
||||
if (!card) card = NEW MTGCard();
|
||||
card->setMTGId(atoi(val));
|
||||
card->setMTGId(atoi(val.c_str()));
|
||||
break;
|
||||
|
||||
case 'k': //kicker
|
||||
@@ -222,7 +222,7 @@ int MTGAllCards::processConfLine(string &s, MTGCard *card, CardPrimitive * primi
|
||||
break;
|
||||
|
||||
case 'p':
|
||||
if ('r' == key[1])
|
||||
if (key[1] == 'r')
|
||||
{ // primitive
|
||||
if (!card) card = NEW MTGCard();
|
||||
map<string, CardPrimitive*>::iterator it = primitives.find(val);
|
||||
@@ -231,18 +231,18 @@ int MTGAllCards::processConfLine(string &s, MTGCard *card, CardPrimitive * primi
|
||||
else
|
||||
{ //power
|
||||
if (!primitive) primitive = NEW CardPrimitive();
|
||||
primitive->setPower(atoi(val));
|
||||
primitive->setPower(atoi(val.c_str()));
|
||||
}
|
||||
break;
|
||||
|
||||
case 'r': //retrace/rarity//restrictions
|
||||
if('s' == key[2] && 't' == key[3])//restrictions
|
||||
if(key[2] == 's' && key[3] == 't')//restrictions
|
||||
{
|
||||
if (!primitive) primitive = NEW CardPrimitive();
|
||||
string value = val;
|
||||
primitive->setRestrictions(value);
|
||||
}
|
||||
else if ('e' == key[1] && 't' == key[2])
|
||||
else if (key[1] == 'e' && key[2] == 't')
|
||||
{ //retrace
|
||||
if (!primitive) primitive = NEW CardPrimitive();
|
||||
if (ManaCost * cost = primitive->getManaCost())
|
||||
@@ -279,7 +279,7 @@ int MTGAllCards::processConfLine(string &s, MTGCard *card, CardPrimitive * primi
|
||||
else
|
||||
{
|
||||
if (!primitive) primitive = NEW CardPrimitive();
|
||||
vector<string> values = split(val, ' ');
|
||||
vector<string> values = split(val.c_str(), ' ');
|
||||
for (size_t values_i = 0; values_i < values.size(); ++values_i)
|
||||
primitive->setSubtype(values[values_i]);
|
||||
}
|
||||
@@ -288,21 +288,21 @@ int MTGAllCards::processConfLine(string &s, MTGCard *card, CardPrimitive * primi
|
||||
|
||||
case 't':
|
||||
if (!primitive) primitive = NEW CardPrimitive();
|
||||
if (0 == strcmp("target", key))
|
||||
if (key == "target")
|
||||
{
|
||||
string value = val;
|
||||
std::transform(value.begin(), value.end(), value.begin(), ::tolower);
|
||||
primitive->spellTargetType = value;
|
||||
}
|
||||
else if (0 == strcmp("text", key))
|
||||
else if (key == "text")
|
||||
primitive->setText(val);
|
||||
else if (0 == strcmp("type", key))
|
||||
else if (key == "type")
|
||||
{
|
||||
vector<string> values = split(val, ' ');
|
||||
for (size_t values_i = 0; values_i < values.size(); ++values_i)
|
||||
primitive->setType(values[values_i]);
|
||||
}
|
||||
else if (0 == strcmp("toughness", key)) primitive->setToughness(atoi(val));
|
||||
else if (key == "toughness") primitive->setToughness(atoi(val.c_str()));
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -317,7 +317,7 @@ int MTGAllCards::processConfLine(string &s, MTGCard *card, CardPrimitive * primi
|
||||
tempPrimitive = primitive;
|
||||
tempCard = card;
|
||||
|
||||
return i;
|
||||
return del_pos;
|
||||
|
||||
}
|
||||
|
||||
@@ -381,10 +381,20 @@ void MTGAllCards::loadFolder(const string& infolder, const string& filename )
|
||||
}
|
||||
}
|
||||
|
||||
int MTGAllCards::load(const char * config_file, const char * set_name, int)
|
||||
int MTGAllCards::load(const string &config_file)
|
||||
{
|
||||
return load(config_file, MTGSets::INTERNAL_SET);
|
||||
}
|
||||
|
||||
int MTGAllCards::load(const string& config_file, const string &set_name)
|
||||
{
|
||||
const int set_id = setlist.Add(set_name);
|
||||
return load(config_file, set_id);
|
||||
}
|
||||
|
||||
int MTGAllCards::load(const string &config_file, int set_id)
|
||||
{
|
||||
conf_read_mode = 0;
|
||||
const int set_id = set_name ? setlist.Add(set_name) : MTGSets::INTERNAL_SET;
|
||||
MTGSetInfo *si = setlist.getInfo(set_id);
|
||||
|
||||
int lineNumber = 0;
|
||||
@@ -532,14 +542,16 @@ int MTGAllCards::countBySet(int setId)
|
||||
}
|
||||
|
||||
//TODO more efficient way ?
|
||||
int MTGAllCards::countByType(const char * _type)
|
||||
int MTGAllCards::countByType(const string &_type)
|
||||
{
|
||||
int type_id = findType(_type);
|
||||
|
||||
int result = 0;
|
||||
map<int, MTGCard *>::iterator it;
|
||||
for (it = collection.begin(); it != collection.end(); it++)
|
||||
{
|
||||
MTGCard * c = it->second;
|
||||
if (c->data->hasType(_type))
|
||||
if (c->data->hasType(type_id))
|
||||
{
|
||||
result++;
|
||||
}
|
||||
@@ -772,7 +784,7 @@ int MTGDeck::totalPrice()
|
||||
return total;
|
||||
}
|
||||
|
||||
MTGDeck::MTGDeck(const char * config_file, MTGAllCards * _allcards, int meta_only,int difficultyRating)
|
||||
MTGDeck::MTGDeck(const string& config_file, MTGAllCards * _allcards, int meta_only, int difficultyRating)
|
||||
{
|
||||
total_cards = 0;
|
||||
database = _allcards;
|
||||
@@ -879,7 +891,7 @@ MTGCard * MTGDeck::getCardById(int mtgId)
|
||||
return database->getCardById(mtgId);
|
||||
}
|
||||
|
||||
int MTGDeck::addRandomCards(int howmany, int * setIds, int nbSets, int rarity, const char * _subtype, int * colors, int nbcolors)
|
||||
int MTGDeck::addRandomCards(int howmany, int * setIds, int nbSets, int rarity, const string &_subtype, int * colors, int nbcolors)
|
||||
{
|
||||
if (howmany <= 0) return 1;
|
||||
|
||||
@@ -900,8 +912,8 @@ int MTGDeck::addRandomCards(int howmany, int * setIds, int nbSets, int rarity, c
|
||||
int collectionTotal = database->totalCards();
|
||||
if (!collectionTotal) return 0;
|
||||
|
||||
char subtype[4096];
|
||||
if (_subtype) sprintf(subtype, "%s", _subtype);
|
||||
string subtype;
|
||||
if (_subtype.size()) subtype = _subtype;
|
||||
|
||||
vector<int> subcollection;
|
||||
int subtotal = 0;
|
||||
@@ -911,7 +923,7 @@ int MTGDeck::addRandomCards(int howmany, int * setIds, int nbSets, int rarity, c
|
||||
int r = card->getRarity();
|
||||
if (r != Constants::RARITY_T && (rarity == -1 || r == rarity) && // remove tokens
|
||||
card->setId != MTGSets::INTERNAL_SET && //remove cards that are defined in primitives. Those are workarounds (usually tokens) and should only be used internally
|
||||
(!_subtype || card->data->hasSubtype(subtype)))
|
||||
(!_subtype.size() || card->data->hasSubtype(subtype)))
|
||||
{
|
||||
int ok = 0;
|
||||
|
||||
@@ -1265,7 +1277,7 @@ MTGSetInfo* MTGSets::randomSet(int blockId, int atleast)
|
||||
|
||||
int blockSize(int blockId);
|
||||
|
||||
int MTGSets::Add(const char * name)
|
||||
int MTGSets::Add(const string& name)
|
||||
{
|
||||
int setid = findSet(name);
|
||||
if (setid != -1) return setid;
|
||||
@@ -1344,7 +1356,7 @@ MTGSetInfo::~MTGSetInfo()
|
||||
SAFE_DELETE(mPack);
|
||||
}
|
||||
|
||||
MTGSetInfo::MTGSetInfo(string _id)
|
||||
MTGSetInfo::MTGSetInfo(const string& _id)
|
||||
{
|
||||
string whitespaces(" \t\f\v\n\r");
|
||||
id = _id;
|
||||
|
||||
@@ -162,7 +162,7 @@ int Constants::GetColorStringIndex(string mtgColor)
|
||||
return -1;
|
||||
}
|
||||
|
||||
const char* Constants::MTGPhaseNames[] =
|
||||
const string Constants::MTGPhaseNames[] =
|
||||
{
|
||||
"---",
|
||||
"Untap",
|
||||
|
||||
@@ -529,7 +529,7 @@ size_t MTGGameZone::getIndex(MTGCardInstance * card)
|
||||
}
|
||||
|
||||
|
||||
unsigned int MTGGameZone::countByType(const char * value)
|
||||
unsigned int MTGGameZone::countByType(const string &value)
|
||||
{
|
||||
int result = 0;
|
||||
int subTypeId = MTGAllCards::findType(value);
|
||||
@@ -539,7 +539,7 @@ unsigned int MTGGameZone::countByType(const char * value)
|
||||
{
|
||||
result++;
|
||||
}
|
||||
else if(strcmp(value, "token") == 0 && cards[i]->isToken)
|
||||
else if(value == "token" && cards[i]->isToken)
|
||||
result++;
|
||||
}
|
||||
return result;
|
||||
|
||||
@@ -293,7 +293,7 @@ void MTGPacks::loadAll()
|
||||
sprintf(myFilename, "packs/%s",relative.c_str());
|
||||
if (relative[0] == '.')
|
||||
continue;
|
||||
if (!strcmp(relative.c_str(), "default_booster.txt"))
|
||||
if (relative == "default_booster.txt")
|
||||
continue;
|
||||
MTGPack * p = NEW MTGPack(myFilename);
|
||||
if (!p->isValid())
|
||||
|
||||
@@ -997,9 +997,9 @@ int MTGSuspendRule::reactToClick(MTGCardInstance * card)
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * MTGSuspendRule::getMenuText()
|
||||
const string MTGSuspendRule::getMenuText()
|
||||
{
|
||||
return suspendmenu.c_str();
|
||||
return suspendmenu;
|
||||
}
|
||||
|
||||
ostream& MTGSuspendRule::toString(ostream& out) const
|
||||
@@ -1333,9 +1333,9 @@ int AAPlaneswalkerAttacked::resolve()
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char* AAPlaneswalkerAttacked::getMenuText()
|
||||
const string AAPlaneswalkerAttacked::getMenuText()
|
||||
{
|
||||
return menuText.c_str();
|
||||
return menuText;
|
||||
}
|
||||
|
||||
AAPlaneswalkerAttacked * AAPlaneswalkerAttacked::clone() const
|
||||
@@ -1597,9 +1597,9 @@ int MTGBlockRule::reactToClick(MTGCardInstance * card)
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char * MTGBlockRule::getMenuText()
|
||||
const string MTGBlockRule::getMenuText()
|
||||
{
|
||||
return blockmenu.c_str();
|
||||
return blockmenu;
|
||||
}
|
||||
|
||||
ostream& MTGBlockRule::toString(ostream& out) const
|
||||
|
||||
@@ -25,23 +25,23 @@ bool ModRules::load(string filename)
|
||||
TiXmlElement* element = node->ToElement();
|
||||
if (element != NULL)
|
||||
{
|
||||
if (strcmp(element->Value(), "menu") == 0)
|
||||
if (element->ValueStr() == "menu")
|
||||
{
|
||||
menu.parse(element);
|
||||
}
|
||||
else if (strcmp(element->Value(), "general") == 0)
|
||||
else if (element->ValueStr() == "general")
|
||||
{
|
||||
general.parse(element);
|
||||
}
|
||||
else if (strcmp(element->Value(), "cards") == 0)
|
||||
else if (element->ValueStr() == "cards")
|
||||
{
|
||||
cards.parse(element);
|
||||
}
|
||||
else if (strcmp(element->Value(), "game") == 0)
|
||||
else if (element->ValueStr() == "game")
|
||||
{
|
||||
game.parse(element);
|
||||
}
|
||||
else if (strcmp(element->Value(), "cardgui") == 0)
|
||||
else if (element->ValueStr() == "cardgui")
|
||||
{
|
||||
cardgui.parse(element);
|
||||
}
|
||||
|
||||
@@ -142,9 +142,10 @@ bool PhaseRing::extraDamagePhase(int id)
|
||||
return false;
|
||||
}
|
||||
|
||||
const char * PhaseRing::phaseName(int id)
|
||||
const string& PhaseRing::phaseName(int id)
|
||||
{
|
||||
if (extraDamagePhase(id)) return "Combat Damage (2)";
|
||||
static const string combatPhase2("Combat Damage (2)");
|
||||
if (extraDamagePhase(id)) return combatPhase2;
|
||||
return Constants::MTGPhaseNames[id];
|
||||
}
|
||||
|
||||
|
||||
@@ -328,7 +328,7 @@ void SimpleMenu::Update(float dt)
|
||||
}
|
||||
}
|
||||
|
||||
void SimpleMenu::Add(int id, const char * text, string desc, bool forceFocus)
|
||||
void SimpleMenu::Add(int id, const string& text, string desc, bool forceFocus)
|
||||
{
|
||||
SimpleMenuItem * smi = NEW SimpleMenuItem(this, id, fontId, text, 0, mY + SimpleMenuConst::kVerticalMargin + mCount * SimpleMenuConst::kLineHeight,
|
||||
(mCount == 0), autoTranslate);
|
||||
|
||||
@@ -333,15 +333,15 @@ StoryDuel::StoryDuel(TiXmlElement* root, StoryFlow * mParent) :
|
||||
if (element)
|
||||
{
|
||||
const char* textC = element->GetText();
|
||||
if (strcmp(element->Value(), "onwin") == 0)
|
||||
if (element->ValueStr() == "onwin")
|
||||
{
|
||||
onWin = textC;
|
||||
}
|
||||
else if (strcmp(element->Value(), "onlose") == 0)
|
||||
else if (element->ValueStr() == "onlose")
|
||||
{
|
||||
onLose = textC;
|
||||
}
|
||||
else if (strcmp(element->Value(), "bg") == 0)
|
||||
else if (element->ValueStr() == "bg")
|
||||
{
|
||||
string text = textC;
|
||||
bg = string("campaigns/").append(mParent->folder).append("/").append(text);
|
||||
@@ -396,10 +396,10 @@ int StoryPage::loadElement(TiXmlElement* element)
|
||||
if (!element) return 0;
|
||||
const char* textC = element->GetText();
|
||||
string text = textC;
|
||||
if (strcmp(element->Value(), "music") == 0)
|
||||
if (element->ValueStr() == "music")
|
||||
{
|
||||
musicFile = string("campaigns/").append(mParent->folder).append("/").append(text);
|
||||
if (!fileExists(musicFile.c_str())) musicFile = text;
|
||||
if (!FileExists(musicFile)) musicFile = text;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
@@ -434,15 +434,15 @@ StoryDialog::StoryDialog(TiXmlElement* root, StoryFlow * mParent) :
|
||||
string sFont = safeAttribute(element, "font");
|
||||
int font = atoi(sFont.c_str());
|
||||
|
||||
if (strcmp(element->Value(), "text") == 0)
|
||||
if (element->ValueStr() == "text")
|
||||
{
|
||||
graphics.push_back(NEW StoryText(text, x, y, align, font));
|
||||
}
|
||||
else if (strcmp(element->Value(), "title") == 0)
|
||||
else if (element->ValueStr() == "title")
|
||||
{
|
||||
graphics.push_back(NEW StoryText(text, x, y, "center", Fonts::MENU_FONT));
|
||||
}
|
||||
else if (strcmp(element->Value(), "img") == 0)
|
||||
else if (element->ValueStr() == "img")
|
||||
{
|
||||
//special case to force center
|
||||
if (sX.compare("") == 0)
|
||||
@@ -452,7 +452,7 @@ StoryDialog::StoryDialog(TiXmlElement* root, StoryFlow * mParent) :
|
||||
string img = string("campaigns/").append(mParent->folder).append("/").append(text);
|
||||
graphics.push_back(NEW StoryImage(img, x, y));
|
||||
}
|
||||
else if (strcmp(element->Value(), "answer") == 0)
|
||||
else if (element->ValueStr() == "answer")
|
||||
{
|
||||
string id = element->Attribute("goto");
|
||||
if (!align.size()) align = "center";
|
||||
@@ -461,7 +461,7 @@ StoryDialog::StoryDialog(TiXmlElement* root, StoryFlow * mParent) :
|
||||
graphics.push_back(sc);
|
||||
Add(sc);
|
||||
}
|
||||
else if (strcmp(element->Value(), "reward") == 0)
|
||||
else if (element->ValueStr() == "reward")
|
||||
{
|
||||
string type = safeAttribute(element, "type");
|
||||
string value = safeAttribute(element, "value");
|
||||
@@ -553,7 +553,7 @@ StoryPage * StoryFlow::loadPage(TiXmlElement* element)
|
||||
if (!typeNode) return NULL;
|
||||
StoryPage * result = NULL;
|
||||
const char* type = typeNode->ToElement()->GetText();
|
||||
if (strcmp(type, "duel") == 0)
|
||||
if (string("duel") == type)
|
||||
{
|
||||
result = NEW StoryDuel(element, this);
|
||||
}
|
||||
@@ -615,7 +615,7 @@ bool StoryFlow::parse(string path)
|
||||
TiXmlElement* element = node->ToElement();
|
||||
if (element != NULL)
|
||||
{
|
||||
if (strcmp(element->Value(), "page") == 0)
|
||||
if (element->ValueStr() == "page")
|
||||
{
|
||||
string id = element->Attribute("id");
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ void StyleManager::killRules()
|
||||
styles.clear();
|
||||
}
|
||||
|
||||
StyleManager::StyleManager()
|
||||
StyleManager::StyleManager(): topRule(0), topSize(0), playerSrc(0)
|
||||
{
|
||||
loadRules();
|
||||
}
|
||||
|
||||
@@ -350,8 +350,8 @@ void TestSuiteGame::assertGame()
|
||||
if (observer->getCurrentGamePhase() != endState.phase)
|
||||
{
|
||||
sprintf(result, "<span class=\"error\">==phase problem. Expected [ %s ](%i), got [ %s ](%i)==</span><br />",
|
||||
Constants::MTGPhaseNames[endState.phase],endState.phase,
|
||||
Constants::MTGPhaseNames[observer->getCurrentGamePhase()], observer->getCurrentGamePhase());
|
||||
Constants::MTGPhaseNames[endState.phase].c_str(),endState.phase,
|
||||
Constants::MTGPhaseNames[observer->getCurrentGamePhase()].c_str(), observer->getCurrentGamePhase());
|
||||
Log(result);
|
||||
error++;
|
||||
}
|
||||
|
||||
@@ -399,3 +399,13 @@ void ReplaceString(std::string& subject, const std::string& search, const std::s
|
||||
}
|
||||
}
|
||||
|
||||
bool StartsWith(const std::string& base, const char *start)
|
||||
{
|
||||
return base.compare(0, strlen(start), start) == 0;
|
||||
}
|
||||
|
||||
bool StartsWith(const std::string& base, const std::string& start)
|
||||
{
|
||||
return base.compare(0, start.length(), start) == 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user