CommonLibVR
GFxMovieDataDef.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/G/GArrayLH.h"
4 #include "RE/G/GAtomic.h"
7 #include "RE/G/GFxTimelineDef.h"
8 #include "RE/G/GHashSet.h"
9 #include "RE/G/GHashUncached.h"
10 #include "RE/G/GPtr.h"
11 #include "RE/G/GRect.h"
12 #include "RE/G/GRefCountBase.h"
13 #include "RE/G/GStringHash.h"
14 
15 namespace RE
16 {
17  class GFxLog;
18 
20  {
21  std::uint32_t totalBytes; // 00
22  std::uint32_t version; // 04
24  float frameRate; // 18
25  std::uint32_t frameCount; // 1C
26  std::uint32_t swfFlags; // 20
27  std::uint32_t unk24; // 24
28  std::uint64_t unk28; // 28
29  std::uint64_t unk30; // 30
30  std::uint64_t unk38; // 38
31  std::uint16_t unk40; // 40
32  std::uint16_t pad42; // 42
33  std::uint32_t unk44; // 44
34  GString unk48; // 48
35  GString unk50; // 50
36  void* unk58; // 58
37  std::uint64_t unk60; // 60
38  std::uint64_t unk68; // 68
39  };
40  static_assert(sizeof(GFxMovieLoadInfo) == 0x70);
41 
43  {
44  enum SourceType : std::int32_t
45  {
48  };
49 
50  struct ImportSource
51  {
52  std::uint32_t index;
53  std::uint32_t unk04;
54  };
55 
57  {
60  };
61 
63  std::uint32_t pad04; // 04
65  };
66  static_assert(sizeof(GFxResourceSource) == 0x10);
67 
69  {
71  {
72  GString name; // 00
73  std::uint32_t id; // 08
74  std::uint32_t importIndex; // 0C
75  };
76  static_assert(sizeof(ImportAssetInfo) == 0x10);
77 
80  std::uint32_t frame; // 20
81  std::uint32_t movieIndex; // 24
83  };
84  static_assert(sizeof(GFxImportNode) == 0x30);
85 
87  public GFxTimelineDef, // 00
88  public GFxResourceReport // 20
89  {
90  public:
91  class Allocator
92  {
93  public:
94  void* Alloc(std::size_t a_size);
95  void Free();
96 
97  // members
98  void* allocPtr; // 00
99  std::uint64_t memAvailable; // 08
100  void* lastBlock; // 10
102  };
103 
104  class LoadTaskDataBase : public GRefCountBase<LoadTaskDataBase, GFxStatMovieData::kGFxStatMD_Other_Mem>
105  {
106  public:
107  // members
109  void* unk30; // 30
110  };
111  static_assert(sizeof(LoadTaskDataBase) == 0x38);
112 
114  {
115  public:
117 
118  ~LoadTaskData() override; // 00
119 
120  // add
121  virtual void AddFrameName(GString* a_label, GFxLog* a_log); // 01
122  virtual void SetMovieTagArray(ExecuteTagList* a_data); // 02
123  virtual void SetImportTagArray(ExecuteTagList* a_data); // 03
124 
125  // members
128  GString fileURL; // 048
130  std::uint32_t fileAttributes; // 0C0
131  std::uint32_t padC4; // 0C4
132  void* metadata; // 0C8
133  std::uint32_t metadataSize; // 0D0
134  std::uint32_t loadStatus; // 0D4 - 1 when file loaded, 2 when loading finished, 4 if error?
135  std::int32_t frameLoading; // 0D8
136  std::uint8_t unkDC; // 0DC
137  std::uint8_t padDD; // 0DD
138  std::uint16_t padDE; // 0DE
139  std::uint32_t unkE0; // 0E0
140  std::uint32_t padE4; // 0E4
142  std::uint64_t unkF0; // 0F0
143  std::uint64_t unkF8; // 0F8
146  std::uint64_t unk110; // 110
147  std::uint64_t unk118; // 118
148  std::uint64_t unk120; // 120
149  std::uint64_t unk128; // 128
150  std::uint32_t importedResourceCount; // 130
151  std::uint32_t pad134; // 134
154  std::uint64_t unk168; // 168
155  std::uint64_t unk170; // 170
156  GLock frameLock; // 178
159  std::int32_t importFrameCount; // 1D0
160  std::uint32_t pad1D4; // 1D4
162  std::uint64_t unk1E0; // 1E0
163  };
164  static_assert(sizeof(LoadTaskData) == 0x1E8);
165 
166  ~GFxMovieDataDef() override; // 00
167 
168  // override (GFxResource)
169  GFxResourceKey GetKey() override; // 01
170  std::uint32_t GetResourceTypeCode() const override; // 02
172 
173  // override (GFxCharacterDef)
174  std::uint32_t GetVersion() override; // 08
175 
176  // override (GFxTimelineDef)
177  std::uint32_t GetFrameCount() override; // 0A
178  ExecuteTagList* GetMovieTagArray(ExecuteTagList& a_data, std::int32_t a_frameNumber) override; // 0B
179  ExecuteTagList* GetImportTagArray(ExecuteTagList& a_data, std::int32_t a_frameNumber) override; // 0C
180  bool GetLabeledFrame(const char* a_label, std::int32_t& a_frameNumber, bool a_arg3) override; // 0D
181 
182  // add
183  virtual void Unk_0E(void); // 0E
184  virtual std::uint32_t GetSWFFlags(); // 0F
185 
186  // members
188  void* unk30; // 30
189  std::uint32_t fileFormat; // 38
190  std::uint32_t pad3C; // 3C
192  private:
193  KEEP_FOR_RE()
194  };
195  static_assert(sizeof(GFxMovieDataDef) == 0x48);
196 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: GArray.h:13
Definition: GFxLog.h:11
Definition: GFxMovieDataDef.h:92
void * allocPtr
Definition: GFxMovieDataDef.h:98
GMemoryHeap * heap
Definition: GFxMovieDataDef.h:101
std::uint64_t memAvailable
Definition: GFxMovieDataDef.h:99
void * Alloc(std::size_t a_size)
void * lastBlock
Definition: GFxMovieDataDef.h:100
Definition: GFxMovieDataDef.h:105
Allocator allocator
Definition: GFxMovieDataDef.h:108
void * unk30
Definition: GFxMovieDataDef.h:109
Definition: GFxMovieDataDef.h:114
std::uint32_t loadStatus
Definition: GFxMovieDataDef.h:134
std::uint64_t unk168
Definition: GFxMovieDataDef.h:154
GLock frameLock
Definition: GFxMovieDataDef.h:156
GPtr< GFxLoadUpdateSync > updateSync
Definition: GFxMovieDataDef.h:141
std::uint64_t unkF0
Definition: GFxMovieDataDef.h:142
GFxMovieLoadInfo movieInfo
Definition: GFxMovieDataDef.h:129
GStringHash< std::int32_t > frameLabels
Definition: GFxMovieDataDef.h:161
std::uint32_t pad1D4
Definition: GFxMovieDataDef.h:160
std::uint64_t unk118
Definition: GFxMovieDataDef.h:147
GString fileURL
Definition: GFxMovieDataDef.h:128
std::uint32_t unkE0
Definition: GFxMovieDataDef.h:139
std::uint32_t padE4
Definition: GFxMovieDataDef.h:140
std::uint8_t unkDC
Definition: GFxMovieDataDef.h:136
void * metadata
Definition: GFxMovieDataDef.h:132
std::uint64_t unk1E0
Definition: GFxMovieDataDef.h:162
GMemoryHeap * loadDataHeap
Definition: GFxMovieDataDef.h:126
std::uint32_t pad134
Definition: GFxMovieDataDef.h:151
GArrayLH< ExecuteTagList > movieFrames
Definition: GFxMovieDataDef.h:157
std::uint64_t unkF8
Definition: GFxMovieDataDef.h:143
std::uint32_t importedResourceCount
Definition: GFxMovieDataDef.h:150
std::uint8_t padDD
Definition: GFxMovieDataDef.h:137
std::uint64_t unk120
Definition: GFxMovieDataDef.h:148
GFxImportNode * importInfoEnd
Definition: GFxMovieDataDef.h:145
GMemoryHeap * imageHeap
Definition: GFxMovieDataDef.h:127
std::uint64_t unk110
Definition: GFxMovieDataDef.h:146
virtual void SetMovieTagArray(ExecuteTagList *a_data)
ResourceHash resources
Definition: GFxMovieDataDef.h:153
std::uint16_t padDE
Definition: GFxMovieDataDef.h:138
std::uint64_t unk128
Definition: GFxMovieDataDef.h:149
std::uint32_t padC4
Definition: GFxMovieDataDef.h:131
virtual void AddFrameName(GString *a_label, GFxLog *a_log)
virtual void SetImportTagArray(ExecuteTagList *a_data)
std::uint32_t fileAttributes
Definition: GFxMovieDataDef.h:130
GFxImportNode * importInfoBegin
Definition: GFxMovieDataDef.h:144
GLock resourceLock
Definition: GFxMovieDataDef.h:152
std::int32_t importFrameCount
Definition: GFxMovieDataDef.h:159
GArrayLH< ExecuteTagList > importFrames
Definition: GFxMovieDataDef.h:158
std::uint32_t metadataSize
Definition: GFxMovieDataDef.h:133
std::int32_t frameLoading
Definition: GFxMovieDataDef.h:135
std::uint64_t unk170
Definition: GFxMovieDataDef.h:155
Definition: GFxMovieDataDef.h:89
GPtr< LoadTaskData > loadTaskData
Definition: GFxMovieDataDef.h:191
ExecuteTagList * GetMovieTagArray(ExecuteTagList &a_data, std::int32_t a_frameNumber) override
std::uint32_t GetFrameCount() override
void * unk30
Definition: GFxMovieDataDef.h:188
GFxResourceReport * GetResourceReport() override
~GFxMovieDataDef() override
std::uint32_t fileFormat
Definition: GFxMovieDataDef.h:189
ExecuteTagList * GetImportTagArray(ExecuteTagList &a_data, std::int32_t a_frameNumber) override
std::uint32_t GetResourceTypeCode() const override
GFxResourceKey * resourceKey
Definition: GFxMovieDataDef.h:187
bool GetLabeledFrame(const char *a_label, std::int32_t &a_frameNumber, bool a_arg3) override
virtual std::uint32_t GetSWFFlags()
std::uint32_t GetVersion() override
virtual void Unk_0E(void)
std::uint32_t pad3C
Definition: GFxMovieDataDef.h:190
GFxResourceKey GetKey() override
Definition: GFxResourceKey.h:6
Definition: GFxResourceReport.h:11
Definition: GFxResource.h:15
Definition: GFxTimelineDef.h:10
Definition: GAtomic.h:8
Definition: GMemoryHeap.h:16
Definition: GPtr.h:7
Definition: GRefCountBase.h:12
Definition: GString.h:8
Definition: AbsorbEffect.h:6
Definition: GFxMovieDataDef.h:71
GString name
Definition: GFxMovieDataDef.h:72
std::uint32_t importIndex
Definition: GFxMovieDataDef.h:74
std::uint32_t id
Definition: GFxMovieDataDef.h:73
Definition: GFxMovieDataDef.h:69
GFxImportNode * nextInChain
Definition: GFxMovieDataDef.h:82
std::uint32_t movieIndex
Definition: GFxMovieDataDef.h:81
GString filename
Definition: GFxMovieDataDef.h:79
GArray< ImportAssetInfo > assets
Definition: GFxMovieDataDef.h:76
std::uint32_t frame
Definition: GFxMovieDataDef.h:80
Definition: GFxMovieDataDef.h:20
GRectF frameRect
Definition: GFxMovieDataDef.h:23
void * unk58
Definition: GFxMovieDataDef.h:36
std::uint64_t unk68
Definition: GFxMovieDataDef.h:38
std::uint64_t unk28
Definition: GFxMovieDataDef.h:28
std::uint32_t totalBytes
Definition: GFxMovieDataDef.h:21
std::uint32_t unk24
Definition: GFxMovieDataDef.h:27
std::uint32_t unk44
Definition: GFxMovieDataDef.h:33
std::uint64_t unk38
Definition: GFxMovieDataDef.h:30
std::uint16_t unk40
Definition: GFxMovieDataDef.h:31
std::uint32_t version
Definition: GFxMovieDataDef.h:22
std::uint64_t unk30
Definition: GFxMovieDataDef.h:29
std::uint32_t frameCount
Definition: GFxMovieDataDef.h:25
std::uint64_t unk60
Definition: GFxMovieDataDef.h:37
std::uint32_t swfFlags
Definition: GFxMovieDataDef.h:26
GString unk50
Definition: GFxMovieDataDef.h:35
float frameRate
Definition: GFxMovieDataDef.h:24
std::uint16_t pad42
Definition: GFxMovieDataDef.h:32
GString unk48
Definition: GFxMovieDataDef.h:34
Definition: GFxMovieDataDef.h:51
std::uint32_t index
Definition: GFxMovieDataDef.h:52
std::uint32_t unk04
Definition: GFxMovieDataDef.h:53
Definition: GFxMovieDataDef.h:43
SourceType
Definition: GFxMovieDataDef.h:45
@ kImported
Definition: GFxMovieDataDef.h:47
@ kNormal
Definition: GFxMovieDataDef.h:46
SourceType type
Definition: GFxMovieDataDef.h:62
ResourceUnion data
Definition: GFxMovieDataDef.h:64
std::uint32_t pad04
Definition: GFxMovieDataDef.h:63
Definition: GFxTimelineDef.h:13
Definition: GFxMovieDataDef.h:57
ImportSource importSource
Definition: GFxMovieDataDef.h:59
GFxResource * resource
Definition: GFxMovieDataDef.h:58