WSrcCards * MTGPack::getPool(string poolstr) { WSrcCards * mySrc = NULL; size_t s = poolstr.find("all"); WCFilterFactory * ff = WCFilterFactory::GetInstance(); if (s == string::npos) { //Default to just unlocked cards mySrc = NEW WSrcUnlockedCards(); s = poolstr.find("unlocked"); string sub = poolstr; if (s != string::npos) sub = trim(poolstr.substr(s + 8)); if (sub.size()) { mySrc->addFilter(ff->Construct(sub)); mySrc->bakeFilters(); } } else { //Use everything. mySrc = NEW WSrcCards(); string sub = poolstr.substr(s + 3); if (sub.size()) { mySrc->addFilter(ff->Construct(sub)); mySrc->loadMatches(MTGCollection()); mySrc->bakeFilters(); } else mySrc->loadMatches(MTGCollection()); } mySrc->Shuffle(); return mySrc; }
bool GameStateAwards::enterSet(int setid) { MTGSetInfo * si = setlist.getInfo(setid); map<int, MTGCard *>::iterator it; if (!si) return false; SAFE_DELETE(detailview); SAFE_DELETE(setSrc); setSrc = NEW WSrcCards(); setSrc->addFilter(NEW WCFilterSet(setid)); setSrc->loadMatches(MTGCollection()); setSrc->bakeFilters(); setSrc->Sort(WSrcCards::SORT_COLLECTOR); detailview = NEW WGuiMenu(JGE_BTN_DOWN, JGE_BTN_UP); WGuiList * spoiler = NEW WGuiList("Spoiler", setSrc); spoiler->setX(210); spoiler->setWidth(SCREEN_WIDTH - 220); for (int t = 0; t < setSrc->Size(); t++) { MTGCard * c = setSrc->getCard(t); if (c) spoiler->Add(NEW WGuiItem(c->data->name)); } setSrc->setOffset(0); spoiler->Entering(JGE_BTN_NONE); WGuiCardImage * wi = NEW WGuiCardImage(setSrc); wi->setX(105); wi->setY(137); detailview->Add(wi); detailview->Add(spoiler); detailview->Entering(JGE_BTN_NONE); return true; }