diff options
Diffstat (limited to 'Stars45/GameScreen.cpp')
-rw-r--r-- | Stars45/GameScreen.cpp | 1251 |
1 files changed, 0 insertions, 1251 deletions
diff --git a/Stars45/GameScreen.cpp b/Stars45/GameScreen.cpp deleted file mode 100644 index 87ce925..0000000 --- a/Stars45/GameScreen.cpp +++ /dev/null @@ -1,1251 +0,0 @@ -/* Starshatter: The Open Source Project - Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors - Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors - Copyright (c) 1997-2006, Destroyer Studios LLC. - - AUTHOR: John DiCamillo - -*/ - -#include "GameScreen.h" - -#include "Sim.h" -#include "Ship.h" -#include "DisplayView.h" -#include "HUDView.h" -#include "HUDSounds.h" -#include "WepView.h" -#include "QuantumView.h" -#include "QuitView.h" -#include "RadioView.h" -#include "TacticalView.h" -#include "NavDlg.h" -#include "EngDlg.h" -#include "FltDlg.h" -#include "AudDlg.h" -#include "VidDlg.h" -#include "OptDlg.h" -#include "CtlDlg.h" -#include "KeyDlg.h" -#include "JoyDlg.h" -#include "ModDlg.h" -#include "ModInfoDlg.h" -#include "FormDef.h" -#include "Starshatter.h" -#include "CameraDirector.h" - -#include "Game.h" -#include "Video.h" -#include "Screen.h" -#include "Window.h" -#include "ActiveWindow.h" -#include "Keyboard.h" -#include "Mouse.h" -#include "MouseController.h" -#include "CameraView.h" -#include "FadeView.h" -#include "Color.h" -#include "Bitmap.h" -#include "Font.h" -#include "FontMgr.h" -#include "EventDispatch.h" -#include "DataLoader.h" - -// +--------------------------------------------------------------------+ - -GameScreen* GameScreen::game_screen = 0; - -static MouseController* mouse_con = 0; -static bool mouse_active = false; - -// +--------------------------------------------------------------------+ - -GameScreen::GameScreen() -: screen(0), gamewin(0), -navdlg(0), wep_view(0), engdlg(0), fltdlg(0), -HUDfont(0), GUIfont(0), GUI_small_font(0), title_font(0), cam_view(0), -isShown(false), disp_view(0), hud_view(0), tac_view(0), radio_view(0), -quantum_view(0), quit_view(0), ctldlg(0), joydlg(0), keydlg(0), auddlg(0), -viddlg(0), moddlg(0), modInfoDlg(0), -flare1(0), flare2(0), flare3(0), flare4(0), -optdlg(0), cam_dir(0), sim(0) -{ - cam_dir = new CameraDirector; - sim = Sim::GetSim(); - loader = DataLoader::GetLoader(); - - // find the fonts: - HUDfont = FontMgr::Find("HUD"); - GUIfont = FontMgr::Find("GUI"); - GUI_small_font = FontMgr::Find("GUIsmall"); - title_font = FontMgr::Find("Title"); - - loader->LoadTexture("flare0+.pcx", flare1, Bitmap::BMP_TRANSLUCENT); - loader->LoadTexture("flare2.pcx", flare2, Bitmap::BMP_TRANSLUCENT); - loader->LoadTexture("flare3.pcx", flare3, Bitmap::BMP_TRANSLUCENT); - loader->LoadTexture("flare4.pcx", flare4, Bitmap::BMP_TRANSLUCENT); - - mouse_con = MouseController::GetInstance(); - game_screen = this; -} - -GameScreen::~GameScreen() -{ - TearDown(); - game_screen = 0; -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::Setup(Screen* s) -{ - if (!s) - return; - - screen = s; - - loader->UseFileSystem(true); - - // create windows - gamewin = new Window(screen, 0, 0, screen->Width(), screen->Height()); - - // attach views to windows (back to front) - // fade in: - gamewin->AddView(new FadeView(gamewin, 1, 0, 0)); - - // camera: - cam_dir = CameraDirector::GetInstance(); - cam_view = new CameraView(gamewin, cam_dir->GetCamera(), 0); - - if (cam_view) - gamewin->AddView(cam_view); - - // HUD: - hud_view = new HUDView(gamewin); - gamewin->AddView(hud_view); - - wep_view = new WepView(gamewin); - gamewin->AddView(wep_view); - - quantum_view = new QuantumView(gamewin); - gamewin->AddView(quantum_view); - - radio_view = new RadioView(gamewin); - gamewin->AddView(radio_view); - - tac_view = new TacticalView(gamewin, this); - gamewin->AddView(tac_view); - - disp_view = DisplayView::GetInstance(); - - // note: quit view must be last in chain - // so it can release window surface - quit_view = new QuitView(gamewin); - gamewin->AddView(quit_view); - - Starshatter* stars = Starshatter::GetInstance(); - - // initialize lens flare bitmaps: - if (stars->LensFlare()) { - cam_view->LensFlareElements(flare1, flare4, flare2, flare3); - cam_view->LensFlare(true); - } - - // if lens flare disabled, just create the corona: - else if (stars->Corona()) { - cam_view->LensFlareElements(flare1, 0, 0, 0); - cam_view->LensFlare(true); - } - - screen->AddWindow(gamewin); - - FormDef aud_def("AudDlg", 0); - aud_def.Load("AudDlg"); - auddlg = new AudDlg(screen, aud_def, this); - - FormDef ctl_def("CtlDlg", 0); - ctl_def.Load("CtlDlg"); - ctldlg = new CtlDlg(screen, ctl_def, this); - - FormDef opt_def("OptDlg", 0); - opt_def.Load("OptDlg"); - optdlg = new OptDlg(screen, opt_def, this); - - FormDef vid_def("VidDlg", 0); - vid_def.Load("VidDlg"); - viddlg = new VidDlg(screen, vid_def, this); - - FormDef mod_def("ModDlg", 0); - mod_def.Load("ModDlg"); - moddlg = new ModDlg(screen, mod_def, this); - - FormDef joy_def("JoyDlg", 0); - joy_def.Load("JoyDlg"); - joydlg = new JoyDlg(screen, joy_def, this); - - FormDef key_def("KeyDlg", 0); - key_def.Load("KeyDlg"); - keydlg = new KeyDlg(screen, key_def, this); - - FormDef mod_info_def("ModInfoDlg", 0); - mod_info_def.Load("ModInfoDlg"); - modInfoDlg = new ModInfoDlg(screen, mod_info_def, this); - - FormDef nav_def("NavDlg", 0); - nav_def.Load("NavDlg"); - navdlg = new NavDlg(screen, nav_def, this); - - FormDef eng_def("EngDlg", 0); - eng_def.Load("EngDlg"); - engdlg = new EngDlg(screen, eng_def, this); - - FormDef flt_def("FltDlg", 0); - flt_def.Load("FltDlg"); - fltdlg = new FltDlg(screen, flt_def, this); - - if (engdlg) engdlg->Hide(); - if (fltdlg) fltdlg->Hide(); - if (navdlg) navdlg->Hide(); - if (auddlg) auddlg->Hide(); - if (viddlg) viddlg->Hide(); - if (optdlg) optdlg->Hide(); - if (ctldlg) ctldlg->Hide(); - if (keydlg) keydlg->Hide(); - if (joydlg) joydlg->Hide(); - if (moddlg) moddlg->Hide(); - if (modInfoDlg) modInfoDlg->Hide(); - - screen->SetBackgroundColor(Color::Black); - - frame_rate = 0; - - loader->UseFileSystem(Starshatter::UseFileSystem()); -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::TearDown() -{ - if (gamewin && disp_view) - gamewin->DelView(disp_view); - - if (screen) { - screen->DelWindow(engdlg); - screen->DelWindow(fltdlg); - screen->DelWindow(navdlg); - screen->DelWindow(modInfoDlg); - screen->DelWindow(auddlg); - screen->DelWindow(viddlg); - screen->DelWindow(optdlg); - screen->DelWindow(moddlg); - screen->DelWindow(ctldlg); - screen->DelWindow(keydlg); - screen->DelWindow(joydlg); - screen->DelWindow(gamewin); - } - - delete engdlg; - delete fltdlg; - delete navdlg; - delete modInfoDlg; - delete auddlg; - delete viddlg; - delete optdlg; - delete moddlg; - delete ctldlg; - delete keydlg; - delete joydlg; - delete gamewin; - delete cam_dir; - - engdlg = 0; - fltdlg = 0; - navdlg = 0; - modInfoDlg = 0; - auddlg = 0; - viddlg = 0; - optdlg = 0; - moddlg = 0; - ctldlg = 0; - keydlg = 0; - joydlg = 0; - gamewin = 0; - screen = 0; - cam_dir = 0; - cam_view = 0; - disp_view = 0; -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::FrameRate(double f) -{ - frame_rate = f; -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::SetFieldOfView(double fov) -{ - cam_view->SetFieldOfView(fov); -} - -// +--------------------------------------------------------------------+ - -double -GameScreen::GetFieldOfView() const -{ - return cam_view->GetFieldOfView(); -} - -// +--------------------------------------------------------------------+ - -Bitmap* -GameScreen::GetLensFlare(int index) -{ - switch (index) { - case 0: return flare1; - case 1: return flare2; - case 2: return flare3; - case 3: return flare4; - } - - return 0; -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::ExecFrame() -{ - sim = Sim::GetSim(); - - if (sim) { - cam_view->UseCamera(CameraDirector::GetInstance()->GetCamera()); - cam_view->UseScene(sim->GetScene()); - - Ship* player = sim->GetPlayerShip(); - - if (player) { - bool dialog_showing = false; - - if (hud_view) { - hud_view->UseCameraView(cam_view); - hud_view->ExecFrame(); - } - - if (quit_view && quit_view->IsMenuShown()) { - quit_view->ExecFrame(); - dialog_showing = true; - } - - if (navdlg && navdlg->IsShown()) { - navdlg->SetShip(player); - navdlg->ExecFrame(); - dialog_showing = true; - } - - if (engdlg && engdlg->IsShown()) { - engdlg->SetShip(player); - engdlg->ExecFrame(); - dialog_showing = true; - } - - if (fltdlg && fltdlg->IsShown()) { - fltdlg->SetShip(player); - fltdlg->ExecFrame(); - dialog_showing = true; - } - - if (auddlg && auddlg->IsShown()) { - auddlg->ExecFrame(); - dialog_showing = true; - } - - if (viddlg && viddlg->IsShown()) { - viddlg->ExecFrame(); - dialog_showing = true; - } - - if (optdlg && optdlg->IsShown()) { - optdlg->ExecFrame(); - dialog_showing = true; - } - - if (ctldlg && ctldlg->IsShown()) { - ctldlg->ExecFrame(); - dialog_showing = true; - } - - if (keydlg && keydlg->IsShown()) { - keydlg->ExecFrame(); - dialog_showing = true; - } - - if (joydlg && joydlg->IsShown()) { - joydlg->ExecFrame(); - dialog_showing = true; - } - - if (moddlg && moddlg->IsShown()) { - moddlg->ExecFrame(); - dialog_showing = true; - } - - if (quantum_view && !dialog_showing) { - quantum_view->ExecFrame(); - } - - if (radio_view && !dialog_showing) { - radio_view->ExecFrame(); - } - - if (wep_view && !dialog_showing) { - wep_view->ExecFrame(); - } - - if (tac_view && !dialog_showing) { - if (cam_view) - tac_view->UseProjector(cam_view->GetProjector()); - tac_view->ExecFrame(); - } - } - - if (disp_view) { - disp_view->ExecFrame(); - } - } - - Starshatter* stars = Starshatter::GetInstance(); - - if (stars) { - if (stars->LensFlare()) { - cam_view->LensFlareElements(flare1, flare4, flare2, flare3); - cam_view->LensFlare(true); - } - - else if (stars->Corona()) { - cam_view->LensFlareElements(flare1, 0, 0, 0); - cam_view->LensFlare(true); - } - - else { - cam_view->LensFlare(false); - } - } -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::CycleMFDMode(int mfd) -{ - if (hud_view) - hud_view->CycleMFDMode(mfd); -} - -void -GameScreen::CycleHUDMode() -{ - if (hud_view) - hud_view->CycleHUDMode(); -} - -void -GameScreen::CycleHUDColor() -{ - if (hud_view) - hud_view->CycleHUDColor(); -} - -void -GameScreen::CycleHUDWarn() -{ - if (hud_view) - hud_view->CycleHUDWarn(); -} - -// +--------------------------------------------------------------------+ - -bool -GameScreen::CloseTopmost() -{ - bool processed = false; - - if (!gamewin) return processed; - - if (navdlg && navdlg->IsShown()) { - HideNavDlg(); - processed = true; - } - - else if (engdlg && engdlg->IsShown()) { - HideEngDlg(); - processed = true; - } - - else if (fltdlg && fltdlg->IsShown()) { - HideFltDlg(); - processed = true; - } - - else if (modInfoDlg && modInfoDlg->IsShown()) { - HideModInfoDlg(); - processed = true; - } - - else if (keydlg && keydlg->IsShown()) { - ShowCtlDlg(); - processed = true; - } - - else if (joydlg && joydlg->IsShown()) { - ShowCtlDlg(); - processed = true; - } - - else if (auddlg && auddlg->IsShown()) { - CancelOptions(); - processed = true; - } - - else if (viddlg && viddlg->IsShown()) { - CancelOptions(); - processed = true; - } - - else if (optdlg && optdlg->IsShown()) { - CancelOptions(); - processed = true; - } - - else if (moddlg && moddlg->IsShown()) { - CancelOptions(); - processed = true; - } - - else if (ctldlg && ctldlg->IsShown()) { - CancelOptions(); - processed = true; - } - - else if (quantum_view && quantum_view->IsMenuShown()) { - quantum_view->CloseMenu(); - processed = true; - } - - else if (quit_view && quit_view->IsMenuShown()) { - quit_view->CloseMenu(); - processed = true; - } - - else if (radio_view && radio_view->IsMenuShown()) { - radio_view->CloseMenu(); - processed = true; - } - - return processed; -} - -static Window* old_disp_win = 0; - -void -GameScreen::Show() -{ - if (!isShown) { - screen->AddWindow(gamewin); - isShown = true; - - if (disp_view) { - old_disp_win = disp_view->GetWindow(); - - disp_view->SetWindow(gamewin); - gamewin->AddView(disp_view); - } - } -} - -void -GameScreen::Hide() -{ - if (isShown) { - HideAll(); - - if (disp_view && gamewin) { - gamewin->DelView(disp_view); - disp_view->SetWindow(old_disp_win); - } - - if (engdlg) engdlg->SetShip(0); - if (fltdlg) fltdlg->SetShip(0); - if (navdlg) navdlg->SetShip(0); - - HUDSounds::StopSound(HUDSounds::SND_RED_ALERT); - - screen->DelWindow(gamewin); - isShown = false; - } -} - -// +--------------------------------------------------------------------+ - -bool -GameScreen::IsFormShown() const -{ - bool form_shown = false; - - if (navdlg && navdlg->IsShown()) - form_shown = true; - - else if (engdlg && engdlg->IsShown()) - form_shown = true; - - else if (fltdlg && fltdlg->IsShown()) - form_shown = true; - - else if (auddlg && auddlg->IsShown()) - form_shown = true; - - else if (viddlg && viddlg->IsShown()) - form_shown = true; - - else if (optdlg && optdlg->IsShown()) - form_shown = true; - - else if (moddlg && moddlg->IsShown()) - form_shown = true; - - else if (ctldlg && ctldlg->IsShown()) - form_shown = true; - - else if (keydlg && keydlg->IsShown()) - form_shown = true; - - else if (joydlg && joydlg->IsShown()) - form_shown = true; - - return form_shown; -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::ShowExternal() -{ - if (!gamewin) return; - - if ((navdlg && navdlg->IsShown()) || - (engdlg && engdlg->IsShown()) || - (fltdlg && fltdlg->IsShown()) || - (auddlg && auddlg->IsShown()) || - (viddlg && viddlg->IsShown()) || - (optdlg && optdlg->IsShown()) || - (moddlg && moddlg->IsShown()) || - (ctldlg && ctldlg->IsShown()) || - (keydlg && keydlg->IsShown()) || - (joydlg && joydlg->IsShown())) - return; - - gamewin->MoveTo(Rect(0, 0, screen->Width(), screen->Height())); - screen->AddWindow(gamewin); -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::ShowNavDlg() -{ - if (!gamewin) return; - - if (navdlg && !navdlg->IsShown()) { - HideAll(); - - navdlg->SetSystem(sim->GetStarSystem()); - navdlg->SetShip(sim->GetPlayerShip()); - navdlg->Show(); - - if (mouse_con) { - mouse_active = mouse_con->Active(); - mouse_con->SetActive(false); - } - - Mouse::Show(true); - } - else { - HideNavDlg(); - } -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::HideNavDlg() -{ - if (!gamewin) return; - - if (navdlg && navdlg->IsShown()) { - navdlg->Hide(); - - if (mouse_con) - mouse_con->SetActive(mouse_active); - - Mouse::Show(false); - screen->AddWindow(gamewin); - } -} - -// +--------------------------------------------------------------------+ - -bool -GameScreen::IsNavShown() -{ - return gamewin && navdlg && navdlg->IsShown(); -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::ShowEngDlg() -{ - if (!gamewin) return; - - if (engdlg && !engdlg->IsShown()) { - HideAll(); - - engdlg->SetShip(sim->GetPlayerShip()); - engdlg->Show(); - - if (mouse_con) { - mouse_active = mouse_con->Active(); - mouse_con->SetActive(false); - } - - Mouse::Show(true); - } - else { - HideEngDlg(); - } -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::HideEngDlg() -{ - if (!gamewin) return; - - if (engdlg && engdlg->IsShown()) { - engdlg->Hide(); - - if (mouse_con) - mouse_con->SetActive(mouse_active); - - Mouse::Show(false); - screen->AddWindow(gamewin); - } -} - -// +--------------------------------------------------------------------+ - -bool -GameScreen::IsEngShown() -{ - return gamewin && engdlg && engdlg->IsShown(); -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::ShowFltDlg() -{ - if (!gamewin) return; - - if (fltdlg && !fltdlg->IsShown()) { - HideAll(); - - fltdlg->SetShip(sim->GetPlayerShip()); - fltdlg->Show(); - - if (mouse_con) { - mouse_active = mouse_con->Active(); - mouse_con->SetActive(false); - } - - Mouse::Show(true); - } - else { - HideFltDlg(); - } -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::HideFltDlg() -{ - if (!gamewin) return; - - if (fltdlg && fltdlg->IsShown()) { - fltdlg->Hide(); - - if (mouse_con) - mouse_con->SetActive(mouse_active); - - Mouse::Show(false); - screen->AddWindow(gamewin); - } -} - -// +--------------------------------------------------------------------+ - -bool -GameScreen::IsFltShown() -{ - return gamewin && fltdlg && fltdlg->IsShown(); -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::ShowAudDlg() -{ - if (auddlg) { - if (quit_view) { - quit_view->CloseMenu(); - Game::GetInstance()->Pause(true); - } - - HideAll(); - - auddlg->Show(); - auddlg->SetTopMost(true); - - if (mouse_con) { - mouse_active = mouse_con->Active(); - mouse_con->SetActive(false); - } - - Mouse::Show(true); - } -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::HideAudDlg() -{ - if (auddlg && auddlg->IsShown()) { - auddlg->Hide(); - Mouse::Show(false); - screen->AddWindow(gamewin); - - if (quit_view) - quit_view->ShowMenu(); - } -} - -// +--------------------------------------------------------------------+ - -bool -GameScreen::IsAudShown() -{ - return auddlg && auddlg->IsShown(); -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::ShowVidDlg() -{ - if (viddlg) { - if (quit_view) { - quit_view->CloseMenu(); - Game::GetInstance()->Pause(true); - } - - HideAll(); - - viddlg->Show(); - viddlg->SetTopMost(true); - - if (mouse_con) { - mouse_active = mouse_con->Active(); - mouse_con->SetActive(false); - } - - Mouse::Show(true); - } -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::HideVidDlg() -{ - if (viddlg && viddlg->IsShown()) { - viddlg->Hide(); - Mouse::Show(false); - screen->AddWindow(gamewin); - - if (quit_view) - quit_view->ShowMenu(); - } -} - -// +--------------------------------------------------------------------+ - -bool -GameScreen::IsVidShown() -{ - return viddlg && viddlg->IsShown(); -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::ShowOptDlg() -{ - if (optdlg) { - if (quit_view) { - quit_view->CloseMenu(); - Game::GetInstance()->Pause(true); - } - - HideAll(); - - optdlg->Show(); - optdlg->SetTopMost(true); - - if (mouse_con) { - mouse_active = mouse_con->Active(); - mouse_con->SetActive(false); - } - - Mouse::Show(true); - } -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::HideOptDlg() -{ - if (optdlg && optdlg->IsShown()) { - optdlg->Hide(); - Mouse::Show(false); - screen->AddWindow(gamewin); - - if (quit_view) - quit_view->ShowMenu(); - } -} - -// +--------------------------------------------------------------------+ - -bool -GameScreen::IsOptShown() -{ - return optdlg && optdlg->IsShown(); -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::ShowModDlg() -{ - if (moddlg) { - if (quit_view) { - quit_view->CloseMenu(); - Game::GetInstance()->Pause(true); - } - - HideAll(); - - moddlg->Show(); - moddlg->SetTopMost(true); - - if (mouse_con) { - mouse_active = mouse_con->Active(); - mouse_con->SetActive(false); - } - - Mouse::Show(true); - } -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::HideModDlg() -{ - if (moddlg && moddlg->IsShown()) { - moddlg->Hide(); - Mouse::Show(false); - screen->AddWindow(gamewin); - - if (quit_view) - quit_view->ShowMenu(); - } -} - -// +--------------------------------------------------------------------+ - -bool -GameScreen::IsModShown() -{ - return moddlg && moddlg->IsShown(); -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::ShowModInfoDlg() -{ - if (moddlg && modInfoDlg) { - if (quit_view) { - quit_view->CloseMenu(); - Game::GetInstance()->Pause(true); - } - - HideAll(); - - moddlg->Show(); - moddlg->SetTopMost(false); - - modInfoDlg->Show(); - modInfoDlg->SetTopMost(true); - - if (mouse_con) { - mouse_active = mouse_con->Active(); - mouse_con->SetActive(false); - } - - Mouse::Show(true); - } -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::HideModInfoDlg() -{ - ShowModDlg(); -} - -// +--------------------------------------------------------------------+ - -bool -GameScreen::IsModInfoShown() -{ - return modInfoDlg && modInfoDlg->IsShown(); -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::ShowCtlDlg() -{ - if (ctldlg) { - if (quit_view) { - quit_view->CloseMenu(); - Game::GetInstance()->Pause(true); - } - - HideAll(); - - ctldlg->Show(); - ctldlg->SetTopMost(true); - - if (mouse_con) { - mouse_active = mouse_con->Active(); - mouse_con->SetActive(false); - } - - Mouse::Show(true); - } -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::HideCtlDlg() -{ - if (ctldlg && ctldlg->IsShown()) { - ctldlg->Hide(); - Mouse::Show(false); - screen->AddWindow(gamewin); - - if (quit_view) - quit_view->ShowMenu(); - } -} - -// +--------------------------------------------------------------------+ - -bool -GameScreen::IsCtlShown() -{ - return ctldlg && ctldlg->IsShown(); -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::ShowKeyDlg() -{ - if (keydlg) { - if (quit_view) { - quit_view->CloseMenu(); - Game::GetInstance()->Pause(true); - } - - HideAll(); - - if (ctldlg) { - ctldlg->Show(); - ctldlg->SetTopMost(false); - } - - if (keydlg) keydlg->Show(); - - if (mouse_con) { - mouse_con->SetActive(false); - } - - Mouse::Show(true); - } -} - -// +--------------------------------------------------------------------+ - -bool -GameScreen::IsKeyShown() -{ - return keydlg && keydlg->IsShown(); -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::ShowJoyDlg() -{ - if (joydlg) { - if (quit_view) { - quit_view->CloseMenu(); - Game::GetInstance()->Pause(true); - } - - HideAll(); - - if (ctldlg) { - ctldlg->Show(); - ctldlg->SetTopMost(false); - } - - if (joydlg) joydlg->Show(); - - if (mouse_con) { - mouse_con->SetActive(false); - } - - Mouse::Show(true); - } -} - -// +--------------------------------------------------------------------+ - -bool -GameScreen::IsJoyShown() -{ - return joydlg && joydlg->IsShown(); -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::ShowWeaponsOverlay() -{ - if (wep_view) - wep_view->CycleOverlayMode(); -} - -void -GameScreen::HideWeaponsOverlay() -{ - if (wep_view) - wep_view->SetOverlayMode(0); -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::HideAll() -{ - screen->DelWindow(gamewin); - - if (engdlg) engdlg->Hide(); - if (fltdlg) fltdlg->Hide(); - if (navdlg) navdlg->Hide(); - if (auddlg) auddlg->Hide(); - if (viddlg) viddlg->Hide(); - if (optdlg) optdlg->Hide(); - if (moddlg) moddlg->Hide(); - if (modInfoDlg) modInfoDlg->Hide(); - if (ctldlg) ctldlg->Hide(); - if (keydlg) keydlg->Hide(); - if (joydlg) joydlg->Hide(); -} - -// +--------------------------------------------------------------------+ - -void -GameScreen::ApplyOptions() -{ - if (ctldlg) ctldlg->Apply(); - if (optdlg) optdlg->Apply(); - if (auddlg) auddlg->Apply(); - if (viddlg) viddlg->Apply(); - - if (engdlg) engdlg->Hide(); - if (fltdlg) fltdlg->Hide(); - if (navdlg) navdlg->Hide(); - if (ctldlg) ctldlg->Hide(); - if (auddlg) auddlg->Hide(); - if (viddlg) viddlg->Hide(); - if (optdlg) optdlg->Hide(); - if (moddlg) moddlg->Hide(); - if (keydlg) keydlg->Hide(); - if (joydlg) joydlg->Hide(); - - Mouse::Show(false); - screen->AddWindow(gamewin); - Game::GetInstance()->Pause(false); -} - -void -GameScreen::CancelOptions() -{ - if (ctldlg) ctldlg->Cancel(); - if (optdlg) optdlg->Cancel(); - if (auddlg) auddlg->Cancel(); - if (viddlg) viddlg->Cancel(); - - if (engdlg) engdlg->Hide(); - if (fltdlg) fltdlg->Hide(); - if (navdlg) navdlg->Hide(); - if (ctldlg) ctldlg->Hide(); - if (auddlg) auddlg->Hide(); - if (viddlg) viddlg->Hide(); - if (optdlg) optdlg->Hide(); - if (moddlg) moddlg->Hide(); - if (keydlg) keydlg->Hide(); - if (joydlg) joydlg->Hide(); - - Mouse::Show(false); - screen->AddWindow(gamewin); - Game::GetInstance()->Pause(false); -} |