void CScreenPlayerSelect::UpdateNameList() { CWindow* pw; CList* pl; CEdit* pe; std::string name; int total, i; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == nullptr ) return; pl = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_NLIST)); if ( pl == nullptr ) return; pe = static_cast<CEdit*>(pw->SearchControl(EVENT_INTERFACE_NEDIT)); if ( pe == nullptr ) return; name = pe->GetText(100); total = pl->GetTotal(); for ( i=0 ; i<total ; i++ ) { // TODO: stricmp? if ( name == pl->GetItemName(i) ) { pl->SetSelect(i); pl->ShowSelect(false); return; } } pl->SetSelect(-1); }
// Writes the scene. void CScreenIO::IOWriteScene() { CWindow* pw; CList* pl; CEdit* pe; char info[100]; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == nullptr ) return; pl = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_IOLIST)); if ( pl == nullptr ) return; pe = static_cast<CEdit*>(pw->SearchControl(EVENT_INTERFACE_IONAME)); if ( pe == nullptr ) return; int sel = pl->GetSelect(); if ( sel == -1 ) return; pe->GetText(info, 100); m_interface->DeleteControl(EVENT_WINDOW5); std::string dir; if (static_cast<unsigned int>(sel) >= m_saveList.size()) { dir = m_main->GetPlayerProfile()->GetSaveFile("save"+clearName(info)); } else { dir = m_saveList.at(sel); } m_main->GetPlayerProfile()->SaveScene(dir, info); }
void CScreenSetupGame::ChangeSetupButtons() { CWindow* pw; CSlider* ps; CList* pli; float value; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == nullptr ) return; ps = static_cast<CSlider*>(pw->SearchControl(EVENT_INTERFACE_AUTOSAVE_INTERVAL)); if ( ps != nullptr ) { value = ps->GetVisibleValue(); m_main->SetAutosaveInterval(static_cast<int>(round(value))); } ps = static_cast<CSlider*>(pw->SearchControl(EVENT_INTERFACE_AUTOSAVE_SLOTS)); if ( ps != nullptr ) { value = ps->GetVisibleValue(); m_main->SetAutosaveSlots(static_cast<int>(round(value))); } pli = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_LANGUAGE)); if ( pli != nullptr ) { m_settings->SetLanguage(static_cast<Language>(pli->GetSelect()-1)); // TODO: A really ugly way to apply the change immediately m_main->ChangePhase(m_main->GetPhase()); } }
void CScreenLevelList::ShowSoluceUpdate() { CWindow* pw; CEdit* pe; CCheck* pc; m_sceneSoluce = false; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == nullptr ) return; pe = static_cast<CEdit*>(pw->SearchControl(EVENT_INTERFACE_RESUME)); if ( pe == nullptr ) return; pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_SOLUCE)); if ( pc == nullptr ) return; if ( m_main->GetShowSoluce() ) { pc->SetState(STATE_VISIBLE); pc->SetState(STATE_CHECK); m_sceneSoluce = true; } else { pc->ClearState(STATE_VISIBLE); pc->ClearState(STATE_CHECK); m_sceneSoluce = false; } }
void CScreenPlayerSelect::NameSelect() { CWindow* pw; CList* pl; CEdit* pe; std::string name; int sel; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == nullptr ) return; pl = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_NLIST)); if ( pl == nullptr ) return; pe = static_cast<CEdit*>(pw->SearchControl(EVENT_INTERFACE_NEDIT)); if ( pe == nullptr ) return; name = pe->GetText(100); sel = pl->GetSelect(); if ( sel == -1 ) { NameCreate(); } else { m_main->SelectPlayer(pl->GetItemName(sel)); } m_main->ChangePhase(PHASE_MAIN_MENU); }
void CScreenPlayerSelect::UpdateNameEdit() { CWindow* pw; CList* pl; CEdit* pe; std::string name; int sel; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == nullptr ) return; pl = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_NLIST)); if ( pl == nullptr ) return; pe = static_cast<CEdit*>(pw->SearchControl(EVENT_INTERFACE_NEDIT)); if ( pe == nullptr ) return; sel = pl->GetSelect(); if ( sel == -1 ) { pe->SetText(""); pe->SetCursor(0, 0); } else { name = pl->GetItemName(sel); pe->SetText(name.c_str()); pe->SetCursor(name.length(), 0); } UpdateNameControl(); }
void CScreenPlayerSelect::NameDelete() { CWindow* pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if (pw == nullptr) return; CList* pl = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_NLIST)); if (pl == nullptr) return; int sel = pl->GetSelect(); if (sel == -1) { m_sound->Play(SOUND_TZOING); return; } std::string gamer = pl->GetItemName(sel); m_main->SelectPlayer(gamer); if (!m_main->GetPlayerProfile()->Delete()) { m_sound->Play(SOUND_TZOING); return; } pl->SetSelect(-1); CEdit* pe = static_cast<CEdit*>(pw->SearchControl(EVENT_INTERFACE_NEDIT)); if (pe != nullptr) { pe->SetText(""); } ReadNameList(); UpdateNameList(); UpdateNameControl(); }
void CMainMap::ZoomMap() { CWindow* pw; CMap* pm; CSlider* ps; float zoom; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW1)); if (pw == nullptr) return; pm = static_cast<CMap*>(pw->SearchControl(EVENT_OBJECT_MAP)); if (pm == nullptr) return; ps = static_cast<CSlider*>(pw->SearchControl(EVENT_OBJECT_MAPZOOM)); if (ps == nullptr) return; zoom = ps->GetVisibleValue(); zoom = powf(zoom, 2.0f); zoom = ZOOM_MIN+zoom*(ZOOM_MAX - ZOOM_MIN); pm->SetZoom(zoom); DimMap(); }
void CMainMap::ZoomMap(float zoom) { CWindow* pw; CMap* pm; CSlider* ps; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW1)); if (pw == nullptr) return; pm = static_cast<CMap*>(pw->SearchControl(EVENT_OBJECT_MAP)); if (pm == nullptr) return; ps = static_cast<CSlider*>(pw->SearchControl(EVENT_OBJECT_MAPZOOM)); if (ps == nullptr) return; if (zoom < ZOOM_MIN) zoom = ZOOM_MIN; if (zoom > ZOOM_MAX) zoom = ZOOM_MAX; pm->SetZoom(zoom); DimMap(); }
bool CScreenLevelList::EventProcess(const Event &event) { CWindow* pw; CList* pl; CButton* pb; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == nullptr ) return false; if ( event.type == pw->GetEventTypeClose() || event.type == EVENT_INTERFACE_BACK || (event.type == EVENT_KEY_DOWN && event.GetData<KeyEventData>()->key == KEY(ESCAPE)) ) { m_main->ChangePhase(PHASE_MAIN_MENU); return false; } switch( event.type ) { case EVENT_INTERFACE_CHAP: pl = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_CHAP)); if ( pl == nullptr ) break; m_chap[m_category] = pl->GetSelect(); m_main->GetPlayerProfile()->SetSelectedChap(m_category, m_chap[m_category]+1); UpdateSceneList(m_chap[m_category], m_sel[m_category]); UpdateSceneResume(m_chap[m_category]+1, m_sel[m_category]+1); break; case EVENT_INTERFACE_LIST: pl = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_LIST)); if ( pl == nullptr ) break; m_sel[m_category] = pl->GetSelect(); m_main->GetPlayerProfile()->SetSelectedRank(m_category, m_sel[m_category]+1); UpdateSceneResume(m_chap[m_category]+1, m_sel[m_category]+1); break; case EVENT_INTERFACE_SOLUCE: pb = static_cast<CButton*>(pw->SearchControl(EVENT_INTERFACE_SOLUCE)); if ( pb == nullptr ) break; m_sceneSoluce = !m_sceneSoluce; pb->SetState(STATE_CHECK, m_sceneSoluce); break; case EVENT_INTERFACE_PLAY: m_main->SetLevel(m_category, m_chap[m_category]+1, m_sel[m_category]+1); m_main->ChangePhase(PHASE_SIMUL); break; case EVENT_INTERFACE_READ: m_main->ChangePhase(PHASE_READ); break; default: return true; } return false; }
void CScreenIO::IOReadList(bool isWrite) { CWindow* pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if (pw == nullptr) return; CList* pl = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_IOLIST)); if (pl == nullptr) return; pl->Flush(); m_saveList.clear(); for(const SavedScene& save : m_main->GetPlayerProfile()->GetSavedSceneList()) { pl->SetItemName(m_saveList.size(), save.name); m_saveList.push_back(save.path); } // invalid index if ( isWrite ) { std::string nameStr; GetResource(RES_TEXT, RT_IO_NEW, nameStr); pl->SetItemName(m_saveList.size(), nameStr); } pl->SetSelect(m_saveList.size()); pl->ShowSelect(false); // shows the selected columns for (unsigned int i = 0; i < m_saveList.size(); i++) { m_engine->DeleteTexture(m_saveList.at(i) + "/screen.png"); } }
void CScreenIO::IOReadName() { CWindow* pw; CEdit* pe; std::string resume; char line[100]; char name[100]; time_t now; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == nullptr ) return; pe = static_cast<CEdit*>(pw->SearchControl(EVENT_INTERFACE_IONAME)); if ( pe == nullptr ) return; resume = GetLevelCategoryDir(m_main->GetLevelCategory()) + " " + StrUtils::ToString<int>(m_main->GetLevelChap()); CLevelParser levelParser(m_main->GetLevelCategory(), m_main->GetLevelChap(), 0); try { levelParser.Load(); resume = levelParser.Get("Title")->GetParam("resume")->AsString(); } catch (CLevelParserException& e) { GetLogger()->Warn("%s\n", e.what()); } time(&now); TimeToAsciiClean(now, line); sprintf(name, "%s - %s %d", line, resume.c_str(), m_main->GetLevelRank()); pe->SetText(name); pe->SetCursor(strlen(name), 0); m_interface->SetFocus(pe); }
bool CScreenPlayerSelect::EventProcess(const Event &event) { CWindow* pw; CList* pl; std::string name; std::string gamer; switch( event.type ) { case EVENT_KEY_DOWN: { auto data = event.GetData<KeyEventData>(); if (data->key == KEY(RETURN) || data->key == KEY(ESCAPE)) { NameSelect(); } break; } case EVENT_INTERFACE_NEDIT: UpdateNameList(); UpdateNameControl(); break; case EVENT_INTERFACE_NLIST: UpdateNameEdit(); break; case EVENT_INTERFACE_NOK: NameSelect(); break; case EVENT_INTERFACE_PERSO: NameSelect(); m_main->ChangePhase(PHASE_APPERANCE); break; case EVENT_INTERFACE_NDELETE: pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == nullptr ) break; pl = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_NLIST)); if ( pl == nullptr ) break; GetResource(RES_TEXT, RT_DIALOG_DELGAME, name); gamer = pl->GetItemName(pl->GetSelect()); m_dialog->StartQuestion( StrUtils::Format(name.c_str(), gamer.c_str()), true, false, false, [&]() { NameDelete(); } ); break; default: return true; } return false; }
void CScreenLevelList::UpdateSceneResume(int chap, int rank) { CWindow* pw; CEdit* pe; CCheck* pc; std::string fileName; int numTry; bool bPassed, bVisible; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == nullptr ) return; pe = static_cast<CEdit*>(pw->SearchControl(EVENT_INTERFACE_RESUME)); if ( pe == nullptr ) return; pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_SOLUCE)); if ( pc == nullptr ) { m_sceneSoluce = false; } else { numTry = m_main->GetPlayerProfile()->GetLevelTryCount(m_category, chap, rank); bPassed = m_main->GetPlayerProfile()->GetLevelPassed(m_category, chap, rank); bVisible = ( numTry > 2 || bPassed || m_main->GetShowSoluce() ); if ( !CSettings::GetInstancePointer()->GetSoluce4() ) bVisible = false; pc->SetState(STATE_VISIBLE, bVisible); if ( !bVisible ) { pc->ClearState(STATE_CHECK); m_sceneSoluce = false; } } if(chap == 0 || rank == 0) return; try { CLevelParser levelParser(m_category, chap, rank); levelParser.Load(); pe->SetText(levelParser.Get("Resume")->GetParam("text")->AsString().c_str()); } catch (CLevelParserException& e) { pe->SetText((std::string("[ERROR]: ")+e.what()).c_str()); } }
void CMainMap::MapEnable(bool bEnable) { CWindow* pw; CMap* pm; CSlider* ps; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW1)); if (pw == nullptr) return; pm = static_cast<CMap*>(pw->SearchControl(EVENT_OBJECT_MAP)); if (pm != nullptr) pm->SetEnable(bEnable); ps = static_cast<CSlider*>(pw->SearchControl(EVENT_OBJECT_MAPZOOM)); if (ps != nullptr) ps->SetState(STATE_ENABLE, bEnable); }
void CScreenIO::IOUpdateList(bool isWrite) { CWindow* pw; CList* pl; CButton* pb; CImage* pi; int sel, max; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == nullptr ) return; pl = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_IOLIST)); if ( pl == nullptr ) return; pi = static_cast<CImage*>(pw->SearchControl(EVENT_INTERFACE_IOIMAGE)); if ( pi == nullptr ) return; sel = pl->GetSelect(); max = pl->GetTotal(); if (m_saveList.size() <= static_cast<unsigned int>(sel)) return; std::string filename = m_saveList.at(sel) + "/screen.png"; if ( isWrite ) { if ( sel < max-1 ) { pi->SetFilenameImage(filename.c_str()); } else { pi->SetFilenameImage(""); } pb = static_cast<CButton*>(pw->SearchControl(EVENT_INTERFACE_IODELETE)); if ( pb != nullptr ) { pb->SetState(STATE_ENABLE, sel < max-1); } } else { pi->SetFilenameImage(filename.c_str()); } }
void CMainMap::DimMap() { CWindow* pw; CMap* pm; CSlider* ps; Math::Point pos, dim; float value; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW1)); if (pw == nullptr) return; pm = static_cast<CMap*>(pw->SearchControl(EVENT_OBJECT_MAP)); if (pm == nullptr) return; pm->SetState(STATE_VISIBLE, (m_mapMode != 0)); dim.x = 100.0f/640.0f; dim.y = 100.0f/480.0f; pos.x = 540.0f/640.0f; pos.y = 0.0f/480.0f; pm->SetPos(pos); pm->SetDim(dim); ps = static_cast<CSlider*>(pw->SearchControl(EVENT_OBJECT_MAPZOOM)); if (ps != nullptr) { ps->SetState(STATE_VISIBLE, (m_mapMode != 0)); dim.x = SCROLL_WIDTH; dim.y = 66.0f / 480.0f; pos.x = 523.0f / 640.0f; pos.y = 3.0f / 480.0f; ps->SetPos(pos); ps->SetDim(dim); value = pm->GetZoom(); value = (value-ZOOM_MIN) / (ZOOM_MAX-ZOOM_MIN); value = powf(value, 0.5f); ps->SetVisibleValue(value); ps->SetArrowStep(0.2f); } }
float CMainMap::GetZoomMap() { CWindow* pw; CMap* pm; CSlider* ps; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW1)); if (pw == nullptr) return ZOOM_MIN; pm = static_cast<CMap*>(pw->SearchControl(EVENT_OBJECT_MAP)); if (pm == nullptr) return ZOOM_MIN; ps = static_cast<CSlider*>(pw->SearchControl(EVENT_OBJECT_MAPZOOM)); if (ps == nullptr) return ZOOM_MIN; return pm->GetZoom(); }
void CScreenApperance::ColorPerso() { CWindow* pw; CSlider* ps; Gfx::Color color; PlayerApperance& apperance = m_main->GetPlayerProfile()->GetApperance(); pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == nullptr ) return; color.a = 0.0f; ps = static_cast<CSlider*>(pw->SearchControl(EVENT_INTERFACE_PCRa)); if ( ps != nullptr ) color.r = ps->GetVisibleValue()/255.0f; ps = static_cast<CSlider*>(pw->SearchControl(EVENT_INTERFACE_PCGa)); if ( ps != nullptr ) color.g = ps->GetVisibleValue()/255.0f; ps = static_cast<CSlider*>(pw->SearchControl(EVENT_INTERFACE_PCBa)); if ( ps != nullptr ) color.b = ps->GetVisibleValue()/255.0f; if ( m_apperanceTab == 1 ) apperance.colorCombi = color; ps = static_cast<CSlider*>(pw->SearchControl(EVENT_INTERFACE_PCRb)); if ( ps != nullptr ) color.r = ps->GetVisibleValue()/255.0f; ps = static_cast<CSlider*>(pw->SearchControl(EVENT_INTERFACE_PCGb)); if ( ps != nullptr ) color.g = ps->GetVisibleValue()/255.0f; ps = static_cast<CSlider*>(pw->SearchControl(EVENT_INTERFACE_PCBb)); if ( ps != nullptr ) color.b = ps->GetVisibleValue()/255.0f; if ( m_apperanceTab == 0 ) apperance.colorHair = color; else apperance.colorBand = color; }
void CMainMap::SetHighlight(CObject* pObj) { CWindow* pw; CMap* pm; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW1)); if (pw == nullptr) return; pm = static_cast<CMap*>(pw->SearchControl(EVENT_OBJECT_MAP)); if (pm != nullptr) pm->SetHighlight(pObj); }
void CMainMap::ShowMap(bool bShow) { CWindow* pw; CMap* pm; CSlider* ps; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW1)); if (pw == nullptr) return; if (bShow) { DimMap(); } else { pm = static_cast<CMap*>(pw->SearchControl(EVENT_OBJECT_MAP)); if (pm != nullptr) pm->ClearState(STATE_VISIBLE); ps = static_cast<CSlider*>(pw->SearchControl(EVENT_OBJECT_MAPZOOM)); if (ps != nullptr) ps->ClearState(STATE_VISIBLE); } }
void CMainMap::UpdateMap() { CWindow* pw; CMap* pm; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW1)); if (pw == nullptr) return; pm = static_cast<CMap*>(pw->SearchControl(EVENT_OBJECT_MAP)); if (pm != nullptr) pm->UpdateTerrain(); }
void CScreenPlayerSelect::UpdateNameControl() { CWindow* pw; CList* pl; CButton* pb; CEdit* pe; std::string name; int total, sel; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == nullptr ) return; pl = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_NLIST)); if ( pl == nullptr ) return; pe = static_cast<CEdit*>(pw->SearchControl(EVENT_INTERFACE_NEDIT)); if ( pe == nullptr ) return; total = pl->GetTotal(); sel = pl->GetSelect(); name = pe->GetText(100); pb = static_cast<CButton*>(pw->SearchControl(EVENT_INTERFACE_NDELETE)); if ( pb != nullptr ) { pb->SetState(STATE_ENABLE, total>0 && sel!=-1); } pb = static_cast<CButton*>(pw->SearchControl(EVENT_INTERFACE_NOK)); if ( pb != nullptr ) { pb->SetState(STATE_ENABLE, !name.empty() || sel!=-1); } pb = static_cast<CButton*>(pw->SearchControl(EVENT_INTERFACE_PERSO)); if ( pb != nullptr ) { pb->SetState(STATE_ENABLE, !name.empty() || sel!=-1); } }
void CScreenPlayerSelect::ReadNameList() { CWindow* pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if (pw == nullptr) return; CList* pl = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_NLIST)); if (pl == nullptr) return; pl->Flush(); auto players = CPlayerProfile::GetPlayerList(); for (int i = 0; i < static_cast<int>(players.size()); ++i) { pl->SetItemName(i, players.at(i)); } }
void CScreenSetupSound::ChangeSetupButtons() { CWindow* pw; CSlider* ps; float value; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == nullptr ) return; ps = static_cast<CSlider*>(pw->SearchControl(EVENT_INTERFACE_VOLSOUND)); if ( ps != nullptr ) { value = ps->GetVisibleValue(); m_sound->SetAudioVolume(static_cast<int>(value)); } ps = static_cast<CSlider*>(pw->SearchControl(EVENT_INTERFACE_VOLMUSIC)); if ( ps != nullptr ) { value = ps->GetVisibleValue(); m_sound->SetMusicVolume(static_cast<int>(value)); } }
void CMainMap::SetToy(bool bToy) { CWindow* pw; CMap* pm; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW1)); if (pw == nullptr) return; pm = static_cast<CMap*>(pw->SearchControl(EVENT_OBJECT_MAP)); if (pm == nullptr) return; pm->SetToy(bToy); }
CObject* CMainMap::DetectMap(Math::Point pos, bool &bInMap) { CWindow* pw; CMap* pm; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW1)); if (pw == nullptr) return 0; bInMap = false; pm = static_cast<CMap*>(pw->SearchControl(EVENT_OBJECT_MAP)); if (pm == nullptr) return 0; return pm->DetectObject(pos, bInMap); }
void CMainMap::FloorColorMap(Gfx::Color floor, Gfx::Color water) { CWindow* pw; CMap* pm; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW1)); if (pw == nullptr) return; pm = static_cast<CMap*>(pw->SearchControl(EVENT_OBJECT_MAP)); if (pm != nullptr) { pm->SetFloorColor(floor); pm->SetWaterColor(water); } }
void CScreenIO::IOReadScene() { CWindow* pw; CList* pl; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); if ( pw == nullptr ) return; pl = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_IOLIST)); if ( pl == nullptr ) return; int sel = pl->GetSelect(); if (sel < 0 || sel >= static_cast<int>(m_saveList.size())) return; m_main->GetPlayerProfile()->LoadScene(m_saveList.at(sel)); m_screenLevelList->SetSelection(m_main->GetLevelCategory(), m_main->GetLevelChap()-1, m_main->GetLevelRank()-1); }
void CMainMap::SetFixImage(const char *filename) { CWindow* pw; CMap* pm; pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW1)); if (pw == nullptr) return; pm = static_cast<CMap*>(pw->SearchControl(EVENT_OBJECT_MAP)); if (pm == nullptr) return; pw->DeleteControl(EVENT_OBJECT_MAPZOOM); m_bFixImage = true; pm->SetFixImage(filename); }