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