Jeck - Fix for issue 320, also fix for countByName.
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user