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