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