From e7bb2caf29bdd031b65551cfd52e533f83570548 Mon Sep 17 00:00:00 2001 From: "wagic.the.homebrew@gmail.com" Date: Sat, 13 Mar 2010 09:34:20 +0000 Subject: [PATCH] Erwan - Fix issue 291 (cantbeblockedby segfault) - Fix some issues with pricing --- projects/mtg/include/AllAbilities.h | 2 ++ projects/mtg/include/GameStateDeckViewer.h | 1 + projects/mtg/src/GameStateDeckViewer.cpp | 14 +++++++++----- projects/mtg/src/PriceList.cpp | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index 3523532ae..6e79aff68 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -1212,6 +1212,7 @@ class AProtectionFrom: public MTGAbility{ AProtectionFrom * clone() const{ AProtectionFrom * a = NEW AProtectionFrom(*this); + a->fromTc = fromTc->clone(); a->isClone = 1; return a; } @@ -1244,6 +1245,7 @@ class ACantBeBlockedBy: public MTGAbility{ ACantBeBlockedBy * clone() const{ ACantBeBlockedBy * a = NEW ACantBeBlockedBy(*this); + a->fromTc = fromTc->clone(); a->isClone = 1; return a; } diff --git a/projects/mtg/include/GameStateDeckViewer.h b/projects/mtg/include/GameStateDeckViewer.h index 6977dba03..42dbb5aa7 100644 --- a/projects/mtg/include/GameStateDeckViewer.h +++ b/projects/mtg/include/GameStateDeckViewer.h @@ -126,6 +126,7 @@ private: string newDeckname; StatsWrapper stw; bool mSwitching; + void saveDeck(); //Saves the deck and additional necessary information public: GameStateDeckViewer(GameApp* parent); diff --git a/projects/mtg/src/GameStateDeckViewer.cpp b/projects/mtg/src/GameStateDeckViewer.cpp index bd244fa68..85992153c 100644 --- a/projects/mtg/src/GameStateDeckViewer.cpp +++ b/projects/mtg/src/GameStateDeckViewer.cpp @@ -227,6 +227,12 @@ void GameStateDeckViewer::addRemove(MTGCard * card){ loadIndexes(); } +void GameStateDeckViewer::saveDeck(){ + myDeck->save(); + playerdata->save(); + pricelist->save(); +} + void GameStateDeckViewer::Update(float dt) { @@ -241,7 +247,7 @@ void GameStateDeckViewer::Update(float dt) if(newDeckname != ""){ if(myDeck && myDeck->parent){ myDeck->parent->meta_name = newDeckname; - myDeck->save(); + saveDeck(); } mStage = STAGE_WAITING; } @@ -1469,9 +1475,7 @@ void GameStateDeckViewer::ButtonPressed(int controllerId, int controlId) { case 0: - myDeck->save(); - playerdata->save(); - pricelist->save(); + saveDeck(); mParent->DoTransition(TRANSITION_FADE,GAME_STATE_MENU); break; case 1: @@ -1507,7 +1511,7 @@ void GameStateDeckViewer::ButtonPressed(int controllerId, int controlId) int rnd = (rand() % 25); playerdata->credits += price; price = price - (rnd * price)/100; - pricelist->setPrice(card->getMTGId(),price*2); + pricelist->setPrice(card->getMTGId(),price); playerdata->collection->remove(card->getMTGId()); displayed_deck->Remove(card,1); displayed_deck->validate(); diff --git a/projects/mtg/src/PriceList.cpp b/projects/mtg/src/PriceList.cpp index ed968fd31..dd59b5e78 100644 --- a/projects/mtg/src/PriceList.cpp +++ b/projects/mtg/src/PriceList.cpp @@ -74,7 +74,7 @@ int PriceList::setPrice(int cardId, int price){ return price; } int PriceList::getSellPrice(int cardid){ - return getPurchasePrice(cardid) / 2; + return getPrice(cardid); } float PriceList::difficultyScalar(float price, int cardid){ float badluck = (float)(abs(cardid + randomKey) % 201) / 100; //Float between 0 and 2.