CommonLibSSE (Parapets fork)
GFxMovieRoot.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/G/GColor.h"
5 #include "RE/G/GFxMovieView.h"
6 
7 namespace RE
8 {
9  class GFxSprite;
10 
12  {
13  public:
14  };
15  static_assert(sizeof(GFxActionPriority) == 0x1);
16 
17  class GFxMovieRoot :
18  public GFxMovieView, // 0000
19  public GFxActionPriority // 0018
20  {
21  public:
22  enum class Flag
23  {
24  kNone = 0,
25  kDirty = 1 << 10,
26  kMovieFocused = 1 << 18,
27  kPaused = 1 << 20
28  };
29 
30  ~GFxMovieRoot() override; // 00
31 
32  // override (GFxMovieView)
33  GFxMovieDef* GetMovieDef() const override; // 01 - Obtains the movie definition that created this instance.
34  std::uint32_t GetCurrentFrame() const override; // 02 - Obtains the currently active frame of the movie, starting with 0.
35  bool HasLooped() const override; // 03 - Determines whether the movie clip has looped past its last frame.
36  void GotoFrame(std::uint32_t a_frameNumber) override; // 04 - Moves a playhead to a specified frame.
37  bool GotoLabeledFrame(const char* a_label, std::int32_t a_offset = 0) override; // 05 - Moves a playhead to a specified frame identified by a label.
38  void SetPlayState(PlayState a_state) override; // 06 - Changes playback state of the movie, allowing animation to be paused and resumed.
39  PlayState GetPlayState() const override; // 07 - Obtains the play state of the movie clip, currently either Playing or Stopped.
40  void SetVisible(bool a_visible) override; // 08 - Sets the visibility state of a movie clip.
41  bool GetVisible() const override; // 09 - Obtains the visibility state of a movie clip.
42  bool IsAvailable(const char* a_pathToVar) const override; // 0A - Checks for availability of a field, method, or nested clip.
43  void CreateString(GFxValue* a_value, const char* a_string) override; // 0B - Creates strings that are managed by ActionScript runtime.
44  void CreateStringW(GFxValue* a_value, const wchar_t* a_string) override; // 0C - Creates wide character strings that are managed by ActionScript runtime.
45  void CreateObject(GFxValue* a_value, const char* a_className = 0, const GFxValue* a_args = 0, std::uint32_t a_numArgs = 0) override; // 0D - Creates an instance of ActionScript Object.
46  void CreateArray(GFxValue* a_value) override; // 0E - Creates an instance of an ActionScript Array object.
47  void CreateFunction(GFxValue* a_value, GFxFunctionHandler* a_fc, void* a_userData = 0) override; // 0F - Creates a function object that wraps a C++ function.
48  bool SetVariable(const char* a_pathToVar, const GFxValue& a_value, SetVarType a_setType = SetVarType::kSticky) override; // 10 - Sets a variable identified by a path to a new value, specified in UTF-8 encoding.
49  bool GetVariable(GFxValue* a_val, const char* a_pathToVar) const override; // 11 - Obtains the value of an ActionScript variable based on its path.
50  bool SetVariableArray(SetArrayType a_type, const char* a_pathToVar, std::uint32_t a_index, const void* a_data, std::uint32_t a_count, SetVarType a_setType = SetVarType::kSticky) const override; // 12 - Sets array elements in specified range to data items of specified type.
51  bool SetVariableArraySize(const char* a_pathToVar, std::uint32_t a_count, SetVarType a_setType = SetVarType::kSticky) override; // 13 - Sets the size of the array.
52  std::uint32_t GetVariableArraySize(const char* a_pathToVar) override; // 14 - Returns the size of array buffer necessary for GetVariableArray.
53  bool GetVariableArray(SetArrayType a_type, const char* a_pathToVar, std::uint32_t a_index, void* a_data, std::uint32_t a_count) override; // 15 - Populates a buffer with results from an ActionScript array.
54  bool Invoke(const char* a_methodName, GFxValue* a_result, const GFxValue* a_args, std::uint32_t a_numArgs) override; // 16 - Calls an ActionScript method on the movie clip.
55  bool InvokeFmt(const char* a_methodName, GFxValue* a_result, const char* a_argFmt, ...) override; // 17 - Calls an ActionScript method on the movie clip.
56  bool InvokeArgs(const char* a_methodName, GFxValue* a_result, const char* a_argFmt, std::va_list a_args) override; // 18 - Invokes an ActionScript method on the movie clip using a format string followed by a variable argument list.
57  void SetViewport(const GViewport& a_viewDesc) override; // 19 - Sets the render-target surface viewport to which the movie is scaled.
58  void GetViewport(GViewport* a_viewDesc) const override; // 1A - Obtains the render-target surface viewport to which the movie is scaled.
59  void SetViewScaleMode(ScaleModeType a_type) override; // 1B - Sets the current scale mode for the movie.
60  ScaleModeType GetViewScaleMode() const override; // 1C - Obtains the current scale mode for the movie.
61  void SetViewAlignment(AlignType a_type) override; // 1D - Sets the current alignment mode for the movie.
62  AlignType GetViewAlignment() const override; // 1E - Gets the current alignment mode for the movie.
63  GRectF GetVisibleFrameRect() const override; // 1F - Obtains the currently visible rectangle.
64  void SetPerspective3D(const GMatrix3D& a_projMatIn) override; // 20
65  void SetView3D(const GMatrix3D& a_viewMatIn) override; // 21
66  GRectF GetSafeRect() const override; // 22
67  void SetSafeRect(const GRectF& a_rect) override; // 23
68  void Restart() override; // 24
69  float Advance(float a_deltaT, std::uint32_t a_frameCatchUpCount = 2) override; // 25
70  void Display() override; // 26
71  void DisplayPrePass() override; // 27
72  void SetPause(bool a_pause) override; // 28
73  bool IsPaused() const override; // 29
74  void SetBackgroundColor(const GColor a_bgColor) override; // 2A
75  void SetBackgroundAlpha(float a_alpha) override; // 2B
76  float GetBackgroundAlpha() const override; // 2C
77  HEResult HandleEvent(const GFxEvent& a_event) override; // 2D
78  void GetMouseState(std::uint32_t a_mouseIndex, float* a_x, float* a_y, std::uint32_t* a_buttons) override; // 2E
79  void NotifyMouseState(float a_x, float a_y, std::uint32_t a_buttons, std::uint32_t a_mouseIndex = 0) override; // 2F
80  bool HitTest(float a_x, float a_y, HitTestType a_testCond = HitTestType::kShapes, std::uint32_t a_controllerIdx = 0) override; // 30
81  bool HitTest3D(GPoint3F* a_ptOut, float a_x, float a_y, std::uint32_t a_controllerIdx = 0) override; // 31
82  void SetExternalInterfaceRetVal(const GFxValue& a_val) override; // 32
83  void* GetUserData() const override; // 33
84  void SetUserData(void* a_data) override; // 34
85  bool AttachDisplayCallback(const char* a_pathToObject, void (*a_callback)(void* a_user), void* a_user) override; // 35
86  bool IsMovieFocused() const override; // 36
87  bool GetDirtyFlag(bool a_doReset = true) override; // 37
88  void SetMouseCursorCount(std::uint32_t a_count) override; // 38
89  std::uint32_t GetMouseCursorCount() const override; // 39
90  void SetControllerCount(std::uint32_t a_count) override; // 3A
91  std::uint32_t GetControllerCount() const override; // 3B
92  void GetStats(GStatBag* a_bag, bool a_reset = true) override; // 3C
93  GMemoryHeap* GetHeap() const override; // 3D
94  void ForceCollectGarbage() override; // 3E
95  GPointF TranslateToScreen(const GPointF& a_p, void* a_userMatrix) override; // 3F
96  GRectF TranslateToScreen(const GRectF& a_p, void* a_userMatrix) override; // 40
97  bool TranslateLocalToScreen(const char* a_pathToCharacter, const GPointF& a_pt, GPointF* a_presPt, void* a_userMatrix) override; // 41
98  bool SetControllerFocusGroup(std::uint32_t a_controllerIdx, std::uint32_t a_focusGroupIndex) override; // 42
99  std::uint32_t GetControllerFocusGroup(std::uint32_t a_controllerIdx) const override; // 43
101  void Release() override; // 45
102 
103  // add
104  virtual void Unk_46(void); // 46
105  virtual void Unk_47(void); // 47
106  virtual void Unk_48(void); // 48
107 
108  // members
109  std::uint64_t unk0020; // 0020
111  std::uint64_t unk0030; // 0030
112  GMemoryHeap* heap; // 0038
113  std::uint64_t unk0040; // 0040
114  std::uint64_t unk0048; // 0048
115  std::uint64_t unk0050; // 0050
116  GFxSprite* timeline; // 0058
118  std::uint64_t unk0068; // 0068
119  std::uint64_t unk0070; // 0070
121  std::uint64_t unk00B0; // 00B0
122  std::uint64_t unk00B8; // 00B8
126  std::uint64_t unk00D8; // 00D8
127  GRectF safeRect; // 00E0
128  std::uint64_t unk00F0; // 00F0
129  std::uint64_t unk00F8; // 00F8
131  std::uint64_t unk0108; // 0108
132  std::uint64_t unk0110; // 0110
133  std::uint64_t unk0118[(0x09A0 - 0x0118) >> 3]; // 0118
135  std::uint32_t unk09A4; // 09A4
136  std::uint64_t unk09A8[(0x0A68 - 0x09A8) >> 3]; // 09A8
137  std::uint32_t mouseCursorCount; // 0A68
138  std::uint32_t controllerCount; // 0A6C
139  void* userData; // 0A70
140  std::uint64_t unk0A78; // 0A78
142  std::uint64_t unk1108[(0x24A0 - 0x1108) >> 3]; // 1108
144  std::uint64_t unk24A8[(0x25E0 - 0x24A8) >> 3]; // 1108
146  std::uint32_t unk25E4; // 25E4
147  std::uint64_t unk25E8[(0x2B48 - 0x25E8) >> 3]; // 25E8
148  std::uint32_t focusGroup; // 2B48
149  std::uint8_t controllerGroups[16]; // 2B4C
150  std::uint32_t unk2B54; // 2B54
151  std::uint64_t unk2B58[(0x2BE8 - 0x2B58) >> 3]; // 2B58
152  };
153 #ifndef __INTELLISENSE__
154  static_assert(sizeof(GFxMovieRoot) == 0x2BF0);
155 #endif
156 }
Definition: GASGlobalContext.h:15
Definition: GColor.h:6
Definition: GFxMovieRoot.h:12
Definition: GFxEvent.h:9
Definition: GFxFunctionHandler.h:12
Definition: GFxKeyboardState.h:14
Definition: GFxMovieDef.h:70
Definition: GFxMovieDef.h:62
Definition: GFxMovieDef.h:21
Definition: GFxMovieRoot.h:20
void CreateFunction(GFxValue *a_value, GFxFunctionHandler *a_fc, void *a_userData=0) override
GFxMovieDef::MemoryContextImpl * memoryContext
Definition: GFxMovieRoot.h:110
GViewport unk0078
Definition: GFxMovieRoot.h:120
void SetViewport(const GViewport &a_viewDesc) override
GFxMovieDef::MemoryContext * GetMemoryContext() const override
bool Invoke(const char *a_methodName, GFxValue *a_result, const GFxValue *a_args, std::uint32_t a_numArgs) override
void DisplayPrePass() override
std::uint64_t unk00D8
Definition: GFxMovieRoot.h:126
std::uint32_t mouseCursorCount
Definition: GFxMovieRoot.h:137
void SetViewAlignment(AlignType a_type) override
bool GotoLabeledFrame(const char *a_label, std::int32_t a_offset=0) override
GPointF TranslateToScreen(const GPointF &a_p, void *a_userMatrix) override
void SetMouseCursorCount(std::uint32_t a_count) override
virtual void Unk_47(void)
bool TranslateLocalToScreen(const char *a_pathToCharacter, const GPointF &a_pt, GPointF *a_presPt, void *a_userMatrix) override
bool AttachDisplayCallback(const char *a_pathToObject, void(*a_callback)(void *a_user), void *a_user) override
std::uint64_t unk0068
Definition: GFxMovieRoot.h:118
std::uint32_t focusGroup
Definition: GFxMovieRoot.h:148
bool GetVariable(GFxValue *a_val, const char *a_pathToVar) const override
std::uint64_t unk0050
Definition: GFxMovieRoot.h:115
std::uint64_t unk09A8[(0x0A68 - 0x09A8) >> 3]
Definition: GFxMovieRoot.h:136
void SetExternalInterfaceRetVal(const GFxValue &a_val) override
void SetUserData(void *a_data) override
bool GetVariableArray(SetArrayType a_type, const char *a_pathToVar, std::uint32_t a_index, void *a_data, std::uint32_t a_count) override
bool HitTest(float a_x, float a_y, HitTestType a_testCond=HitTestType::kShapes, std::uint32_t a_controllerIdx=0) override
std::uint32_t unk2B54
Definition: GFxMovieRoot.h:150
void SetSafeRect(const GRectF &a_rect) override
void Release() override
std::uint64_t unk0040
Definition: GFxMovieRoot.h:113
GMemoryHeap * heap
Definition: GFxMovieRoot.h:112
void * GetUserData() const override
bool SetVariableArray(SetArrayType a_type, const char *a_pathToVar, std::uint32_t a_index, const void *a_data, std::uint32_t a_count, SetVarType a_setType=SetVarType::kSticky) const override
void CreateArray(GFxValue *a_value) override
GASGlobalContext * globalContext
Definition: GFxMovieRoot.h:143
bool GetVisible() const override
std::uint64_t unk25E8[(0x2B48 - 0x25E8) >> 3]
Definition: GFxMovieRoot.h:147
GMatrix3D * perspective3D
Definition: GFxMovieRoot.h:130
void SetViewScaleMode(ScaleModeType a_type) override
bool HasLooped() const override
std::uint64_t unk1108[(0x24A0 - 0x1108) >> 3]
Definition: GFxMovieRoot.h:142
std::uint8_t controllerGroups[16]
Definition: GFxMovieRoot.h:149
float Advance(float a_deltaT, std::uint32_t a_frameCatchUpCount=2) override
ScaleModeType GetViewScaleMode() const override
void SetPerspective3D(const GMatrix3D &a_projMatIn) override
AlignType viewAlignment
Definition: GFxMovieRoot.h:124
GRectF GetSafeRect() const override
float GetBackgroundAlpha() const override
void * userData
Definition: GFxMovieRoot.h:139
std::uint64_t unk0110
Definition: GFxMovieRoot.h:132
std::uint32_t GetControllerFocusGroup(std::uint32_t a_controllerIdx) const override
GFxMovieDef * GetMovieDef() const override
GRectF safeRect
Definition: GFxMovieRoot.h:127
void SetControllerCount(std::uint32_t a_count) override
std::uint64_t unk00B0
Definition: GFxMovieRoot.h:121
std::uint64_t unk0048
Definition: GFxMovieRoot.h:114
void SetView3D(const GMatrix3D &a_viewMatIn) override
void SetPlayState(PlayState a_state) override
std::uint64_t unk00F0
Definition: GFxMovieRoot.h:128
GRectF TranslateToScreen(const GRectF &a_p, void *a_userMatrix) override
void GotoFrame(std::uint32_t a_frameNumber) override
HEResult HandleEvent(const GFxEvent &a_event) override
~GFxMovieRoot() override
GFxSprite * timeline
Definition: GFxMovieRoot.h:116
std::uint32_t GetCurrentFrame() const override
std::uint64_t unk2B58[(0x2BE8 - 0x2B58) >> 3]
Definition: GFxMovieRoot.h:151
std::uint32_t unk25E4
Definition: GFxMovieRoot.h:146
void GetStats(GStatBag *a_bag, bool a_reset=true) override
GFxMovieDef * movieDef
Definition: GFxMovieRoot.h:117
std::uint64_t unk0020
Definition: GFxMovieRoot.h:109
bool HitTest3D(GPoint3F *a_ptOut, float a_x, float a_y, std::uint32_t a_controllerIdx=0) override
std::uint32_t GetControllerCount() const override
GRectF GetVisibleFrameRect() const override
AlignType GetViewAlignment() const override
bool SetControllerFocusGroup(std::uint32_t a_controllerIdx, std::uint32_t a_focusGroupIndex) override
void GetMouseState(std::uint32_t a_mouseIndex, float *a_x, float *a_y, std::uint32_t *a_buttons) override
GFxKeyboardState keyboardState
Definition: GFxMovieRoot.h:141
std::uint64_t unk0118[(0x09A0 - 0x0118) >> 3]
Definition: GFxMovieRoot.h:133
std::uint64_t unk0070
Definition: GFxMovieRoot.h:119
GMemoryHeap * GetHeap() const override
void CreateString(GFxValue *a_value, const char *a_string) override
void SetPause(bool a_pause) override
bool IsMovieFocused() const override
void CreateObject(GFxValue *a_value, const char *a_className=0, const GFxValue *a_args=0, std::uint32_t a_numArgs=0) override
void CreateStringW(GFxValue *a_value, const wchar_t *a_string) override
void NotifyMouseState(float a_x, float a_y, std::uint32_t a_buttons, std::uint32_t a_mouseIndex=0) override
std::uint32_t GetVariableArraySize(const char *a_pathToVar) override
bool GetDirtyFlag(bool a_doReset=true) override
std::uint64_t unk24A8[(0x25E0 - 0x24A8) >> 3]
Definition: GFxMovieRoot.h:144
std::uint32_t unk09A4
Definition: GFxMovieRoot.h:135
void Restart() override
bool IsAvailable(const char *a_pathToVar) const override
stl::enumeration< Flag, std::uint32_t > flags
Definition: GFxMovieRoot.h:145
bool InvokeFmt(const char *a_methodName, GFxValue *a_result, const char *a_argFmt,...) override
void GetViewport(GViewport *a_viewDesc) const override
bool SetVariable(const char *a_pathToVar, const GFxValue &a_value, SetVarType a_setType=SetVarType::kSticky) override
std::uint64_t unk0030
Definition: GFxMovieRoot.h:111
std::uint64_t unk0108
Definition: GFxMovieRoot.h:131
bool IsPaused() const override
void Display() override
bool InvokeArgs(const char *a_methodName, GFxValue *a_result, const char *a_argFmt, std::va_list a_args) override
GColor backgroundColor
Definition: GFxMovieRoot.h:134
Flag
Definition: GFxMovieRoot.h:23
virtual void Unk_48(void)
std::uint32_t controllerCount
Definition: GFxMovieRoot.h:138
virtual void Unk_46(void)
std::uint64_t unk0A78
Definition: GFxMovieRoot.h:140
GRectF visibleFrameRect
Definition: GFxMovieRoot.h:125
void SetBackgroundAlpha(float a_alpha) override
void SetVisible(bool a_visible) override
std::uint64_t unk00B8
Definition: GFxMovieRoot.h:122
std::uint64_t unk00F8
Definition: GFxMovieRoot.h:129
PlayState GetPlayState() const override
void ForceCollectGarbage() override
bool SetVariableArraySize(const char *a_pathToVar, std::uint32_t a_count, SetVarType a_setType=SetVarType::kSticky) override
void SetBackgroundColor(const GColor a_bgColor) override
std::uint32_t GetMouseCursorCount() const override
ScaleModeType viewScaleMode
Definition: GFxMovieRoot.h:123
Definition: GFxMovieView.h:24
AlignType
Definition: GFxMovieView.h:39
HitTestType
Definition: GFxMovieView.h:60
HEResult
Definition: GFxMovieView.h:52
ScaleModeType
Definition: GFxMovieView.h:30
SetArrayType
Definition: GFxMovie.h:32
SetVarType
Definition: GFxMovie.h:24
PlayState
Definition: GFxMovie.h:17
Definition: GFxSprite.h:13
Definition: GFxValue.h:92
Definition: GMatrix3D.h:6
Definition: GMemoryHeap.h:16
Definition: GViewport.h:6
Definition: AbsorbEffect.h:6