Jeck - More deck editor fixes, quick hack to subtypes filter. I've noticed some slowdown while scrolling up/down in the deck editor, I think this is due to some recent changes that removed a few of the filter system's optimizations. I'll re-implement them tonight.
This commit is contained in:
@@ -428,6 +428,7 @@ public:
|
||||
bool isFinished() {return bFinished;};
|
||||
void ButtonPressed(int controllerId, int controlId);
|
||||
void buildList();
|
||||
void setSrc(WSrcCards * wsc);
|
||||
protected:
|
||||
void clearArgs();
|
||||
void addArg(string display, string code);
|
||||
|
||||
@@ -67,11 +67,10 @@ void GameStateDeckViewer::rotateCards(int direction){
|
||||
loadIndexes();
|
||||
}
|
||||
void GameStateDeckViewer::rebuildFilters(){
|
||||
SAFE_DELETE(filterMenu);
|
||||
SAFE_DELETE(source);
|
||||
if(!filterMenu) filterMenu = NEW WGuiFilters("Filter by...",NULL);
|
||||
source = NEW WSrcDeckViewer(myDeck,myCollection);
|
||||
filterMenu->setSrc(source);
|
||||
if(displayed_deck != myDeck) source->swapSrc();
|
||||
filterMenu = NEW WGuiFilters("Filter by...",source);
|
||||
filterMenu->Finish(true);
|
||||
}
|
||||
void GameStateDeckViewer::updateFilters(){
|
||||
@@ -323,7 +322,12 @@ void GameStateDeckViewer::Update(float dt)
|
||||
break;
|
||||
case JGE_BTN_CTRL :
|
||||
mStage = STAGE_FILTERS;
|
||||
rebuildFilters();
|
||||
if(!filterMenu){
|
||||
filterMenu = NEW WGuiFilters("Filter by...",NULL);
|
||||
source = NEW WSrcDeckViewer(myDeck,myCollection);
|
||||
filterMenu->setSrc(source);
|
||||
if(displayed_deck != myDeck) source->swapSrc();
|
||||
}
|
||||
filterMenu->Entering(JGE_BTN_NONE);
|
||||
break;
|
||||
case JGE_BTN_PREV :
|
||||
@@ -407,7 +411,7 @@ void GameStateDeckViewer::Update(float dt)
|
||||
JButton key = mEngine->ReadButton();
|
||||
if (filterMenu) {
|
||||
if (key == JGE_BTN_CTRL) {
|
||||
useFilter = 0;
|
||||
//useFilter = 0;
|
||||
filterMenu->Finish(true);
|
||||
filterMenu->Update(dt);
|
||||
loadIndexes();
|
||||
@@ -1431,6 +1435,7 @@ int GameStateDeckViewer::loadDeck(int deckid){
|
||||
}
|
||||
|
||||
myDeck->Sort(WSrcCards::SORT_ALPHA);
|
||||
SAFE_DELETE(filterMenu);
|
||||
rebuildFilters();
|
||||
loadIndexes();
|
||||
return 1;
|
||||
|
||||
@@ -1413,6 +1413,10 @@ string WGuiFilters::getCode(){
|
||||
}
|
||||
return res;
|
||||
}
|
||||
void WGuiFilters::setSrc(WSrcCards * wsc){
|
||||
SAFE_DELETE(source);
|
||||
source = wsc;
|
||||
}
|
||||
void WGuiFilters::Update(float dt){
|
||||
if(subMenu && !subMenu->closed)
|
||||
subMenu->Update(dt);
|
||||
@@ -1623,9 +1627,16 @@ void WGuiFilterItem::updateValue(){
|
||||
mParent->addArg("Legendary","t:Legendary;");
|
||||
mParent->addArg("Sorcery","t:Sorcery;");
|
||||
}else if(filterType == FILTER_SUBTYPE){
|
||||
vector<string> stlist;
|
||||
for(int i=Subtypes::LAST_TYPE+1;;i++){
|
||||
string s = Subtypes::subtypesList->find(i);
|
||||
if(s == "") break;
|
||||
if(s.find(" ") != string::npos) continue;
|
||||
stlist.push_back(s);
|
||||
}
|
||||
std::sort(stlist.begin(),stlist.end());
|
||||
for(size_t t=0;t<stlist.size();t++){
|
||||
string s=stlist[t];
|
||||
char buf[1024]; sprintf(buf,"t:%s;",s.c_str());
|
||||
mParent->addArg(s,buf);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user