Emergency 20 Dokumentation  4.2.0
PersonMagnetData.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 PersonMagnetComponent;
26 }
27 
28 
29 //[-------------------------------------------------------]
30 //[ Namespace ]
31 //[-------------------------------------------------------]
32 namespace em5
33 {
34  namespace multiplayer
35  {
36 
37 
38  //[-------------------------------------------------------]
39  //[ Classes ]
40  //[-------------------------------------------------------]
46  {
47 
48 
49  //[-------------------------------------------------------]
50  //[ Public methods ]
51  //[-------------------------------------------------------]
52  public:
53  PersonMagnetData(const qsf::Entity& targetEntity);
54  virtual ~PersonMagnetData();
55 
56 
57  //[-------------------------------------------------------]
58  //[ Public virtual em5::multiplayer::DataCacheBase methods ]
59  //[-------------------------------------------------------]
60  public:
61  virtual bool prepareForUpdate(const qsf::Entity& targetEntity, const qsf::Clock& clock) override;
62  virtual void updateData(qsf::game::BitStream& bitStream, bool force) override;
63  virtual void setData(const qsf::game::BitStream& bitStream, const int32 receivedHostTickCount) override;
64  virtual void interpolate(qsf::Entity& targetEntity, const qsf::Clock& clock, const int32 receivedHostTickCount) override;
65 
66 
67  //[-------------------------------------------------------]
68  //[ Private data ]
69  //[-------------------------------------------------------]
70  private:
72  uint64 mCarrierEntityId;
73  float mVisualizationRadius;
74 
75  // For client side only
76  struct HistoryEntry
77  {
78  int32 tickCount;
79  uint64 mCarrierEntityId;
80  float mVisualizationRadius;
81  };
82 
83  std::vector<HistoryEntry> mHistoryList;
84 
85 
86  };
87 
88 
89 //[-------------------------------------------------------]
90 //[ Namespace ]
91 //[-------------------------------------------------------]
92  } // multiplayer
93 } // em5
Definition: ActionPriority.h:13
virtual void setData(const qsf::game::BitStream &bitStream, const int32 receivedHostTickCount) override
Reads the data from the bit stream.
EMERGENCY 5 multiplayer data cache base class.
Definition: DataCacheBase.h:48
Entity class.
Definition: Entity.h:46
Clock class.
Definition: Clock.h:33
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
EMERGENCY 5 entity with a helicopter component data cache for a single entity for multiplayer...
Definition: PersonMagnetData.h:45
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.
signed int int32
Definition: PlatformTypes.h:180
virtual bool prepareForUpdate(const qsf::Entity &targetEntity, const qsf::Clock &clock) override
Prepares for an update.
virtual void updateData(qsf::game::BitStream &bitStream, bool force) override
Updates the cache and writes any changed data to the given bit stream.
PersonMagnetData(const qsf::Entity &targetEntity)