예제 #1
0
파일: test.cpp 프로젝트: doniexun/OrangeC
ObjFile *MakeData(ObjFactory &factory)
{
    ObjFile *rv = factory.MakeFile("test.dat");
    std::time_t x = std::time(0);
    rv->SetFileTime(*std::localtime(&x));
    ObjSourceFile *sf = factory.MakeSourceFile("test.dat");
    rv->Add(sf);
    ObjSourceFile *sf1 = factory.MakeSourceFile("q.dat");
    rv->Add(sf1);
    ObjSection *sect = factory.MakeSection("code");
    codeSection = sect;
    rv->Add(sect);
    ObjSymbol *s1 = factory.MakePublicSymbol("public");
    rv->Add(s1);
    ObjSymbol *s1a = factory.MakePublicSymbol("2public");
    s1a->SetBaseType(BuildType(*rv, factory));
    rv->Add(s1a);
    ObjSymbol *s2 = factory.MakeLocalSymbol("local");
    s2->SetBaseType(factory.MakeType(ObjType::eInt));
    rv->Add(s2);
    ObjSymbol *s3 = factory.MakeAutoSymbol("auto");
    s3->SetOffset(factory.MakeExpression(-8));
    rv->Add(s3);
    ObjSymbol *s4 = factory.MakeExternalSymbol("extern");
    rv->Add(s4);
    ObjMemory *mem = factory.MakeData((ObjByte *)"\x44\x22\x33\x11", 4);
    ObjLineNo *l = factory.MakeLineNo(sf, 3);
    mem->Add(factory.MakeDebugTag(l));
    sect->Add(mem);
    mem = factory.MakeData((ObjByte *)"\xaa\xbb\x33", 3);
    mem->Add(factory.MakeDebugTag(s1));
    sect->Add(mem);
    mem = factory.MakeData((ObjByte *)"\xf1\x9a\x33", 3);
    mem->Add(factory.MakeDebugTag(s2));
    l = factory.MakeLineNo(sf1, 4);
    mem->Add(factory.MakeDebugTag(l));
    sect->Add(mem);
    mem = factory.MakeData((ObjByte *)"\x32\x17\x33", 3);
    mem->Add(factory.MakeDebugTag(s3));
    sect->Add(mem);
    ObjExpression *left = factory.MakeExpression(s4);
    ObjExpression *right = factory.MakeExpression(7);
    mem = factory.MakeFixup(factory.MakeExpression(ObjExpression::eAdd, left, right), 4);
    sect->Add(mem);
    mem = factory.MakeData((ObjByte *)"\x55\x44\x33", 3);
    mem->Add(factory.MakeDebugTag(s4));
    mem->Add(factory.MakeDebugTag(s1a));
    sect->Add(mem);
    BuildBrowse(*rv, factory, l);
    
    ObjExportSymbol *es = factory.MakeExportSymbol("export");
    es->SetExternalName("myexport");
    es->SetByOrdinal(false);
    rv->Add(es);
    ObjExportSymbol *es1 = factory.MakeExportSymbol("export1");
    es1->SetOrdinal(500);
    es1->SetByOrdinal(true);
    rv->Add(es1);
    ObjImportSymbol *is = factory.MakeImportSymbol("import");
    is->SetExternalName("myimport");
    is->SetDllName("mydll");
    rv->Add(is);
    ObjImportSymbol *is1 = factory.MakeImportSymbol("import1");
    is1->SetByOrdinal(true);
    is1->SetOrdinal(512);
    is1->SetDllName("mydll");
    rv->Add(is1);
    return rv;
}
예제 #2
0
 MacroTask* BuildOrderManager::upgrade( int level, BWAPI::UpgradeType t, int priority )
 {
   MacroTask* mt = new MacroTask( BuildType( t, level ), priority, true, 1 );
   m_newMacroTasks.push_back( mt );
   return mt;
 }
예제 #3
0
 SupplyManager::SupplyManager()
 {
   m_supplyProviderType = BuildType( BWAPI::Broodwar->self()->getRace().getSupplyProvider() );
   m_buildTime = m_supplyProviderType.buildUnitTime() + m_supplyProviderType.prepTime();
   m_initialSupplyProviderCount = BWAPI::Broodwar->self()->completedUnitCount( m_supplyProviderType.getUnitType() );
 }
예제 #4
0
BrowserLibraryFilter::BrowserLibraryFilter(BrowserLibraryController *pController) :
wxDialog (0, -1, wxT ("Library Filter"), wxDefaultPosition, wxDefaultSize),
// Initialisation of member objects and variables
    m_pCancelButton (NULL),
    m_pCardNameText (NULL),
    m_pClanLess (NULL),
    m_pClanList (NULL),
    m_pClearButton (NULL),
    m_pCombo (NULL),
    m_pController (pController),
    m_pCostBlood (NULL),
    m_pCostPool (NULL),
    m_pHave (NULL),
    m_pHaveOrWant (NULL),
    m_pDisciplineLess (NULL),
    m_pDisciplineList (NULL),
    m_pEditionList (NULL),
    m_pMultiDiscipline (NULL),
    m_pOKButton (NULL),
    m_pOtherText (NULL),
    m_pRarityList (NULL),
    m_pReflex (NULL),
    m_pTitleList (NULL)
{
    wxAcceleratorEntry entries[3];
    entries[0].Set(wxACCEL_NORMAL, WXK_RETURN, ID_OK_BUTTON);
    entries[1].Set(wxACCEL_NORMAL, WXK_ESCAPE, ID_CANCEL_BUTTON);
    entries[2].Set(wxACCEL_NORMAL, WXK_DELETE, ID_CLEAR_BUTTON);
    wxAcceleratorTable accel(3, entries);
    this->SetAcceleratorTable(accel);

    InterfaceData *pUIData = InterfaceData::Instance ();

    wxBoxSizer *pPapaSizerV = new wxBoxSizer (wxVERTICAL);
    wxBoxSizer *pPapaSizer = new wxBoxSizer (wxHORIZONTAL);
    pPapaSizerV->Add(pPapaSizer);

    SetAutoLayout(TRUE);
    SetSizer(pPapaSizerV);

    // The card types
    wxStaticBoxSizer *pTypeBox = new wxStaticBoxSizer (new wxStaticBox (this, -1, wxT ("By card type")), wxVERTICAL);
    wxBoxSizer *pCardTypeSizer = new wxBoxSizer(wxVERTICAL);

    for (unsigned int i = 0; i < pUIData->GetTypes()->GetCount(); i++) {
        BuildType(i, pTypeBox);
    }

    m_pCombo = new wxCheckBox (this, -1, wxT ("Combo"));
    wxBoxSizer *pComboSizer = new wxBoxSizer (wxHORIZONTAL);
    wxString sComboIconName (wxT ("Type Combo"));
    wxStaticBitmap *pComboIcon = pUIData->MakeStaticBitmap (this, sComboIconName);
    if (pComboIcon) pComboSizer->Add (pComboIcon, 0, wxRIGHT, 5);
    pComboSizer->Add (m_pCombo);
    m_pReflex = new wxCheckBox (this, -1, wxT ("Reflex"));
    wxBoxSizer *pReflexSizer = new wxBoxSizer (wxHORIZONTAL);
    wxString sReflexIconName (wxT ("Type Reflex"));
    wxStaticBitmap *pReflexIcon = pUIData->MakeStaticBitmap(this, sReflexIconName);
    if (pReflexIcon) pReflexSizer->Add(pReflexIcon, 0, wxRIGHT, 5);
    pReflexSizer->Add (m_pReflex);

#ifdef __WXMSW__
    // this looks nicer in Windows
    pTypeBox->Add (pComboSizer, 0, wxALL, 3);
    pTypeBox->Add (pReflexSizer, 0, wxALL, 3);
#else
    pTypeBox->Add (pComboSizer);
    pTypeBox->Add (pReflexSizer);
#endif

    pPapaSizer->Add(pCardTypeSizer, 0, wxEXPAND | wxALL, 5);
    pCardTypeSizer->Add(pTypeBox, 0, wxEXPAND);

    // The Clans and Disciplines Sizer
    wxBoxSizer *pClanDiscSizer = new wxBoxSizer (wxVERTICAL);
    pPapaSizer->Add(pClanDiscSizer, 1, wxEXPAND | wxALL, 5);

    // The Disciplines list
    wxStaticBoxSizer *pDisciplineBox = new wxStaticBoxSizer (new wxStaticBox (this, -1, wxT ("By discipline")), wxVERTICAL);
    m_pDisciplineList = new wxListView (this, -1, wxDefaultPosition, wxSize (200, 75), wxLC_REPORT | wxLC_NO_HEADER);
    m_pDisciplineList->InsertColumn (0, wxEmptyString);
    for (unsigned int i = 0; i < pUIData->GetLibraryDisciplines ()->GetCount (); i++) {
        m_pDisciplineList->InsertItem (i, pUIData->GetLibraryDisciplines ()->Item (i)[0]);
    }
    pDisciplineBox->Add (m_pDisciplineList, 1, wxEXPAND | wxTOP, 5);
    m_pMultiDiscipline = new wxCheckBox (this, -1, wxT ("Multi Discipline"));
    m_pDisciplineLess = new wxCheckBox (this, ID_CHECK_DISCLESS, wxT ("Disciplineless"));
#ifdef __WXMSW__
    // this looks nicer in Windows
    pDisciplineBox->Add (m_pMultiDiscipline, 0, wxALL, 3);
    pDisciplineBox->Add (m_pDisciplineLess, 0, wxALL, 3);
#else
    pDisciplineBox->Add (m_pMultiDiscipline);
    pDisciplineBox->Add (m_pDisciplineLess);
#endif
    pClanDiscSizer->Add (pDisciplineBox, 1, wxEXPAND);

    // the Titles and Other sizers
    wxBoxSizer *pTitleOtherSizer = new wxBoxSizer (wxVERTICAL);
    pPapaSizer->Add (pTitleOtherSizer, 1, wxEXPAND | wxALL, 5);

    // Titles
    wxStaticBoxSizer *pTitleBox = new wxStaticBoxSizer (new wxStaticBox (this, -1, wxT ("By title")), wxVERTICAL);
    m_pTitleList = new wxListView (this, -1, wxDefaultPosition, wxSize (200, 75), wxLC_REPORT | wxLC_NO_HEADER);
    m_pTitleList->InsertColumn (0, wxEmptyString);
    // here we won't include any of the wildcard titles

    for (unsigned int i = 0; i < pUIData->GetTitles ()->GetCount () - 2; i++) {
        m_pTitleList->InsertItem (i, pUIData->GetTitles ()->Item (i)[0]);
    }

    pTitleBox->Add (m_pTitleList, 1, wxEXPAND | wxTOP, 5);
    pTitleOtherSizer->Add (pTitleBox, 0, wxEXPAND);

    // Clans
    wxStaticBoxSizer *pClanBox = new wxStaticBoxSizer (new wxStaticBox (this, -1, wxT ("By clan")), wxVERTICAL);
    m_pClanList = new wxListView (this, -1, wxDefaultPosition, wxSize (200, 75), wxLC_REPORT | wxLC_NO_HEADER);
    m_pClanList->InsertColumn (0, wxEmptyString);
    for (unsigned int i = 0; i < pUIData->GetClans ()->GetCount (); i++) {
        m_pClanList->InsertItem (i, pUIData->GetClans ()->Item (i));
    }
    pClanBox->Add (m_pClanList, 1, wxEXPAND | wxTOP, 5);
    wxGridSizer *pAnarchEtcSizer = new wxGridSizer (2);
    pClanBox->Add (pAnarchEtcSizer);
    m_pClanLess = new wxCheckBox (this, ID_CHECK_CLANLESS, wxT ("Clanless"));
#ifdef __WXMSW__
    // this looks nicer in Windows
    pAnarchEtcSizer->Add (m_pClanLess, 0, wxALL, 3);
#else
    pAnarchEtcSizer->Add (m_pClanLess);
#endif
    pClanDiscSizer->Add (pClanBox, 1, wxEXPAND);

    // Editions
    wxStaticBoxSizer *pEditionBox = new wxStaticBoxSizer (new wxStaticBox (this, -1, wxT ("By set")), wxHORIZONTAL);
    wxBoxSizer *pEditionSizer = new wxBoxSizer (wxVERTICAL);
    pEditionBox->Add (pEditionSizer, 1, wxEXPAND);
    m_pEditionList = new wxListView (this, -1, wxDefaultPosition, wxSize (200, 75), wxLC_REPORT | wxLC_NO_HEADER);
    m_pEditionList->InsertColumn (0, wxEmptyString);
    for (unsigned int i = 0; i < pUIData->GetEditions ()->GetCount (); i++) {
        m_pEditionList->InsertItem (i, pUIData->GetEditions ()->Item (i));
    }
    pEditionSizer->Add (m_pEditionList, 1, wxEXPAND | wxTOP, 5);
    pTitleOtherSizer->Add (pEditionBox, 1, wxEXPAND);


    // Rarity
    wxStaticBoxSizer *pRarityBox = new wxStaticBoxSizer (new wxStaticBox (this, -1, wxT ("By rarity")), wxHORIZONTAL);
    wxBoxSizer *pRaritySizer = new wxBoxSizer (wxVERTICAL);
    pRarityBox->Add (pRaritySizer, 1, wxEXPAND);
    m_pRarityList = new wxListView (this, -1, wxDefaultPosition, wxSize (200, 75), wxLC_REPORT | wxLC_NO_HEADER);
    m_pRarityList->InsertColumn (0, wxEmptyString);
    for (unsigned int i = 0; i < pUIData->GetRarities ()->GetCount (); i++) {
        m_pRarityList->InsertItem (i, pUIData->GetRarities ()->Item (i)[0]);
    }
    pRaritySizer->Add (m_pRarityList, 1, wxEXPAND | wxTOP, 5);
    pTitleOtherSizer->Add (pRarityBox, 1, wxEXPAND);


    // Card text
    wxStaticBoxSizer *pTextBox = new wxStaticBoxSizer (new wxStaticBox (this, -1, wxT ("By card text")), wxVERTICAL);
    wxFlexGridSizer *pTextSizer = new wxFlexGridSizer (2, 5, 5);

    wxStaticText *pLabel = new wxStaticText (this, -1, wxT ("Card name :"));
    pTextSizer->Add (pLabel, 0, wxALIGN_CENTER_VERTICAL);
    m_pCardNameText = new wxTextCtrl (this, -1, wxT (""), wxDefaultPosition, wxSize (150, -1));
    pTextSizer->Add (m_pCardNameText, 1, wxEXPAND);

    wxStaticText *pLabel2 = new wxStaticText (this, -1, wxT ("Other text :"));
    pTextSizer->Add (pLabel2, 0, wxALIGN_CENTER_VERTICAL);
    m_pOtherText = new wxTextCtrl (this, -1, wxT (""), wxDefaultPosition, wxSize (150, -1));
    pTextSizer->Add (m_pOtherText, 1, wxEXPAND);

    pTextBox->Add (pTextSizer, 1, wxEXPAND | wxTOP, 5);
    pTitleOtherSizer->Add (pTextBox, 0, wxEXPAND);

    // Other (cost blood, pool, burn option, etc..)
    wxStaticBoxSizer *pOtherBox = new wxStaticBoxSizer (new wxStaticBox (this, -1, wxT ("Other")), wxVERTICAL);
    wxFlexGridSizer *pOtherSizer = new wxFlexGridSizer (2,2);
    pOtherBox->Add (pOtherSizer, 1, wxEXPAND | wxTOP, 5);
    for (unsigned int i = 0; i < pUIData->GetLibraryReqs ()->GetCount (); i++) {
        BuildLibraryReqs (i, pOtherSizer, this);
    }

    for (unsigned int i = 0; i < pUIData->GetLibraryTexts ()->GetCount (); i++) {
        BuildLibraryTexts (i, pOtherSizer, this);
    }

    m_pCostBlood = new wxCheckBox (this, -1, wxT ("Cost Blood"));
    m_pCostPool = new wxCheckBox (this, -1, wxT ("Cost Pool"));
    m_pHave = new wxCheckBox (this, -1, wxT ("Have Only"));
    m_pHaveOrWant = new wxCheckBox (this, -1, wxT ("Have or Want"));

    pOtherSizer->Add(m_pCostBlood, 0, wxALL, 3);
    pOtherSizer->Add(m_pCostPool, 0, wxALL, 3);
    pOtherSizer->Add(m_pHave, 0, wxALL, 3);
    pOtherSizer->Add(m_pHaveOrWant, 0, wxALL, 3);
    pClanDiscSizer->Add(pOtherBox, 0, wxEXPAND);


    // OK, Clear and Cancel buttons
    wxBoxSizer *pOKCancelSizer = new wxBoxSizer (wxHORIZONTAL);
    m_pOKButton = new wxButton (this, ID_OK_BUTTON, wxT ("OK"));
    pOKCancelSizer->Add (m_pOKButton, 0, wxRIGHT | wxALIGN_BOTTOM, 5);
    m_pClearButton = new wxButton (this, ID_CLEAR_BUTTON, wxT ("Clear All"));
    pOKCancelSizer->Add (m_pClearButton, 0, wxRIGHT | wxALIGN_BOTTOM, 5);
    m_pCancelButton = new wxButton (this, ID_CANCEL_BUTTON, wxT ("Cancel"));
    pOKCancelSizer->Add (m_pCancelButton, 0, wxRIGHT | wxALIGN_BOTTOM, 5);
    pPapaSizerV->Add (pOKCancelSizer, 1, wxALIGN_RIGHT | wxALL, 5);

    pPapaSizerV->Layout ();
    pPapaSizerV->Fit (this);

    m_pClanList->SetColumnWidth (0, m_pClanList->GetClientSize ().GetWidth () - 20);
    m_pDisciplineList->SetColumnWidth (0, m_pDisciplineList->GetClientSize ().GetWidth () - 20);
    m_pTitleList->SetColumnWidth (0, m_pTitleList->GetClientSize ().GetWidth () - 20);
    m_pEditionList->SetColumnWidth (0, m_pEditionList->GetClientSize ().GetWidth () - 20);
    m_pRarityList->SetColumnWidth (0, m_pRarityList->GetClientSize ().GetWidth () - 20);

    SetIcon (*g_pIcon);
}