CommonLibSSE (Parapets fork)
GFxValue.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/G/GFxPlayerStats.h"
4 #include "RE/G/GMatrix2D.h"
5 #include "RE/G/GMatrix3D.h"
6 #include "RE/G/GMemory.h"
8 #include "RE/G/GRenderer.h"
9 #include "RE/G/GStats.h"
10 #include "RE/G/GString.h"
11 
12 namespace RE
13 {
14  class GFxMovieRoot;
15 
16  namespace GFxValueImpl
17  {
18  template <class>
19  struct _is_integer :
20  std::false_type
21  {};
22 
23  template <>
24  struct _is_integer<unsigned char> :
25  std::true_type
26  {};
27 
28  template <>
29  struct _is_integer<char> :
30  std::true_type
31  {};
32 
33  template <>
34  struct _is_integer<signed char> :
35  std::true_type
36  {};
37 
38  template <>
39  struct _is_integer<unsigned short> :
40  std::true_type
41  {};
42 
43  template <>
44  struct _is_integer<signed short> :
45  std::true_type
46  {};
47 
48  template <>
49  struct _is_integer<unsigned int> :
50  std::true_type
51  {};
52 
53  template <>
54  struct _is_integer<signed int> :
55  std::true_type
56  {};
57 
58  template <>
59  struct _is_integer<unsigned long> :
60  std::true_type
61  {};
62 
63  template <>
64  struct _is_integer<signed long> :
65  std::true_type
66  {};
67 
68  template <>
69  struct _is_integer<unsigned long long> :
70  std::true_type
71  {};
72 
73  template <>
74  struct _is_integer<signed long long> :
75  std::true_type
76  {};
77 
78  template <class T>
79  struct is_integer :
80  std::conditional_t<
81  std::is_enum_v<T>,
82  std::true_type,
83  _is_integer<
84  std::remove_cv_t<T>>>
85  {};
86 
87  template <class T>
88  inline constexpr bool is_integer_v = is_integer<T>::value;
89  }
90 
91  class GFxValue
92  {
93  private:
94  friend class GFxMovieRoot;
95 
96  public:
97  enum class ValueType
98  {
99  kUndefined = 0x00,
100  kNull = 0x01,
101  kBoolean = 0x02,
102  kNumber = 0x03,
103  kString = 0x04,
104  kStringW = 0x05,
105  kObject = 0x06,
106  kArray = 0x07,
107  kDisplayObject = 0x08,
108 
109  kManagedBit = 1 << 6,
110  kConvertBit = 1 << 7,
111  kValueMask = 0x0F,
113 
118  };
119 
120  // DisplayInfo is a structure to modify display properties of a display object (MovieClips, TextField, Button). This structure is used in conjunction with GetDisplayInfo/SetDisplayInfo.
122  {
123  public:
124  // Flags set to define the display properties of display objects.
125  enum class Flag
126  {
127  kNone = 0,
128  kX = 1 << 0,
129  kY = 1 << 1,
130  kRotation = 1 << 2,
131  kXScale = 1 << 3,
132  kYScale = 1 << 4,
133  kAlpha = 1 << 5,
134  kVisible = 1 << 6,
135  kZ = 1 << 7,
136  kXRotation = 1 << 8,
137  kYRotation = 1 << 9,
138  kZScale = 1 << 10,
139  kFOV = 1 << 11,
140  kPerspMatrix3D = 1 << 12,
141  kViewMatrix3D = 1 << 13
142  };
143 
144  DisplayInfo() = default; // Initializes the DisplayInfo structure.
145  DisplayInfo(double a_x, double a_y); // Initializes the DisplayInfo structure.
146  DisplayInfo(double a_rotation); // Initializes the DisplayInfo structure.
147  DisplayInfo(bool a_visible); // Initializes the DisplayInfo structure.
148 
149  void Clear(); // Clears all properties from the DisplayInfo object.
150  [[nodiscard]] double GetAlpha() const; // Retrieves the alpha transparency of the display object.
151  [[nodiscard]] double GetFOV() const; // Retrieves the perspective Field of View angle on the object.
152  [[nodiscard]] double GetRotation() const; // Retrieves the rotation of the display object.
153  [[nodiscard]] bool GetVisible() const; // Retrieves the Boolean value to indicate the visibility of the display object.
154  [[nodiscard]] const GMatrix3D* GetPerspectiveMatrix3D() const; // Returns a temporary pointer to the 3D perspective matrix set on a 3D movie clip.
155  [[nodiscard]] const GMatrix3D* GetViewMatrix3D() const; // Returns a temporary pointer to the 3D view matrix set on the 3D movie clip.
156  [[nodiscard]] double GetX() const; // Retrieves the x coordinate of the display object relative to the parent movie clip.
157  [[nodiscard]] double GetY() const; // Retrieves the y coordinate of the display object relative to the parent movie clip.
158  [[nodiscard]] double GetZ() const; // Retrieves the z coordinate of the display object relative to the parent movie clip.
159  [[nodiscard]] double GetXRotation() const; // Returns the rotation of the object around the X axis.
160  [[nodiscard]] double GetYRotation() const; // Returns the rotation of the object around the Y axis.
161  [[nodiscard]] double GetXScale() const; // Retrieves the horizontal scale of the display object.
162  [[nodiscard]] double GetYScale() const; // Retrieves the vertical scale of the display object.
163  [[nodiscard]] double GetZScale() const; // Retrieves the scale of the object along the Z axis.
164  [[nodiscard]] bool IsFlagSet(Flag a_flag) const; // Determines if a property of the DisplayInfo object is set
165  void Initialize(Flag a_varsSet, double a_x, double a_y, double a_rotation, double a_xScale, double a_yScale, double a_alpha, bool a_visible, double a_z, double a_xRotation, double a_yRotation, double a_zScale, double a_fov, const GMatrix3D* a_viewM, const GMatrix3D* a_perspM); // Initializes the display properties of a display object.
166  void SetVisible(bool a_visible); // Sets the visibility of the display object.
167  void SetPerspectiveMatrix3D(const GMatrix3D* a_mat); // Sets the erspective matrix for a 3D movie clip.
168  void Set(double a_x, double a_y, double a_rotation, double a_xScale, double a_yScale, double a_alpha, bool a_visible); // Sets the values in Flag structure indicating the display properties of objects on stage.
169  void Set(double a_x, double a_y, double a_rotation, double a_xScale, double a_yScale, double a_alpha, bool a_visible, double a_z, double a_xRotation, double a_yRotation, double a_zScale); // Sets the values in Flags structure indicating the display properties of objects on stage.
170  void SetViewMatrix3D(const GMatrix3D* a_mat); // Sets the view matrix for a 3D movie clip.
171  void SetAlpha(double a_alpha); // Sets the alpha transparency of the display object.
172  void SetFOV(double a_fov); // Sets the perspective Field of View angle in degrees.
173  void SetPosition(double a_x, double a_y); // Sets the coordinate position of the display object.
174  void SetRotation(double a_degrees); // Sets the rotation of the display object.
175  void SetScale(double a_xScale, double a_yScale); // Sets the scaling factor of the display object.
176  void SetX(double a_x); // Sets the x coordinate of the display object relative to the parent movie clip.
177  void SetXRotation(double a_degrees); // Sets the rotation of the object around the X axis.
178  void SetXScale(double a_xScale); // Sets the horizontal scale of the display object.
179  void SetY(double a_y); // Sets the y coordinate of the display object relative to the parent movie clip.
180  void SetYRotation(double a_degrees); // Sets the rotation of the object around the Y axis.
181  void SetYScale(double a_yScale); // Sets the vertical scale of the display object.
182  void SetZ(double a_z); // Sets the z coordinate of the display object relative to the parent movie clip.
183  void SetZScale(double a_zScale); // Sets the scale of the object along the Z axis
184 
185  protected:
186  void SetFlags(Flag a_flags);
187  void ClearFlags(Flag a_flags);
188 
189  // members
190  double _x = 0.0; // 00
191  double _y = 0.0; // 08
192  double _rotation = 0.0; // 10
193  double _xScale = 0.0; // 18
194  double _yScale = 0.0; // 20
195  double _alpha = 0.0; // 28
196  bool _visible = false; // 30
197  std::uint8_t _pad31 = 0; // 31
198  std::uint16_t _pad32 = 0; // 32
199  std::uint32_t _pad34 = 0; // 34
200  double _z = 0.0; // 38
201  double _xRotation = 0.0; // 40
202  double _yRotation = 0.0; // 48
203  double _zScale = 0.0; // 50
204  double _fov = 0.0; // 58
208  std::uint16_t _padD2 = 0; // E2
209  std::uint32_t _padD4 = 0; // E4
210  };
211  static_assert(sizeof(DisplayInfo) == 0xE8);
212 
213  class ObjectInterface : public GNewOverrideBase<GFxStatMovieViews::kGFxStatMV_Other_Mem>
214  {
215  public:
217  {
218  public:
219  virtual ~ObjVisitor(); // 00
220 
221  // add
222  virtual void Visit(const char* a_name, const GFxValue& a_val) = 0; // 01
223  };
224 
226  {
227  public:
228  virtual ~ArrVisitor(); // 00
229 
230  // add
231  virtual void Visit(std::uint32_t a_idx, const GFxValue& a_val) = 0; // 01
232  };
233 
235 
236  void ObjectAddRef(GFxValue* a_val, void* a_obj);
237  void ObjectRelease(GFxValue* a_val, void* a_obj);
238 
239  bool HasMember(void* a_data, const char* a_name, bool a_isDObj) const;
240  bool GetMember(void* a_data, const char* a_name, GFxValue* a_val, bool a_isDObj) const;
241  bool SetMember(void* a_data, const char* a_name, const GFxValue& a_value, bool a_isDObj);
242  bool Invoke(void* a_data, GFxValue* a_result, const char* a_name, const GFxValue* a_args, UPInt a_numArgs, bool a_isDObj);
243  bool DeleteMember(void* a_data, const char* a_name, bool a_isDObj);
244  void VisitMembers(void* a_data, ObjVisitor* a_visitor, bool a_isDObj) const;
245 
246  std::uint32_t GetArraySize(void* a_data) const;
247  bool SetArraySize(void* a_data, std::uint32_t a_size);
248  bool GetElement(void* a_data, std::uint32_t a_idx, GFxValue* a_val) const;
249  bool SetElement(void* a_data, std::uint32_t a_idx, const GFxValue& a_val);
250  bool PushBack(void* a_data, const GFxValue& a_value);
251  bool RemoveElements(void* a_data, std::uint32_t a_idx, std::int32_t a_count);
252 
253  bool GetDisplayInfo(void* a_data, DisplayInfo* a_info) const;
254  bool SetDisplayInfo(void* a_data, const DisplayInfo& a_info);
255  bool GetDisplayMatrix(void* a_data, GMatrix2D* a_mat) const;
256  bool SetDisplayMatrix(void* a_data, const GMatrix2D& a_mat);
257  bool GetCxform(void* a_data, GRenderer::Cxform* a_cx) const;
258  bool SetCxform(void* a_data, const GRenderer::Cxform& a_cx);
259 
260  bool SetText(void* a_data, const char* a_text, bool a_isHTML);
261 
262  bool AttachMovie(void* a_data, GFxValue* a_movieClip, const char* a_symbolName, const char* a_instanceName, std::int32_t a_depth, const GFxValue* a_initObj);
263  bool GotoAndPlay(void* a_data, const char* a_frame, bool a_stop);
264 
265  bool IsSameContext(const ObjectInterface* a_rhs) const;
266 
267  protected:
268  // members
270  };
271  static_assert(sizeof(ObjectInterface) == 0x8);
272 
275 
276  using ObjectVisitFn = std::function<void(const char*, const RE::GFxValue&)>;
277 
280  GFxValue(std::nullptr_t);
281  GFxValue(double a_rhs);
282  GFxValue(bool a_rhs);
283  GFxValue(const char* a_rhs);
284  GFxValue(std::string_view a_rhs);
285  GFxValue(const wchar_t* a_rhs);
286  GFxValue(std::wstring_view a_rhs);
287  GFxValue(const GFxValue& a_rhs);
288  GFxValue(GFxValue&& a_rhs);
289 
290  template <
291  class T,
292  std::enable_if_t<
293  GFxValueImpl::is_integer_v<T>,
294  int> = 0>
295  inline GFxValue(T a_val) :
296  GFxValue(static_cast<double>(a_val))
297  {}
298 
300 
301  GFxValue& operator=(std::nullptr_t);
302  GFxValue& operator=(double a_rhs);
303  GFxValue& operator=(bool a_rhs);
304  GFxValue& operator=(const char* a_rhs);
305  GFxValue& operator=(std::string_view a_rhs);
306  GFxValue& operator=(const wchar_t* a_rhs);
307  GFxValue& operator=(std::wstring_view a_rhs);
308  GFxValue& operator=(const GFxValue& a_rhs);
310 
311  template <
312  class T,
313  std::enable_if_t<
314  GFxValueImpl::is_integer_v<T>,
315  int> = 0>
316  inline GFxValue& operator=(T a_val)
317  {
318  return *this = static_cast<double>(a_val);
319  }
320 
321  bool operator==(const GFxValue& a_rhs) const;
322 
323  [[nodiscard]] GString ToString() const;
324 
325  [[nodiscard]] ValueType GetType() const;
326  [[nodiscard]] bool IsUndefined() const;
327  [[nodiscard]] bool IsNull() const;
328  [[nodiscard]] bool IsBool() const;
329  [[nodiscard]] bool IsNumber() const;
330  [[nodiscard]] bool IsString() const;
331  [[nodiscard]] bool IsStringW() const;
332  [[nodiscard]] bool IsObject() const;
333  [[nodiscard]] bool IsArray() const;
334  [[nodiscard]] bool IsDisplayObject() const;
335  [[nodiscard]] bool GetBool() const;
336  [[nodiscard]] double GetNumber() const;
337  [[nodiscard]] std::ptrdiff_t GetSInt() const;
338  [[nodiscard]] std::size_t GetUInt() const;
339  [[nodiscard]] const char* GetString() const;
340  [[nodiscard]] const wchar_t* GetStringW() const;
341 
342  void SetUndefined();
343  void SetNull();
344  void SetBoolean(bool a_val);
345  void SetNumber(double a_val);
346  void SetString(const char* a_str);
347  void SetString(std::string_view a_str);
348  void SetStringW(const wchar_t* a_str);
349  void SetStringW(std::wstring_view a_str);
350 
355 
356  // AS Object support. Valid for Object, Array and DisplayObject types
357  bool HasMember(const char* a_name) const;
358  bool GetMember(const char* a_name, GFxValue* a_val) const;
359  bool SetMember(const char* a_name, const GFxValue& a_val);
360  bool Invoke(const char* a_name, GFxValue* a_result, const GFxValue* a_args, UPInt a_numArgs);
361  bool Invoke(const char* a_name, GFxValue* a_result = nullptr);
362  bool DeleteMember(const char* a_name);
363  void VisitMembers(ObjectVisitor* a_visitor) const;
364  void VisitMembers(ObjectVisitFn&& a_visitor) const;
365 
366  template <std::size_t N>
367  inline bool Invoke(const char* a_name, const std::array<GFxValue, N>& a_args)
368  {
369  return Invoke(a_name, nullptr, a_args);
370  }
371 
372  template <std::size_t N>
373  inline bool Invoke(const char* a_name, GFxValue* a_result, const std::array<GFxValue, N>& a_args)
374  {
375  return Invoke(a_name, a_result, a_args.data(), a_args.size());
376  }
377 
378  // AS Array support. Valid for Array type
379  [[nodiscard]] std::uint32_t GetArraySize() const;
380  bool SetArraySize(std::uint32_t a_size);
381  bool GetElement(std::uint32_t a_idx, GFxValue* a_val) const;
382  bool SetElement(std::uint32_t a_idx, const GFxValue& a_val);
383  bool PushBack(const GFxValue& a_val);
384  bool RemoveElements(std::uint32_t a_idx, std::int32_t a_count = -1);
385  bool RemoveElement(std::uint32_t a_idx);
387 
388  // AS MovieClips, Buttons, TextFields support. Valid for DisplayObject type
389  bool GetDisplayInfo(DisplayInfo* a_info) const;
390  bool SetDisplayInfo(const DisplayInfo& a_info);
391  bool GetDisplayMatrix(GMatrix2D* a_mat) const;
392  bool SetDisplayMatrix(const GMatrix2D& a_mat);
393  bool GetCxform(GRenderer::Cxform* a_cx) const;
394  bool SetCxform(const GRenderer::Cxform& a_cx);
395 
396  // AS TextField support. Valid for DisplayObject type.
397  bool SetText(const char* a_text);
398  bool SetTextHTML(const char* a_html);
399 
400  // AS MovieClip support. Valid for MovieClips.
401  bool AttachMovie(GFxValue* a_movieClip, const char* a_symbolName, const char* a_instanceName, std::int32_t a_depth = -1, const GFxValue* a_initObj = nullptr);
402  bool GotoAndPlay(const char* a_frame);
403  bool GotoAndStop(const char* a_frame);
404 
406 
407  protected:
408  [[nodiscard]] bool IsManagedValue() const;
409  void AcquireManagedValue(const GFxValue& a_rhs);
411  void ChangeType(ValueType a_type);
412 
414  {
415  constexpr ValueUnion() :
416  obj(nullptr)
417  {}
418 
419  double number;
420  bool boolean;
421  const char* string;
422  const char** managedString;
423  const wchar_t* wideString;
424  const wchar_t** managedWideString;
425  void* obj;
426  };
427  static_assert(sizeof(ValueUnion) == 0x8);
428 
429  // members
432  std::uint32_t _pad0C; // 0C
434  };
435  static_assert(sizeof(GFxValue) == 0x18);
436 }
Definition: GFxMovieRoot.h:20
Definition: GFxValue.h:122
double GetYScale() const
double _fov
Definition: GFxValue.h:204
void SetX(double a_x)
double _rotation
Definition: GFxValue.h:192
void SetFOV(double a_fov)
const GMatrix3D * GetViewMatrix3D() const
std::uint32_t _padD4
Definition: GFxValue.h:209
void SetAlpha(double a_alpha)
double _y
Definition: GFxValue.h:191
double _zScale
Definition: GFxValue.h:203
double _xScale
Definition: GFxValue.h:193
double GetYRotation() const
void SetXScale(double a_xScale)
DisplayInfo(double a_rotation)
void SetZ(double a_z)
GMatrix3D _viewMatrix3D
Definition: GFxValue.h:205
void Set(double a_x, double a_y, double a_rotation, double a_xScale, double a_yScale, double a_alpha, bool a_visible, double a_z, double a_xRotation, double a_yRotation, double a_zScale)
std::uint16_t _pad32
Definition: GFxValue.h:198
void SetZScale(double a_zScale)
bool _visible
Definition: GFxValue.h:196
void SetRotation(double a_degrees)
void SetViewMatrix3D(const GMatrix3D *a_mat)
double _alpha
Definition: GFxValue.h:195
double _z
Definition: GFxValue.h:200
void SetVisible(bool a_visible)
std::uint8_t _pad31
Definition: GFxValue.h:197
double GetRotation() const
bool IsFlagSet(Flag a_flag) const
DisplayInfo(bool a_visible)
const GMatrix3D * GetPerspectiveMatrix3D() const
Flag
Definition: GFxValue.h:126
void SetScale(double a_xScale, double a_yScale)
double _x
Definition: GFxValue.h:190
double GetXScale() const
void SetXRotation(double a_degrees)
std::uint32_t _pad34
Definition: GFxValue.h:199
double GetZScale() const
stl::enumeration< Flag, std::uint16_t > _flags
Definition: GFxValue.h:207
void SetYRotation(double a_degrees)
std::uint16_t _padD2
Definition: GFxValue.h:208
void ClearFlags(Flag a_flags)
double _yRotation
Definition: GFxValue.h:202
double GetXRotation() const
void SetPosition(double a_x, double a_y)
void SetFlags(Flag a_flags)
DisplayInfo(double a_x, double a_y)
void Initialize(Flag a_varsSet, double a_x, double a_y, double a_rotation, double a_xScale, double a_yScale, double a_alpha, bool a_visible, double a_z, double a_xRotation, double a_yRotation, double a_zScale, double a_fov, const GMatrix3D *a_viewM, const GMatrix3D *a_perspM)
void SetYScale(double a_yScale)
GMatrix3D _perspMatrix3D
Definition: GFxValue.h:206
double _yScale
Definition: GFxValue.h:194
void SetPerspectiveMatrix3D(const GMatrix3D *a_mat)
double _xRotation
Definition: GFxValue.h:201
void SetY(double a_y)
void Set(double a_x, double a_y, double a_rotation, double a_xScale, double a_yScale, double a_alpha, bool a_visible)
virtual void Visit(std::uint32_t a_idx, const GFxValue &a_val)=0
virtual void Visit(const char *a_name, const GFxValue &a_val)=0
Definition: GFxValue.h:214
bool SetMember(void *a_data, const char *a_name, const GFxValue &a_value, bool a_isDObj)
bool RemoveElements(void *a_data, std::uint32_t a_idx, std::int32_t a_count)
bool SetCxform(void *a_data, const GRenderer::Cxform &a_cx)
ObjectInterface(GFxMovieRoot *a_movieRoot)
bool GotoAndPlay(void *a_data, const char *a_frame, bool a_stop)
bool SetElement(void *a_data, std::uint32_t a_idx, const GFxValue &a_val)
bool GetCxform(void *a_data, GRenderer::Cxform *a_cx) const
bool PushBack(void *a_data, const GFxValue &a_value)
bool SetDisplayMatrix(void *a_data, const GMatrix2D &a_mat)
bool HasMember(void *a_data, const char *a_name, bool a_isDObj) const
bool IsSameContext(const ObjectInterface *a_rhs) const
void VisitMembers(void *a_data, ObjVisitor *a_visitor, bool a_isDObj) const
GFxMovieRoot * _movieRoot
Definition: GFxValue.h:269
void ObjectRelease(GFxValue *a_val, void *a_obj)
bool Invoke(void *a_data, GFxValue *a_result, const char *a_name, const GFxValue *a_args, UPInt a_numArgs, bool a_isDObj)
void ObjectAddRef(GFxValue *a_val, void *a_obj)
std::uint32_t GetArraySize(void *a_data) const
bool SetArraySize(void *a_data, std::uint32_t a_size)
bool SetText(void *a_data, const char *a_text, bool a_isHTML)
bool SetDisplayInfo(void *a_data, const DisplayInfo &a_info)
bool AttachMovie(void *a_data, GFxValue *a_movieClip, const char *a_symbolName, const char *a_instanceName, std::int32_t a_depth, const GFxValue *a_initObj)
bool GetDisplayMatrix(void *a_data, GMatrix2D *a_mat) const
bool GetMember(void *a_data, const char *a_name, GFxValue *a_val, bool a_isDObj) const
bool GetElement(void *a_data, std::uint32_t a_idx, GFxValue *a_val) const
bool GetDisplayInfo(void *a_data, DisplayInfo *a_info) const
bool DeleteMember(void *a_data, const char *a_name, bool a_isDObj)
Definition: GFxValue.h:92
void SetConvertNumber()
void SetNull()
GFxValue & operator=(GFxValue &&a_rhs)
GString ToString() const
bool operator==(const GFxValue &a_rhs) const
bool SetMember(const char *a_name, const GFxValue &a_val)
GFxValue(const char *a_rhs)
bool IsString() const
GFxValue(std::wstring_view a_rhs)
GFxValue(ValueType a_rhs)
void SetString(std::string_view a_str)
bool RemoveElements(std::uint32_t a_idx, std::int32_t a_count=-1)
bool AttachMovie(GFxValue *a_movieClip, const char *a_symbolName, const char *a_instanceName, std::int32_t a_depth=-1, const GFxValue *a_initObj=nullptr)
void SetConvertBoolean()
GFxValue(double a_rhs)
ValueType
Definition: GFxValue.h:98
ObjectInterface * _objectInterface
Definition: GFxValue.h:427
bool ClearElements()
bool HasMember(const char *a_name) const
GFxValue & operator=(std::string_view a_rhs)
bool IsArray() const
ValueUnion _value
Definition: GFxValue.h:433
GFxValue & operator=(T a_val)
Definition: GFxValue.h:316
std::function< void(const char *, const RE::GFxValue &)> ObjectVisitFn
Definition: GFxValue.h:276
void AcquireManagedValue(const GFxValue &a_rhs)
void VisitMembers(ObjectVisitFn &&a_visitor) const
bool GetCxform(GRenderer::Cxform *a_cx) const
bool IsNumber() const
bool Invoke(const char *a_name, const std::array< GFxValue, N > &a_args)
Definition: GFxValue.h:367
bool Invoke(const char *a_name, GFxValue *a_result=nullptr)
GFxValue & operator=(std::wstring_view a_rhs)
std::size_t GetUInt() const
bool GetBool() const
bool IsDisplayObject() const
bool SetArraySize(std::uint32_t a_size)
GFxValue(const GFxValue &a_rhs)
bool GetElement(std::uint32_t a_idx, GFxValue *a_val) const
bool GotoAndPlay(const char *a_frame)
bool PushBack(const GFxValue &a_val)
void SetString(const char *a_str)
bool DeleteMember(const char *a_name)
GFxValue(std::string_view a_rhs)
double GetNumber() const
bool SetCxform(const GRenderer::Cxform &a_cx)
bool SetText(const char *a_text)
ValueType GetType() const
bool IsManagedValue() const
bool IsUndefined() const
bool GetMember(const char *a_name, GFxValue *a_val) const
const wchar_t * GetStringW() const
bool GetDisplayInfo(DisplayInfo *a_info) const
GFC_MEMORY_REDEFINE_NEW(GFxValue, GStatGroups::kGStatGroup_Default)
void SetStringW(std::wstring_view a_str)
GFxValue(GFxValue &&a_rhs)
bool SetDisplayInfo(const DisplayInfo &a_info)
GFxValue & operator=(std::nullptr_t)
bool SetElement(std::uint32_t a_idx, const GFxValue &a_val)
stl::enumeration< ValueType, std::uint32_t > _type
Definition: GFxValue.h:431
GFxValue & operator=(bool a_rhs)
bool GetDisplayMatrix(GMatrix2D *a_mat) const
bool Invoke(const char *a_name, GFxValue *a_result, const std::array< GFxValue, N > &a_args)
Definition: GFxValue.h:373
void SetNumber(double a_val)
void ReleaseManagedValue()
bool Invoke(const char *a_name, GFxValue *a_result, const GFxValue *a_args, UPInt a_numArgs)
GFxValue & operator=(const char *a_rhs)
GFxValue(bool a_rhs)
std::uint32_t _pad0C
Definition: GFxValue.h:432
GFxValue(std::nullptr_t)
bool RemoveElement(std::uint32_t a_idx)
bool SetDisplayMatrix(const GMatrix2D &a_mat)
void SetUndefined()
GFxValue(const wchar_t *a_rhs)
std::uint32_t GetArraySize() const
void ChangeType(ValueType a_type)
bool IsNull() const
bool IsBool() const
void SetBoolean(bool a_val)
GFxValue & operator=(double a_rhs)
GFxValue & operator=(const GFxValue &a_rhs)
GFxValue(T a_val)
Definition: GFxValue.h:295
void SetConvertStringW()
bool IsObject() const
std::ptrdiff_t GetSInt() const
void VisitMembers(ObjectVisitor *a_visitor) const
bool GotoAndStop(const char *a_frame)
void SetStringW(const wchar_t *a_str)
bool SetTextHTML(const char *a_html)
GFxValue & operator=(const wchar_t *a_rhs)
bool IsStringW() const
void SetConvertString()
const char * GetString() const
Definition: GMatrix2D.h:6
Definition: GMatrix3D.h:6
Definition: GNewOverrideBase.h:9
Definition: GRenderer.h:226
Definition: GString.h:8
constexpr bool is_integer_v
Definition: GFxValue.h:88
Definition: AbsorbEffect.h:6
std::size_t UPInt
Definition: SFTypes.h:5
Definition: GFxValue.h:21
Definition: GFxValue.h:85
@ kGStatGroup_Default
Definition: GStats.h:12
Definition: GFxValue.h:414
const char * string
Definition: GFxValue.h:421
double number
Definition: GFxValue.h:419
constexpr ValueUnion()
Definition: GFxValue.h:415
const char ** managedString
Definition: GFxValue.h:422
bool boolean
Definition: GFxValue.h:420
void * obj
Definition: GFxValue.h:425
const wchar_t * wideString
Definition: GFxValue.h:423
const wchar_t ** managedWideString
Definition: GFxValue.h:424