diff --git a/src/client/game/structs.hpp b/src/client/game/structs.hpp index df4bae71..f0a00ee5 100644 --- a/src/client/game/structs.hpp +++ b/src/client/game/structs.hpp @@ -471,10 +471,116 @@ namespace game void* errorData; }; + typedef uint32_t dvarStrHash_t; + + enum dvarType_t + { + DVAR_TYPE_INVALID = 0x0, + DVAR_TYPE_BOOL = 0x1, + DVAR_TYPE_FLOAT = 0x2, + DVAR_TYPE_FLOAT_2 = 0x3, + DVAR_TYPE_FLOAT_3 = 0x4, + DVAR_TYPE_FLOAT_4 = 0x5, + DVAR_TYPE_INT = 0x6, + DVAR_TYPE_ENUM = 0x7, + DVAR_TYPE_STRING = 0x8, + DVAR_TYPE_COLOR = 0x9, + DVAR_TYPE_INT64 = 0xA, + DVAR_TYPE_UINT64 = 0xB, + DVAR_TYPE_LINEAR_COLOR_RGB = 0xC, + DVAR_TYPE_COLOR_XYZ = 0xD, + DVAR_TYPE_COLOR_LAB = 0xE, + DVAR_TYPE_SESSIONMODE_BASE_DVAR = 0xF, + DVAR_TYPE_COUNT = 0x10, + }; + + typedef float vec_t; + + union vec4_t + { + vec_t v[4]; + //vec4_t::$E8049E02A67BEF20C2B48C1E90A72E45 _anon_0; + //vec4_t::$65A5F67E76558B5B186374890F5F7384 _anon_1; + //vec3_t xyz; + }; + + struct dvar_t; + + union DvarValue + { + bool enabled; + int integer; + uint32_t unsignedInt; + int64_t integer64; + uint64_t unsignedInt64; + float value; + vec4_t vector; + const char* string; + byte color[4]; + const dvar_t* indirect[3]; + }; + + struct $7034703ED3857507327AE195CCA24A71 + { + int stringCount; + const char** strings; + }; + + struct $5AC0CC375C7A91894540A0C75867866C + { + int min; + int max; + }; + + struct $FCEE86E78F1A35297637B00F6DD148A3 + { + int64_t min; + int64_t max; + }; + + struct $28DE879AA85D5F4AA5DF9392CB197229 + { + uint64_t min; + uint64_t max; + }; + + struct $D2B45DCE3C73414E1DE8E10A2D52B392 + { + float min; + float max; + }; + + struct $97F25DA469865168FD08682F42882F2A + { + vec_t min; + vec_t max; + }; + + union DvarLimits + { + $7034703ED3857507327AE195CCA24A71 enumeration; + $5AC0CC375C7A91894540A0C75867866C integer; + $FCEE86E78F1A35297637B00F6DD148A3 integer64; + $28DE879AA85D5F4AA5DF9392CB197229 unsignedInt64; + $D2B45DCE3C73414E1DE8E10A2D52B392 value; + $97F25DA469865168FD08682F42882F2A vector; + }; + + struct dvar_t { - unsigned int name; - }; // Incomplete + dvarStrHash_t name; + const char* debugName; + const char* description; + unsigned int flags; + dvarType_t type; + bool modified; + DvarValue current; + DvarValue latched; + DvarValue reset; + DvarLimits domain; + dvar_t* hashNext; + }; struct netipv4_t {