Jeck - More deck editor fixes, linked in prior coded subtype filter.

This commit is contained in:
wagic.jeck
2010-02-19 21:54:39 +00:00
parent afffd4509f
commit 25e6906149
8 changed files with 39 additions and 29 deletions

View File

@@ -67,6 +67,14 @@ void GameStateDeckViewer::rotateCards(int direction){
displayed_deck->prev();
loadIndexes();
}
void GameStateDeckViewer::rebuildFilters(){
SAFE_DELETE(filterDeck);
SAFE_DELETE(filterCollection);
filterCollection = NEW WGuiFilters("Filter by...",myCollection);
filterDeck = NEW WGuiFilters("Filter by...",myDeck);
filterDeck->Finish(true);
filterCollection->Finish(true);
}
void GameStateDeckViewer::updateFilters(){
if(!displayed_deck) return;
// displayed_deck->clearFilters();
@@ -130,8 +138,6 @@ void GameStateDeckViewer::Start()
myCollection = NEW DeckDataWrapper(playerdata->collection);
myCollection->Sort(WSrcCards::SORT_ALPHA);
displayed_deck = myCollection;
filterCollection = NEW WGuiFilters("Filter by...",myCollection);
filterCollection->Finish(true);
//Build menu.
menu = NEW SimpleMenu(11,this,Constants::MENU_FONT,SCREEN_WIDTH/2-150,20);
menu->Add(22,"Filter by...");
@@ -141,7 +147,6 @@ void GameStateDeckViewer::Start()
menu->Add(0,"Save & Back to Main Menu");
menu->Add(4,"Cancel");
//Icons
mIcons[Constants::MTG_COLOR_ARTIFACT] = resources.GetQuad("c_artifact");
mIcons[Constants::MTG_COLOR_LAND] = resources.GetQuad("c_land");
@@ -327,12 +332,10 @@ void GameStateDeckViewer::Update(float dt)
case JGE_BTN_CTRL :
mStage = STAGE_FILTERS;
if (displayed_deck == myDeck) {
if (!filterDeck)
filterDeck = NEW WGuiFilters("Filter by...",myDeck);
if (!filterDeck) rebuildFilters();
filterDeck->Entering(JGE_BTN_NONE);
} else if(displayed_deck == myCollection) {
if (!filterCollection)
filterCollection = NEW WGuiFilters("Filter by...",myCollection);
if (!filterCollection) rebuildFilters();
filterCollection->Entering(JGE_BTN_NONE);
}
break;
@@ -1401,10 +1404,7 @@ int GameStateDeckViewer::loadDeck(int deckid){
SAFE_DELETE(myDeck);
}
myDeck = NEW DeckDataWrapper(NEW MTGDeck(options.profileFile(deckname,"",false,false).c_str(), mParent->collection));
if(filterDeck) SAFE_DELETE(filterDeck);
filterDeck = NEW WGuiFilters("Filter by...",myDeck);
filterDeck->Finish(true);
// Check whether the cards in the deck are actually available in the player's collection:
int cheatmode = options[Options::CHEATMODE].number;
for(int i=0;i<myDeck->Size();i++){
@@ -1470,6 +1470,7 @@ int GameStateDeckViewer::loadDeck(int deckid){
}
myDeck->Sort(WSrcCards::SORT_ALPHA);
rebuildFilters();
loadIndexes();
return 1;
}
@@ -1538,12 +1539,10 @@ void GameStateDeckViewer::ButtonPressed(int controllerId, int controlId)
case 22:
mStage = STAGE_FILTERS;
if(displayed_deck == myDeck){
if(!filterDeck)
filterDeck = NEW WGuiFilters("Filter by...",myDeck);
if(!filterDeck) rebuildFilters();
filterDeck->Entering(JGE_BTN_NONE);
}else if(displayed_deck == myCollection){
if(!filterCollection)
filterCollection = NEW WGuiFilters("Filter by...",myCollection);
if(!filterCollection) rebuildFilters();
filterCollection->Entering(JGE_BTN_NONE);
}
break;