void CScreenSetupSound::CreateInterface() { CWindow* pw; CLabel* pl; CSlider* psl; CButton* pb; Math::Point pos, ddim; std::string name; CScreenSetup::CreateInterface(); pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == nullptr ) return; pos.x = ox+sx*3; pos.y = 0.55f; ddim.x = dim.x*4.0f; ddim.y = 18.0f/480.0f; psl = pw->CreateSlider(pos, ddim, 0, EVENT_INTERFACE_VOLSOUND); psl->SetState(STATE_SHADOW); psl->SetLimit(0.0f, MAXVOLUME); psl->SetArrowStep(1.0f); pos.y += ddim.y; GetResource(RES_EVENT, EVENT_INTERFACE_VOLSOUND, name); pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL1, name); pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT); pos.x = ox+sx*3; pos.y = 0.40f; ddim.x = dim.x*4.0f; ddim.y = 18.0f/480.0f; psl = pw->CreateSlider(pos, ddim, 0, EVENT_INTERFACE_VOLMUSIC); psl->SetState(STATE_SHADOW); psl->SetLimit(0.0f, MAXVOLUME); psl->SetArrowStep(1.0f); pos.y += ddim.y; GetResource(RES_EVENT, EVENT_INTERFACE_VOLMUSIC, name); pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL2, name); pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT); ddim.x = dim.x*3; ddim.y = dim.y*1; pos.x = ox+sx*10; pos.y = oy+sy*2; pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_SILENT); pb->SetState(STATE_SHADOW); pos.x += ddim.x; pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_NOISY); pb->SetState(STATE_SHADOW); UpdateSetupButtons(); }
void CMainDialog::StartInformation(const std::string& title, const std::string& text, const std::string& details, bool warning, bool fireParticles, DialogCallback ok) { CWindow* pw; CButton* pb; CLabel* pl; Math::Point pos, dim, ddim; std::string name; dim.x = 0.7f; dim.y = 0.3f; StartDialog(dim, fireParticles); m_dialogType = DialogType::Question; m_callbackYes = ok; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW9)); if ( pw == nullptr ) return; if(!title.empty()) pw->SetName(title); pos.x = 0.00f; pos.y = 0.50f; ddim.x = 1.00f; ddim.y = 0.05f; pl = pw->CreateLabel(pos, ddim, -1, EVENT_DIALOG_LABEL, text); pl->SetFontType(Gfx::FONT_COMMON_BOLD); //TODO: Add \n support in CLabel pos.y -= ddim.y; pl = pw->CreateLabel(pos, ddim, -1, EVENT_DIALOG_LABEL1, details); pl->SetFontSize(10.0f); pos.x = 0.50f-0.075f; pos.y = 0.50f-dim.y/2.0f+0.03f; ddim.x = 0.15f; ddim.y = 0.06f; pb = pw->CreateButton(pos, ddim, -1, EVENT_DIALOG_OK); pb->SetState(STATE_SHADOW); GetResource(RES_TEXT, RT_DIALOG_OK, name); pb->SetName(name); if (warning) { pb->SetState(STATE_WARNING); } }
void CMainDialog::StartQuestion(const std::string& text, bool warningYes, bool warningNo, bool fireParticles, DialogCallback yes, DialogCallback no) { CWindow* pw; CButton* pb; Math::Point pos, dim, ddim; std::string name; dim.x = 0.7f; dim.y = 0.3f; StartDialog(dim, fireParticles); m_dialogType = DialogType::Question; m_callbackYes = yes; m_callbackNo = no; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW9)); if ( pw == nullptr ) return; pos.x = 0.00f; pos.y = 0.50f; ddim.x = 1.00f; ddim.y = 0.05f; pw->CreateLabel(pos, ddim, -1, EVENT_DIALOG_LABEL, text); pos.x = 0.50f-0.15f-0.02f; pos.y = 0.50f-dim.y/2.0f+0.03f; ddim.x = 0.15f; ddim.y = 0.06f; pb = pw->CreateButton(pos, ddim, -1, EVENT_DIALOG_OK); pb->SetState(STATE_SHADOW); GetResource(RES_TEXT, RT_DIALOG_YES, name); pb->SetName(name); if (warningYes) { pb->SetState(STATE_WARNING); } pos.x = 0.50f+0.02f; pos.y = 0.50f-dim.y/2.0f+0.03f; ddim.x = 0.15f; ddim.y = 0.06f; pb = pw->CreateButton(pos, ddim, -1, EVENT_DIALOG_CANCEL); pb->SetState(STATE_SHADOW); GetResource(RES_TEXT, RT_DIALOG_NO, name); pb->SetName(name); if (warningNo) { pb->SetState(STATE_WARNING); } }
void CScreenSetupGame::CreateInterface() { CWindow* pw; CLabel* pl; CCheck* pc; CSlider* psl; CList* pli; Math::Point pos, ddim; std::string name; CScreenSetup::CreateInterface(); pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == nullptr ) return; ddim.x = dim.x*6; ddim.y = dim.y*0.5f; pos.x = ox+sx*3; pos.y = 0.65f; pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_MOVIES); pc->SetState(STATE_SHADOW); pos.y -= 0.048f; pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_SCROLL); pc->SetState(STATE_SHADOW); pos.y -= 0.048f; pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_INVERTX); pc->SetState(STATE_SHADOW); pos.y -= 0.048f; pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_INVERTY); pc->SetState(STATE_SHADOW); pos.y -= 0.048f; pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_EFFECT); pc->SetState(STATE_SHADOW); pos.y -= 0.048f; pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_BLOOD); pc->SetState(STATE_SHADOW); pos.y -= 0.048f; pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_AUTOSAVE_ENABLE); pc->SetState(STATE_SHADOW); pos.y -= 0.048f; pos.y -= ddim.y; ddim.x = dim.x*2.5f; psl = pw->CreateSlider(pos, ddim, -1, EVENT_INTERFACE_AUTOSAVE_INTERVAL); psl->SetState(STATE_SHADOW); psl->SetLimit(1.0f, 30.0f); psl->SetArrowStep(1.0f); pos.y += ddim.y/2; GetResource(RES_EVENT, EVENT_INTERFACE_AUTOSAVE_INTERVAL, name); pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL1, name); pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT); pos.y -= ddim.y/2; pos.x = ox+sx*3+dim.x*4.0f; psl = pw->CreateSlider(pos, ddim, -1, EVENT_INTERFACE_AUTOSAVE_SLOTS); psl->SetState(STATE_SHADOW); psl->SetLimit(1.0f, 10.0f); psl->SetArrowStep(1.0f); pos.y += ddim.y/2; GetResource(RES_EVENT, EVENT_INTERFACE_AUTOSAVE_SLOTS, name); pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL1, name); pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT); pos.y -= ddim.y/2; ddim.x = dim.x*6; ddim.y = dim.y*0.5f; pos.x = ox+sx*10; pos.y = 0.65f; pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_TOOLTIP); pc->SetState(STATE_SHADOW); pos.y -= 0.048f; pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_GLINT); pc->SetState(STATE_SHADOW); pos.y -= 0.048f; pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_RAIN); pc->SetState(STATE_SHADOW); pos.y -= 0.048f; pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_BGPAUSE); pc->SetState(STATE_SHADOW); pos.y -= 0.048f; pos.y -= 0.048f; pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_EDITMODE); pc->SetState(STATE_SHADOW); if ( m_simulationSetup ) { pc->SetState(STATE_DEAD); } pos.y -= 0.048f; pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_EDITVALUE); pc->SetState(STATE_SHADOW); ddim.y = dim.y*3.0f; pos.y -= ddim.y; pli = pw->CreateList(pos, ddim, 0, EVENT_INTERFACE_LANGUAGE); pli->SetState(STATE_SHADOW); // TODO: Add something like GetSupportedLanguages() and GetLanguageFriendlyName() for this pli->SetItemName(1+LANGUAGE_ENV, "[System default]"); pli->SetItemName(1+LANGUAGE_ENGLISH, "English"); pli->SetItemName(1+LANGUAGE_FRENCH, "French"); pli->SetItemName(1+LANGUAGE_GERMAN, "German"); pli->SetItemName(1+LANGUAGE_POLISH, "Polish"); pli->SetItemName(1+LANGUAGE_RUSSIAN, "Russian"); UpdateSetupButtons(); }
void CScreenPlayerSelect::CreateInterface() { CWindow* pw; CEdit* pe; CLabel* pl; CButton* pb; CList* pli; CGroup* pg; Math::Point pos, ddim; std::string name; pos.x = 0.10f; pos.y = 0.10f; ddim.x = 0.80f; ddim.y = 0.80f; pw = m_interface->CreateWindows(pos, ddim, 12, EVENT_WINDOW5); GetResource(RES_TEXT, RT_TITLE_NAME, name); pw->SetName(name); pos.x = 0.10f; pos.y = 0.40f; ddim.x = 0.50f; ddim.y = 0.50f; pw->CreateGroup(pos, ddim, 5, EVENT_INTERFACE_GLINTl); // orange corner pos.x = 0.40f; pos.y = 0.10f; ddim.x = 0.50f; ddim.y = 0.50f; pw->CreateGroup(pos, ddim, 4, EVENT_INTERFACE_GLINTr); // blue corner pos.x = 60.0f/640.0f; pos.y = 313.0f/480.0f; ddim.x = 120.0f/640.0f; ddim.y = 32.0f/480.0f; GetResource(RES_EVENT, EVENT_INTERFACE_NLABEL, name); pl = pw->CreateLabel(pos, ddim, -1, EVENT_INTERFACE_NLABEL, name); pl->SetTextAlign(Gfx::TEXT_ALIGN_RIGHT); pos.x = 200.0f/640.0f; pos.y = 320.0f/480.0f; ddim.x = 160.0f/640.0f; ddim.y = 32.0f/480.0f; pg = pw->CreateGroup(pos, ddim, 7, EVENT_LABEL1); pg->SetState(STATE_SHADOW); pos.x = 207.0f/640.0f; pos.y = 328.0f/480.0f; ddim.x = 144.0f/640.0f; ddim.y = 18.0f/480.0f; pe = pw->CreateEdit(pos, ddim, 0, EVENT_INTERFACE_NEDIT); pe->SetMaxChar(15); if(m_main->GetPlayerProfile() != nullptr) { name = m_main->GetPlayerProfile()->GetName(); } else { name = CPlayerProfile::GetLastName(); } pe->SetText(name.c_str()); pe->SetCursor(name.length(), 0); m_interface->SetFocus(pe); pos.x = 380.0f/640.0f; pos.y = 320.0f/480.0f; ddim.x =100.0f/640.0f; ddim.y = 32.0f/480.0f; pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_NOK); pb->SetState(STATE_SHADOW); pos.x = 380.0f/640.0f; pos.y = 250.0f/480.0f; ddim.x =100.0f/640.0f; ddim.y = 52.0f/480.0f; pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_PERSO); pb->SetState(STATE_SHADOW); pos.x = 200.0f/640.0f; pos.y = 150.0f/480.0f; ddim.x = 160.0f/640.0f; ddim.y = 160.0f/480.0f; pli = pw->CreateList(pos, ddim, 0, EVENT_INTERFACE_NLIST); pli->SetState(STATE_SHADOW); pos.x = 200.0f/640.0f; pos.y = 100.0f/480.0f; ddim.x = 160.0f/640.0f; ddim.y = 32.0f/480.0f; pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_NDELETE); pb->SetState(STATE_SHADOW); SetBackground("textures/interface/interface.png"); CreateVersionDisplay(); ReadNameList(); UpdateNameList(); UpdateNameControl(); }
void CScreenQuit::CreateInterface() { CWindow* pw; CEdit* pe; CLabel* pl; CButton* pb; Math::Point pos, ddim; std::string name; pos.x = 0.0f; pos.y = 0.0f; ddim.x = 0.0f; ddim.y = 0.0f; pw = m_interface->CreateWindows(pos, ddim, -1, EVENT_WINDOW5); pos.x = 80.0f/640.0f; pos.y = 190.0f/480.0f; ddim.x = 490.0f/640.0f; ddim.y = 160.0f/480.0f; pe = pw->CreateEdit(pos, ddim, 0, EVENT_EDIT1); pe->SetGenericMode(true); pe->SetEditCap(false); pe->SetHighlightCap(false); pe->SetFontType(Gfx::FONT_STUDIO); pe->SetFontSize(Gfx::FONT_SIZE_SMALL); pe->ReadText(std::string("help/") + m_app->GetLanguageChar() + std::string("/authors.txt")); pos.x = 40.0f/640.0f; pos.y = 83.0f/480.0f; ddim.x = 246.0f/640.0f; ddim.y = 16.0f/480.0f; GetResource(RES_TEXT, RT_GENERIC_DEV1, name); pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL1, name); pl->SetFontType(Gfx::FONT_STUDIO); pl->SetFontSize(Gfx::FONT_SIZE_SMALL); pos.y = 13.0f/480.0f; GetResource(RES_TEXT, RT_GENERIC_DEV2, name); pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL2, name); pl->SetFontType(Gfx::FONT_STUDIO); pl->SetFontSize(Gfx::FONT_SIZE_SMALL); pos.x = 355.0f/640.0f; pos.y = 83.0f/480.0f; ddim.x = 246.0f/640.0f; ddim.y = 16.0f/480.0f; GetResource(RES_TEXT, RT_GENERIC_EDIT1, name); pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL3, name); pl->SetFontType(Gfx::FONT_STUDIO); pl->SetFontSize(Gfx::FONT_SIZE_SMALL); pos.y = 13.0f/480.0f; GetResource(RES_TEXT, RT_GENERIC_EDIT2, name); pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL4, name); pl->SetFontType(Gfx::FONT_STUDIO); pl->SetFontSize(Gfx::FONT_SIZE_SMALL); pos.x = 306.0f/640.0f; pos.y = 17.0f/480.0f; ddim.x = 30.0f/640.0f; ddim.y = 30.0f/480.0f; pb = pw->CreateButton(pos, ddim, 49, EVENT_INTERFACE_ABORT); pb->SetState(STATE_SHADOW); SetBackground("textures/interface/generico.png"); }
void CScreenApperance::CreateInterface() { CWindow* pw; CLabel* pl; CButton* pb; CColor* pco; CSlider* psl; Math::Point pos, ddim; std::string name; pos.x = 0.10f; pos.y = 0.10f; ddim.x = 0.80f; ddim.y = 0.80f; pw = m_interface->CreateWindows(pos, ddim, 12, EVENT_WINDOW5); GetResource(RES_TEXT, RT_TITLE_PERSO, name); pw->SetName(name); pos.x = 0.10f; pos.y = 0.40f; ddim.x = 0.50f; ddim.y = 0.50f; pw->CreateGroup(pos, ddim, 5, EVENT_INTERFACE_GLINTl); // orange corner pos.x = 0.40f; pos.y = 0.10f; ddim.x = 0.50f; ddim.y = 0.50f; pw->CreateGroup(pos, ddim, 4, EVENT_INTERFACE_GLINTr); // blue corner pos.x = 95.0f/640.0f; pos.y = 108.0f/480.0f; ddim.x = 220.0f/640.0f; ddim.y = 274.0f/480.0f; pw->CreateGroup(pos, ddim, 17, EVENT_NULL); // frame pos.x = 100.0f/640.0f; pos.y = 364.0f/480.0f; ddim.x = 210.0f/640.0f; ddim.y = 14.0f/480.0f; pw->CreateGroup(pos, ddim, 3, EVENT_NULL); // transparent -> gray pos.x = 120.0f/640.0f; pos.y = 364.0f/480.0f; ddim.x = 80.0f/640.0f; ddim.y = 28.0f/480.0f; pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_PHEAD); pb->SetState(STATE_SHADOW); pb->SetState(STATE_CARD); pos.x = 210.0f/640.0f; pos.y = 364.0f/480.0f; ddim.x = 80.0f/640.0f; ddim.y = 28.0f/480.0f; pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_PBODY); pb->SetState(STATE_SHADOW); pb->SetState(STATE_CARD); pos.x = 100.0f/640.0f; pos.y = 354.0f/480.0f; ddim.x = 210.0f/640.0f; ddim.y = 10.0f/480.0f; pw->CreateGroup(pos, ddim, 1, EVENT_INTERFACE_GLINTb); // orange bar pos.x = 100.0f/640.0f; pos.y = 154.0f/480.0f; ddim.x = 210.0f/640.0f; ddim.y = 200.0f/480.0f; pw->CreateGroup(pos, ddim, 2, EVENT_INTERFACE_GLINTu); // orange -> transparent // Face pos.x = 340.0f/640.0f; pos.y = 356.0f/480.0f; ddim.x = 200.0f/640.0f; ddim.y = 16.0f/480.0f; pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL11, ""); pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT); pos.x = 340.0f/640.0f; pos.y = 312.0f/480.0f; ddim.x = 44.0f/640.0f; ddim.y = 44.0f/480.0f; pb = pw->CreateButton(pos, ddim, 43, EVENT_INTERFACE_PFACE1); pb->SetState(STATE_SHADOW); pos.x += 50.0f/640.0f; pb = pw->CreateButton(pos, ddim, 46, EVENT_INTERFACE_PFACE4); pb->SetState(STATE_SHADOW); pos.x += 50.0f/640.0f; pb = pw->CreateButton(pos, ddim, 45, EVENT_INTERFACE_PFACE3); pb->SetState(STATE_SHADOW); pos.x += 50.0f/640.0f; pb = pw->CreateButton(pos, ddim, 44, EVENT_INTERFACE_PFACE2); pb->SetState(STATE_SHADOW); // Glasses pos.x = 340.0f/640.0f; pos.y = 270.0f/480.0f; ddim.x = 200.0f/640.0f; ddim.y = 16.0f/480.0f; pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL12, ""); pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT); pos.x = 340.0f/640.0f; pos.y = 240.0f/480.0f; ddim.x = 30.0f/640.0f; ddim.y = 30.0f/480.0f; for ( int i=0 ; i<6 ; i++ ) { int ti[6] = {11, 179, 180, 181, 182, 183}; pb = pw->CreateButton(pos, ddim, ti[i], static_cast<EventType>(EVENT_INTERFACE_PGLASS0+i)); pb->SetState(STATE_SHADOW); pos.x += (30.0f+2.8f)/640.0f; } // Color A pos.x = 340.0f/640.0f; pos.y = 300.0f/480.0f; ddim.x = 200.0f/640.0f; ddim.y = 16.0f/480.0f; pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL14, ""); pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT); pos.y = 282.0f/480.0f; ddim.x = 18.0f/640.0f; ddim.y = 18.0f/480.0f; for ( int j=0 ; j<3 ; j++ ) { pos.x = 340.0f/640.0f; for ( int i=0 ; i<3 ; i++ ) { pco = pw->CreateColor(pos, ddim, -1, static_cast<EventType>(EVENT_INTERFACE_PC0a+j*3+i)); pco->SetState(STATE_SHADOW); pos.x += 20.0f/640.0f; } pos.y -= 20.0f/480.0f; } pos.x = 420.0f/640.0f; pos.y = 282.0f/480.0f; ddim.x = 100.0f/640.0f; ddim.y = 18.0f/480.0f; for ( int i=0 ; i<3 ; i++ ) { psl = pw->CreateSlider(pos, ddim, 0, static_cast<EventType>(EVENT_INTERFACE_PCRa+i)); psl->SetState(STATE_SHADOW); psl->SetLimit(0.0f, 255.0f); psl->SetArrowStep(16.0f); pos.y -= 20.0f/480.0f; } // Color B pos.x = 340.0f/640.0f; pos.y = 192.0f/480.0f; ddim.x = 200.0f/640.0f; ddim.y = 16.0f/480.0f; pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL13, ""); pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT); pos.y = 174.0f/480.0f; ddim.x = 18.0f/640.0f; ddim.y = 18.0f/480.0f; for ( int j=0 ; j<3 ; j++ ) { pos.x = 340.0f/640.0f; for ( int i=0 ; i<3 ; i++ ) { pco = pw->CreateColor(pos, ddim, -1, static_cast<EventType>(EVENT_INTERFACE_PC0b+j*3+i)); pco->SetState(STATE_SHADOW); pos.x += 20.0f/640.0f; } pos.y -= 20.0f/480.0f; } pos.x = 420.0f/640.0f; pos.y = 174.0f/480.0f; ddim.x = 100.0f/640.0f; ddim.y = 18.0f/480.0f; for ( int i=0 ; i<3 ; i++ ) { psl = pw->CreateSlider(pos, ddim, 0, static_cast<EventType>(EVENT_INTERFACE_PCRb+i)); psl->SetState(STATE_SHADOW); psl->SetLimit(0.0f, 255.0f); psl->SetArrowStep(16.0f); pos.y -= 20.0f/480.0f; } // Rotation pos.x = 100.0f/640.0f; pos.y = 113.0f/480.0f; ddim.x = 20.0f/640.0f; ddim.y = 20.0f/480.0f; pb = pw->CreateButton(pos, ddim, 55, EVENT_INTERFACE_PLROT); // < pb->SetState(STATE_SHADOW); pb->SetRepeat(true); pos.x = 290.0f/640.0f; pos.y = 113.0f/480.0f; ddim.x = 20.0f/640.0f; ddim.y = 20.0f/480.0f; pb = pw->CreateButton(pos, ddim, 48, EVENT_INTERFACE_PRROT); // > pb->SetState(STATE_SHADOW); pb->SetRepeat(true); pos.x = 100.0f/640.0f; pos.y = 70.0f/480.0f; ddim.x = 100.0f/640.0f; ddim.y = 32.0f/480.0f; pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_POK); pb->SetState(STATE_SHADOW); pos.x = 210.0f/640.0f; pos.y = 70.0f/480.0f; ddim.x =100.0f/640.0f; ddim.y = 32.0f/480.0f; pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_PCANCEL); pb->SetState(STATE_SHADOW); pos.x = 340.0f/640.0f; pos.y = 70.0f/480.0f; ddim.x =194.0f/640.0f; ddim.y = 32.0f/480.0f; pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_PDEF); pb->SetState(STATE_SHADOW); m_apperanceTab = 0; m_apperanceAngle = -0.6f; m_main->GetPlayerProfile()->LoadApperance(); UpdatePerso(); m_main->ScenePerso(); CameraPerso(); }
void CScreenLevelList::CreateInterface() { CWindow* pw; CEdit* pe; CLabel* pl; CButton* pb; CCheck* pc; CList* pli; Math::Point pos, ddim; int res; std::string name; if ( m_category == LevelCategory::FreeGame ) { m_accessChap = m_main->GetPlayerProfile()->GetChapPassed(LevelCategory::Missions); } pos.x = 0.10f; pos.y = 0.10f; ddim.x = 0.80f; ddim.y = 0.80f; pw = m_interface->CreateWindows(pos, ddim, 12, EVENT_WINDOW5); pw->SetClosable(true); if ( m_category == LevelCategory::Exercises ) res = RT_TITLE_TRAINER; if ( m_category == LevelCategory::Challenges ) res = RT_TITLE_DEFI; if ( m_category == LevelCategory::Missions ) res = RT_TITLE_MISSION; if ( m_category == LevelCategory::FreeGame ) res = RT_TITLE_FREE; if ( m_category == LevelCategory::CodeBattles ) res = RT_TITLE_CODE_BATTLES; if ( m_category == LevelCategory::CustomLevels ) res = RT_TITLE_USER; GetResource(RES_TEXT, res, name); pw->SetName(name); pos.x = 0.10f; pos.y = 0.40f; ddim.x = 0.50f; ddim.y = 0.50f; pw->CreateGroup(pos, ddim, 5, EVENT_INTERFACE_GLINTl); // orange corner pos.x = 0.40f; pos.y = 0.10f; ddim.x = 0.50f; ddim.y = 0.50f; pw->CreateGroup(pos, ddim, 4, EVENT_INTERFACE_GLINTr); // blue corner // Displays a list of chapters: pos.x = ox+sx*3; pos.y = oy+sy*10.5f; ddim.x = dim.x*7.5f; ddim.y = dim.y*0.6f; res = RT_PLAY_CHAP_CHAPTERS; if ( m_category == LevelCategory::Missions ) res = RT_PLAY_CHAP_PLANETS; if ( m_category == LevelCategory::FreeGame ) res = RT_PLAY_CHAP_PLANETS; if ( m_category == LevelCategory::CustomLevels ) res = RT_PLAY_CHAP_USERLVL; GetResource(RES_TEXT, res, name); pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL11, name); pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT); pos.y = oy+sy*6.7f; ddim.y = dim.y*4.5f; ddim.x = dim.x*6.5f; pli = pw->CreateList(pos, ddim, 0, EVENT_INTERFACE_CHAP); pli->SetState(STATE_SHADOW); m_chap[m_category] = m_main->GetPlayerProfile()->GetSelectedChap(m_category)-1; UpdateSceneChap(m_chap[m_category]); if ( m_category != LevelCategory::FreeGame && m_category != LevelCategory::CodeBattles && m_category != LevelCategory::CustomLevels ) // Don't show completion marks in free game, code battles and userlevels { pli->SetState(STATE_EXTEND); } // Displays a list of missions: pos.x = ox+sx*9.5f; pos.y = oy+sy*10.5f; ddim.x = dim.x*7.5f; ddim.y = dim.y*0.6f; res = RT_PLAY_LIST_LEVELS; if ( m_category == LevelCategory::Exercises ) res = RT_PLAY_LIST_EXERCISES; if ( m_category == LevelCategory::Challenges ) res = RT_PLAY_LIST_CHALLENGES; if ( m_category == LevelCategory::Missions ) res = RT_PLAY_LIST_MISSIONS; if ( m_category == LevelCategory::FreeGame ) res = RT_PLAY_LIST_FREEGAME; GetResource(RES_TEXT, res, name); pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL12, name); pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT); pos.y = oy+sy*6.7f; ddim.y = dim.y*4.5f; ddim.x = dim.x*6.5f; pli = pw->CreateList(pos, ddim, 0, EVENT_INTERFACE_LIST); pli->SetState(STATE_SHADOW); m_sel[m_category] = m_main->GetPlayerProfile()->GetSelectedRank(m_category)-1; UpdateSceneList(m_chap[m_category], m_sel[m_category]); if ( m_category != LevelCategory::FreeGame && m_category != LevelCategory::CodeBattles && m_category != LevelCategory::CustomLevels ) // Don't show completion marks in free game, code battles and userlevels { pli->SetState(STATE_EXTEND); } pos = pli->GetPos(); ddim = pli->GetDim(); // Displays the summary: pos.x = ox+sx*3; pos.y = oy+sy*5.4f; ddim.x = dim.x*6.5f; ddim.y = dim.y*0.6f; GetResource(RES_TEXT, RT_PLAY_RESUME, name); pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL13, name); pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT); pos.x = ox+sx*3; pos.y = oy+sy*3.6f; ddim.x = dim.x*13.4f; ddim.y = dim.y*1.9f; pe = pw->CreateEdit(pos, ddim, 0, EVENT_INTERFACE_RESUME); pe->SetState(STATE_SHADOW); pe->SetMaxChar(500); pe->SetEditCap(false); // just to see pe->SetHighlightCap(false); // Button displays the "soluce": if ( m_category != LevelCategory::Exercises && m_category != LevelCategory::FreeGame ) { pos.x = ox+sx*9.5f; pos.y = oy+sy*5.8f; ddim.x = dim.x*6.5f; ddim.y = dim.y*0.5f; pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_SOLUCE); pc->SetState(STATE_SHADOW); pc->ClearState(STATE_CHECK); } m_sceneSoluce = false; UpdateSceneResume(m_chap[m_category]+1, m_sel[m_category]+1); if ( m_category == LevelCategory::Missions || m_category == LevelCategory::FreeGame || m_category == LevelCategory::CustomLevels ) { pos.x = ox+sx*9.5f; pos.y = oy+sy*2; ddim.x = dim.x*3.7f; ddim.y = dim.y*1; pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_PLAY); pb->SetState(STATE_SHADOW); if ( m_maxList == 0 ) { pb->ClearState(STATE_ENABLE); } pos.x += dim.x*4.0f; ddim.x = dim.x*2.5f; pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_READ); pb->SetState(STATE_SHADOW); if ( !m_main->GetPlayerProfile()->HasAnySavedScene() ) // no file to read? { pb->ClearState(STATE_ENABLE); } } else { pos.x = ox+sx*9.5f; pos.y = oy+sy*2; ddim.x = dim.x*6.5f; ddim.y = dim.y*1; pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_PLAY); pb->SetState(STATE_SHADOW); if ( m_maxList == 0 ) { pb->ClearState(STATE_ENABLE); } } pos.x = ox+sx*3; ddim.x = dim.x*4; pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_BACK); pb->SetState(STATE_SHADOW); SetBackground("textures/interface/interface.png"); CreateVersionDisplay(); if (m_category == LevelCategory::CustomLevels) { if(m_customLevelList.size() == 0) { m_main->ChangePhase(PHASE_MAIN_MENU); std::string title, text; GetResource(RES_TEXT, RT_DIALOG_NOUSRLVL_TITLE, title); GetResource(RES_TEXT, RT_DIALOG_NOUSRLVL_TEXT, text); m_dialog->StartInformation(title, title, text); } } }