Emergency 20 Dokumentation  4.2.0
BuildingData.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 
15 #include <qsf/base/WeakPtr.h>
16 
17 #include <vector>
18 
19 
20 //[-------------------------------------------------------]
21 //[ Forward declarations ]
22 //[-------------------------------------------------------]
23 namespace em5
24 {
25  class BuildingComponent;
26 }
27 namespace qsf
28 {
29  class Entity;
30  namespace game
31  {
32  class BitStream;
33  }
34 }
35 
36 
37 //[-------------------------------------------------------]
38 //[ Namespace ]
39 //[-------------------------------------------------------]
40 namespace em5
41 {
42  namespace multiplayer
43  {
44 
45 
46  //[-------------------------------------------------------]
47  //[ Classes ]
48  //[-------------------------------------------------------]
54  {
55 
56 
57  //[-------------------------------------------------------]
58  //[ Public methods ]
59  //[-------------------------------------------------------]
60  public:
61  BuildingData(const qsf::Entity& targetEntity);
62  virtual ~BuildingData();
63 
64 
65  //[-------------------------------------------------------]
66  //[ Public virtual em5::multiplayer::DataCacheBase methods ]
67  //[-------------------------------------------------------]
68  public:
69  virtual bool includeForPrepare(const int32 currentTickCount, bool entityIsVisible);
70  virtual bool prepareForUpdate(const qsf::Entity& targetEntity, const qsf::Clock& clock) override;
71  virtual void updateData(qsf::game::BitStream& bitStream, bool force) override;
72  virtual void setData(const qsf::game::BitStream& bitStream, const int32 receivedHostTickCount) override;
73  virtual void interpolate(qsf::Entity& targetEntity, const qsf::Clock& clock, const int32 receivedHostTickCount) override;
74 
75 
76  //[-------------------------------------------------------]
77  //[ Private data ]
78  //[-------------------------------------------------------]
79  private:
81  uint64 mPersonAtWindowEntityId;
82  bool mPersonAtWindowEntityIdChanged;
83  bool mDoorBlocked;
84 
85  // For client side only
86  struct HistoryEntry
87  {
88  int32 tickCount;
89  uint64 mPersonAtWindowEntityId;
90  bool mPersonAtWindowEntityIdChanged;
91  bool mDoorBlocked;
92  };
93 
94  std::vector<HistoryEntry> mHistoryList;
95 
96 
97  };
98 
99 
100 //[-------------------------------------------------------]
101 //[ Namespace ]
102 //[-------------------------------------------------------]
103  } // multiplayer
104 } // em5
Definition: ActionPriority.h:13
EMERGENCY 5 multiplayer data cache base class.
Definition: DataCacheBase.h:48
virtual bool prepareForUpdate(const qsf::Entity &targetEntity, const qsf::Clock &clock) override
Prepares for an update.
Entity class.
Definition: Entity.h:46
BuildingData(const qsf::Entity &targetEntity)
Clock class.
Definition: Clock.h:33
EMERGENCY 5 entity with a building component data cache for a single entity for multiplayer.
Definition: BuildingData.h:53
uint64_t uint64
Definition: PlatformTypes.h:184
Lightweight weak pointer implementation.
Definition: WeakPtr.h:133
Game bit stream class (just a wrapper for linnet bit stream)
Definition: BitStream.h:40
Definition: PickupPersonByParamedicAction.h:21
virtual void updateData(qsf::game::BitStream &bitStream, bool force) override
Updates the cache and writes any changed data to the given bit stream.
signed int int32
Definition: PlatformTypes.h:180
virtual void interpolate(qsf::Entity &targetEntity, const qsf::Clock &clock, const int32 receivedHostTickCount) override
Does any interpolation steps needed to apply the cached data to the entity.
virtual void setData(const qsf::game::BitStream &bitStream, const int32 receivedHostTickCount) override
Reads the data from the bit stream.
virtual bool includeForPrepare(const int32 currentTickCount, bool entityIsVisible)
Returns if the data cache item should be generally included into the current update cycle...