From 8898ad9b25fca6afe2374d293a981db02a83d7e9 Mon Sep 17 00:00:00 2001 From: "FWoltermann@gmail.com" Date: Thu, 31 May 2012 14:46:27 +0000 Subject: Committing the documentation to svn to have it accessible online --- Doc/doxygen/html/_game_screen_8cpp_source.html | 1371 ++++++++++++++++++++++++ 1 file changed, 1371 insertions(+) create mode 100644 Doc/doxygen/html/_game_screen_8cpp_source.html (limited to 'Doc/doxygen/html/_game_screen_8cpp_source.html') diff --git a/Doc/doxygen/html/_game_screen_8cpp_source.html b/Doc/doxygen/html/_game_screen_8cpp_source.html new file mode 100644 index 0000000..caa8138 --- /dev/null +++ b/Doc/doxygen/html/_game_screen_8cpp_source.html @@ -0,0 +1,1371 @@ + + + + + +Starshatter_Open: D:/SRC/StarshatterSVN/Stars45/GameScreen.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
Starshatter_Open +
+
Open source Starshatter engine
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
GameScreen.cpp
+
+
+Go to the documentation of this file.
1 /* Project Starshatter 4.5
+
2  Destroyer Studios LLC
+
3  Copyright © 1997-2004. All Rights Reserved.
+
4 
+
5  SUBSYSTEM: Stars
+
6  FILE: GameScreen.cpp
+
7  AUTHOR: John DiCamillo
+
8 
+
9 */
+
10 
+
11 #include "MemDebug.h"
+
12 #include "GameScreen.h"
+
13 
+
14 #include "Sim.h"
+
15 #include "Ship.h"
+
16 #include "DisplayView.h"
+
17 #include "HUDView.h"
+
18 #include "HUDSounds.h"
+
19 #include "WepView.h"
+
20 #include "QuantumView.h"
+
21 #include "QuitView.h"
+
22 #include "RadioView.h"
+
23 #include "TacticalView.h"
+
24 #include "NavDlg.h"
+
25 #include "EngDlg.h"
+
26 #include "FltDlg.h"
+
27 #include "AudDlg.h"
+
28 #include "VidDlg.h"
+
29 #include "OptDlg.h"
+
30 #include "CtlDlg.h"
+
31 #include "KeyDlg.h"
+
32 #include "JoyDlg.h"
+
33 #include "ModDlg.h"
+
34 #include "ModInfoDlg.h"
+
35 #include "FormDef.h"
+
36 #include "Starshatter.h"
+
37 #include "CameraDirector.h"
+
38 
+
39 #include "Game.h"
+
40 #include "Video.h"
+
41 #include "Screen.h"
+
42 #include "Window.h"
+
43 #include "ActiveWindow.h"
+
44 #include "Keyboard.h"
+
45 #include "Mouse.h"
+
46 #include "MouseController.h"
+
47 #include "CameraView.h"
+
48 #include "FadeView.h"
+
49 #include "Color.h"
+
50 #include "Bitmap.h"
+
51 #include "Font.h"
+
52 #include "FontMgr.h"
+
53 #include "EventDispatch.h"
+
54 #include "DataLoader.h"
+
55 #include "Resource.h"
+
56 
+
57 // +--------------------------------------------------------------------+
+
58 
+
59 GameScreen* GameScreen::game_screen = 0;
+
60 
+
61 static MouseController* mouse_con = 0;
+
62 static bool mouse_active = false;
+
63 
+
64 // +--------------------------------------------------------------------+
+
65 
+ +
67 : screen(0), gamewin(0),
+
68 navdlg(0), wep_view(0), engdlg(0), fltdlg(0),
+
69 HUDfont(0), GUIfont(0), GUI_small_font(0), title_font(0), cam_view(0),
+
70 isShown(false), disp_view(0), hud_view(0), tac_view(0), radio_view(0),
+
71 quantum_view(0), quit_view(0), ctldlg(0), joydlg(0), keydlg(0), auddlg(0),
+
72 viddlg(0), moddlg(0), modInfoDlg(0),
+
73 flare1(0), flare2(0), flare3(0), flare4(0),
+
74 optdlg(0), cam_dir(0), sim(0)
+
75 {
+
76  cam_dir = new(__FILE__,__LINE__) CameraDirector;
+
77  sim = Sim::GetSim();
+
78  loader = DataLoader::GetLoader();
+
79 
+
80  // find the fonts:
+
81  HUDfont = FontMgr::Find("HUD");
+
82  GUIfont = FontMgr::Find("GUI");
+
83  GUI_small_font = FontMgr::Find("GUIsmall");
+
84  title_font = FontMgr::Find("Title");
+
85 
+
86  loader->LoadTexture("flare0+.pcx", flare1, Bitmap::BMP_TRANSLUCENT);
+
87  loader->LoadTexture("flare2.pcx", flare2, Bitmap::BMP_TRANSLUCENT);
+
88  loader->LoadTexture("flare3.pcx", flare3, Bitmap::BMP_TRANSLUCENT);
+
89  loader->LoadTexture("flare4.pcx", flare4, Bitmap::BMP_TRANSLUCENT);
+
90 
+
91  mouse_con = MouseController::GetInstance();
+
92  game_screen = this;
+
93 }
+
94 
+ +
96 {
+
97  TearDown();
+
98  game_screen = 0;
+
99 }
+
100 
+
101 // +--------------------------------------------------------------------+
+
102 
+
103 void
+ +
105 {
+
106  if (!s)
+
107  return;
+
108 
+
109  screen = s;
+
110 
+
111  loader->UseFileSystem(true);
+
112 
+
113  // create windows
+
114  gamewin = new(__FILE__,__LINE__) Window(screen, 0, 0, screen->Width(), screen->Height());
+
115 
+
116  // attach views to windows (back to front)
+
117  // fade in:
+
118  gamewin->AddView(new(__FILE__,__LINE__) FadeView(gamewin, 1, 0, 0));
+
119 
+
120  // camera:
+
121  cam_dir = CameraDirector::GetInstance();
+
122  cam_view = new(__FILE__,__LINE__) CameraView(gamewin, cam_dir->GetCamera(), 0);
+
123 
+
124  if (cam_view)
+
125  gamewin->AddView(cam_view);
+
126 
+
127  // HUD:
+
128  hud_view = new(__FILE__,__LINE__) HUDView(gamewin);
+
129  gamewin->AddView(hud_view);
+
130 
+
131  wep_view = new(__FILE__,__LINE__) WepView(gamewin);
+
132  gamewin->AddView(wep_view);
+
133 
+
134  quantum_view = new(__FILE__,__LINE__) QuantumView(gamewin);
+
135  gamewin->AddView(quantum_view);
+
136 
+
137  radio_view = new(__FILE__,__LINE__) RadioView(gamewin);
+
138  gamewin->AddView(radio_view);
+
139 
+
140  tac_view = new(__FILE__,__LINE__) TacticalView(gamewin, this);
+
141  gamewin->AddView(tac_view);
+
142 
+
143  disp_view = DisplayView::GetInstance();
+
144 
+
145  // note: quit view must be last in chain
+
146  // so it can release window surface
+
147  quit_view = new(__FILE__,__LINE__) QuitView(gamewin);
+
148  gamewin->AddView(quit_view);
+
149 
+ +
151 
+
152  // initialize lens flare bitmaps:
+
153  if (stars->LensFlare()) {
+
154  cam_view->LensFlareElements(flare1, flare4, flare2, flare3);
+
155  cam_view->LensFlare(true);
+
156  }
+
157 
+
158  // if lens flare disabled, just create the corona:
+
159  else if (stars->Corona()) {
+
160  cam_view->LensFlareElements(flare1, 0, 0, 0);
+
161  cam_view->LensFlare(true);
+
162  }
+
163 
+
164  screen->AddWindow(gamewin);
+
165 
+
166  FormDef aud_def("AudDlg", 0);
+
167  aud_def.Load("AudDlg");
+
168  auddlg = new(__FILE__,__LINE__) AudDlg(screen, aud_def, this);
+
169 
+
170  FormDef ctl_def("CtlDlg", 0);
+
171  ctl_def.Load("CtlDlg");
+
172  ctldlg = new(__FILE__,__LINE__) CtlDlg(screen, ctl_def, this);
+
173 
+
174  FormDef opt_def("OptDlg", 0);
+
175  opt_def.Load("OptDlg");
+
176  optdlg = new(__FILE__,__LINE__) OptDlg(screen, opt_def, this);
+
177 
+
178  FormDef vid_def("VidDlg", 0);
+
179  vid_def.Load("VidDlg");
+
180  viddlg = new(__FILE__,__LINE__) VidDlg(screen, vid_def, this);
+
181 
+
182  FormDef mod_def("ModDlg", 0);
+
183  mod_def.Load("ModDlg");
+
184  moddlg = new(__FILE__,__LINE__) ModDlg(screen, mod_def, this);
+
185 
+
186  FormDef joy_def("JoyDlg", 0);
+
187  joy_def.Load("JoyDlg");
+
188  joydlg = new(__FILE__,__LINE__) JoyDlg(screen, joy_def, this);
+
189 
+
190  FormDef key_def("KeyDlg", 0);
+
191  key_def.Load("KeyDlg");
+
192  keydlg = new(__FILE__,__LINE__) KeyDlg(screen, key_def, this);
+
193 
+
194  FormDef mod_info_def("ModInfoDlg", 0);
+
195  mod_info_def.Load("ModInfoDlg");
+
196  modInfoDlg = new(__FILE__,__LINE__) ModInfoDlg(screen, mod_info_def, this);
+
197 
+
198  FormDef nav_def("NavDlg", 0);
+
199  nav_def.Load("NavDlg");
+
200  navdlg = new(__FILE__,__LINE__) NavDlg(screen, nav_def, this);
+
201 
+
202  FormDef eng_def("EngDlg", 0);
+
203  eng_def.Load("EngDlg");
+
204  engdlg = new(__FILE__,__LINE__) EngDlg(screen, eng_def, this);
+
205 
+
206  FormDef flt_def("FltDlg", 0);
+
207  flt_def.Load("FltDlg");
+
208  fltdlg = new(__FILE__,__LINE__) FltDlg(screen, flt_def, this);
+
209 
+
210  if (engdlg) engdlg->Hide();
+
211  if (fltdlg) fltdlg->Hide();
+
212  if (navdlg) navdlg->Hide();
+
213  if (auddlg) auddlg->Hide();
+
214  if (viddlg) viddlg->Hide();
+
215  if (optdlg) optdlg->Hide();
+
216  if (ctldlg) ctldlg->Hide();
+
217  if (keydlg) keydlg->Hide();
+
218  if (joydlg) joydlg->Hide();
+
219  if (moddlg) moddlg->Hide();
+
220  if (modInfoDlg) modInfoDlg->Hide();
+
221 
+ +
223 
+
224  frame_rate = 0;
+
225 
+ +
227 }
+
228 
+
229 // +--------------------------------------------------------------------+
+
230 
+
231 void
+ +
233 {
+
234  if (gamewin && disp_view)
+
235  gamewin->DelView(disp_view);
+
236 
+
237  if (screen) {
+
238  screen->DelWindow(engdlg);
+
239  screen->DelWindow(fltdlg);
+
240  screen->DelWindow(navdlg);
+
241  screen->DelWindow(modInfoDlg);
+
242  screen->DelWindow(auddlg);
+
243  screen->DelWindow(viddlg);
+
244  screen->DelWindow(optdlg);
+
245  screen->DelWindow(moddlg);
+
246  screen->DelWindow(ctldlg);
+
247  screen->DelWindow(keydlg);
+
248  screen->DelWindow(joydlg);
+
249  screen->DelWindow(gamewin);
+
250  }
+
251 
+
252  delete engdlg;
+
253  delete fltdlg;
+
254  delete navdlg;
+
255  delete modInfoDlg;
+
256  delete auddlg;
+
257  delete viddlg;
+
258  delete optdlg;
+
259  delete moddlg;
+
260  delete ctldlg;
+
261  delete keydlg;
+
262  delete joydlg;
+
263  delete gamewin;
+
264  delete cam_dir;
+
265 
+
266  engdlg = 0;
+
267  fltdlg = 0;
+
268  navdlg = 0;
+
269  modInfoDlg = 0;
+
270  auddlg = 0;
+
271  viddlg = 0;
+
272  optdlg = 0;
+
273  moddlg = 0;
+
274  ctldlg = 0;
+
275  keydlg = 0;
+
276  joydlg = 0;
+
277  gamewin = 0;
+
278  screen = 0;
+
279  cam_dir = 0;
+
280  cam_view = 0;
+
281  disp_view = 0;
+
282 }
+
283 
+
284 // +--------------------------------------------------------------------+
+
285 
+
286 void
+ +
288 {
+
289  frame_rate = f;
+
290 }
+
291 
+
292 // +--------------------------------------------------------------------+
+
293 
+
294 void
+ +
296 {
+
297  cam_view->SetFieldOfView(fov);
+
298 }
+
299 
+
300 // +--------------------------------------------------------------------+
+
301 
+
302 double
+ +
304 {
+
305  return cam_view->GetFieldOfView();
+
306 }
+
307 
+
308 // +--------------------------------------------------------------------+
+
309 
+
310 Bitmap*
+ +
312 {
+
313  switch (index) {
+
314  case 0: return flare1;
+
315  case 1: return flare2;
+
316  case 2: return flare3;
+
317  case 3: return flare4;
+
318  }
+
319 
+
320  return 0;
+
321 }
+
322 
+
323 // +--------------------------------------------------------------------+
+
324 
+
325 void
+ +
327 {
+
328  sim = Sim::GetSim();
+
329 
+
330  if (sim) {
+
331  cam_view->UseCamera(CameraDirector::GetInstance()->GetCamera());
+
332  cam_view->UseScene(sim->GetScene());
+
333 
+
334  Ship* player = sim->GetPlayerShip();
+
335 
+
336  if (player) {
+
337  bool dialog_showing = false;
+
338 
+
339  if (hud_view) {
+
340  hud_view->UseCameraView(cam_view);
+
341  hud_view->ExecFrame();
+
342  }
+
343 
+
344  if (quit_view && quit_view->IsMenuShown()) {
+
345  quit_view->ExecFrame();
+
346  dialog_showing = true;
+
347  }
+
348 
+
349  if (navdlg && navdlg->IsShown()) {
+
350  navdlg->SetShip(player);
+
351  navdlg->ExecFrame();
+
352  dialog_showing = true;
+
353  }
+
354 
+
355  if (engdlg && engdlg->IsShown()) {
+
356  engdlg->SetShip(player);
+
357  engdlg->ExecFrame();
+
358  dialog_showing = true;
+
359  }
+
360 
+
361  if (fltdlg && fltdlg->IsShown()) {
+
362  fltdlg->SetShip(player);
+
363  fltdlg->ExecFrame();
+
364  dialog_showing = true;
+
365  }
+
366 
+
367  if (auddlg && auddlg->IsShown()) {
+
368  auddlg->ExecFrame();
+
369  dialog_showing = true;
+
370  }
+
371 
+
372  if (viddlg && viddlg->IsShown()) {
+
373  viddlg->ExecFrame();
+
374  dialog_showing = true;
+
375  }
+
376 
+
377  if (optdlg && optdlg->IsShown()) {
+
378  optdlg->ExecFrame();
+
379  dialog_showing = true;
+
380  }
+
381 
+
382  if (ctldlg && ctldlg->IsShown()) {
+
383  ctldlg->ExecFrame();
+
384  dialog_showing = true;
+
385  }
+
386 
+
387  if (keydlg && keydlg->IsShown()) {
+
388  keydlg->ExecFrame();
+
389  dialog_showing = true;
+
390  }
+
391 
+
392  if (joydlg && joydlg->IsShown()) {
+
393  joydlg->ExecFrame();
+
394  dialog_showing = true;
+
395  }
+
396 
+
397  if (moddlg && moddlg->IsShown()) {
+
398  moddlg->ExecFrame();
+
399  dialog_showing = true;
+
400  }
+
401 
+
402  if (quantum_view && !dialog_showing) {
+
403  quantum_view->ExecFrame();
+
404  }
+
405 
+
406  if (radio_view && !dialog_showing) {
+
407  radio_view->ExecFrame();
+
408  }
+
409 
+
410  if (wep_view && !dialog_showing) {
+
411  wep_view->ExecFrame();
+
412  }
+
413 
+
414  if (tac_view && !dialog_showing) {
+
415  if (cam_view)
+
416  tac_view->UseProjector(cam_view->GetProjector());
+
417  tac_view->ExecFrame();
+
418  }
+
419  }
+
420 
+
421  if (disp_view) {
+
422  disp_view->ExecFrame();
+
423  }
+
424  }
+
425 
+ +
427 
+
428  if (stars) {
+
429  if (stars->LensFlare()) {
+
430  cam_view->LensFlareElements(flare1, flare4, flare2, flare3);
+
431  cam_view->LensFlare(true);
+
432  }
+
433 
+
434  else if (stars->Corona()) {
+
435  cam_view->LensFlareElements(flare1, 0, 0, 0);
+
436  cam_view->LensFlare(true);
+
437  }
+
438 
+
439  else {
+
440  cam_view->LensFlare(false);
+
441  }
+
442  }
+
443 }
+
444 
+
445 // +--------------------------------------------------------------------+
+
446 
+
447 void
+ +
449 {
+
450  if (hud_view)
+
451  hud_view->CycleMFDMode(mfd);
+
452 }
+
453 
+
454 void
+ +
456 {
+
457  if (hud_view)
+
458  hud_view->CycleHUDMode();
+
459 }
+
460 
+
461 void
+ +
463 {
+
464  if (hud_view)
+
465  hud_view->CycleHUDColor();
+
466 }
+
467 
+
468 void
+ +
470 {
+
471  if (hud_view)
+
472  hud_view->CycleHUDWarn();
+
473 }
+
474 
+
475 // +--------------------------------------------------------------------+
+
476 
+
477 bool
+ +
479 {
+
480  bool processed = false;
+
481 
+
482  if (!gamewin) return processed;
+
483 
+
484  if (navdlg && navdlg->IsShown()) {
+
485  HideNavDlg();
+
486  processed = true;
+
487  }
+
488 
+
489  else if (engdlg && engdlg->IsShown()) {
+
490  HideEngDlg();
+
491  processed = true;
+
492  }
+
493 
+
494  else if (fltdlg && fltdlg->IsShown()) {
+
495  HideFltDlg();
+
496  processed = true;
+
497  }
+
498 
+
499  else if (modInfoDlg && modInfoDlg->IsShown()) {
+
500  HideModInfoDlg();
+
501  processed = true;
+
502  }
+
503 
+
504  else if (keydlg && keydlg->IsShown()) {
+
505  ShowCtlDlg();
+
506  processed = true;
+
507  }
+
508 
+
509  else if (joydlg && joydlg->IsShown()) {
+
510  ShowCtlDlg();
+
511  processed = true;
+
512  }
+
513 
+
514  else if (auddlg && auddlg->IsShown()) {
+
515  CancelOptions();
+
516  processed = true;
+
517  }
+
518 
+
519  else if (viddlg && viddlg->IsShown()) {
+
520  CancelOptions();
+
521  processed = true;
+
522  }
+
523 
+
524  else if (optdlg && optdlg->IsShown()) {
+
525  CancelOptions();
+
526  processed = true;
+
527  }
+
528 
+
529  else if (moddlg && moddlg->IsShown()) {
+
530  CancelOptions();
+
531  processed = true;
+
532  }
+
533 
+
534  else if (ctldlg && ctldlg->IsShown()) {
+
535  CancelOptions();
+
536  processed = true;
+
537  }
+
538 
+
539  else if (quantum_view && quantum_view->IsMenuShown()) {
+
540  quantum_view->CloseMenu();
+
541  processed = true;
+
542  }
+
543 
+
544  else if (quit_view && quit_view->IsMenuShown()) {
+
545  quit_view->CloseMenu();
+
546  processed = true;
+
547  }
+
548 
+
549  else if (radio_view && radio_view->IsMenuShown()) {
+
550  radio_view->CloseMenu();
+
551  processed = true;
+
552  }
+
553 
+
554  return processed;
+
555 }
+
556 
+
557 static Window* old_disp_win = 0;
+
558 
+
559 void
+ +
561 {
+
562  if (!isShown) {
+
563  screen->AddWindow(gamewin);
+
564  isShown = true;
+
565 
+
566  if (disp_view) {
+
567  old_disp_win = disp_view->GetWindow();
+
568 
+
569  disp_view->SetWindow(gamewin);
+
570  gamewin->AddView(disp_view);
+
571  }
+
572  }
+
573 }
+
574 
+
575 void
+ +
577 {
+
578  if (isShown) {
+
579  HideAll();
+
580 
+
581  if (disp_view && gamewin) {
+
582  gamewin->DelView(disp_view);
+
583  disp_view->SetWindow(old_disp_win);
+
584  }
+
585 
+
586  if (engdlg) engdlg->SetShip(0);
+
587  if (fltdlg) fltdlg->SetShip(0);
+
588  if (navdlg) navdlg->SetShip(0);
+
589 
+ +
591 
+
592  screen->DelWindow(gamewin);
+
593  isShown = false;
+
594  }
+
595 }
+
596 
+
597 // +--------------------------------------------------------------------+
+
598 
+
599 bool
+ +
601 {
+
602  bool form_shown = false;
+
603 
+
604  if (navdlg && navdlg->IsShown())
+
605  form_shown = true;
+
606 
+
607  else if (engdlg && engdlg->IsShown())
+
608  form_shown = true;
+
609 
+
610  else if (fltdlg && fltdlg->IsShown())
+
611  form_shown = true;
+
612 
+
613  else if (auddlg && auddlg->IsShown())
+
614  form_shown = true;
+
615 
+
616  else if (viddlg && viddlg->IsShown())
+
617  form_shown = true;
+
618 
+
619  else if (optdlg && optdlg->IsShown())
+
620  form_shown = true;
+
621 
+
622  else if (moddlg && moddlg->IsShown())
+
623  form_shown = true;
+
624 
+
625  else if (ctldlg && ctldlg->IsShown())
+
626  form_shown = true;
+
627 
+
628  else if (keydlg && keydlg->IsShown())
+
629  form_shown = true;
+
630 
+
631  else if (joydlg && joydlg->IsShown())
+
632  form_shown = true;
+
633 
+
634  return form_shown;
+
635 }
+
636 
+
637 // +--------------------------------------------------------------------+
+
638 
+
639 void
+ +
641 {
+
642  if (!gamewin) return;
+
643 
+
644  if ((navdlg && navdlg->IsShown()) ||
+
645  (engdlg && engdlg->IsShown()) ||
+
646  (fltdlg && fltdlg->IsShown()) ||
+
647  (auddlg && auddlg->IsShown()) ||
+
648  (viddlg && viddlg->IsShown()) ||
+
649  (optdlg && optdlg->IsShown()) ||
+
650  (moddlg && moddlg->IsShown()) ||
+
651  (ctldlg && ctldlg->IsShown()) ||
+
652  (keydlg && keydlg->IsShown()) ||
+
653  (joydlg && joydlg->IsShown()))
+
654  return;
+
655 
+
656  gamewin->MoveTo(Rect(0, 0, screen->Width(), screen->Height()));
+
657  screen->AddWindow(gamewin);
+
658 }
+
659 
+
660 // +--------------------------------------------------------------------+
+
661 
+
662 void
+ +
664 {
+
665  if (!gamewin) return;
+
666 
+
667  if (navdlg && !navdlg->IsShown()) {
+
668  HideAll();
+
669 
+
670  navdlg->SetSystem(sim->GetStarSystem());
+
671  navdlg->SetShip(sim->GetPlayerShip());
+
672  navdlg->Show();
+
673 
+
674  if (mouse_con) {
+
675  mouse_active = mouse_con->Active();
+
676  mouse_con->SetActive(false);
+
677  }
+
678 
+
679  Mouse::Show(true);
+
680  }
+
681  else {
+
682  HideNavDlg();
+
683  }
+
684 }
+
685 
+
686 // +--------------------------------------------------------------------+
+
687 
+
688 void
+ +
690 {
+
691  if (!gamewin) return;
+
692 
+
693  if (navdlg && navdlg->IsShown()) {
+
694  navdlg->Hide();
+
695 
+
696  if (mouse_con)
+
697  mouse_con->SetActive(mouse_active);
+
698 
+
699  Mouse::Show(false);
+
700  screen->AddWindow(gamewin);
+
701  }
+
702 }
+
703 
+
704 // +--------------------------------------------------------------------+
+
705 
+
706 bool
+ +
708 {
+
709  return gamewin && navdlg && navdlg->IsShown();
+
710 }
+
711 
+
712 // +--------------------------------------------------------------------+
+
713 
+
714 void
+ +
716 {
+
717  if (!gamewin) return;
+
718 
+
719  if (engdlg && !engdlg->IsShown()) {
+
720  HideAll();
+
721 
+
722  engdlg->SetShip(sim->GetPlayerShip());
+
723  engdlg->Show();
+
724 
+
725  if (mouse_con) {
+
726  mouse_active = mouse_con->Active();
+
727  mouse_con->SetActive(false);
+
728  }
+
729 
+
730  Mouse::Show(true);
+
731  }
+
732  else {
+
733  HideEngDlg();
+
734  }
+
735 }
+
736 
+
737 // +--------------------------------------------------------------------+
+
738 
+
739 void
+ +
741 {
+
742  if (!gamewin) return;
+
743 
+
744  if (engdlg && engdlg->IsShown()) {
+
745  engdlg->Hide();
+
746 
+
747  if (mouse_con)
+
748  mouse_con->SetActive(mouse_active);
+
749 
+
750  Mouse::Show(false);
+
751  screen->AddWindow(gamewin);
+
752  }
+
753 }
+
754 
+
755 // +--------------------------------------------------------------------+
+
756 
+
757 bool
+ +
759 {
+
760  return gamewin && engdlg && engdlg->IsShown();
+
761 }
+
762 
+
763 // +--------------------------------------------------------------------+
+
764 
+
765 void
+ +
767 {
+
768  if (!gamewin) return;
+
769 
+
770  if (fltdlg && !fltdlg->IsShown()) {
+
771  HideAll();
+
772 
+
773  fltdlg->SetShip(sim->GetPlayerShip());
+
774  fltdlg->Show();
+
775 
+
776  if (mouse_con) {
+
777  mouse_active = mouse_con->Active();
+
778  mouse_con->SetActive(false);
+
779  }
+
780 
+
781  Mouse::Show(true);
+
782  }
+
783  else {
+
784  HideFltDlg();
+
785  }
+
786 }
+
787 
+
788 // +--------------------------------------------------------------------+
+
789 
+
790 void
+ +
792 {
+
793  if (!gamewin) return;
+
794 
+
795  if (fltdlg && fltdlg->IsShown()) {
+
796  fltdlg->Hide();
+
797 
+
798  if (mouse_con)
+
799  mouse_con->SetActive(mouse_active);
+
800 
+
801  Mouse::Show(false);
+
802  screen->AddWindow(gamewin);
+
803  }
+
804 }
+
805 
+
806 // +--------------------------------------------------------------------+
+
807 
+
808 bool
+ +
810 {
+
811  return gamewin && fltdlg && fltdlg->IsShown();
+
812 }
+
813 
+
814 // +--------------------------------------------------------------------+
+
815 
+
816 void
+ +
818 {
+
819  if (auddlg) {
+
820  if (quit_view) {
+
821  quit_view->CloseMenu();
+
822  Starshatter::GetInstance()->Pause(true);
+
823  }
+
824 
+
825  HideAll();
+
826 
+
827  auddlg->Show();
+
828  auddlg->SetTopMost(true);
+
829 
+
830  if (mouse_con) {
+
831  mouse_active = mouse_con->Active();
+
832  mouse_con->SetActive(false);
+
833  }
+
834 
+
835  Mouse::Show(true);
+
836  }
+
837 }
+
838 
+
839 // +--------------------------------------------------------------------+
+
840 
+
841 void
+ +
843 {
+
844  if (auddlg && auddlg->IsShown()) {
+
845  auddlg->Hide();
+
846  Mouse::Show(false);
+
847  screen->AddWindow(gamewin);
+
848 
+
849  if (quit_view)
+
850  quit_view->ShowMenu();
+
851  }
+
852 }
+
853 
+
854 // +--------------------------------------------------------------------+
+
855 
+
856 bool
+ +
858 {
+
859  return auddlg && auddlg->IsShown();
+
860 }
+
861 
+
862 // +--------------------------------------------------------------------+
+
863 
+
864 void
+ +
866 {
+
867  if (viddlg) {
+
868  if (quit_view) {
+
869  quit_view->CloseMenu();
+
870  Starshatter::GetInstance()->Pause(true);
+
871  }
+
872 
+
873  HideAll();
+
874 
+
875  viddlg->Show();
+
876  viddlg->SetTopMost(true);
+
877 
+
878  if (mouse_con) {
+
879  mouse_active = mouse_con->Active();
+
880  mouse_con->SetActive(false);
+
881  }
+
882 
+
883  Mouse::Show(true);
+
884  }
+
885 }
+
886 
+
887 // +--------------------------------------------------------------------+
+
888 
+
889 void
+ +
891 {
+
892  if (viddlg && viddlg->IsShown()) {
+
893  viddlg->Hide();
+
894  Mouse::Show(false);
+
895  screen->AddWindow(gamewin);
+
896 
+
897  if (quit_view)
+
898  quit_view->ShowMenu();
+
899  }
+
900 }
+
901 
+
902 // +--------------------------------------------------------------------+
+
903 
+
904 bool
+ +
906 {
+
907  return viddlg && viddlg->IsShown();
+
908 }
+
909 
+
910 // +--------------------------------------------------------------------+
+
911 
+
912 void
+ +
914 {
+
915  if (optdlg) {
+
916  if (quit_view) {
+
917  quit_view->CloseMenu();
+
918  Starshatter::GetInstance()->Pause(true);
+
919  }
+
920 
+
921  HideAll();
+
922 
+
923  optdlg->Show();
+
924  optdlg->SetTopMost(true);
+
925 
+
926  if (mouse_con) {
+
927  mouse_active = mouse_con->Active();
+
928  mouse_con->SetActive(false);
+
929  }
+
930 
+
931  Mouse::Show(true);
+
932  }
+
933 }
+
934 
+
935 // +--------------------------------------------------------------------+
+
936 
+
937 void
+ +
939 {
+
940  if (optdlg && optdlg->IsShown()) {
+
941  optdlg->Hide();
+
942  Mouse::Show(false);
+
943  screen->AddWindow(gamewin);
+
944 
+
945  if (quit_view)
+
946  quit_view->ShowMenu();
+
947  }
+
948 }
+
949 
+
950 // +--------------------------------------------------------------------+
+
951 
+
952 bool
+ +
954 {
+
955  return optdlg && optdlg->IsShown();
+
956 }
+
957 
+
958 // +--------------------------------------------------------------------+
+
959 
+
960 void
+ +
962 {
+
963  if (moddlg) {
+
964  if (quit_view) {
+
965  quit_view->CloseMenu();
+
966  Starshatter::GetInstance()->Pause(true);
+
967  }
+
968 
+
969  HideAll();
+
970 
+
971  moddlg->Show();
+
972  moddlg->SetTopMost(true);
+
973 
+
974  if (mouse_con) {
+
975  mouse_active = mouse_con->Active();
+
976  mouse_con->SetActive(false);
+
977  }
+
978 
+
979  Mouse::Show(true);
+
980  }
+
981 }
+
982 
+
983 // +--------------------------------------------------------------------+
+
984 
+
985 void
+ +
987 {
+
988  if (moddlg && moddlg->IsShown()) {
+
989  moddlg->Hide();
+
990  Mouse::Show(false);
+
991  screen->AddWindow(gamewin);
+
992 
+
993  if (quit_view)
+
994  quit_view->ShowMenu();
+
995  }
+
996 }
+
997 
+
998 // +--------------------------------------------------------------------+
+
999 
+
1000 bool
+ +
1002 {
+
1003  return moddlg && moddlg->IsShown();
+
1004 }
+
1005 
+
1006 // +--------------------------------------------------------------------+
+
1007 
+
1008 void
+ +
1010 {
+
1011  if (moddlg && modInfoDlg) {
+
1012  if (quit_view) {
+
1013  quit_view->CloseMenu();
+
1014  Starshatter::GetInstance()->Pause(true);
+
1015  }
+
1016 
+
1017  HideAll();
+
1018 
+
1019  moddlg->Show();
+
1020  moddlg->SetTopMost(false);
+
1021 
+
1022  modInfoDlg->Show();
+
1023  modInfoDlg->SetTopMost(true);
+
1024 
+
1025  if (mouse_con) {
+
1026  mouse_active = mouse_con->Active();
+
1027  mouse_con->SetActive(false);
+
1028  }
+
1029 
+
1030  Mouse::Show(true);
+
1031  }
+
1032 }
+
1033 
+
1034 // +--------------------------------------------------------------------+
+
1035 
+
1036 void
+ +
1038 {
+
1039  ShowModDlg();
+
1040 }
+
1041 
+
1042 // +--------------------------------------------------------------------+
+
1043 
+
1044 bool
+ +
1046 {
+
1047  return modInfoDlg && modInfoDlg->IsShown();
+
1048 }
+
1049 
+
1050 // +--------------------------------------------------------------------+
+
1051 
+
1052 void
+ +
1054 {
+
1055  if (ctldlg) {
+
1056  if (quit_view) {
+
1057  quit_view->CloseMenu();
+
1058  Starshatter::GetInstance()->Pause(true);
+
1059  }
+
1060 
+
1061  HideAll();
+
1062 
+
1063  ctldlg->Show();
+
1064  ctldlg->SetTopMost(true);
+
1065 
+
1066  if (mouse_con) {
+
1067  mouse_active = mouse_con->Active();
+
1068  mouse_con->SetActive(false);
+
1069  }
+
1070 
+
1071  Mouse::Show(true);
+
1072  }
+
1073 }
+
1074 
+
1075 // +--------------------------------------------------------------------+
+
1076 
+
1077 void
+ +
1079 {
+
1080  if (ctldlg && ctldlg->IsShown()) {
+
1081  ctldlg->Hide();
+
1082  Mouse::Show(false);
+
1083  screen->AddWindow(gamewin);
+
1084 
+
1085  if (quit_view)
+
1086  quit_view->ShowMenu();
+
1087  }
+
1088 }
+
1089 
+
1090 // +--------------------------------------------------------------------+
+
1091 
+
1092 bool
+ +
1094 {
+
1095  return ctldlg && ctldlg->IsShown();
+
1096 }
+
1097 
+
1098 // +--------------------------------------------------------------------+
+
1099 
+
1100 void
+ +
1102 {
+
1103  if (keydlg) {
+
1104  if (quit_view) {
+
1105  quit_view->CloseMenu();
+
1106  Starshatter::GetInstance()->Pause(true);
+
1107  }
+
1108 
+
1109  HideAll();
+
1110 
+
1111  if (ctldlg) {
+
1112  ctldlg->Show();
+
1113  ctldlg->SetTopMost(false);
+
1114  }
+
1115 
+
1116  if (keydlg) keydlg->Show();
+
1117 
+
1118  if (mouse_con) {
+
1119  mouse_con->SetActive(false);
+
1120  }
+
1121 
+
1122  Mouse::Show(true);
+
1123  }
+
1124 }
+
1125 
+
1126 // +--------------------------------------------------------------------+
+
1127 
+
1128 bool
+ +
1130 {
+
1131  return keydlg && keydlg->IsShown();
+
1132 }
+
1133 
+
1134 // +--------------------------------------------------------------------+
+
1135 
+
1136 void
+ +
1138 {
+
1139  if (joydlg) {
+
1140  if (quit_view) {
+
1141  quit_view->CloseMenu();
+
1142  Starshatter::GetInstance()->Pause(true);
+
1143  }
+
1144 
+
1145  HideAll();
+
1146 
+
1147  if (ctldlg) {
+
1148  ctldlg->Show();
+
1149  ctldlg->SetTopMost(false);
+
1150  }
+
1151 
+
1152  if (joydlg) joydlg->Show();
+
1153 
+
1154  if (mouse_con) {
+
1155  mouse_con->SetActive(false);
+
1156  }
+
1157 
+
1158  Mouse::Show(true);
+
1159  }
+
1160 }
+
1161 
+
1162 // +--------------------------------------------------------------------+
+
1163 
+
1164 bool
+ +
1166 {
+
1167  return joydlg && joydlg->IsShown();
+
1168 }
+
1169 
+
1170 // +--------------------------------------------------------------------+
+
1171 
+
1172 void
+ +
1174 {
+
1175  if (wep_view)
+
1176  wep_view->CycleOverlayMode();
+
1177 }
+
1178 
+
1179 void
+ +
1181 {
+
1182  if (wep_view)
+
1183  wep_view->SetOverlayMode(0);
+
1184 }
+
1185 
+
1186 // +--------------------------------------------------------------------+
+
1187 
+
1188 void
+
1189 GameScreen::HideAll()
+
1190 {
+
1191  screen->DelWindow(gamewin);
+
1192 
+
1193  if (engdlg) engdlg->Hide();
+
1194  if (fltdlg) fltdlg->Hide();
+
1195  if (navdlg) navdlg->Hide();
+
1196  if (auddlg) auddlg->Hide();
+
1197  if (viddlg) viddlg->Hide();
+
1198  if (optdlg) optdlg->Hide();
+
1199  if (moddlg) moddlg->Hide();
+
1200  if (modInfoDlg) modInfoDlg->Hide();
+
1201  if (ctldlg) ctldlg->Hide();
+
1202  if (keydlg) keydlg->Hide();
+
1203  if (joydlg) joydlg->Hide();
+
1204 }
+
1205 
+
1206 // +--------------------------------------------------------------------+
+
1207 
+
1208 void
+ +
1210 {
+
1211  if (ctldlg) ctldlg->Apply();
+
1212  if (optdlg) optdlg->Apply();
+
1213  if (auddlg) auddlg->Apply();
+
1214  if (viddlg) viddlg->Apply();
+
1215 
+
1216  if (engdlg) engdlg->Hide();
+
1217  if (fltdlg) fltdlg->Hide();
+
1218  if (navdlg) navdlg->Hide();
+
1219  if (ctldlg) ctldlg->Hide();
+
1220  if (auddlg) auddlg->Hide();
+
1221  if (viddlg) viddlg->Hide();
+
1222  if (optdlg) optdlg->Hide();
+
1223  if (moddlg) moddlg->Hide();
+
1224  if (keydlg) keydlg->Hide();
+
1225  if (joydlg) joydlg->Hide();
+
1226 
+
1227  Mouse::Show(false);
+
1228  screen->AddWindow(gamewin);
+
1229  Starshatter::GetInstance()->Pause(false);
+
1230 }
+
1231 
+
1232 void
+ +
1234 {
+
1235  if (ctldlg) ctldlg->Cancel();
+
1236  if (optdlg) optdlg->Cancel();
+
1237  if (auddlg) auddlg->Cancel();
+
1238  if (viddlg) viddlg->Cancel();
+
1239 
+
1240  if (engdlg) engdlg->Hide();
+
1241  if (fltdlg) fltdlg->Hide();
+
1242  if (navdlg) navdlg->Hide();
+
1243  if (ctldlg) ctldlg->Hide();
+
1244  if (auddlg) auddlg->Hide();
+
1245  if (viddlg) viddlg->Hide();
+
1246  if (optdlg) optdlg->Hide();
+
1247  if (moddlg) moddlg->Hide();
+
1248  if (keydlg) keydlg->Hide();
+
1249  if (joydlg) joydlg->Hide();
+
1250 
+
1251  Mouse::Show(false);
+
1252  screen->AddWindow(gamewin);
+
1253  Starshatter::GetInstance()->Pause(false);
+
1254 }
+
+
+ + + + -- cgit v1.1