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 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 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 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)); } }
bool CStudio::EventProcess(const Event &event) { CWindow* pw; CEdit* edit; CSlider* slider; if ( m_dialog != SD_NULL ) // dialogue exists? { return EventDialog(event); } if ( event.type == EVENT_FRAME ) { EventFrame(event); } pw = static_cast< CWindow* >(m_interface->SearchControl(EVENT_WINDOW3)); if ( pw == nullptr ) return false; edit = static_cast<CEdit*>(pw->SearchControl(EVENT_STUDIO_EDIT)); if ( edit == nullptr ) return false; if ( event.type == pw->GetEventTypeClose() ) { Event newEvent = event; newEvent.type = EVENT_STUDIO_OK; m_event->AddEvent(newEvent); } if ( event.type == EVENT_STUDIO_EDIT ) // text modifief? { ColorizeScript(edit); } if ( event.type == EVENT_STUDIO_LIST ) // list clicked? { m_main->StartDisplayInfo(const_cast<char *>(m_helpFilename.c_str()), -1); // TODO change to std::string when RobotMain changes } if ( event.type == EVENT_STUDIO_NEW ) // new? { m_script->New(edit, ""); } if ( event.type == EVENT_STUDIO_OPEN ) // open? { StartDialog(SD_OPEN); } if ( event.type == EVENT_STUDIO_SAVE ) // save? { StartDialog(SD_SAVE); } if ( event.type == EVENT_STUDIO_UNDO ) // undo? { edit->Undo(); } if ( event.type == EVENT_STUDIO_CUT ) // cut? { edit->Cut(); } if ( event.type == EVENT_STUDIO_COPY ) // copy? { edit->Copy(); } if ( event.type == EVENT_STUDIO_PASTE ) // paste? { edit->Paste(); } if ( event.type == EVENT_STUDIO_SIZE ) // size? { slider = static_cast< CSlider* >(pw->SearchControl(EVENT_STUDIO_SIZE)); if ( slider == nullptr ) return false; m_main->SetFontSize(9.0f+slider->GetVisibleValue()*12.0f); ViewEditScript(); } if ( event.type == EVENT_STUDIO_TOOL && // instructions? m_dialog == SD_NULL ) { m_main->StartDisplayInfo(SATCOM_HUSTON, false); } if ( event.type == EVENT_STUDIO_HELP && // help? m_dialog == SD_NULL ) { m_main->StartDisplayInfo(SATCOM_PROG, false); } if ( event.type == EVENT_STUDIO_COMPILE ) // compile? { if ( m_script->GetScript(edit) ) // compile { std::string res; GetResource(RES_TEXT, RT_STUDIO_COMPOK, res); SetInfoText(res, false); } else { std::string error; m_script->GetError(error); SetInfoText(error, false); } } if ( event.type == EVENT_STUDIO_RUN ) // run/stop? { if ( m_script->IsRunning() ) { Event newEvent = event; newEvent.type = EVENT_OBJECT_PROGSTOP; m_event->AddEvent(newEvent); // stop } else { if ( m_script->GetScript(edit) ) // compile { SetInfoText("", false); Event newEvent = event; newEvent.type = EVENT_OBJECT_PROGSTART; m_event->AddEvent(newEvent); // start } else { std::string error; m_script->GetError(error); SetInfoText(error, false); } } } if ( event.type == EVENT_STUDIO_REALTIME ) // real time? { m_bRealTime = !m_bRealTime; m_script->SetStepMode(!m_bRealTime); UpdateFlux(); UpdateButtons(); } if ( event.type == EVENT_STUDIO_STEP ) // step? { m_script->Step(event); } if ( event.type == EVENT_KEY_DOWN ) { if ( event.key.key == m_main->GetInputBinding(INPUT_SLOT_CBOT).primary || event.key.key == m_main->GetInputBinding(INPUT_SLOT_CBOT).secondary ) { if ( m_helpFilename.length() > 0 ) { m_main->StartDisplayInfo(const_cast<char *>(m_helpFilename.c_str()), -1); // TODO change to std::string when RobotMain changes } } } if ( event.type == EVENT_WINDOW3 ) // window is moved? { m_editActualPos = m_editFinalPos = pw->GetPos(); m_editActualDim = m_editFinalDim = pw->GetDim(); m_main->SetWindowPos(m_editActualPos); m_main->SetWindowDim(m_editActualDim); AdjustEditScript(); } if ( event.type == pw->GetEventTypeReduce() ) { if ( m_bEditMinimized ) { m_editFinalPos = m_main->GetWindowPos(); m_editFinalDim = m_main->GetWindowDim(); m_bEditMinimized = false; m_bEditMaximized = false; } else { m_editFinalPos.x = 0.00f; m_editFinalPos.y = -0.44f; m_editFinalDim.x = 1.00f; m_editFinalDim.y = 0.50f; m_bEditMinimized = true; m_bEditMaximized = false; } m_main->SetEditFull(m_bEditMaximized); pw = static_cast< CWindow* >(m_interface->SearchControl(EVENT_WINDOW3)); if ( pw != nullptr ) { pw->SetMaximized(m_bEditMaximized); pw->SetMinimized(m_bEditMinimized); } } if ( event.type == pw->GetEventTypeFull() ) { if ( m_bEditMaximized ) { m_editFinalPos = m_main->GetWindowPos(); m_editFinalDim = m_main->GetWindowDim(); m_bEditMinimized = false; m_bEditMaximized = false; } else { m_editFinalPos.x = 0.00f; m_editFinalPos.y = 0.00f; m_editFinalDim.x = 1.00f; m_editFinalDim.y = 1.00f; m_bEditMinimized = false; m_bEditMaximized = true; } m_main->SetEditFull(m_bEditMaximized); pw = static_cast< CWindow* >(m_interface->SearchControl(EVENT_WINDOW3)); if ( pw != nullptr ) { pw->SetMaximized(m_bEditMaximized); pw->SetMinimized(m_bEditMinimized); } } return true; }