OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
aisequence.hpp
Go to the documentation of this file.
1 #ifndef OPENMW_COMPONENTS_ESM_AISEQUENCE_H
2 #define OPENMW_COMPONENTS_ESM_AISEQUENCE_H
3 
4 #include <vector>
5 #include <string>
6 
7 #include "defs.hpp"
8 
9 #include "util.hpp"
10 
11 namespace ESM
12 {
13  class ESMReader;
14  class ESMWriter;
15 
16  namespace AiSequence
17  {
18 
19  // format 0, saved games only
20  // As opposed to AiPackageList, this stores the "live" version of AI packages.
21 
23  {
31  };
32 
33 
34  struct AiPackage
35  {
36  virtual ~AiPackage() {}
37  };
38 
39 
40 #pragma pack(push,1)
41  struct AiWanderData
42  {
43  short mDistance;
44  short mDuration;
45  unsigned char mTimeOfDay;
46  unsigned char mIdle[8];
47  unsigned char mShouldRepeat;
48  };
50  {
52  int unused;
53  };
54  struct AiTravelData
55  {
56  float mX, mY, mZ;
57  };
58  struct AiEscortData
59  {
60  float mX, mY, mZ;
61  short mDuration;
62  };
63 
64 #pragma pack(pop)
65 
67  {
69  AiWanderDuration mDurationData; // was ESM::TimeStamp mStartTime
70 
73 
75 
76  void load(ESMReader &esm);
77  void save(ESMWriter &esm) const;
78  };
79 
81  {
83  bool mHidden;
84 
85  void load(ESMReader &esm);
86  void save(ESMWriter &esm) const;
87  };
88 
90  {
92 
94  std::string mTargetId;
95  std::string mCellId;
97 
98  void load(ESMReader &esm);
99  void save(ESMWriter &esm) const;
100  };
101 
103  {
105 
107  std::string mTargetId;
108  std::string mCellId;
110 
113 
114  bool mActive;
115 
116  void load(ESMReader &esm);
117  void save(ESMWriter &esm) const;
118  };
119 
121  {
122  std::string mTargetId;
123 
124  void load(ESMReader &esm);
125  void save(ESMWriter &esm) const;
126  };
127 
129  {
131 
132  void load(ESMReader &esm);
133  void save(ESMWriter &esm) const;
134  };
135 
137  {
139 
140  void load(ESMReader &esm);
141  void save(ESMWriter &esm) const;
142  };
143 
145  {
146  int mType;
147 
149  };
150 
151  struct AiSequence
152  {
154  {
155  mLastAiPackage = -1;
156  }
157  ~AiSequence();
158 
159  std::vector<AiPackageContainer> mPackages;
161 
162  void load (ESMReader &esm);
163  void save (ESMWriter &esm) const;
164 
165  private:
166  AiSequence(const AiSequence&);
168  };
169 
170  }
171 
172 }
173 
174 #endif
int mTargetActorId
Definition: aisequence.hpp:93
void save(ESMWriter &esm) const
Definition: aisequence.cpp:109
Definition: aisequence.hpp:58
bool mCommanded
Definition: aisequence.hpp:112
void load(ESMReader &esm)
Definition: aisequence.cpp:35
void save(ESMWriter &esm) const
Definition: aisequence.cpp:27
AiWanderData mData
Definition: aisequence.hpp:68
unsigned char mShouldRepeat
Definition: aisequence.hpp:47
Definition: esmreader.hpp:21
float mRemainingDuration
Definition: aisequence.hpp:96
float mRemainingDuration
Definition: aisequence.hpp:51
void load(ESMReader &esm)
Definition: aisequence.cpp:15
void load(ESMReader &esm)
Definition: aisequence.cpp:114
AiEscortData mData
Definition: aisequence.hpp:91
void save(ESMWriter &esm) const
Definition: aisequence.cpp:99
Definition: aisequence.hpp:120
Definition: aisequence.hpp:80
void save(ESMWriter &esm) const
Definition: aisequence.cpp:41
float mX
Definition: aisequence.hpp:60
Definition: aisequence.hpp:54
float mY
Definition: aisequence.hpp:60
Definition: aisequence.hpp:25
AiPackage * mPackage
Definition: aisequence.hpp:148
void save(ESMWriter &esm) const
Definition: aisequence.cpp:119
Definition: aisequence.hpp:49
int unused
Definition: aisequence.hpp:52
Definition: aisequence.hpp:24
~AiSequence()
Definition: aisequence.cpp:124
float mY
Definition: aisequence.hpp:56
Definition: aisequence.hpp:26
AiSequence & operator=(const AiSequence &)
Definition: aisequence.hpp:102
Definition: esmwriter.hpp:17
void save(ESMWriter &esm) const
Definition: aisequence.cpp:80
float mX
Definition: aisequence.hpp:56
Definition: aisequence.hpp:66
AiWanderDuration mDurationData
Definition: aisequence.hpp:69
void save(ESMWriter &esm) const
Definition: aisequence.cpp:130
void load(ESMReader &esm)
Definition: aisequence.cpp:66
float mZ
Definition: aisequence.hpp:60
AiEscortData mData
Definition: aisequence.hpp:104
bool mAlwaysFollow
Definition: aisequence.hpp:111
int mTargetActorId
Definition: aisequence.hpp:138
int mType
Definition: aisequence.hpp:146
Definition: util.hpp:32
void load(ESMReader &esm)
Definition: aisequence.cpp:94
bool mHidden
Definition: aisequence.hpp:83
int mLastAiPackage
Definition: aisequence.hpp:160
std::vector< AiPackageContainer > mPackages
Definition: aisequence.hpp:159
Definition: aisequence.hpp:144
Definition: aisequence.hpp:30
float mRemainingDuration
Definition: aisequence.hpp:109
unsigned char mTimeOfDay
Definition: aisequence.hpp:45
bool mStoredInitialActorPosition
Definition: aisequence.hpp:71
short mDuration
Definition: aisequence.hpp:44
AiPackages
Definition: aisequence.hpp:22
void load(ESMReader &esm)
Definition: aisequence.cpp:47
Definition: aisequence.hpp:28
int mTargetActorId
Definition: aisequence.hpp:106
virtual ~AiPackage()
Definition: aisequence.hpp:36
std::string mCellId
Definition: aisequence.hpp:95
short mDistance
Definition: aisequence.hpp:43
short mDuration
Definition: aisequence.hpp:61
Definition: aisequence.hpp:151
float mZ
Definition: aisequence.hpp:56
Definition: aisequence.hpp:29
std::string mTargetId
Definition: aisequence.hpp:94
Definition: aisequence.hpp:136
Definition: aisequence.hpp:89
bool mActive
Definition: aisequence.hpp:114
Definition: defs.hpp:53
void load(ESMReader &esm)
Definition: aisequence.cpp:167
int mTargetActorId
Definition: aisequence.hpp:130
ESM::Vector3 mInitialActorPosition
Definition: aisequence.hpp:72
Definition: aisequence.hpp:41
void load(ESMReader &esm)
Definition: aisequence.cpp:104
AiTravelData mData
Definition: aisequence.hpp:82
void save(ESMWriter &esm) const
Definition: aisequence.cpp:56
std::string mTargetId
Definition: aisequence.hpp:107
Definition: aisequence.hpp:128
AiSequence()
Definition: aisequence.hpp:153
unsigned char mIdle[8]
Definition: aisequence.hpp:46
Definition: aisequence.hpp:34
std::string mCellId
Definition: aisequence.hpp:108
Definition: aisequence.hpp:27
std::string mTargetId
Definition: aisequence.hpp:122