Emergency 20 Dokumentation  4.2.0
AreaExtinguishCommandMode.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 
17 #include <qsf/base/WeakPtr.h>
20 
21 
22 //[-------------------------------------------------------]
23 //[ Forward declarations ]
24 //[-------------------------------------------------------]
25 namespace qsf
26 {
27  class Map;
28  class Entity;
29 }
30 
31 
32 //[-------------------------------------------------------]
33 //[ Namespace ]
34 //[-------------------------------------------------------]
35 namespace em5
36 {
37 
38 
39  //[-------------------------------------------------------]
40  //[ Classes ]
41  //[-------------------------------------------------------]
50  {
51 
52 
53  //[-------------------------------------------------------]
54  //[ Public definitions ]
55  //[-------------------------------------------------------]
56  public:
57  static const uint32 PLUGINABLE_ID;
58 
59 
60  //[-------------------------------------------------------]
61  //[ Public methods ]
62  //[-------------------------------------------------------]
63  public:
69 
74  virtual ~AreaExtinguishCommandMode();
75 
80  void initialize(qsf::Entity* callerEntity);
81 
82 
83  //[-------------------------------------------------------]
84  //[ Public virtual qsf::game::CommandMode methods ]
85  //[-------------------------------------------------------]
86  public:
87  virtual void startup() override;
88  virtual void shutdown() override;
89  virtual bool executeCommandContext(qsf::game::CommandContext& commandContext, const EntityIdSet& callerIds) override;
90  virtual void updateCommandMode(const qsf::Clock& clock) override;
91 
92 
93  //[-------------------------------------------------------]
94  //[ Private methods ]
95  //[-------------------------------------------------------]
96  private:
97  glm::vec3 getPositionUnderMouse();
98 
99 
100  //[-------------------------------------------------------]
101  //[ Private definitions ]
102  //[-------------------------------------------------------]
103  private:
104  static const uint32 ACTION_PRIORITY;
105 
106 
107  //[-------------------------------------------------------]
108  //[ Private data ]
109  //[-------------------------------------------------------]
110  private:
111  qsf::DebugDrawProxy mDebugDrawProxy;
112  qsf::Entity* mCommandoCar;
113  qsf::Map* mMap;
114  qsf::WeakPtr<qsf::Entity> mHighlightEntity;
115 
116 
117  //[-------------------------------------------------------]
118  //[ CAMP reflection system ]
119  //[-------------------------------------------------------]
120  QSF_CAMP_RTTI() // Only adds the virtual method "campClassId()", nothing more
121 
122 
123  };
124 
125 
126 //[-------------------------------------------------------]
127 //[ Namespace ]
128 //[-------------------------------------------------------]
129 } // em5
130 
131 
132 //[-------------------------------------------------------]
133 //[ CAMP reflection system ]
134 //[-------------------------------------------------------]
Definition: ActionPriority.h:13
Entity class.
Definition: Entity.h:46
Map class.
Definition: Map.h:93
unsigned int uint32
Definition: PlatformTypes.h:181
Clock class.
Definition: Clock.h:33
#define EM5_API_EXPORT
Definition: Export.h:28
Extinguish an area command mode.
Definition: AreaExtinguishCommandMode.h:49
Definition: PickupPersonByParamedicAction.h:21
Debug draw proxy class.
Definition: DebugDrawProxy.h:46
#define QSF_CAMP_RTTI()
Only adds the virtual method "campClassId()", nothing more.
Definition: CampClass.h:75
#define QSF_CAMP_TYPE_NONCOPYABLE(type)
See "CAMP_TYPE_NONCOPYABLE" for details.
Definition: CampClass.h:112
Command mode base class.
Definition: CommandMode.h:51
boost::container::flat_set< uint64 > EntityIdSet
Definition: CommandMode.h:59
static const uint32 PLUGINABLE_ID
"em5::AreaExtinguishCommandMode" unique command pluginable ID
Definition: AreaExtinguishCommandMode.h:57
Command context base class.
Definition: CommandContext.h:48