Emergency 20 Dokumentation  4.2.0
IngameHud.h
Go to the documentation of this file.
1 // Copyright (C) 2012-2018 Promotion Software GmbH
2 
3 
4 //[-------------------------------------------------------]
5 //[ Header guard ]
6 //[-------------------------------------------------------]
7 #pragma once
8 
9 
10 //[-------------------------------------------------------]
11 //[ Includes ]
12 //[-------------------------------------------------------]
13 #include "em5/Export.h"
14 
16 #include <qsf/job/JobProxy.h>
17 
18 #include <boost/noncopyable.hpp>
19 
20 
21 //[-------------------------------------------------------]
22 //[ Forward declarations ]
23 //[-------------------------------------------------------]
24 namespace qsf
25 {
26  class GuiContext;
27 }
28 namespace em5
29 {
30  class BaseHudLayer;
31  class ChatWindow;
32  class MessageWindow;
33  class WarblerFeedWindow;
34  class SupervisorWindow;
35  class MiniMapWindow;
36  class UnitOverviewWindow;
37  class ObjectiveWindow;
38  class SelectionWindowCommandable;
39  class SelectionWindowVehicle;
40  class SelectionWindowMulti;
41  class SEKDroneScanWindow;
42  class FullscreenVideoWindow;
43  class DebugGuiWindow;
44  class DebugSelectionInfoWindow;
45  class DebugEquipmentBox;
46  class DebugEventBox;
47  class DebugEventDetailBox;
48  class DebugTriggerWindow;
49  class DebugUpgradeBox;
50  class DebugWeatherBox;
51  class ObjectiveWindow;
52  class DebugOrderBox;
53  class DebugLogBox;
54  class Tooltip;
55  class CommandWindow;
56  class IngameEventFailedWindow;
57  class IngameMainMenuWindow;
58  class IngameMainEventFailedWindow;
59  class IngameMainEventSuccessWindow;
60  class AiNavigationDebugBox;
61  class AiPerceptionDebugBox;
62  class AiReactionDebugBox;
63  class VehicleOrderBar;
64  class VehicleSelectionWindow;
65  class VehicleOrderWindow;
66  class MenuBar;
67  class BuyUpgradeWindow;
68  class FireSpreadSimulationWindow;
69  class StatusOverlayWindowManager;
70  class BuildingOverlayWindowManager;
71  class CommandTargetManager;
72  class BuildingClippingManager;
73  class HelpWindow;
74  class BuyUpgradeDataSource;
75  class IngamePromotionWindow;
76  class FreeplayFailedWindow;
77  class IngameFreeplayEndWindow;
78  class IngameOnlineHighscoreWindow;
79  class AchievementUnlockedWindow;
80  class MultiplayerScoreOverview;
81  class IngameMultiplayerCOOPEndWindow;
82  class IngameMultiplayerPvPEndWindow;
83  class MultiplayerPlayerLeftMessage;
84  class MultiplayerVoteWindow;
85  class MultiplayerVoteFailedWindow;
86  class HqExtendedMessage;
87  class IngameHighscoreDatasource;
88 }
89 
90 
91 //[-------------------------------------------------------]
92 //[ Namespace ]
93 //[-------------------------------------------------------]
94 namespace em5
95 {
96 
97 
98  //[-------------------------------------------------------]
99  //[ Classes ]
100  //[-------------------------------------------------------]
105  class EM5_API_EXPORT IngameHud : public boost::noncopyable
106  {
107 
108 
109  //[-------------------------------------------------------]
110  //[ Public methods ]
111  //[-------------------------------------------------------]
112  public:
117  IngameHud();
118 
126  ~IngameHud();
127 
132  void loadGui();
133 
138  void destroyGui();
139 
144  void showGui();
145 
150  void hideGui();
151 
156  bool isAnyEndscreenVisible();
157 
165  inline ChatWindow& getChatWindow() const;
166 
174  inline MessageWindow* getMessageWindow() const;
175 
183  inline WarblerFeedWindow* getWarblerFeedWindow() const;
184  WarblerFeedWindow& getOrCreateWarblerFeedWindow();
185 
193  inline SupervisorWindow& getSupervisorWindow() const;
194 
202  inline MiniMapWindow* getMiniMapWindow() const;
203 
211  inline UnitOverviewWindow& getUnitOverviewWindow() const;
212 
220  inline SEKDroneScanWindow& getSEKDroneScanWindow() const;
221 
229  inline BaseHudLayer& getBaseHudLayer() const;
230 
238  inline FullscreenVideoWindow& getFullscreenVideoWindow() const;
239 
247  DebugSelectionInfoWindow& getDebugSelectionInfoWindow();
248 
256  DebugEquipmentBox& getDebugEquipmentBox();
257 
265  DebugOrderBox& getDebugOrderBox();
266 
274  DebugLogBox& getDebugLogBox();
275 
283  DebugEventBox& getDebugEventBox();
284 
292  DebugEventDetailBox& getDebugEventDetailBox();
293 
294  DebugGuiWindow& getDebugGuiWindow();
295 
303  DebugTriggerWindow& getDebugTriggerWindow();
304 
312  DebugUpgradeBox& getDebugUpgradeBox();
313 
321  DebugWeatherBox& getDebugWeatherBox();
322 
330  IngameEventFailedWindow& getIngameEventFailedWindow();
331 
339  IngameMainMenuWindow& getIngameMainMenuWindow();
340 
348  FreeplayFailedWindow& getFreeplayFailedWindow();
349 
357  IngameFreeplayEndWindow& getIngameFreeplayEndWindow();
358 
366  IngameMainEventFailedWindow& getIngameMainEventFailedWindow();
367 
375  IngameMainEventSuccessWindow& getIngameMainEventSuccessWindow();
376 
384  IngamePromotionWindow& getIngamePromotionWindow();
385 
393  IngameOnlineHighscoreWindow& getIngameOnlineHighscoreWindow();
394 
402  AchievementUnlockedWindow& getAchievementUnlockedWindow();
403 
411  MultiplayerScoreOverview& getMultiplayerScoreOverview();
412 
420  AiNavigationDebugBox& getAiNavigationDebugBox();
421 
429  AiPerceptionDebugBox& getAiPerceptionDebugBox();
430 
438  AiReactionDebugBox& getAiReactionDebugBox();
439 
447  ObjectiveWindow& getObjectiveWindow();
448 
456  inline VehicleOrderBar* getVehicleOrderBar() const;
457 
465  inline VehicleSelectionWindow& getVehicleSelectionWindow() const;
466 
474  inline VehicleOrderWindow& getVehicleOrderWindow() const;
475 
483  inline IngameHighscoreDatasource& getIngameHighscoreDatasource() const;
484 
492  IngameMultiplayerCOOPEndWindow& getIngameMultiplayerCOOPEndWindow();
493 
501  IngameMultiplayerPvPEndWindow& getIngameMultiplayerPvPEndWindow();
502 
510  MultiplayerPlayerLeftMessage& getMultiplayerPlayerLeftMessage();
511 
519  MultiplayerVoteWindow& getMultiplayerVoteWindow();
520 
528  MultiplayerVoteFailedWindow& getMultiplayerVoteFailedWindow();
529 
537  HqExtendedMessage& getHqExtendedMessage();
538 
546  CommandWindow& getCommandWindow();
547 
555  HelpWindow& getHelpWindow();
556 
564  void manageSelectionWindows();
565 
570  void hideAllSelectionWindows();
571 
579  BuyUpgradeWindow& getBuyUpgradeWindow();
580 
588  inline MenuBar* getMenuBar() const;
589 
597  inline BuyUpgradeDataSource& getBuyUpgradeDataSouce() const;
598 
599  StatusOverlayWindowManager& getStatusOverlayWindowManager();
600  BuildingOverlayWindowManager& getBuildingOverlayWindowManager();
601  CommandTargetManager& getCommandTargetManager();
602  BuildingClippingManager& getBuildingClippingManager();
603 
604  //[-------------------------------------------------------]
605  //[ Selection window ]
606  //[-------------------------------------------------------]
607  SelectionWindowCommandable& getSelectionWindowCommandable();
608  SelectionWindowVehicle& getSelectionWindowVehicle();
609  SelectionWindowMulti& getSelectionWindowMulti();
610 
611 
612  //[-------------------------------------------------------]
613  //[ Private methods ]
614  //[-------------------------------------------------------]
615  private:
616  void onSelectionChange(const qsf::MessageParameters& parameters);
617 
618  void loadGameHudItems();
619  void loadFireSpreadSimulationHudItems();
620 
621 
622  //[-------------------------------------------------------]
623  //[ Private data ]
624  //[-------------------------------------------------------]
625  private:
626  qsf::GuiContext& mGuiContext;
627  BaseHudLayer* mBaseHudLayer;
628  ChatWindow* mChatWindow;
629  MessageWindow* mMessageWindow;
630  WarblerFeedWindow* mWarblerFeedWindow;
631  SupervisorWindow* mSupervisorWindow;
632  FullscreenVideoWindow* mFullscreenVideoWindow;
633  CommandWindow* mCommandWindow;
634  IngameEventFailedWindow* mIngameEventFailedWindow;
635  IngameMainMenuWindow* mIngameMainMenuWindow;
636  IngameMainEventFailedWindow* mIngameMainEventFailedWindow;
637  IngameMainEventSuccessWindow* mIngameMainEventSuccessWindow;
638  MiniMapWindow* mMiniMapWindow;
639  UnitOverviewWindow* mUnitOverviewWindow;
640  ObjectiveWindow* mObjectiveWindow;
641  SEKDroneScanWindow* mSEKDroneScanWindow;
642  VehicleOrderBar* mVehicleOrderBar;
643  VehicleSelectionWindow* mVehicleSelectionWindow;
644  VehicleOrderWindow* mVehicleOrderWindow;
645  MenuBar* mMenuBar;
646  BuyUpgradeWindow* mBuyUpgradeWindow;
647  HelpWindow* mHelpWindow;
648  IngamePromotionWindow* mIngamePromotionWindow;
649  FreeplayFailedWindow* mFreeplayFailedWindow;
650  IngameFreeplayEndWindow* mIngameFreeplayEndWindow;
651  IngameOnlineHighscoreWindow* mIngameOnlineHighscoreWindow;
652  AchievementUnlockedWindow* mAchievementUnlockedWindow;
653  MultiplayerScoreOverview* mMultiplayerScoreOverview;
654  IngameMultiplayerCOOPEndWindow* mIngameMultiplayerCOOPEndWindow;
655  IngameMultiplayerPvPEndWindow* mIngameMultiplayerPvPEndWindow;
656  MultiplayerPlayerLeftMessage* mMultiplayerPlayerLeftMessage;
657  MultiplayerVoteWindow* mMultiplayerVoteWindow;
658  MultiplayerVoteFailedWindow* mMultiplayerVoteFailedWindow;
659  HqExtendedMessage* mHqExtendedMessage;
660 
661  // Selection window
662  SelectionWindowCommandable* mSelectionWindowCommandable;
663  SelectionWindowVehicle* mSelectionWindowVehicle;
664  SelectionWindowMulti* mSelectionWindowMulti;
665 
666  IngameHighscoreDatasource* mIngameHighscoreDatasource;
667 
668  // Debug
669  DebugGuiWindow* mDebugGuiWindow;
670  DebugSelectionInfoWindow* mDebugSelectionInfoWindow;
671  DebugEquipmentBox* mDebugEquipmentBox;
672  DebugEventBox* mDebugEventBox;
673  DebugEventDetailBox* mDebugEventDetailBox;
674  DebugLogBox* mDebugLogBox;
675  DebugOrderBox* mDebugOrderBox;
676  DebugTriggerWindow* mDebugTriggerWindow;
677  DebugUpgradeBox* mDebugUpgradeBox;
678  DebugWeatherBox* mDebugWeatherBox;
679  AiNavigationDebugBox* mAiNavigationDebugBox;
680  AiPerceptionDebugBox* mAiPerceptionDebugBox;
681  AiReactionDebugBox* mAiReactionDebugBox;
682 
683  // Fire spread simulation
684  FireSpreadSimulationWindow* mFireSpreadSimulationWindow;
685 
686  // Managers
687  StatusOverlayWindowManager* mStatusOverlayWindowManager;
688  BuildingOverlayWindowManager* mBuildingOverlayWindowManager;
689  CommandTargetManager* mCommandTargetManager;
690  BuildingClippingManager* mBuildingClippingManager;
691 
692  // Datasouce
693  BuyUpgradeDataSource* mBuyUpgradeDataSource;
694 
695  // Message proxy
696  qsf::MessageProxy mMessageProxy;
697  qsf::JobProxy mUpdateJobProxy;
698 
699 
700  };
701 
702 
703 //[-------------------------------------------------------]
704 //[ Namespace ]
705 //[-------------------------------------------------------]
706 } // em5
707 
708 
709 //[-------------------------------------------------------]
710 //[ Implementation ]
711 //[-------------------------------------------------------]
712 #include "em5/gui/IngameHud-inl.h"
Fire spread simulation GUI window.
Definition: FireSpreadSimulationWindow.h:30
EMERGENCY 5 in-game main menu window.
Definition: IngameMainMenuWindow.h:40
Definition: ActionPriority.h:13
Vehicle order window.
Definition: VehicleOrderWindow.h:51
Supervisor puppeteer.
Definition: SupervisorWindow.h:45
Job proxy class.
Definition: JobProxy.h:51
Achievement unlocked message GUI window.
Definition: AchievementUnlockedWindow.h:42
EMERGENCY 5 in-game debug window for triggering upgrades.
Definition: DebugUpgradeBox.h:30
Base layer for the in-game HUD.
Definition: BaseHudLayer.h:30
Message parameters class.
Definition: MessageParameters.h:34
EMERGENCY 5 in-game HUD.
Definition: IngameHud.h:105
EMERGENCY 5 HQ extended message window HUD element.
Definition: HqExtendedMessage.h:30
Debug GUI window.
Definition: DebugLogBox.h:49
Definition: FullscreenVideoWindow.h:48
EMERGENCY 5 multiplayer PvP end screen.
Definition: IngameMultiplayerCOOPEndWindow.h:43
EMERGENCY 5 in-game debug window for triggering special "actions", i.e. add player credits...
Definition: DebugTriggerWindow.h:30
EMERGENCY 5 in-game debug window for event details.
Definition: DebugEventDetailBox.h:43
#define EM5_API_EXPORT
Definition: Export.h:28
Debug GUI window.
Definition: DebugGuiWindow.h:41
Debug GUI window.
Definition: DebugEquipmentBox.h:42
EMERGENCY 5 freeplay end window HUD element.
Definition: IngameFreeplayEndWindow.h:30
Message listener proxy class.
Definition: MessageProxy.h:47
EMERGENCY 5 in-game debug window for triggering special "actions", i.e. add player credits...
Definition: MultiplayerScoreOverview.h:32
EMERGENCY 5 building overlay window manager.
Definition: BuildingOverlayWindowManager.h:43
EMERGENCY 5 in-game selection window.
Definition: SelectionWindowCommandable.h:48
Debug GUI window.
Definition: DebugEventBox.h:30
Definition: AiPerceptionDebugBox.h:26
EMERGENCY 5 buy upgrade window.
Definition: BuyUpgradeWindow.h:33
GUI box for controlling the AI navigation debug options while in game.
Definition: AiNavigationDebugBox.h:30
EMERGENCY 5 player left session message HUD element.
Definition: MultiplayerPlayerLeftMessage.h:32
EMERGENCY 5 in-game information bar.
Definition: MenuBar.h:54
EMERGENCY 5 mini-map window HUD element.
Definition: MiniMapWindow.h:63
Definition: DebugSelectionInfoWindow.h:52
Definition: PickupPersonByParamedicAction.h:21
EMERGENCY 5 SEK drone scan HUD element.
Definition: SEKDroneScanWindow.h:56
Data grid used to display the current buyable upgrades.
Definition: BuyUpgradeDataSource.h:32
EMERGENCY 5 in-game debug window for triggering weather.
Definition: DebugWeatherBox.h:30
EMERGENCY 5 vote window HUD element.
Definition: MultiplayerVoteFailedWindow.h:30
Ingame Graphical User Interface (GUI) context class.
Definition: GuiContext.h:62
Ingame highscore datasource.
Definition: IngameHighscoreDatasource.h:39
EMERGENCY 5 in-game options menu. Change audio and graphics settings.
Definition: IngameOnlineHighscoreWindow.h:56
Unit overview window.
Definition: UnitOverviewWindow.h:58
Definition: ChatWindow.h:31
EMERGENCY 5 in-game promotion window.
Definition: IngamePromotionWindow.h:32
IngameMainEventSuccessWindow window.
Definition: IngameMainEventSuccessWindow.h:48
Definition: AiReactionDebugBox.h:26
Window to show when an event fails that the player is required to solve.
Definition: IngameEventFailedWindow.h:34
EMERGENCY 5 help window HUD element.
Definition: HelpWindow.h:48
EMERGENCY 5 in-game selection window.
Definition: SelectionWindowVehicle.h:48
EMERGENCY 5 multiplayer PvP end sreen.
Definition: IngameMultiplayerPvPEndWindow.h:43
Debug GUI window.
Definition: DebugOrderBox.h:30
Definition: MessageWindow.h:30
EMERGENCY 5 building clipping manager.
Definition: BuildingClippingManager.h:53
EMERGENCY 5 vote window HUD element.
Definition: MultiplayerVoteWindow.h:31
EMERGENCY 5 status overlay window manager.
Definition: StatusOverlayWindowManager.h:43
Vehicle order bar window.
Definition: VehicleOrderBar.h:42
EMERGENCY 5 in-game command window.
Definition: CommandWindow.h:52
Objective window.
Definition: ObjectiveWindow.h:35
EMERGENCY 5 in-game selection window.
Definition: SelectionWindowMulti.h:48
The warbler feed window was introduced in EMERGENCY 2017 and hence is only available in this version ...
Definition: WarblerFeedWindow.h:50
EMERGENCY 5 command target manager.
Definition: CommandTargetManager.h:48
Vehicle selection window.
Definition: VehicleSelectionWindow.h:41
Window to show when a main event fails.
Definition: IngameMainEventFailedWindow.h:39
EMERGENCY 5 freeplay failed window HUD element.
Definition: FreeplayFailedWindow.h:30