diff --git a/profile/3.3.5a-windows-386/ida/batch/import_data_types.idc b/profile/3.3.5a-windows-386/ida/batch/import_data_types.idc index a741c45..93df4d9 100644 --- a/profile/3.3.5a-windows-386/ida/batch/import_data_types.idc +++ b/profile/3.3.5a-windows-386/ida/batch/import_data_types.idc @@ -204,6 +204,7 @@ static import_data_types() { apply_type(0x00684C20, "void __stdcall func(char* format, ...)"); apply_type(0x00684C40, "void __stdcall func(CGxCaps* caps)"); apply_type(0x00684D10, "void __stdcall func(CGxFormat* format)"); + apply_type(0x00684D70, "int32_t __stdcall func(float aspectRatio, C2iVector* adjust, RECT* rect)"); apply_type(0x00684FE0, "void __thiscall func(CGxDevice* this, EGxOverride override, uint32_t value)"); apply_type(0x006853B0, "void __thiscall func(CGxDevice* this, DEVICERESTOREDCALLBACK fn)"); apply_type(0x006853D0, "int32_t __thiscall func(CGxDevice* this, DEVICERESTOREDCALLBACK fn)"); @@ -218,6 +219,7 @@ static import_data_types() { apply_type(0x00685A70, "void __thiscall func(CGxDevice* this)"); apply_type(0x00685B50, "void __thiscall func(CGxDevice* this, int32_t force)"); apply_type(0x00685C60, "void __thiscall func(CGxDevice* this, EGxTexTarget target, uint32_t width, uint32_t height, uint32_t depth, EGxTexFormat format, EGxTexFormat dataFormat, CGxTexFlags flags, void* userArg, void (*userFunc)(EGxTexCommand, uint32_t, uint32_t, uint32_t, uint32_t, void*, uint32_t*, void**), char* name, CGxTex** texId)"); + apply_type(0x00685E90, "void* __thiscall func(EmergencyMem* this, uint32_t a1)"); apply_type(0x00685EB0, "void __thiscall func(CGxDevice* this, EGxMasterEnables state, int32_t enable)"); apply_type(0x00685F50, "void __thiscall func(CGxDevice* this, EGxRenderState which, void* value)"); apply_type(0x00685FB0, "void __thiscall func(CGxDevice* this)"); @@ -246,6 +248,9 @@ static import_data_types() { apply_type(0x0068BBC0, "void __thiscall func(CGxDeviceOpenGl* this)"); apply_type(0x0068BF20, "CGxDevice* __stdcall func()"); apply_type(0x0068C220, "CGxDevice* __stdcall func()"); + apply_type(0x0068E140, "void __stdcall func(HINSTANCE* hInstance, LPDIRECT3D9* d3dLib)"); + apply_type(0x0068E180, "LPDIRECT3DINDEXBUFFER9 __thiscall func(CGxDeviceD3d* this, EGxPoolUsage usage, uint32_t size)"); + apply_type(0x0068E250, "void __thiscall func(CGxDeviceD3d* this, D3DPRESENT_PARAMETERS* d3dpp, CGxFormat* format)"); apply_type(0x0068E450, "void __thiscall func(CGxDeviceD3d* this)"); apply_type(0x0068E4A0, "void __thiscall func(CGxDeviceD3d* this, uint32_t level)"); apply_type(0x0068E4C0, "void __thiscall func(CGxDeviceD3d* this, float gamma)"); @@ -260,20 +265,31 @@ static import_data_types() { apply_type(0x0068E9C0, "void __thiscall func(CGxDeviceD3d* this, CGxQuery** query, EGxQueryType queryType)"); apply_type(0x0068EA10, "bool __thiscall func(CGxDeviceD3d* this, CGxQuery* query)"); apply_type(0x0068EA90, "bool __thiscall func(CGxDeviceD3d* this, CGxQuery* query, EGxQueryParam param, uint32_t* data)"); + apply_type(0x0068EBB0, "int32_t __thiscall func(CGxDeviceD3d* this, CGxFormat* format)"); + apply_type(0x0068ED80, "int32_t __stdcall func(HINSTANCE* hInstance, LPDIRECT3D9* d3dLib)"); + apply_type(0x0068EE20, "void __thiscall func(CGxDeviceD3d* this, CGxFormat* format)"); + apply_type(0x0068F3D0, "int32_t __thiscall func(CGxDeviceD3d* this, CGxFormat* format)"); apply_type(0x0068F770, "void __thiscall func(CGxDeviceD3d* this, EGxBuffer buffer, CGxTex* texture, uint32_t plane)"); apply_type(0x0068F900, "void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)"); apply_type(0x0068F950, "void __thiscall func(CGxDeviceD3d* this, CGxTex* a1, int32_t a2, CGxTex* a3, int32_t a4)"); + apply_type(0x0068FA60, "int32_t __thiscall func(CGxDeviceD3d* this, CGxBuf* buf)"); apply_type(0x0068FAE0, "int32_t __thiscall func(CGxDeviceD3d* this, CGxBuf* buf, uint32_t size)"); + apply_type(0x0068FB10, "uint8_t* __thiscall func(CGxDeviceD3d* this, CGxBuf* buf)"); apply_type(0x0068FCE0, "char* __thiscall func(CGxDeviceD3d* this, CGxBuf* buf)"); apply_type(0x0068FD00, "void __thiscall func(CGxDeviceD3d* this, CGxBuf* buf, const void* data, uint32_t size, uint32_t offset)"); apply_type(0x0068FD50, "void __thiscall func(CGxDeviceD3d* this)"); apply_type(0x0068FE80, "void __thiscall func(CGxDeviceD3d* this, uint8_t __flags)"); apply_type(0x0068FED0, "void __thiscall func(CGxDeviceD3d* this, CiRect* rect, TSGrowableArray_CImVector* pixels)"); + apply_type(0x00690150, "void __thiscall func(CGxDeviceD3d* this, int32_t a2)"); apply_type(0x00690230, "void __thiscall func(CGxDeviceD3d* this, EGxWM wm, int32_t param1, int32_t param2)"); apply_type(0x006904D0, "int32_t __thiscall func(CGxDeviceD3d* this, CGxFormat* format)"); apply_type(0x006905F0, "void __thiscall func(CGxDeviceD3d* this)"); + apply_type(0x00690680, "int32_t __thiscall func(CGxDeviceD3d* this)"); apply_type(0x00690750, "void __thiscall func(CGxDeviceD3d* this, int32_t (*windowProc)(void*, uint32_t, uintptr_t, intptr_t), CGxFormat* format)"); apply_type(0x00690830, "void __thiscall func(CGxDeviceD3d* this, uintptr_t hwnd, CGxFormat* format)"); + apply_type(0x0069FB00, "LPDIRECT3DVERTEXBUFFER9 __thiscall func(EGxPoolUsage usage, uint32_t size)"); + apply_type(0x0069FB70, "int32_t __thiscall func(CGxDeviceD3d* this, CGxPool* pool)"); + apply_type(0x0069FE10, "void __thiscall func(CGxDeviceD3d* this, int32_t a1)"); apply_type(0x0069FE80, "void __thiscall func(CGxDeviceD3d* this, CGxGammaRamp* ramp)"); apply_type(0x0069FED0, "void* __thiscall func(CGxDeviceD3d* this)"); apply_type(0x0069FF40, "void __thiscall func(CGxDeviceD3d* this, EGxOverride override, uint32_t value)"); @@ -285,16 +301,34 @@ static import_data_types() { apply_type(0x006A0190, "bool __thiscall func(CGxDeviceD3d* this, CGxQuery** query)"); apply_type(0x006A0240, "bool __thiscall func(CGxDeviceD3d* this, CGxQuery* query)"); apply_type(0x006A0310, "bool __thiscall func(CGxDeviceD3d* this, CGxQuery* query, uint32_t* data)"); + apply_type(0x006A0360, "LRESULT __stdcall func(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)"); apply_type(0x006A1950, "void __thiscall func(CGxDeviceD3d* this, CiRect* rect, TSGrowableArray_float* depths)"); apply_type(0x006A2BB0, "void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)"); + apply_type(0x006A2C00, "void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)"); + apply_type(0x006A2D80, "void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)"); apply_type(0x006A3070, "void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)"); apply_type(0x006A30D0, "void __thiscall func(CGxDeviceD3d* this, CGxTex* a1, CGxTex* a2, C2iVector* a3, C2iVector* a4, uint32_t a5, uint32_t a6)"); apply_type(0x006A31E0, "void __thiscall func(CGxDeviceD3d* this, CGxTex* a1, CGxTex* a2, CiRect* a3, CiRect* a4, uint32_t a5, uint32_t a6)"); + apply_type(0x006A3350, "void __thiscall func(CGxDeviceD3d* this)"); + apply_type(0x006A3420, "void __thiscall func(CGxDeviceD3d* this)"); apply_type(0x006A3450, "void __thiscall func(CGxDeviceD3d* this, uint32_t mask)"); apply_type(0x006A3620, "void __thiscall func(CGxDeviceD3d* this, CGxBatch* batch)"); + apply_type(0x006A3810, "void __thiscall func(CGxDeviceD3d* this)"); + apply_type(0x006A39E0, "void __thiscall func(CGxDeviceD3d* this, uint32_t stream, LPDIRECT3DVERTEXBUFFER9 buffer, uint32_t offset, uint32_t stride)"); + apply_type(0x006A3A60, "void __thiscall func(CGxDeviceD3d* this)"); + apply_type(0x006A3C40, "void __thiscall func(CGxDeviceD3d* this, CGxDeviceD3d__EDeviceState state, uint32_t val)"); + apply_type(0x006A4190, "void __thiscall func(CGxDeviceD3d* this, uint32_t a1, uint32_t val)"); + apply_type(0x006A41F0, "void __thiscall func(CGxDeviceD3d* this, uint32_t a1, uint32_t val)"); + apply_type(0x006A4700, "void __thiscall func(CGxDeviceD3d* this)"); + apply_type(0x006A4850, "void __thiscall func(CGxDeviceD3d* this)"); + apply_type(0x006A4900, "void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, CGxTex* texId)"); apply_type(0x006A4C30, "void __thiscall func(CGxDeviceD3d* this, EGxRenderState rs)"); + apply_type(0x006A5540, "LPDIRECT3DVERTEXDECLARATION9 __thiscall func(CGxDeviceD3d* this, D3DVERTEXELEMENT9* elements, uint32_t count)"); + apply_type(0x006A5700, "void __thiscall func(CGxDeviceD3d* this)"); + apply_type(0x006A5940, "void __thiscall func(CGxDeviceD3d* this)"); apply_type(0x006A5A00, "void __thiscall func(CGxDeviceD3d* this, CRect* dst)"); apply_type(0x006A5A30, "void __thiscall func(CGxDeviceD3d* this)"); + apply_type(0x006A5C70, "void __thiscall func(CGxDeviceD3d* this, CGxShader* ps)"); apply_type(0x006A5D50, "void __thiscall func(CGxDeviceD3d* this, CGxShader* shader, const char* a2, const char* a3)"); apply_type(0x006A5E10, "void __thiscall func(CGxDeviceD3d* this, CGxShader* shader)"); apply_type(0x006A5EF0, "void __thiscall func(CGxDevice* this, CGxTex* texId, uint32_t* width, uint32_t* height, uint32_t* baseMip, uint32_t* mipCount)"); @@ -302,10 +336,12 @@ static import_data_types() { apply_type(0x006A9920, "void __thiscall func(CGxDeviceD3d* this, CRect* dst)"); apply_type(0x006A9B40, "void __thiscall func(CGxDeviceD3d* this, C44Matrix* matrix)"); apply_type(0x006A9E00, "void __thiscall func(CGxDeviceD3d* this, C44Matrix* matrix)"); + apply_type(0x006A9FE0, "void __thiscall func(CGxDeviceD3d* this)"); apply_type(0x006AA070, "void __thiscall func(CGxDeviceD3d* this, CGxShader* shader)"); apply_type(0x006AA0D0, "void __thiscall func(CGxDeviceD3d* this, CGxShader* shader)"); apply_type(0x006AA130, "void __thiscall func(CGxDeviceD3d* this, CGxShader** shaders, EGxShTarget target, char* a3, char* a4, int32_t permutations)"); apply_type(0x006AA190, "void __thiscall func(CGxDeviceD3d* this, CGxShader** shader)"); + apply_type(0x006AA2F0, "void __thiscall func(CGxDeviceD3d* this, CGxShader* vs)"); apply_type(0x006AA3B0, "int32_t __thiscall func(CTgaFile* this)"); apply_type(0x006AA3E0, "uint32_t __thiscall func(CTgaFile* this)"); apply_type(0x006AA420, "void __thiscall func(CTgaFile* this, uint8_t* pAlphaData, uint8_t* pNoAlphaData, uint8_t* alpha)"); @@ -844,6 +880,7 @@ static import_data_types() { apply_type(0x00C5DF88, "CGxDevice*"); apply_type(0x00C5FFF4, "uint32_t"); apply_type(0x00C5FFF8, "HSLOG"); + apply_type(0x00C60300, "C2iVector"); apply_type(0x00CA1690, "float"); apply_type(0x00CA1694, "int32_t"); apply_type(0x00CA1718, "float"); diff --git a/profile/3.3.5a-windows-386/ida/batch/import_functions.idc b/profile/3.3.5a-windows-386/ida/batch/import_functions.idc index 30ea37e..5888b5d 100644 --- a/profile/3.3.5a-windows-386/ida/batch/import_functions.idc +++ b/profile/3.3.5a-windows-386/ida/batch/import_functions.idc @@ -204,6 +204,9 @@ static import_functions() { set_func_cmt(0x006859E0, "CGxDevice::IRsForceUpdate(EGxRenderState)", 0); set_func_cmt(0x00685A70, "CGxDevice::IRsForceUpdate()", 0); set_func_cmt(0x00689EA0, "UC", 0); + set_func_cmt(0x0068E140, "void CGxDeviceD3d::IUnloadD3dLib(HINSTANCE& d3dLib, LPDIRECT3D9& d3d)", 0); + set_func_cmt(0x0068E180, "LPDIRECT3DINDEXBUFFER9 CGxDeviceD3d::ICreateD3dIB(EGxPoolUsage usage, uint32_t size)", 0); + set_func_cmt(0x0068E250, "void CGxDeviceD3d::ISetPresentParms(D3DPRESENT_PARAMETERS& d3dpp, const CGxFormat& format)", 0); set_func_cmt(0x0069FE10, "UC (invented name)", 0); set_func_cmt(0x006AA350, "UC", 0); set_func_cmt(0x006AA420, "private utility method", 0); diff --git a/profile/3.3.5a-windows-386/ida/batch/import_symbols.idc b/profile/3.3.5a-windows-386/ida/batch/import_symbols.idc index 6a705f5..36eb1bb 100644 --- a/profile/3.3.5a-windows-386/ida/batch/import_symbols.idc +++ b/profile/3.3.5a-windows-386/ida/batch/import_symbols.idc @@ -491,9 +491,11 @@ static import_symbols() { set_name(0x004C5990, "SE2SoundKitProperties__ResetToDefaults"); set_name(0x004C6390, "SE2__StopSound"); set_name(0x004C6A40, "SE2__PlaySoundKit"); + set_name(0x004C82E0, "SI2__Init"); set_name(0x004C8610, "SI2__SetWeatherKitID"); set_name(0x004C93B0, "SI2__StopAllMusic"); set_name(0x004D0090, "SI2__PlayItemSound"); + set_name(0x004D1600, "SI2__RegisterCVars"); set_name(0x004D27D0, "HeapUsageDestroy"); set_name(0x004D2A30, "HeapUsageInitialize"); set_name(0x004D7D20, "CGlueMgr__InitializeFFX"); @@ -2751,6 +2753,7 @@ static import_symbols() { set_name(0x00684C20, "CGxDevice__Log"); set_name(0x00684C40, "CGxDevice__Log@2"); set_name(0x00684D10, "CGxDevice__Log@3"); + set_name(0x00684D70, "CGxDevice__Sub684D70"); set_name(0x00684FE0, "CGxDevice__DeviceOverride"); set_name(0x006853B0, "CGxDevice__AddDeviceRestoredCallback"); set_name(0x006853D0, "CGxDevice__RemoveDeviceRestoredCallback"); @@ -2765,6 +2768,7 @@ static import_symbols() { set_name(0x00685A70, "CGxDevice__IRsForceUpdate"); set_name(0x00685B50, "CGxDevice__IRsSync"); set_name(0x00685C60, "CGxDevice__TexCreate"); + set_name(0x00685E90, "EmergencyMem__Lock"); set_name(0x00685EB0, "CGxDevice__MasterEnableSet"); set_name(0x00685F50, "CGxDevice__RsSet_pointer_to_void"); set_name(0x00685FB0, "CGxDevice__RsPop"); @@ -2772,6 +2776,7 @@ static import_symbols() { set_name(0x006876D0, "CGxDevice__PoolCreate"); set_name(0x006877C0, "CGxDevice__QueryCreate"); set_name(0x00687820, "CGxDevice__ShaderDestroy"); + set_name(0x00687940, "CGxDevice__DeviceCreatePools"); set_name(0x00687980, "CGxDevice__TexDestroy"); set_name(0x006879F0, "CGxDevice__QueryDestroy"); set_name(0x00687A90, "CGxDevice__ICursorDraw"); @@ -3361,6 +3366,7 @@ static import_symbols() { set_name(0x007DC910, "Script_VoiceIsDisabledByClient"); set_name(0x007DEEF0, "Script_GetVoiceSessionMemberInfoBySessionID"); set_name(0x007DF0B0, "Script_UnitIsTalking"); + set_name(0x007DFAF0, "ComSatClient_Init"); set_name(0x007E1030, "IsRussian"); set_name(0x007ECD00, "DayNight__CalcFogRate"); set_name(0x007ECEC0, "DayNight__SetOverrideLightParamsID"); @@ -3682,6 +3688,9 @@ static import_symbols() { set_name(0x00876BE0, "CShaderEffectManager__CreateEffect"); set_name(0x00876CA0, "CShaderEffectManager__ParseEffectCallback"); set_name(0x00876D90, "CShaderEffectManager__AddEffectFile"); + set_name(0x00877E10, "SI2__Log_Write"); + set_name(0x00878010, "SI2__Log_Write@2"); + set_name(0x0087E020, "SI2__InitCapture"); set_name(0x008A1420, "stub_return_one_byte"); set_name(0x008C0360, "FFX__Destroy"); set_name(0x008C8DE0, "stub_return_int32_one"); @@ -4452,6 +4461,7 @@ static import_symbols() { set_name(0x00C5FFF4, "CGxDevice__m_logBytes"); set_name(0x00C5FFF8, "CGxDevice__m_log"); set_name(0x00C5FFFC, "CGxDevice__s_uiPixelShader"); + set_name(0x00C60300, "CGxDevice__s_clientAdjust"); set_name(0x00C60760, "isIdent"); set_name(0x00C79CE4, "ClientServices__m_instance"); set_name(0x00C79CE9, "ClientServices__m_selectRealmInfoValid"); diff --git a/profile/3.3.5a-windows-386/include/gx/device.h b/profile/3.3.5a-windows-386/include/gx/device.h index 97ac1db..5a884c2 100644 --- a/profile/3.3.5a-windows-386/include/gx/device.h +++ b/profile/3.3.5a-windows-386/include/gx/device.h @@ -24,6 +24,7 @@ #include "gx/buffer.h" #include "gx/texture.h" #include "gx/query.h" +#include "gx/emergencymem.h" DECLARE_STRUCT(CGxAppRenderState); DECLARE_STRUCT(CGxPushedRenderState); @@ -334,16 +335,8 @@ struct CGxDevice { uint32_t m_primVertexSize; CGxBuf* m_primIndexBuf; int32_t m_primIndexDirty; - uint32_t unk28C4; - uint32_t unk28C8; - uint32_t unk28CC; - uint32_t unk28D0; - uint8_t unk28D4; - uint32_t unk28D8; - uint32_t unk28DC; - uint32_t unk28E0; - uint32_t unk28E4; - uint32_t unk28E8; + // EmergencyMem unk28C4[GxPoolTargets_Last]; + EmergencyMem m_emergencyMem[2]; // 0x28C4 TSFixedArray_CGxAppRenderState m_appRenderStates; TSFixedArray_CGxStateBom m_hwRenderStates; uint32_t unk2904[3]; // 0x2904 (size 0xC) diff --git a/profile/3.3.5a-windows-386/include/gx/emergencymem.h b/profile/3.3.5a-windows-386/include/gx/emergencymem.h new file mode 100644 index 0000000..43c2c2b --- /dev/null +++ b/profile/3.3.5a-windows-386/include/gx/emergencymem.h @@ -0,0 +1,14 @@ +#ifndef GX_EMERGENCY_MEM_H +#define GX_EMERGENCY_MEM_H + +DECLARE_STRUCT(EmergencyMem); + +struct EmergencyMem { + uint32_t unk00; + uint32_t unk04; + uint32_t unk08; + uint32_t unk0C; + uint32_t unk10; +}; + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/emergencymem/func.sym b/profile/3.3.5a-windows-386/symbol/emergencymem/func.sym new file mode 100644 index 0000000..b46d84f --- /dev/null +++ b/profile/3.3.5a-windows-386/symbol/emergencymem/func.sym @@ -0,0 +1 @@ +EmergencyMem__Lock 00685E90 f end=00685EB0 type="void* __thiscall func(EmergencyMem* this, uint32_t a1)" \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/main.sym b/profile/3.3.5a-windows-386/symbol/main.sym index 7f73e7e..fdd7776 100644 --- a/profile/3.3.5a-windows-386/symbol/main.sym +++ b/profile/3.3.5a-windows-386/symbol/main.sym @@ -487,9 +487,11 @@ C33Matrix__Rotation 004C5550 f end=004C55A2 SE2SoundKitProperties__ResetToDefaults 004C5990 f end=004C5A18 SE2__StopSound 004C6390 f end=004C6410 SE2__PlaySoundKit 004C6A40 f end=004C713B +SI2__Init 004C82E0 f end=004C8584 SI2__SetWeatherKitID 004C8610 f end=004C8622 SI2__StopAllMusic 004C93B0 f end=004C941B SI2__PlayItemSound 004D0090 f end=004D0102 +SI2__RegisterCVars 004D1600 f end=004D1EB8 HeapUsageDestroy 004D27D0 f end=004D27DC HeapUsageInitialize 004D2A30 f end=004D2A95 CGlueMgr__InitializeFFX 004D7D20 f end=004D7D93 @@ -2747,6 +2749,7 @@ CGxDevice__VLog 00684BA0 f end=00684C15 type="void __stdcall func(char* format, CGxDevice__Log 00684C20 f end=00684C3E type="void __stdcall func(char* format, ...)" CGxDevice__Log 00684C40 f end=00684D07 type="void __stdcall func(CGxCaps* caps)" ; CGxDevice::Log(CGxCaps const&) const CGxDevice__Log 00684D10 f end=00684D6C type="void __stdcall func(CGxFormat* format)" +CGxDevice__Sub684D70 00684D70 f type="int32_t __stdcall func(float aspectRatio, C2iVector* adjust, RECT* rect)" CGxDevice__DeviceOverride 00684FE0 f end=00685036 type="void __thiscall func(CGxDevice* this, EGxOverride override, uint32_t value)" CGxDevice__AddDeviceRestoredCallback 006853B0 f end=006853C6 type="void __thiscall func(CGxDevice* this, DEVICERESTOREDCALLBACK fn)" CGxDevice__RemoveDeviceRestoredCallback 006853D0 f end=0068545C type="int32_t __thiscall func(CGxDevice* this, DEVICERESTOREDCALLBACK fn)" @@ -2761,6 +2764,7 @@ CGxDevice__IRsForceUpdate_EGxRenderState 006859E0 f end=00685A65 type="void __th CGxDevice__IRsForceUpdate 00685A70 f end=00685B4E type="void __thiscall func(CGxDevice* this)" ; CGxDevice::IRsForceUpdate() CGxDevice__IRsSync 00685B50 f end=00685BFE type="void __thiscall func(CGxDevice* this, int32_t force)" CGxDevice__TexCreate 00685C60 f end=00685CCB type="void __thiscall func(CGxDevice* this, EGxTexTarget target, uint32_t width, uint32_t height, uint32_t depth, EGxTexFormat format, EGxTexFormat dataFormat, CGxTexFlags flags, void* userArg, void (*userFunc)(EGxTexCommand, uint32_t, uint32_t, uint32_t, uint32_t, void*, uint32_t*, void**), char* name, CGxTex** texId)" +EmergencyMem__Lock 00685E90 f end=00685EB0 type="void* __thiscall func(EmergencyMem* this, uint32_t a1)" CGxDevice__MasterEnableSet 00685EB0 f end=00685F33 type="void __thiscall func(CGxDevice* this, EGxMasterEnables state, int32_t enable)" CGxDevice__RsSet_pointer_to_void 00685F50 f end=00685FB0 type="void __thiscall func(CGxDevice* this, EGxRenderState which, void* value)" CGxDevice__RsPop 00685FB0 f end=00686116 type="void __thiscall func(CGxDevice* this)" @@ -2768,6 +2772,7 @@ CGxDevice__BufCreate 00687660 f end=006876C9 type="CGxBuf* __thiscall func(CGxDe CGxDevice__PoolCreate 006876D0 f end=0068773F type="CGxPool* __thiscall func(CGxDevice* this, EGxPoolTarget target, EGxPoolUsage usage, uint32_t size, EGxPoolHintBits hint, char* name)" CGxDevice__QueryCreate 006877C0 f end=00687811 type="void __thiscall func(CGxDevice* this, CGxQuery** query, EGxQueryType queryType)" CGxDevice__ShaderDestroy 00687820 f end=00687862 type="void __thiscall func(CGxDevice* this, CGxShader** shader)" +CGxDevice__DeviceCreatePools 00687940 f end=00687980 CGxDevice__TexDestroy 00687980 f end=006879E1 type="void __thiscall func(CGxDevice* this, CGxTex* texId)" CGxDevice__QueryDestroy 006879F0 f end=00687A8E type="void __thiscall func(CGxDevice* this, CGxQuery** query)" CGxDevice__ICursorDraw 00687A90 f end=00687FCA type="void __thiscall func(CGxDevice* this)" @@ -2792,9 +2797,9 @@ CGxDevice__AdapterMonitorModes 0068A4C0 f end=0068A589 type="void __stdcall func CGxDeviceOpenGl__CGxDeviceOpenGl 0068BBC0 f end=0068BD15 type="void __thiscall func(CGxDeviceOpenGl* this)" CGxDevice__NewOpenGl 0068BF20 f end=0068BF44 type="CGxDevice* __stdcall func()" CGxDevice__NewD3d9Ex 0068C220 f end=0068C244 type="CGxDevice* __stdcall func()" -CGxDeviceD3d__IUnloadD3dLib 0068E140 f end=0068E174 -CGxDeviceD3d__ICreateD3dIB 0068E180 f end=0068E1E8 -CGxDeviceD3d__ISetPresentParms 0068E250 f end=0068E448 +CGxDeviceD3d__IUnloadD3dLib 0068E140 f end=0068E174 type="void __stdcall func(HINSTANCE* hInstance, LPDIRECT3D9* d3dLib)" ; void CGxDeviceD3d::IUnloadD3dLib(HINSTANCE& d3dLib, LPDIRECT3D9& d3d) +CGxDeviceD3d__ICreateD3dIB 0068E180 f end=0068E1E8 type="LPDIRECT3DINDEXBUFFER9 __thiscall func(CGxDeviceD3d* this, EGxPoolUsage usage, uint32_t size)" ; LPDIRECT3DINDEXBUFFER9 CGxDeviceD3d::ICreateD3dIB(EGxPoolUsage usage, uint32_t size) +CGxDeviceD3d__ISetPresentParms 0068E250 f end=0068E448 type="void __thiscall func(CGxDeviceD3d* this, D3DPRESENT_PARAMETERS* d3dpp, CGxFormat* format)" ; void CGxDeviceD3d::ISetPresentParms(D3DPRESENT_PARAMETERS& d3dpp, const CGxFormat& format) CGxDeviceD3d__DeviceEvictResources 0068E450 f end=0068E49E type="void __thiscall func(CGxDeviceD3d* this)" CGxDeviceD3d__DeviceSetBaseMipLevel 0068E4A0 f end=0068E4BD type="void __thiscall func(CGxDeviceD3d* this, uint32_t level)" CGxDeviceD3d__DeviceSetGamma 0068E4C0 f end=0068E507 type="void __thiscall func(CGxDeviceD3d* this, float gamma)" @@ -2809,31 +2814,31 @@ CGxDeviceD3d__StereoSetSeparation 0068E9A0 f end=0068E9BA type="void __thiscall CGxDeviceD3d__QueryCreate 0068E9C0 f end=0068EA0A type="void __thiscall func(CGxDeviceD3d* this, CGxQuery** query, EGxQueryType queryType)" CGxDeviceD3d__QueryBegin 0068EA10 f end=0068EA81 type="bool __thiscall func(CGxDeviceD3d* this, CGxQuery* query)" CGxDeviceD3d__QueryGetParam 0068EA90 f end=0068EB1D type="bool __thiscall func(CGxDeviceD3d* this, CGxQuery* query, EGxQueryParam param, uint32_t* data)" -CGxDeviceD3d__ICreateWindow 0068EBB0 f end=0068ED78 -CGxDeviceD3d__ILoadD3dLib 0068ED80 f end=0068EE13 -CGxDeviceD3d__ISetCaps 0068EE20 f end=0068F36D -CGxDeviceD3d__ICreateD3dDevice 0068F3D0 f end=0068F692 +CGxDeviceD3d__ICreateWindow 0068EBB0 f end=0068ED78 type="int32_t __thiscall func(CGxDeviceD3d* this, CGxFormat* format)" +CGxDeviceD3d__ILoadD3dLib 0068ED80 f end=0068EE13 type="int32_t __stdcall func(HINSTANCE* hInstance, LPDIRECT3D9* d3dLib)" +CGxDeviceD3d__ISetCaps 0068EE20 f end=0068F36D type="void __thiscall func(CGxDeviceD3d* this, CGxFormat* format)" +CGxDeviceD3d__ICreateD3dDevice 0068F3D0 f end=0068F692 type="int32_t __thiscall func(CGxDeviceD3d* this, CGxFormat* format)" CGxDeviceD3d__DeviceSetRenderTarget 0068F770 f end=0068F8F2 type="void __thiscall func(CGxDeviceD3d* this, EGxBuffer buffer, CGxTex* texture, uint32_t plane)" CGxDeviceD3d__DeviceResolveDepthBuffer 0068F900 f end=0068F94A type="void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)" CGxDeviceD3d__DeviceCopyTex 0068F950 f end=0068FA5E type="void __thiscall func(CGxDeviceD3d* this, CGxTex* a1, int32_t a2, CGxTex* a3, int32_t a4)" -CGxDeviceD3d__IBufUnlock 0068FA60 f end=0068FADC +CGxDeviceD3d__IBufUnlock 0068FA60 f end=0068FADC type="int32_t __thiscall func(CGxDeviceD3d* this, CGxBuf* buf)" CGxDeviceD3d__BufUnlock 0068FAE0 f end=0068FB07 type="int32_t __thiscall func(CGxDeviceD3d* this, CGxBuf* buf, uint32_t size)" -CGxDeviceD3d__IBufLock 0068FB10 f end=0068FCDC +CGxDeviceD3d__IBufLock 0068FB10 f end=0068FCDC type="uint8_t* __thiscall func(CGxDeviceD3d* this, CGxBuf* buf)" CGxDeviceD3d__BufLock 0068FCE0 f end=0068FCFE type="char* __thiscall func(CGxDeviceD3d* this, CGxBuf* buf)" CGxDeviceD3d__BufData 0068FD00 f end=0068FD49 type="void __thiscall func(CGxDeviceD3d* this, CGxBuf* buf, const void* data, uint32_t size, uint32_t offset)" CGxDeviceD3d__CGxDeviceD3d 0068FD50 f end=0068FE80 type="void __thiscall func(CGxDeviceD3d* this)" CGxDeviceD3d__scalar_deleting_destructor 0068FE80 f end=0068FEC8 type="void __thiscall func(CGxDeviceD3d* this, uint8_t __flags)" CGxDeviceD3d__DeviceReadPixels 0068FED0 f end=00690144 type="void __thiscall func(CGxDeviceD3d* this, CiRect* rect, TSGrowableArray_CImVector* pixels)" -CGxDeviceD3d__IReleaseD3dResources 00690150 f end=00690223 +CGxDeviceD3d__IReleaseD3dResources 00690150 f end=00690223 type="void __thiscall func(CGxDeviceD3d* this, int32_t a2)" CGxDeviceD3d__DeviceWM 00690230 f end=0069038D type="void __thiscall func(CGxDeviceD3d* this, EGxWM wm, int32_t param1, int32_t param2)" CGxDeviceD3d__DeviceSetFormat 006904D0 f end=006905E8 type="int32_t __thiscall func(CGxDeviceD3d* this, CGxFormat* format)" CGxDeviceD3d__DeviceDestroy 006905F0 f end=00690679 type="void __thiscall func(CGxDeviceD3d* this)" -CGxDeviceD3d__ICreateD3d 00690680 f end=00690742 +CGxDeviceD3d__ICreateD3d 00690680 f end=00690742 type="int32_t __thiscall func(CGxDeviceD3d* this)" CGxDeviceD3d__DeviceCreate 00690750 f end=00690821 type="void __thiscall func(CGxDeviceD3d* this, int32_t (*windowProc)(void*, uint32_t, uintptr_t, intptr_t), CGxFormat* format)" CGxDeviceD3d__DeviceCreate 00690830 f end=00690897 type="void __thiscall func(CGxDeviceD3d* this, uintptr_t hwnd, CGxFormat* format)" -CGxDeviceD3d__ICreateD3dVB 0069FB00 f end=0069FB68 -CGxDeviceD3d__CreatePoolAPI 0069FB70 f end=0069FBB8 -CGxDeviceD3d__ICursorClip 0069FE10 f end=0069FE57 ; UC (invented name) +CGxDeviceD3d__ICreateD3dVB 0069FB00 f end=0069FB68 type="LPDIRECT3DVERTEXBUFFER9 __thiscall func(EGxPoolUsage usage, uint32_t size)" +CGxDeviceD3d__CreatePoolAPI 0069FB70 f end=0069FBB8 type="int32_t __thiscall func(CGxDeviceD3d* this, CGxPool* pool)" +CGxDeviceD3d__ICursorClip 0069FE10 f end=0069FE57 type="void __thiscall func(CGxDeviceD3d* this, int32_t a1)" ; UC (invented name) CGxDeviceD3d__DeviceSetGamma 0069FE80 f end=0069FEC4 type="void __thiscall func(CGxDeviceD3d* this, CGxGammaRamp* ramp)" CGxDeviceD3d__DeviceWindow 0069FED0 f end=0069FED7 type="void* __thiscall func(CGxDeviceD3d* this)" CGxDeviceD3d__DeviceOverride 0069FF40 f end=0069FF7F type="void __thiscall func(CGxDeviceD3d* this, EGxOverride override, uint32_t value)" @@ -2845,35 +2850,35 @@ CGxDeviceD3d__StereoEnabled 006A0130 f end=006A013D type="bool __thiscall func(C CGxDeviceD3d__QueryDestroy 006A0190 f end=006A01C0 type="bool __thiscall func(CGxDeviceD3d* this, CGxQuery** query)" CGxDeviceD3d__QueryEnd 006A0240 f end=006A0272 type="bool __thiscall func(CGxDeviceD3d* this, CGxQuery* query)" CGxDeviceD3d__QueryGetData 006A0310 f end=006A035F type="bool __thiscall func(CGxDeviceD3d* this, CGxQuery* query, uint32_t* data)" -CGxDeviceD3d__WindowProcD3d 006A0360 f end=006A0834 +CGxDeviceD3d__WindowProcD3d 006A0360 f end=006A0834 type="LRESULT __stdcall func(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)" CGxDeviceD3d__DeviceReadDepths 006A1950 f end=006A19C4 type="void __thiscall func(CGxDeviceD3d* this, CiRect* rect, TSGrowableArray_float* depths)" CGxDeviceD3d9Ex__CGxDeviceD3d9Ex 006A1A90 f end=006A1C24 CGxDeviceD3d__TexDestroy 006A2BB0 f end=006A2BF1 type="void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)" -CGxDeviceD3d__ITexCreate 006A2C00 f end=006A2D7E -CGxDeviceD3d__ITexUpload 006A2D80 f end=006A3062 +CGxDeviceD3d__ITexCreate 006A2C00 f end=006A2D7E type="void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)" +CGxDeviceD3d__ITexUpload 006A2D80 f end=006A3062 type="void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)" CGxDeviceD3d__ITexMarkAsUpdated 006A3070 f end=006A30CF type="void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)" CGxDeviceD3d__TexCopy 006A30D0 f end=006A31D6 type="void __thiscall func(CGxDeviceD3d* this, CGxTex* a1, CGxTex* a2, C2iVector* a3, C2iVector* a4, uint32_t a5, uint32_t a6)" CGxDeviceD3d__TexStretch 006A31E0 f end=006A3349 type="void __thiscall func(CGxDeviceD3d* this, CGxTex* a1, CGxTex* a2, CiRect* a3, CiRect* a4, uint32_t a5, uint32_t a6)" -CGxDeviceD3d__ISceneBegin 006A3350 f end=006A3417 -CGxDeviceD3d__ISceneEnd 006A3420 f end=006A3449 +CGxDeviceD3d__ISceneBegin 006A3350 f end=006A3417 type="void __thiscall func(CGxDeviceD3d* this)" +CGxDeviceD3d__ISceneEnd 006A3420 f end=006A3449 type="void __thiscall func(CGxDeviceD3d* this)" CGxDeviceD3d__ScenePresent 006A3450 f end=006A3611 type="void __thiscall func(CGxDeviceD3d* this, uint32_t mask)" CGxDeviceD3d__Draw 006A3620 f end=006A3716 type="void __thiscall func(CGxDeviceD3d* this, CGxBatch* batch)" -CGxDeviceD3d__IStateSyncEnables 006A3810 f end=006A386E -CGxDeviceD3d__ISetVertexBuffer 006A39E0 f end=006A3A59 -CGxDeviceD3d__IStateSetD3DDefaults 006A3A60 f end=006A3C34 -CGxDeviceD3d__DsSet 006A3C40 f end=006A40F2 -CGxDeviceD3d__ISetColorOp 006A4190 f end=006A41EC -CGxDeviceD3d__ISetAlphaOp 006A41F0 f end=006A424C -CGxDeviceD3d__IStateSyncMaterial 006A4700 f end=006A4846 -CGxDeviceD3d__IStateSyncXforms 006A4850 f end=006A48FE -CGxDeviceD3d__ISetTexture 006A4900 f end=006A4AB3 +CGxDeviceD3d__IStateSyncEnables 006A3810 f end=006A386E type="void __thiscall func(CGxDeviceD3d* this)" +CGxDeviceD3d__ISetVertexBuffer 006A39E0 f end=006A3A59 type="void __thiscall func(CGxDeviceD3d* this, uint32_t stream, LPDIRECT3DVERTEXBUFFER9 buffer, uint32_t offset, uint32_t stride)" +CGxDeviceD3d__IStateSetD3DDefaults 006A3A60 f end=006A3C34 type="void __thiscall func(CGxDeviceD3d* this)" +CGxDeviceD3d__DsSet 006A3C40 f end=006A40F2 type="void __thiscall func(CGxDeviceD3d* this, CGxDeviceD3d__EDeviceState state, uint32_t val)" +CGxDeviceD3d__ISetColorOp 006A4190 f end=006A41EC type="void __thiscall func(CGxDeviceD3d* this, uint32_t a1, uint32_t val)" +CGxDeviceD3d__ISetAlphaOp 006A41F0 f end=006A424C type="void __thiscall func(CGxDeviceD3d* this, uint32_t a1, uint32_t val)" +CGxDeviceD3d__IStateSyncMaterial 006A4700 f end=006A4846 type="void __thiscall func(CGxDeviceD3d* this)" +CGxDeviceD3d__IStateSyncXforms 006A4850 f end=006A48FE type="void __thiscall func(CGxDeviceD3d* this)" +CGxDeviceD3d__ISetTexture 006A4900 f end=006A4AB3 type="void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, CGxTex* texId)" CGxDeviceD3d__IRsSendToHw 006A4C30 f end=006A5499 type="void __thiscall func(CGxDeviceD3d* this, EGxRenderState rs)" -CGxDeviceD3d__ICreateD3dVertexDecl 006A5540 f end=006A5677 -CGxDeviceD3d__IStateSyncVertexPtrs 006A5700 f end=006A5934 -CGxDeviceD3d__IStateSync 006A5940 f end=006A59f5 +CGxDeviceD3d__ICreateD3dVertexDecl 006A5540 f end=006A5677 type="LPDIRECT3DVERTEXDECLARATION9 __thiscall func(CGxDeviceD3d* this, D3DVERTEXELEMENT9* elements, uint32_t count)" +CGxDeviceD3d__IStateSyncVertexPtrs 006A5700 f end=006A5934 type="void __thiscall func(CGxDeviceD3d* this)" +CGxDeviceD3d__IStateSync 006A5940 f end=006A59f5 type="void __thiscall func(CGxDeviceD3d* this)" CGxDeviceD3d__CapsWindowSize 006A5A00 f end=006A5A25 type="void __thiscall func(CGxDeviceD3d* this, CRect* dst)" CGxDeviceD3d__IXformSetWorld 006A5A30 f end=006A5A92 type="void __thiscall func(CGxDeviceD3d* this)" -CGxDeviceD3d__IBindPixelShader 006A5C70 f end=006A5D48 +CGxDeviceD3d__IBindPixelShader 006A5C70 f end=006A5D48 type="void __thiscall func(CGxDeviceD3d* this, CGxShader* ps)" CGxDeviceD3d__IShaderReload 006A5D50 f end=006A5E07 type="void __thiscall func(CGxDeviceD3d* this, CGxShader* shader, const char* a2, const char* a3)" CGxDeviceD3d__IShaderCreate 006A5E10 f end=006A5E36 type="void __thiscall func(CGxDeviceD3d* this, CGxShader* shader)" CGxDevice__ITexWHDStartEnd 006A5EF0 f end=006A5FDF type="void __thiscall func(CGxDevice* this, CGxTex* texId, uint32_t* width, uint32_t* height, uint32_t* baseMip, uint32_t* mipCount)" @@ -2881,12 +2886,12 @@ CGxDeviceD3d__SceneClear 006A74B0 f end=006A7538 type="void __thiscall func(CGxD CGxDeviceD3d__CapsWindowSizeInScreenCoords 006A9920 f end=006A99D4 type="void __thiscall func(CGxDeviceD3d* this, CRect* dst)" CGxDeviceD3d__XformSetProjection 006A9B40 f end=006A9D88 type="void __thiscall func(CGxDeviceD3d* this, C44Matrix* matrix)" CGxDeviceD3d__XformSetView 006A9E00 f end=006A9E09 type="void __thiscall func(CGxDeviceD3d* this, C44Matrix* matrix)" -CGxDeviceD3d__IShaderConstantsFlush 006A9FE0 f end=006AA06D +CGxDeviceD3d__IShaderConstantsFlush 006A9FE0 f end=006AA06D type="void __thiscall func(CGxDeviceD3d* this)" CGxDeviceD3d__IShaderCreatePixel 006AA070 f end=006AA0C5 type="void __thiscall func(CGxDeviceD3d* this, CGxShader* shader)" CGxDeviceD3d__IShaderCreateVertex 006AA0D0 f end=006AA125 type="void __thiscall func(CGxDeviceD3d* this, CGxShader* shader)" CGxDeviceD3d__ShaderCreate 006AA130 f end=006AA18A type="void __thiscall func(CGxDeviceD3d* this, CGxShader** shaders, EGxShTarget target, char* a3, char* a4, int32_t permutations)" CGxDeviceD3d__ShaderDestroy 006AA190 f end=006AA207 type="void __thiscall func(CGxDeviceD3d* this, CGxShader** shader)" -CGxDeviceD3d__IBindVertexShader 006AA2F0 f end=006AA346 +CGxDeviceD3d__IBindVertexShader 006AA2F0 f end=006AA346 type="void __thiscall func(CGxDeviceD3d* this, CGxShader* vs)" CTgaFile__ColorMapEntryBytes 006AA350 f end=006AA379 ; UC CTgaFile__ColorMapBytes 006AA380 f end=006AA3B0 CTgaFile__ValidateColorDepth 006AA3B0 f end=006AA3E0 type="int32_t __thiscall func(CTgaFile* this)" @@ -3357,6 +3362,7 @@ Script_GetVoiceStatus 007DB8D0 f end=007DB9AC Script_VoiceIsDisabledByClient 007DC910 f end=007DC94A Script_GetVoiceSessionMemberInfoBySessionID 007DEEF0 f end=007DF0AF Script_UnitIsTalking 007DF0B0 f end=007DF142 +ComSatClient_Init 007DFAF0 f end=007DFE9C IsRussian 007E1030 f end=007E1049 DayNight__CalcFogRate 007ECD00 f end=007ECD76 ; DayNight::CalcFogRate(float, float) DayNight__SetOverrideLightParamsID 007ECEC0 f end=007ECEDC ; DayNight::SetOverrideLightParamsID(int) @@ -3678,6 +3684,9 @@ CShaderEffectManager__GetEffect 00876530 f end=00876543 ; CShaderEffectManager:: CShaderEffectManager__CreateEffect 00876BE0 f end=00876C97 ; CShaderEffectManager::CreateEffect(char const*) CShaderEffectManager__ParseEffectCallback 00876CA0 f end=00876D8D ; CShaderEffectManager::ParseEffectCallback(CShaderEffectParser::ParsedEffect const&, void*) CShaderEffectManager__AddEffectFile 00876D90 f end=00876E2C ; CShaderEffectManager::AddEffectFile(char const*) +SI2__Log_Write 00877E10 f end=00878005 +SI2__Log_Write 00878010 f end=0087807E +SI2__InitCapture 0087E020 f end=0087EBBD stub_return_one_byte 008A1420 f end=008A1423 ; known names: System_File::Shutdown, CVGxVideoOptionsVersionCallback FFX__Destroy 008C0360 f end=008C0589 stub_return_int32_one 008C8DE0 f type="int32_t __stdcall func()" ; Known names: GxDefaultApi, CCommand_Perf @@ -4448,6 +4457,7 @@ CGxDevice__s_shadowConstants 00C5DFE0 l CGxDevice__m_logBytes 00C5FFF4 l type="uint32_t" CGxDevice__m_log 00C5FFF8 l type="HSLOG" CGxDevice__s_uiPixelShader 00C5FFFC l +CGxDevice__s_clientAdjust 00C60300 l type="C2iVector" isIdent 00C60760 l ClientServices__m_instance 00C79CE4 l ClientServices__m_selectRealmInfoValid 00C79CE9 l diff --git a/profile/3.3.5a-windows-386/x64dbg/game.dd32 b/profile/3.3.5a-windows-386/x64dbg/game.dd32 index 2329197..5d9606b 100644 Binary files a/profile/3.3.5a-windows-386/x64dbg/game.dd32 and b/profile/3.3.5a-windows-386/x64dbg/game.dd32 differ diff --git a/profile/3.3.5a-windows-386/x64dbg/types.json b/profile/3.3.5a-windows-386/x64dbg/types.json index e4e70c2..926627a 100644 --- a/profile/3.3.5a-windows-386/x64dbg/types.json +++ b/profile/3.3.5a-windows-386/x64dbg/types.json @@ -10540,6 +10540,37 @@ } ] }, + { + "name": "EmergencyMem", + "size": 20, + "members": [ + { + "type": "uint32_t", + "name": "unk00", + "offset": 0 + }, + { + "type": "uint32_t", + "name": "unk04", + "offset": 4 + }, + { + "type": "uint32_t", + "name": "unk08", + "offset": 8 + }, + { + "type": "uint32_t", + "name": "unk0C", + "offset": 12 + }, + { + "type": "uint32_t", + "name": "unk10", + "offset": 16 + } + ] + }, { "name": "EmotesRec", "size": 28, @@ -47058,55 +47089,11 @@ "offset": 10432 }, { - "type": "uint32_t", - "name": "unk28C4", + "type": "EmergencyMem", + "name": "m_emergencyMem", + "arrsize": 2, "offset": 10436 }, - { - "type": "uint32_t", - "name": "unk28C8", - "offset": 10440 - }, - { - "type": "uint32_t", - "name": "unk28CC", - "offset": 10444 - }, - { - "type": "uint32_t", - "name": "unk28D0", - "offset": 10448 - }, - { - "type": "uint8_t", - "name": "unk28D4", - "offset": 10452 - }, - { - "type": "uint32_t", - "name": "unk28D8", - "offset": 10456 - }, - { - "type": "uint32_t", - "name": "unk28DC", - "offset": 10460 - }, - { - "type": "uint32_t", - "name": "unk28E0", - "offset": 10464 - }, - { - "type": "uint32_t", - "name": "unk28E4", - "offset": 10468 - }, - { - "type": "uint32_t", - "name": "unk28E8", - "offset": 10472 - }, { "type": "TSFixedArray_CGxAppRenderState", "name": "m_appRenderStates",