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;
PlayerData * playerdata;
bool mTouched;
bool needLoad;
int mPrices[SHOP_ITEMS];
int mCounts[SHOP_ITEMS];
int mInventory[SHOP_ITEMS];

View File

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

View File

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

View File

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