예제 #1
0
파일: MTGPack.cpp 프로젝트: Esplin/wagic
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;
}
예제 #2
0
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;
}