CommonLibSSE NG
Loading...
Searching...
No Matches
GFxValue.h
Go to the documentation of this file.
1#pragma once
2
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
12namespace 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
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);
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);
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
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;
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)
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)
const GMatrix3D * GetPerspectiveMatrix3D() const
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)
Flag
Definition GFxValue.h:126
const GMatrix3D * GetViewMatrix3D() const
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()
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 & operator=(const GFxValue &a_rhs)
GFxValue & operator=(const char *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)
GFxValue & operator=(bool a_rhs)
ValueType
Definition GFxValue.h:98
ObjectInterface * _objectInterface
Definition GFxValue.h:430
bool ClearElements()
bool HasMember(const char *a_name) const
bool IsArray() const
ValueUnion _value
Definition GFxValue.h:433
GFxValue & operator=(std::string_view a_rhs)
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
GFxValue & operator=(std::nullptr_t)
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)
std::size_t GetUInt() const
bool GetBool() const
bool IsDisplayObject() const
GFxValue & operator=(GFxValue &&a_rhs)
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)
GFxValue & operator=(double a_rhs)
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
GFxValue & operator=(T a_val)
Definition GFxValue.h:316
bool GetMember(const char *a_name, GFxValue *a_val) 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)
bool SetElement(std::uint32_t a_idx, const GFxValue &a_val)
stl::enumeration< ValueType, std::uint32_t > _type
Definition GFxValue.h:431
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(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
const wchar_t * GetStringW() const
void SetBoolean(bool a_val)
const char * GetString() const
GFxValue & operator=(const wchar_t *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=(std::wstring_view a_rhs)
bool IsStringW() const
void SetConvertString()
Definition GMatrix2D.h:6
Definition GMatrix3D.h:6
Definition GNewOverrideBase.h:9
Definition GRenderer.h:226
Definition GString.h:8
Definition PCH.h:223
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