Emergency 20 Dokumentation  4.2.0
GangsterInBuildingLogic.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 //[-------------------------------------------------------]
14 
17 
18 
19 //[-------------------------------------------------------]
20 //[ Namespace ]
21 //[-------------------------------------------------------]
22 namespace em5
23 {
24 
25 
26  //[-------------------------------------------------------]
27  //[ Classes ]
28  //[-------------------------------------------------------]
34  {
35 
36 
37  //[-------------------------------------------------------]
38  //[ Public definitions ]
39  //[-------------------------------------------------------]
40  public:
41  static const uint32 GAMELOGIC_TYPE_ID; // "em5::GangsterInBuildingLogic" game logic type ID
42 
43 
44  //[-------------------------------------------------------]
45  //[ Public methods ]
46  //[-------------------------------------------------------]
47  public:
49 
50  // "true" if the right number of police units is inside the building
51  bool isPoliceTeamComplete() const;
52 
53  void onPoliceSpokeToHostageTaker();
54  void onPoliceAttackedBuilding();
55 
56  QSF_DEFINE_SIMPLE_GETTER_AND_SETTER(AllowNormalPolice, bool, mAllowNormalPolice)
57  QSF_DEFINE_SIMPLE_GETTER_AND_SETTER(CanSpeakWithHostageTaker, bool, mCanSpeakWithHostageTaker)
58  QSF_DEFINE_SIMPLE_GETTER_AND_SETTER(FakeObject, bool, mFakeObject)
59  QSF_DEFINE_SIMPLE_GETTER_AND_SETTER(InUseFromSpeaker, bool, mInUseFromSpeaker)
60  QSF_DEFINE_SIMPLE_GETTER_AND_SETTER(GangsterGiveUp, bool, mGangsterTakeGiveUp)
61 
62 
63  //[-------------------------------------------------------]
64  //[ Public virtual qsf::GameLogic methods ]
65  //[-------------------------------------------------------]
66  public:
67  virtual bool onStartup() override;
68  virtual void onShutdown() override;
69 
70 
71  //[-------------------------------------------------------]
72  //[ Private definitions ]
73  //[-------------------------------------------------------]
74  private:
75  static const uint32 ACTION_PRIORITY;
76 
77 
78  //[-------------------------------------------------------]
79  //[ Private data ]
80  //[-------------------------------------------------------]
81  private:
82  qsf::WeakPtr<BuildingComponent> mBuildingComponent;
83 
84  bool mAllowNormalPolice;
85  bool mCanSpeakWithHostageTaker;
86  bool mFakeObject; // If "true", no real gangster are inside
87  bool mInUseFromSpeaker;
88  bool mGangsterTakeGiveUp; // By default random value, depends on value in LogicSpecsGroup
89 
90  // Internal
91  bool mCanSetHostageObjectives;
92 
93 
94  //[-------------------------------------------------------]
95  //[ CAMP reflection system ]
96  //[-------------------------------------------------------]
97  QSF_CAMP_RTTI() // Only adds the virtual method "campClassId()", nothing more
98 
99 
100  };
101 
102 
103 //[-------------------------------------------------------]
104 //[ Namespace ]
105 //[-------------------------------------------------------]
106 } // em5
107 
108 
109 //[-------------------------------------------------------]
110 //[ CAMP reflection system ]
111 //[-------------------------------------------------------]
Definition: ActionPriority.h:13
EMERGENCY 5 building component class.
Definition: BuildingComponent.h:56
unsigned int uint32
Definition: PlatformTypes.h:181
Gangster in building logic.
Definition: GangsterInBuildingLogic.h:33
#define EM5_API_EXPORT
Definition: Export.h:28
static const uint32 GAMELOGIC_TYPE_ID
Definition: GangsterInBuildingLogic.h:41
Definition: PickupPersonByParamedicAction.h:21
#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
Game logic base class.
Definition: GameLogic.h:44
#define QSF_DEFINE_SIMPLE_GETTER_AND_SETTER(name, type, variable)
Definition: PropertyHelper.h:16