Jeck - Fix for issue 320, also fix for countByName.

This commit is contained in:
wagic.jeck
2010-02-10 14:46:10 +00:00
parent 9806edc6d0
commit e59aca67b7
4 changed files with 22 additions and 10 deletions
+1 -1
View File
@@ -73,7 +73,7 @@ class GameStateShop: public GameState, public JGuiListener
void load(); void load();
void save(bool force=false); void save(bool force=false);
void updateCounts();
void assembleBooster(int controlId); void assembleBooster(int controlId);
void beginPurchase(int controlId); void beginPurchase(int controlId);
void purchaseCard(int controlId); void purchaseCard(int controlId);
+1 -1
View File
@@ -327,7 +327,7 @@ void GameStateDeckViewer::Update(float dt)
{ {
MTGCard * card = cardIndex[2]; MTGCard * card = cardIndex[2];
if (card && displayed_deck->count(card)){ if (card && displayed_deck->count(card)){
int price = pricelist->getSellPrice(card->getMTGId()); price = pricelist->getSellPrice(card->getMTGId());
sprintf(buffer,"%s : %i %s",_(card->data->getName()).c_str(),price,_("credits").c_str()); sprintf(buffer,"%s : %i %s",_(card->data->getName()).c_str(),price,_("credits").c_str());
sellMenu = NEW SimpleMenu(2,this,Constants::MAIN_FONT,SCREEN_WIDTH-300,SCREEN_HEIGHT/2,buffer); sellMenu = NEW SimpleMenu(2,this,Constants::MAIN_FONT,SCREEN_WIDTH-300,SCREEN_HEIGHT/2,buffer);
sellMenu->Add(20,"Yes"); sellMenu->Add(20,"Yes");
+13 -3
View File
@@ -145,9 +145,13 @@ string GameStateShop::descPurchase(int controlId, bool tiny){
return buffer; return buffer;
} }
if(tiny) if(tiny){
if(controlId < BOOSTER_SLOTS)
return name; return name;
sprintf(buffer,_("%s (%i)").c_str(),name.c_str(),mCounts[controlId]);
return buffer;
}
if(mCounts[controlId] < 1) if(mCounts[controlId] < 1)
sprintf(buffer,_("%s : %i credits").c_str(),name.c_str(),mPrices[controlId]); sprintf(buffer,_("%s : %i credits").c_str(),name.c_str(),mPrices[controlId]);
else else
@@ -224,8 +228,8 @@ void GameStateShop::purchaseCard(int controlId){
return; return;
myCollection->Add(c); myCollection->Add(c);
playerdata->credits -= mPrices[controlId]; playerdata->credits -= mPrices[controlId];
mCounts[controlId]++;
mInventory[controlId]--; mInventory[controlId]--;
updateCounts();
mTouched = true; mTouched = true;
menu->Close(); menu->Close();
} }
@@ -291,7 +295,13 @@ int GameStateShop::purchasePrice(int offset){
} }
return (int) price + price * (filteradd*srcCards->filterFee()); return (int) price + price * (filteradd*srcCards->filterFee());
} }
void GameStateShop::updateCounts(){
for(int i=BOOSTER_SLOTS;i<SHOP_ITEMS;i++){
MTGCard * c = srcCards->getCard(i-BOOSTER_SLOTS);
if(!c) mCounts[i] = 0;
else mCounts[i] = myCollection->countByName(c);
}
}
void GameStateShop::load(){ void GameStateShop::load(){
int nbsets = 0; int nbsets = 0;
int nbboostersets = 0; int nbboostersets = 0;
+6 -4
View File
@@ -53,7 +53,6 @@ JQuad * WSrcCards::getImage( int offset){
return resources.RetrieveCard(getCard(offset),RETRIEVE_EXISTING); return resources.RetrieveCard(getCard(offset),RETRIEVE_EXISTING);
} }
#endif #endif
return resources.RetrieveCard(getCard(offset)); return resources.RetrieveCard(getCard(offset));
} }
JQuad * WSrcCards::getThumb( int offset){ JQuad * WSrcCards::getThumb( int offset){
@@ -397,11 +396,14 @@ int WSrcDeck::countByName(MTGCard * card, bool editions){
int total = 0; int total = 0;
vector<MTGCard*>::iterator it; vector<MTGCard*>::iterator it;
for(it = cards.begin();it!=cards.end();it++){ for(it = cards.begin();it!=cards.end();it++){
if(*it && (*it)->data->getLCName() == card->data->getLCName()){ if(*it && (*it)->data->getLCName() == name){
if(editions) if(editions)
total++; total++;
else else{
total += copies[card->getMTGId()]; map<int,int>::iterator mi = copies.find((*it)->getMTGId());
if(mi != copies.end())
total += mi->second;
}
} }
} }
return total; return total;