Jeck - fix to issue 318.

This commit is contained in:
wagic.jeck
2010-02-10 15:48:38 +00:00
parent 4189c238b9
commit cf03d4cc64
4 changed files with 17 additions and 7 deletions

View File

@@ -59,6 +59,7 @@ class GameStateShop: public GameState, public JGuiListener
PriceList * pricelist; PriceList * pricelist;
PlayerData * playerdata; PlayerData * playerdata;
bool mTouched; bool mTouched;
bool needLoad;
int mPrices[SHOP_ITEMS]; int mPrices[SHOP_ITEMS];
int mCounts[SHOP_ITEMS]; int mCounts[SHOP_ITEMS];
int mInventory[SHOP_ITEMS]; int mInventory[SHOP_ITEMS];

View File

@@ -423,7 +423,7 @@ public:
void addColumn(); void addColumn();
bool isAvailable(int type); bool isAvailable(int type);
bool isAvailableCode(string code); bool isAvailableCode(string code);
void Finish(); bool Finish(); //Returns true if card set reasonably expected to be changed.
bool isFinished() {return bFinished;}; bool isFinished() {return bFinished;};
void ButtonPressed(int controllerId, int controlId); void ButtonPressed(int controllerId, int controlId);
void buildList(); void buildList();
@@ -432,6 +432,7 @@ protected:
void addArg(string display, string code); void addArg(string display, string code);
vector< pair<string,string> > tempArgs; //TODO FIXME this is inefficient vector< pair<string,string> > tempArgs; //TODO FIXME this is inefficient
bool bFinished; bool bFinished;
string priorFilter;
WSrcCards* source; WSrcCards* source;
SimpleMenu* subMenu; SimpleMenu* subMenu;
WGuiList * list; WGuiList * list;

View File

@@ -63,6 +63,7 @@ void GameStateShop::Start(){
mTouched = false; mTouched = false;
mStage = STAGE_FADE_IN; mStage = STAGE_FADE_IN;
mElapsed = 0; mElapsed = 0;
needLoad = true;
booster = NULL; booster = NULL;
srcCards = NEW WSrcUnlockedCards(0); srcCards = NEW WSrcUnlockedCards(0);
srcCards->setElapsed(15); srcCards->setElapsed(15);
@@ -467,12 +468,13 @@ void GameStateShop::Update(float dt)
} }
if(filterMenu){ if(filterMenu){
if(btn == PSP_CTRL_SELECT){ if(btn == PSP_CTRL_SELECT){
filterMenu->Finish(); needLoad = filterMenu->Finish();
filterMenu->Update(dt); filterMenu->Update(dt);
return; return;
} }
if(filterMenu->isFinished()){ if(filterMenu->isFinished()){
load(); if(needLoad)
load();
mStage = STAGE_SHOP_SHOP; mStage = STAGE_SHOP_SHOP;
}else{ }else{
filterMenu->CheckUserInput(btn); filterMenu->CheckUserInput(btn);

View File

@@ -1299,18 +1299,24 @@ WGuiListRow::WGuiListRow(string n, WSyncable * s) : WGuiList(n,s) {
height = 20; height = 20;
} }
//WGuiFilterUI //WGuiFilterUI
void WGuiFilters::Finish(){ bool WGuiFilters::Finish(){
bFinished = true; bFinished = true;
string src;
if(source){ if(source){
string src = getCode(); src = getCode();
if(priorFilter == src)
return false;
source->clearFilters(); source->clearFilters();
if(src.size()){ if(src.size()){
WCFilterFactory * wc = WCFilterFactory::GetInstance(); WCFilterFactory * wc = WCFilterFactory::GetInstance();
source->addFilter(wc->Construct(src)); source->addFilter(wc->Construct(src));
} }
if(!source->Size()) if(!source->Size()){
source->clearFilters(); //TODO: Pop a "No results found" warning. source->clearFilters(); //TODO: Pop a "No results found" warning
}
} }
priorFilter = src;
return true;
} }
void WGuiFilters::ButtonPressed(int controllerId, int controlId){ void WGuiFilters::ButtonPressed(int controllerId, int controlId){
if(controllerId == -102){ if(controllerId == -102){