From 2363e04c76d104f13abf0397a89c9ed4050c4115 Mon Sep 17 00:00:00 2001 From: superp00t Date: Wed, 4 Jun 2025 17:42:08 -0400 Subject: [PATCH] chore(profile): a lot of work having to do with graphics --- .../ida/batch/import_data_types.idc | 44 +- .../ida/batch/import_functions.idc | 4 + .../ida/batch/import_symbols.idc | 176 +-- .../include/external/d3d9/basetexture.h | 36 + .../include/external/d3d9/d3d9.h | 2 + .../include/external/d3d9/material.h | 16 + profile/3.3.5a-windows-386/include/gx/d3d9.h | 4 +- .../3.3.5a-windows-386/include/gx/device.h | 9 +- .../3.3.5a-windows-386/include/gx/format.h | 4 +- .../3.3.5a-windows-386/include/gx/texture.h | 3 + profile/3.3.5a-windows-386/include/gx/types.h | 16 +- profile/3.3.5a-windows-386/include/main.h | 4 + .../3.3.5a-windows-386/include/net/message.h | 1101 +++++++++++++++++ .../3.3.5a-windows-386/include/object/guid.h | 8 + .../include/object/object.h | 49 + .../3.3.5a-windows-386/include/object/type.h | 29 + .../include/object/typeid.h | 21 + .../3.3.5a-windows-386/include/object/unit.h | 141 +++ profile/3.3.5a-windows-386/info.json | 3 +- .../symbol/actionbar/func.sym | 38 +- .../symbol/backdropgenerator/func.sym | 4 +- .../3.3.5a-windows-386/symbol/bag/func.sym | 2 +- profile/3.3.5a-windows-386/symbol/bc/func.sym | 8 +- .../3.3.5a-windows-386/symbol/blit/func.sym | 16 +- .../3.3.5a-windows-386/symbol/blit/label.sym | 2 +- .../symbol/calendar/func.sym | 2 +- .../3.3.5a-windows-386/symbol/camera/func.sym | 2 +- .../symbol/characterselection/func.sym | 2 +- .../3.3.5a-windows-386/symbol/chat/func.sym | 2 +- .../3.3.5a-windows-386/symbol/client/func.sym | 12 +- .../symbol/clientconnection/func.sym | 4 +- .../symbol/clntobjmgr/func.sym | 4 + .../symbol/commentator/func.sym | 2 +- .../symbol/comsatclient/func.sym | 2 +- .../symbol/containerinfo/func.sym | 2 +- .../3.3.5a-windows-386/symbol/corpse/func.sym | 2 +- .../3.3.5a-windows-386/symbol/cursor/func.sym | 2 +- .../3.3.5a-windows-386/symbol/cvar/func.sym | 2 +- .../3.3.5a-windows-386/symbol/cvar/label.sym | 3 +- .../symbol/datastore/func.sym | 2 +- .../symbol/daynight/func.sym | 4 +- .../3.3.5a-windows-386/symbol/effect/func.sym | 4 +- .../symbol/emergencymem/func.sym | 2 +- .../symbol/equipmentmanager/func.sym | 6 +- .../3.3.5a-windows-386/symbol/event/func.sym | 2 +- .../3.3.5a-windows-386/symbol/ffx/func.sym | 4 +- .../3.3.5a-windows-386/symbol/file/func.sym | 4 +- .../symbol/framescript/func.sym | 8 +- .../symbol/framescript/label.sym | 2 +- .../symbol/framexml/func.sym | 2 +- .../symbol/gamecamera/func.sym | 2 +- .../symbol/gameobject/func.sym | 4 +- .../3.3.5a-windows-386/symbol/gameui/func.sym | 10 +- .../symbol/gluemgr/func.sym | 22 +- .../symbol/gruntclientlink/func.sym | 4 +- .../symbol/gruntlogin/func.sym | 2 +- .../symbol/grunttimer/func.sym | 2 +- .../symbol/guildbankinfo/func.sym | 2 +- profile/3.3.5a-windows-386/symbol/gx/func.sym | 2 +- .../symbol/gxapilight/func.sym | 2 +- .../symbol/gxdevice/func.sym | 28 +- .../symbol/gxdevice/label.sym | 8 +- .../symbol/gxdeviced3d/func.sym | 21 +- .../symbol/gxdeviced3d/label.sym | 2 + .../symbol/gxdeviced3d9ex/func.sym | 2 +- .../symbol/gxdeviceopengl/func.sym | 4 +- .../symbol/gxformat/func.sym | 2 +- .../symbol/gxgammaramp/func.sym | 2 +- .../symbol/gxlight/func.sym | 2 +- .../symbol/gxmatrixstack/func.sym | 3 +- .../3.3.5a-windows-386/symbol/gxpool/func.sym | 1 + .../symbol/gxstatebom/func.sym | 1 + .../symbol/gxtexture/func.sym | 8 +- .../3.3.5a-windows-386/symbol/item/func.sym | 12 +- .../symbol/layoutframe/func.sym | 6 +- .../symbol/loadingscreen/func.sym | 2 +- .../symbol/lootinfo/func.sym | 4 +- profile/3.3.5a-windows-386/symbol/m2/func.sym | 2 +- .../symbol/m2cache/func.sym | 2 +- .../symbol/m2light/func.sym | 2 +- .../symbol/m2model/func.sym | 10 +- .../symbol/m2scene/func.sym | 4 +- .../symbol/m2scenerender/func.sym | 2 +- .../symbol/m2shared/func.sym | 4 +- profile/3.3.5a-windows-386/symbol/main.sym | 202 +-- .../3.3.5a-windows-386/symbol/map/func.sym | 6 +- .../symbol/mapbaseobj/func.sym | 2 +- .../symbol/mapchunk/func.sym | 2 +- .../symbol/mapdoodaddef/func.sym | 2 +- .../symbol/mapentity/func.sym | 2 +- .../symbol/maplight/func.sym | 2 +- .../3.3.5a-windows-386/symbol/mapobj/func.sym | 2 +- .../3.3.5a-windows-386/symbol/md5/func.sym | 2 +- .../symbol/movement/func.sym | 6 +- .../symbol/nameplate/func.sym | 2 +- .../symbol/netclient/func.sym | 2 +- .../symbol/neteventqueue/func.sym | 2 +- .../symbol/nullsub/func.sym | 2 +- .../3.3.5a-windows-386/symbol/nvapi/func.sym | 10 +- .../3.3.5a-windows-386/symbol/nvapi/label.sym | 2 +- .../3.3.5a-windows-386/symbol/object/func.sym | 8 +- .../3.3.5a-windows-386/symbol/opengl/func.sym | 2 +- profile/3.3.5a-windows-386/symbol/os/func.sym | 4 +- .../3.3.5a-windows-386/symbol/ostime/func.sym | 2 +- .../symbol/particleemitter2/func.sym | 2 +- .../symbol/partyinfo/func.sym | 2 +- .../symbol/petinfo/func.sym | 6 +- .../symbol/planeparticleemitter/func.sym | 2 +- .../3.3.5a-windows-386/symbol/player/func.sym | 30 +- .../symbol/realmlist/func.sym | 2 +- .../symbol/renderbatch/func.sym | 4 +- .../symbol/ribbonemitter/func.sym | 2 +- .../3.3.5a-windows-386/symbol/screen/func.sym | 4 +- .../3.3.5a-windows-386/symbol/script/func.sym | 4 +- .../symbol/scriptregion/func.sym | 2 +- .../3.3.5a-windows-386/symbol/si2/func.sym | 14 +- .../symbol/simplebutton/func.sym | 2 +- .../symbol/simplecamera/func.sym | 2 +- .../symbol/simpleeditbox/func.sym | 6 +- .../symbol/simplefont/func.sym | 2 +- .../symbol/simplefontstring/func.sym | 6 +- .../symbol/simpleframe/func.sym | 24 +- .../symbol/simplehtml/func.sym | 2 +- .../symbol/simplehyperlinkedframe/func.sym | 2 +- .../symbol/simplemodel/func.sym | 2 +- .../symbol/simplemodelffx/func.sym | 4 +- .../symbol/simpleregion/func.sym | 2 +- .../symbol/simplescrollframe/func.sym | 2 +- .../symbol/simpleslider/func.sym | 2 +- .../symbol/simpletexture/func.sym | 4 +- .../symbol/simpletop/func.sym | 6 +- .../3.3.5a-windows-386/symbol/spell/func.sym | 32 +- .../symbol/spellbook/func.sym | 8 +- .../symbol/spellhistory/func.sym | 2 +- .../symbol/sphereparticleemitter/func.sym | 2 +- .../symbol/splineparticleemitter/func.sym | 2 +- .../3.3.5a-windows-386/symbol/srp6/func.sym | 2 +- .../3.3.5a-windows-386/symbol/storm/func.sym | 8 +- .../symbol/tempest/func.sym | 35 +- .../symbol/tooltip/func.sym | 8 +- .../symbol/uimacros/func.sym | 8 +- .../symbol/uimacros/label.sym | 2 +- .../3.3.5a-windows-386/symbol/unit/func.sym | 114 +- .../symbol/vehicle/func.sym | 4 +- .../symbol/vehiclecamera/func.sym | 6 +- .../symbol/vehiclepassenger/func.sym | 4 +- .../symbol/wardenclient/func.sym | 2 +- .../3.3.5a-windows-386/symbol/world/func.sym | 2 +- .../symbol/worldframe/func.sym | 2 +- .../symbol/worldmap/func.sym | 2 +- .../symbol/wowconnection/func.sym | 4 +- profile/3.3.5a-windows-386/x64dbg/game.dd32 | Bin 171597 -> 172375 bytes profile/3.3.5a-windows-386/x64dbg/types.json | 304 ++++- 153 files changed, 2402 insertions(+), 566 deletions(-) create mode 100644 profile/3.3.5a-windows-386/include/external/d3d9/basetexture.h create mode 100644 profile/3.3.5a-windows-386/include/external/d3d9/material.h create mode 100644 profile/3.3.5a-windows-386/include/net/message.h create mode 100644 profile/3.3.5a-windows-386/include/object/guid.h create mode 100644 profile/3.3.5a-windows-386/include/object/object.h create mode 100644 profile/3.3.5a-windows-386/include/object/type.h create mode 100644 profile/3.3.5a-windows-386/include/object/typeid.h create mode 100644 profile/3.3.5a-windows-386/include/object/unit.h create mode 100644 profile/3.3.5a-windows-386/symbol/clntobjmgr/func.sym create mode 100644 profile/3.3.5a-windows-386/symbol/gxpool/func.sym create mode 100644 profile/3.3.5a-windows-386/symbol/gxstatebom/func.sym 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 4f49433..a3f3594 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 @@ -7,6 +7,8 @@ static import_data_types() { apply_type(0x00401050, "CDataStore* __thiscall func(CDataStore* this)"); apply_type(0x004033B0, "void __stdcall ClientKillTimer(uint32_t timerId, void* handlerAddress, char* handlerName)"); apply_type(0x00403600, "void __stdcall func(char* manifest@)"); + apply_type(0x00407F40, "C44Matrix* __thiscall func(C44Matrix* this)"); + apply_type(0x00407F80, "float __thiscall func(C44Matrix* this, C44Matrix* rhs)"); apply_type(0x00408070, "void __stdcall func(float* minX, float* maxX, float* minY, float* maxY, float* minZ, float* maxZ)"); apply_type(0x00409670, "void __thiscall func(CGxDevice* this)"); apply_type(0x00421880, "int32_t __stdcall func(char* buffer, int32_t buffersize)"); @@ -126,9 +128,23 @@ static import_data_types() { apply_type(0x004BDBF0, "void __stdcall func(HTEXTBLOCK stringHandle, C2Vector* pos)"); apply_type(0x004BDD80, "float __stdcall func(HTEXTFONT fontHandle, char* text, float a3, float a4, C2Vector* a5, float a6, float a7, uint32_t flags)"); apply_type(0x004BE9C0, "HTEXTFONT __stdcall func(char* fontName, uint32_t fontFlags, float fontHeight)"); + apply_type(0x004BF540, "int32_t __thiscall func(CGxStateBom* this, C3Vector* value)"); + apply_type(0x004C1930, "float __thiscall func(C44Matrix* this)"); + apply_type(0x004C1B30, "void __thiscall func(C44Matrix* this, C3Vector* move)"); + apply_type(0x004C1B90, "void __thiscall func(C44Matrix* this, C3Vector* scale)"); + apply_type(0x004C1BF0, "void __thiscall func(C44Matrix* this, float scale)"); + apply_type(0x004C1DE0, "C44Matrix* __thiscall func(C44Matrix* this, C4Quaternion* a)"); + apply_type(0x004C1F00, "C44Matrix* __stdcall func(C44Matrix* __return_ptr result, C44Matrix* l, C44Matrix* r)"); + apply_type(0x004C2120, "C44Matrix* __stdcall func(C44Matrix* __return_ptr result, C44Matrix* l, float a)"); + apply_type(0x004C21B0, "C3Vector* __stdcall func(C3Vector* __return_ptr result, C3Vector* l, C44Matrix* a)"); + apply_type(0x004C2370, "void __thiscall func(C44Matrix* this, C44Matrix* a)"); + apply_type(0x004C2440, "C44Matrix* __thiscall func(C44Matrix* this, C44Matrix* __return_ptr result)"); + apply_type(0x004C3420, "void __thiscall func(C3Vector* this)"); + apply_type(0x004C3600, "void __thiscall func(C3Vector* this)"); apply_type(0x004C4B80, "void __thiscall func(TSGrowableArray_C3Vector* this, uint32_t count)"); apply_type(0x00532AF0, "CGxCaps* __thiscall func(CGxDevice* this)"); apply_type(0x0054EFE0, "void __fastcall func(TSGrowableArray_C2iVector* this, C2iVector* resolution)"); + apply_type(0x0057C340, "void __thiscall func(CGxMatrixStack* this)"); apply_type(0x0057FDD0, "void __thiscall func(TSGrowableArray_C2Vector* this, uint32_t count)"); apply_type(0x006160B0, "int32_t __usercall func@(uint32_t** image@, MipBits* mipImages@, uint32_t width@, uint32_t height)"); apply_type(0x00616800, "void __stdcall func(CURSORMODE mode)"); @@ -160,6 +176,7 @@ static import_data_types() { apply_type(0x00682D30, "void __thiscall func(CGxDevice* this)"); apply_type(0x00682D40, "int32_t __thiscall func(CGxDevice* this)"); apply_type(0x00682D70, "CRect* __thiscall func(CGxDevice* this)"); + apply_type(0x00682D80, "CRect* __thiscall func(CGxDevice* this)"); apply_type(0x00682DC0, "int32_t __thiscall func(CGxDevice* this, int32_t a2)"); apply_type(0x00682E20, "int32_t __thiscall func(CGxDevice* this, int32_t a2)"); apply_type(0x00682E50, "void __thiscall func(CGxDevice* this)"); @@ -183,7 +200,9 @@ static import_data_types() { apply_type(0x00683650, "uint32_t* __thiscall func(CGxDevice* this)"); apply_type(0x00683660, "void __thiscall func(CGxDevice* this, float depth)"); apply_type(0x00683670, "void __stdcall func()"); + apply_type(0x006836D0, "void __thiscall func(CGxDevice* this)"); apply_type(0x00683B90, "CGxMatrixStack* __thiscall func(CGxMatrixStack* this)"); + apply_type(0x00683CE0, "void __thiscall func(CGxDevice* this, CiRect* rect)"); apply_type(0x00683D60, "void __stdcall func(CiRect* windowRect)"); apply_type(0x00683DB0, "void __stdcall func(CiRect* windowRect)"); apply_type(0x00683E00, "void __stdcall func(CiRect* windowRect)"); @@ -197,6 +216,7 @@ static import_data_types() { apply_type(0x006840F0, "int32_t __thiscall func(CGxDevice* this, CGxFormat* format)"); apply_type(0x00684170, "void __thiscall func(CGxDevice* this, float gamma)"); apply_type(0x00684190, "int32_t __thiscall func(CGxDevice* this, CGxGammaRamp* ramp)"); + apply_type(0x006841D0, "void __thiscall func(CGxDevice* this)"); apply_type(0x00684260, "void __thiscall func(CGxDevice* this, uint32_t* w, uint32_t* h, CImVector** pixels)"); apply_type(0x006842A0, "void __thiscall func(CGxDevice* this, EGxBuffer buffer, CGxTex* texture, uint32_t plane)"); apply_type(0x00684360, "void __thiscall func(CGxDevice* this, CRect* rect)"); @@ -245,6 +265,7 @@ static import_data_types() { apply_type(0x00687980, "void __thiscall func(CGxDevice* this, CGxTex* texId)"); apply_type(0x006879F0, "void __thiscall func(CGxDevice* this, CGxQuery** query)"); apply_type(0x00687A90, "void __thiscall func(CGxDevice* this)"); + apply_type(0x00688230, "void __thiscall func(CGxPool* this)"); apply_type(0x00688340, "void __thiscall func(CGxDevice* this, CGxPool* pool)"); apply_type(0x00688690, "void __thiscall func(CGxDevice* this)"); apply_type(0x00689040, "void __thiscall func(CGxDevice* this, C44Matrix* matrix)"); @@ -266,6 +287,7 @@ static import_data_types() { 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(0x0068E1F0, "void __thiscall func(CGxDeviceD3d* this, CGxPool* pool)"); 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)"); @@ -281,13 +303,15 @@ 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(0x0068EB20, "uint16_t __stdcall func()"); 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(0x0068F6A0, "void __thiscall func(CGxDeviceD3d* this)"); 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(0x0068F950, "void __thiscall func(CGxDeviceD3d* this, CGxTex* sourceTex, uint32_t sourcePlane, CGxTex* destTex, uint32_t destPlane)"); 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)"); @@ -301,12 +325,12 @@ static import_data_types() { 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(0x00690750, "int32_t __thiscall func(CGxDeviceD3d* this, int32_t (*windowProc)(void*, uint32_t, uintptr_t, intptr_t), CGxFormat* format)"); + apply_type(0x00690830, "int32_t __thiscall func(CGxDeviceD3d* this, void* hwnd, CGxFormat* format)"); apply_type(0x0069FAA0, "int32_t __thiscall func(CGxDeviceD3d* this, D3DFORMAT 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(0x0069FE10, "void __thiscall func(CGxDeviceD3d* this, int32_t focus)"); 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)"); @@ -326,7 +350,7 @@ static import_data_types() { 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(0x006A30D0, "int32_t __thiscall func(CGxDeviceD3d* this, CGxTex* destTex, CGxTex* sourceTex, C2iVector* pos, C2iVector* size, uint32_t level, uint32_t plane)"); 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)"); @@ -339,12 +363,17 @@ static import_data_types() { 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(0x006A4100, "void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, EGxTexGen texGen, uint32_t index)"); apply_type(0x006A4190, "void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, uint32_t op)"); apply_type(0x006A41F0, "void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, uint32_t op)"); + apply_type(0x006A4250, "void __thiscall func(CGxDeviceD3d* this, CImVector diffuse, CImVector emissive, CImVector specular, float specularExp)"); + apply_type(0x006A43A0, "C44Matrix* __thiscall func(C44Matrix *this, C44Matrix* __return_ptr result)"); apply_type(0x006A43D0, "void __thiscall func(CGxDeviceD3d* this)"); 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(0x006A4AC0, "void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, uint32_t index)"); + apply_type(0x006A4AF0, "void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, EGxTexGen texGen)"); 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(0x006A5680, "void __thiscall func(CGxDeviceD3d* this)"); @@ -571,6 +600,8 @@ static import_data_types() { apply_type(0x0086BBA0, "uint64_t __stdcall func()"); apply_type(0x0086C6E0, "int32_t __stdcall func(void* parentWindow, int32_t style, const char* message, const char* title)"); apply_type(0x0086D430, "void __stdcall func(TimingMethod timingMethod)"); + apply_type(0x008714E0, "char* __stdcall func()"); + apply_type(0x00871510, "void __stdcall func(char* str)"); apply_type(0x008A0A54, "NvAPI_Status __stdcall func(int32_t nr, char* szDesc)"); apply_type(0x008A0F88, "NvAPI_Status __stdcall func(NV_StereoRegistryProfileType registryProfileType)"); apply_type(0x008A0FA0, "NvAPI_Status __stdcall func()"); @@ -901,6 +932,7 @@ static import_data_types() { apply_type(0x00AD8EF0, "EGxTexFormat[13]"); apply_type(0x00AD8F24, "D3DDECLTYPE[7]"); apply_type(0x00AD8F40, "D3DTEXTUREFILTERTYPE[6][3]"); + apply_type(0x00AD8F88, "uint32_t"); apply_type(0x00AD90B0, "uint8_t[16]"); apply_type(0x00AD90C0, "uint8_t[2]"); apply_type(0x00ADBAB4, "RECTF"); @@ -946,6 +978,7 @@ static import_data_types() { apply_type(0x00B6A9DC, "MipBits*"); apply_type(0x00BD08F0, "CVar*"); apply_type(0x00BD0914, "CVar*"); + apply_type(0x00BD0A04, "CVar*"); apply_type(0x00BD0A08, "CVar*"); apply_type(0x00C1DC98, "uint32_t[144]"); apply_type(0x00C1DED8, "uint32_t[144]"); @@ -964,6 +997,7 @@ static import_data_types() { apply_type(0x00C5FFF8, "HSLOG"); apply_type(0x00C60300, "C2iVector"); apply_type(0x00C60618, "uint32_t"); + apply_type(0x00C606B0, "D3DMATERIAL9"); apply_type(0x00C606F8, "D3DLIGHT9"); apply_type(0x00C60930, "BLIT_FUNCTION[13][13][4]"); apply_type(0x00C613C4, "int32_t"); 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 d59f30f..423b0d1 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 @@ -141,6 +141,10 @@ static import_functions() { set_func_cmt(0x004BA060, "AsyncFileReadWait(CAsyncObject*)", 0); set_func_cmt(0x004BAA40, "AsyncFileReadInitialize(unsigned int, unsigned int)", 0); set_func_cmt(0x004BAB50, "AsyncFileReadObject(CAsyncObject*, int)", 0); + set_func_cmt(0x004BF540, "bool CGxStateBom::operator!=(C3Vector& value)", 0); + set_func_cmt(0x004C1B90, "void C44Matrix::Scale(const C3Vector& scale)", 0); + set_func_cmt(0x004C1BF0, "void C44Matrix::Scale(float scale)", 0); + set_func_cmt(0x004C2440, "C44Matrix C44Matrix::Adjoint()", 0); set_func_cmt(0x004DBFD0, "thanks namreeb :^)", 0); set_func_cmt(0x004DE960, "CRealmList::SetPreferredInfo(unsigned int, int, int)", 0); set_func_cmt(0x004DF580, "CRealmList::Initialize()", 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 1a95112..edc393e 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 @@ -4,7 +4,7 @@ static import_symbols() { // Set/create names set_name(0x00401010, "operator_new"); set_name(0x00401030, "operator_delete"); - set_name(0x00401050, "CDataStore__CDataStore"); + set_name(0x00401050, "CDataStore__constructor"); set_name(0x00401070, "CDataStore__FetchWrite"); set_name(0x004010D0, "CDataStore__IsRead"); set_name(0x004010E0, "CDataStore__Reset"); @@ -35,7 +35,7 @@ static import_symbols() { set_name(0x00407E30, "LoadingScreenSetTip"); set_name(0x00407E40, "LoadingScreenSetScreenTipForRaceData"); set_name(0x00407EA0, "LoadingScreenSetTransparent"); - set_name(0x00407F40, "C44Matrix__C44Matrix"); + set_name(0x00407F40, "C44Matrix__constructor"); set_name(0x00407F80, "C44Matrix__operator_assign_C44Matrix"); set_name(0x00408030, "GxXformSetProjection"); set_name(0x00408070, "GxXformViewport"); @@ -209,8 +209,8 @@ static import_symbols() { set_name(0x00466BF0, "WowConnection__SetEncryptionKey"); set_name(0x00466DE0, "WowConnection__CloseSocket"); set_name(0x00466F00, "WowConnection__DoStreamReads"); - set_name(0x00467270, "WowConnection__WowConnection"); - set_name(0x00467330, "WowConnection__WowConnection@2"); + set_name(0x00467270, "WowConnection__constructor"); + set_name(0x00467330, "WowConnection__constructor@2"); set_name(0x004673C0, "WowConnection__destructor"); set_name(0x004675F0, "WowConnection__Send"); set_name(0x00467990, "WowConnection__SendRaw"); @@ -344,10 +344,10 @@ static import_symbols() { set_name(0x004831D0, "CSimpleTexture__SetTexCoord@2"); set_name(0x00483910, "CSimpleFontString__SetText"); set_name(0x00484450, "CRenderBatch__Finish"); - set_name(0x00484470, "CSimpleTexture__CSimpleTexture"); + set_name(0x00484470, "CSimpleTexture__constructor"); set_name(0x00484B00, "CSimpleRender__DrawBatch"); - set_name(0x00485240, "CSimpleFontString__CSimpleFontString"); - set_name(0x00485530, "CRenderBatch__CRenderBatch"); + set_name(0x00485240, "CSimpleFontString__constructor"); + set_name(0x00485530, "CRenderBatch__constructor"); set_name(0x004858E0, "CRenderBatch__QueueCallback"); set_name(0x00485970, "CRenderBatch__Clear"); set_name(0x00485F00, "CRenderBatch__Clear@2"); @@ -359,9 +359,9 @@ static import_symbols() { set_name(0x00487C40, "CSimpleRegion__ShowThis"); set_name(0x00487CA0, "CSimpleRegion__OnRegionChanged"); set_name(0x00487D70, "CSimpleRegion__OnColorChanged"); - set_name(0x004880E0, "CSimpleRegion__CSimpleRegion"); + set_name(0x004880E0, "CSimpleRegion__constructor"); set_name(0x004881D0, "CSimpleRegion__destructor"); - set_name(0x00488310, "CScriptRegion__CScriptRegion"); + set_name(0x00488310, "CScriptRegion__constructor"); set_name(0x00488540, "CScriptRegion__ProtectedFunctionsAllowed"); set_name(0x00488CF0, "CLayoutFrame__IsResizePending"); set_name(0x00488D00, "CLayoutFrame__GetHeight"); @@ -371,7 +371,7 @@ static import_symbols() { set_name(0x00489570, "CLayoutFrame__OnFrameResize"); set_name(0x004896C0, "CLayoutFrame__SetProtectFlag"); set_name(0x004898B0, "CLayoutFrame__ResizePending"); - set_name(0x00489980, "CLayoutFrame__CLayoutFrame"); + set_name(0x00489980, "CLayoutFrame__constructor"); set_name(0x00489A40, "CLayoutFrame__OnProtectedDetach"); set_name(0x00489BB0, "CLayoutFrame__IsProtected"); set_name(0x00489C30, "CLayoutFrame__RegisterResize"); @@ -421,7 +421,7 @@ static import_symbols() { set_name(0x00491830, "CSimpleFrame__HideThis"); set_name(0x004918F0, "CSimpleFrame__ShowThis"); set_name(0x00491E00, "CSimpleFrame__OnFrameRender@2"); - set_name(0x004922F0, "CSimpleFrame__CSimpleFrame"); + set_name(0x004922F0, "CSimpleFrame__constructor"); set_name(0x004932C0, "CSimpleFrame__LoadXML"); set_name(0x00493BF0, "GxCapsWindowSizeInScreenCoords"); set_name(0x00493E00, "CSimpleTop__RoundToPixelHeight"); @@ -435,9 +435,9 @@ static import_symbols() { set_name(0x004955E0, "CSimpleTop__OnDisplaySizeChanged"); set_name(0x00495880, "CSimpleTop__RegisterForEvent"); set_name(0x004959F0, "CSimpleTop__EnableEvents"); - set_name(0x00495EB0, "CSimpleTop__CSimpleTop"); + set_name(0x00495EB0, "CSimpleTop__constructor"); set_name(0x004960D0, "CSimpleTop__ShowFrame"); - set_name(0x00496870, "CSimpleFont__CSimpleFont"); + set_name(0x00496870, "CSimpleFont__constructor"); set_name(0x0049CA90, "CScriptRegion__RegisterScriptMethods"); set_name(0x0049E540, "CSimpleFrame__RegisterScriptMethods"); set_name(0x0049F9E0, "CSimpleFrame_SetAlpha"); @@ -445,7 +445,7 @@ static import_symbols() { set_name(0x004A26D0, "CBackdropGenerator__DestroyTextures"); set_name(0x004A2780, "CBackdropGenerator__LoadXML"); set_name(0x004A29D0, "CBackdropGenerator__Generate"); - set_name(0x004A2D40, "CBackdropGenerator__CBackdropGenerator"); + set_name(0x004A2D40, "CBackdropGenerator__constructor"); set_name(0x004A2E00, "CBackdropGenerator__SetOutput"); set_name(0x004A8190, "CScriptObject__RegisterScriptMethods"); set_name(0x004A81B0, "FrameScript_GetObjectThis"); @@ -505,19 +505,22 @@ static import_symbols() { set_name(0x004BECF0, "CCamera__SetupWorldProjection"); set_name(0x004BEE60, "CameraSetupScreenProjection"); set_name(0x004BF0C0, "CameraSetupWorldProjection"); - set_name(0x004BF770, "CCamera__CCamera"); + set_name(0x004BF540, "CGxStateBom__operator_not_equal"); + set_name(0x004BF770, "CCamera__constructor"); set_name(0x004BFCA0, "CameraCreate"); set_name(0x004C1290, "CameraGetCoord"); set_name(0x004C1510, "CRndSeed__SetSeed"); set_name(0x004C1930, "C44Matrix__Determinant"); set_name(0x004C1B30, "C44Matrix__Translate"); - set_name(0x004C1B90, "C44Matrix__Scale_C3Vector"); - set_name(0x004C1BF0, "C44Matrix__Scale_float"); - set_name(0x004C1DE0, "C44Matrix__C44Matrix_C4Quaternion"); + set_name(0x004C1B90, "C44Matrix__Scale"); + set_name(0x004C1BF0, "C44Matrix__Scale@2"); + set_name(0x004C1DE0, "C44Matrix__constructor@2"); set_name(0x004C1F00, "operator_multiply_C44Matrix_C44Matrix"); + set_name(0x004C2120, "operator_multiply_C44Matrix_float"); set_name(0x004C21B0, "operator_multiply_C3Vector_C44Matrix"); - set_name(0x004C2370, "C44Matrix__operator_assignment_multiply"); + set_name(0x004C2370, "C44Matrix__operator_assignment_multiply_C44Matrix"); set_name(0x004C23D0, "C44Matrix__Transpose"); + set_name(0x004C2440, "C44Matrix__Adjoint"); set_name(0x004C2F90, "C44Matrix__Inverse"); set_name(0x004C2FC0, "C44Matrix__AffineInverse"); set_name(0x004C30A0, "C44Matrix__AffineInvertInPlace"); @@ -526,8 +529,8 @@ static import_symbols() { set_name(0x004C3340, "C44Matrix__RotateAroundY"); set_name(0x004C3380, "C44Matrix__RotateAroundZ"); set_name(0x004C33C0, "C44Matrix__Rotate"); - set_name(0x004C3420, "C3Vector__Normalize_1"); - set_name(0x004C3600, "C3Vector__Normalize_2"); + set_name(0x004C3420, "C3Vector__Normalize"); + set_name(0x004C3600, "C3Vector__Normalize@2"); set_name(0x004C4B80, "TSGrowableArray_C3Vector__SetCount"); set_name(0x004C51B0, "C33Matrix__operator_assign_C33Matrix"); set_name(0x004C5550, "C33Matrix__Rotation"); @@ -545,6 +548,10 @@ static import_symbols() { set_name(0x004D27D0, "HeapUsageDestroy"); set_name(0x004D2A30, "HeapUsageInitialize"); set_name(0x004D3100, "ObjectFree"); + set_name(0x004D73A0, "ObjectUpdateHandler"); + set_name(0x004D74D0, "ObjectCompressedUpdateHandler"); + set_name(0x004D7610, "OnObjectDestroy"); + set_name(0x004D76E0, "ClntObjMgrInitialize"); set_name(0x004D7D20, "CGlueMgr__InitializeFFX"); set_name(0x004D7DA0, "CGlueMgr__UpdateWaitQueue"); set_name(0x004D7F60, "CGlueMgr__SetCurrentAccount"); @@ -633,7 +640,7 @@ static import_symbols() { set_name(0x004E5940, "CGlueMgr__ScanDLLFinished"); set_name(0x004E5ED0, "CSimpleModelFFX__SetModel"); set_name(0x004E5F00, "CSimpleModelFFX__LoadXML"); - set_name(0x004E5F70, "CSimpleModelFFX__CSimpleModelFFX"); + set_name(0x004E5F70, "CSimpleModelFFX__constructor"); set_name(0x004E6190, "CSimpleModelFFX__Render"); set_name(0x004E6300, "CSimpleModelFFX__Create"); set_name(0x004E6330, "CSimpleModelFFX__OnFrameRender"); @@ -682,7 +689,7 @@ static import_symbols() { set_name(0x004FA570, "CGWorldFrame__SetupDefaultAction"); set_name(0x004FA5D0, "CGWorldFrame__UnitClear"); set_name(0x004FA5F0, "CGWorldFrame__OnWorldUpdate"); - set_name(0x004FABD0, "CGWorldFrame__CGWorldFrame"); + set_name(0x004FABD0, "CGWorldFrame__constructor"); set_name(0x004FAF90, "CGWorldFrame__RenderWorld"); set_name(0x004FB080, "CGWorldFrame__OnFrameRender"); set_name(0x004FBD00, "Script_LoggingChat"); @@ -1675,6 +1682,7 @@ static import_symbols() { set_name(0x0057BAB0, "Script_GetNumBankSlots"); set_name(0x0057BB30, "Script_GetBankSlotCost"); set_name(0x0057BBC0, "Script_PurchaseSlot"); + set_name(0x0057C340, "CGxMatrixStack__Identity"); set_name(0x0057C420, "GxXformPop"); set_name(0x0057F170, "Script_GetNumTrackingTypes"); set_name(0x0057F1B0, "Script_GetTrackingInfo"); @@ -2644,9 +2652,9 @@ static import_symbols() { set_name(0x006053D0, "CGCamera__SetTelescope"); set_name(0x00606570, "CGCamera__SetModelCamera"); set_name(0x006066E0, "CGCamera__SetTarget"); - set_name(0x00606B30, "CGCamera__CGCamera"); + set_name(0x00606B30, "CGCamera__constructor"); set_name(0x00607BD0, "CSimpleCamera__SetFacing"); - set_name(0x00607C20, "CSimpleCamera__CSimpleCamera"); + set_name(0x00607C20, "CSimpleCamera__constructor"); set_name(0x00607C90, "CCameraManager__SetScreenAspect"); set_name(0x006081F0, "Script_GetTime"); set_name(0x00608230, "Script_GetGameTime"); @@ -2872,14 +2880,14 @@ static import_symbols() { set_name(0x006325C0, "NetClient__PongHandler"); set_name(0x006326D0, "NetClient__WCDisconnected"); set_name(0x00632730, "NetClient__AuthChallengeHandler"); - set_name(0x00632A40, "NetClient__NetClient"); + set_name(0x00632A40, "NetClient__constructor"); set_name(0x00632B50, "NetClient__Send"); set_name(0x00632C10, "NetClient__WCCantConnect"); set_name(0x00632CD0, "NetClient__Ping"); set_name(0x00632DB0, "NetClient__HandleIdle"); set_name(0x00632E00, "NetClient__RedirectHandler"); set_name(0x00633330, "NetClient__WCMessageReady"); - set_name(0x00633440, "NETEVENTQUEUE__NETEVENTQUEUE"); + set_name(0x00633440, "NETEVENTQUEUE__constructor"); set_name(0x006334F0, "NETEVENTQUEUE__Poll"); set_name(0x00633650, "NETEVENTQUEUE__AddEvent"); set_name(0x00633730, "NETEVENTQUEUE__destructor"); @@ -2915,11 +2923,11 @@ static import_symbols() { set_name(0x006817C0, "GxLogOpen"); set_name(0x006817D0, "GxLogClose"); set_name(0x006817E0, "GxLog"); - set_name(0x00681950, "CGxFormat__CGxFormat"); + set_name(0x00681950, "CGxFormat__constructor"); set_name(0x00681A60, "GxDrawLockedElements"); set_name(0x00681AB0, "GxPrimIndexPtr"); set_name(0x00681B00, "GxPrimVertexPtr"); - set_name(0x00681BE0, "CGxTexFlags__CGxTexFlags"); + set_name(0x00681BE0, "CGxTexFlags__constructor"); set_name(0x00681CB0, "GxTexCreate"); set_name(0x00681F20, "GxTexUpdate@2"); set_name(0x00681F60, "GxXformSetViewport"); @@ -2939,6 +2947,7 @@ static import_symbols() { set_name(0x00682D30, "CGxDevice__DeviceTakeScreenShot"); set_name(0x00682D40, "CGxDevice__IDevIsWindowed"); set_name(0x00682D70, "CGxDevice__DeviceCurWindow"); + set_name(0x00682D80, "CGxDevice__DeviceDefWindow"); set_name(0x00682DC0, "CGxDevice__CapsIsWindowVisible"); set_name(0x00682E20, "CGxDevice__CapsHasContext"); set_name(0x00682E50, "CGxDevice__ScenePresent"); @@ -2963,20 +2972,23 @@ static import_symbols() { set_name(0x00683660, "CGxDevice__CursorSetDepth"); set_name(0x00683670, "CGxDevice__LogOpen"); set_name(0x006836B0, "CGxDevice__LogClose"); - set_name(0x00683B90, "CGxMatrixStack__CGxMatrixStack"); - set_name(0x00683D60, "CGxDevice__WindowConstrainTopByAspect"); - set_name(0x00683DB0, "CGxDevice__WindowConstrainBottomByAspect"); - set_name(0x00683E00, "CGxDevice__WindowConstrainLeftByAspect"); - set_name(0x00683E50, "CGxDevice__WindowConstrainRightByAspect"); - set_name(0x00683EA0, "CGxDevice__WindowConstrainLeft"); - set_name(0x00683ED0, "CGxDevice__WindowConstrainRight"); - set_name(0x00683F00, "CGxDevice__WindowConstrainTop"); - set_name(0x00683F30, "CGxDevice__WindowConstrainBottom"); - set_name(0x00683FB0, "CGxLight__CGxLight"); + set_name(0x006836D0, "CGxDevice__WaitForFPSCap"); + set_name(0x00683B90, "CGxMatrixStack__constructor"); + set_name(0x00683CE0, "CGxDevice__ClampRectToWindow"); + set_name(0x00683D60, "CGxDevice__ClampRectTopByAspect"); + set_name(0x00683DB0, "CGxDevice__ClampRectBottomByAspect"); + set_name(0x00683E00, "CGxDevice__ClampRectLeftByAspect"); + set_name(0x00683E50, "CGxDevice__ClampRectRightByAspect"); + set_name(0x00683EA0, "CGxDevice__ClampRectLeft"); + set_name(0x00683ED0, "CGxDevice__ClampRectRight"); + set_name(0x00683F00, "CGxDevice__ClampRectTop"); + set_name(0x00683F30, "CGxDevice__ClampRectBottom"); + set_name(0x00683FB0, "CGxLight__constructor"); set_name(0x00684070, "CGxGammaRamp__Set"); set_name(0x006840F0, "CGxDevice__DeviceSetFormat"); set_name(0x00684170, "CGxDevice__DeviceSetGamma"); set_name(0x00684190, "CGxDevice__DeviceSetGamma@2"); + set_name(0x006841D0, "CGxDevice__DeviceScreenShot"); set_name(0x00684260, "CGxDevice__DeviceReadScreenShot"); set_name(0x006842A0, "CGxDevice__DeviceSetRenderTarget"); set_name(0x00684360, "CGxDevice__DeviceSetDefWindow"); @@ -3027,8 +3039,9 @@ static import_symbols() { set_name(0x00687980, "CGxDevice__TexDestroy"); set_name(0x006879F0, "CGxDevice__QueryDestroy"); set_name(0x00687A90, "CGxDevice__ICursorDraw"); + set_name(0x00688230, "CGxPool__Invalidate"); set_name(0x00688340, "CGxDevice__PoolDestroy"); - set_name(0x00688690, "CGxDevice__CGxDevice"); + set_name(0x00688690, "CGxDevice__constructor"); set_name(0x00689040, "CGxDevice__XformSetProjection"); set_name(0x00689050, "CGxDevice__XformSetView"); set_name(0x006890C0, "CGxDevice__destructor"); @@ -3046,11 +3059,12 @@ static import_symbols() { set_name(0x0068A0F0, "TSGrowableArray_CGxMonitorMode__SetCount"); set_name(0x0068A4C0, "CGxDevice__AdapterMonitorModes"); set_name(0x0068A9A0, "CGxDeviceOpenGl__ISetGlCaps"); - set_name(0x0068BBC0, "CGxDeviceOpenGl__CGxDeviceOpenGl"); + set_name(0x0068BBC0, "CGxDeviceOpenGl__constructor"); set_name(0x0068BF20, "CGxDevice__NewOpenGl"); set_name(0x0068C220, "CGxDevice__NewD3d9Ex"); set_name(0x0068E140, "CGxDeviceD3d__IUnloadD3dLib"); set_name(0x0068E180, "CGxDeviceD3d__ICreateD3dIB"); + set_name(0x0068E1F0, "CGxDeviceD3d__IReleaseD3dPool"); set_name(0x0068E250, "CGxDeviceD3d__ISetPresentParms"); set_name(0x0068E450, "CGxDeviceD3d__DeviceEvictResources"); set_name(0x0068E4A0, "CGxDeviceD3d__DeviceSetBaseMipLevel"); @@ -3066,10 +3080,12 @@ static import_symbols() { set_name(0x0068E9C0, "CGxDeviceD3d__QueryCreate"); set_name(0x0068EA10, "CGxDeviceD3d__QueryBegin"); set_name(0x0068EA90, "CGxDeviceD3d__QueryGetParam"); + set_name(0x0068EB20, "WindowClassCreate"); set_name(0x0068EBB0, "CGxDeviceD3d__ICreateWindow"); set_name(0x0068ED80, "CGxDeviceD3d__ILoadD3dLib"); set_name(0x0068EE20, "CGxDeviceD3d__ISetCaps"); set_name(0x0068F3D0, "CGxDeviceD3d__ICreateD3dDevice"); + set_name(0x0068F6A0, "CGxDeviceD3d__Sub68F6A0"); set_name(0x0068F770, "CGxDeviceD3d__DeviceSetRenderTarget"); set_name(0x0068F900, "CGxDeviceD3d__DeviceResolveDepthBuffer"); set_name(0x0068F950, "CGxDeviceD3d__DeviceCopyTex"); @@ -3078,7 +3094,7 @@ static import_symbols() { set_name(0x0068FB10, "CGxDeviceD3d__IBufLock"); set_name(0x0068FCE0, "CGxDeviceD3d__BufLock"); set_name(0x0068FD00, "CGxDeviceD3d__BufData"); - set_name(0x0068FD50, "CGxDeviceD3d__CGxDeviceD3d"); + set_name(0x0068FD50, "CGxDeviceD3d__constructor"); set_name(0x0068FE80, "CGxDeviceD3d__scalar_deleting_destructor"); set_name(0x0068FED0, "CGxDeviceD3d__DeviceReadPixels"); set_name(0x00690150, "CGxDeviceD3d__IReleaseD3dResources"); @@ -3094,7 +3110,7 @@ static import_symbols() { set_name(0x0069FAA0, "CGxDeviceD3d__Sub69FAA0"); set_name(0x0069FB00, "CGxDeviceD3d__ICreateD3dVB"); set_name(0x0069FB70, "CGxDeviceD3d__CreatePoolAPI"); - set_name(0x0069FE10, "CGxDeviceD3d__ICursorClip"); + set_name(0x0069FE10, "CGxDeviceD3d__ISetWindowFocus"); set_name(0x0069FE80, "CGxDeviceD3d__DeviceSetGamma@2"); set_name(0x0069FED0, "CGxDeviceD3d__DeviceWindow"); set_name(0x0069FF40, "CGxDeviceD3d__DeviceOverride"); @@ -3109,7 +3125,7 @@ static import_symbols() { set_name(0x006A0360, "CGxDeviceD3d__WindowProcD3d"); set_name(0x006A1690, "CGxDeviceD3d__IReleaseD3dQueries"); set_name(0x006A1950, "CGxDeviceD3d__DeviceReadDepths"); - set_name(0x006A1A90, "CGxDeviceD3d9Ex__CGxDeviceD3d9Ex"); + set_name(0x006A1A90, "CGxDeviceD3d9Ex__constructor"); set_name(0x006A1C60, "CGxDeviceD3d__IReleaseD3dPools"); set_name(0x006A2AA0, "CGxDeviceD3d__ITexForceRecreation"); set_name(0x006A2BB0, "CGxDeviceD3d__TexDestroy"); @@ -3129,12 +3145,17 @@ static import_symbols() { set_name(0x006A39E0, "CGxDeviceD3d__ISetVertexBuffer"); set_name(0x006A3A60, "CGxDeviceD3d__IStateSetD3DDefaults"); set_name(0x006A3C40, "CGxDeviceD3d__DsSet"); + set_name(0x006A4100, "CGxDeviceD3d__ISetTexCoordIndex"); set_name(0x006A4190, "CGxDeviceD3d__ISetColorOp"); set_name(0x006A41F0, "CGxDeviceD3d__ISetAlphaOp"); + set_name(0x006A4250, "CGxDeviceD3d__ISetMaterial"); + set_name(0x006A43A0, "C44Matrix__Inverse@2"); set_name(0x006A43D0, "CGxDeviceD3d__IStateSyncLights"); set_name(0x006A4700, "CGxDeviceD3d__IStateSyncMaterial"); set_name(0x006A4850, "CGxDeviceD3d__IStateSyncXforms"); set_name(0x006A4900, "CGxDeviceD3d__ISetTexture"); + set_name(0x006A4AC0, "CGxDeviceD3d__ISetTexCoord"); + set_name(0x006A4AF0, "CGxDeviceD3d__ISetTexGen"); set_name(0x006A4C30, "CGxDeviceD3d__IRsSendToHw"); set_name(0x006A5540, "CGxDeviceD3d__ICreateD3dVertexDecl"); set_name(0x006A5680, "CGxDeviceD3d__IReleaseD3dVertexDecl"); @@ -3218,7 +3239,7 @@ static import_symbols() { set_name(0x006AFF10, "CBLPFile__Open"); set_name(0x006AFFD0, "CBLPFile__LockChain2"); set_name(0x006B0190, "ClientServices__LoadCDKey"); - set_name(0x006B0250, "ClientConnection__ClientConnection"); + set_name(0x006B0250, "ClientConnection__constructor"); set_name(0x006B0850, "ClientConnection__Cleanup"); set_name(0x006B0940, "ClientConnection__Disconnect"); set_name(0x006B0960, "nullsub_154"); @@ -3681,7 +3702,7 @@ static import_symbols() { set_name(0x007739E0, "StormInitialize"); set_name(0x00773A00, "StormDestroy"); set_name(0x00773A80, "StormSetOption"); - set_name(0x00774620, "SCritSect__SCritSect"); + set_name(0x00774620, "SCritSect__constructor"); set_name(0x00774630, "SCritSect__destructor"); set_name(0x00774640, "SCritSect__Enter"); set_name(0x00774650, "SCritSect__Leave"); @@ -3725,7 +3746,7 @@ static import_symbols() { set_name(0x0077AEC0, "BigBuffer__operator_index@2"); set_name(0x0077AF30, "BigBuffer__SetCount"); set_name(0x0077AF80, "BigBuffer__Trim"); - set_name(0x0077AFF0, "BigStack__BigStack"); + set_name(0x0077AFF0, "BigStack__constructor"); set_name(0x0077B020, "Add"); set_name(0x0077B160, "Div"); set_name(0x0077B2B0, "Mul"); @@ -3756,7 +3777,7 @@ static import_symbols() { set_name(0x00781500, "World__Preload"); set_name(0x007816F0, "DayNight__Update"); set_name(0x007AE300, "CMapObj__Init"); - set_name(0x007B0580, "CMapObj__CMapObj"); + set_name(0x007B0580, "CMapObj__constructor"); set_name(0x007B0CC0, "CMapObj__Create"); set_name(0x007B1270, "CDetailDoodad__UpdateAlphaRampTexture"); set_name(0x007B15D0, "CDetailDoodad__InitializeShaderConstants"); @@ -3770,9 +3791,9 @@ static import_symbols() { set_name(0x007C1150, "CMapDoodadDef__SelectLights"); set_name(0x007C1730, "CMapEntity__SelectLights"); set_name(0x007C65A0, "CMapChunk__UpdateLights"); - set_name(0x007D7260, "CMapBaseObj__CMapBaseObj"); + set_name(0x007D7260, "CMapBaseObj__constructor"); set_name(0x007D80C0, "CMapObj__Read"); - set_name(0x007D9B10, "CMapLight__CMapLight"); + set_name(0x007D9B10, "CMapLight__constructor"); set_name(0x007D9BD0, "CMap__CreateLight"); set_name(0x007D9C80, "CMap__UpdateLightBounds"); set_name(0x007D9D50, "CMap__EnableLight"); @@ -3799,8 +3820,8 @@ static import_symbols() { set_name(0x007DF0B0, "Script_UnitIsTalking"); set_name(0x007DFAF0, "ComSatClient_Init"); set_name(0x007E1030, "IsRussian"); - set_name(0x007EA260, "EffectDeath__EffectDeath"); - set_name(0x007EA470, "EffectNetherWorld__EffectNetherWorld"); + set_name(0x007EA260, "EffectDeath__constructor"); + set_name(0x007EA470, "EffectNetherWorld__constructor"); set_name(0x007ECD00, "DayNight__CalcFogRate"); set_name(0x007ECEC0, "DayNight__SetOverrideLightParamsID"); set_name(0x007ECEE0, "DayNight__ClearOverrideLightParamsID"); @@ -3889,7 +3910,7 @@ static import_symbols() { set_name(0x00817EE0, "FrameScript_GetCurrentFunction"); set_name(0x00818070, "FrameScript_Sprintf"); set_name(0x008192F0, "FrameScript_GetErrorHandlerReference"); - set_name(0x00819830, "FrameScript_Object__FrameScript_Object"); + set_name(0x00819830, "FrameScript_Object__constructor"); set_name(0x00819850, "FrameScript_Object__destructor"); set_name(0x00819880, "FrameScript_Object__RegisterScriptObject"); set_name(0x008199C0, "FrameScript_Object__UnregisterScriptObject"); @@ -3924,7 +3945,7 @@ static import_symbols() { set_name(0x0081C6E0, "M2Initialize"); set_name(0x0081C790, "CM2Cache__UpdateShared"); set_name(0x0081C840, "CM2Cache__LinkToSharedUpdateList"); - set_name(0x0081C900, "CM2Cache__CM2Cache"); + set_name(0x0081C900, "CM2Cache__constructor"); set_name(0x0081C9C0, "CM2Scene__AdvanceTime"); set_name(0x0081CE70, "CM2Scene__AnimateThread"); set_name(0x0081E400, "CM2Scene__SelectLights"); @@ -3936,7 +3957,7 @@ static import_symbols() { set_name(0x0081EF30, "CM2Scene__SortTransparent"); set_name(0x0081F0E0, "CM2Scene__SortAdditiveParticles"); set_name(0x0081F1D0, "CM2Scene__ComputeElementShaders"); - set_name(0x0081F330, "CM2SceneRender__CM2SceneRender"); + set_name(0x0081F330, "CM2SceneRender__constructor"); set_name(0x0081F450, "CM2SceneRender__SetupTextures"); set_name(0x0081F700, "CM2SceneRender__SetBatchVertices"); set_name(0x0081F8F0, "CM2Scene__CreateModel"); @@ -3949,7 +3970,7 @@ static import_symbols() { set_name(0x00820AE0, "CM2SceneRender__DrawBatchDoodad"); set_name(0x00820F40, "CM2SceneRender__DrawRibbon"); set_name(0x008214E0, "CM2SceneRender__DrawParticle"); - set_name(0x008216C0, "CM2Scene__CM2Scene"); + set_name(0x008216C0, "CM2Scene__constructor"); set_name(0x00821850, "CM2Scene__destructor"); set_name(0x00821A20, "CM2Scene__Animate"); set_name(0x00823040, "CM2Scene__Release"); @@ -3986,7 +4007,7 @@ static import_symbols() { set_name(0x00828F90, "CM2Model__SetIndices"); set_name(0x00829160, "CM2Model__SetVertices"); set_name(0x00829AA0, "CM2Model__RenderModelBatchesForProjectedTexture"); - set_name(0x0082BE60, "CM2Model__CM2Model"); + set_name(0x0082BE60, "CM2Model__constructor"); set_name(0x0082C970, "CM2Model__OptimizeVisibleGeometry"); set_name(0x0082D2F0, "CM2Model__AnimateParticlesMT"); set_name(0x0082D6F0, "CM2Model__AnimateTextureTransformsMT"); @@ -4021,7 +4042,7 @@ static import_symbols() { set_name(0x00834940, "CM2Lighting__SetFog"); set_name(0x00834990, "CM2Lighting__SetFog@2"); set_name(0x008349E0, "CM2Lighting__GetPointLight"); - set_name(0x00834A40, "CM2Light__CM2Light"); + set_name(0x00834A40, "CM2Light__constructor"); set_name(0x00834AB0, "CM2Light__destructor"); set_name(0x00834AE0, "CM2Light__SetDirection"); set_name(0x00834C70, "CM2Light__Link"); @@ -4046,7 +4067,7 @@ static import_symbols() { set_name(0x00837680, "CM2Shared__SubstituteSpecializedShaders"); set_name(0x00837A40, "CM2Shared__InitializeSkinProfile"); set_name(0x00838490, "CM2Shared__FinishLoadingSkinProfile"); - set_name(0x0083C5F0, "CM2Shared__CM2Shared"); + set_name(0x0083C5F0, "CM2Shared__constructor"); set_name(0x0083C6E0, "CM2Shared__InitLowPrioritySequence"); set_name(0x0083CA90, "CM2Shared__FinishLoadingLowPrioritySequence"); set_name(0x0083CB10, "CM2Shared__SkinProfileLoadedCallback"); @@ -4103,7 +4124,7 @@ static import_symbols() { set_name(0x0086AE20, "OsGetAsyncTimeMs"); set_name(0x0086AE30, "OsGetAsyncTimeClocks"); set_name(0x0086AE70, "OsGetAsyncClocksPerSecond"); - set_name(0x0086AEA0, "OsTimeManager__OsTimeManager"); + set_name(0x0086AEA0, "OsTimeManager__constructor"); set_name(0x0086AF20, "OsTimeManagerCreate"); set_name(0x0086AF60, "OsTimeManagerDestroy"); set_name(0x0086AF90, "IOsGetProcessorFeatures"); @@ -4142,6 +4163,8 @@ static import_symbols() { set_name(0x0086F5F0, "OsCallResetContext"); set_name(0x0086F760, "OsCallInitialize"); set_name(0x0086F880, "OsCallInitializeContext"); + set_name(0x008714E0, "OsGetLastErrorStr"); + set_name(0x00871510, "OsFreeLastErrorStr"); set_name(0x00872280, "OsClipboardGetString"); set_name(0x008722A0, "OsClipboardPutString"); set_name(0x008726F0, "IOsClipboardGetString"); @@ -4204,7 +4227,7 @@ static import_symbols() { set_name(0x008CA880, "GruntLogin__EnterPIN"); set_name(0x008CAC00, "GruntLogin__GetVersionChallenge"); set_name(0x008CAC50, "GruntLogin__Init"); - set_name(0x008CACA0, "GruntLogin__GruntLogin"); + set_name(0x008CACA0, "GruntLogin__constructor"); set_name(0x008CAD20, "GruntLogin__Logoff"); set_name(0x008CAD40, "GruntLogin__SetMatrixInfo"); set_name(0x008CB020, "GruntLogin__ReconnectResult"); @@ -4255,7 +4278,7 @@ static import_symbols() { set_name(0x0095F5E0, "CSimpleModel__SetSequence"); set_name(0x0095F610, "CSimpleModel__SetSequenceTime"); set_name(0x0095F650, "M2CreateScene@2"); - set_name(0x0095F680, "CSimpleModel__CSimpleModel"); + set_name(0x0095F680, "CSimpleModel__constructor"); set_name(0x0095F7D0, "CSimpleModel__scalar_deleting_destructor"); set_name(0x0095F800, "CSimpleModel__LoadXML"); set_name(0x0095F990, "CSimpleModel__SetModel"); @@ -4308,7 +4331,7 @@ static import_symbols() { set_name(0x0096B060, "CSimpleScrollFrame__UnparentFrame"); set_name(0x0096B1C0, "CSimpleScrollFrame__UpdateScrollChild"); set_name(0x0096B210, "CSimpleScrollFrame__OnFrameSizeChanged"); - set_name(0x0096B2D0, "CSimpleScrollFrame__CSimpleScrollFrame"); + set_name(0x0096B2D0, "CSimpleScrollFrame__constructor"); set_name(0x0096B3A0, "CSimpleScrollFrame__SetScrollChild"); set_name(0x0096B480, "CSimpleScrollFrame__SetVerticalScroll"); set_name(0x0096B4C0, "CSimpleScrollFrame__UpdateScrollChildRect"); @@ -4318,12 +4341,12 @@ static import_symbols() { set_name(0x0096B9A0, "CSimpleScrollFrame__OnFrameRender"); set_name(0x0096B9D0, "CSimpleScrollFrame__GetBoundsRect"); set_name(0x0096BBB0, "CSimpleSlider__RunOnMinMaxChangedScript"); - set_name(0x0096BE50, "CSimpleSlider__CSimpleSlider"); + set_name(0x0096BE50, "CSimpleSlider__constructor"); set_name(0x0096BF00, "CSimpleSlider__IsA"); set_name(0x0096C090, "CSimpleSlider__SetValue"); set_name(0x0096C470, "CSimpleSlider__SetMinMaxValues"); set_name(0x0096C750, "CSimpleHTML__FontUpdated"); - set_name(0x0096C820, "CSimpleHTML__CSimpleHTML"); + set_name(0x0096C820, "CSimpleHTML__constructor"); set_name(0x0096C960, "CSimpleHTML__IsA"); set_name(0x0096C9E0, "CSimpleHTML__ParseIMG"); set_name(0x0096CC90, "CSimpleHTML__AddText"); @@ -4344,7 +4367,7 @@ static import_symbols() { set_name(0x009771D0, "CSimpleButton_GetButtonState"); set_name(0x00977A70, "CSimpleButton_SetStateTexture"); set_name(0x00977C70, "CSimpleButton_SetNormalTexture"); - set_name(0x00978900, "CSimpleHyperlinkedFrame__CSimpleHyperlinkedFrame"); + set_name(0x00978900, "CSimpleHyperlinkedFrame__constructor"); set_name(0x00978B30, "CParticleEmitter2__SetModel"); set_name(0x00978BF0, "CParticleEmitter2__SetMaterial"); set_name(0x00978C70, "CParticleEmitter2__SetTextureDimensions"); @@ -4357,7 +4380,7 @@ static import_symbols() { set_name(0x0097AC00, "CParticleEmitter2__SetTwinkleScale"); set_name(0x0097AEB0, "CParticleEmitter2__CreateChildEmittersFromModel"); set_name(0x0097D370, "CParticleEmitter2__DetermineIfSimple"); - set_name(0x0097E150, "CParticleEmitter2__CParticleEmitter2"); + set_name(0x0097E150, "CParticleEmitter2__constructor"); set_name(0x0097F570, "CRibbonEmitter__SetDataEnabled"); set_name(0x0097F5F0, "CRibbonEmitter__SetTexSlot"); set_name(0x0097F610, "CRibbonEmitter__SetAbove"); @@ -4367,16 +4390,16 @@ static import_symbols() { set_name(0x0097FB60, "CRibbonEmitter__SetColor"); set_name(0x0097FBA0, "CRibbonEmitter__SetAlpha"); set_name(0x00980090, "CRibbonEmitter__Update"); - set_name(0x00980630, "CRibbonEmitter__CRibbonEmitter"); + set_name(0x00980630, "CRibbonEmitter__constructor"); set_name(0x009808A0, "CRibbonEmitter__Initialize"); - set_name(0x00981310, "CPlaneParticleEmitter__CPlaneParticleEmitter"); - set_name(0x009813F0, "CSphereParticleEmitter__CSphereParticleEmitter"); + set_name(0x00981310, "CPlaneParticleEmitter__constructor"); + set_name(0x009813F0, "CSphereParticleEmitter__constructor"); set_name(0x00981500, "CSplineParticleEmitter__SetSpline"); - set_name(0x009820F0, "CSplineParticleEmitter__CSplineParticleEmitter"); + set_name(0x009820F0, "CSplineParticleEmitter__constructor"); set_name(0x00982460, "C4Quaternion__Slerp"); set_name(0x00982630, "C4Quaternion__Nlerp"); - set_name(0x00982970, "C3Vector__C3Vector"); - set_name(0x00984C90, "C4Vector__C4Vector"); + set_name(0x00982970, "C3Vector__constructor"); + set_name(0x00984C90, "C4Vector__constructor"); set_name(0x009858B0, "Script_PlaySound"); set_name(0x00985950, "Script_PlayMusic"); set_name(0x009859B0, "Script_PlaySoundFile"); @@ -4413,7 +4436,7 @@ static import_symbols() { set_name(0x009A8300, "SRP6_Client__BeginAuthentication"); set_name(0x009A83E0, "SRP6_Client__CalculateProof"); set_name(0x009A88C0, "SRP6_Client__VerifyServerProof"); - set_name(0x009A8980, "SRP6_Random__SRP6_Random"); + set_name(0x009A8980, "SRP6_Random__constructor"); set_name(0x009A89F0, "SRP6_Random__GenerateRandomBytes"); set_name(0x009A8AA0, "BigIntegerFromInt"); set_name(0x009A8AD0, "BigIntegerFromBytes"); @@ -4862,6 +4885,7 @@ static import_symbols() { set_name(0x00AD8EF0, "CGxDeviceD3d__s_GxTexFormatToUse"); set_name(0x00AD8F24, "CGxDeviceD3d__s_gxAttribToD3dAttribType"); set_name(0x00AD8F40, "CGxDeviceD3d__s_filterModes"); + set_name(0x00AD8F88, "CGxDeviceD3d__s_normalizeNormals"); set_name(0x00AD90B0, "CBLPFile__s_eightBitAlphaLookup"); set_name(0x00AD90C0, "CBLPFile__s_oneBitAlphaLookup"); set_name(0x00ADBAB4, "s_rect"); @@ -4977,7 +5001,8 @@ static import_symbols() { set_name(0x00BD08A0, "CGGameUI__m_lastRegenTime"); set_name(0x00BD08F0, "s_cvDeselectOnClick"); set_name(0x00BD0914, "s_cvAutoLootDefault"); - set_name(0x00BD0A08, "s_cvPredictedPower"); + set_name(0x00BD0A04, "g_predictedHealthCVar"); + set_name(0x00BD0A08, "g_predictedPowerCVar"); set_name(0x00BD19BA, "CGBarberShop__m_initialized"); set_name(0x00BE7D8C, "CGSpellBook__m_stuckSpell"); set_name(0x00BE8EE0, "CGWorldMap__m_numLandmarks"); @@ -5119,6 +5144,7 @@ static import_symbols() { set_name(0x00C6060C, "glMaxTextureImageUnitsARB"); set_name(0x00C60614, "glExtCVA"); set_name(0x00C60618, "glVersion"); + set_name(0x00C606B0, "d3dMaterial"); set_name(0x00C606F8, "d3dLight"); set_name(0x00C60760, "isIdent"); set_name(0x00C60930, "s_blits"); diff --git a/profile/3.3.5a-windows-386/include/external/d3d9/basetexture.h b/profile/3.3.5a-windows-386/include/external/d3d9/basetexture.h new file mode 100644 index 0000000..8c01332 --- /dev/null +++ b/profile/3.3.5a-windows-386/include/external/d3d9/basetexture.h @@ -0,0 +1,36 @@ +#ifndef D3D9_BASE_TEXTURE_H +#define D3D9_BASE_TEXTURE_H + +DECLARE_STRUCT(IDirect3DBaseTexture9__v_table); +DECLARE_STRUCT(IDirect3DBaseTexture9); + +struct IDirect3DBaseTexture9__v_table { + /*** IUnknown methods ***/ + void* v_fn_0_QueryInterface; + void* v_fn_1_AddRef; + void* v_fn_2_Release; + /*** IDirect3DResource9 methods ***/ + void* v_fn_3_GetDevice; + void* v_fn_4_SetPrivateData; + void* v_fn_5_GetPrivateData; + void* v_fn_6_FreePrivateData; + void* v_fn_7_SetPriority; + void* v_fn_8_GetPriority; + void* v_fn_9_PreLoad; + void* v_fn_10_GetType; + /*** IDirect3DBaseTexture9 methods ***/ + void* v_fn_11_SetLOD; + void* v_fn_12_GetLOD; + void* v_fn_13_GetLevelCount; + void* v_fn_14_SetAutoGenFilterType; + void* v_fn_15_GetAutoGenFilterType; + void* v_fn_16_GenerateMipSubLevels; +}; + +struct IDirect3DBaseTexture9 { + IDirect3DBaseTexture9__v_table* v_table; +}; + +typedef IDirect3DBaseTexture9* LPDIRECT3DBASETEXTURE9; + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/include/external/d3d9/d3d9.h b/profile/3.3.5a-windows-386/include/external/d3d9/d3d9.h index 1e2aae5..a1e7a17 100644 --- a/profile/3.3.5a-windows-386/include/external/d3d9/d3d9.h +++ b/profile/3.3.5a-windows-386/include/external/d3d9/d3d9.h @@ -1,4 +1,5 @@ #include "external/d3d9/adapteridentifier.h" +#include "external/d3d9/basetexture.h" #include "external/d3d9/caps.h" #include "external/d3d9/colorvalue.h" #include "external/d3d9/cubemapfaces.h" @@ -15,6 +16,7 @@ #include "external/d3d9/light.h" #include "external/d3d9/lighttype.h" #include "external/d3d9/lockedrect.h" +#include "external/d3d9/material.h" #include "external/d3d9/pixelshader.h" #include "external/d3d9/pool.h" #include "external/d3d9/presentparameters.h" diff --git a/profile/3.3.5a-windows-386/include/external/d3d9/material.h b/profile/3.3.5a-windows-386/include/external/d3d9/material.h new file mode 100644 index 0000000..3578e3a --- /dev/null +++ b/profile/3.3.5a-windows-386/include/external/d3d9/material.h @@ -0,0 +1,16 @@ +#ifndef D3D9_MATERIAL_H +#define D3D9_MATERIAL_H + +DECLARE_STRUCT(D3DMATERIAL9); + +#include "external/d3d9/colorvalue.h" + +struct D3DMATERIAL9 { + D3DCOLORVALUE Diffuse; + D3DCOLORVALUE Ambient; + D3DCOLORVALUE Specular; + D3DCOLORVALUE Emissive; + float Power; +}; + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/include/gx/d3d9.h b/profile/3.3.5a-windows-386/include/gx/d3d9.h index 584bd9d..23007ed 100644 --- a/profile/3.3.5a-windows-386/include/gx/d3d9.h +++ b/profile/3.3.5a-windows-386/include/gx/d3d9.h @@ -234,11 +234,11 @@ struct CGxDeviceD3d { D3DFORMAT m_devAdapterFormat; // used by CGxDeviceD3d::DeviceSetRenderTarget // IDirect3DSurface9* surface3B38; - LPDIRECT3DSURFACE9 m_defDepthStencilSurface; + LPDIRECT3DSURFACE9 m_defDepthStencilSurface; // OG name in 6.0.2? LPDIRECT3DSURFACE9 m_defColorSurface; LPDIRECT3DSURFACE9 m_defDepthSurface; // used in DeviceReadPixels - LPDIRECT3DSURFACE9 surface3B44; // m_backBufferSurface? + LPDIRECT3DSURFACE9 surface3B44; // m_defBBSurface? also potential OG name in 6.0.2: !m_defBBView LPDIRECT3DQUERY9 m_eventQuery; // UC m_queryEvent? m_eventQuery? int32_t m_hwCursorDirty; LPDIRECT3DTEXTURE9 m_hwCursorTexture; 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 3422b95..f9d0219 100644 --- a/profile/3.3.5a-windows-386/include/gx/device.h +++ b/profile/3.3.5a-windows-386/include/gx/device.h @@ -213,7 +213,7 @@ struct CGxDevice__v_table { void* v_fn_57_TexCreate; // void TexDestroy(CGxTex* texId); void* v_fn_58_TexDestroy; - // int32_t TexCopy(CGxTex* sourceTex, CGxTex* destTex, const C2iVector& pos, const C2iVector& size, uint32_t level, uint32_t plane); + // int32_t TexCopy(CGxTex* destTex, CGxTex* sourceTex, const C2iVector& pos, const C2iVector& size, uint32_t level, uint32_t plane); void* v_fn_59_TexCopy; // bool TexStretch(CGxTex* sourceTex, CGxTex* destTex, const CiRect* destRect, const CiRect* sourceRect, uint32_t level, uint32_t plane); void* v_fn_60_TexStretch; @@ -308,7 +308,7 @@ struct CGxDevice { int32_t intF5C; int32_t m_windowVisible; // set to 1 by ICursorClip - int32_t intF64; + int32_t m_windowFocus; // Incremented by CGxDevice::ScenePresent int32_t m_frameCount; // m_perfCounter? // seems to have the same place as CGxDeviceD3d::m_d3dNeedsReset (Alpha) @@ -357,13 +357,12 @@ struct CGxDevice { uint32_t m_primVertexSize; CGxBuf* m_primIndexBuf; int32_t m_primIndexDirty; - // EmergencyMem unk28C4[GxPoolTargets_Last]; + // EmergencyMem m_emergencyMem[GxPoolTargets_Last]; EmergencyMem m_emergencyMem[2]; // 0x28C4 TSFixedArray_CGxAppRenderState m_appRenderStates; TSFixedArray_CGxStateBom m_hwRenderStates; // Accessed by ITexForceRecreation - // uint32_t unk2904[3]; // 0x2904 (size 0xC) // possibly: m_textures? TSList ? - TSExplicitList_CGxTex m_textures; + TSExplicitList_CGxTex m_textures; // 0x2904 (size 0xC) CGxDevice__TextureTarget m_textureTarget[2]; TSExplicitList_CGxQuery m_queryList; // 0x2928 int32_t m_scrShotClick; // 0x2934 diff --git a/profile/3.3.5a-windows-386/include/gx/format.h b/profile/3.3.5a-windows-386/include/gx/format.h index 03d9680..34af696 100644 --- a/profile/3.3.5a-windows-386/include/gx/format.h +++ b/profile/3.3.5a-windows-386/include/gx/format.h @@ -32,8 +32,8 @@ struct CGxFormat { C2iVector size; // set by CVGxTripleBufferCallback uint32_t backBufferCount; // buffering? buffer? framebufferCount? - uint32_t sampleCount; - float sampleQuality; // UC, write at 00769693 + uint32_t multisampleCount; + float multisampleQuality; // UC, write at 00769693 CGxFormat__Format colorFormat; uint32_t refreshRate; uint32_t vsync; diff --git a/profile/3.3.5a-windows-386/include/gx/texture.h b/profile/3.3.5a-windows-386/include/gx/texture.h index ba4e02e..f70e532 100644 --- a/profile/3.3.5a-windows-386/include/gx/texture.h +++ b/profile/3.3.5a-windows-386/include/gx/texture.h @@ -12,6 +12,7 @@ STORM_TS_GROWABLE_ARRAY(HTEXTURE); typedef struct CGxTexFlags CGxTexFlags; typedef struct CGxTex CGxTex; +// !gxTex->m_flags.m_multiSampled struct CGxTexFlags { // unsigned __int32 m_filter : 3; // unsigned __int32 m_wrapU : 1; @@ -20,6 +21,8 @@ struct CGxTexFlags { // unsigned __int32 m_generateMipMaps : 1; // unsigned __int32 m_renderTarget : 1; // unsigned __int32 m_maxAnisotropy : 5; + + uint32_t f_flags; }; diff --git a/profile/3.3.5a-windows-386/include/gx/types.h b/profile/3.3.5a-windows-386/include/gx/types.h index 67ec465..ca61d0a 100644 --- a/profile/3.3.5a-windows-386/include/gx/types.h +++ b/profile/3.3.5a-windows-386/include/gx/types.h @@ -24,6 +24,7 @@ DECLARE_ENUM(EGxQueryType); DECLARE_ENUM(EGxTexCommand); DECLARE_ENUM(EGxTexFilter); DECLARE_ENUM(EGxTexFormat); +DECLARE_ENUM(EGxTexGen); DECLARE_ENUM(EGxTexTarget); DECLARE_ENUM(EGxTexWrapMode); DECLARE_ENUM(EGxXform); @@ -221,7 +222,7 @@ enum EGxRenderState { GxRs_PointScaleMin = 81, GxRs_PointScaleMax = 82, GxRs_PointSprite = 83, - GxRs_LineWidth = 84, // LineWidth? + Unk84 = 84, // LineWidth? BlendFactor? GxRs_ColorMaterial = 85, GxRenderStates_Last = 86 }; @@ -273,7 +274,7 @@ enum EGxTexCommand { GxTex_Lock = 0, GxTex_Latch = 1, GxTex_Unlock = 2, - GxTex_3 = 3, + GxTex_3 = 3, // GxTexCommands_Last = 4 }; @@ -304,6 +305,17 @@ enum EGxTexFormat { GxTexFormats_Last = 0xD, }; +enum EGxTexGen { + GxTexGen_Disable = 0x0, + GxTexGen_Object = 0x1, + GxTexGen_World = 0x2, + GxTexGen_View = 0x3, + GxTexGen_ViewReflection = 0x4, + GxTexGen_ViewNormal = 0x5, + GxTexGen_SphereMap = 0x6, + GxTexGens_Last = 0x7, +}; + enum EGxTexTarget { GxTex_2d = 0x0, GxTex_CubeMap = 0x1, diff --git a/profile/3.3.5a-windows-386/include/main.h b/profile/3.3.5a-windows-386/include/main.h index 24d1b3d..f18fca1 100644 --- a/profile/3.3.5a-windows-386/include/main.h +++ b/profile/3.3.5a-windows-386/include/main.h @@ -78,8 +78,12 @@ #include "m2/shared.h" #include "m2/types.h" +#include "net/message.h" + #include "nvapi/nvapi.h" +#include "object/object.h" + #include "os/processorfeatures.h" #include "os/timemanager.h" diff --git a/profile/3.3.5a-windows-386/include/net/message.h b/profile/3.3.5a-windows-386/include/net/message.h new file mode 100644 index 0000000..005a90e --- /dev/null +++ b/profile/3.3.5a-windows-386/include/net/message.h @@ -0,0 +1,1101 @@ +#ifndef NET_MESSAGE_H +#define NET_MESSAGE_H + +DECLARE_ENUM(NETMESSAGE); + +enum NETMESSAGE { + MSG_NULL_ACTION = 0x0000, + CMSG_BOOTME = 0x0001, + CMSG_DBLOOKUP = 0x0002, + SMSG_DBLOOKUP = 0x0003, + CMSG_QUERY_OBJECT_POSITION = 0x0004, + SMSG_QUERY_OBJ_POSITION = 0x0005, + CMSG_QUERY_OBJECT_ROTATION = 0x0006, + SMSG_QUERY_OBJ_ROTATION = 0x0007, + CMSG_WORLD_TELEPORT = 0x0008, + CMSG_TELEPORT_TO_UNIT = 0x0009, + CMSG_ZONE_MAP = 0x000A, + SMSG_ZONE_MAP = 0x000B, + CMSG_DEBUG_CHANGECELLZONE = 0x000C, + CMSG_MOVE_CHARACTER_CHEAT = 0x000D, + SMSG_MOVE_CHARACTER_CHEAT = 0x000E, + CMSG_RECHARGE = 0x000F, + CMSG_LEARN_SPELL = 0x0010, + CMSG_CREATEMONSTER = 0x0011, + CMSG_DESTROYMONSTER = 0x0012, + CMSG_CREATEITEM = 0x0013, + CMSG_CREATEGAMEOBJECT = 0x0014, + SMSG_CHECK_FOR_BOTS = 0x0015, + CMSG_MAKEMONSTERATTACKGUID = 0x0016, + CMSG_BOT_DETECTED2 = 0x0017, + CMSG_FORCEACTION = 0x0018, + CMSG_FORCEACTIONONOTHER = 0x0019, + CMSG_FORCEACTIONSHOW = 0x001A, + SMSG_FORCEACTIONSHOW = 0x001B, + CMSG_PETGODMODE = 0x001C, + SMSG_PETGODMODE = 0x001D, + SMSG_REFER_A_FRIEND_EXPIRED = 0x001E, + CMSG_WEATHER_SPEED_CHEAT = 0x001F, + CMSG_UNDRESSPLAYER = 0x0020, + CMSG_BEASTMASTER = 0x0021, + CMSG_GODMODE = 0x0022, + SMSG_GOD_MODE = 0x0023, + CMSG_CHEAT_SETMONEY = 0x0024, + CMSG_LEVEL_CHEAT = 0x0025, + CMSG_PET_LEVEL_CHEAT = 0x0026, + CMSG_SET_WORLDSTATE = 0x0027, + CMSG_COOLDOWN_CHEAT = 0x0028, + CMSG_USE_SKILL_CHEAT = 0x0029, + CMSG_FLAG_QUEST = 0x002A, + CMSG_FLAG_QUEST_FINISH = 0x002B, + CMSG_CLEAR_QUEST = 0x002C, + CMSG_SEND_EVENT = 0x002D, + CMSG_DEBUG_AISTATE = 0x002E, + SMSG_DEBUG_AISTATE = 0x002F, + CMSG_DISABLE_PVP_CHEAT = 0x0030, + CMSG_ADVANCE_SPAWN_TIME = 0x0031, + SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 0x0032, + CMSG_AUTH_SRP6_BEGIN = 0x0033, + CMSG_AUTH_SRP6_PROOF = 0x0034, + CMSG_AUTH_SRP6_RECODE = 0x0035, + CMSG_CREATE_CHARACTER = 0x0036, + CMSG_ENUM_CHARACTERS = 0x0037, + CMSG_CHAR_DELETE = 0x0038, + SMSG_AUTH_SRP6_RESPONSE = 0x0039, + SMSG_CREATE_CHAR = 0x003A, + SMSG_ENUM_CHARACTERS_RESULT = 0x003B, + SMSG_DELETE_CHAR = 0x003C, + CMSG_PLAYER_LOGIN = 0x003D, + SMSG_NEW_WORLD = 0x003E, + SMSG_TRANSFER_PENDING = 0x003F, + SMSG_TRANSFER_ABORTED = 0x0040, + SMSG_CHARACTER_LOGIN_FAILED = 0x0041, + SMSG_LOGIN_SET_TIME_SPEED = 0x0042, + SMSG_GAME_TIME_UPDATE = 0x0043, + CMSG_GAMETIME_SET = 0x0044, + SMSG_GAME_TIME_SET = 0x0045, + CMSG_GAMESPEED_SET = 0x0046, + SMSG_GAME_SPEED_SET = 0x0047, + CMSG_SERVERTIME = 0x0048, + SMSG_SERVERTIME = 0x0049, + CMSG_PLAYER_LOGOUT = 0x004A, + CMSG_LOGOUT_REQUEST = 0x004B, + SMSG_LOGOUT_RESPONSE = 0x004C, + SMSG_LOGOUT_COMPLETE = 0x004D, + CMSG_LOGOUT_CANCEL = 0x004E, + SMSG_LOGOUT_CANCEL_ACK = 0x004F, + CMSG_NAME_QUERY = 0x0050, + SMSG_QUERY_PLAYER_NAME_RESPONSE = 0x0051, + CMSG_QUERY_PET_NAME = 0x0052, + SMSG_QUERY_PET_NAME_RESPONSE = 0x0053, + CMSG_QUERY_GUILD_INFO = 0x0054, + SMSG_QUERY_GUILD_INFO_RESPONSE = 0x0055, + CMSG_ITEM_QUERY_SINGLE = 0x0056, + CMSG_ITEM_QUERY_MULTIPLE = 0x0057, + SMSG_ITEM_QUERY_SINGLE_RESPONSE = 0x0058, + SMSG_ITEM_QUERY_MULTIPLE_RESPONSE = 0x0059, + CMSG_QUERY_PAGE_TEXT = 0x005A, + SMSG_QUERY_PAGE_TEXT_RESPONSE = 0x005B, + CMSG_QUERY_QUEST_INFO = 0x005C, + SMSG_QUERY_QUEST_INFO_RESPONSE = 0x005D, + CMSG_QUERY_GAME_OBJECT = 0x005E, + SMSG_QUERY_GAME_OBJECT_RESPONSE = 0x005F, + CMSG_QUERY_CREATURE = 0x0060, + SMSG_QUERY_CREATURE_RESPONSE = 0x0061, + CMSG_WHO = 0x0062, + SMSG_WHO = 0x0063, + CMSG_WHO_IS = 0x0064, + SMSG_WHO_IS = 0x0065, + CMSG_CONTACT_LIST = 0x0066, + SMSG_CONTACT_LIST = 0x0067, + SMSG_FRIEND_STATUS = 0x0068, + CMSG_ADD_FRIEND = 0x0069, + CMSG_DEL_FRIEND = 0x006A, + CMSG_SET_CONTACT_NOTES = 0x006B, + CMSG_ADD_IGNORE = 0x006C, + CMSG_DEL_IGNORE = 0x006D, + CMSG_GROUP_INVITE = 0x006E, + SMSG_GROUP_INVITE = 0x006F, + CMSG_GROUP_CANCEL = 0x0070, + SMSG_GROUP_CANCEL = 0x0071, + CMSG_GROUP_ACCEPT = 0x0072, + CMSG_GROUP_DECLINE = 0x0073, + SMSG_GROUP_DECLINE = 0x0074, + CMSG_GROUP_UNINVITE = 0x0075, + CMSG_GROUP_UNINVITE_GUID = 0x0076, + SMSG_GROUP_UNINVITE = 0x0077, + CMSG_GROUP_SET_LEADER = 0x0078, + SMSG_GROUP_SET_LEADER = 0x0079, + CMSG_SET_LOOT_METHOD = 0x007A, + CMSG_GROUP_DISBAND = 0x007B, + SMSG_GROUP_DESTROYED = 0x007C, + SMSG_GROUP_LIST = 0x007D, + SMSG_PARTY_MEMBER_STATS = 0x007E, + SMSG_PARTY_COMMAND_RESULT = 0x007F, + UMSG_UPDATE_GROUP_MEMBERS = 0x0080, + CMSG_GUILD_CREATE = 0x0081, + CMSG_GUILD_INVITE = 0x0082, + SMSG_GUILD_INVITE = 0x0083, + CMSG_GUILD_ACCEPT = 0x0084, + CMSG_GUILD_DECLINE_INVITATION = 0x0085, + SMSG_GUILD_DECLINE = 0x0086, + CMSG_GUILD_INFO = 0x0087, + SMSG_GUILD_INFO = 0x0088, + CMSG_GUILD_GET_ROSTER = 0x0089, + SMSG_GUILD_ROSTER = 0x008A, + CMSG_GUILD_PROMOTE_MEMBER = 0x008B, + CMSG_GUILD_DEMOTE_MEMBER = 0x008C, + CMSG_GUILD_LEAVE = 0x008D, + CMSG_GUILD_OFFICER_REMOVE_MEMBER = 0x008E, + CMSG_GUILD_DISBAND = 0x008F, + CMSG_GUILD_LEADER = 0x0090, + CMSG_GUILD_MOTD = 0x0091, + SMSG_GUILD_EVENT = 0x0092, + SMSG_GUILD_COMMAND_RESULT = 0x0093, + UMSG_UPDATE_GUILD = 0x0094, + CMSG_MESSAGECHAT = 0x0095, + SMSG_CHAT = 0x0096, + CMSG_CHAT_JOIN_CHANNEL = 0x0097, + CMSG_CHAT_LEAVE_CHANNEL = 0x0098, + SMSG_CHANNEL_NOTIFY = 0x0099, + CMSG_CHAT_CHANNEL_LIST = 0x009A, + SMSG_CHANNEL_LIST = 0x009B, + CMSG_CHAT_CHANNEL_PASSWORD = 0x009C, + CMSG_CHAT_CHANNEL_SET_OWNER = 0x009D, + CMSG_CHAT_CHANNEL_OWNER = 0x009E, + CMSG_CHAT_CHANNEL_MODERATOR = 0x009F, + CMSG_CHAT_CHANNEL_UNMODERATOR = 0x00A0, + CMSG_CHAT_CHANNEL_MUTE = 0x00A1, + CMSG_CHAT_CHANNEL_UNMUTE = 0x00A2, + CMSG_CHAT_CHANNEL_INVITE = 0x00A3, + CMSG_CHAT_CHANNEL_KICK = 0x00A4, + CMSG_CHAT_CHANNEL_BAN = 0x00A5, + CMSG_CHAT_CHANNEL_UNBAN = 0x00A6, + CMSG_CHAT_CHANNEL_ANNOUNCEMENTS = 0x00A7, + CMSG_CHAT_CHANNEL_MODERATE = 0x00A8, + SMSG_UPDATE_OBJECT = 0x00A9, + SMSG_DESTROY_OBJECT = 0x00AA, + CMSG_USE_ITEM = 0x00AB, + CMSG_OPEN_ITEM = 0x00AC, + CMSG_READ_ITEM = 0x00AD, + SMSG_READ_ITEM_RESULT_OK = 0x00AE, + SMSG_READ_ITEM_RESULT_FAILED = 0x00AF, + SMSG_ITEM_COOLDOWN = 0x00B0, + CMSG_GAME_OBJ_USE = 0x00B1, + CMSG_DESTROY_ITEMS = 0x00B2, + SMSG_GAME_OBJECT_CUSTOM_ANIM = 0x00B3, + CMSG_AREA_TRIGGER = 0x00B4, + MSG_MOVE_START_FORWARD = 0x00B5, + MSG_MOVE_START_BACKWARD = 0x00B6, + MSG_MOVE_STOP = 0x00B7, + MSG_MOVE_START_STRAFE_LEFT = 0x00B8, + MSG_MOVE_START_STRAFE_RIGHT = 0x00B9, + MSG_MOVE_STOP_STRAFE = 0x00BA, + MSG_MOVE_JUMP = 0x00BB, + MSG_MOVE_START_TURN_LEFT = 0x00BC, + MSG_MOVE_START_TURN_RIGHT = 0x00BD, + MSG_MOVE_STOP_TURN = 0x00BE, + MSG_MOVE_START_PITCH_UP = 0x00BF, + MSG_MOVE_START_PITCH_DOWN = 0x00C0, + MSG_MOVE_STOP_PITCH = 0x00C1, + MSG_MOVE_SET_RUN_MODE = 0x00C2, + MSG_MOVE_SET_WALK_MODE = 0x00C3, + MSG_MOVE_TOGGLE_LOGGING = 0x00C4, + MSG_MOVE_TELEPORT = 0x00C5, + MSG_MOVE_TELEPORT_CHEAT = 0x00C6, + MSG_MOVE_TELEPORT_ACK = 0x00C7, + MSG_MOVE_TOGGLE_FALL_LOGGING = 0x00C8, + MSG_MOVE_FALL_LAND = 0x00C9, + MSG_MOVE_START_SWIM = 0x00CA, + MSG_MOVE_STOP_SWIM = 0x00CB, + MSG_MOVE_SET_RUN_SPEED_CHEAT = 0x00CC, + MSG_MOVE_SET_RUN_SPEED = 0x00CD, + MSG_MOVE_SET_RUN_BACK_SPEED_CHEAT = 0x00CE, + MSG_MOVE_SET_RUN_BACK_SPEED = 0x00CF, + MSG_MOVE_SET_WALK_SPEED_CHEAT = 0x00D0, + MSG_MOVE_SET_WALK_SPEED = 0x00D1, + MSG_MOVE_SET_SWIM_SPEED_CHEAT = 0x00D2, + MSG_MOVE_SET_SWIM_SPEED = 0x00D3, + MSG_MOVE_SET_SWIM_BACK_SPEED_CHEAT = 0x00D4, + MSG_MOVE_SET_SWIM_BACK_SPEED = 0x00D5, + MSG_MOVE_SET_ALL_SPEED_CHEAT = 0x00D6, + MSG_MOVE_SET_TURN_RATE_CHEAT = 0x00D7, + MSG_MOVE_SET_TURN_RATE = 0x00D8, + MSG_MOVE_TOGGLE_COLLISION_CHEAT = 0x00D9, + MSG_MOVE_SET_FACING = 0x00DA, + MSG_MOVE_SET_PITCH = 0x00DB, + MSG_MOVE_WORLDPORT_ACK = 0x00DC, + SMSG_ON_MONSTER_MOVE = 0x00DD, + SMSG_MOVE_SET_WATER_WALK = 0x00DE, + SMSG_MOVE_SET_LAND_WALK = 0x00DF, + SMSG_FORCE_RUN_SPEED_CHANGE = 0x00E2, + SMSG_FORCE_RUN_BACK_SPEED_CHANGE = 0x00E4, + SMSG_FORCE_SWIM_SPEED_CHANGE = 0x00E6, + SMSG_FORCE_MOVE_ROOT = 0x00E8, + SMSG_FORCE_MOVE_UNROOT = 0x00EA, + SMSG_MOVE_KNOCK_BACK = 0x00EF, + SMSG_MOVE_SET_FEATHER_FALL = 0x00F2, + SMSG_MOVE_SET_NORMAL_FALL = 0x00F3, + SMSG_MOVE_SET_HOVERING = 0x00F4, + SMSG_MOVE_UNSET_HOVERING = 0x00F5, + SMSG_TRIGGER_CINEMATIC = 0x00FA, + SMSG_TUTORIAL_FLAGS = 0x00FD, + SMSG_EMOTE = 0x0103, + SMSG_TEXT_EMOTE = 0x0105, + SMSG_INVENTORY_CHANGE_FAILURE = 0x0112, + SMSG_OPEN_CONTAINER = 0x0113, + SMSG_INSPECT_RESULTS_UPDATE = 0x0115, + SMSG_TRADE_STATUS = 0x0120, + SMSG_TRADE_STATUS_EXTENDED = 0x0121, + SMSG_INITIALIZE_FACTIONS = 0x0122, + SMSG_SET_FACTION_VISIBLE = 0x0123, + SMSG_SET_FACTION_STANDING = 0x0124, + SMSG_SET_PROFICIENCY = 0x0127, + SMSG_UPDATE_ACTION_BUTTONS = 0x0129, + SMSG_SEND_KNOWN_SPELLS = 0x012A, + SMSG_LEARNED_SPELL = 0x012B, + SMSG_SUPERCEDED_SPELLS = 0x012C, + SMSG_CAST_FAILED = 0x0130, + SMSG_SPELL_START = 0x0131, + SMSG_SPELL_GO = 0x0132, + SMSG_SPELL_FAILURE = 0x0133, + SMSG_SPELL_COOLDOWN = 0x0134, + SMSG_COOLDOWN_EVENT = 0x0135, + SMSG_EQUIPMENT_SET_ID = 0x0137, + SMSG_PET_CAST_FAILED = 0x0138, + SMSG_AI_REACTION = 0x013C, + SMSG_ATTACK_START = 0x0143, + SMSG_ATTACK_STOP = 0x0144, + SMSG_ATTACKSWING_NOTINRANGE = 0x0145, + SMSG_ATTACKSWING_BADFACING = 0x0146, + SMSG_INSTANCE_LOCK_WARNING_QUERY = 0x0147, + SMSG_ATTACKSWING_DEADTARGET = 0x0148, + SMSG_ATTACKSWING_CANT_ATTACK = 0x0149, + SMSG_ATTACKER_STATE_UPDATE = 0x014A, + SMSG_BATTLEFIELD_PORT_DENIED = 0x014B, + CMSG_PERFORM_ACTION_SET = 0x014C, + SMSG_RESUME_CAST_BAR = 0x014D, + SMSG_CANCEL_COMBAT = 0x014E, + SMSG_SPELL_BREAK_LOG = 0x014F, + SMSG_SPELL_HEAL_LOG = 0x0150, + SMSG_SPELL_ENERGIZE_LOG = 0x0151, + SMSG_BREAK_TARGET = 0x0152, + CMSG_SAVE_PLAYER = 0x0153, + CMSG_SETDEATHBINDPOINT = 0x0154, + SMSG_BIND_POINT_UPDATE = 0x0155, + CMSG_GETDEATHBINDZONE = 0x0156, + SMSG_BINDZONEREPLY = 0x0157, + SMSG_PLAYER_BOUND = 0x0158, + SMSG_CONTROL_UPDATE = 0x0159, + CMSG_REPOP_REQUEST = 0x015A, + SMSG_RESURRECT_REQUEST = 0x015B, + CMSG_RESURRECT_RESPONSE = 0x015C, + CMSG_LOOT_UNIT = 0x015D, + CMSG_LOOT_MONEY = 0x015E, + CMSG_LOOT_RELEASE = 0x015F, + SMSG_LOOT_RESPONSE = 0x0160, + SMSG_LOOT_RELEASE = 0x0161, + SMSG_LOOT_REMOVED = 0x0162, + SMSG_LOOT_MONEY_NOTIFY = 0x0163, + SMSG_LOOT_ITEM_NOTIFY = 0x0164, + SMSG_LOOT_CLEAR_MONEY = 0x0165, + SMSG_ITEM_PUSH_RESULT = 0x0166, + SMSG_DUEL_REQUESTED = 0x0167, + SMSG_DUEL_OUT_OF_BOUNDS = 0x0168, + SMSG_DUEL_IN_BOUNDS = 0x0169, + SMSG_DUEL_COMPLETE = 0x016A, + SMSG_DUEL_WINNER = 0x016B, + CMSG_DUEL_ACCEPTED = 0x016C, + CMSG_DUEL_CANCELLED = 0x016D, + SMSG_MOUNT_RESULT = 0x016E, + SMSG_DISMOUNT_RESULT = 0x016F, + SMSG_REMOVED_FROM_PVP_QUEUE = 0x0170, + CMSG_MOUNT_SPECIAL_ANIM = 0x0171, + SMSG_MOUNT_SPECIAL_ANIM = 0x0172, + SMSG_PET_TAME_FAILURE = 0x0173, + CMSG_PET_SET_ACTION = 0x0174, + CMSG_PET_ACTION = 0x0175, + CMSG_PET_ABANDON = 0x0176, + CMSG_PET_RENAME = 0x0177, + SMSG_PET_NAME_INVALID = 0x0178, + SMSG_PET_SPELLS_MESSAGE = 0x0179, + SMSG_PET_MODE = 0x017A, + CMSG_GOSSIP_HELLO = 0x017B, + CMSG_GOSSIP_SELECT_OPTION = 0x017C, + SMSG_GOSSIP_MESSAGE = 0x017D, + SMSG_GOSSIP_COMPLETE = 0x017E, + CMSG_QUERY_NPC_TEXT = 0x017F, + SMSG_QUERY_NPC_TEXT_RESPONSE = 0x0180, + SMSG_NPC_WONT_TALK = 0x0181, + CMSG_QUEST_GIVER_STATUS_QUERY = 0x0182, + SMSG_QUEST_GIVER_STATUS = 0x0183, + CMSG_QUEST_GIVER_HELLO = 0x0184, + SMSG_QUEST_GIVER_QUEST_LIST_MESSAGE = 0x0185, + CMSG_QUEST_GIVER_QUERY_QUEST = 0x0186, + CMSG_QUEST_GIVER_QUEST_AUTOLAUNCH = 0x0187, + SMSG_QUEST_GIVER_QUEST_DETAILS = 0x0188, + CMSG_QUEST_GIVER_ACCEPT_QUEST = 0x0189, + CMSG_QUEST_GIVER_COMPLETE_QUEST = 0x018A, + SMSG_QUEST_GIVER_REQUEST_ITEMS = 0x018B, + CMSG_QUEST_GIVER_REQUEST_REWARD = 0x018C, + SMSG_QUEST_GIVER_OFFER_REWARD_MESSAGE = 0x018D, + CMSG_QUEST_GIVER_CHOOSE_REWARD = 0x018E, + SMSG_QUEST_GIVER_INVALID_QUEST = 0x018F, + CMSG_QUEST_GIVER_CANCEL = 0x0190, + SMSG_QUEST_GIVER_QUEST_COMPLETE = 0x0191, + SMSG_QUEST_GIVER_QUEST_FAILED = 0x0192, + CMSG_QUEST_LOG_SWAP_QUEST = 0x0193, + CMSG_QUEST_LOG_REMOVE_QUEST = 0x0194, + SMSG_QUEST_LOG_FULL = 0x0195, + SMSG_QUEST_UPDATE_FAILED = 0x0196, + SMSG_QUEST_UPDATE_FAILED_TIMER = 0x0197, + SMSG_QUEST_UPDATE_COMPLETE = 0x0198, + SMSG_QUEST_UPDATE_ADD_KILL = 0x0199, + SMSG_QUEST_UPDATE_ADD_ITEM = 0x019A, + CMSG_QUEST_CONFIRM_ACCEPT = 0x019B, + SMSG_QUEST_CONFIRM_ACCEPT = 0x019C, + CMSG_PUSH_QUEST_TO_PARTY = 0x019D, + CMSG_LIST_INVENTORY = 0x019E, + SMSG_VENDOR_INVENTORY = 0x019F, + CMSG_SELL_ITEM = 0x01A0, + SMSG_SELL_ITEM = 0x01A1, + CMSG_BUY_ITEM = 0x01A2, + CMSG_BUY_ITEM_IN_SLOT = 0x01A3, + SMSG_BUY_SUCCEEDED = 0x01A4, + SMSG_BUY_FAILED = 0x01A5, + CMSG_TAXICLEARALLNODES = 0x01A6, + CMSG_TAXIENABLEALLNODES = 0x01A7, + CMSG_TAXISHOWNODES = 0x01A8, + SMSG_SHOW_TAXI_NODES = 0x01A9, + CMSG_TAXI_NODE_STATUS_QUERY = 0x01AA, + SMSG_TAXI_NODE_STATUS = 0x01AB, + CMSG_TAXI_QUERY_AVAILABLE_NODES = 0x01AC, + CMSG_ACTIVATE_TAXI = 0x01AD, + SMSG_ACTIVATE_TAXI_REPLY = 0x01AE, + SMSG_NEW_TAXI_PATH = 0x01AF, + CMSG_TRAINER_LIST = 0x01B0, + SMSG_TRAINER_LIST = 0x01B1, + CMSG_TRAINER_BUY_SPELL = 0x01B2, + SMSG_TRAINER_BUY_SUCCEEDED = 0x01B3, + SMSG_TRAINER_BUY_FAILED = 0x01B4, + CMSG_BINDER_ACTIVATE = 0x01B5, + SMSG_PLAYERBINDERROR = 0x01B6, + CMSG_BANKER_ACTIVATE = 0x01B7, + SMSG_SHOW_BANK = 0x01B8, + CMSG_BUY_BANK_SLOT = 0x01B9, + SMSG_BUY_BANK_SLOT_RESULT = 0x01BA, + CMSG_PETITION_SHOW_LIST = 0x01BB, + SMSG_PETITION_SHOW_LIST = 0x01BC, + CMSG_PETITION_BUY = 0x01BD, + CMSG_PETITION_SHOW_SIGNATURES = 0x01BE, + SMSG_PETITION_SHOW_SIGNATURES = 0x01BF, + CMSG_PETITION_SIGN = 0x01C0, + SMSG_PETITION_SIGN_RESULTS = 0x01C1, + CMSG_OFFER_PETITION = 0x01C3, + CMSG_TURN_IN_PETITION = 0x01C4, + SMSG_TURN_IN_PETITION_RESULT = 0x01C5, + CMSG_PETITION_QUERY = 0x01C6, + SMSG_PETITION_QUERY_RESPONSE = 0x01C7, + SMSG_FISH_NOT_HOOKED = 0x01C8, + SMSG_FISH_ESCAPED = 0x01C9, + CMSG_BUG = 0x01CA, + SMSG_NOTIFICATION = 0x01CB, + CMSG_REQUEST_PLAYED_TIME = 0x01CC, + SMSG_PLAYED_TIME = 0x01CD, + CMSG_QUERY_TIME = 0x01CE, + SMSG_QUERY_TIME_RESPONSE = 0x01CF, + SMSG_LOG_XP_GAIN = 0x01D0, + SMSG_AURACASTLOG = 0x01D1, + CMSG_RECLAIM_CORPSE = 0x01D2, + CMSG_WRAP_ITEM = 0x01D3, + SMSG_LEVEL_UP_INFO = 0x01D4, + SMSG_RESISTLOG = 0x01D6, + SMSG_ENCHANTMENT_LOG = 0x01D7, + CMSG_SET_SKILL_CHEAT = 0x01D8, + SMSG_START_MIRROR_TIMER = 0x01D9, + SMSG_PAUSE_MIRROR_TIMER = 0x01DA, + SMSG_STOP_MIRROR_TIMER = 0x01DB, + CMSG_PING = 0x01DC, + SMSG_PONG = 0x01DD, + SMSG_CLEAR_COOLDOWN = 0x01DE, + SMSG_PAGE_TEXT = 0x01DF, + CMSG_SET_SHEATHED = 0x01E0, + SMSG_COOLDOWN_CHEAT = 0x01E1, + SMSG_SPELL_DELAYED = 0x01E2, + CMSG_QUEST_POI_QUERY = 0x01E3, + SMSG_QUEST_POI_QUERY_RESPONSE = 0x01E4, + CMSG_GHOST = 0x01E5, + CMSG_GM_INVIS = 0x01E6, + SMSG_INVALID_PROMOTION_CODE = 0x01E7, + SMSG_ITEM_TIME_UPDATE = 0x01EA, + SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x01EB, + SMSG_AUTH_CHALLENGE = 0x01EC, + CMSG_AUTH_SESSION = 0x01ED, + SMSG_AUTH_RESPONSE = 0x01EE, + CMSG_PET_CAST_SPELL = 0x01F0, + SMSG_PLAY_SPELL_VISUAL = 0x01F3, + CMSG_ZONEUPDATE = 0x01F4, + SMSG_PARTY_KILL_LOG = 0x01F5, + SMSG_COMPRESSED_UPDATE_OBJECT = 0x01F6, + SMSG_PLAY_SPELL_IMPACT = 0x01F7, + SMSG_EXPLORATION_EXPERIENCE = 0x01F8, + CMSG_GM_SET_SECURITY_GROUP = 0x01F9, + CMSG_GM_NUKE = 0x01FA, + SMSG_ENVIRONMENTAL_DAMAGE_LOG = 0x01FC, + CMSG_CHANGEPLAYER_DIFFICULTY = 0x01FD, + SMSG_RWHOIS = 0x01FE, + SMSG_LFG_PLAYER_REWARD = 0x01FF, + SMSG_LFG_TELEPORT_DENIED = 0x0200, + CMSG_UNLEARN_SPELL = 0x0201, + CMSG_UNLEARN_SKILL = 0x0202, + SMSG_UNLEARNED_SPELLS = 0x0203, + CMSG_DECHARGE = 0x0204, + CMSG_GM_TICKET_CREATE = 0x0205, + SMSG_GM_TICKET_CREATE = 0x0206, + CMSG_GM_TICKET_UPDATE_TEXT = 0x0207, + SMSG_GM_TICKET_UPDATE_TEXT = 0x0208, + SMSG_ACCOUNT_DATA_TIMES = 0x0209, + CMSG_REQUEST_ACCOUNT_DATA = 0x020A, + CMSG_UPDATE_ACCOUNT_DATA = 0x020B, + SMSG_UPDATE_ACCOUNT_DATA = 0x020C, + SMSG_CLEAR_FAR_SIGHT_IMMEDIATE = 0x020D, + SMSG_CHANGE_PLAYER_DIFFICULTY_RESULT = 0x020E, + CMSG_GM_TEACH = 0x020F, + CMSG_GM_CREATE_ITEM_TARGET = 0x0210, + CMSG_GM_TICKET_GET_TICKET = 0x0211, + SMSG_GM_TICKET_GET_TICKET = 0x0212, + CMSG_UNLEARN_TALENTS = 0x0213, + SMSG_UPDATE_INSTANCE_ENCOUNTER_UNIT = 0x0214, + SMSG_GAMEOBJECT_DESPAWN_ANIM = 0x0215, + CMSG_GM_TICKET_DELETE_TICKET = 0x0217, + SMSG_GM_TICKET_DELETE_TICKET = 0x0218, + SMSG_CHAT_WRONG_FACTION = 0x0219, + CMSG_GM_TICKET_GET_SYSTEM_STATUS = 0x021A, + SMSG_GM_TICKET_GET_SYSTEM_STATUS = 0x021B, + CMSG_SPIRIT_HEALER_ACTIVATE = 0x021C, + CMSG_SET_STAT_CHEAT = 0x021D, + SMSG_QUEST_FORCE_REMOVED = 0x021E, + CMSG_SKILL_BUY_STEP = 0x021F, + CMSG_SKILL_BUY_RANK = 0x0220, + CMSG_XP_CHEAT = 0x0221, + SMSG_SPIRIT_HEALER_CONFIRM = 0x0222, + CMSG_CHARACTER_POINT_CHEAT = 0x0223, + SMSG_GOSSIP_POI = 0x0224, + CMSG_CHAT_REPORT_IGNORED = 0x0225, + CMSG_GM_VISION = 0x0226, + CMSG_SERVER_COMMAND = 0x0227, + CMSG_GM_SILENCE = 0x0228, + CMSG_GM_REVEALTO = 0x0229, + CMSG_GM_RESURRECT = 0x022A, + CMSG_GM_SUMMONMOB = 0x022B, + CMSG_GM_MOVECORPSE = 0x022C, + CMSG_GM_FREEZE = 0x022D, + CMSG_GM_UBERINVIS = 0x022E, + CMSG_GM_REQUEST_PLAYER_INFO = 0x022F, + SMSG_GM_PLAYER_INFO = 0x0230, + CMSG_GUILD_SET_RANK_PERMISSIONS = 0x0231, + CMSG_GUILD_ADD_RANK = 0x0232, + CMSG_GUILD_DELETE_RANK = 0x0233, + CMSG_GUILD_SET_PUBLIC_NOTE = 0x0234, + CMSG_GUILD_SET_OFFICER_NOTE = 0x0235, + SMSG_LOGIN_VERIFY_WORLD = 0x0236, + CMSG_CLEAR_EXPLORATION = 0x0237, + CMSG_SEND_MAIL = 0x0238, + SMSG_MAIL_COMMAND_RESULT = 0x0239, + CMSG_MAIL_GET_LIST = 0x023A, + SMSG_MAIL_LIST_RESULT = 0x023B, + CMSG_BATTLEFIELD_LIST = 0x023C, + SMSG_BATTLEFIELD_LIST = 0x023D, + CMSG_BATTLEFIELD_JOIN = 0x023E, + SMSG_FORCE_SET_VEHICLE_REC_ID = 0x023F, + CMSG_SET_VEHICLE_REC_ID_ACK = 0x0240, + CMSG_TAXICLEARNODE = 0x0241, + CMSG_TAXIENABLENODE = 0x0242, + CMSG_ITEM_TEXT_QUERY = 0x0243, + SMSG_QUERY_ITEM_TEXT_RESPONSE = 0x0244, + CMSG_MAIL_TAKE_MONEY = 0x0245, + CMSG_MAIL_TAKE_ITEM = 0x0246, + CMSG_MAIL_MARK_AS_READ = 0x0247, + CMSG_MAIL_RETURN_TO_SENDER = 0x0248, + CMSG_MAIL_DELETE = 0x0249, + CMSG_MAIL_CREATE_TEXT_ITEM = 0x024A, + SMSG_SPELL_MISS_LOG = 0x024B, + SMSG_SPELL_EXECUTE_LOG = 0x024C, + SMSG_DEBUGAURAPROC = 0x024D, + SMSG_SPELL_PERIODIC_AURA_LOG = 0x024E, + SMSG_SPELL_DAMAGE_SHIELD = 0x024F, + SMSG_SPELL_NON_MELEE_DAMAGE_LOG = 0x0250, + CMSG_LEARN_TALENT = 0x0251, + SMSG_RESURRECT_FAILED = 0x0252, + CMSG_TOGGLE_PVP = 0x0253, + SMSG_ZONE_UNDER_ATTACK = 0x0254, + CMSG_AUCTION_SELL_ITEM = 0x0256, + CMSG_AUCTION_REMOVE_ITEM = 0x0257, + CMSG_AUCTION_LIST_ITEMS = 0x0258, + CMSG_AUCTION_LIST_OWNER_ITEMS = 0x0259, + CMSG_AUCTION_PLACE_BID = 0x025A, + SMSG_AUCTION_COMMAND_RESULT = 0x025B, + SMSG_AUCTION_LIST_RESULT = 0x025C, + SMSG_AUCTION_LIST_OWNER_ITEMS_RESULT = 0x025D, + SMSG_AUCTION_BIDDER_NOTIFICATION = 0x025E, + SMSG_AUCTION_OWNER_NOTIFICATION = 0x025F, + SMSG_PROC_RESIST = 0x0260, + SMSG_COMBAT_EVENT_FAILED = 0x0261, + SMSG_DISPEL_FAILED = 0x0262, + SMSG_SPELL_OR_DAMAGE_IMMUNE = 0x0263, + CMSG_AUCTION_LIST_BIDDER_ITEMS = 0x0264, + SMSG_AUCTION_LIST_BIDDER_ITEMS_RESULT = 0x0265, + SMSG_SET_FLAT_SPELL_MODIFIER = 0x0266, + SMSG_SET_PCT_SPELL_MODIFIER = 0x0267, + CMSG_SET_AMMO = 0x0268, + SMSG_CORPSE_RECLAIM_DELAY = 0x0269, + CMSG_SET_ACTIVE_MOVER = 0x026A, + CMSG_PET_CANCEL_AURA = 0x026B, + CMSG_PLAYER_AI_CHEAT = 0x026C, + CMSG_CANCEL_AUTO_REPEAT_SPELL = 0x026D, + CMSG_STABLE_PET = 0x0270, + CMSG_UNSTABLE_PET = 0x0271, + CMSG_BUY_STABLE_SLOT = 0x0272, + SMSG_STABLE_RESULT = 0x0273, + CMSG_STABLE_REVIVE_PET = 0x0274, + CMSG_STABLE_SWAP_PET = 0x0275, + SMSG_PLAY_MUSIC = 0x0277, + SMSG_PLAY_OBJECT_SOUND = 0x0278, + CMSG_REQUEST_PET_INFO = 0x0279, + CMSG_FAR_SIGHT = 0x027A, + SMSG_SPELL_DISPELL_LOG = 0x027B, + SMSG_DAMAGE_CALC_LOG = 0x027C, + CMSG_ENABLE_DAMAGE_LOG = 0x027D, + CMSG_GROUP_CHANGE_SUB_GROUP = 0x027E, + CMSG_REQUEST_PARTY_MEMBER_STATS = 0x027F, + CMSG_GROUP_SWAP_SUB_GROUP = 0x0280, + CMSG_RESET_FACTION_CHEAT = 0x0281, + CMSG_AUTOSTORE_BANK_ITEM = 0x0282, + CMSG_AUTOBANK_ITEM = 0x0283, + SMSG_RECEIVED_MAIL = 0x0285, + SMSG_RAID_GROUP_ONLY = 0x0286, + CMSG_SET_DURABILITY_CHEAT = 0x0287, + CMSG_SET_PVP_RANK_CHEAT = 0x0288, + CMSG_ADD_PVP_MEDAL_CHEAT = 0x0289, + CMSG_DEL_PVP_MEDAL_CHEAT = 0x028A, + CMSG_SET_PVP_TITLE = 0x028B, + SMSG_PVP_CREDIT = 0x028C, + SMSG_AUCTION_REMOVED_NOTIFICATION = 0x028D, + CMSG_GROUP_RAID_CONVERT = 0x028E, + CMSG_SET_ASSISTANT_LEADER = 0x028F, + CMSG_BUY_BACK_ITEM = 0x0290, + SMSG_CHAT_SERVER_MESSAGE = 0x0291, + CMSG_SET_SAVED_INSTANCE_EXTEND = 0x0292, + SMSG_LFG_OFFER_CONTINUE = 0x0293, + CMSG_TEST_DROP_RATE = 0x0294, + SMSG_TEST_DROP_RATE_RESULT = 0x0295, + CMSG_DF_GET_JOIN_STATUS = 0x0296, + SMSG_SHOW_MAILBOX = 0x0297, + SMSG_RESET_RANGED_COMBAT_TIMER = 0x0298, + SMSG_CHAT_NOT_IN_PARTY = 0x0299, + CMSG_GMTICKETSYSTEM_TOGGLE = 0x029A, + CMSG_CANCEL_GROWTH_AURA = 0x029B, + SMSG_CANCEL_AUTO_REPEAT = 0x029C, + SMSG_STAND_STATE_UPDATE = 0x029D, + SMSG_LOOT_ALL_PASSED = 0x029E, + SMSG_LOOT_ROLL_WON = 0x029F, + CMSG_LOOT_ROLL = 0x02A0, + SMSG_LOOT_START_ROLL = 0x02A1, + SMSG_LOOT_ROLL = 0x02A2, + CMSG_LOOT_MASTER_GIVE = 0x02A3, + SMSG_LOOT_MASTER_LIST = 0x02A4, + SMSG_SET_FORCED_REACTIONS = 0x02A5, + SMSG_SPELL_FAILED_OTHER = 0x02A6, + SMSG_GAME_OBJECT_RESET_STATE = 0x02A7, + CMSG_REPAIR_ITEM = 0x02A8, + SMSG_CHAT_PLAYER_NOTFOUND = 0x02A9, + SMSG_SUMMON_REQUEST = 0x02AB, + CMSG_SUMMON_RESPONSE = 0x02AC, + SMSG_MONSTER_MOVE_TRANSPORT = 0x02AE, + SMSG_PET_BROKEN = 0x02AF, + CMSG_SERVER_BROADCAST = 0x02B2, + CMSG_SELF_RES = 0x02B3, + SMSG_FEIGN_DEATH_RESISTED = 0x02B4, + CMSG_RUN_SCRIPT = 0x02B5, + SMSG_SCRIPT_MESSAGE = 0x02B6, + SMSG_DUEL_COUNTDOWN = 0x02B7, + SMSG_AREA_TRIGGER_MESSAGE = 0x02B8, + CMSG_SHOWING_HELM = 0x02B9, + CMSG_SHOWING_CLOAK = 0x02BA, + SMSG_LFG_ROLE_CHOSEN = 0x02BB, + SMSG_PLAYER_SKINNED = 0x02BC, + SMSG_DURABILITY_DAMAGE_DEATH = 0x02BD, + CMSG_SET_EXPLORATION = 0x02BE, + CMSG_SET_ACTION_BAR_TOGGLES = 0x02BF, + SMSG_INIT_WORLD_STATES = 0x02C2, + SMSG_UPDATE_WORLD_STATE = 0x02C3, + CMSG_ITEM_NAME_QUERY = 0x02C4, + SMSG_ITEM_NAME_QUERY_RESPONSE = 0x02C5, + SMSG_PET_ACTION_FEEDBACK = 0x02C6, + CMSG_CHARACTER_RENAME_REQUEST = 0x02C7, + SMSG_CHARACTER_RENAME_RESULT = 0x02C8, + CMSG_MOVE_SPLINE_DONE = 0x02C9, + CMSG_MOVE_FALL_RESET = 0x02CA, + SMSG_INSTANCE_SAVE_CREATED = 0x02CB, + SMSG_RAID_INSTANCE_INFO = 0x02CC, + CMSG_REQUEST_RAID_INFO = 0x02CD, + CMSG_MOVE_TIME_SKIPPED = 0x02CE, + CMSG_MOVE_FEATHER_FALL_ACK = 0x02CF, + CMSG_MOVE_WATER_WALK_ACK = 0x02D0, + CMSG_MOVE_NOT_ACTIVE_MOVER = 0x02D1, + SMSG_PLAY_SOUND = 0x02D2, + CMSG_BATTLEFIELD_STATUS = 0x02D3, + SMSG_BATTLEFIELD_STATUS = 0x02D4, + CMSG_BATTLEGROUND_PORT_AND_LEAVE = 0x02D5, + CMSG_BATTLEMASTER_HELLO = 0x02D7, + CMSG_MOVE_START_SWIM_CHEAT = 0x02D8, + CMSG_MOVE_STOP_SWIM_CHEAT = 0x02D9, + SMSG_FORCE_WALK_SPEED_CHANGE = 0x02DA, + CMSG_FORCE_WALK_SPEED_CHANGE_ACK = 0x02DB, + SMSG_FORCE_SWIM_BACK_SPEED_CHANGE = 0x02DC, + CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK = 0x02DD, + SMSG_FORCE_TURN_RATE_CHANGE = 0x02DE, + CMSG_FORCE_TURN_RATE_CHANGE_ACK = 0x02DF, + CMSG_LEAVE_BATTLEFIELD = 0x02E1, + CMSG_AREA_SPIRIT_HEALER_QUERY = 0x02E2, + CMSG_AREA_SPIRIT_HEALER_QUEUE = 0x02E3, + SMSG_AREA_SPIRIT_HEALER_TIME = 0x02E4, + CMSG_GM_UNTEACH = 0x02E5, + SMSG_WARDEN_DATA = 0x02E6, + CMSG_WARDEN_DATA = 0x02E7, + SMSG_BATTLEFIELD_STATUS_QUEUED = 0x02E8, + CMSG_PET_STOP_ATTACK = 0x02EA, + SMSG_BINDER_CONFIRM = 0x02EB, + SMSG_BATTLEGROUND_PLAYER_JOINED = 0x02EC, + SMSG_BATTLEGROUND_PLAYER_LEFT = 0x02ED, + CMSG_BATTLEMASTER_JOIN = 0x02EE, + SMSG_ADDON_INFO = 0x02EF, + CMSG_PET_UNLEARN = 0x02F0, + SMSG_PET_UNLEARN_CONFIRM = 0x02F1, + SMSG_PARTY_MEMBER_STATS_FULL = 0x02F2, + CMSG_PET_SPELL_AUTOCAST = 0x02F3, + SMSG_WEATHER = 0x02F4, + SMSG_PLAY_TIME_WARNING = 0x02F5, + SMSG_MINIGAME_SETUP = 0x02F6, + SMSG_MINIGAME_STATE = 0x02F7, + CMSG_MINIGAME_MOVE = 0x02F8, + SMSG_MINIGAME_MOVE_FAILED = 0x02F9, + SMSG_RAID_INSTANCE_MESSAGE = 0x02FA, + SMSG_COMPRESSED_MOVES = 0x02FB, + CMSG_GUILD_INFO_TEXT = 0x02FC, + SMSG_CHAT_RESTRICTED = 0x02FD, + SMSG_MOVE_SPLINE_SET_RUN_SPEED = 0x02FE, + SMSG_MOVE_SPLINE_SET_RUN_BACK_SPEED = 0x02FF, + SMSG_MOVE_SPLINE_SET_SWIM_SPEED = 0x0300, + SMSG_MOVE_SPLINE_SET_WALK_BACK_SPEED = 0x0301, + SMSG_MOVE_SPLINE_SET_SWIM_BACK_SPEED = 0x0302, + SMSG_MOVE_SPLINE_SET_TURN_RATE = 0x0303, + SMSG_MOVE_SPLINE_UNROOT = 0x0304, + SMSG_MOVE_SPLINE_SET_FEATHER_FALL = 0x0305, + SMSG_MOVE_SPLINE_SET_NORMAL_FALL = 0x0306, + SMSG_MOVE_SPLINE_SET_HOVER = 0x0307, + SMSG_MOVE_SPLINE_UNSET_HOVER = 0x0308, + SMSG_MOVE_SPLINE_SET_WATER_WALK = 0x0309, + SMSG_MOVE_SPLINE_SET_LAND_WALK = 0x030A, + SMSG_MOVE_SPLINE_START_SWIM = 0x030B, + SMSG_MOVE_SPLINE_STOP_SWIM = 0x030C, + SMSG_MOVE_SPLINE_SET_RUN_MODE = 0x030D, + SMSG_MOVE_SPLINE_SET_WALK_MODE = 0x030E, + CMSG_GM_NUKE_ACCOUNT = 0x030F, + CMSG_GM_DESTROY_ONLINE_CORPSE = 0x0311, + CMSG_ACTIVATE_TAXI_EXPRESS = 0x0312, + SMSG_SET_FACTION_AT_WAR = 0x0313, + SMSG_GAMETIMEBIAS_SET = 0x0314, + CMSG_DEBUG_ACTIONS_START = 0x0315, + CMSG_DEBUG_ACTIONS_STOP = 0x0316, + CMSG_SET_FACTION_INACTIVE = 0x0317, + CMSG_SET_WATCHED_FACTION = 0x0318, + SMSG_MOVE_SPLINE_ROOT = 0x031A, + CMSG_SET_EXPLORATION_ALL = 0x031B, + SMSG_INVALIDATE_PLAYER = 0x031C, + CMSG_RESET_INSTANCES = 0x031D, + SMSG_INSTANCE_RESET = 0x031E, + SMSG_INSTANCE_RESET_FAILED = 0x031F, + SMSG_UPDATE_LAST_INSTANCE = 0x0320, + CMSG_LUA_USAGE = 0x0323, + SMSG_PET_ACTION_SOUND = 0x0324, + SMSG_PET_DISMISS_SOUND = 0x0325, + SMSG_GHOSTEE_GONE = 0x0326, + CMSG_GM_UPDATE_TICKET_STATUS = 0x0327, + SMSG_GM_TICKET_STATUS_UPDATE = 0x0328, + CMSG_GM_SURVEY_SUBMIT = 0x032A, + SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x032B, + CMSG_IGNORE_KNOCKBACK_CHEAT = 0x032C, + SMSG_CHAT_PLAYER_AMBIGUOUS = 0x032D, + SMSG_SPELL_INSTAKILL_LOG = 0x032F, + SMSG_SPELL_UPDATE_CHAIN_TARGETS = 0x0330, + CMSG_CHAT_REPORT_FILTERED = 0x0331, + SMSG_EXPECTED_SPAM_RECORDS = 0x0332, + SMSG_SPELL_STEAL_LOG = 0x0333, + CMSG_LOTTERY_QUERY_OBSOLETE = 0x0334, + SMSG_LOTTERY_QUERY_RESULT_OBSOLETE = 0x0335, + CMSG_BUY_LOTTERY_TICKET_OBSOLETE = 0x0336, + SMSG_LOTTERY_RESULT_OBSOLETE = 0x0337, + SMSG_CHARACTER_PROFILE = 0x0338, + SMSG_CHARACTER_PROFILE_REALM_CONNECTED = 0x0339, + SMSG_DEFENSE_MESSAGE = 0x033A, + SMSG_INSTANCE_DIFFICULTY = 0x033B, + SMSG_MOTD = 0x033D, + SMSG_MOVE_ENABLE_TRANSITION_BETWEEN_SWIM_AND_FLY = 0x033E, + SMSG_MOVE_DISABLE_TRANSITION_BETWEEN_SWIM_AND_FLY = 0x033F, + CMSG_MOVE_SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY_ACK = 0x0340, + SMSG_MOVE_SET_CAN_FLY = 0x0343, + SMSG_MOVE_UNSET_CAN_FLY = 0x0344, + CMSG_MOVE_SET_CAN_FLY_ACK = 0x0345, + CMSG_MOVE_SET_FLY = 0x0346, + CMSG_SOCKET_GEMS = 0x0347, + CMSG_ARENA_TEAM_CREATE = 0x0348, + SMSG_ARENA_TEAM_COMMAND_RESULT = 0x0349, + CMSG_ARENA_TEAM_QUERY = 0x034B, + SMSG_ARENA_TEAM_QUERY_RESPONSE = 0x034C, + CMSG_ARENA_TEAM_ROSTER = 0x034D, + SMSG_ARENA_TEAM_ROSTER = 0x034E, + CMSG_ARENA_TEAM_INVITE = 0x034F, + SMSG_ARENA_TEAM_INVITE = 0x0350, + CMSG_ARENA_TEAM_ACCEPT = 0x0351, + CMSG_ARENA_TEAM_DECLINE = 0x0352, + CMSG_ARENA_TEAM_LEAVE = 0x0353, + CMSG_ARENA_TEAM_REMOVE = 0x0354, + CMSG_ARENA_TEAM_DISBAND = 0x0355, + CMSG_ARENA_TEAM_LEADER = 0x0356, + SMSG_ARENA_TEAM_EVENT = 0x0357, + CMSG_BATTLEMASTER_JOIN_ARENA = 0x0358, + SMSG_ARENA_TEAM_STATS = 0x035B, + CMSG_LFG_JOIN = 0x035C, + CMSG_LFG_LEAVE = 0x035D, + CMSG_LFG_LFR_JOIN = 0x035E, + CMSG_LFG_LFR_LEAVE = 0x035F, + SMSG_LFG_LFR_LIST = 0x0360, + SMSG_LFG_PROPOSAL_UPDATE = 0x0361, + CMSG_LFG_PROPOSAL_RESULT = 0x0362, + SMSG_LFG_ROLE_CHECK_UPDATE = 0x0363, + SMSG_LFG_JOIN_RESULT = 0x0364, + SMSG_LFG_QUEUE_STATUS = 0x0365, + CMSG_LFG_SET_COMMENT = 0x0366, + SMSG_LFG_UPDATE_PLAYER = 0x0367, + SMSG_LFG_UPDATE_PARTY = 0x0368, + SMSG_LFG_UPDATE_SEARCH = 0x0369, + CMSG_LFG_SET_ROLES = 0x036A, + CMSG_LFG_SET_NEEDS = 0x036B, + CMSG_LFG_SET_BOOT_VOTE = 0x036C, + SMSG_LFG_BOOT_PROPOSAL_UPDATE = 0x036D, + CMSG_LFG_PLAYER_LOCK_INFO_REQUEST = 0x036E, + SMSG_LFG_PLAYER_INFO = 0x036F, + CMSG_LFG_TELEPORT = 0x0370, + CMSG_LFG_PARTY_LOCK_INFO_REQUEST = 0x0371, + SMSG_LFG_PARTY_INFO = 0x0372, + SMSG_TITLE_EARNED = 0x0373, + CMSG_SET_TITLE = 0x0374, + CMSG_CANCEL_MOUNT_AURA = 0x0375, + SMSG_ARENA_ERROR = 0x0376, + SMSG_DEATH_RELEASE_LOC = 0x0378, + CMSG_CANCEL_TEMP_ENCHANTMENT = 0x0379, + SMSG_FORCED_DEATH_UPDATE = 0x037A, + CMSG_CHEAT_SET_HONOR_CURRENCY = 0x037B, + CMSG_CHEAT_SET_ARENA_CURRENCY = 0x037C, + SMSG_FORCE_FLIGHT_SPEED_CHANGE = 0x0381, + CMSG_FORCE_FLIGHT_SPEED_CHANGE_ACK = 0x0382, + SMSG_FORCE_FLIGHT_BACK_SPEED_CHANGE = 0x0383, + CMSG_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK = 0x0384, + SMSG_MOVE_SPLINE_SET_FLIGHT_SPEED = 0x0385, + SMSG_MOVE_SPLINE_SET_FLIGHT_BACK_SPEED = 0x0386, + CMSG_MAELSTROM_INVALIDATE_CACHE = 0x0387, + SMSG_FLIGHT_SPLINE_SYNC = 0x0388, + CMSG_SET_TAXI_BENCHMARK_MODE = 0x0389, + SMSG_JOINED_BATTLEGROUND_QUEUE = 0x038A, + SMSG_REALM_SPLIT = 0x038B, + CMSG_REALM_SPLIT = 0x038C, + CMSG_MOVE_CHANGE_TRANSPORT = 0x038D, + SMSG_OFFER_PETITION_ERROR = 0x038F, + SMSG_TIME_SYNC_REQUEST = 0x0390, + CMSG_TIME_SYNC_RESPONSE = 0x0391, + CMSG_SEND_LOCAL_EVENT = 0x0392, + CMSG_SEND_GENERAL_TRIGGER = 0x0393, + CMSG_SEND_COMBAT_TRIGGER = 0x0394, + CMSG_MAELSTROM_GM_SENT_MAIL = 0x0395, + SMSG_RESET_FAILED_NOTIFY = 0x0396, + SMSG_REAL_GROUP_UPDATE = 0x0397, + SMSG_LFG_DISABLED = 0x0398, + CMSG_ACTIVE_PVP_CHEAT = 0x0399, + CMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY = 0x039A, + SMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY_RESPONSE = 0x039B, + SMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY_RESPONSE_WRITE_FILE = 0x039C, + SMSG_UPDATE_COMBO_POINTS = 0x039D, + SMSG_VOICE_SESSION_ROSTER_UPDATE = 0x039E, + SMSG_VOICE_SESSION_LEAVE = 0x039F, + SMSG_VOICE_SESSION_ADJUST_PRIORITY = 0x03A0, + CMSG_VOICE_SET_TALKER_MUTED_REQUEST = 0x03A1, + SMSG_VOICE_SET_TALKER_MUTED = 0x03A2, + SMSG_INIT_EXTRA_AURA_INFO_OBSOLETE = 0x03A3, + SMSG_SET_EXTRA_AURA_INFO_OBSOLETE = 0x03A4, + SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE_OBSOLETE = 0x03A5, + SMSG_CLEAR_EXTRA_AURA_INFO_OBSOLETE = 0x03A6, + CMSG_IGNORE_REQUIREMENTS_CHEAT = 0x03A8, + SMSG_IGNORE_REQUIREMENTS_CHEAT = 0x03A9, + SMSG_SPELL_CHANCE_PROC_LOG = 0x03AA, + CMSG_MOVE_SET_RUN_SPEED = 0x03AB, + SMSG_DISMOUNT = 0x03AC, + CMSG_VOICE_SESSION_ENABLE = 0x03AF, + SMSG_VOICE_SESSION_ENABLE = 0x03B0, + SMSG_VOICE_PARENTAL_CONTROLS = 0x03B1, + CMSG_GM_WHISPER = 0x03B2, + SMSG_GM_MESSAGECHAT = 0x03B3, + CMSG_COMMENTATOR_ENABLE = 0x03B5, + SMSG_COMMENTATOR_STATE_CHANGED = 0x03B6, + CMSG_COMMENTATOR_GET_MAP_INFO = 0x03B7, + SMSG_COMMENTATOR_MAP_INFO = 0x03B8, + CMSG_COMMENTATOR_GET_PLAYER_INFO = 0x03B9, + SMSG_COMMENTATOR_GET_PLAYER_INFO = 0x03BA, + SMSG_COMMENTATOR_PLAYER_INFO = 0x03BB, + CMSG_COMMENTATOR_ENTER_INSTANCE = 0x03BC, + CMSG_COMMENTATOR_EXIT_INSTANCE = 0x03BD, + CMSG_COMMENTATOR_INSTANCE_COMMAND = 0x03BE, + SMSG_CLEAR_TARGET = 0x03BF, + CMSG_BOT_DETECTED = 0x03C0, + SMSG_CROSSED_INEBRIATION_THRESHOLD = 0x03C1, + CMSG_CHEAT_PLAYER_LOGIN = 0x03C2, + CMSG_CHEAT_PLAYER_LOOKUP = 0x03C3, + SMSG_CHEAT_PLAYER_LOOKUP = 0x03C4, + SMSG_KICK_REASON = 0x03C5, + CMSG_COMPLAINT = 0x03C7, + SMSG_COMPLAINT_RESULT = 0x03C8, + SMSG_FEATURE_SYSTEM_STATUS = 0x03C9, + CMSG_GM_SHOW_COMPLAINTS = 0x03CA, + CMSG_GM_UNSQUELCH = 0x03CB, + CMSG_CHAT_CHANNEL_SILENCE_VOICE = 0x03CC, + CMSG_CHAT_CHANNEL_SILENCE_ALL = 0x03CD, + CMSG_CHAT_CHANNEL_UNSILENCE_VOICE = 0x03CE, + CMSG_CHAT_CHANNEL_UNSILENCE_ALL = 0x03CF, + CMSG_TARGET_CAST = 0x03D0, + CMSG_TARGET_SCRIPT_CAST = 0x03D1, + CMSG_CHAT_CHANNEL_DISPLAY_LIST = 0x03D2, + CMSG_SET_ACTIVE_VOICE_CHANNEL = 0x03D3, + CMSG_GET_CHANNEL_MEMBER_COUNT = 0x03D4, + SMSG_CHANNEL_MEMBER_COUNT = 0x03D5, + CMSG_CHAT_CHANNEL_VOICE_ON = 0x03D6, + CMSG_CHAT_CHANNEL_VOICE_OFF = 0x03D7, + CMSG_DEBUG_LIST_TARGETS = 0x03D8, + SMSG_DEBUG_LIST_TARGETS = 0x03D9, + SMSG_AVAILABLE_VOICE_CHANNEL = 0x03DA, + CMSG_VOICE_ADD_IGNORE = 0x03DB, + CMSG_VOICE_DEL_IGNORE = 0x03DC, + CMSG_PARTY_SILENCE = 0x03DD, + CMSG_PARTY_UNSILENCE = 0x03DE, + SMSG_COMSAT_RECONNECT_TRY = 0x03E0, + SMSG_COMSAT_DISCONNECT = 0x03E1, + SMSG_COMSAT_CONNECT_FAIL = 0x03E2, + SMSG_VOICE_CHAT_STATUS = 0x03E3, + CMSG_REPORT_PVP_PLAYER_AFK = 0x03E4, + SMSG_REPORT_PVP_AFK_RESULT = 0x03E5, + CMSG_GUILD_BANK_ACTIVATE = 0x03E6, + CMSG_GUILD_BANK_QUERY_TAB = 0x03E7, + SMSG_GUILD_BANK_QUERY_RESULTS = 0x03E8, + CMSG_GUILD_BANK_SWAP_ITEMS = 0x03E9, + CMSG_GUILD_BANK_BUY_TAB = 0x03EA, + CMSG_GUILD_BANK_UPDATE_TAB = 0x03EB, + CMSG_GUILD_BANK_DEPOSIT_MONEY = 0x03EC, + CMSG_GUILD_BANK_WITHDRAW_MONEY = 0x03ED, + CMSG_SET_CHANNEL_WATCH = 0x03EF, + SMSG_USERLIST_ADD = 0x03F0, + SMSG_USERLIST_REMOVE = 0x03F1, + SMSG_USERLIST_UPDATE = 0x03F2, + CMSG_CLEAR_CHANNEL_WATCH = 0x03F3, + SMSG_INSPECT_TALENT = 0x03F4, + SMSG_GOGOGO_OBSOLETE = 0x03F5, + SMSG_ECHO_PARTY_SQUELCH = 0x03F6, + CMSG_SET_TITLE_SUFFIX = 0x03F7, + CMSG_SPELL_CLICK = 0x03F8, + SMSG_LOOT_LIST = 0x03F9, + CMSG_GM_CHARACTER_RESTORE = 0x03FA, + CMSG_GM_CHARACTER_SAVE = 0x03FB, + SMSG_VOICESESSION_FULL = 0x03FC, + CMSG_MAELSTROM_RENAME_GUILD = 0x0400, + CMSG_GET_MIRROR_IMAGE_DATA = 0x0401, + SMSG_MIRROR_IMAGE_COMPONENTED_DATA = 0x0402, + SMSG_FORCE_DISPLAY_UPDATE = 0x0403, + SMSG_SPELL_CHANCE_RESIST_PUSHBACK = 0x0404, + CMSG_IGNORE_DIMINISHING_RETURNS_CHEAT = 0x0405, + SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT = 0x0406, + CMSG_KEEP_ALIVE = 0x0407, + SMSG_READY_CHECK_ERROR = 0x0408, + CMSG_OPT_OUT_OF_LOOT = 0x0409, + CMSG_GUILD_BANK_SET_TAB_TEXT = 0x040B, + CMSG_SET_GRANTABLE_LEVELS = 0x040C, + CMSG_GRANT_LEVEL = 0x040D, + CMSG_REFER_A_FRIEND = 0x040E, + CMSG_CHAT_CHANNEL_DECLINE_INVITE = 0x0410, + SMSG_GROUP_ACTION_THROTTLED = 0x0411, + SMSG_OVERRIDE_LIGHT = 0x0412, + SMSG_TOTEM_CREATED = 0x0413, + CMSG_TOTEM_DESTROYED = 0x0414, + CMSG_EXPIRE_RAID_INSTANCE = 0x0415, + CMSG_NO_SPELL_VARIANCE = 0x0416, + CMSG_QUEST_GIVER_STATUS_MULTIPLE_QUERY = 0x0417, + SMSG_QUEST_GIVER_STATUS_MULTIPLE = 0x0418, + CMSG_SET_PLAYER_DECLINED_NAMES = 0x0419, + SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 0x041A, + CMSG_QUERY_SERVER_BUCK_DATA = 0x041B, + CMSG_CLEAR_SERVER_BUCK_DATA = 0x041C, + SMSG_SERVER_BUCK_DATA = 0x041D, + SMSG_SEND_UNLEARN_SPELLS = 0x041E, + SMSG_PROPOSE_LEVEL_GRANT = 0x041F, + CMSG_ACCEPT_LEVEL_GRANT = 0x0420, + SMSG_REFER_A_FRIEND_FAILURE = 0x0421, + SMSG_MOVE_SPLINE_SET_FLYING = 0x0422, + SMSG_MOVE_SPLINE_UNSET_FLYING = 0x0423, + SMSG_SUMMON_CANCEL = 0x0424, + CMSG_CHANGE_PERSONAL_ARENA_RATING = 0x0425, + CMSG_ALTER_APPEARANCE = 0x0426, + SMSG_ENABLE_BARBER_SHOP = 0x0427, + SMSG_BARBER_SHOP_RESULT = 0x0428, + CMSG_CALENDAR_GET_CALENDAR = 0x0429, + CMSG_CALENDAR_GET_EVENT = 0x042A, + CMSG_CALENDAR_GUILD_FILTER = 0x042B, + CMSG_CALENDAR_ARENA_TEAM = 0x042C, + CMSG_CALENDAR_ADD_EVENT = 0x042D, + CMSG_CALENDAR_UPDATE_EVENT = 0x042E, + CMSG_CALENDAR_REMOVE_EVENT = 0x042F, + CMSG_CALENDAR_COPY_EVENT = 0x0430, + CMSG_CALENDAR_EVENT_INVITE = 0x0431, + CMSG_CALENDAR_EVENT_RSVP = 0x0432, + CMSG_CALENDAR_EVENT_REMOVE_INVITE = 0x0433, + CMSG_CALENDAR_EVENT_STATUS = 0x0434, + CMSG_CALENDAR_EVENT_MODERATOR_STATUS = 0x0435, + SMSG_CALENDAR_SEND_CALENDAR = 0x0436, + SMSG_CALENDAR_SEND_EVENT = 0x0437, + SMSG_CALENDAR_FILTER_GUILD = 0x0438, + SMSG_CALENDAR_ARENA_TEAM = 0x0439, + SMSG_CALENDAR_EVENT_INVITE = 0x043A, + SMSG_CALENDAR_EVENT_INVITE_REMOVED = 0x043B, + SMSG_CALENDAR_EVENT_STATUS = 0x043C, + SMSG_CALENDAR_COMMAND_RESULT = 0x043D, + SMSG_CALENDAR_RAID_LOCKOUT_ADDED = 0x043E, + SMSG_CALENDAR_RAID_LOCKOUT_REMOVED = 0x043F, + SMSG_CALENDAR_EVENT_INVITE_ALERT = 0x0440, + SMSG_CALENDAR_EVENT_INVITE_REMOVED_ALERT = 0x0441, + SMSG_CALENDAR_EVENT_INVITE_STATUS_ALERT = 0x0442, + SMSG_CALENDAR_EVENT_REMOVED_ALERT = 0x0443, + SMSG_CALENDAR_EVENT_UPDATED_ALERT = 0x0444, + SMSG_CALENDAR_EVENT_MODERATOR_STATUS_ALERT = 0x0445, + CMSG_CALENDAR_COMPLAIN = 0x0446, + CMSG_CALENDAR_GET_NUM_PENDING = 0x0447, + SMSG_CALENDAR_SEND_NUM_PENDING = 0x0448, + CMSG_SAVE_DANCE = 0x0449, + SMSG_NOTIFY_DANCE = 0x044A, + CMSG_PLAY_DANCE = 0x044B, + SMSG_PLAY_DANCE = 0x044C, + CMSG_LOAD_DANCES = 0x044D, + CMSG_STOP_DANCE = 0x044E, + SMSG_STOP_DANCE = 0x044F, + CMSG_SYNC_DANCE = 0x0450, + CMSG_DANCE_QUERY = 0x0451, + SMSG_DANCE_QUERY_RESPONSE = 0x0452, + SMSG_INVALIDATE_DANCE = 0x0453, + CMSG_DELETE_DANCE = 0x0454, + SMSG_LEARNED_DANCE_MOVES = 0x0455, + CMSG_LEARN_DANCE_MOVE = 0x0456, + CMSG_UNLEARN_DANCE_MOVE = 0x0457, + CMSG_SET_RUNE_COUNT = 0x0458, + CMSG_SET_RUNE_COOLDOWN = 0x0459, + SMSG_FORCE_PITCH_RATE_CHANGE = 0x045C, + CMSG_FORCE_PITCH_RATE_CHANGE_ACK = 0x045D, + SMSG_MOVE_SPLINE_SET_PITCH_RATE = 0x045E, + CMSG_CALENDAR_EVENT_INVITE_NOTES = 0x045F, + SMSG_CALENDAR_EVENT_INVITE_NOTES = 0x0460, + SMSG_CALENDAR_EVENT_INVITE_NOTES_ALERT = 0x0461, + CMSG_UPDATE_MISSILE_TRAJECTORY = 0x0462, + SMSG_UPDATE_ACCOUNT_DATA_COMPLETE = 0x0463, + SMSG_TRIGGER_MOVIE = 0x0464, + CMSG_COMPLETE_MOVIE = 0x0465, + CMSG_SET_GLYPH_SLOT = 0x0466, + CMSG_SET_GLYPH = 0x0467, + SMSG_ACHIEVEMENT_EARNED = 0x0468, + SMSG_DYNAMIC_DROP_ROLL_RESULT = 0x0469, + SMSG_CRITERIA_UPDATE = 0x046A, + CMSG_QUERY_INSPECT_ACHIEVEMENTS = 0x046B, + SMSG_RESPOND_INSPECT_ACHIEVEMENTS = 0x046C, + CMSG_DISMISS_CONTROLLED_VEHICLE = 0x046D, + CMSG_COMPLETE_ACHIEVEMENT_CHEAT = 0x046E, + SMSG_QUEST_UPDATE_ADD_PVP_CREDIT = 0x046F, + CMSG_SET_CRITERIA_CHEAT = 0x0470, + SMSG_CALENDAR_RAID_LOCKOUT_UPDATED = 0x0471, + CMSG_UNITANIMTIER_CHEAT = 0x0472, + CMSG_CHAR_CUSTOMIZE = 0x0473, + SMSG_CHAR_CUSTOMIZE = 0x0474, + SMSG_PET_RENAMEABLE = 0x0475, + CMSG_REQUEST_VEHICLE_EXIT = 0x0476, + CMSG_REQUEST_VEHICLE_PREV_SEAT = 0x0477, + CMSG_REQUEST_VEHICLE_NEXT_SEAT = 0x0478, + CMSG_REQUEST_VEHICLE_SWITCH_SEAT = 0x0479, + CMSG_PET_LEARN_TALENT = 0x047A, + CMSG_PET_UNLEARN_TALENTS = 0x047B, + SMSG_PHASE_SHIFT_CHANGE = 0x047C, + SMSG_ALL_ACHIEVEMENT_DATA = 0x047D, + CMSG_FORCE_SAY_CHEAT = 0x047E, + SMSG_HEALTH_UPDATE = 0x047F, + SMSG_POWER_UPDATE = 0x0480, + CMSG_GAME_OBJ_REPORT_USE = 0x0481, + SMSG_HIGHEST_THREAT_UPDATE = 0x0482, + SMSG_THREAT_UPDATE = 0x0483, + SMSG_THREAT_REMOVE = 0x0484, + SMSG_THREAT_CLEAR = 0x0485, + SMSG_CONVERT_RUNE = 0x0486, + SMSG_RESYNC_RUNES = 0x0487, + SMSG_ADD_RUNE_POWER = 0x0488, + CMSG_QUERY_QUEST_COMPLETION_NPCS = 0x0489, + CMSG_REMOVE_GLYPH = 0x048A, + CMSG_DUMP_OBJECTS = 0x048B, + SMSG_DUMP_OBJECTS_DATA = 0x048C, + CMSG_DISMISS_CRITTER = 0x048D, + SMSG_NOTIFY_DEST_LOC_SPELL_CAST = 0x048E, + CMSG_AUCTION_LIST_PENDING_SALES = 0x048F, + SMSG_AUCTION_LIST_PENDING_SALES = 0x0490, + SMSG_MODIFY_COOLDOWN = 0x0491, + SMSG_PET_UPDATE_COMBO_POINTS = 0x0492, + CMSG_ENABLE_TAXI_NODE = 0x0493, + SMSG_PRE_RESSURECT = 0x0494, + SMSG_AURA_UPDATE_ALL = 0x0495, + SMSG_AURA_UPDATE = 0x0496, + CMSG_FLOOD_GRACE_CHEAT = 0x0497, + SMSG_SERVER_FIRST_ACHIEVEMENT = 0x0498, + SMSG_PET_LEARNED_SPELLS = 0x0499, + SMSG_PET_UNLEARNED_SPELLS = 0x049A, + CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE = 0x049B, + CMSG_HEARTH_AND_RESURRECT = 0x049C, + SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x049D, + SMSG_CRITERIA_DELETED = 0x049E, + SMSG_ACHIEVEMENT_DELETED = 0x049F, + CMSG_SERVER_INFO_QUERY = 0x04A0, + SMSG_SERVER_INFO_RESPONSE = 0x04A1, + CMSG_CHECK_LOGIN_CRITERIA = 0x04A2, + SMSG_SERVER_BUCK_DATA_START = 0x04A3, + CMSG_SET_BREATH = 0x04A4, + CMSG_QUERY_VEHICLE_STATUS = 0x04A5, + SMSG_BATTLEGROUND_INFO_THROTTLED = 0x04A6, + SMSG_PLAYER_VEHICLE_DATA = 0x04A7, + CMSG_PLAYER_VEHICLE_ENTER = 0x04A8, + CMSG_EJECT_PASSENGER = 0x04A9, + SMSG_PET_GUIDS = 0x04AA, + SMSG_CACHE_VERSION = 0x04AB, + CMSG_CHANGE_GDF_ARENA_RATING = 0x04AC, + CMSG_SET_ARENA_TEAM_RATING_BY_INDEX = 0x04AD, + CMSG_SET_ARENA_TEAM_WEEKLY_GAMES = 0x04AE, + CMSG_SET_ARENA_TEAM_SEASON_GAMES = 0x04AF, + CMSG_SET_ARENA_MEMBER_WEEKLY_GAMES = 0x04B0, + CMSG_SET_ARENA_MEMBER_SEASON_GAMES = 0x04B1, + SMSG_ITEM_REFUND_INFO_RESPONSE = 0x04B2, + CMSG_GET_ITEM_PURCHASE_DATA = 0x04B3, + CMSG_ITEM_PURCHASE_REFUND = 0x04B4, + SMSG_ITEM_PURCHASE_REFUND_RESULT = 0x04B5, + CMSG_CORPSE_MAP_POSITION_QUERY = 0x04B6, + SMSG_CORPSE_MAP_POSITION_QUERY_RESPONSE = 0x04B7, + SMSG_LOAD_EQUIPMENT_SET = 0x04BC, + NUM_MSG_TYPES = 0x051F, +}; + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/include/object/guid.h b/profile/3.3.5a-windows-386/include/object/guid.h new file mode 100644 index 0000000..f437707 --- /dev/null +++ b/profile/3.3.5a-windows-386/include/object/guid.h @@ -0,0 +1,8 @@ +#ifndef OBJECT_GUID_H +#define OBJECT_GUID_H + +#include "system/types.h" + +typedef uint64_t WOWGUID; + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/include/object/object.h b/profile/3.3.5a-windows-386/include/object/object.h new file mode 100644 index 0000000..3343d9c --- /dev/null +++ b/profile/3.3.5a-windows-386/include/object/object.h @@ -0,0 +1,49 @@ +#ifndef OBJECT_OBJECT_H +#define OBJECT_OBJECT_H + +DECLARE_STRUCT(CGObjectData); +DECLARE_STRUCT(CGObject); +DECLARE_STRUCT(CGObject_C__v_table); + +#include "object/guid.h" +#include "object/type.h" + +struct CGObjectData { + WOWGUID m_guid; + OBJECT_TYPE m_type; + int32_t m_entryID; + float m_scale; + uint32_t pad; +}; + +struct CGObject { + uint32_t* m_data; + CGObjectData* m_obj; +}; + +struct CGObject_C__v_table { + void* unk; +}; + +// class CGObject_C : CGObject { +struct CGObject_C { + CGObject_C__v_table* v_table; + CGObject b_base; + uint32_t unk[42]; + float m_renderScale; + uint32_t unki; + // HMODEL m_model; + void* m_model; + uint32_t m_highlightTypes; + float m_objectHeight; + uint32_t m_worldObject; + uint32_t m_flags; + uint32_t m_fadeStartTime; + uint32_t m_fadeDuration; + uint8_t m_alpha; + uint8_t m_startAlpha; + uint8_t m_endAlpha; + uint8_t m_maxAlpha; +}; + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/include/object/type.h b/profile/3.3.5a-windows-386/include/object/type.h new file mode 100644 index 0000000..ca18433 --- /dev/null +++ b/profile/3.3.5a-windows-386/include/object/type.h @@ -0,0 +1,29 @@ +#ifndef OBJECT_TYPE_H +#define OBJECT_TYPE_H + +DECLARE_ENUM(OBJECT_TYPE); + +enum OBJECT_TYPE { + TYPE_OBJECT = 0x1, + TYPE_ITEM = 0x2, + TYPE_CONTAINER = 0x4, + TYPE_UNIT = 0x8, + TYPE_PLAYER = 0x10, + TYPE_GAMEOBJECT = 0x20, + TYPE_DYNAMICOBJECT = 0x40, + TYPE_CORPSE = 0x80, + TYPE_AIGROUP = 0x100, + TYPE_AREATRIGGER = 0x200, + HIER_TYPE_OBJECT = TYPE_OBJECT, + HIER_TYPE_ITEM = TYPE_OBJECT | TYPE_ITEM, + HIER_TYPE_CONTAINER = TYPE_OBJECT | TYPE_ITEM | TYPE_CONTAINER, + HIER_TYPE_UNIT = TYPE_OBJECT | TYPE_UNIT, + HIER_TYPE_PLAYER = TYPE_OBJECT | TYPE_UNIT | TYPE_PLAYER, + HIER_TYPE_GAMEOBJECT = TYPE_OBJECT | TYPE_GAMEOBJECT, + HIER_TYPE_DYNAMICOBJECT = TYPE_OBJECT | TYPE_GAMEOBJECT, + HIER_TYPE_CORPSE = TYPE_OBJECT | TYPE_CORPSE, + HIER_TYPE_AIGROUP = TYPE_OBJECT | TYPE_AIGROUP, + HIER_TYPE_AREATRIGGER = TYPE_OBJECT | TYPE_AREATRIGGER +}; + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/include/object/typeid.h b/profile/3.3.5a-windows-386/include/object/typeid.h new file mode 100644 index 0000000..5aa96d5 --- /dev/null +++ b/profile/3.3.5a-windows-386/include/object/typeid.h @@ -0,0 +1,21 @@ +#ifndef OBJECT_TYPEID_H +#define OBJECT_TYPEID_H + +DECLARE_ENUM(OBJECT_TYPE_ID); + +enum OBJECT_TYPE_ID { + ID_OBJECT = 0x0, + ID_ITEM = 0x1, + ID_CONTAINER = 0x2, + ID_UNIT = 0x3, + ID_PLAYER = 0x4, + ID_GAMEOBJECT = 0x5, + ID_DYNAMICOBJECT = 0x6, + ID_CORPSE = 0x7, + NUM_CLIENT_OBJECT_TYPES = 0x8, + ID_AIGROUP = 0x8, + ID_AREATRIGGER = 0x9, + NUM_OBJECT_TYPES = 0xA +}; + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/include/object/unit.h b/profile/3.3.5a-windows-386/include/object/unit.h new file mode 100644 index 0000000..749ddc9 --- /dev/null +++ b/profile/3.3.5a-windows-386/include/object/unit.h @@ -0,0 +1,141 @@ +#ifndef OBJECT_UNIT_H +#define OBJECT_UNIT_H + +struct CGUnit { + +} + +DECLARE_STRUCT(CGUnit_C); +DECLARE_STRUCT(CGUnit); + +struct __cppobj __declspec(align(8)) CGUnit_C : CGObject_C, CGUnit +{ + int m_questCountKilled; + int m_questCountNeeded; + HMODEL__ *m_resEffectModel; + unsigned __int64 m_meleeTargetDeathHold; + int m_precastSheatheHoldTimer; + int m_customAttackSound; + NTempest::C3Vector m_customAttackPosition; + unsigned int m_splashSoundID; + unsigned int m_disengageLookAtTimer; + TSGrowableArray m_animEndCallbackList; + ANIMENDDATA *m_callbackList[135]; + CreatureStats_C *m_stats; + CreatureDisplayInfoRec *m_displayInfo; + CreatureDisplayInfoExtraRec *m_displayInfoExtra; + CreatureModelDataRec *m_modelData; + CreatureSoundDataRec *m_soundData; + CreatureSoundDataRec *m_mountedSoundData; + UnitBloodLevelsRec *m_bloodRec; + AuraVisual m_auraVisual[12]; + TSList > m_activeAuraInfo; + ANIMENUMERATION m_pendingImpactAnim; + HMODEL__ *m_tempCharModel; + TSGrowableArray m_deathHoldBuffer; + TSGrowableArray m_deathHoldBufferIndices; + int m_lastDeathTime; + int m_nextDeathHoldCheckTime; + TSGrowableArray m_emoteQueue; + HMODEL__ *m_interactIconModel; + TSList > m_bloodSplatNodes; + unsigned int m_nextAllowableBloodPool; + TSList > m_animQueue; + CCombatClient m_combat; + ANIMQUEUENODE *m_currentDamageInfo; + unsigned int m_readySequence; + unsigned int m_animEndTime; + unsigned int m_animBaseDuration; + unsigned int m_animStartTime; + unsigned int m_flags; + unsigned int m_animFlags; + unsigned int m_footprintTextureID; + unsigned int m_terrain; + NTempest::C2Vector m_footprintSize; + float m_footprintParticleScale; + DEBUGHITROLLINFO m_hitInformation; + ANIMENUMERATION m_spellPrecastingAnim; + ANIMENUMERATION m_spellCastingAnim; + ANIMENUMERATION m_deferredPrecastAnim; + int m_animatingAura; + unsigned int m_emoteID; + unsigned int m_spellCastingEffectKit; + unsigned int m_spellCastingSoundID; + int m_spellCastingCameraShakeID; + MISSILESTRUCT m_spellMissileStruct; + float m_lastSentFacing; + float m_lastSentPitch; + HPLAYERNAME__ *m_unitNameHandle; + int m_accumulatedXPDrop; + int m_castingSpell; + int m_interruptedSpell; + int m_lastSpellCastAnimTime; + int m_nextBreath; + int m_nextMountBreath; + int m_scriptRegistered; + float m_displayFacing; + float m_smoothFacing; + float m_savedFacingDeltas[4]; + float m_forcedDisplayFacing; + unsigned int m_deathTime; + unsigned __int64 m_lastCombatTarget; + unsigned __int64 m_targetUnit; + unsigned int m_currentBaseAnimState; + unsigned int m_currentBaseAnim; + unsigned int m_currentTorsoAnimState; + unsigned int m_currentTorsoAnim; + unsigned int m_currentMountAnimState; + unsigned int m_currentWoundStartTime; + unsigned int m_currentWoundAnimDuration; + unsigned int m_spellFizzleTimer; + unsigned int m_deathHolds; + QUEST_GIVER_STATUS m_questGiverStatus; + NTempest::C3Vector m_serverLoc; + TSGrowableArray m_debugPathPoints; + unsigned int m_numDebugPathNodes; + Sound *m_spellLoopedSound; + Sound *m_creatureLoopSound; + unsigned int m_mountedFootprintID; + NTempest::C2Vector m_mountedFootprintSize; + HMODEL__ *m_fadingPureMountModel; + PUREMOUNTFADEMODE m_pureMountFadeMode; + unsigned int m_pureMountFadeStartTime; + float m_fadingMountFacing; + NTempest::C3Vector m_fadingMountPos; + float m_fadingMountScale; + NPCSoundsRec *m_NPCSoundsRec; + unsigned int m_lastGlobalClickCount; + unsigned int m_pissedCount; + unsigned int m_numNPCPissedSounds; + HCHARGEOSET__ *m_geosetHandle; + HTEXCOMPONENT__ *m_texComponent; + unsigned int m_preferredGeosets[15]; + int m_displayHealth; + TSList > m_impactEffectsDesc; + TSList > m_spellEffectLists[11]; + NTempest::C3iVector m_currentEmissive; + int m_pendingHitSpellID; + TSGrowableArray m_pendingHitAnimVictims; + int m_auraFlags[56]; + int m_walkStateAnim; + int m_standStateAnim; + float m_baseRadius; + unsigned int m_ammoDisplayID; + unsigned int m_ammoInvType; + unsigned int m_rangedStandTimer; + ACTIVEATTACHMENTINFO *m_attachments[5]; + ACTIVEATTACHMENTINFO *m_deferredAttachments[5]; + int m_weaponTrails[5]; + HMODEL__ *m_paperDollModel; + int m_sheatheReasons; + ANIMENUMERATION m_handAnim[2]; + unsigned int m_deferredSheatheFlags; + SHEATHEREASONS m_deferredSheatheReason; + int m_savedChannelSpellID; + TSGrowableArray m_savedChannelSpellTargets; + SPELLEFFECTDESC *m_channelSpellEffect; + SpellRec *m_shapeShiftPoof; + FishingLineObject *m_fishingLineObject; +}; + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/info.json b/profile/3.3.5a-windows-386/info.json index 9972ef3..440dde0 100644 --- a/profile/3.3.5a-windows-386/info.json +++ b/profile/3.3.5a-windows-386/info.json @@ -2,5 +2,6 @@ "os": "windows", "arch": "386", "module_name": "wow.exe", - "module_base": "400000" + "module_base": "400000", + "function_count": 27234 } diff --git a/profile/3.3.5a-windows-386/symbol/actionbar/func.sym b/profile/3.3.5a-windows-386/symbol/actionbar/func.sym index b566d06..f1cec33 100644 --- a/profile/3.3.5a-windows-386/symbol/actionbar/func.sym +++ b/profile/3.3.5a-windows-386/symbol/actionbar/func.sym @@ -1,6 +1,13 @@ +CGActionBar__IsMacro 005648A0 f end=005648C8 +CGActionBar__GetMacroID 005648D0 f end=005648FC +CGActionBar__IsSpell 005A7860 f end=005A7883 +CGActionBar__IsItem 005A7890 f end=005A78B8 +CGActionBar__IsEquipmentSet 005A78F0 f end=005A7918 +CGActionBar__GetEquipmentSetID 005A7950 f end=005A797D CGActionBar__InitializeGame 005A79D0 f end=005A7A36 CGActionBar__ShowGrid 005A7A70 f end=005A7A80 CGActionBar__HideGrid 005A7A80 f end=005A7A90 +CGActionBar__GetMultiCastSlotMaskForTotemCategory 005A7B50 f end=005A7B93 CGActionBar__SetTemporaryActionBarFlags 005A7C20 f end=005A7C41 CGActionBar__GetItem 005A8070 f end=005A80DB CGActionBar__HasAction 005A8160 f end=005A821E @@ -20,27 +27,20 @@ CGActionBar__UpdateUsableAction 005A9E20 f end=005AA23A CGActionBar__IsCurrentAction 005AA240 f end=005AA370 CGActionBar__SlotChanged 005AA390 f end=005AA466 CGActionBar__UpdateUsable 005AA470 f end=005AA4D9 -CGActionBar__RemoveAction 005AAA90 f end=005AAB0D -CGActionBar__RemoveMacro 005AAB90 f end=005AABFB -CGActionBar__RemoveEquipmentSet 005AAE20 f end=005AAE71 -CGActionBar__SetAction 005AAE80 f end=005AAFCB -CGActionBar__PutActionInSlot 005AB120 f end=005AB7F4 -CGActionBar__UseAction 005ABBC0 f end=005ABE63 -CGActionBar__PickupAction 005ABE70 f end=005ABFF6 -CGActionBar__UpdateShapeShiftBar 005ABAC0 f end=005ABB32 -CGActionBar__UpdateOverrideSpellBar 005ABB40 f end=005ABBB8 -CGActionBar__EnterWorld 005AC0E0 f end=005AC0F4 CGActionBar__UpdateItem 005AA5C0 f end=005AA91E CGActionBar__UpdateMacro 005AA920 f end=005AA9FC -CGActionBar__UpdateCritter 005AAC00 f end=005AAD38 -CGActionBar__ReplaceSpell 005AAFD0 f end=005AB11A -CGActionBar__GetMultiCastSlotMaskForTotemCategory 005A7B50 f end=005A7B93 CGActionBar__UpdateEquipmentSet 005AAA00 f end=005AAA85 +CGActionBar__RemoveAction 005AAA90 f end=005AAB0D +CGActionBar__RemoveMacro 005AAB90 f end=005AABFB +CGActionBar__UpdateCritter 005AAC00 f end=005AAD38 +CGActionBar__RemoveEquipmentSet 005AAE20 f end=005AAE71 +CGActionBar__SetAction 005AAE80 f end=005AAFCB +CGActionBar__ReplaceSpell 005AAFD0 f end=005AB11A +CGActionBar__PutActionInSlot 005AB120 f end=005AB7F4 CGActionBar__UpdateTemporaryActionBar 005AB800 f end=005AB837 CGActionBar__UpdateMultiCastBar 005AB9D0 f end=005ABABB -CGActionBar__IsMacro 005648A0 f end=005648C8 -CGActionBar__GetMacroID 005648D0 f end=005648FC -CGActionBar__IsSpell 005A7860 f end=005A7883 -CGActionBar__IsItem 005A7890 f end=005A78B8 -CGActionBar__IsEquipmentSet 005A78F0 f end=005A7918 -CGActionBar__GetEquipmentSetID 005A7950 f end=005A797D +CGActionBar__UpdateShapeShiftBar 005ABAC0 f end=005ABB32 +CGActionBar__UpdateOverrideSpellBar 005ABB40 f end=005ABBB8 +CGActionBar__UseAction 005ABBC0 f end=005ABE63 +CGActionBar__PickupAction 005ABE70 f end=005ABFF6 +CGActionBar__EnterWorld 005AC0E0 f end=005AC0F4 diff --git a/profile/3.3.5a-windows-386/symbol/backdropgenerator/func.sym b/profile/3.3.5a-windows-386/symbol/backdropgenerator/func.sym index eb5f848..5fd1ea9 100644 --- a/profile/3.3.5a-windows-386/symbol/backdropgenerator/func.sym +++ b/profile/3.3.5a-windows-386/symbol/backdropgenerator/func.sym @@ -1,6 +1,6 @@ CBackdropGenerator__SetBorderVertexColor 004A2630 f end=004A26C1 type="void __thiscall func(CBackdropGenerator* this, CImVector* borderColor)" +CBackdropGenerator__DestroyTextures 004A26D0 f end=004A2779 CBackdropGenerator__LoadXML 004A2780 f end=004A29CB ; _CBackdropGenerator::LoadXML(linkObject*, CStatus*) CBackdropGenerator__Generate 004A29D0 f end=004A2D34 type="void __thiscall func(CBackdropGenerator* this, CRect*)" -CBackdropGenerator__CBackdropGenerator 004A2D40 f end=004A2DF9 type="void __thiscall func(CBackdropGenerator* this)" +CBackdropGenerator__constructor 004A2D40 f end=004A2DF9 type="void __thiscall func(CBackdropGenerator* this)" CBackdropGenerator__SetOutput 004A2E00 f end=004A36EE type="void __thiscall func(CBackdropGenerator* this, CSimpleFrame* a1)" -CBackdropGenerator__DestroyTextures 004A26D0 f end=004A2779 diff --git a/profile/3.3.5a-windows-386/symbol/bag/func.sym b/profile/3.3.5a-windows-386/symbol/bag/func.sym index c81ca02..0eb578a 100644 --- a/profile/3.3.5a-windows-386/symbol/bag/func.sym +++ b/profile/3.3.5a-windows-386/symbol/bag/func.sym @@ -1,4 +1,4 @@ -CGBag_C__FindItemByName 00754AF0 f end=00754B84 CGBag_C__GetItemPointer 00754390 f end=007543F4 CGBag_C__FindItemOfType 00754A20 f end=00754A46 +CGBag_C__FindItemByName 00754AF0 f end=00754B84 CGBag_C__GetItemTypeCharges 00754D50 f end=00754D86 diff --git a/profile/3.3.5a-windows-386/symbol/bc/func.sym b/profile/3.3.5a-windows-386/symbol/bc/func.sym index 7b5acce..f135753 100644 --- a/profile/3.3.5a-windows-386/symbol/bc/func.sym +++ b/profile/3.3.5a-windows-386/symbol/bc/func.sym @@ -1,5 +1,6 @@ operator_new 00401010 f end=00401067 type="void* __stdcall func(uint32_t count)" ; void* operator new(size_t) operator_delete 00401030 f end=0040104B type="void __stdcall func(void* ptr)" ; void operator delete(void*) +Blizzard__Mopaq__SFileGetLastError 00426A30 f end=00426A36 Blizzard__Debug__ErrorStackAsText 004270D0 f end=004270E6 Blizzard__File__Close 004270F0 f end=0042712F Blizzard__File__Delete 00427130 f end=0042716F ; Blizzard::File::Delete(char const*) @@ -41,6 +42,7 @@ Blizzard__Time__FromFileTime 00428F00 f end=00428F56 type="Blizzard__Time__Times Blizzard__String__QuickFormat__QuickFormat 00429790 f end=004297C5 Blizzard__String__MakeUnivPath 0042A9B0 f end=0042A9FB type="void __stdcall func(char* src, char* dst, int32_t count)" Blizzard__String__MakeBackslashPath 0042AA00 f end=0042AA4B type="void __stdcall func(char* src, char* dst, int32_t count)" +Blizzard__Mopaq__SFileUnloadFile 0042BF00 f end=0042BF1C Blizzard__File__CreateDirectory 0042CEA0 f end=0042CEE9 HoistAll 0042CFB0 f end=0042D43E System_File__Stacked__file_init 0042D440 f end=0042D4F4 type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" @@ -92,6 +94,8 @@ System_File__Write 00455D20 f end=00455D3E type="int32_t __stdcall func(Blizzard System_File__read_locked 00457820 f end=00457904 System_File__write_locked 00457910 f end=004579f4 System_File__detect_io_mode 00459910 f end=00459998 +Blizzard__Mopaq__SFileReadFile 0045A4B0 f end=0045A607 +Blizzard__Mopaq__SFileLoadFile 0045B5A0 f end=0045B69E Blizzard__Mopaq__SFileOpenArchive 0045C480 f end=0045C5BA Blizzard__Streaming__InitializeStreaming 004616A0 f end=00461AF8 OsCloseFile 00461B00 f end=00461B09 type="void __stdcall func(HOSFILE fileHandle)" @@ -115,7 +119,3 @@ OsCreateFileMode 00461EF0 f end=00461F68 type="Blizzard__File__Mode __stdcall fu OsFileGetDownloadFolder 00461F70 f end=00461F91 type="char* __stdcall func()" OsCreateFile 00461FA0 f end=00461FFA type="HOSFILE __stdcall func(char* fileName, uint32_t desiredAccess, uint32_t shareMode, uint32_t createDisposition, uint32_t flagsAndAttributes, uint32_t extendedFileType)" OsFileList 00462000 f end=0046209C -Blizzard__Mopaq__SFileGetLastError 00426A30 f end=00426A36 -Blizzard__Mopaq__SFileUnloadFile 0042BF00 f end=0042BF1C -Blizzard__Mopaq__SFileReadFile 0045A4B0 f end=0045A607 -Blizzard__Mopaq__SFileLoadFile 0045B5A0 f end=0045B69E diff --git a/profile/3.3.5a-windows-386/symbol/blit/func.sym b/profile/3.3.5a-windows-386/symbol/blit/func.sym index 381623a..5804767 100644 --- a/profile/3.3.5a-windows-386/symbol/blit/func.sym +++ b/profile/3.3.5a-windows-386/symbol/blit/func.sym @@ -1,21 +1,21 @@ -Blit 006AE7C0 f end=006AE817 type="int32_t __stdcall func(C2iVector* size, BlitAlpha alpha, void* src, uint32_t srcStride, BlitFormat srcFmt, void* dst, uint32_t dstStride, BlitFormat dstFmt)" ; Blit(const C2iVector&, BlitAlpha, const void*, uint32_t, BlitFormat, void*, uint32_t, BlitFormat) -InitBlit 006AE6E0 f end=006AE7BE GxGetBlitFormat 006817B0 f end=006817BF type="BlitFormat __stdcall func(EGxTexFormat format)" -Blit_Argb8888_Abgr8888 006ABF40 f end=006ABFBE type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Argb8888][BlitFormat_Abgr8888][BlitAlpha_0] -Blit_generic32_generic32 006ACCE0 f end=006ACCE9 type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; Argb8888_Argb8888, Gr1616F_Gr1616F, R32F_R32F, D24X8_D24X8 -Blit_Argb8888_Argb8888_A1 006ABFC0 f end=006AC02F type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Argb8888][BlitFormat_Argb8888][BlitAlpha_1] -Blit_Argb8888_Argb8888_A8 006ACCF0 f end=006ACD67 type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Argb8888][BlitFormat_Argb8888][BlitAlpha_8] Blit_Argb8888_Argb4444 006ABE00 f end=006ABE2F type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Argb8888][BlitFormat_Argb4444][BlitAlpha_0] Blit_Argb8888_Argb1555 006ABE30 f end=006ABE5F type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Argb8888][BlitFormat_Argb1555][BlitAlpha_0] Blit_Argb8888_Rgb565 006ABE60 f end=006ABE8F type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Argb8888][BlitFormat_Rgb565][BlitAlpha_0] -Blit_generic16_generic16 006ACD70 f end=006ACD79 type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; Rgb565_Rgb565, Argb4444_Argb4444, Argb1555_Argb1555, Uv88_Uv88 Blit_Argb4444_Abgr8888 006ABE90 f end=006ABF3F type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Argb4444][BlitFormat_Abgr8888][BlitAlpha_0] +Blit_Argb8888_Abgr8888 006ABF40 f end=006ABFBE type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Argb8888][BlitFormat_Abgr8888][BlitAlpha_0] +Blit_Argb8888_Argb8888_A1 006ABFC0 f end=006AC02F type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Argb8888][BlitFormat_Argb8888][BlitAlpha_1] Blit_Dxt1_Dxt1 006AC030 f end=006AC0B0 type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Dxt1][BlitFormat_Dxt1][BlitAlpha_0] Blit_Dxt35_Dxt35 006AC0B0 f end=006AC130 type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" +Blit_generic32_generic32 006ACCE0 f end=006ACCE9 type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; Argb8888_Argb8888, Gr1616F_Gr1616F, R32F_R32F, D24X8_D24X8 +Blit_Argb8888_Argb8888_A8 006ACCF0 f end=006ACD67 type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Argb8888][BlitFormat_Argb8888][BlitAlpha_8] +Blit_generic16_generic16 006ACD70 f end=006ACD79 type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; Rgb565_Rgb565, Argb4444_Argb4444, Argb1555_Argb1555, Uv88_Uv88 Blit_Dxt1_Rgb565 006AE440 f end=006AE494 type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Dxt1][BlitFormat_Rgb565][BlitAlpha_0] Blit_Dxt1_Argb1555 006AE4A0 f end=006AE4F4 type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Dxt1][BlitFormat_Argb1555][BlitAlpha_0] Blit_Dxt1_Argb8888 006AE500 f end=006AE554 type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Dxt1][BlitFormat_Argb8888][BlitAlpha_0] Blit_Dxt3_Argb4444 006AE560 f end=006AE5B4 type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Dxt3][BlitFormat_Argb4444][BlitAlpha_0] Blit_Dxt3_Argb8888 006AE5C0 f end=006AE614 type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Dxt3][BlitFormat_Argb8888][BlitAlpha_0] Blit_Dxt5_Argb4444 006AE620 f end=006AE674 type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Dxt5][BlitFormat_Argb4444][BlitAlpha_0] -Blit_Dxt5_Argb8888 006AE680 f end=006AE6D4 type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Dxt5][BlitFormat_Argb8888][BlitAlpha_0] \ No newline at end of file +Blit_Dxt5_Argb8888 006AE680 f end=006AE6D4 type="void __stdcall func(C2iVector* size, void* in, uint32_t inStride, void* out, uint32_t outStride)" ; s_blits[BlitFormat_Dxt5][BlitFormat_Argb8888][BlitAlpha_0] +InitBlit 006AE6E0 f end=006AE7BE +Blit 006AE7C0 f end=006AE817 type="int32_t __stdcall func(C2iVector* size, BlitAlpha alpha, void* src, uint32_t srcStride, BlitFormat srcFmt, void* dst, uint32_t dstStride, BlitFormat dstFmt)" ; Blit(const C2iVector&, BlitAlpha, const void*, uint32_t, BlitFormat, void*, uint32_t, BlitFormat) diff --git a/profile/3.3.5a-windows-386/symbol/blit/label.sym b/profile/3.3.5a-windows-386/symbol/blit/label.sym index 20b9c65..d5f8af9 100644 --- a/profile/3.3.5a-windows-386/symbol/blit/label.sym +++ b/profile/3.3.5a-windows-386/symbol/blit/label.sym @@ -1,2 +1,2 @@ +s_blits 00C60930 l type="BLIT_FUNCTION[13][13][4]" ; BLIT_FUNCTION s_blits[BlitFormats_Last][BlitFormats_Last][BlitAlphas_Last]; initBlit 00C613C4 l type="int32_t" -s_blits 00C60930 l type="BLIT_FUNCTION[13][13][4]" ; BLIT_FUNCTION s_blits[BlitFormats_Last][BlitFormats_Last][BlitAlphas_Last]; \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/calendar/func.sym b/profile/3.3.5a-windows-386/symbol/calendar/func.sym index 63a4127..45d94fe 100644 --- a/profile/3.3.5a-windows-386/symbol/calendar/func.sym +++ b/profile/3.3.5a-windows-386/symbol/calendar/func.sym @@ -1,2 +1,2 @@ -CGCalendar__InitializeGame 005C4240 f end=005C43B0 CGCalendar__GetHolidayName 005B9430 f end=005B9487 +CGCalendar__InitializeGame 005C4240 f end=005C43B0 diff --git a/profile/3.3.5a-windows-386/symbol/camera/func.sym b/profile/3.3.5a-windows-386/symbol/camera/func.sym index 9aac4fd..fed8e47 100644 --- a/profile/3.3.5a-windows-386/symbol/camera/func.sym +++ b/profile/3.3.5a-windows-386/symbol/camera/func.sym @@ -1,7 +1,7 @@ CCamera__SetupWorldProjection 004BECF0 f end=004BEE5E CameraSetupScreenProjection 004BEE60 f end=004BF0B9 CameraSetupWorldProjection 004BF0C0 f end=004BF0E2 -CCamera__CCamera 004BF770 f end=004BFA4E +CCamera__constructor 004BF770 f end=004BFA4E CameraCreate 004BFCA0 f end=004BFCD4 CameraGetCoord 004C1290 f end=004C12AA CGCamera__GetCollisionQueryFlags 005FEC50 f end=005FEC67 diff --git a/profile/3.3.5a-windows-386/symbol/characterselection/func.sym b/profile/3.3.5a-windows-386/symbol/characterselection/func.sym index 84426ae..2c4ff61 100644 --- a/profile/3.3.5a-windows-386/symbol/characterselection/func.sym +++ b/profile/3.3.5a-windows-386/symbol/characterselection/func.sym @@ -1,4 +1,4 @@ -CCharacterSelection__ClearCharacterList 004E47F0 f end=004E4877 CCharacterSelection__UpdateCharacterNameDeclension 004E2BD0 f end=004E2C2D CCharacterSelection__GetCharacterDisplay 004E2EF0 f end=004E2F10 CCharacterSelection__Shutdown 004E38F0 f end=004E3A1D +CCharacterSelection__ClearCharacterList 004E47F0 f end=004E4877 diff --git a/profile/3.3.5a-windows-386/symbol/chat/func.sym b/profile/3.3.5a-windows-386/symbol/chat/func.sym index e3225d4..e824a83 100644 --- a/profile/3.3.5a-windows-386/symbol/chat/func.sym +++ b/profile/3.3.5a-windows-386/symbol/chat/func.sym @@ -1,3 +1,3 @@ CGChat__ZoneUpdate 00508090 f end=0050825E -CGChat__InitializeGame 0050EDD0 f end=0050F3ED CGChat__Complain 0050DFD0 f end=0050E117 +CGChat__InitializeGame 0050EDD0 f end=0050F3ED diff --git a/profile/3.3.5a-windows-386/symbol/client/func.sym b/profile/3.3.5a-windows-386/symbol/client/func.sym index 87a9906..2c75256 100644 --- a/profile/3.3.5a-windows-386/symbol/client/func.sym +++ b/profile/3.3.5a-windows-386/symbol/client/func.sym @@ -1,4 +1,5 @@ PatchFiles__qsortpatchfiles 00401200 f ; int __cdecl PatchFiles::qsortpatchfiles(char **, char **) +CCommand_ReloadUI 00401B00 f end=00401B15 SetPaths 00402B20 f end=00402B8B TimingMethodCallback 00403200 f end=00403294 CCommand_TimingInfo 004032A0 f end=004032FF @@ -7,6 +8,7 @@ ClientPostClose 004033C0 f end=004033D1 StartupStreaming 00403600 f end=004036A4 type="void __stdcall func(char* manifest@)" WowClientInit 00404130 f end=004042BC InitializeEngineCallback 004047E0 f end=00404923 +ClientUpdateTaxiBenchmarkMode 00405130 f end=00405274 PatchFiles__EnumPatchArchives 00405A10 f ; int __cdecl PatchFiles::EnumPatchArchives(OS_FILE_DATA *fileData, PatchOnDemand__Cache *cbParam) PatchFiles__LoadArchives 00405AB0 f ; int __thiscall PatchFiles::LoadArchives(PatchFiles *this, const char *localeCode, char a3) DestroyEngineCallback 004066D0 f end=0040673F @@ -15,12 +17,10 @@ DestroyGlobal 00406B70 f end=00406C65 CommonMain 00406C70 f end=00406D64 quicksort 0047B800 f ; void __cdecl quicksort(unsigned int, unsigned int, int, int (__cdecl *)(unsigned int, unsigned int, int), int) ConvertPosition 0047FC90 f end=0047FDD4 +ObjectFree 004D3100 f end=004D3130 +SmartScreenRectClearGrid 00615890 f end=006158B1 +UpdatePendingPortraits 00616E80 f end=00616F8F +PortraitInitialize 00618010 f end=0061810E NameNeedsDeclensions 0076DD20 f end=0076DD3B RussianNameNeedsDeclensions 0076E270 f end=0076E2A6 IsRussian 007E1030 f end=007E1049 -CCommand_ReloadUI 00401B00 f end=00401B15 -PortraitInitialize 00618010 f end=0061810E -SmartScreenRectClearGrid 00615890 f end=006158B1 -UpdatePendingPortraits 00616E80 f end=00616F8F -ClientUpdateTaxiBenchmarkMode 00405130 f end=00405274 -ObjectFree 004D3100 f end=004D3130 diff --git a/profile/3.3.5a-windows-386/symbol/clientconnection/func.sym b/profile/3.3.5a-windows-386/symbol/clientconnection/func.sym index 06b421f..6855a61 100644 --- a/profile/3.3.5a-windows-386/symbol/clientconnection/func.sym +++ b/profile/3.3.5a-windows-386/symbol/clientconnection/func.sym @@ -1,6 +1,6 @@ -ClientConnection__Cleanup 006B0850 f end=006B086B ClientConnection__destructor 00465450 f end=0046547B ; ClientConnection::~ClientConnection() -ClientConnection__ClientConnection 006B0250 f end=006B02B5 +ClientConnection__constructor 006B0250 f end=006B02B5 +ClientConnection__Cleanup 006B0850 f end=006B086B ClientConnection__Disconnect 006B0940 f end=006B095E ; ClientConnection::Disconnect(DISCONNECT_REASON) ClientConnection__PollStatus 006B1100 f end=006B11FC ; ClientConnection::PollStatus(WOWCS_OPS&, char const**, int&, int&) ClientConnection__Cancel 006B1200 f end=006B1252 ; ClientConnection::Cancel(int) diff --git a/profile/3.3.5a-windows-386/symbol/clntobjmgr/func.sym b/profile/3.3.5a-windows-386/symbol/clntobjmgr/func.sym new file mode 100644 index 0000000..9e011f7 --- /dev/null +++ b/profile/3.3.5a-windows-386/symbol/clntobjmgr/func.sym @@ -0,0 +1,4 @@ +ObjectUpdateHandler 004D73A0 f end=004D74CA +ObjectCompressedUpdateHandler 004D74D0 f end=004D760E +OnObjectDestroy 004D7610 f end=004D76D1 +ClntObjMgrInitialize 004D76E0 f end=004D7749 diff --git a/profile/3.3.5a-windows-386/symbol/commentator/func.sym b/profile/3.3.5a-windows-386/symbol/commentator/func.sym index c8f6b7b..7a26544 100644 --- a/profile/3.3.5a-windows-386/symbol/commentator/func.sym +++ b/profile/3.3.5a-windows-386/symbol/commentator/func.sym @@ -1,4 +1,4 @@ -CGCommentator__InitializeGame 0056C150 f end=0056C1B3 CGCommentator__Update 005689A0 f end=00568F50 CGCommentator__SnapCameraToPlayer 0056B510 f end=0056B5BD CGCommentator__PostInit 0056B830 f end=0056B895 +CGCommentator__InitializeGame 0056C150 f end=0056C1B3 diff --git a/profile/3.3.5a-windows-386/symbol/comsatclient/func.sym b/profile/3.3.5a-windows-386/symbol/comsatclient/func.sym index eaefc1f..bef809f 100644 --- a/profile/3.3.5a-windows-386/symbol/comsatclient/func.sym +++ b/profile/3.3.5a-windows-386/symbol/comsatclient/func.sym @@ -1 +1 @@ -ComSatClient_Init 007DFAF0 f end=007DFE9C \ No newline at end of file +ComSatClient_Init 007DFAF0 f end=007DFE9C diff --git a/profile/3.3.5a-windows-386/symbol/containerinfo/func.sym b/profile/3.3.5a-windows-386/symbol/containerinfo/func.sym index 3a7a8e8..3673b21 100644 --- a/profile/3.3.5a-windows-386/symbol/containerinfo/func.sym +++ b/profile/3.3.5a-windows-386/symbol/containerinfo/func.sym @@ -1,3 +1,3 @@ +CGContainerInfo__UpdateItem 005D7320 f end=005D737B CGContainerInfo__UpdateContainers 005D9960 f end=005D9B3B CGContainerInfo__EnterWorld 005D9C20 f end=005D9D8F -CGContainerInfo__UpdateItem 005D7320 f end=005D737B diff --git a/profile/3.3.5a-windows-386/symbol/corpse/func.sym b/profile/3.3.5a-windows-386/symbol/corpse/func.sym index 7589d87..f546c0a 100644 --- a/profile/3.3.5a-windows-386/symbol/corpse/func.sym +++ b/profile/3.3.5a-windows-386/symbol/corpse/func.sym @@ -1,2 +1,2 @@ -CGCorpse_C__GetFactionTemplate 00705A80 f end=00705AB2 CGCorpse_C__CanBeLooted 007058F0 f end=007058FD +CGCorpse_C__GetFactionTemplate 00705A80 f end=00705AB2 diff --git a/profile/3.3.5a-windows-386/symbol/cursor/func.sym b/profile/3.3.5a-windows-386/symbol/cursor/func.sym index e011d6e..35dbf68 100644 --- a/profile/3.3.5a-windows-386/symbol/cursor/func.sym +++ b/profile/3.3.5a-windows-386/symbol/cursor/func.sym @@ -1,10 +1,10 @@ CopyCursorImage 006160B0 f end=00616211 type="int32_t __usercall func@(uint32_t** image@, MipBits* mipImages@, uint32_t width@, uint32_t height)" CursorGetResetMode 00616260 f end=00616266 CursorSetResetMode 00616270 f end=0061627D +CursorGetModeFromName 00616280 f end=006162BB UpdateCursor 006162C0 f end=006163AD CursorInitialize 006163B0 f end=006164A5 CursorGrabMoney 00616510 f end=006165A2 CursorGrabSpell 006165B0 f end=00616625 CursorDropItem 006167E0 f end=006167F9 CursorSetMode 00616800 f end=0061682E type="void __stdcall func(CURSORMODE mode)" -CursorGetModeFromName 00616280 f end=006162BB diff --git a/profile/3.3.5a-windows-386/symbol/cvar/func.sym b/profile/3.3.5a-windows-386/symbol/cvar/func.sym index a5112c8..91c01c6 100644 --- a/profile/3.3.5a-windows-386/symbol/cvar/func.sym +++ b/profile/3.3.5a-windows-386/symbol/cvar/func.sym @@ -1,3 +1,4 @@ +CVar__Set 00766940 f end=00766982 CVGxColorBitsCallback 00769240 f end=007692CF type="bool __stdcall func(CVar* h, char* oldValue, char* newValue, void* arg)" CVGxDepthBitsCallback 007692D0 f end=0076935F type="bool __stdcall func(CVar* h, char* oldValue, char* newValue, void* arg)" CVGxTripleBufferCallback 00769360 f end=007693AB type="bool __stdcall func(CVar* h, char* oldValue, char* newValue, void* arg)" @@ -19,4 +20,3 @@ CVGxStereoConvergenceCallback 00769C30 f end=00769C54 type="bool __stdcall func( CVGxStereoSeparationCallback 00769C60 f end=00769C84 type="bool __stdcall func(CVar* h, char* oldValue, char* newValue, void* arg)" CVGxResolutionCallback 0076A220 f end=0076A57F type="bool __stdcall func(CVar* h, char* oldValue, char* newValue, void* arg)" CVGxRefreshCallback 0076A580 f end=0076A62D type="bool __stdcall func(CVar* h, char* oldValue, char* newValue, void* arg)" -CVar__Set 00766940 f end=00766982 diff --git a/profile/3.3.5a-windows-386/symbol/cvar/label.sym b/profile/3.3.5a-windows-386/symbol/cvar/label.sym index 901ec77..49aacc3 100644 --- a/profile/3.3.5a-windows-386/symbol/cvar/label.sym +++ b/profile/3.3.5a-windows-386/symbol/cvar/label.sym @@ -1,6 +1,7 @@ s_cvDeselectOnClick 00BD08F0 l type="CVar*" s_cvAutoLootDefault 00BD0914 l type="CVar*" -s_cvPredictedPower 00BD0A08 l type="CVar*" +g_predictedHealthCVar 00BD0A04 l type="CVar*" +g_predictedPowerCVar 00BD0A08 l type="CVar*" s_cvGxStereoEnabled 00CABA98 l type="CVar*" s_cvGxRefresh 00CABA9C l type="CVar*" s_cvGxMaximize 00CABAA0 l type="CVar*" diff --git a/profile/3.3.5a-windows-386/symbol/datastore/func.sym b/profile/3.3.5a-windows-386/symbol/datastore/func.sym index cf8be4e..3b90e8c 100644 --- a/profile/3.3.5a-windows-386/symbol/datastore/func.sym +++ b/profile/3.3.5a-windows-386/symbol/datastore/func.sym @@ -1,4 +1,4 @@ -CDataStore__CDataStore 00401050 f end=0040106E type="CDataStore* __thiscall func(CDataStore* this)" +CDataStore__constructor 00401050 f end=0040106E type="CDataStore* __thiscall func(CDataStore* this)" CDataStore__FetchWrite 00401070 f ; protected: int __thiscall CDataStore::FetchWrite(unsigned int,unsigned int,char const *,int) CDataStore__IsRead 004010D0 f ; CDataStore::IsRead() const CDataStore__Reset 004010E0 f ; CDataStore::Reset() diff --git a/profile/3.3.5a-windows-386/symbol/daynight/func.sym b/profile/3.3.5a-windows-386/symbol/daynight/func.sym index a2ed7f7..2baaf0f 100644 --- a/profile/3.3.5a-windows-386/symbol/daynight/func.sym +++ b/profile/3.3.5a-windows-386/symbol/daynight/func.sym @@ -1,4 +1,3 @@ -DayNight__DNGlare__Initialize 009AD000 f end=009AD0A3 type="void __thiscall func(DayNight__DNGlare* this, char* a1)" DayNight__Update 007816F0 f end=007819BC ; DayNight::Update(unsigned int, float, float) DayNight__CalcFogRate 007ECD00 f end=007ECD76 ; DayNight::CalcFogRate(float, float) DayNight__SetOverrideLightParamsID 007ECEC0 f end=007ECEDC ; DayNight::SetOverrideLightParamsID(int) @@ -12,4 +11,5 @@ DayNight__SetPlanets 007EECC0 f end=007EF6D7 ; DayNight::SetPlanets() DayNight__UpdateFog 007F16F0 f end=007F1B0C ; DayNight::UpdateFog() DayNightInitialize 007F2790 f end=007F2A1F DayNight__SetColors 007F3230 f end=007F3913 ; DayNight::SetColors() -DayNight__UpdateLighting 007F3920 f end=007F39AA ; DayNight::UpdateLighting() \ No newline at end of file +DayNight__UpdateLighting 007F3920 f end=007F39AA ; DayNight::UpdateLighting() +DayNight__DNGlare__Initialize 009AD000 f end=009AD0A3 type="void __thiscall func(DayNight__DNGlare* this, char* a1)" diff --git a/profile/3.3.5a-windows-386/symbol/effect/func.sym b/profile/3.3.5a-windows-386/symbol/effect/func.sym index 1960d33..d657005 100644 --- a/profile/3.3.5a-windows-386/symbol/effect/func.sym +++ b/profile/3.3.5a-windows-386/symbol/effect/func.sym @@ -1,4 +1,4 @@ -CEffect__Destroy 006FA3C0 f end=006FA444 CEffect__AddSpecialEffect 006F9260 f end=006F9394 -CEffect__Release 006FA390 f end=006FA3B2 CEffect__Create 006F9D70 f end=006F9EBC +CEffect__Release 006FA390 f end=006FA3B2 +CEffect__Destroy 006FA3C0 f end=006FA444 diff --git a/profile/3.3.5a-windows-386/symbol/emergencymem/func.sym b/profile/3.3.5a-windows-386/symbol/emergencymem/func.sym index ab4b84c..794f915 100644 --- a/profile/3.3.5a-windows-386/symbol/emergencymem/func.sym +++ b/profile/3.3.5a-windows-386/symbol/emergencymem/func.sym @@ -1,2 +1,2 @@ +EmergencyMem__Unlock 00682C40 f end=00682C45 EmergencyMem__Lock 00685E90 f end=00685EB0 type="void* __thiscall func(EmergencyMem* this, uint32_t a1)" -EmergencyMem__Unlock 00682C40 f end=00682C45 \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/equipmentmanager/func.sym b/profile/3.3.5a-windows-386/symbol/equipmentmanager/func.sym index aeb5cf4..e23b34d 100644 --- a/profile/3.3.5a-windows-386/symbol/equipmentmanager/func.sym +++ b/profile/3.3.5a-windows-386/symbol/equipmentmanager/func.sym @@ -1,9 +1,9 @@ -CGEquipmentManager__GetSetByID 005AE5C0 f end=005AE5F2 -CGEquipmentManager__GetFullIconPath 005AE6B0 f end=005AE751 CGEquipmentManager__EnterWorld 005AD690 f end=005AD6A2 -CGEquipmentManager__InitializeGame 005AFBB0 f end=005AFC35 CGEquipmentManager__CanUseEquipmentSets 005AD6B0 f end=005AD6F8 CGEquipmentManager__SetContainsLockedItems 005AD940 f end=005AD9AF CGEquipmentManager__SetUsesLockedSlots 005AE040 f end=005AE0B3 CGEquipmentManager__DeleteEquipmentSet 005AE260 f end=005AE37B +CGEquipmentManager__GetSetByID 005AE5C0 f end=005AE5F2 CGEquipmentManager__GetSetByName 005AE600 f end=005AE655 +CGEquipmentManager__GetFullIconPath 005AE6B0 f end=005AE751 +CGEquipmentManager__InitializeGame 005AFBB0 f end=005AFC35 diff --git a/profile/3.3.5a-windows-386/symbol/event/func.sym b/profile/3.3.5a-windows-386/symbol/event/func.sym index b6ebdbf..f24a83e 100644 --- a/profile/3.3.5a-windows-386/symbol/event/func.sym +++ b/profile/3.3.5a-windows-386/symbol/event/func.sym @@ -15,6 +15,7 @@ EventUnregisterEx 0047D450 f end=0047D4B7 EventSetTimer 0047D530 f end=0047D59C EventKillTimer 0047D620 f end=0047D683 type="void __stdcall func(uint32_t timerId, void* handlerFunction, char* functionName)" EventSetMouseMode 0047D690 f end=0047D6FD +EventInputGetMousePosition 0047D700 f end=0047D75E EventPostClose 0047D760 f end=0047D769 EventRegister 0047D770 f end=0047D78D EventUnregister 0047D790 f end=0047D7A9 @@ -59,4 +60,3 @@ IEvtTimerDispatch 00481100 f end=00481289 IEvtTimerKill 00481290 f end=0048138F IEvtTimerSet 00481390 f end=004814E4 TInstanceIdTable_EvtContext__Unlock 00774660 f end=00774675 -EventInputGetMousePosition 0047D700 f end=0047D75E diff --git a/profile/3.3.5a-windows-386/symbol/ffx/func.sym b/profile/3.3.5a-windows-386/symbol/ffx/func.sym index 67909bf..3cd0d10 100644 --- a/profile/3.3.5a-windows-386/symbol/ffx/func.sym +++ b/profile/3.3.5a-windows-386/symbol/ffx/func.sym @@ -1,4 +1,4 @@ +EffectDeath__constructor 007EA260 f end=007EA416 +EffectNetherWorld__constructor 007EA470 f end=007EA592 FFX__Destroy 008C0360 f end=008C0589 -EffectDeath__EffectDeath 007EA260 f end=007EA416 -EffectNetherWorld__EffectNetherWorld 007EA470 f end=007EA592 FFX__Init 008C12F0 f end=008C1513 diff --git a/profile/3.3.5a-windows-386/symbol/file/func.sym b/profile/3.3.5a-windows-386/symbol/file/func.sym index dc93412..565f4e9 100644 --- a/profile/3.3.5a-windows-386/symbol/file/func.sym +++ b/profile/3.3.5a-windows-386/symbol/file/func.sym @@ -7,6 +7,8 @@ SFile__SetBasePath 00421A80 f end=00421AE5 SFile__SetDataPath 00421AF0 f end=00421B4A SFile__SetFilePointer 00421BB0 f end=00421C98 SFile__Unload 00421CA0 f end=00421CB8 +_SFileLoadFileEx 00421FF0 f end=00422031 +_SFileUnloadFile 00422090 f end=004220A9 SFile__SetStreamingStatus 004220B0 f end=004220F1 SFile__InitializeStreaming 00422100 f end=00422125 SFile__IsStreamingMode 00422130 f end=00422139 @@ -18,5 +20,3 @@ SFile__OpenEx 00424B50 f end=00424E44 SFile__Load 00424E80 f end=00424F46 SFile__LoadFile 00424F50 f end=00424F74 SFile__Open 00424F80 f end=00424F98 -_SFileLoadFileEx 00421FF0 f end=00422031 -_SFileUnloadFile 00422090 f end=004220A9 diff --git a/profile/3.3.5a-windows-386/symbol/framescript/func.sym b/profile/3.3.5a-windows-386/symbol/framescript/func.sym index bdfb59a..f710cc9 100644 --- a/profile/3.3.5a-windows-386/symbol/framescript/func.sym +++ b/profile/3.3.5a-windows-386/symbol/framescript/func.sym @@ -1,10 +1,13 @@ FrameScript_GetObjectThis 004A81B0 f end=004A8235 ; FrameScript_GetObjectThis(lua_State*, int) FrameScript_Object__CreateScriptMetaTable 00816790 f end=008167D3 ; FrameScript_Object::CreateScriptMetaTable(lua_State*, void (*)(lua_State*)) FrameScript_Object__FillScriptMethodTable 008167E0 f end=00816822 ; FrameScript_Object::FillScriptMethodTable(lua_State*, FrameScript_Method*, int) +FrameScript_Object__GetScriptByName 00816830 f end=00816865 FrameScript_GetCurrentFunction 00817EE0 f end=00817F88 FrameScript_Sprintf 00818070 f end=0081839F type="void __stdcall func(lua_State* L, int startIndex, char* buffer, uint32_t bufferSize)" ; startIndex is the index of starting argument on stack -FrameScript_Object__FrameScript_Object 00819830 f end=0081984B type="void __thiscall func(FrameScript_Object* this)" ; FrameScript_Object::FrameScript_Object() +FrameScript_GetErrorHandlerReference 008192F0 f end=008192F6 +FrameScript_Object__constructor 00819830 f end=0081984B type="void __thiscall func(FrameScript_Object* this)" ; FrameScript_Object::FrameScript_Object() FrameScript_Object__destructor 00819850 f end=00819872 ; FrameScript_Object::~FrameScript_Object() +FrameScript_Object__RegisterScriptObject 00819880 f end=008199B8 FrameScript_Object__UnregisterScriptObject 008199C0 f end=00819A58 ; FrameScript_Object::UnregisterScriptObject(char const*) FrameScript_Initialize 00819BB0 f end=00819D38 FrameScript_Execute 00819EA0 f end=0081A2B5 type="void __stdcall func(int32_t function, FrameScript_Object* object, int32_t args, char* args_fmt, FrameScript_EventObject* eventObject)" @@ -15,6 +18,3 @@ FrameScript_Flush 0081AC70 f end=0081AC8B vFrameScript_SignalEvent 0081AC90 f end=0081AE4F ; vFrameScript_SignalEvent(unsigned int, char const*, char*) FrameScript_SignalEvent 0081B530 f end=0081B549 ; FrameScript_SignalEvent(unsigned int, char const*, ...) FrameScript_CreateEvents 0081B5F0 f end=0081B714 ; FrameScript_CreateEvents(char const**, unsigned int) -FrameScript_GetErrorHandlerReference 008192F0 f end=008192F6 -FrameScript_Object__RegisterScriptObject 00819880 f end=008199B8 -FrameScript_Object__GetScriptByName 00816830 f end=00816865 diff --git a/profile/3.3.5a-windows-386/symbol/framescript/label.sym b/profile/3.3.5a-windows-386/symbol/framescript/label.sym index e62d3c7..1a39d20 100644 --- a/profile/3.3.5a-windows-386/symbol/framescript/label.sym +++ b/profile/3.3.5a-windows-386/symbol/framescript/label.sym @@ -1,2 +1,2 @@ -s_scriptProfileEnabled 00D3F798 l type="int32_t" FrameScript_Object__s_objectType 00D3F778 l +s_scriptProfileEnabled 00D3F798 l type="int32_t" diff --git a/profile/3.3.5a-windows-386/symbol/framexml/func.sym b/profile/3.3.5a-windows-386/symbol/framexml/func.sym index 6f510b5..5a99178 100644 --- a/profile/3.3.5a-windows-386/symbol/framexml/func.sym +++ b/profile/3.3.5a-windows-386/symbol/framexml/func.sym @@ -1,9 +1,9 @@ FrameXML_LoadXML 00812530 f end=008125C0 FrameXML_RegisterLoadProgressCallback 00812840 f end=00812869 +FrameXML_FreeHashNodes 00812B90 f end=00812B9D ; FrameXML_FreeHashNodes() FrameXML_CreateFrame 00812FA0 f end=008131CD FrameXML_RegisterFactory 00813D20 f end=00813DEF FrameXML_RegisterDefault 00813DF0 f end=00813EDC FrameXML_ProcessFile 00813EE0 f end=00814333 FrameXML_CreateFrames 00814340 f end=008145A3 FrameXML_CheckSignature 008165E0 f end=00816767 -FrameXML_FreeHashNodes 00812B90 f end=00812B9D ; FrameXML_FreeHashNodes() \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/gamecamera/func.sym b/profile/3.3.5a-windows-386/symbol/gamecamera/func.sym index be845ea..db55685 100644 --- a/profile/3.3.5a-windows-386/symbol/gamecamera/func.sym +++ b/profile/3.3.5a-windows-386/symbol/gamecamera/func.sym @@ -2,4 +2,4 @@ CGCamera__ResetModelCamera 005FE320 f end=005FE357 CGCamera__ClearModelCamera 005FE360 f end=005FE398 CGCamera__SetModelCamera 00606570 f end=006066DB CGCamera__SetTarget 006066E0 f end=00606967 -CGCamera__CGCamera 00606B30 f end=00606F8E +CGCamera__constructor 00606B30 f end=00606F8E diff --git a/profile/3.3.5a-windows-386/symbol/gameobject/func.sym b/profile/3.3.5a-windows-386/symbol/gameobject/func.sym index e5a34ea..3fd1b84 100644 --- a/profile/3.3.5a-windows-386/symbol/gameobject/func.sym +++ b/profile/3.3.5a-windows-386/symbol/gameobject/func.sym @@ -1,6 +1,6 @@ +CGGameObject_C__CanUse 0070BA00 f end=0070BA0D +CGGameObject_C__CanUseNow 0070BA10 f end=0070BA24 CGGameObject_C__StartInteraction 0070BAB0 f end=0070BAC0 CGGameObject_C__GetInteractDistanceSquared 0070BAD0 f end=0070BB0D CGGameObject_C__CanChangeCursor 0070CE10 f end=0070CEB2 CGGameObject_C__GetCursorFile 0070CEC0 f end=0070CF2E -CGGameObject_C__CanUse 0070BA00 f end=0070BA0D -CGGameObject_C__CanUseNow 0070BA10 f end=0070BA24 diff --git a/profile/3.3.5a-windows-386/symbol/gameui/func.sym b/profile/3.3.5a-windows-386/symbol/gameui/func.sym index b19f766..17beb5d 100644 --- a/profile/3.3.5a-windows-386/symbol/gameui/func.sym +++ b/profile/3.3.5a-windows-386/symbol/gameui/func.sym @@ -13,6 +13,7 @@ CGGameUI__GetCursorVirtualItem 005136D0 f end=005136D6 CGGameUI__GetCursorVirtualItem 005136E0 f end=005136FA CGGameUI__IsAutoLooting 00513700 f end=00513740 CGGameUI__UnlockItem 00513770 f end=005137A0 +CGGameUI__InitClientControlState 00513880 f end=00513893 CGGameUI__GetPartyMember 005138D0 f end=005138F1 CGGameUI__SetInstanceLockTime 00513B20 f end=00513B8A CGGameUI__GetPartyMemberState 00513C30 f end=00513C66 @@ -24,6 +25,7 @@ CGGameUI__SendTarget 00518DC0 f end=00518E36 CGGameUI__CanPerformAction 005191C0 f end=0051924E CGGameUI__ClearCursor 00519280 f end=00519481 CGGameUI__DoPowerRegen 005196F0 f end=00519774 +CGGameUI__CastTradeItemSpell 005198A0 f end=0051999C CGGameUI__StopCinematicInternal 0051D7C0 f end=0051D95B CGGameUI__UpdateCorpseDistance 0051F5C0 f end=0051F684 CGGameUI__HandleObjectTrackChange 0051F790 f end=0051F9C3 @@ -34,6 +36,7 @@ CGGameUI__HandleDisplaySizeChanged 0051FB80 f end=0051FCD1 CGGameUI__SetInteractTarget 0051FCE0 f end=0051FDD9 CGGameUI__UpdateInteractTarget 0051FDE0 f end=0051FF1B CGGameUI__SetFocusTarget 0051FF20 f end=0051FFD5 +CGGameUI__ClosestObjectMatch 00520190 f end=00520403 CGGameUI__CanInspect 00520410 f end=005204B6 CGGameUI__NewZoneFeedback 005204C0 f end=005206DE CGGameUI__SetCursorItem 00520770 f end=0052087C @@ -42,6 +45,8 @@ CGGameUI__SetCursorPetAction 00520A80 f end=00520BAF CGGameUI__SetCursorPet 00520C60 f end=00520D29 CGGameUI__SetCursorVirtualItem 00520D30 f end=00520DB3 CGGameUI__SetCursorEquipmentSet 00520DC0 f end=00520E38 +CGGameUI__UpdateActivePlayer 00520F70 f end=00520FD2 +CGGameUI__OnClientControlChanged 00520FE0 f end=00521031 CGGameUI__RegisterFrameFactories 00521040 f end=005210CF CGGameUI__DisplayError 005216F0 f end=005218AD CGGameUI__AutoMouseOver 005220B0 f end=0052217B @@ -73,8 +78,3 @@ CGGameUI__InitializeGame 0052B550 f end=0052BADA DisableFadingScreen 005ED080 f end=005ED116 EnableFadingScreen 005ED480 f end=005ED587 UpdateModelForUI 00618110 f end=00618176 -CGGameUI__ClosestObjectMatch 00520190 f end=00520403 -CGGameUI__InitClientControlState 00513880 f end=00513893 -CGGameUI__UpdateActivePlayer 00520F70 f end=00520FD2 -CGGameUI__OnClientControlChanged 00520FE0 f end=00521031 -CGGameUI__CastTradeItemSpell 005198A0 f end=0051999C diff --git a/profile/3.3.5a-windows-386/symbol/gluemgr/func.sym b/profile/3.3.5a-windows-386/symbol/gluemgr/func.sym index 9af7e95..69cc459 100644 --- a/profile/3.3.5a-windows-386/symbol/gluemgr/func.sym +++ b/profile/3.3.5a-windows-386/symbol/gluemgr/func.sym @@ -1,3 +1,4 @@ +CGlueMgr__PatchDownloadExecuteCommand 00462190 f end=004621EB CGlueMgr__InitializeFFX 004D7D20 f end=004D7D93 CGlueMgr__UpdateWaitQueue 004D7DA0 f end=004D7E3A CGlueMgr__SetCurrentAccount 004D7F60 f end=004D7F82 @@ -6,6 +7,7 @@ CGlueMgr__LoginEnterMatrix 004D7FB0 f end=004D7FCD CGlueMgr__LoginCommitMatrix 004D7FF0 f end=004D802A CGlueMgr__LoginGetMatrixCoordinate 004D8030 f end=004D8071 CGlueMgr__LoginEnterToken 004D8080 f end=004D809D +CGlueMgr__GetActive 004D80A0 f end=004D80BC CGlueMgr__DisplayLoginStatus 004D80C0 f end=004D8200 CGlueMgr__OnRealmSplitMsg 004D8200 f end=004D826A CGlueMgr__SetScreen 004D82A0 f end=004D82B8 @@ -21,6 +23,7 @@ CGlueMgr__ChangeRealm 004D8BD0 f end=004D8C56 CGlueMgr__CreateCharacter 004D8C60 f end=004D8CB8 CGlueMgr__DeleteCharacter 004D8CC0 f end=004D8D20 CGlueMgr__RenameCharacter 004D8D20 f end=004D8E0B +CGlueMgr__GetSelectedCharInfo 004D9160 f end=004D9182 CGlueMgr__OnCharCustomizeResult 004D9190 f end=004D92C7 CGlueMgr__OnCharFactionChangeResult 004D92D0 f end=004D9480 CGlueMgr__OnKickReasonMsg 004D9500 f end=004D9582 @@ -33,6 +36,7 @@ CGlueMgr__DeclineCharacter 004D9A40 f end=004D9BCE CGlueMgr__EnterWorld 004D9BD0 f end=004D9F4F CGlueMgr__AddChangedOptionWarning 004D9F50 f end=004D9FA5 CGlueMgr__OnCharRenameResult 004DA090 f end=004DA189 +CGlueMgr__OnCharDeclineResult 004DA190 f end=004DA23D CGlueMgr__AcceptChangedOptionWarnings 004DA240 f end=004DA274 CGlueMgr__LogConnectionStatus 004DA3D0 f end=004DA4A8 CGlueMgr__SetLoginStateAndResult 004DA4B0 f end=004DA50D @@ -41,28 +45,24 @@ CGlueMgr__NetDisconnectHandler 004DA9D0 f end=004DAB3D CGlueMgr__Idle 004DAB40 f end=004DB9E4 CGlueMgr__Initialize 004DB9F0 f end=004DBBBF CGlueMgr__Shutdown 004DBBC0 f end=004DBC6C +GlueScriptEventsInitialize 004DBC70 f end=004DBE0B +GlueScriptEventsRegisterFunctions 004DD580 f end=004DD5A6 GlueScriptEventsUnregisterFunctions 004DD5B0 f end=004DD5CF CGlueMgr__SurveyDownloadFeed 004E4880 f end=004E489E CGlueMgr__SurveySendResults 004E48A0 f end=004E48D4 CGlueMgr__SurveyDownloadStart 004E48E0 f end=004E4A38 CGlueMgr__SurveyDownloadCancel 004E4A40 f end=004E4A9E +CGlueMgr__SurveyDownloadIdle 004E4AA0 f end=004E4B2C CGlueMgr__SurveyExecute 004E4B30 f end=004E4E75 +CGlueMgr__SurveyDownloadEnd 004E4E80 f end=004E4F66 +CGlueMgr__PatchDownloadExtractCommand 004E4F70 f end=004E4FFD +CGlueMgr__PatchDownloadDeleteCommand 004E5000 f end=004E5064 CGlueMgr__PatchDownloadFeed 004E51C0 f end=004E51DE CGlueMgr__GetPatchFolder 004E51E0 f end=004E51F8 CGlueMgr__PatchDownloadStart 004E5200 f end=004E53A0 CGlueMgr__PatchDownloadCancel 004E53A0 f end=004E541F CGlueMgr__PatchFailed 004E5420 f end=004E54C8 CGlueMgr__PatchDownloadIdle 004E54D0 f end=004E5722 +CGlueMgr__ScanDLLFinished 004E5940 f end=004E59B1 SystemRegisterFunctions 0060A120 f end=0060A143 SystemUnregisterFunctions 0060A150 f end=0060A16C -CGlueMgr__PatchDownloadExecuteCommand 00462190 f end=004621EB -CGlueMgr__GetActive 004D80A0 f end=004D80BC -CGlueMgr__GetSelectedCharInfo 004D9160 f end=004D9182 -CGlueMgr__OnCharDeclineResult 004DA190 f end=004DA23D -CGlueMgr__SurveyDownloadIdle 004E4AA0 f end=004E4B2C -CGlueMgr__SurveyDownloadEnd 004E4E80 f end=004E4F66 -CGlueMgr__PatchDownloadExtractCommand 004E4F70 f end=004E4FFD -CGlueMgr__PatchDownloadDeleteCommand 004E5000 f end=004E5064 -CGlueMgr__ScanDLLFinished 004E5940 f end=004E59B1 -GlueScriptEventsInitialize 004DBC70 f end=004DBE0B -GlueScriptEventsRegisterFunctions 004DD580 f end=004DD5A6 diff --git a/profile/3.3.5a-windows-386/symbol/gruntclientlink/func.sym b/profile/3.3.5a-windows-386/symbol/gruntclientlink/func.sym index 9502533..2b2afad 100644 --- a/profile/3.3.5a-windows-386/symbol/gruntclientlink/func.sym +++ b/profile/3.3.5a-windows-386/symbol/gruntclientlink/func.sym @@ -1,5 +1,7 @@ +Grunt__ClientLink__Send 008CBA40 f end=008CBA8E ; 00005410 Grunt__ClientLink__Shutdown 008CBA90 f end=008CBADD ; Grunt::ClientLink::Shutdown() Grunt__ClientLink__Disconnect 008CBAE0 f end=008CBB09 ; Grunt::ClientLink::Disconnect() +Grunt__ClientLink__SetState 008CBB10 f end=008CBB3A ; 00005410 Grunt__ClientLink__Connect 008CBB40 f end=008CBBE3 ; Grunt::ClientLink::Connect(char const*) Grunt__ClientLink__CmdRealmList 008CC250 f end=008CC3D2 ; Grunt::ClientLink::CmdRealmList(CDataStore&) Grunt__ClientLink__CmdAuthLogonChallenge 008CC3E0 f end=008CC794 ; Grunt::ClientLink::CmdAuthLogonChallenge(CDataStore&) @@ -19,5 +21,3 @@ Grunt__ClientLink__GetRealmList 008CE0F0 f end=008CE1F5 ; Grunt::ClientLink::Get Grunt__ClientLink__ProveVersion 008CE720 f end=008CED10 ; Grunt::ClientLink::ProveVersion(unsigned char const*) Grunt__ClientLink__Call 008CF600 f end=008CF67D ; Grunt::ClientLink::Call() Grunt__ClientLink__ClientLink 008CF800 f end=008CF905 ; Grunt::ClientLink::ClientLink(Grunt::ClientResponse&) -Grunt__ClientLink__Send 008CBA40 f end=008CBA8E ; 00005410 -Grunt__ClientLink__SetState 008CBB10 f end=008CBB3A ; 00005410 diff --git a/profile/3.3.5a-windows-386/symbol/gruntlogin/func.sym b/profile/3.3.5a-windows-386/symbol/gruntlogin/func.sym index 7bf4a38..18e1ced 100644 --- a/profile/3.3.5a-windows-386/symbol/gruntlogin/func.sym +++ b/profile/3.3.5a-windows-386/symbol/gruntlogin/func.sym @@ -13,7 +13,7 @@ GruntLogin__Wait 008CA7F0 f end=008CA875 ; GruntLogin::Wait(char const*, LoginDa GruntLogin__EnterPIN 008CA880 f end=008CA9AB ; GruntLogin::EnterPIN(int, unsigned char*) GruntLogin__GetVersionChallenge 008CAC00 f end=008CAC07 ; GruntLogin::GetVersionChallenge() GruntLogin__Init 008CAC50 f end=008CAC99 ; GruntLogin::Init(LoginResponse*) -GruntLogin__GruntLogin 008CACA0 f end=008CAD19 ; GruntLogin::GruntLogin() +GruntLogin__constructor 008CACA0 f end=008CAD19 ; GruntLogin::GruntLogin() GruntLogin__Logoff 008CAD20 f end=008CAD32 ; GruntLogin::Logoff() GruntLogin__SetMatrixInfo 008CAD40 f end=008CAF95 ; GruntLogin::SetMatrixInfo(bool, unsigned char, unsigned char, unsigned char, unsigned char, bool, unsigned char, unsigned long long, unsigned char const*, unsigned int) GruntLogin__ReconnectResult 008CB020 f end=008CB13E ; GruntLogin::ReconnectResult(Grunt::Result, unsigned char const*, unsigned int, unsigned short) diff --git a/profile/3.3.5a-windows-386/symbol/grunttimer/func.sym b/profile/3.3.5a-windows-386/symbol/grunttimer/func.sym index 54b8609..0dd1f49 100644 --- a/profile/3.3.5a-windows-386/symbol/grunttimer/func.sym +++ b/profile/3.3.5a-windows-386/symbol/grunttimer/func.sym @@ -1,4 +1,4 @@ Grunt__Timer__Insert 008CE5C0 f end=008CE6C6 ; Grunt::Timer::Insert(Grunt::Timer::Event&) Grunt__Timer__Pump 008CED90 f end=008CEE11 ; Grunt::Timer::Pump() Grunt__Timer__ThreadProc 008CF770 f end=008CF794 ; Grunt::Timer::ThreadProc(void*) -Grunt__Timer__Timer 008CF7A0 f end=008CF7F9 ; Grunt::Timer::Timer() \ No newline at end of file +Grunt__Timer__Timer 008CF7A0 f end=008CF7F9 ; Grunt::Timer::Timer() diff --git a/profile/3.3.5a-windows-386/symbol/guildbankinfo/func.sym b/profile/3.3.5a-windows-386/symbol/guildbankinfo/func.sym index 084cd26..4d4a8fe 100644 --- a/profile/3.3.5a-windows-386/symbol/guildbankinfo/func.sym +++ b/profile/3.3.5a-windows-386/symbol/guildbankinfo/func.sym @@ -1,4 +1,4 @@ CGGuildBankInfo__Unlock 005A4CE0 f end=005A4D24 CGGuildBankInfo__EnterWorld 005A56F0 f end=005A57FE -CGGuildBankInfo__InitializeGame 005A77D0 f end=005A7830 CGGuildBankInfo__DepositMoney 005A5B00 f end=005A5B95 +CGGuildBankInfo__InitializeGame 005A77D0 f end=005A7830 diff --git a/profile/3.3.5a-windows-386/symbol/gx/func.sym b/profile/3.3.5a-windows-386/symbol/gx/func.sym index 51e67ac..d236e02 100644 --- a/profile/3.3.5a-windows-386/symbol/gx/func.sym +++ b/profile/3.3.5a-windows-386/symbol/gx/func.sym @@ -20,6 +20,7 @@ GxAdapterMonitorModes 00681210 f end=00681219 type="int32_t __stdcall func(TSGro GxAdapterDesktopMode 00681220 f type="int32_t __stdcall func(CGxMonitorMode* mode)" GxDevCreate 00681290 f end=00681301 GxSceneClear 006813B0 f end=006813CD +GxTexCopy 006814D0 f end=00681524 GxQueryCreate 00681630 f end=0068165B type="void __stdcall func(CGxQuery** query, EGxQueryType type)" GxSetMaxFPS 00681770 f end=0068177D type="void __stdcall func(uint32_t maxFPS)" GxGetMaxFPS 00681780 f end=00681786 @@ -32,4 +33,3 @@ GxXformSetViewport 00681F60 f end=00682124 type="void __stdcall func(float minX, GxScenePresent 00682A00 f end=00682A33 GxDevDestroy 00682B80 f end=00682C35 CGxMonitorModeSort 00689E80 f type="int32_t __stdcall func(void* a, void* b)" -GxTexCopy 006814D0 f end=00681524 \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/gxapilight/func.sym b/profile/3.3.5a-windows-386/symbol/gxapilight/func.sym index b7097a4..20d537d 100644 --- a/profile/3.3.5a-windows-386/symbol/gxapilight/func.sym +++ b/profile/3.3.5a-windows-386/symbol/gxapilight/func.sym @@ -1 +1 @@ -CGxApiLight__operator_equals 00684620 f end=006847C8 type="CGxApiLight* __thiscall func(CGxApiLight* this, CGxLight* light)" ; CGxApiLight::operator=(CGxLight const&) \ No newline at end of file +CGxApiLight__operator_equals 00684620 f end=006847C8 type="CGxApiLight* __thiscall func(CGxApiLight* this, CGxLight* light)" ; CGxApiLight::operator=(CGxLight const&) diff --git a/profile/3.3.5a-windows-386/symbol/gxdevice/func.sym b/profile/3.3.5a-windows-386/symbol/gxdevice/func.sym index d864aca..a0e3bb5 100644 --- a/profile/3.3.5a-windows-386/symbol/gxdevice/func.sym +++ b/profile/3.3.5a-windows-386/symbol/gxdevice/func.sym @@ -1,6 +1,7 @@ CGxDevice__RsPush 00409670 f end=004096CC type="void __thiscall func(CGxDevice* this)" CGxDevice__CapsAspectRatio 0050F7C0 f end=0050F824 CGxDevice__Caps 00532AF0 f end=00532AF7 type="CGxCaps* __thiscall func(CGxDevice* this)" ; public: class CGxCaps const & __thiscall CGxDevice::Caps(void)const +CGxDevice__InitLights 00682C50 f end=00682CA8 type="void __thiscall func(CGxDevice* this)" CGxDevice__DeviceCreate 00682CB0 f end=00682CCB type="void __thiscall func(CGxDevice* this, int32_t (*windowProc)(void*, uint32_t, uintptr_t, intptr_t), CGxFormat* format)" CGxDevice__DeviceCreate 00682CD0 f end=00682CF0 type="void __thiscall func(CGxDevice* this, uintptr_t hwnd, CGxFormat* format)" CGxDevice__DeviceDestroy 00682CF0 f end=00682CFB type="void __thiscall func(CGxDevice* this)" @@ -9,6 +10,7 @@ CGxDevice__DeviceApi 00682D20 f end=00682D27 type="EGxApi __thiscall func(CGxDev CGxDevice__DeviceTakeScreenShot 00682D30 f end=00682D3B type="void __thiscall func(CGxDevice* this)" CGxDevice__IDevIsWindowed 00682D40 f end=00682D48 type="int32_t __thiscall func(CGxDevice* this)" CGxDevice__DeviceCurWindow 00682D70 f end=00682D76 type="CRect* __thiscall func(CGxDevice* this)" +CGxDevice__DeviceDefWindow 00682D80 f end=00682D87 type="CRect* __thiscall func(CGxDevice* this)" CGxDevice__CapsIsWindowVisible 00682DC0 f end=00682DE7 type="int32_t __thiscall func(CGxDevice* this, int32_t a2)" CGxDevice__CapsHasContext 00682E20 f end=00682E47 type="int32_t __thiscall func(CGxDevice* this, int32_t a2)" CGxDevice__ScenePresent 00682E50 f end=00682E66 type="void __thiscall func(CGxDevice* this)" @@ -33,17 +35,20 @@ CGxDevice__CursorLock 00683650 f end=00683657 type="uint32_t* __thiscall func(CG CGxDevice__CursorSetDepth 00683660 f end=00683670 type="void __thiscall func(CGxDevice* this, float depth)" CGxDevice__LogOpen 00683670 f end=006836A4 type="void __stdcall func()" ; static void CGxDevice::LogOpen(void) CGxDevice__LogClose 006836B0 f end=006836CA -CGxDevice__WindowConstrainTopByAspect 00683D60 f end=00683DB0 type="void __stdcall func(CiRect* windowRect)" -CGxDevice__WindowConstrainBottomByAspect 00683DB0 f end=00683DFE type="void __stdcall func(CiRect* windowRect)" -CGxDevice__WindowConstrainLeftByAspect 00683E00 f end=00683E50 type="void __stdcall func(CiRect* windowRect)" -CGxDevice__WindowConstrainRightByAspect 00683E50 f end=00683E9E type="void __stdcall func(CiRect* windowRect)" -CGxDevice__WindowConstrainLeft 00683EA0 f end=00683ECD type="void __stdcall func(CiRect* windowRect)" -CGxDevice__WindowConstrainRight 00683ED0 f end=00683EFD type="void __stdcall func(CiRect* windowRect)" -CGxDevice__WindowConstrainTop 00683F00 f end=00683F2B type="void __stdcall func(CiRect* windowRect)" -CGxDevice__WindowConstrainBottom 00683F30 f end=00683F5C type="void __stdcall func(CiRect* windowRect)" +CGxDevice__WaitForFPSCap 006836D0 f end=00683754 type="void __thiscall func(CGxDevice* this)" +CGxDevice__ClampRectToWindow 00683CE0 f end=00683D52 type="void __thiscall func(CGxDevice* this, CiRect* rect)" +CGxDevice__ClampRectTopByAspect 00683D60 f end=00683DB0 type="void __stdcall func(CiRect* windowRect)" +CGxDevice__ClampRectBottomByAspect 00683DB0 f end=00683DFE type="void __stdcall func(CiRect* windowRect)" +CGxDevice__ClampRectLeftByAspect 00683E00 f end=00683E50 type="void __stdcall func(CiRect* windowRect)" +CGxDevice__ClampRectRightByAspect 00683E50 f end=00683E9E type="void __stdcall func(CiRect* windowRect)" +CGxDevice__ClampRectLeft 00683EA0 f end=00683ECD type="void __stdcall func(CiRect* windowRect)" +CGxDevice__ClampRectRight 00683ED0 f end=00683EFD type="void __stdcall func(CiRect* windowRect)" +CGxDevice__ClampRectTop 00683F00 f end=00683F2B type="void __stdcall func(CiRect* windowRect)" +CGxDevice__ClampRectBottom 00683F30 f end=00683F5C type="void __stdcall func(CiRect* windowRect)" CGxDevice__DeviceSetFormat 006840F0 f end=0068416C type="int32_t __thiscall func(CGxDevice* this, CGxFormat* format)" CGxDevice__DeviceSetGamma 00684170 f end=00684189 type="void __thiscall func(CGxDevice* this, float gamma)" CGxDevice__DeviceSetGamma 00684190 f end=006841AF type="int32_t __thiscall func(CGxDevice* this, CGxGammaRamp* ramp)" +CGxDevice__DeviceScreenShot 006841D0 f end=00684254 type="void __thiscall func(CGxDevice* this)" CGxDevice__DeviceReadScreenShot 00684260 f end=0068429E type="void __thiscall func(CGxDevice* this, uint32_t* w, uint32_t* h, CImVector** pixels)" CGxDevice__DeviceSetRenderTarget 006842A0 f end=0068435D type="void __thiscall func(CGxDevice* this, EGxBuffer buffer, CGxTex* texture, uint32_t plane)" CGxDevice__DeviceSetDefWindow 00684360 f end=006843B0 type="void __thiscall func(CGxDevice* this, CRect* rect)" @@ -82,16 +87,18 @@ CGxDevice__TexCreate 00685C60 f end=00685CCB type="void __thiscall func(CGxDevic 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)" +CGxDevice__IRsInit 00686120 f end=006865AD type="void __thiscall func(CGxDevice* this)" CGxDevice__BufCreate 00687660 f end=006876C9 type="CGxBuf* __thiscall func(CGxDevice* this, CGxPool* pool, uint32_t itemSize, uint32_t itemCount, uint32_t index)" 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__DeviceCreateStreamBufs 00687900 f end=00687937 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)" CGxDevice__PoolDestroy 00688340 f end=00688372 type="void __thiscall func(CGxDevice* this, CGxPool* pool)" -CGxDevice__CGxDevice 00688690 f end=0068903F type="void __thiscall func(CGxDevice* this)" +CGxDevice__constructor 00688690 f end=0068903F type="void __thiscall func(CGxDevice* this)" CGxDevice__XformSetProjection 00689040 f end=0068904F type="void __thiscall func(CGxDevice* this, C44Matrix* matrix)" CGxDevice__XformSetView 00689050 f end=006890C0 type="void __thiscall func(CGxDevice* this, C44Matrix* matrix)" CGxDevice__destructor 006890C0 f end=00689460 type="void __thiscall func(CGxDevice* this)" @@ -107,6 +114,3 @@ CGxDevice__AdapterMonitorModes 0068A4C0 f end=0068A589 type="void __stdcall func CGxDevice__NewOpenGl 0068BF20 f end=0068BF44 type="CGxDevice* __stdcall func()" CGxDevice__NewD3d9Ex 0068C220 f end=0068C244 type="CGxDevice* __stdcall func()" 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)" -CGxDevice__DeviceCreateStreamBufs 00687900 f end=00687937 -CGxDevice__IRsInit 00686120 f end=006865AD type="void __thiscall func(CGxDevice* this)" -CGxDevice__InitLights 00682C50 f end=00682CA8 type="void __thiscall func(CGxDevice* this)" diff --git a/profile/3.3.5a-windows-386/symbol/gxdevice/label.sym b/profile/3.3.5a-windows-386/symbol/gxdevice/label.sym index 066cc83..4d7b494 100644 --- a/profile/3.3.5a-windows-386/symbol/gxdevice/label.sym +++ b/profile/3.3.5a-windows-386/symbol/gxdevice/label.sym @@ -1,12 +1,12 @@ +CGxDevice__s_texFormatBitDepth 00A2DAF8 l type="uint32_t[13]" +CGxDevice__s_texFormatBytesPerBlock 00A2DB60 l type="uint32_t[13]" CGxDevice__v_table 00A2DDC0 l type="CGxDevice__v_table" +CGxDevice__kWinMinSize 00AD8BC0 l type="C2iVector" g_theGxDevicePtr 00C5DF88 l type="CGxDevice*" CGxDevice__s_uiVertexShader 00C5DFD8 l CGxDevice__s_shadowConstants 00C5DFE0 l +CGxDevice__kWinAspect 00C5FFF0 l type="float" 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" -CGxDevice__kWinMinSize 00AD8BC0 l type="C2iVector" -CGxDevice__kWinAspect 00C5FFF0 l type="float" -CGxDevice__s_texFormatBytesPerBlock 00A2DB60 l type="uint32_t[13]" -CGxDevice__s_texFormatBitDepth 00A2DAF8 l type="uint32_t[13]" \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/gxdeviced3d/func.sym b/profile/3.3.5a-windows-386/symbol/gxdeviced3d/func.sym index a17174a..435c5fc 100644 --- a/profile/3.3.5a-windows-386/symbol/gxdeviced3d/func.sym +++ b/profile/3.3.5a-windows-386/symbol/gxdeviced3d/func.sym @@ -1,5 +1,6 @@ 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__IReleaseD3dPool 0068E1F0 f end=0068E247 type="void __thiscall func(CGxDeviceD3d* this, CGxPool* pool)" 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)" @@ -15,19 +16,21 @@ 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)" +WindowClassCreate 0068EB20 f end=0068EBA8 type="uint16_t __stdcall func()" 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__Sub68F6A0 0068F6A0 f end=0068F762 type="void __thiscall func(CGxDeviceD3d* this)" 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__DeviceCopyTex 0068F950 f end=0068FA5E type="void __thiscall func(CGxDeviceD3d* this, CGxTex* sourceTex, uint32_t sourcePlane, CGxTex* destTex, uint32_t destPlane)" 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 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__constructor 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 type="void __thiscall func(CGxDeviceD3d* this, int32_t freeTextures)" @@ -36,12 +39,12 @@ CGxDeviceD3d__IDestroyD3d 006903B0 f end=006904C4 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 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__DeviceCreate 00690750 f end=00690821 type="int32_t __thiscall func(CGxDeviceD3d* this, int32_t (*windowProc)(void*, uint32_t, uintptr_t, intptr_t), CGxFormat* format)" +CGxDeviceD3d__DeviceCreate 00690830 f end=00690897 type="int32_t __thiscall func(CGxDeviceD3d* this, void* hwnd, CGxFormat* format)" CGxDeviceD3d__Sub69FAA0 0069FAA0 f end=0069FAFE type="int32_t __thiscall func(CGxDeviceD3d* this, D3DFORMAT format)" 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__ISetWindowFocus 0069FE10 f end=0069FE57 type="void __thiscall func(CGxDeviceD3d* this, int32_t focus)" ; 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)" @@ -62,7 +65,7 @@ CGxDeviceD3d__TexDestroy 006A2BB0 f end=006A2BF1 type="void __thiscall func(CGxD 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__TexCopy 006A30D0 f end=006A31D6 type="int32_t __thiscall func(CGxDeviceD3d* this, CGxTex* destTex, CGxTex* sourceTex, C2iVector* pos, C2iVector* size, uint32_t level, uint32_t plane)" 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 type="void __thiscall func(CGxDeviceD3d* this)" CGxDeviceD3d__ISceneEnd 006A3420 f end=006A3449 type="void __thiscall func(CGxDeviceD3d* this)" @@ -75,12 +78,16 @@ CGxDeviceD3d__IStateSyncScissorRect 006A38D0 f end=006A39D2 type="void __thiscal 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__ISetTexCoordIndex 006A4100 f end=006A4190 type="void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, EGxTexGen texGen, uint32_t index)" CGxDeviceD3d__ISetColorOp 006A4190 f end=006A41EC type="void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, uint32_t op)" CGxDeviceD3d__ISetAlphaOp 006A41F0 f end=006A424C type="void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, uint32_t op)" +CGxDeviceD3d__ISetMaterial 006A4250 f end=006A439B type="void __thiscall func(CGxDeviceD3d* this, CImVector diffuse, CImVector emissive, CImVector specular, float specularExp)" CGxDeviceD3d__IStateSyncLights 006A43D0 f end=006A46F9 type="void __thiscall func(CGxDeviceD3d* this)" 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__ISetTexCoord 006A4AC0 f end=006A4AEF type="void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, uint32_t index)" +CGxDeviceD3d__ISetTexGen 006A4AF0 f end=006A4C2B type="void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, EGxTexGen texGen)" CGxDeviceD3d__IRsSendToHw 006A4C30 f end=006A5499 type="void __thiscall func(CGxDeviceD3d* this, EGxRenderState rs)" CGxDeviceD3d__ICreateD3dVertexDecl 006A5540 f end=006A5677 type="LPDIRECT3DVERTEXDECLARATION9 __thiscall func(CGxDeviceD3d* this, D3DVERTEXELEMENT9* elements, uint32_t count)" CGxDeviceD3d__IReleaseD3dVertexDecl 006A5680 f end=006A56F2 type="void __thiscall func(CGxDeviceD3d* this)" @@ -88,6 +95,7 @@ CGxDeviceD3d__IStateSyncVertexPtrs 006A5700 f end=006A5934 type="void __thiscall 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__IXformSetTex 006A5AA0 f end=006A5C65 type="void __thiscall func(CGxDeviceD3d* this, uint32_t tmu)" 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)" @@ -104,4 +112,3 @@ CGxDeviceD3d__IShaderCreateVertex 006AA0D0 f end=006AA125 type="void __thiscall 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 type="void __thiscall func(CGxDeviceD3d* this, CGxShader* vs)" -CGxDeviceD3d__IXformSetTex 006A5AA0 f end=006A5C65 type="void __thiscall func(CGxDeviceD3d* this, uint32_t tmu)" \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/gxdeviced3d/label.sym b/profile/3.3.5a-windows-386/symbol/gxdeviced3d/label.sym index ac86f4c..66260f7 100644 --- a/profile/3.3.5a-windows-386/symbol/gxdeviced3d/label.sym +++ b/profile/3.3.5a-windows-386/symbol/gxdeviced3d/label.sym @@ -17,5 +17,7 @@ CGxDeviceD3d__s_cullMode 00A2FA24 l type="D3DCULL[3]" CGxDeviceD3d__s_GxTexFormatToUse 00AD8EF0 l type="EGxTexFormat[13]" CGxDeviceD3d__s_gxAttribToD3dAttribType 00AD8F24 l type="D3DDECLTYPE[7]" CGxDeviceD3d__s_filterModes 00AD8F40 l type="D3DTEXTUREFILTERTYPE[6][3]" +CGxDeviceD3d__s_normalizeNormals 00AD8F88 l type="uint32_t" +d3dMaterial 00C606B0 l type="D3DMATERIAL9" d3dLight 00C606F8 l type="D3DLIGHT9" isIdent 00C60760 l diff --git a/profile/3.3.5a-windows-386/symbol/gxdeviced3d9ex/func.sym b/profile/3.3.5a-windows-386/symbol/gxdeviced3d9ex/func.sym index 8337db4..7e2c1ca 100644 --- a/profile/3.3.5a-windows-386/symbol/gxdeviced3d9ex/func.sym +++ b/profile/3.3.5a-windows-386/symbol/gxdeviced3d9ex/func.sym @@ -1 +1 @@ -CGxDeviceD3d9Ex__CGxDeviceD3d9Ex 006A1A90 f end=006A1C24 +CGxDeviceD3d9Ex__constructor 006A1A90 f end=006A1C24 diff --git a/profile/3.3.5a-windows-386/symbol/gxdeviceopengl/func.sym b/profile/3.3.5a-windows-386/symbol/gxdeviceopengl/func.sym index 132d9c0..217219d 100644 --- a/profile/3.3.5a-windows-386/symbol/gxdeviceopengl/func.sym +++ b/profile/3.3.5a-windows-386/symbol/gxdeviceopengl/func.sym @@ -1,2 +1,2 @@ -CGxDeviceOpenGl__CGxDeviceOpenGl 0068BBC0 f end=0068BD15 type="void __thiscall func(CGxDeviceOpenGl* this)" -CGxDeviceOpenGl__ISetGlCaps 0068A9A0 f end=0068AF34 type="void __thiscall func(CGxDeviceOpenGl* this, CGxFormat* format)" \ No newline at end of file +CGxDeviceOpenGl__ISetGlCaps 0068A9A0 f end=0068AF34 type="void __thiscall func(CGxDeviceOpenGl* this, CGxFormat* format)" +CGxDeviceOpenGl__constructor 0068BBC0 f end=0068BD15 type="void __thiscall func(CGxDeviceOpenGl* this)" diff --git a/profile/3.3.5a-windows-386/symbol/gxformat/func.sym b/profile/3.3.5a-windows-386/symbol/gxformat/func.sym index 4012bc2..9ce531d 100644 --- a/profile/3.3.5a-windows-386/symbol/gxformat/func.sym +++ b/profile/3.3.5a-windows-386/symbol/gxformat/func.sym @@ -1 +1 @@ -CGxFormat__CGxFormat 00681950 f type="CGxFormat* __thiscall func(CGxFormat* this)" +CGxFormat__constructor 00681950 f type="CGxFormat* __thiscall func(CGxFormat* this)" diff --git a/profile/3.3.5a-windows-386/symbol/gxgammaramp/func.sym b/profile/3.3.5a-windows-386/symbol/gxgammaramp/func.sym index 9a695de..afe27e6 100644 --- a/profile/3.3.5a-windows-386/symbol/gxgammaramp/func.sym +++ b/profile/3.3.5a-windows-386/symbol/gxgammaramp/func.sym @@ -1 +1 @@ -CGxGammaRamp__Set 00684070 f end=006840ED type="void __thiscall func(CGxGammaRamp* this, float gamma)" \ No newline at end of file +CGxGammaRamp__Set 00684070 f end=006840ED type="void __thiscall func(CGxGammaRamp* this, float gamma)" diff --git a/profile/3.3.5a-windows-386/symbol/gxlight/func.sym b/profile/3.3.5a-windows-386/symbol/gxlight/func.sym index 1c8313b..5eb8c56 100644 --- a/profile/3.3.5a-windows-386/symbol/gxlight/func.sym +++ b/profile/3.3.5a-windows-386/symbol/gxlight/func.sym @@ -1 +1 @@ -CGxLight__CGxLight 00683FB0 f end=0068406C type="CGxLight* __thiscall func(CGxLight* this)" \ No newline at end of file +CGxLight__constructor 00683FB0 f end=0068406C type="CGxLight* __thiscall func(CGxLight* this)" diff --git a/profile/3.3.5a-windows-386/symbol/gxmatrixstack/func.sym b/profile/3.3.5a-windows-386/symbol/gxmatrixstack/func.sym index 4a396dc..ffe2bd0 100644 --- a/profile/3.3.5a-windows-386/symbol/gxmatrixstack/func.sym +++ b/profile/3.3.5a-windows-386/symbol/gxmatrixstack/func.sym @@ -1 +1,2 @@ -CGxMatrixStack__CGxMatrixStack 00683B90 f end=00683CE0 type="CGxMatrixStack* __thiscall func(CGxMatrixStack* this)" +CGxMatrixStack__Identity 0057C340 f end=0057C397 type="void __thiscall func(CGxMatrixStack* this)" +CGxMatrixStack__constructor 00683B90 f end=00683CE0 type="CGxMatrixStack* __thiscall func(CGxMatrixStack* this)" diff --git a/profile/3.3.5a-windows-386/symbol/gxpool/func.sym b/profile/3.3.5a-windows-386/symbol/gxpool/func.sym new file mode 100644 index 0000000..24c68f7 --- /dev/null +++ b/profile/3.3.5a-windows-386/symbol/gxpool/func.sym @@ -0,0 +1 @@ +CGxPool__Invalidate 00688230 f end=00688251 type="void __thiscall func(CGxPool* this)" diff --git a/profile/3.3.5a-windows-386/symbol/gxstatebom/func.sym b/profile/3.3.5a-windows-386/symbol/gxstatebom/func.sym new file mode 100644 index 0000000..19e0f99 --- /dev/null +++ b/profile/3.3.5a-windows-386/symbol/gxstatebom/func.sym @@ -0,0 +1 @@ +CGxStateBom__operator_not_equal 004BF540 f type="int32_t __thiscall func(CGxStateBom* this, C3Vector* value)" ; bool CGxStateBom::operator!=(C3Vector& value) diff --git a/profile/3.3.5a-windows-386/symbol/gxtexture/func.sym b/profile/3.3.5a-windows-386/symbol/gxtexture/func.sym index 192c83d..f6ff221 100644 --- a/profile/3.3.5a-windows-386/symbol/gxtexture/func.sym +++ b/profile/3.3.5a-windows-386/symbol/gxtexture/func.sym @@ -1,5 +1,5 @@ -CGxTexFlags__CGxTexFlags 00681BE0 f end=00681CAB ; UC -GxTexDestroy 00681470 f -GxTexUpdate 00681F20 f end=00681F59 -GxTexCreate 00681CB0 f end=00681D87 GxTexUpdate 006813D0 f end=006813EC +GxTexDestroy 00681470 f +CGxTexFlags__constructor 00681BE0 f end=00681CAB ; UC +GxTexCreate 00681CB0 f end=00681D87 +GxTexUpdate 00681F20 f end=00681F59 diff --git a/profile/3.3.5a-windows-386/symbol/item/func.sym b/profile/3.3.5a-windows-386/symbol/item/func.sym index 0942318..f8e4e58 100644 --- a/profile/3.3.5a-windows-386/symbol/item/func.sym +++ b/profile/3.3.5a-windows-386/symbol/item/func.sym @@ -1,15 +1,15 @@ -CGItem_C__Unlock 00707020 f end=00707051 -CGItem_C__GetUseSpell 00707C60 f end=00707DA1 -CGItem_C__CanBeUsed 00708C10 f end=00708C1E -CGItem_C__Use 00708C20 f end=007093EE CGItem_C__GetUseSpell 00706B90 f end=00706BEF CGItem_C__NumBaseCharges 00706BF0 f end=00706C4F CGItem_C__GetCooldowns 00706C50 f end=00706CE5 CGItem_C__NumBaseCharges 00706F40 f end=00706F9E +CGItem_C__Unlock 00707020 f end=00707051 +CGItem_C__GetSubtypeID 00707250 f end=0070727E +CGItem_C__GetUseSpell 00707C60 f end=00707DA1 CGItem_C__GetCooldowns 00707E90 f end=00707F44 +CGItem_C__CanGoInSlot 00708500 f end=0070851E CGItem_C__IsBound 00708520 f end=00708538 CGItem_C__GetRepairCost 00708540 f end=007086AF CGItem_C__IsPermanentlyBoundForTrade 00708B40 f end=00708BC3 +CGItem_C__CanBeUsed 00708C10 f end=00708C1E +CGItem_C__Use 00708C20 f end=007093EE CGItem_C__GetInventoryArt 0070AA00 f end=0070AA40 -CGItem_C__GetSubtypeID 00707250 f end=0070727E -CGItem_C__CanGoInSlot 00708500 f end=0070851E diff --git a/profile/3.3.5a-windows-386/symbol/layoutframe/func.sym b/profile/3.3.5a-windows-386/symbol/layoutframe/func.sym index f1ab238..959089b 100644 --- a/profile/3.3.5a-windows-386/symbol/layoutframe/func.sym +++ b/profile/3.3.5a-windows-386/symbol/layoutframe/func.sym @@ -6,7 +6,9 @@ CLayoutFrame__CalculateRect 004893C0 f end=00489564 ; CLayoutFrame::CalculateRec CLayoutFrame__OnFrameResize 00489570 f end=00489690 ; CLayoutFrame::OnFrameResize() CLayoutFrame__SetProtectFlag 004896C0 f end=0048970E ; CLayoutFrame::SetProtectFlag(unsigned int) CLayoutFrame__ResizePending 004898B0 f end=00489978 ; CLayoutFrame::ResizePending() -CLayoutFrame__CLayoutFrame 00489980 f end=004899EF +CLayoutFrame__constructor 00489980 f end=004899EF +CLayoutFrame__OnProtectedDetach 00489A40 f end=00489A5D +CLayoutFrame__IsProtected 00489BB0 f end=00489C26 CLayoutFrame__RegisterResize 00489C30 f end=00489D62 ; CLayoutFrame::RegisterResize(CLayoutFrame*, unsigned int) CLayoutFrame__UnregisterResize 00489D70 f end=00489DD6 ; CLayoutFrame::UnregisterResize(CLayoutFrame*, unsigned int) CLayoutFrame__Resize 00489DE0 f end=00489E8D ; CLayoutFrame::Resize(int) @@ -16,5 +18,3 @@ CLayoutFrame__SetPoint 0048A260 f end=0048A3DF ; CLayoutFrame::SetPoint(FRAMEPOI CLayoutFrame__ClearAllPoints 0048A510 f end=0048A515 ; CLayoutFrame::ClearAllPoints() CLayoutFrame__SetDeferredResize 0048A520 f end=0048A5F0 ; CLayoutFrame::SetDeferredResize(int) CLayoutFrame__DestroyLayout 0048B130 f end=0048B23B ; CLayoutFrame::DestroyLayout() -CLayoutFrame__IsProtected 00489BB0 f end=00489C26 -CLayoutFrame__OnProtectedDetach 00489A40 f end=00489A5D diff --git a/profile/3.3.5a-windows-386/symbol/loadingscreen/func.sym b/profile/3.3.5a-windows-386/symbol/loadingscreen/func.sym index bdb97de..7420fd2 100644 --- a/profile/3.3.5a-windows-386/symbol/loadingscreen/func.sym +++ b/profile/3.3.5a-windows-386/symbol/loadingscreen/func.sym @@ -1,5 +1,5 @@ LoadingScreenSetTip 00407E30 f end=00407E3D LoadingScreenSetScreenTipForRaceData 00407E40 f end=00407E88 -LoadingScreenEnable 0040AB70 f end=0040AD50 LoadingScreenSetTransparent 00407EA0 f end=00407EE3 LoadingScreenDisable 00409550 f end=0040961F +LoadingScreenEnable 0040AB70 f end=0040AD50 diff --git a/profile/3.3.5a-windows-386/symbol/lootinfo/func.sym b/profile/3.3.5a-windows-386/symbol/lootinfo/func.sym index 6a137da..089992f 100644 --- a/profile/3.3.5a-windows-386/symbol/lootinfo/func.sym +++ b/profile/3.3.5a-windows-386/symbol/lootinfo/func.sym @@ -1,6 +1,6 @@ +CGLootInfo__InitializeGame 00588170 f end=0058817D +CGLootInfo__LeaveWorld 00588180 f end=0058818F CGLootInfo__GetLootType 00588530 f end=00588536 CGLootInfo__HasLoot 00588EB0 f end=00588EFC CGLootInfo__DoAutoLoot 00588F90 f end=005890F3 CGLootInfo__SetObject 005896B0 f end=00589918 -CGLootInfo__InitializeGame 00588170 f end=0058817D -CGLootInfo__LeaveWorld 00588180 f end=0058818F diff --git a/profile/3.3.5a-windows-386/symbol/m2/func.sym b/profile/3.3.5a-windows-386/symbol/m2/func.sym index 417846a..4885bc3 100644 --- a/profile/3.3.5a-windows-386/symbol/m2/func.sym +++ b/profile/3.3.5a-windows-386/symbol/m2/func.sym @@ -1,5 +1,5 @@ +M2CreateScene 0081C080 f end=0081C0AA M2GetCacheFlags 0081C0B0 f end=0081C0B6 M2SetCacheFlags 0081C0C0 f end=0081C0CD M2Initialize 0081C6E0 f end=0081C747 -M2CreateScene 0081C080 f end=0081C0AA M2CreateScene 0095F650 f end=0095F66F diff --git a/profile/3.3.5a-windows-386/symbol/m2cache/func.sym b/profile/3.3.5a-windows-386/symbol/m2cache/func.sym index b43ff19..4804721 100644 --- a/profile/3.3.5a-windows-386/symbol/m2cache/func.sym +++ b/profile/3.3.5a-windows-386/symbol/m2cache/func.sym @@ -7,4 +7,4 @@ CM2Cache__Destroy 0081C300 f end=0081C389 ; CM2Cache::Destroy() CM2Cache__CreateShared 0081C390 f end=0081C6D5 ; CM2Cache::CreateShared(char const*, unsigned int) CM2Cache__UpdateShared 0081C790 f end=0081C832 ; CM2Cache::UpdateShared() CM2Cache__LinkToSharedUpdateList 0081C840 f end=0081C862 ; CM2Cache::LinkToSharedUpdateList(CM2Shared*) -CM2Cache__CM2Cache 0081C900 f end=0081C988 ; CM2Cache::CM2Cache() +CM2Cache__constructor 0081C900 f end=0081C988 ; CM2Cache::CM2Cache() diff --git a/profile/3.3.5a-windows-386/symbol/m2light/func.sym b/profile/3.3.5a-windows-386/symbol/m2light/func.sym index 3bd9f8d..7693751 100644 --- a/profile/3.3.5a-windows-386/symbol/m2light/func.sym +++ b/profile/3.3.5a-windows-386/symbol/m2light/func.sym @@ -1,5 +1,5 @@ CM2Light__Initialize 008348D0 f end=008348F2 ; CM2Light::Initialize(CM2Scene*) -CM2Light__CM2Light 00834A40 f end=00834AA7 ; CM2Light::CM2Light() +CM2Light__constructor 00834A40 f end=00834AA7 ; CM2Light::CM2Light() CM2Light__destructor 00834AB0 f end=00834AD4 ; CM2Light::~CM2Light() CM2Light__SetDirection 00834AE0 f end=00834B43 ; CM2Light::SetDirection(C3Vector const&) CM2Light__Link 00834C70 f end=00834D84 ; CM2Light::Link() diff --git a/profile/3.3.5a-windows-386/symbol/m2model/func.sym b/profile/3.3.5a-windows-386/symbol/m2model/func.sym index c3f4e88..c7b7df3 100644 --- a/profile/3.3.5a-windows-386/symbol/m2model/func.sym +++ b/profile/3.3.5a-windows-386/symbol/m2model/func.sym @@ -13,11 +13,15 @@ CM2Model__IsDrawable 00824FC0 f end=008250AA ; CM2Model::IsDrawable(int, int) CM2Model__UpdateLoaded 00825170 f end=008251AF ; CM2Model::UpdateLoaded() CM2Model__SetLoadedCallback 008251B0 f end=008251C8 ; CM2Model::SetLoadedCallback(void (*)(CM2Model*, void*), void*) CM2Model__SetWorldTransform 008251D0 f end=00825256 ; CM2Model::SetWorldTransform(C3Vector const&, float, float) +CM2Model__ReplaceTexture 00825260 f end=00825404 CM2Model__UnoptimizeVisibleGeometry 00825D70 f end=00825E00 ; CM2Model::UnoptimizeVisibleGeometry() CM2Model__SequenceFallbackById 00826350 f end=008264A9 ; CM2Model::SequenceFallbackById(M2SequenceFallback*, unsigned int) const +CM2Model__GetBoneSequenceId 008267E0 f end=0082686E CM2Model__SetupBoneSequence 00826B00 f end=00826C3F ; CM2Model::SetupBoneSequence(unsigned short, M2SequenceFallback, unsigned int, float, M2ModelBoneSeq*) CM2Model__SetPrimaryBoneSequence 00826C40 f end=00826DD0 ; CM2Model::SetPrimaryBoneSequence(unsigned short, unsigned short, M2SequenceFallback, unsigned int, float, int) CM2Model__SetSecondaryBoneSequence 00826DD0 f end=00826E54 ; CM2Model::SetSecondaryBoneSequence(unsigned short, unsigned short, M2SequenceFallback, unsigned int, float) +CM2Model__HasAttachment 008273D0 f end=00827455 +CM2Model__DetachFromParent 008274F0 f end=00827553 CM2Model__DetachAllChildrenById 00827560 f end=008275E9 ; CM2Model::DetachAllChildrenById(unsigned int) CM2Model__GetCameraById 00827960 f end=008279E3 ; CM2Model::GetCameraById(unsigned int) CM2Model__FindKey 008284D0 f end=00828674 ; CM2Model::FindKey(M2ModelBoneSeq*, M2TrackBase const&, unsigned int&, unsigned int&, float&) @@ -25,7 +29,7 @@ CM2Model__AnimateST 00828A00 f end=00828F8A ; CM2Model::AnimateST() CM2Model__SetIndices 00828F90 f end=00829160 ; CM2Model::SetIndices() const CM2Model__SetVertices 00829160 f end=00829296 ; CM2Model::SetVertices(int, M2SkinSection*, unsigned int) const CM2Model__RenderModelBatchesForProjectedTexture 00829AA0 f end=00829B94 ; CM2Model::RenderModelBatchesForProjectedTexture() -CM2Model__CM2Model 0082BE60 f end=0082C1B7 ; CM2Model::CM2Model() +CM2Model__constructor 0082BE60 f end=0082C1B7 ; CM2Model::CM2Model() CM2Model__OptimizeVisibleGeometry 0082C970 f end=0082CEC2 ; CM2Model::OptimizeVisibleGeometry() CM2Model__AnimateParticlesMT 0082D2F0 f end=0082D6E1 ; CM2Model::AnimateParticlesMT() CM2Model__AnimateTextureTransformsMT 0082D6F0 f end=0082D903 ; CM2Model::AnimateTextureTransformsMT() @@ -55,7 +59,3 @@ CM2Model__InitializeLoaded 00832EA0 f end=008344DC ; CM2Model::InitializeLoaded( CM2Model__AttachToScene 00834540 f end=00834628 ; CM2Model::AttachToScene(CM2Scene*) CM2Model__AttachToSceneRecursive 00834630 f end=0083465C ; CM2Model::AttachToSceneRecursive(CM2Scene*) CM2Model__Initialize 00834810 f end=008348CA ; CM2Model::Initialize(CM2Scene*, CM2Shared*, CM2Model*, unsigned int) -CM2Model__ReplaceTexture 00825260 f end=00825404 -CM2Model__GetBoneSequenceId 008267E0 f end=0082686E -CM2Model__HasAttachment 008273D0 f end=00827455 -CM2Model__DetachFromParent 008274F0 f end=00827553 diff --git a/profile/3.3.5a-windows-386/symbol/m2scene/func.sym b/profile/3.3.5a-windows-386/symbol/m2scene/func.sym index 1335a7c..9ecd6b5 100644 --- a/profile/3.3.5a-windows-386/symbol/m2scene/func.sym +++ b/profile/3.3.5a-windows-386/symbol/m2scene/func.sym @@ -12,8 +12,8 @@ CM2Scene__ComputeElementShaders 0081F1D0 f end=0081F327 ; CM2Scene::ComputeEleme CM2Scene__CreateModel 0081F8F0 f end=0081F96F ; CM2Scene::CreateModel(char const*, unsigned int) CM2Scene__DuplicateModel 0081F970 f end=0081F9D7 ; CM2Scene::DuplicateModel(CM2Model*, unsigned int) CM2Scene__SortAdditiveParticleElements 0081F9E0 f end=0081FAF6 ; CM2Scene::SortAdditiveParticleElements(unsigned int) -CM2Scene__CM2Scene 008216C0 f end=00821842 ; CM2Scene::CM2Scene(CM2Cache*) +CM2Scene__constructor 008216C0 f end=00821842 ; CM2Scene::CM2Scene(CM2Cache*) CM2Scene__destructor 00821850 f end=0082192E ; CM2Scene::~CM2Scene() CM2Scene__Animate 00821A20 f end=0082303A ; CM2Scene::Animate(C3Vector const&) CM2Scene__Release 00823040 f end=00823062 ; CM2Scene::Release() -CM2Scene__Draw 00823CB0 f end=00823D4D ; CM2Scene::Draw(M2PASS) \ No newline at end of file +CM2Scene__Draw 00823CB0 f end=00823D4D ; CM2Scene::Draw(M2PASS) diff --git a/profile/3.3.5a-windows-386/symbol/m2scenerender/func.sym b/profile/3.3.5a-windows-386/symbol/m2scenerender/func.sym index d759b68..055d50c 100644 --- a/profile/3.3.5a-windows-386/symbol/m2scenerender/func.sym +++ b/profile/3.3.5a-windows-386/symbol/m2scenerender/func.sym @@ -1,4 +1,4 @@ -CM2SceneRender__CM2SceneRender 0081F330 f end=0081F449 ; CM2SceneRender::CM2SceneRender(CM2Scene*) +CM2SceneRender__constructor 0081F330 f end=0081F449 ; CM2SceneRender::CM2SceneRender(CM2Scene*) CM2SceneRender__SetupTextures 0081F450 f end=0081F620 ; CM2SceneRender::SetupTextures() CM2SceneRender__SetBatchVertices 0081F700 f end=0081F7FC ; CM2SceneRender::SetBatchVertices(int) CM2SceneRender__SetupLighting 0081FB10 f end=0081FE7A ; CM2SceneRender::SetupLighting() diff --git a/profile/3.3.5a-windows-386/symbol/m2shared/func.sym b/profile/3.3.5a-windows-386/symbol/m2shared/func.sym index 565d3b9..fc85554 100644 --- a/profile/3.3.5a-windows-386/symbol/m2shared/func.sym +++ b/profile/3.3.5a-windows-386/symbol/m2shared/func.sym @@ -9,7 +9,7 @@ CM2Shared__AssignBatchTextureComboIndices 008374A0 f end=00837672 ; CM2Shared::A CM2Shared__SubstituteSpecializedShaders 00837680 f end=00837A3D ; CM2Shared::SubstituteSpecializedShaders() CM2Shared__InitializeSkinProfile 00837A40 f end=00837ED4 ; CM2Shared::InitializeSkinProfile() CM2Shared__FinishLoadingSkinProfile 00838490 f end=00838593 ; CM2Shared::FinishLoadingSkinProfile(unsigned int) -CM2Shared__CM2Shared 0083C5F0 f end=0083C6DC ; CM2Shared::CM2Shared(CM2Cache*) +CM2Shared__constructor 0083C5F0 f end=0083C6DC ; CM2Shared::CM2Shared(CM2Cache*) CM2Shared__InitLowPrioritySequence 0083C6E0 f end=0083CA8D ; CM2Shared::InitLowPrioritySequence(unsigned int, unsigned char*, unsigned int) CM2Shared__FinishLoadingLowPrioritySequence 0083CA90 f end=0083CB10 ; CM2Shared::FinishLoadingLowPrioritySequence(unsigned int, CAsyncObject*) CM2Shared__SkinProfileLoadedCallback 0083CB10 f end=0083CB3B ; CM2Shared::SkinProfileLoadedCallback(void*) @@ -22,4 +22,4 @@ CM2Shared__destructor 0083D5B0 f end=0083D833 ; CM2Shared::~CM2Shared() CM2Shared__LowPrioritySequenceLoadedCallback 0083D840 f end=0083D9E1 ; CM2Shared::LowPrioritySequenceLoadedCallback(void*) CM2Shared__LowPrioritySequenceFailedCallback 0083D9F0 f end=0083DA10 ; CM2Shared::LowPrioritySequenceFailedCallback(void*) CM2Shared__LoadLowPrioritySequence 0083DA10 f end=0083DC8D ; CM2Shared::LoadLowPrioritySequence(unsigned short) -CM2Shared__Release 0083DC90 f end=0083DCE8 ; CM2Shared::Release() \ No newline at end of file +CM2Shared__Release 0083DC90 f end=0083DCE8 ; CM2Shared::Release() diff --git a/profile/3.3.5a-windows-386/symbol/main.sym b/profile/3.3.5a-windows-386/symbol/main.sym index 9e97dfe..0829df2 100644 --- a/profile/3.3.5a-windows-386/symbol/main.sym +++ b/profile/3.3.5a-windows-386/symbol/main.sym @@ -1,6 +1,6 @@ operator_new 00401010 f end=00401067 type="void* __stdcall func(uint32_t count)" ; void* operator new(size_t) operator_delete 00401030 f end=0040104B type="void __stdcall func(void* ptr)" ; void operator delete(void*) -CDataStore__CDataStore 00401050 f end=0040106E type="CDataStore* __thiscall func(CDataStore* this)" +CDataStore__constructor 00401050 f end=0040106E type="CDataStore* __thiscall func(CDataStore* this)" CDataStore__FetchWrite 00401070 f ; protected: int __thiscall CDataStore::FetchWrite(unsigned int,unsigned int,char const *,int) CDataStore__IsRead 004010D0 f ; CDataStore::IsRead() const CDataStore__Reset 004010E0 f ; CDataStore::Reset() @@ -31,8 +31,8 @@ CommonMain 00406C70 f end=00406D64 LoadingScreenSetTip 00407E30 f end=00407E3D LoadingScreenSetScreenTipForRaceData 00407E40 f end=00407E88 LoadingScreenSetTransparent 00407EA0 f end=00407EE3 -C44Matrix__C44Matrix 00407F40 f end=00407F76 -C44Matrix__operator_assign_C44Matrix 00407F80 f end=00407FEA +C44Matrix__constructor 00407F40 f end=00407F76 type="C44Matrix* __thiscall func(C44Matrix* this)" +C44Matrix__operator_assign_C44Matrix 00407F80 f end=00407FEA type="float __thiscall func(C44Matrix* this, C44Matrix* rhs)" GxXformSetProjection 00408030 f end=00408049 GxXformViewport 00408070 f end=004080D9 type="void __stdcall func(float* minX, float* maxX, float* minY, float* maxY, float* minZ, float* maxZ)" GxXformProjNativeTranspose 00408110 f end=0040820F @@ -205,8 +205,8 @@ WowConnection__Disconnect 00466B50 f end=00466B8F ; WowConnection::Disconnect() WowConnection__SetEncryptionKey 00466BF0 f end=00466DA9 ; WowConnection::SetEncryptionKey(unsigned char const*, unsigned char, unsigned char, unsigned char const*, unsigned char) WowConnection__CloseSocket 00466DE0 f end=00466E29 ; WowConnection::CloseSocket(int) WowConnection__DoStreamReads 00466F00 f end=004670CA ; WowConnection::DoStreamReads() -WowConnection__WowConnection 00467270 f end=00467330 ; WowConnection::WowConnection(int, sockaddr_in*, WowConnectionResponse*) -WowConnection__WowConnection 00467330 f end=004673B9 ; WowConnection::WowConnection(WowConnectionResponse*, void (*)()) +WowConnection__constructor 00467270 f end=00467330 ; WowConnection::WowConnection(int, sockaddr_in*, WowConnectionResponse*) +WowConnection__constructor 00467330 f end=004673B9 ; WowConnection::WowConnection(WowConnectionResponse*, void (*)()) WowConnection__destructor 004673C0 f end=00467536 ; WowConnection::~WowConnection() WowConnection__Send 004675F0 f end=00467988 ; WowConnection::Send(CDataStore*, int) WowConnection__SendRaw 00467990 f end=00467B96 ; WowConnection::SendRaw(unsigned char*, int) @@ -340,10 +340,10 @@ CSimpleTexture__Init 00483060 f end=00483098 CSimpleTexture__SetTexCoord 004831D0 f end=00483220 ; CSimpleTexture::SetTexCoord(CRect const&) CSimpleFontString__SetText 00483910 f end=00483A3D type="void __thiscall func(CSimpleFontString* this, char* a1, int32_t a2)" CRenderBatch__Finish 00484450 f end=0048446D -CSimpleTexture__CSimpleTexture 00484470 f end=004845E6 ; CSimpleTexture::CSimpleTexture(CSimpleFrame*, unsigned int, int) +CSimpleTexture__constructor 00484470 f end=004845E6 ; CSimpleTexture::CSimpleTexture(CSimpleFrame*, unsigned int, int) CSimpleRender__DrawBatch 00484B00 f end=0048513D -CSimpleFontString__CSimpleFontString 00485240 f end=0048536F -CRenderBatch__CRenderBatch 00485530 f end=00485564 +CSimpleFontString__constructor 00485240 f end=0048536F +CRenderBatch__constructor 00485530 f end=00485564 CRenderBatch__QueueCallback 004858E0 f end=0048596F CRenderBatch__Clear 00485970 f end=004859D2 CRenderBatch__Clear 00485F00 f end=00485F35 @@ -355,9 +355,9 @@ CSimpleRegion__HideThis 00487BF0 f type="void __thiscall func(CSimpleRegion* thi CSimpleRegion__ShowThis 00487C40 f type="void __thiscall func(CSimpleRegion* this)" CSimpleRegion__OnRegionChanged 00487CA0 f type="void __thiscall func(CSimpleRegion* this)" CSimpleRegion__OnColorChanged 00487D70 f type="void __thiscall func(CSimpleRegion* this, bool a2)" -CSimpleRegion__CSimpleRegion 004880E0 f type="void __thiscall func(CSimpleRegion* this, CSimpleFrame* frame, uint32_t drawLayer, int32_t show)" +CSimpleRegion__constructor 004880E0 f type="void __thiscall func(CSimpleRegion* this, CSimpleFrame* frame, uint32_t drawLayer, int32_t show)" CSimpleRegion__destructor 004881D0 f type="void __thiscall func(CSimpleRegion* this)" -CScriptRegion__CScriptRegion 00488310 f end=00488348 type="void __thiscall func(CScriptRegion* this)" +CScriptRegion__constructor 00488310 f end=00488348 type="void __thiscall func(CScriptRegion* this)" CScriptRegion__ProtectedFunctionsAllowed 00488540 f end=0048856A CLayoutFrame__IsResizePending 00488CF0 f end=00488CFA ; CLayoutFrame::IsResizePending() CLayoutFrame__GetHeight 00488D00 f end=00488D04 ; CLayoutFrame::GetHeight() @@ -367,7 +367,7 @@ CLayoutFrame__CalculateRect 004893C0 f end=00489564 ; CLayoutFrame::CalculateRec CLayoutFrame__OnFrameResize 00489570 f end=00489690 ; CLayoutFrame::OnFrameResize() CLayoutFrame__SetProtectFlag 004896C0 f end=0048970E ; CLayoutFrame::SetProtectFlag(unsigned int) CLayoutFrame__ResizePending 004898B0 f end=00489978 ; CLayoutFrame::ResizePending() -CLayoutFrame__CLayoutFrame 00489980 f end=004899EF +CLayoutFrame__constructor 00489980 f end=004899EF CLayoutFrame__OnProtectedDetach 00489A40 f end=00489A5D CLayoutFrame__IsProtected 00489BB0 f end=00489C26 CLayoutFrame__RegisterResize 00489C30 f end=00489D62 ; CLayoutFrame::RegisterResize(CLayoutFrame*, unsigned int) @@ -417,7 +417,7 @@ CSimpleFrame__UpdateScale 004915A0 f end=00491677 ; CSimpleFrame::UpdateScale(bo CSimpleFrame__HideThis 00491830 f end=004918EC ; CSimpleFrame::HideThis() CSimpleFrame__ShowThis 004918F0 f end=004919E4 ; CSimpleFrame::ShowThis(bool) CSimpleFrame__OnFrameRender 00491E00 f end=00491FB5 ; CSimpleFrame::OnFrameRender() -CSimpleFrame__CSimpleFrame 004922F0 f end=004926A7 ; CSimpleFrame::CSimpleFrame(CSimpleFrame*) +CSimpleFrame__constructor 004922F0 f end=004926A7 ; CSimpleFrame::CSimpleFrame(CSimpleFrame*) CSimpleFrame__LoadXML 004932C0 f end=00493A09 ; CSimpleFrame::LoadXML(XMLNode*, CStatus*) GxCapsWindowSizeInScreenCoords 00493BF0 f end=00493C09 CSimpleTop__RoundToPixelHeight 00493E00 f end=00493E85 ; CSimpleTop::RoundToPixelHeight(float) @@ -431,9 +431,9 @@ CSimpleTop__OnLayerRender 00495410 f end=0049546A CSimpleTop__OnDisplaySizeChanged 004955E0 f end=00495667 ; CSimpleTop::OnDisplaySizeChanged(EVENT_DATA_SIZE const*, void*) CSimpleTop__RegisterForEvent 00495880 f end=004958F9 ; CSimpleTop::RegisterForEvent(CSimpleFrame*, CSimpleEventType, int, unsigned int) CSimpleTop__EnableEvents 004959F0 f end=00495AF2 ; CSimpleTop::EnableEvents() -CSimpleTop__CSimpleTop 00495EB0 f end=004960C6 ; CSimpleTop::CSimpleTop() +CSimpleTop__constructor 00495EB0 f end=004960C6 ; CSimpleTop::CSimpleTop() CSimpleTop__ShowFrame 004960D0 f end=004960FA ; CSimpleTop::ShowFrame(CSimpleFrame*, int) -CSimpleFont__CSimpleFont 00496870 f end=00496915 +CSimpleFont__constructor 00496870 f end=00496915 CScriptRegion__RegisterScriptMethods 0049CA90 f end=0049CAB0 CSimpleFrame__RegisterScriptMethods 0049E540 f end=0049E560 ; CSimpleFrame::RegisterScriptMethods(lua_State*) CSimpleFrame_SetAlpha 0049F9E0 f end=0049FAA1 type="void __stdcall func(lua_State* L)" @@ -441,7 +441,7 @@ CBackdropGenerator__SetBorderVertexColor 004A2630 f end=004A26C1 type="void __th CBackdropGenerator__DestroyTextures 004A26D0 f end=004A2779 CBackdropGenerator__LoadXML 004A2780 f end=004A29CB ; _CBackdropGenerator::LoadXML(linkObject*, CStatus*) CBackdropGenerator__Generate 004A29D0 f end=004A2D34 type="void __thiscall func(CBackdropGenerator* this, CRect*)" -CBackdropGenerator__CBackdropGenerator 004A2D40 f end=004A2DF9 type="void __thiscall func(CBackdropGenerator* this)" +CBackdropGenerator__constructor 004A2D40 f end=004A2DF9 type="void __thiscall func(CBackdropGenerator* this)" CBackdropGenerator__SetOutput 004A2E00 f end=004A36EE type="void __thiscall func(CBackdropGenerator* this, CSimpleFrame* a1)" CScriptObject__RegisterScriptMethods 004A8190 f end=004A81A8 FrameScript_GetObjectThis 004A81B0 f end=004A8235 ; FrameScript_GetObjectThis(lua_State*, int) @@ -501,19 +501,22 @@ GxXformProjection 004BEC70 f end=004BEC88 CCamera__SetupWorldProjection 004BECF0 f end=004BEE5E CameraSetupScreenProjection 004BEE60 f end=004BF0B9 CameraSetupWorldProjection 004BF0C0 f end=004BF0E2 -CCamera__CCamera 004BF770 f end=004BFA4E +CGxStateBom__operator_not_equal 004BF540 f type="int32_t __thiscall func(CGxStateBom* this, C3Vector* value)" ; bool CGxStateBom::operator!=(C3Vector& value) +CCamera__constructor 004BF770 f end=004BFA4E CameraCreate 004BFCA0 f end=004BFCD4 CameraGetCoord 004C1290 f end=004C12AA -CRndSeed__SetSeed 004C1510 f -C44Matrix__Determinant 004C1930 f -C44Matrix__Translate 004C1B30 f -C44Matrix__Scale_C3Vector 004C1B90 f -C44Matrix__Scale_float 004C1BF0 f -C44Matrix__C44Matrix_C4Quaternion 004C1DE0 f -operator_multiply_C44Matrix_C44Matrix 004C1F00 f -operator_multiply_C3Vector_C44Matrix 004C21B0 f -C44Matrix__operator_assignment_multiply 004C2370 f +CRndSeed__SetSeed 004C1510 f end=004C1584 +C44Matrix__Determinant 004C1930 f type="float __thiscall func(C44Matrix* this)" +C44Matrix__Translate 004C1B30 f type="void __thiscall func(C44Matrix* this, C3Vector* move)" +C44Matrix__Scale 004C1B90 f type="void __thiscall func(C44Matrix* this, C3Vector* scale)" ; void C44Matrix::Scale(const C3Vector& scale) +C44Matrix__Scale 004C1BF0 f type="void __thiscall func(C44Matrix* this, float scale)" ; void C44Matrix::Scale(float scale) +C44Matrix__constructor 004C1DE0 f type="C44Matrix* __thiscall func(C44Matrix* this, C4Quaternion* a)" +operator_multiply_C44Matrix_C44Matrix 004C1F00 f type="C44Matrix* __stdcall func(C44Matrix* __return_ptr result, C44Matrix* l, C44Matrix* r)" +operator_multiply_C44Matrix_float 004C2120 f type="C44Matrix* __stdcall func(C44Matrix* __return_ptr result, C44Matrix* l, float a)" +operator_multiply_C3Vector_C44Matrix 004C21B0 f type="C3Vector* __stdcall func(C3Vector* __return_ptr result, C3Vector* l, C44Matrix* a)" +C44Matrix__operator_assignment_multiply_C44Matrix 004C2370 f type="void __thiscall func(C44Matrix* this, C44Matrix* a)" C44Matrix__Transpose 004C23D0 f +C44Matrix__Adjoint 004C2440 f type="C44Matrix* __thiscall func(C44Matrix* this, C44Matrix* __return_ptr result)" ; C44Matrix C44Matrix::Adjoint() C44Matrix__Inverse 004C2F90 f C44Matrix__AffineInverse 004C2FC0 f C44Matrix__AffineInvertInPlace 004C30A0 f @@ -522,8 +525,8 @@ C44Matrix__RotateAroundX 004C3300 f C44Matrix__RotateAroundY 004C3340 f C44Matrix__RotateAroundZ 004C3380 f C44Matrix__Rotate 004C33C0 f -C3Vector__Normalize_1 004C3420 f -C3Vector__Normalize_2 004C3600 f +C3Vector__Normalize 004C3420 f type="void __thiscall func(C3Vector* this)" +C3Vector__Normalize 004C3600 f type="void __thiscall func(C3Vector* this)" TSGrowableArray_C3Vector__SetCount 004C4B80 f end=004C4C75 type="void __thiscall func(TSGrowableArray_C3Vector* this, uint32_t count)" C33Matrix__operator_assign_C33Matrix 004C51B0 f C33Matrix__Rotation 004C5550 f end=004C55A2 @@ -541,6 +544,10 @@ SI2__RegisterCVars 004D1600 f end=004D1EB8 HeapUsageDestroy 004D27D0 f end=004D27DC HeapUsageInitialize 004D2A30 f end=004D2A95 ObjectFree 004D3100 f end=004D3130 +ObjectUpdateHandler 004D73A0 f end=004D74CA +ObjectCompressedUpdateHandler 004D74D0 f end=004D760E +OnObjectDestroy 004D7610 f end=004D76D1 +ClntObjMgrInitialize 004D76E0 f end=004D7749 CGlueMgr__InitializeFFX 004D7D20 f end=004D7D93 CGlueMgr__UpdateWaitQueue 004D7DA0 f end=004D7E3A CGlueMgr__SetCurrentAccount 004D7F60 f end=004D7F82 @@ -629,7 +636,7 @@ CGlueMgr__PatchDownloadIdle 004E54D0 f end=004E5722 CGlueMgr__ScanDLLFinished 004E5940 f end=004E59B1 CSimpleModelFFX__SetModel 004E5ED0 f end=004E5EF7 ; CSimpleModelFFX::SetModel(CM2Model*) CSimpleModelFFX__LoadXML 004E5F00 f end=004E5F47 ; CSimpleModelFFX::LoadXML(XMLNode*, CStatus*) -CSimpleModelFFX__CSimpleModelFFX 004E5F70 f end=004E60A3 ; CSimpleModelFFX::CSimpleModelFFX(CSimpleFrame*) +CSimpleModelFFX__constructor 004E5F70 f end=004E60A3 ; CSimpleModelFFX::CSimpleModelFFX(CSimpleFrame*) CSimpleModelFFX__Render 004E6190 f end=004E6229 ; CSimpleModelFFX::Render(void*) CSimpleModelFFX__Create 004E6300 f end=004E632B ; CSimpleModelFFX::Create(CSimpleFrame*) CSimpleModelFFX__OnFrameRender 004E6330 f end=004E635E ; CSimpleModelFFX::OnFrameRender(CRenderBatch*, unsigned int) @@ -678,7 +685,7 @@ CGWorldFrame__OnLayerUpdate 004FA040 f end=004FA371 CGWorldFrame__SetupDefaultAction 004FA570 f end=004FA5CE CGWorldFrame__UnitClear 004FA5D0 f end=004FA5EF CGWorldFrame__OnWorldUpdate 004FA5F0 f end=004FABC5 -CGWorldFrame__CGWorldFrame 004FABD0 f end=004FAF5E +CGWorldFrame__constructor 004FABD0 f end=004FAF5E CGWorldFrame__RenderWorld 004FAF90 f end=004FB079 CGWorldFrame__OnFrameRender 004FB080 f end=004FB0AD Script_LoggingChat 004FBD00 f end=004FBD13 @@ -1671,6 +1678,7 @@ Script_CloseBankFrame 0057B9C0 f end=0057B9E0 Script_GetNumBankSlots 0057BAB0 f end=0057BB30 Script_GetBankSlotCost 0057BB30 f end=0057BBB3 Script_PurchaseSlot 0057BBC0 f end=0057BC8A +CGxMatrixStack__Identity 0057C340 f end=0057C397 type="void __thiscall func(CGxMatrixStack* this)" GxXformPop 0057C420 f end=0057C44A Script_GetNumTrackingTypes 0057F170 f end=0057F1AE Script_GetTrackingInfo 0057F1B0 f end=0057F37A @@ -2640,9 +2648,9 @@ Script_PrevView 00604D10 f end=00604D3A CGCamera__SetTelescope 006053D0 f end=006056FB CGCamera__SetModelCamera 00606570 f end=006066DB CGCamera__SetTarget 006066E0 f end=00606967 -CGCamera__CGCamera 00606B30 f end=00606F8E +CGCamera__constructor 00606B30 f end=00606F8E CSimpleCamera__SetFacing 00607BD0 f end=00607BF6 -CSimpleCamera__CSimpleCamera 00607C20 f end=00607C90 +CSimpleCamera__constructor 00607C20 f end=00607C90 CCameraManager__SetScreenAspect 00607C90 f end=00607CAA Script_GetTime 006081F0 f end=0060822A Script_GetGameTime 00608230 f end=00608266 @@ -2868,14 +2876,14 @@ NetClient__HandleDisconnect 00632540 f end=00632581 ; 00005400 NetClient__PongHandler 006325C0 f end=0063268A ; void __thiscall NetClient::PongHandler(class CDataStore *) NetClient__WCDisconnected 006326D0 f end=00632728 ; NetClient::WCDisconnected(WowConnection*, unsigned long, NETCONNADDR const*) NetClient__AuthChallengeHandler 00632730 f end=00632965 ; 00005410 -NetClient__NetClient 00632A40 f end=00632B43 ; 00005410 +NetClient__constructor 00632A40 f end=00632B43 ; 00005410 NetClient__Send 00632B50 f end=00632C02 ; NetClient::Send(CDataStore*) NetClient__WCCantConnect 00632C10 f end=00632CCD ; NetClient::WCCantConnect(WowConnection*, unsigned long, NETCONNADDR const*) NetClient__Ping 00632CD0 f end=00632DA8 ; NetClient::Ping(CONNECTION_ID) NetClient__HandleIdle 00632DB0 f end=00632DFD ; 00005400 NetClient__RedirectHandler 00632E00 f end=00633015 ; 00005410 NetClient__WCMessageReady 00633330 f end=0063343D ; NetClient::WCMessageReady(WowConnection*, unsigned long, CDataStore*) -NETEVENTQUEUE__NETEVENTQUEUE 00633440 f end=0063346D ; NETEVENTQUEUE::NETEVENTQUEUE(NetClient*) +NETEVENTQUEUE__constructor 00633440 f end=0063346D ; NETEVENTQUEUE::NETEVENTQUEUE(NetClient*) NETEVENTQUEUE__Poll 006334F0 f end=0063360E ; NETEVENTQUEUE::Poll() NETEVENTQUEUE__AddEvent 00633650 f end=0063372A ; NETEVENTQUEUE::AddEvent(EVENTID, void*, NetClient*, void const*, unsigned long) NETEVENTQUEUE__destructor 00633730 f end=00633797 ; NETEVENTQUEUE::~NETEVENTQUEUE() @@ -2911,11 +2919,11 @@ GxGetBlitFormat 006817B0 f end=006817BF type="BlitFormat __stdcall func(EGxTexFo GxLogOpen 006817C0 f end=006817C5 type="void __stdcall func()" GxLogClose 006817D0 f end=006817D5 GxLog 006817E0 f end=006817F5 type="int __stdcall func(char* format, ...)" -CGxFormat__CGxFormat 00681950 f type="CGxFormat* __thiscall func(CGxFormat* this)" +CGxFormat__constructor 00681950 f type="CGxFormat* __thiscall func(CGxFormat* this)" GxDrawLockedElements 00681A60 f end=00681AAB type="void __stdcall func()" GxPrimIndexPtr 00681AB0 f end=00681AFB type="void __stdcall func(uint32_t indexCount, uint16_t* indices)" GxPrimVertexPtr 00681B00 f end=00681B4B type="void __stdcall func(CGxBuf* buf, EGxVertexBufferFormat format)" -CGxTexFlags__CGxTexFlags 00681BE0 f end=00681CAB ; UC +CGxTexFlags__constructor 00681BE0 f end=00681CAB ; UC GxTexCreate 00681CB0 f end=00681D87 GxTexUpdate 00681F20 f end=00681F59 GxXformSetViewport 00681F60 f end=00682124 type="void __stdcall func(float minX, float maxX, float minY, float maxY, float minZ, float maxZ)" @@ -2935,6 +2943,7 @@ CGxDevice__DeviceApi 00682D20 f end=00682D27 type="EGxApi __thiscall func(CGxDev CGxDevice__DeviceTakeScreenShot 00682D30 f end=00682D3B type="void __thiscall func(CGxDevice* this)" CGxDevice__IDevIsWindowed 00682D40 f end=00682D48 type="int32_t __thiscall func(CGxDevice* this)" CGxDevice__DeviceCurWindow 00682D70 f end=00682D76 type="CRect* __thiscall func(CGxDevice* this)" +CGxDevice__DeviceDefWindow 00682D80 f end=00682D87 type="CRect* __thiscall func(CGxDevice* this)" CGxDevice__CapsIsWindowVisible 00682DC0 f end=00682DE7 type="int32_t __thiscall func(CGxDevice* this, int32_t a2)" CGxDevice__CapsHasContext 00682E20 f end=00682E47 type="int32_t __thiscall func(CGxDevice* this, int32_t a2)" CGxDevice__ScenePresent 00682E50 f end=00682E66 type="void __thiscall func(CGxDevice* this)" @@ -2959,20 +2968,23 @@ CGxDevice__CursorLock 00683650 f end=00683657 type="uint32_t* __thiscall func(CG CGxDevice__CursorSetDepth 00683660 f end=00683670 type="void __thiscall func(CGxDevice* this, float depth)" CGxDevice__LogOpen 00683670 f end=006836A4 type="void __stdcall func()" ; static void CGxDevice::LogOpen(void) CGxDevice__LogClose 006836B0 f end=006836CA -CGxMatrixStack__CGxMatrixStack 00683B90 f end=00683CE0 type="CGxMatrixStack* __thiscall func(CGxMatrixStack* this)" -CGxDevice__WindowConstrainTopByAspect 00683D60 f end=00683DB0 type="void __stdcall func(CiRect* windowRect)" -CGxDevice__WindowConstrainBottomByAspect 00683DB0 f end=00683DFE type="void __stdcall func(CiRect* windowRect)" -CGxDevice__WindowConstrainLeftByAspect 00683E00 f end=00683E50 type="void __stdcall func(CiRect* windowRect)" -CGxDevice__WindowConstrainRightByAspect 00683E50 f end=00683E9E type="void __stdcall func(CiRect* windowRect)" -CGxDevice__WindowConstrainLeft 00683EA0 f end=00683ECD type="void __stdcall func(CiRect* windowRect)" -CGxDevice__WindowConstrainRight 00683ED0 f end=00683EFD type="void __stdcall func(CiRect* windowRect)" -CGxDevice__WindowConstrainTop 00683F00 f end=00683F2B type="void __stdcall func(CiRect* windowRect)" -CGxDevice__WindowConstrainBottom 00683F30 f end=00683F5C type="void __stdcall func(CiRect* windowRect)" -CGxLight__CGxLight 00683FB0 f end=0068406C type="CGxLight* __thiscall func(CGxLight* this)" -CGxGammaRamp__Set 00684070 f end=006840ED type="void __thiscall func(CGxGammaRamp* this, float gamma)" +CGxDevice__WaitForFPSCap 006836D0 f end=00683754 type="void __thiscall func(CGxDevice* this)" +CGxMatrixStack__constructor 00683B90 f end=00683CE0 type="CGxMatrixStack* __thiscall func(CGxMatrixStack* this)" +CGxDevice__ClampRectToWindow 00683CE0 f end=00683D52 type="void __thiscall func(CGxDevice* this, CiRect* rect)" +CGxDevice__ClampRectTopByAspect 00683D60 f end=00683DB0 type="void __stdcall func(CiRect* windowRect)" +CGxDevice__ClampRectBottomByAspect 00683DB0 f end=00683DFE type="void __stdcall func(CiRect* windowRect)" +CGxDevice__ClampRectLeftByAspect 00683E00 f end=00683E50 type="void __stdcall func(CiRect* windowRect)" +CGxDevice__ClampRectRightByAspect 00683E50 f end=00683E9E type="void __stdcall func(CiRect* windowRect)" +CGxDevice__ClampRectLeft 00683EA0 f end=00683ECD type="void __stdcall func(CiRect* windowRect)" +CGxDevice__ClampRectRight 00683ED0 f end=00683EFD type="void __stdcall func(CiRect* windowRect)" +CGxDevice__ClampRectTop 00683F00 f end=00683F2B type="void __stdcall func(CiRect* windowRect)" +CGxDevice__ClampRectBottom 00683F30 f end=00683F5C type="void __stdcall func(CiRect* windowRect)" +CGxLight__constructor 00683FB0 f end=0068406C type="CGxLight* __thiscall func(CGxLight* this)" +CGxGammaRamp__Set 00684070 f end=006840ED type="void __thiscall func(CGxGammaRamp* this, float gamma)" CGxDevice__DeviceSetFormat 006840F0 f end=0068416C type="int32_t __thiscall func(CGxDevice* this, CGxFormat* format)" CGxDevice__DeviceSetGamma 00684170 f end=00684189 type="void __thiscall func(CGxDevice* this, float gamma)" CGxDevice__DeviceSetGamma 00684190 f end=006841AF type="int32_t __thiscall func(CGxDevice* this, CGxGammaRamp* ramp)" +CGxDevice__DeviceScreenShot 006841D0 f end=00684254 type="void __thiscall func(CGxDevice* this)" CGxDevice__DeviceReadScreenShot 00684260 f end=0068429E type="void __thiscall func(CGxDevice* this, uint32_t* w, uint32_t* h, CImVector** pixels)" CGxDevice__DeviceSetRenderTarget 006842A0 f end=0068435D type="void __thiscall func(CGxDevice* this, EGxBuffer buffer, CGxTex* texture, uint32_t plane)" CGxDevice__DeviceSetDefWindow 00684360 f end=006843B0 type="void __thiscall func(CGxDevice* this, CRect* rect)" @@ -3023,8 +3035,9 @@ 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)" +CGxPool__Invalidate 00688230 f end=00688251 type="void __thiscall func(CGxPool* this)" CGxDevice__PoolDestroy 00688340 f end=00688372 type="void __thiscall func(CGxDevice* this, CGxPool* pool)" -CGxDevice__CGxDevice 00688690 f end=0068903F type="void __thiscall func(CGxDevice* this)" +CGxDevice__constructor 00688690 f end=0068903F type="void __thiscall func(CGxDevice* this)" CGxDevice__XformSetProjection 00689040 f end=0068904F type="void __thiscall func(CGxDevice* this, C44Matrix* matrix)" CGxDevice__XformSetView 00689050 f end=006890C0 type="void __thiscall func(CGxDevice* this, C44Matrix* matrix)" CGxDevice__destructor 006890C0 f end=00689460 type="void __thiscall func(CGxDevice* this)" @@ -3042,11 +3055,12 @@ TSGrowableArray_CGxMonitorMode__New 0068A090 f end=0068A0ED type="CGxMonitorMode TSGrowableArray_CGxMonitorMode__SetCount 0068A0F0 f end=0068A165 type="void __thiscall func(TSGrowableArray_CGxMonitorMode* this, uint32_t count)" CGxDevice__AdapterMonitorModes 0068A4C0 f end=0068A589 type="void __stdcall func(TSGrowableArray_CGxMonitorMode* modes)" CGxDeviceOpenGl__ISetGlCaps 0068A9A0 f end=0068AF34 type="void __thiscall func(CGxDeviceOpenGl* this, CGxFormat* format)" -CGxDeviceOpenGl__CGxDeviceOpenGl 0068BBC0 f end=0068BD15 type="void __thiscall func(CGxDeviceOpenGl* this)" +CGxDeviceOpenGl__constructor 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 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__IReleaseD3dPool 0068E1F0 f end=0068E247 type="void __thiscall func(CGxDeviceD3d* this, CGxPool* pool)" 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)" @@ -3062,19 +3076,21 @@ 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)" +WindowClassCreate 0068EB20 f end=0068EBA8 type="uint16_t __stdcall func()" 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__Sub68F6A0 0068F6A0 f end=0068F762 type="void __thiscall func(CGxDeviceD3d* this)" 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__DeviceCopyTex 0068F950 f end=0068FA5E type="void __thiscall func(CGxDeviceD3d* this, CGxTex* sourceTex, uint32_t sourcePlane, CGxTex* destTex, uint32_t destPlane)" 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 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__constructor 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 type="void __thiscall func(CGxDeviceD3d* this, int32_t freeTextures)" @@ -3083,14 +3099,14 @@ CGxDeviceD3d__IDestroyD3d 006903B0 f end=006904C4 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 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__DeviceCreate 00690750 f end=00690821 type="int32_t __thiscall func(CGxDeviceD3d* this, int32_t (*windowProc)(void*, uint32_t, uintptr_t, intptr_t), CGxFormat* format)" +CGxDeviceD3d__DeviceCreate 00690830 f end=00690897 type="int32_t __thiscall func(CGxDeviceD3d* this, void* hwnd, CGxFormat* format)" ScanString 006908B0 f end=0069090D BindGlExtensions 006909A0 f end=0069186D CGxDeviceD3d__Sub69FAA0 0069FAA0 f end=0069FAFE type="int32_t __thiscall func(CGxDeviceD3d* this, D3DFORMAT format)" 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__ISetWindowFocus 0069FE10 f end=0069FE57 type="void __thiscall func(CGxDeviceD3d* this, int32_t focus)" ; 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)" @@ -3105,14 +3121,14 @@ CGxDeviceD3d__QueryGetData 006A0310 f end=006A035F type="bool __thiscall func(CG CGxDeviceD3d__WindowProcD3d 006A0360 f end=006A0834 type="LRESULT __stdcall func(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)" CGxDeviceD3d__IReleaseD3dQueries 006A1690 f end=006A16CC type="void __thiscall func(CGxDeviceD3d* this, int32_t freeQueries)" CGxDeviceD3d__DeviceReadDepths 006A1950 f end=006A19C4 type="void __thiscall func(CGxDeviceD3d* this, CiRect* rect, TSGrowableArray_float* depths)" -CGxDeviceD3d9Ex__CGxDeviceD3d9Ex 006A1A90 f end=006A1C24 +CGxDeviceD3d9Ex__constructor 006A1A90 f end=006A1C24 CGxDeviceD3d__IReleaseD3dPools 006A1C60 f end=006A1CDC type="void __thiscall func(CGxDeviceD3d* this, int32_t freePools)" CGxDeviceD3d__ITexForceRecreation 006A2AA0 f end=006A2BA3 CGxDeviceD3d__TexDestroy 006A2BB0 f end=006A2BF1 type="void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)" 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__TexCopy 006A30D0 f end=006A31D6 type="int32_t __thiscall func(CGxDeviceD3d* this, CGxTex* destTex, CGxTex* sourceTex, C2iVector* pos, C2iVector* size, uint32_t level, uint32_t plane)" 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 type="void __thiscall func(CGxDeviceD3d* this)" CGxDeviceD3d__ISceneEnd 006A3420 f end=006A3449 type="void __thiscall func(CGxDeviceD3d* this)" @@ -3125,12 +3141,17 @@ CGxDeviceD3d__IStateSyncScissorRect 006A38D0 f end=006A39D2 type="void __thiscal 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__ISetTexCoordIndex 006A4100 f end=006A4190 type="void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, EGxTexGen texGen, uint32_t index)" CGxDeviceD3d__ISetColorOp 006A4190 f end=006A41EC type="void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, uint32_t op)" CGxDeviceD3d__ISetAlphaOp 006A41F0 f end=006A424C type="void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, uint32_t op)" +CGxDeviceD3d__ISetMaterial 006A4250 f end=006A439B type="void __thiscall func(CGxDeviceD3d* this, CImVector diffuse, CImVector emissive, CImVector specular, float specularExp)" +C44Matrix__Inverse 006A43A0 f type="C44Matrix* __thiscall func(C44Matrix *this, C44Matrix* __return_ptr result)" CGxDeviceD3d__IStateSyncLights 006A43D0 f end=006A46F9 type="void __thiscall func(CGxDeviceD3d* this)" 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__ISetTexCoord 006A4AC0 f end=006A4AEF type="void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, uint32_t index)" +CGxDeviceD3d__ISetTexGen 006A4AF0 f end=006A4C2B type="void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, EGxTexGen texGen)" CGxDeviceD3d__IRsSendToHw 006A4C30 f end=006A5499 type="void __thiscall func(CGxDeviceD3d* this, EGxRenderState rs)" CGxDeviceD3d__ICreateD3dVertexDecl 006A5540 f end=006A5677 type="LPDIRECT3DVERTEXDECLARATION9 __thiscall func(CGxDeviceD3d* this, D3DVERTEXELEMENT9* elements, uint32_t count)" CGxDeviceD3d__IReleaseD3dVertexDecl 006A5680 f end=006A56F2 type="void __thiscall func(CGxDeviceD3d* this)" @@ -3214,7 +3235,7 @@ CBLPFile__Lock2 006AFCE0 f end=006AFF06 type="int32_t __thiscall func(CBLPFile* CBLPFile__Open 006AFF10 f end=006AFFCF type="int32_t __thiscall func(CBLPFile* this, char* filename)" CBLPFile__LockChain2 006AFFD0 f end=006B012E type="int32_t __thiscall func(CBLPFile* this, char* fileName, PIXEL_FORMAT format, MipBits** images, uint32_t mipLevel, int32_t a6)" ClientServices__LoadCDKey 006B0190 f end=006B0246 -ClientConnection__ClientConnection 006B0250 f end=006B02B5 +ClientConnection__constructor 006B0250 f end=006B02B5 ClientConnection__Cleanup 006B0850 f end=006B086B ClientConnection__Disconnect 006B0940 f end=006B095E ; ClientConnection::Disconnect(DISCONNECT_REASON) nullsub_154 006B0960 f @@ -3677,7 +3698,7 @@ SCmdProcessCommandLine 00773990 f end=007739AD type="int32_t __stdcall func(CMDE StormInitialize 007739E0 f end=007739F4 StormDestroy 00773A00 f end=00773A2F StormSetOption 00773A80 f end=00773C81 type="int32_t __stdcall func(int optname, void* optval, uint32_t optlen)" -SCritSect__SCritSect 00774620 f end=0077462E type="SCritSect* __thiscall func(SCritSect* this)" +SCritSect__constructor 00774620 f end=0077462E type="SCritSect* __thiscall func(SCritSect* this)" SCritSect__destructor 00774630 f end=00774638 type="void __thiscall func(SCritSect *this)" SCritSect__Enter 00774640 f end=00774648 type="void __thiscall func(SCritSect *this)" SCritSect__Leave 00774650 f end=00774658 type="void __thiscall func(SCritSect *this)" @@ -3721,7 +3742,7 @@ BigStack__destructor 0077AE80 f end=0077AEB1 type="void __thiscall func(BigStack BigBuffer__operator_index 0077AEC0 f end=0077AF2D type="uint32_t* __thiscall func(BigBuffer* this, uint32_t index)" ; public: unsigned int & __thiscall BigBuffer::operator[](unsigned int)const BigBuffer__SetCount 0077AF30 f end=0077AF7C type="void __thiscall func(BigBuffer* this, uint32_t count)" BigBuffer__Trim 0077AF80 f end=0077AFE3 type="void __thiscall func(BigBuffer* this)" ; public: void __thiscall BigBuffer::Trim(void)const -BigStack__BigStack 0077AFF0 f end=0077B01F type="void __thiscall func(BigBuffer* this)" +BigStack__constructor 0077AFF0 f end=0077B01F type="void __thiscall func(BigBuffer* this)" Add 0077B020 f end=0077B158 type="void __stdcall func(BigBuffer* a, BigBuffer* b, BigBuffer* c@)" ; void Add(class BigBuffer &,class BigBuffer const &,class BigBuffer const &) Div 0077B160 f end=0077B2A8 type="void __stdcall func(BigBuffer* a, uint32_t* b, BigBuffer* c, uint64_t d)" ; void Div(class BigBuffer &,unsigned int *,class BigBuffer const &,unsigned __int64) Mul 0077B2B0 f end=0077B3D2 type="void __stdcall func(BigBuffer* a, BigBuffer* b, uint64_t c)" ; void Mul(class BigBuffer &,class BigBuffer const &,unsigned __int64) @@ -3752,7 +3773,7 @@ World__Intersect 0077F310 f end=0077F319 World__Preload 00781500 f end=007815B7 DayNight__Update 007816F0 f end=007819BC ; DayNight::Update(unsigned int, float, float) CMapObj__Init 007AE300 f end=007AE3A6 ; CMapObj::Init() -CMapObj__CMapObj 007B0580 f end=007B05F9 ; CMapObj::CMapObj() +CMapObj__constructor 007B0580 f end=007B05F9 ; CMapObj::CMapObj() CMapObj__Create 007B0CC0 f end=007B0D37 ; CMapObj::Create(char const*) CDetailDoodad__UpdateAlphaRampTexture 007B1270 f end=007B129F ; CDetailDoodad::UpdateAlphaRampTexture(EGxTexCommand, unsigned int, unsigned int, unsigned int, unsigned int, void*, unsigned int&, void const*&) CDetailDoodad__InitializeShaderConstants 007B15D0 f end=007B1B05 ; CDetailDoodad::InitializeShaderConstants() @@ -3766,15 +3787,15 @@ CMap__AllocLight 007C08A0 f end=007C0907 ; public: static class CMapLight * __fa CMapDoodadDef__SelectLights 007C1150 f end=007C1371 ; CMapDoodadDef::SelectLights(CM2Lighting*) CMapEntity__SelectLights 007C1730 f end=007C1ACA ; CMapEntity::SelectLights(CM2Lighting*) CMapChunk__UpdateLights 007C65A0 f end=007C65FE ; public: void __thiscall CMapChunk::UpdateLights(void) -CMapBaseObj__CMapBaseObj 007D7260 f end=007D7293 ; CMapBaseObj::CMapBaseObj() +CMapBaseObj__constructor 007D7260 f end=007D7293 ; CMapBaseObj::CMapBaseObj() CMapObj__Read 007D80C0 f end=007D81BB ; CMapObj::Read(char const*) -CMapLight__CMapLight 007D9B10 f end=007D9B8F ; public: __thiscall CMapLight::CMapLight(void) +CMapLight__constructor 007D9B10 f end=007D9B8F ; public: __thiscall CMapLight::CMapLight(void) CMap__CreateLight 007D9BD0 f end=007D9C7B ; CMap::CreateLight(bool, bool) CMap__UpdateLightBounds 007D9C80 f end=007D9D4F ; public: static void __cdecl CMap::UpdateLightBounds(class CMapLight *) CMap__EnableLight 007D9D50 f end=007D9D66 ; public: static void __cdecl CMap::EnableLight(class CMapLight *) -CMap__DestroyLight 007D9D70 f end=007D9DDE ; public: static void __cdecl CMap::DestroyLight(class CMapLight *) +CMap__DestroyLight 007D9D70 f end=007D9DDE ; public: static void __cdecl CMap::DestroyLight(class CMapLight *) CMap__LinkLightToChunks 007D9DE0 f end=007D9F8F ; CMap::LinkLightToChunks(class CMapLight *) -CMap__LinkLightToMapObjDefs 007D9F90 f end=007DA0F5 ; CMap::LinkLightToMapObjDefs(class CMapLight *) +CMap__LinkLightToMapObjDefs 007D9F90 f end=007DA0F5 ; CMap::LinkLightToMapObjDefs(class CMapLight *) CMap__UpdateLight 007DA100 f end=007DA187 ; CMap::UpdateLight(class CMapLight *) WardenClient_Destroy 007DA420 f end=007DA4B0 ; WardenClient_Destroy() WardenClient_Initialize 007DA8C0 f end=007DA92C ; WardenClient_Initialize() @@ -3795,8 +3816,8 @@ Script_GetVoiceSessionMemberInfoBySessionID 007DEEF0 f end=007DF0AF Script_UnitIsTalking 007DF0B0 f end=007DF142 ComSatClient_Init 007DFAF0 f end=007DFE9C IsRussian 007E1030 f end=007E1049 -EffectDeath__EffectDeath 007EA260 f end=007EA416 -EffectNetherWorld__EffectNetherWorld 007EA470 f end=007EA592 +EffectDeath__constructor 007EA260 f end=007EA416 +EffectNetherWorld__constructor 007EA470 f end=007EA592 DayNight__CalcFogRate 007ECD00 f end=007ECD76 ; DayNight::CalcFogRate(float, float) DayNight__SetOverrideLightParamsID 007ECEC0 f end=007ECEDC ; DayNight::SetOverrideLightParamsID(int) DayNight__ClearOverrideLightParamsID 007ECEE0 f end=007ECEEB ; DayNight::ClearOverrideLightParamsID() @@ -3885,7 +3906,7 @@ FrameScript_Object__GetScriptByName 00816830 f end=00816865 FrameScript_GetCurrentFunction 00817EE0 f end=00817F88 FrameScript_Sprintf 00818070 f end=0081839F type="void __stdcall func(lua_State* L, int startIndex, char* buffer, uint32_t bufferSize)" ; startIndex is the index of starting argument on stack FrameScript_GetErrorHandlerReference 008192F0 f end=008192F6 -FrameScript_Object__FrameScript_Object 00819830 f end=0081984B type="void __thiscall func(FrameScript_Object* this)" ; FrameScript_Object::FrameScript_Object() +FrameScript_Object__constructor 00819830 f end=0081984B type="void __thiscall func(FrameScript_Object* this)" ; FrameScript_Object::FrameScript_Object() FrameScript_Object__destructor 00819850 f end=00819872 ; FrameScript_Object::~FrameScript_Object() FrameScript_Object__RegisterScriptObject 00819880 f end=008199B8 FrameScript_Object__UnregisterScriptObject 008199C0 f end=00819A58 ; FrameScript_Object::UnregisterScriptObject(char const*) @@ -3920,7 +3941,7 @@ CM2Cache__CreateShared 0081C390 f end=0081C6D5 ; CM2Cache::CreateShared(char con M2Initialize 0081C6E0 f end=0081C747 CM2Cache__UpdateShared 0081C790 f end=0081C832 ; CM2Cache::UpdateShared() CM2Cache__LinkToSharedUpdateList 0081C840 f end=0081C862 ; CM2Cache::LinkToSharedUpdateList(CM2Shared*) -CM2Cache__CM2Cache 0081C900 f end=0081C988 ; CM2Cache::CM2Cache() +CM2Cache__constructor 0081C900 f end=0081C988 ; CM2Cache::CM2Cache() CM2Scene__AdvanceTime 0081C9C0 f end=0081CA09 ; CM2Scene::AdvanceTime(unsigned int) CM2Scene__AnimateThread 0081CE70 f end=0081CF14 ; CM2Scene::AnimateThread(void*) CM2Scene__SelectLights 0081E400 f end=0081E58F ; CM2Scene::SelectLights(CM2Lighting*) @@ -3932,7 +3953,7 @@ CM2Scene__SortOpaque 0081EEA0 f end=0081EF15 ; CM2Scene::SortOpaque(unsigned int CM2Scene__SortTransparent 0081EF30 f end=0081F0D7 ; CM2Scene::SortTransparent(unsigned int, unsigned int, void const*) CM2Scene__SortAdditiveParticles 0081F0E0 f end=0081F1C3 ; CM2Scene::SortAdditiveParticles(unsigned int, unsigned int, void const*) CM2Scene__ComputeElementShaders 0081F1D0 f end=0081F327 ; CM2Scene::ComputeElementShaders(M2Element*) -CM2SceneRender__CM2SceneRender 0081F330 f end=0081F449 ; CM2SceneRender::CM2SceneRender(CM2Scene*) +CM2SceneRender__constructor 0081F330 f end=0081F449 ; CM2SceneRender::CM2SceneRender(CM2Scene*) CM2SceneRender__SetupTextures 0081F450 f end=0081F620 ; CM2SceneRender::SetupTextures() CM2SceneRender__SetBatchVertices 0081F700 f end=0081F7FC ; CM2SceneRender::SetBatchVertices(int) CM2Scene__CreateModel 0081F8F0 f end=0081F96F ; CM2Scene::CreateModel(char const*, unsigned int) @@ -3945,7 +3966,7 @@ CM2SceneRender__DrawBatchProj 00820720 f end=00820ADD ; CM2SceneRender::DrawBatc CM2SceneRender__DrawBatchDoodad 00820AE0 f end=00820F35 ; CM2SceneRender::DrawBatchDoodad(M2Element*, unsigned int*) CM2SceneRender__DrawRibbon 00820F40 f end=0082103B ; CM2SceneRender::DrawRibbon() CM2SceneRender__DrawParticle 008214E0 f end=00821667 ; CM2SceneRender::DrawParticle(unsigned int, M2Element*, unsigned int*, unsigned int) -CM2Scene__CM2Scene 008216C0 f end=00821842 ; CM2Scene::CM2Scene(CM2Cache*) +CM2Scene__constructor 008216C0 f end=00821842 ; CM2Scene::CM2Scene(CM2Cache*) CM2Scene__destructor 00821850 f end=0082192E ; CM2Scene::~CM2Scene() CM2Scene__Animate 00821A20 f end=0082303A ; CM2Scene::Animate(C3Vector const&) CM2Scene__Release 00823040 f end=00823062 ; CM2Scene::Release() @@ -3982,7 +4003,7 @@ CM2Model__AnimateST 00828A00 f end=00828F8A ; CM2Model::AnimateST() CM2Model__SetIndices 00828F90 f end=00829160 ; CM2Model::SetIndices() const CM2Model__SetVertices 00829160 f end=00829296 ; CM2Model::SetVertices(int, M2SkinSection*, unsigned int) const CM2Model__RenderModelBatchesForProjectedTexture 00829AA0 f end=00829B94 ; CM2Model::RenderModelBatchesForProjectedTexture() -CM2Model__CM2Model 0082BE60 f end=0082C1B7 ; CM2Model::CM2Model() +CM2Model__constructor 0082BE60 f end=0082C1B7 ; CM2Model::CM2Model() CM2Model__OptimizeVisibleGeometry 0082C970 f end=0082CEC2 ; CM2Model::OptimizeVisibleGeometry() CM2Model__AnimateParticlesMT 0082D2F0 f end=0082D6E1 ; CM2Model::AnimateParticlesMT() CM2Model__AnimateTextureTransformsMT 0082D6F0 f end=0082D903 ; CM2Model::AnimateTextureTransformsMT() @@ -4017,7 +4038,7 @@ CM2Lighting__Initialize 00834900 f end=0083493E ; CM2Lighting::Initialize(CM2Sce CM2Lighting__SetFog 00834940 f end=0083498C ; CM2Lighting::SetFog(C3Vector const&, float, float) CM2Lighting__SetFog 00834990 f end=008349DB ; CM2Lighting::SetFog(C3Vector const&, float, float, float) CM2Lighting__GetPointLight 008349E0 f end=00834A40 ; CM2Lighting::GetPointLight(unsigned int, C3Vector&, C3Vector&, C3Vector&) -CM2Light__CM2Light 00834A40 f end=00834AA7 ; CM2Light::CM2Light() +CM2Light__constructor 00834A40 f end=00834AA7 ; CM2Light::CM2Light() CM2Light__destructor 00834AB0 f end=00834AD4 ; CM2Light::~CM2Light() CM2Light__SetDirection 00834AE0 f end=00834B43 ; CM2Light::SetDirection(C3Vector const&) CM2Light__Link 00834C70 f end=00834D84 ; CM2Light::Link() @@ -4042,7 +4063,7 @@ CM2Shared__AssignBatchTextureComboIndices 008374A0 f end=00837672 ; CM2Shared::A CM2Shared__SubstituteSpecializedShaders 00837680 f end=00837A3D ; CM2Shared::SubstituteSpecializedShaders() CM2Shared__InitializeSkinProfile 00837A40 f end=00837ED4 ; CM2Shared::InitializeSkinProfile() CM2Shared__FinishLoadingSkinProfile 00838490 f end=00838593 ; CM2Shared::FinishLoadingSkinProfile(unsigned int) -CM2Shared__CM2Shared 0083C5F0 f end=0083C6DC ; CM2Shared::CM2Shared(CM2Cache*) +CM2Shared__constructor 0083C5F0 f end=0083C6DC ; CM2Shared::CM2Shared(CM2Cache*) CM2Shared__InitLowPrioritySequence 0083C6E0 f end=0083CA8D ; CM2Shared::InitLowPrioritySequence(unsigned int, unsigned char*, unsigned int) CM2Shared__FinishLoadingLowPrioritySequence 0083CA90 f end=0083CB10 ; CM2Shared::FinishLoadingLowPrioritySequence(unsigned int, CAsyncObject*) CM2Shared__SkinProfileLoadedCallback 0083CB10 f end=0083CB3B ; CM2Shared::SkinProfileLoadedCallback(void*) @@ -4099,7 +4120,7 @@ OsTimeManager__Snapshot 0086ADC0 f end=0086AE20 type="uint64_t __thiscall func(O OsGetAsyncTimeMs 0086AE20 f end=0086AE2B OsGetAsyncTimeClocks 0086AE30 f end=0086AE68 OsGetAsyncClocksPerSecond 0086AE70 f end=0086AE94 -OsTimeManager__OsTimeManager 0086AEA0 f end=0086AF15 type="OsTimeManager* __thiscall func(OsTimeManager* this, int32_t a2)" +OsTimeManager__constructor 0086AEA0 f end=0086AF15 type="OsTimeManager* __thiscall func(OsTimeManager* this, int32_t a2)" OsTimeManagerCreate 0086AF20 f end=0086AF58 OsTimeManagerDestroy 0086AF60 f end=0086AF83 IOsGetProcessorFeatures 0086AF90 f end=0086B0BE @@ -4138,6 +4159,8 @@ OsCallSetContext 0086F5A0 f end=0086F5EA OsCallResetContext 0086F5F0 f end=0086F64E ; 00005410 OsCallInitialize 0086F760 f end=0086F875 OsCallInitializeContext 0086F880 f end=0086F902 +OsGetLastErrorStr 008714E0 f end=0087150C type="char* __stdcall func()" +OsFreeLastErrorStr 00871510 f end=0087151F type="void __stdcall func(char* str)" OsClipboardGetString 00872280 f end=00872297 OsClipboardPutString 008722A0 f end=008722BF IOsClipboardGetString 008726F0 f end=008727BB @@ -4200,7 +4223,7 @@ GruntLogin__Wait 008CA7F0 f end=008CA875 ; GruntLogin::Wait(char const*, LoginDa GruntLogin__EnterPIN 008CA880 f end=008CA9AB ; GruntLogin::EnterPIN(int, unsigned char*) GruntLogin__GetVersionChallenge 008CAC00 f end=008CAC07 ; GruntLogin::GetVersionChallenge() GruntLogin__Init 008CAC50 f end=008CAC99 ; GruntLogin::Init(LoginResponse*) -GruntLogin__GruntLogin 008CACA0 f end=008CAD19 ; GruntLogin::GruntLogin() +GruntLogin__constructor 008CACA0 f end=008CAD19 ; GruntLogin::GruntLogin() GruntLogin__Logoff 008CAD20 f end=008CAD32 ; GruntLogin::Logoff() GruntLogin__SetMatrixInfo 008CAD40 f end=008CAF95 ; GruntLogin::SetMatrixInfo(bool, unsigned char, unsigned char, unsigned char, unsigned char, bool, unsigned char, unsigned long long, unsigned char const*, unsigned int) GruntLogin__ReconnectResult 008CB020 f end=008CB13E ; GruntLogin::ReconnectResult(Grunt::Result, unsigned char const*, unsigned int, unsigned short) @@ -4251,7 +4274,7 @@ CSimpleModel__SetLight 0095F5C0 f end=0095F5DB type="void __thiscall func(CSimpl CSimpleModel__SetSequence 0095F5E0 f end=0095f60A type="void __thiscall func(CSimpleModel* this, uint32_t sequence)" CSimpleModel__SetSequenceTime 0095F610 f end=0095F641 type="int32_t __thiscall func(CSimpleModel* this, uint32_t sequence, int32_t time)" M2CreateScene 0095F650 f end=0095F66F -CSimpleModel__CSimpleModel 0095F680 f end=0095F7C5 type="void __thiscall func(CSimpleModel* this)" +CSimpleModel__constructor 0095F680 f end=0095F7C5 type="void __thiscall func(CSimpleModel* this)" CSimpleModel__scalar_deleting_destructor 0095F7D0 f end=0095F7FB type="void __thiscall func(CSimpleModel* this, uint32_t __flags)" CSimpleModel__LoadXML 0095F800 f end=0095F989 type="void __thiscall func(CSimpleModel* this, XMLNode* node, CStatus* status)" CSimpleModel__SetModel 0095F990 f end=0095F9E8 type="void __thiscall func(CSimpleModel* this, char* sourcefile)" @@ -4304,7 +4327,7 @@ CSimpleScrollFrame__RunOnScrollRangeChangedScript 0096AFD0 f end=0096B05B CSimpleScrollFrame__UnparentFrame 0096B060 f end=0096B082 ; CSimpleScrollFrame::UnparentFrame(CSimpleFrame*) CSimpleScrollFrame__UpdateScrollChild 0096B1C0 f end=0096B207 ; void __thiscall CSimpleScrollFrame::UpdateScrollChild(void) CSimpleScrollFrame__OnFrameSizeChanged 0096B210 f end=0096B23A ; CSimpleScrollFrame::OnFrameSizeChanged(float, float) -CSimpleScrollFrame__CSimpleScrollFrame 0096B2D0 f end=0096B33F ; CSimpleScrollFrame::CSimpleScrollFrame(CSimpleFrame*) +CSimpleScrollFrame__constructor 0096B2D0 f end=0096B33F ; CSimpleScrollFrame::CSimpleScrollFrame(CSimpleFrame*) CSimpleScrollFrame__SetScrollChild 0096B3A0 f end=0096B43D ; CSimpleScrollFrame::SetScrollChild(CSimpleFrame*) CSimpleScrollFrame__SetVerticalScroll 0096B480 f end=0096B4BE ; CSimpleScrollFrame::SetVerticalScroll(float) CSimpleScrollFrame__UpdateScrollChildRect 0096B4C0 f end=0096B59D ; CSimpleScrollFrame::UpdateScrollChildRect(float, float) @@ -4314,12 +4337,12 @@ CSimpleScrollFrame__LoadXML 0096B920 f end=0096B99B ; CSimpleScrollFrame::LoadXM CSimpleScrollFrame__OnFrameRender 0096B9A0 f end=0096B9CE ; CSimpleScrollFrame::OnFrameRender(CRenderBatch*, unsigned int) CSimpleScrollFrame__GetBoundsRect 0096B9D0 f end=0096BBAC ; CSimpleScrollFrame::GetBoundsRect(CRect&) CSimpleSlider__RunOnMinMaxChangedScript 0096BBB0 f end=0096BC08 -CSimpleSlider__CSimpleSlider 0096BE50 f end=0096BEC9 ; CSimpleSlider::CSimpleSlider(CSimpleFrame*) +CSimpleSlider__constructor 0096BE50 f end=0096BEC9 ; CSimpleSlider::CSimpleSlider(CSimpleFrame*) CSimpleSlider__IsA 0096BF00 f end=0096BF35 ; CSimpleSlider::IsA(int) const CSimpleSlider__SetValue 0096C090 f end=0096C1A7 ; CSimpleSlider::SetValue(float, bool) CSimpleSlider__SetMinMaxValues 0096C470 f end=0096C4FD ; CSimpleSlider::SetMinMaxValues(float, float) CSimpleHTML__FontUpdated 0096C750 f end=0096C764 ; CSimpleHTML::FontUpdated(CSimpleFontedFrameFont*, int) -CSimpleHTML__CSimpleHTML 0096C820 f end=0096C922 ; CSimpleHTML::CSimpleHTML(CSimpleFrame*) +CSimpleHTML__constructor 0096C820 f end=0096C922 ; CSimpleHTML::CSimpleHTML(CSimpleFrame*) CSimpleHTML__IsA 0096C960 f end=0096C995 ; CSimpleHTML::IsA(int) const CSimpleHTML__ParseIMG 0096C9E0 f end=0096CC8F ; CSimpleHTML::ParseIMG(XMLNode const*, CStatus*) CSimpleHTML__AddText 0096CC90 f end=0096CE72 ; CSimpleHTML::AddText(char const*, HTML_TEXT_TYPE, unsigned int) @@ -4340,7 +4363,7 @@ CSimpleEditBox_HighlightText 00976080 f end=00976108 CSimpleButton_GetButtonState 009771D0 f end=00977272 CSimpleButton_SetStateTexture 00977A70 f end=00977BD7 ; CSimpleButton_SetStateTexture(lua_State*, CSimpleButtonState, char const*) CSimpleButton_SetNormalTexture 00977C70 f end=00977C87 ; CSimpleButton_SetNormalTexture(lua_State*) -CSimpleHyperlinkedFrame__CSimpleHyperlinkedFrame 00978900 f end=0097894F ; CSimpleHyperlinkedFrame::CSimpleHyperlinkedFrame(CSimpleFrame*) +CSimpleHyperlinkedFrame__constructor 00978900 f end=0097894F ; CSimpleHyperlinkedFrame::CSimpleHyperlinkedFrame(CSimpleFrame*) CParticleEmitter2__SetModel 00978B30 f end=00978B70 ; CParticleEmitter2::SetModel(CM2Scene*, char const*) CParticleEmitter2__SetMaterial 00978BF0 f end=00978C34 ; CParticleEmitter2::SetMaterial(CParticleMat const&, CTexture*) CParticleEmitter2__SetTextureDimensions 00978C70 f end=00978CF7 ; CParticleEmitter2::SetTextureDimensions(unsigned int, unsigned int) @@ -4353,7 +4376,7 @@ CParticleEmitter2__GetReplacementColors 0097AB10 f end=0097ABF3 ; CParticleEmitt CParticleEmitter2__SetTwinkleScale 0097AC00 f end=0097AC1D ; CParticleEmitter2::SetTwinkleScale(CRange const&) CParticleEmitter2__CreateChildEmittersFromModel 0097AEB0 f end=0097AEE4 ; CParticleEmitter2::CreateChildEmittersFromModel(CM2Scene*, char const*) CParticleEmitter2__DetermineIfSimple 0097D370 f end=0097D5F5 ; CParticleEmitter2::DetermineIfSimple() -CParticleEmitter2__CParticleEmitter2 0097E150 f end=0097E3E6 ; CParticleEmitter2::CParticleEmitter2() +CParticleEmitter2__constructor 0097E150 f end=0097E3E6 ; CParticleEmitter2::CParticleEmitter2() CRibbonEmitter__SetDataEnabled 0097F570 f end=0097F5A3 ; CRibbonEmitter::SetDataEnabled(int) CRibbonEmitter__SetTexSlot 0097F5F0 f end=0097F60D ; CRibbonEmitter::SetTexSlot(unsigned int) CRibbonEmitter__SetAbove 0097F610 f end=0097F620 ; CRibbonEmitter::SetAbove(float) @@ -4363,16 +4386,16 @@ CRibbonEmitter__SetPos 0097F940 f end=0097FAC8 ; CRibbonEmitter::SetPos(C44Matri CRibbonEmitter__SetColor 0097FB60 f end=0097FBA0 ; CRibbonEmitter::SetColor(float, float, float) CRibbonEmitter__SetAlpha 0097FBA0 f end=0097FBDA ; CRibbonEmitter::SetAlpha(float) CRibbonEmitter__Update 00980090 f end=0098050D ; CRibbonEmitter::Update(float, int) -CRibbonEmitter__CRibbonEmitter 00980630 f end=0098080C ; CRibbonEmitter::CRibbonEmitter() +CRibbonEmitter__constructor 00980630 f end=0098080C ; CRibbonEmitter::CRibbonEmitter() CRibbonEmitter__Initialize 009808A0 f end=00980B4A ; CRibbonEmitter::Initialize(float, float, CImVector const&, TSGrowableArray const&, TSGrowableArray const&, TSGrowableArray const&, CAaRect const&, unsigned int, unsigned int) -CPlaneParticleEmitter__CPlaneParticleEmitter 00981310 f end=00981343 ; CPlaneParticleEmitter::CPlaneParticleEmitter() -CSphereParticleEmitter__CSphereParticleEmitter 009813F0 f end=00981423 ; CSphereParticleEmitter::CSphereParticleEmitter() +CPlaneParticleEmitter__constructor 00981310 f end=00981343 ; CPlaneParticleEmitter::CPlaneParticleEmitter() +CSphereParticleEmitter__constructor 009813F0 f end=00981423 ; CSphereParticleEmitter::CSphereParticleEmitter() CSplineParticleEmitter__SetSpline 00981500 f end=0098150F ; CSplineParticleEmitter::SetSpline(C3Vector const*, unsigned int) -CSplineParticleEmitter__CSplineParticleEmitter 009820F0 f end=00982148 ; CSplineParticleEmitter::CSplineParticleEmitter() +CSplineParticleEmitter__constructor 009820F0 f end=00982148 ; CSplineParticleEmitter::CSplineParticleEmitter() C4Quaternion__Slerp 00982460 f end=0098256C ; C4Quaternion::Slerp(float, C4Quaternion const&, C4Quaternion const&) C4Quaternion__Nlerp 00982630 f end=0098269F ; C4Quaternion::Nlerp(float, C4Quaternion const&, C4Quaternion const&) -C3Vector__C3Vector 00982970 f end=009829AD ; C3Vector::C3Vector(CImVector const&) -C4Vector__C4Vector 00984C90 f end=00984CDC ; C4Vector::C4Vector(CImVector const&) +C3Vector__constructor 00982970 f end=009829AD ; C3Vector::C3Vector(CImVector const&) +C4Vector__constructor 00984C90 f end=00984CDC ; C4Vector::C4Vector(CImVector const&) Script_PlaySound 009858B0 f end=0098594B Script_PlayMusic 00985950 f end=009859AA Script_PlaySoundFile 009859B0 f end=00985A0A @@ -4409,7 +4432,7 @@ CGNamePlateFrame__SetCastBarValues 0098F040 f end=0098F382 SRP6_Client__BeginAuthentication 009A8300 f end=009A83DF ; SRP6_Client::BeginAuthentication(char const*, char const*) SRP6_Client__CalculateProof 009A83E0 f end=009A88B1 ; SRP6_Client::CalculateProof(unsigned char const*, unsigned int, unsigned char const*, unsigned int, unsigned char const*, unsigned int, unsigned char const*, unsigned int, SRP6_Random&) SRP6_Client__VerifyServerProof 009A88C0 f end=009A897C ; SRP6_Client::VerifyServerProof(unsigned char const*, unsigned int) -SRP6_Random__SRP6_Random 009A8980 f end=009A89EA ; SRP6_Random::SRP6_Random(void const*, unsigned int) +SRP6_Random__constructor 009A8980 f end=009A89EA ; SRP6_Random::SRP6_Random(void const*, unsigned int) SRP6_Random__GenerateRandomBytes 009A89F0 f end=009A8A9B ; SRP6_Random::GenerateRandomBytes(unsigned char*, unsigned int) BigIntegerFromInt 009A8AA0 f end=009A8AC1 ; BigIntegerFromInt(unsigned int) BigIntegerFromBytes 009A8AD0 f end=009A8AF5 ; BigIntegerFromBytes(unsigned char const*, int) @@ -4858,6 +4881,7 @@ CGxDevice__kWinMinSize 00AD8BC0 l type="C2iVector" CGxDeviceD3d__s_GxTexFormatToUse 00AD8EF0 l type="EGxTexFormat[13]" CGxDeviceD3d__s_gxAttribToD3dAttribType 00AD8F24 l type="D3DDECLTYPE[7]" CGxDeviceD3d__s_filterModes 00AD8F40 l type="D3DTEXTUREFILTERTYPE[6][3]" +CGxDeviceD3d__s_normalizeNormals 00AD8F88 l type="uint32_t" CBLPFile__s_eightBitAlphaLookup 00AD90B0 l type="uint8_t[16]" CBLPFile__s_oneBitAlphaLookup 00AD90C0 l type="uint8_t[2]" s_rect 00ADBAB4 l type="RECTF" ; RECTF @@ -4973,7 +4997,8 @@ CGGameUI__m_billingExpireTime 00BD086C l CGGameUI__m_lastRegenTime 00BD08A0 l s_cvDeselectOnClick 00BD08F0 l type="CVar*" s_cvAutoLootDefault 00BD0914 l type="CVar*" -s_cvPredictedPower 00BD0A08 l type="CVar*" +g_predictedHealthCVar 00BD0A04 l type="CVar*" +g_predictedPowerCVar 00BD0A08 l type="CVar*" CGBarberShop__m_initialized 00BD19BA l CGSpellBook__m_stuckSpell 00BE7D8C l CGWorldMap__m_numLandmarks 00BE8EE0 l @@ -5115,6 +5140,7 @@ glLockArraysEXT 00C60608 l glMaxTextureImageUnitsARB 00C6060C l glExtCVA 00C60614 l glVersion 00C60618 l type="uint32_t" +d3dMaterial 00C606B0 l type="D3DMATERIAL9" d3dLight 00C606F8 l type="D3DLIGHT9" isIdent 00C60760 l s_blits 00C60930 l type="BLIT_FUNCTION[13][13][4]" ; BLIT_FUNCTION s_blits[BlitFormats_Last][BlitFormats_Last][BlitAlphas_Last]; diff --git a/profile/3.3.5a-windows-386/symbol/map/func.sym b/profile/3.3.5a-windows-386/symbol/map/func.sym index 898c98b..8383374 100644 --- a/profile/3.3.5a-windows-386/symbol/map/func.sym +++ b/profile/3.3.5a-windows-386/symbol/map/func.sym @@ -2,10 +2,10 @@ CMap__LoadWdt 007BF8B0 f end=007BFCDC ; CMap::LoadWdt() CMap__Load 007BFCE0 f end=007BFE33 ; public: static void __cdecl CMap::Load(char const *, int) CMap__AllocMapObj 007BFF20 f end=007BFF6B ; CMap::AllocMapObj() CMap__AllocLight 007C08A0 f end=007C0907 ; public: static class CMapLight * __fastcall CMap::AllocLight(void) +CMap__CreateLight 007D9BD0 f end=007D9C7B ; CMap::CreateLight(bool, bool) CMap__UpdateLightBounds 007D9C80 f end=007D9D4F ; public: static void __cdecl CMap::UpdateLightBounds(class CMapLight *) CMap__EnableLight 007D9D50 f end=007D9D66 ; public: static void __cdecl CMap::EnableLight(class CMapLight *) -CMap__DestroyLight 007D9D70 f end=007D9DDE ; public: static void __cdecl CMap::DestroyLight(class CMapLight *) +CMap__DestroyLight 007D9D70 f end=007D9DDE ; public: static void __cdecl CMap::DestroyLight(class CMapLight *) CMap__LinkLightToChunks 007D9DE0 f end=007D9F8F ; CMap::LinkLightToChunks(class CMapLight *) -CMap__LinkLightToMapObjDefs 007D9F90 f end=007DA0F5 ; CMap::LinkLightToMapObjDefs(class CMapLight *) +CMap__LinkLightToMapObjDefs 007D9F90 f end=007DA0F5 ; CMap::LinkLightToMapObjDefs(class CMapLight *) CMap__UpdateLight 007DA100 f end=007DA187 ; CMap::UpdateLight(class CMapLight *) -CMap__CreateLight 007D9BD0 f end=007D9C7B ; CMap::CreateLight(bool, bool) \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/mapbaseobj/func.sym b/profile/3.3.5a-windows-386/symbol/mapbaseobj/func.sym index c0cf14f..5911599 100644 --- a/profile/3.3.5a-windows-386/symbol/mapbaseobj/func.sym +++ b/profile/3.3.5a-windows-386/symbol/mapbaseobj/func.sym @@ -1 +1 @@ -CMapBaseObj__CMapBaseObj 007D7260 f end=007D7293 ; CMapBaseObj::CMapBaseObj() \ No newline at end of file +CMapBaseObj__constructor 007D7260 f end=007D7293 ; CMapBaseObj::CMapBaseObj() diff --git a/profile/3.3.5a-windows-386/symbol/mapchunk/func.sym b/profile/3.3.5a-windows-386/symbol/mapchunk/func.sym index edb2a0b..e377d79 100644 --- a/profile/3.3.5a-windows-386/symbol/mapchunk/func.sym +++ b/profile/3.3.5a-windows-386/symbol/mapchunk/func.sym @@ -1 +1 @@ -CMapChunk__UpdateLights 007C65A0 f end=007C65FE ; public: void __thiscall CMapChunk::UpdateLights(void) \ No newline at end of file +CMapChunk__UpdateLights 007C65A0 f end=007C65FE ; public: void __thiscall CMapChunk::UpdateLights(void) diff --git a/profile/3.3.5a-windows-386/symbol/mapdoodaddef/func.sym b/profile/3.3.5a-windows-386/symbol/mapdoodaddef/func.sym index c3ccf5e..d93822c 100644 --- a/profile/3.3.5a-windows-386/symbol/mapdoodaddef/func.sym +++ b/profile/3.3.5a-windows-386/symbol/mapdoodaddef/func.sym @@ -1 +1 @@ -CMapDoodadDef__SelectLights 007C1150 f end=007C1371 ; CMapDoodadDef::SelectLights(CM2Lighting*) \ No newline at end of file +CMapDoodadDef__SelectLights 007C1150 f end=007C1371 ; CMapDoodadDef::SelectLights(CM2Lighting*) diff --git a/profile/3.3.5a-windows-386/symbol/mapentity/func.sym b/profile/3.3.5a-windows-386/symbol/mapentity/func.sym index b5cb449..9652832 100644 --- a/profile/3.3.5a-windows-386/symbol/mapentity/func.sym +++ b/profile/3.3.5a-windows-386/symbol/mapentity/func.sym @@ -1 +1 @@ -CMapEntity__SelectLights 007C1730 f end=007C1ACA ; CMapEntity::SelectLights(CM2Lighting*) \ No newline at end of file +CMapEntity__SelectLights 007C1730 f end=007C1ACA ; CMapEntity::SelectLights(CM2Lighting*) diff --git a/profile/3.3.5a-windows-386/symbol/maplight/func.sym b/profile/3.3.5a-windows-386/symbol/maplight/func.sym index e37540e..ffb0753 100644 --- a/profile/3.3.5a-windows-386/symbol/maplight/func.sym +++ b/profile/3.3.5a-windows-386/symbol/maplight/func.sym @@ -1 +1 @@ -CMapLight__CMapLight 007D9B10 f end=007D9B8F ; public: __thiscall CMapLight::CMapLight(void) +CMapLight__constructor 007D9B10 f end=007D9B8F ; public: __thiscall CMapLight::CMapLight(void) diff --git a/profile/3.3.5a-windows-386/symbol/mapobj/func.sym b/profile/3.3.5a-windows-386/symbol/mapobj/func.sym index e16887f..72f12e5 100644 --- a/profile/3.3.5a-windows-386/symbol/mapobj/func.sym +++ b/profile/3.3.5a-windows-386/symbol/mapobj/func.sym @@ -1,4 +1,4 @@ CMapObj__Init 007AE300 f end=007AE3A6 ; CMapObj::Init() -CMapObj__CMapObj 007B0580 f end=007B05F9 ; CMapObj::CMapObj() +CMapObj__constructor 007B0580 f end=007B05F9 ; CMapObj::CMapObj() CMapObj__Create 007B0CC0 f end=007B0D37 ; CMapObj::Create(char const*) CMapObj__Read 007D80C0 f end=007D81BB ; CMapObj::Read(char const*) diff --git a/profile/3.3.5a-windows-386/symbol/md5/func.sym b/profile/3.3.5a-windows-386/symbol/md5/func.sym index 83579d0..9404d48 100644 --- a/profile/3.3.5a-windows-386/symbol/md5/func.sym +++ b/profile/3.3.5a-windows-386/symbol/md5/func.sym @@ -1,3 +1,3 @@ MD5Init 00779340 f end=0077936B ; 00005410 MD5Update 00779A30 f end=00779AD8 ; 00005410 -MD5Final 00779AE0 f end=00779B97 ; 00005410 \ No newline at end of file +MD5Final 00779AE0 f end=00779B97 ; 00005410 diff --git a/profile/3.3.5a-windows-386/symbol/movement/func.sym b/profile/3.3.5a-windows-386/symbol/movement/func.sym index 8877b95..a0a7792 100644 --- a/profile/3.3.5a-windows-386/symbol/movement/func.sym +++ b/profile/3.3.5a-windows-386/symbol/movement/func.sym @@ -1,8 +1,8 @@ MovementInit 00401520 f end=004015E0 -MovementDestroy 006F0C30 f end=006F0C6E -CMovement_C__OnMoveStopLocal 006ECDE0 f end=006ECE39 -CMovement_C__OnTurnStopLocal 006ECEA0 f end=006ECF06 CMovement_C__OnClientControlLost 006E9A60 f end=006E9A6F CMovement_C__UpdateHeartbeatTimerA 006E9B70 f end=006E9BAB +CMovement_C__OnMoveStopLocal 006ECDE0 f end=006ECE39 +CMovement_C__OnTurnStopLocal 006ECEA0 f end=006ECF06 +MovementDestroy 006F0C30 f end=006F0C6E MovementUpdateCameraYaw 0074B380 f end=0074B3E1 CMovementShared__Root 0098B540 f end=0098B570 diff --git a/profile/3.3.5a-windows-386/symbol/nameplate/func.sym b/profile/3.3.5a-windows-386/symbol/nameplate/func.sym index 363b630..c502694 100644 --- a/profile/3.3.5a-windows-386/symbol/nameplate/func.sym +++ b/profile/3.3.5a-windows-386/symbol/nameplate/func.sym @@ -1,4 +1,4 @@ -CGNamePlateFrame__SetCastBarValues 0098F040 f end=0098F382 CGNamePlateFrame__OnGainFocus 0098E910 f end=0098E974 CGNamePlateFrame__OnLoseFocus 0098E980 f end=0098E9E2 CGNamePlateFrame__UpdateLevelDisplay 0098EF10 f end=0098F040 +CGNamePlateFrame__SetCastBarValues 0098F040 f end=0098F382 diff --git a/profile/3.3.5a-windows-386/symbol/netclient/func.sym b/profile/3.3.5a-windows-386/symbol/netclient/func.sym index 6dbaf2b..572e736 100644 --- a/profile/3.3.5a-windows-386/symbol/netclient/func.sym +++ b/profile/3.3.5a-windows-386/symbol/netclient/func.sym @@ -16,7 +16,7 @@ NetClient__HandleDisconnect 00632540 f end=00632581 ; 00005400 NetClient__PongHandler 006325C0 f end=0063268A ; void __thiscall NetClient::PongHandler(class CDataStore *) NetClient__WCDisconnected 006326D0 f end=00632728 ; NetClient::WCDisconnected(WowConnection*, unsigned long, NETCONNADDR const*) NetClient__AuthChallengeHandler 00632730 f end=00632965 ; 00005410 -NetClient__NetClient 00632A40 f end=00632B43 ; 00005410 +NetClient__constructor 00632A40 f end=00632B43 ; 00005410 NetClient__Send 00632B50 f end=00632C02 ; NetClient::Send(CDataStore*) NetClient__WCCantConnect 00632C10 f end=00632CCD ; NetClient::WCCantConnect(WowConnection*, unsigned long, NETCONNADDR const*) NetClient__Ping 00632CD0 f end=00632DA8 ; NetClient::Ping(CONNECTION_ID) diff --git a/profile/3.3.5a-windows-386/symbol/neteventqueue/func.sym b/profile/3.3.5a-windows-386/symbol/neteventqueue/func.sym index bc9ed9f..8705b8d 100644 --- a/profile/3.3.5a-windows-386/symbol/neteventqueue/func.sym +++ b/profile/3.3.5a-windows-386/symbol/neteventqueue/func.sym @@ -1,4 +1,4 @@ -NETEVENTQUEUE__NETEVENTQUEUE 00633440 f end=0063346D ; NETEVENTQUEUE::NETEVENTQUEUE(NetClient*) +NETEVENTQUEUE__constructor 00633440 f end=0063346D ; NETEVENTQUEUE::NETEVENTQUEUE(NetClient*) NETEVENTQUEUE__Poll 006334F0 f end=0063360E ; NETEVENTQUEUE::Poll() NETEVENTQUEUE__AddEvent 00633650 f end=0063372A ; NETEVENTQUEUE::AddEvent(EVENTID, void*, NetClient*, void const*, unsigned long) NETEVENTQUEUE__destructor 00633730 f end=00633797 ; NETEVENTQUEUE::~NETEVENTQUEUE() diff --git a/profile/3.3.5a-windows-386/symbol/nullsub/func.sym b/profile/3.3.5a-windows-386/symbol/nullsub/func.sym index 938d79b..7dd5698 100644 --- a/profile/3.3.5a-windows-386/symbol/nullsub/func.sym +++ b/profile/3.3.5a-windows-386/symbol/nullsub/func.sym @@ -12,6 +12,7 @@ nullsub_155 006B1BA0 f nullsub_152 00743550 f nullsub_153 00743560 f stub_return_one_byte 008A1420 f end=008A1423 ; known names: System_File::Shutdown, CVGxVideoOptionsVersionCallback +stub_return_int32_one 008C8DE0 f type="int32_t __stdcall func()" ; Known names: GxDefaultApi, CCommand_Perf stub_return_zero4 008E5250 f end=008E5253 ; known names Script_ToggleTris, CLayoutFrame::IsAttachmentOrigin() stub_return_xor_eax 00936900 f end=00936905 nullsub_7 009D34B0 f @@ -158,4 +159,3 @@ nullsub_147 009DE1A0 f nullsub_148 009DE1B0 f nullsub_149 009DE1C0 f nullsub_150 009DE1D0 f -stub_return_int32_one 008C8DE0 f type="int32_t __stdcall func()" ; Known names: GxDefaultApi, CCommand_Perf diff --git a/profile/3.3.5a-windows-386/symbol/nvapi/func.sym b/profile/3.3.5a-windows-386/symbol/nvapi/func.sym index abb0e8a..20d9341 100644 --- a/profile/3.3.5a-windows-386/symbol/nvapi/func.sym +++ b/profile/3.3.5a-windows-386/symbol/nvapi/func.sym @@ -1,10 +1,10 @@ NvAPI_Initialize 008A09BA f end=008A0A54 -NvAPI_Stereo_IsEnabled 008A0FAC f end=008A0FB2 type="NvAPI_Status __stdcall func(uint8_t* pIsStereoEnabled)" -NvAPI_Stereo_Enable 008A0FA0 f end=008A0FA6 type="NvAPI_Status __stdcall func()" NvAPI_GetErrorMessage 008A0A54 f end=008A0A5A type="NvAPI_Status __stdcall func(int32_t nr, char* szDesc)" -NvAPI_Stereo_Disable 008A0FA6 f end=008A0FAC type="NvAPI_Status __stdcall func()" NvAPI_Stereo_CreateConfigurationProfileRegistryKey 008A0F88 f end=008A0F8E type="NvAPI_Status __stdcall func(NV_StereoRegistryProfileType registryProfileType)" +NvAPI_Stereo_Enable 008A0FA0 f end=008A0FA6 type="NvAPI_Status __stdcall func()" +NvAPI_Stereo_Disable 008A0FA6 f end=008A0FAC type="NvAPI_Status __stdcall func()" +NvAPI_Stereo_IsEnabled 008A0FAC f end=008A0FB2 type="NvAPI_Status __stdcall func(uint8_t* pIsStereoEnabled)" NvAPI_Stereo_CreateHandleFromIUnknown 008A0FB2 f end=008A0FB8 type="NvAPI_Status __stdcall func(IUnknown* pDevice, StereoHandle* pStereoHandle)" -NvAPI_Stereo_SetConvergence 008A0FEE f end=008A0FF4 type="NvAPI_Status __stdcall func(StereoHandle stereoHandle, float newConvergence)" +NvAPI_Stereo_DestroyHandle 008A0FB8 f end=008A0FBE type="NvAPI_Status __stdcall func(StereoHandle stereoHandle)" NvAPI_Stereo_SetSeparation 008A0FD6 f end=008A0FDC type="NvAPI_Status __stdcall func(StereoHandle stereoHandle, float newSeparationPercentage)" -NvAPI_Stereo_DestroyHandle 008A0FB8 f end=008A0FBE type="NvAPI_Status __stdcall func(StereoHandle stereoHandle)" \ No newline at end of file +NvAPI_Stereo_SetConvergence 008A0FEE f end=008A0FF4 type="NvAPI_Status __stdcall func(StereoHandle stereoHandle, float newConvergence)" diff --git a/profile/3.3.5a-windows-386/symbol/nvapi/label.sym b/profile/3.3.5a-windows-386/symbol/nvapi/label.sym index f3a2ad7..653ad6e 100644 --- a/profile/3.3.5a-windows-386/symbol/nvapi/label.sym +++ b/profile/3.3.5a-windows-386/symbol/nvapi/label.sym @@ -1,3 +1,3 @@ +NvApi__s_initialized 00B2376C l result 00B23770 l type="int32_t" NvApi__s_interface_table 00B23778 l type="NvApi__InterfaceTable[253]" -NvApi__s_initialized 00B2376C l \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/object/func.sym b/profile/3.3.5a-windows-386/symbol/object/func.sym index 741ea25..38c8750 100644 --- a/profile/3.3.5a-windows-386/symbol/object/func.sym +++ b/profile/3.3.5a-windows-386/symbol/object/func.sym @@ -1,10 +1,10 @@ +CGObject_C__ShouldRender 00743300 f end=00743316 +CGObject_C__IsReadyToDraw 00743450 f end=00743487 +CGObject_C__UpdateEffectAttachments 00743AF0 f end=00743B3C CGObject_C__HideHighlightType 00743BC0 f end=00743C6B CGObject_C__ShowHighlightType 00743C70 f end=00743D47 CGObject_C__UpdateAllWorldObjects 007440F0 f end=00744100 -CGObject_C__IsReadyToDraw 00743450 f end=00743487 CGObject_C__UpdateAllObjectEffectManagers 00744140 f end=00744150 -CGObject_C__GetQuestGiverCursor 00744640 f end=00744695 -CGObject_C__UpdateEffectAttachments 00743AF0 f end=00743B3C CGObject_C__HandleScaleUpdate 007441D0 f end=00744228 +CGObject_C__GetQuestGiverCursor 00744640 f end=00744695 CGObject_C__SetInteractIconVisible 00745140 f end=007451AE -CGObject_C__ShouldRender 00743300 f end=00743316 diff --git a/profile/3.3.5a-windows-386/symbol/opengl/func.sym b/profile/3.3.5a-windows-386/symbol/opengl/func.sym index d6606ae..190ab08 100644 --- a/profile/3.3.5a-windows-386/symbol/opengl/func.sym +++ b/profile/3.3.5a-windows-386/symbol/opengl/func.sym @@ -1,2 +1,2 @@ +ScanString 006908B0 f end=0069090D BindGlExtensions 006909A0 f end=0069186D -ScanString 006908B0 f end=0069090D \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/os/func.sym b/profile/3.3.5a-windows-386/symbol/os/func.sym index ccd3f22..af070b3 100644 --- a/profile/3.3.5a-windows-386/symbol/os/func.sym +++ b/profile/3.3.5a-windows-386/symbol/os/func.sym @@ -45,8 +45,10 @@ OsCallSetContext 0086F5A0 f end=0086F5EA OsCallResetContext 0086F5F0 f end=0086F64E ; 00005410 OsCallInitialize 0086F760 f end=0086F875 OsCallInitializeContext 0086F880 f end=0086F902 +OsGetLastErrorStr 008714E0 f end=0087150C type="char* __stdcall func()" +OsFreeLastErrorStr 00871510 f end=0087151F type="void __stdcall func(char* str)" OsClipboardGetString 00872280 f end=00872297 OsClipboardPutString 008722A0 f end=008722BF IOsClipboardGetString 008726F0 f end=008727BB +OsClipboardFreeString 008727C0 f end=008727DE IOsClipboardPutString 008727E0 f end=008728B8 -OsClipboardFreeString 008727C0 f end=008727DE \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/ostime/func.sym b/profile/3.3.5a-windows-386/symbol/ostime/func.sym index 20bb1d3..d0f504b 100644 --- a/profile/3.3.5a-windows-386/symbol/ostime/func.sym +++ b/profile/3.3.5a-windows-386/symbol/ostime/func.sym @@ -5,7 +5,7 @@ OsTimeManager__Snapshot 0086ADC0 f end=0086AE20 type="uint64_t __thiscall func(O OsGetAsyncTimeMs 0086AE20 f end=0086AE2B OsGetAsyncTimeClocks 0086AE30 f end=0086AE68 OsGetAsyncClocksPerSecond 0086AE70 f end=0086AE94 -OsTimeManager__OsTimeManager 0086AEA0 f end=0086AF15 type="OsTimeManager* __thiscall func(OsTimeManager* this, int32_t a2)" +OsTimeManager__constructor 0086AEA0 f end=0086AF15 type="OsTimeManager* __thiscall func(OsTimeManager* this, int32_t a2)" OsTimeManagerCreate 0086AF20 f end=0086AF58 OsTimeManagerDestroy 0086AF60 f end=0086AF83 OsTimeStartup 0086D430 f end=0086D439 type="void __stdcall func(TimingMethod timingMethod)" diff --git a/profile/3.3.5a-windows-386/symbol/particleemitter2/func.sym b/profile/3.3.5a-windows-386/symbol/particleemitter2/func.sym index e702876..ac14726 100644 --- a/profile/3.3.5a-windows-386/symbol/particleemitter2/func.sym +++ b/profile/3.3.5a-windows-386/symbol/particleemitter2/func.sym @@ -10,4 +10,4 @@ CParticleEmitter2__GetReplacementColors 0097AB10 f end=0097ABF3 ; CParticleEmitt CParticleEmitter2__SetTwinkleScale 0097AC00 f end=0097AC1D ; CParticleEmitter2::SetTwinkleScale(CRange const&) CParticleEmitter2__CreateChildEmittersFromModel 0097AEB0 f end=0097AEE4 ; CParticleEmitter2::CreateChildEmittersFromModel(CM2Scene*, char const*) CParticleEmitter2__DetermineIfSimple 0097D370 f end=0097D5F5 ; CParticleEmitter2::DetermineIfSimple() -CParticleEmitter2__CParticleEmitter2 0097E150 f end=0097E3E6 ; CParticleEmitter2::CParticleEmitter2() +CParticleEmitter2__constructor 0097E150 f end=0097E3E6 ; CParticleEmitter2::CParticleEmitter2() diff --git a/profile/3.3.5a-windows-386/symbol/partyinfo/func.sym b/profile/3.3.5a-windows-386/symbol/partyinfo/func.sym index 3144b50..fd6d0f2 100644 --- a/profile/3.3.5a-windows-386/symbol/partyinfo/func.sym +++ b/profile/3.3.5a-windows-386/symbol/partyinfo/func.sym @@ -1,3 +1,3 @@ +CGPartyInfo__EnableMember 0052C760 f end=0052C854 CGPartyInfo__CheckClearLFGSlot 0052CC30 f end=0052CCD0 CGPartyInfo__InitializeGame 0052D0E0 f end=0052D1D6 -CGPartyInfo__EnableMember 0052C760 f end=0052C854 diff --git a/profile/3.3.5a-windows-386/symbol/petinfo/func.sym b/profile/3.3.5a-windows-386/symbol/petinfo/func.sym index 0f6143e..8085b11 100644 --- a/profile/3.3.5a-windows-386/symbol/petinfo/func.sym +++ b/profile/3.3.5a-windows-386/symbol/petinfo/func.sym @@ -1,5 +1,5 @@ -CGPetInfo__ShowGrid 005D3070 f end=005D3080 -CGPetInfo__PetClearTarget 005D4650 f end=005D46EB -CGPetInfo__GetPet 005D3390 f end=005D33B3 CGPetInfo__GetModeToken 005D3050 f end=005D3060 +CGPetInfo__ShowGrid 005D3070 f end=005D3080 +CGPetInfo__GetPet 005D3390 f end=005D33B3 +CGPetInfo__PetClearTarget 005D4650 f end=005D46EB CGPetInfo__UpdatePetTempBar 005D4AD0 f end=005D4C2D diff --git a/profile/3.3.5a-windows-386/symbol/planeparticleemitter/func.sym b/profile/3.3.5a-windows-386/symbol/planeparticleemitter/func.sym index e3f8e40..53e2086 100644 --- a/profile/3.3.5a-windows-386/symbol/planeparticleemitter/func.sym +++ b/profile/3.3.5a-windows-386/symbol/planeparticleemitter/func.sym @@ -1 +1 @@ -CPlaneParticleEmitter__CPlaneParticleEmitter 00981310 f end=00981343 ; CPlaneParticleEmitter::CPlaneParticleEmitter() \ No newline at end of file +CPlaneParticleEmitter__constructor 00981310 f end=00981343 ; CPlaneParticleEmitter::CPlaneParticleEmitter() diff --git a/profile/3.3.5a-windows-386/symbol/player/func.sym b/profile/3.3.5a-windows-386/symbol/player/func.sym index e534215..8c35c3a 100644 --- a/profile/3.3.5a-windows-386/symbol/player/func.sym +++ b/profile/3.3.5a-windows-386/symbol/player/func.sym @@ -1,19 +1,19 @@ +GetInventorySlotToken 005D9F00 f end=005D9F3A +CGPlayer_C__SetAutoLoot 006CDE50 f end=006CDE81 CGPlayer_C__ClearLootingObject 006CEDD0 f end=006CEDE7 CGPlayer_C__GetPendingMovie 006CF290 f end=006CF296 -CloseAllLootRolls 006FAFD0 f end=006FB0FD -CGPlayer_C__CombatModeLeave 006E1660 f end=006E1776 -CGPlayer_C__CombatModeEnter 006E4950 f end=006E4B76 -CGPlayer_C__CanLoot 006D5A60 f end=006D5BD7 -CGPlayer_C__GetPVPFactionIndex 006D6E90 f end=006D6EFA -CGPlayer_C__VehicleAllowsInteraction 006D7AA0 f end=006D7B2B -CGPlayer_C__ToggleFarSight 006E2880 f end=006E2AFF CGPlayer_C__GetPlayedTime 006CF440 f end=006CF468 -CGPlayer_C__OnLevelChange 006D66E0 f end=006D6720 -CGPlayer_C__SetAutoLoot 006CDE50 f end=006CDE81 -CGPlayer_C__ClearAFK 006D52D0 f end=006D53A4 -CGPlayer_C__HandleSkinning 006D6F40 f end=006D702E -CGPlayer_C__LootUnit 006DAD90 f end=006DAF5E -CGPlayer_C__EquipVisibleItem 006E08C0 f end=006E09D5 -CGPlayer_C__CountEquippedGems 006DE4D0 f end=006DE6C8 -GetInventorySlotToken 005D9F00 f end=005D9F3A CGPlayer_C__ValidateSlot 006D4A00 f end=006D4AC9 +CGPlayer_C__ClearAFK 006D52D0 f end=006D53A4 +CGPlayer_C__CanLoot 006D5A60 f end=006D5BD7 +CGPlayer_C__OnLevelChange 006D66E0 f end=006D6720 +CGPlayer_C__GetPVPFactionIndex 006D6E90 f end=006D6EFA +CGPlayer_C__HandleSkinning 006D6F40 f end=006D702E +CGPlayer_C__VehicleAllowsInteraction 006D7AA0 f end=006D7B2B +CGPlayer_C__LootUnit 006DAD90 f end=006DAF5E +CGPlayer_C__CountEquippedGems 006DE4D0 f end=006DE6C8 +CGPlayer_C__EquipVisibleItem 006E08C0 f end=006E09D5 +CGPlayer_C__CombatModeLeave 006E1660 f end=006E1776 +CGPlayer_C__ToggleFarSight 006E2880 f end=006E2AFF +CGPlayer_C__CombatModeEnter 006E4950 f end=006E4B76 +CloseAllLootRolls 006FAFD0 f end=006FB0FD diff --git a/profile/3.3.5a-windows-386/symbol/realmlist/func.sym b/profile/3.3.5a-windows-386/symbol/realmlist/func.sym index 179412a..506a339 100644 --- a/profile/3.3.5a-windows-386/symbol/realmlist/func.sym +++ b/profile/3.3.5a-windows-386/symbol/realmlist/func.sym @@ -2,5 +2,5 @@ RealmListRegisterScriptFunctions 004DE4D0 f end=004DE4F3 RealmListUnregisterScriptFunctions 004DE500 f end=004DE51C CRealmList__SetPreferredInfo 004DE960 f end=004DEAEB ; CRealmList::SetPreferredInfo(unsigned int, int, int) CRealmList__Initialize 004DF580 f end=004DF66C ; CRealmList::Initialize() -CRealmList__UpdateList 004DF710 f end=004DFA4A ; CRealmList::UpdateList() CRealmList__Shutdown 004DF670 f end=004DF710 +CRealmList__UpdateList 004DF710 f end=004DFA4A ; CRealmList::UpdateList() diff --git a/profile/3.3.5a-windows-386/symbol/renderbatch/func.sym b/profile/3.3.5a-windows-386/symbol/renderbatch/func.sym index 9ecdbba..a315cb4 100644 --- a/profile/3.3.5a-windows-386/symbol/renderbatch/func.sym +++ b/profile/3.3.5a-windows-386/symbol/renderbatch/func.sym @@ -1,5 +1,5 @@ CRenderBatch__Finish 00484450 f end=0048446D -CRenderBatch__CRenderBatch 00485530 f end=00485564 -CRenderBatch__Clear 00485F00 f end=00485F35 +CRenderBatch__constructor 00485530 f end=00485564 CRenderBatch__QueueCallback 004858E0 f end=0048596F CRenderBatch__Clear 00485970 f end=004859D2 +CRenderBatch__Clear 00485F00 f end=00485F35 diff --git a/profile/3.3.5a-windows-386/symbol/ribbonemitter/func.sym b/profile/3.3.5a-windows-386/symbol/ribbonemitter/func.sym index 5056368..bb45111 100644 --- a/profile/3.3.5a-windows-386/symbol/ribbonemitter/func.sym +++ b/profile/3.3.5a-windows-386/symbol/ribbonemitter/func.sym @@ -7,5 +7,5 @@ CRibbonEmitter__SetPos 0097F940 f end=0097FAC8 ; CRibbonEmitter::SetPos(C44Matri CRibbonEmitter__SetColor 0097FB60 f end=0097FBA0 ; CRibbonEmitter::SetColor(float, float, float) CRibbonEmitter__SetAlpha 0097FBA0 f end=0097FBDA ; CRibbonEmitter::SetAlpha(float) CRibbonEmitter__Update 00980090 f end=0098050D ; CRibbonEmitter::Update(float, int) -CRibbonEmitter__CRibbonEmitter 00980630 f end=0098080C ; CRibbonEmitter::CRibbonEmitter() +CRibbonEmitter__constructor 00980630 f end=0098080C ; CRibbonEmitter::CRibbonEmitter() CRibbonEmitter__Initialize 009808A0 f end=00980B4A ; CRibbonEmitter::Initialize(float, float, CImVector const&, TSGrowableArray const&, TSGrowableArray const&, TSGrowableArray const&, CAaRect const&, unsigned int, unsigned int) diff --git a/profile/3.3.5a-windows-386/symbol/screen/func.sym b/profile/3.3.5a-windows-386/symbol/screen/func.sym index c336a8e..0c42511 100644 --- a/profile/3.3.5a-windows-386/symbol/screen/func.sym +++ b/profile/3.3.5a-windows-386/symbol/screen/func.sym @@ -1,7 +1,7 @@ ScrnSetScreenshotQuality 004A84A0 f end=004A84FF ScrnLayerSetRect 004A8500 f end=004A8522 +ScrnLayerGetFlags 004A8530 f end=004A853B +ScrnLayerSetFlags 004A8540 f end=004A854E ScrnLayerCreate 004A8BB0 f end=004A8C83 ScrnGetStockFont 004A8DC0 f end=004A8DDF ScrnGetStockFontHeight 004A8DE0 f end=004A8DFF -ScrnLayerGetFlags 004A8530 f end=004A853B -ScrnLayerSetFlags 004A8540 f end=004A854E diff --git a/profile/3.3.5a-windows-386/symbol/script/func.sym b/profile/3.3.5a-windows-386/symbol/script/func.sym index 0ad5ee3..3d05aed 100644 --- a/profile/3.3.5a-windows-386/symbol/script/func.sym +++ b/profile/3.3.5a-windows-386/symbol/script/func.sym @@ -1713,6 +1713,8 @@ Script_GetItemStatDelta 00608760 f end=0060887A Script_IsLoggedIn 0060A450 f end=0060A48A Script_GetPlayerFacing 0060A490 f end=0060A50A Script_FillLocalizedClassList 0060A510 f end=0060A5CE +Script_GetTokensFromGUID 0060BB70 f end=0060BF06 +Script_SendUnitSignal 0060BF10 f end=0060BF55 Script_UnitExists 0060C2A0 f end=0060C342 Script_UnitIsVisible 0060C350 f end=0060C3C5 Script_UnitIsUnit 0060C3D0 f end=0060C4A3 @@ -1970,5 +1972,3 @@ Script_VoiceChat_IsPlayingLoopbackSound 00985E30 f end=00985E5D Script_VoiceChat_GetCurrentMicrophoneSignalLevel 00985E60 f end=00985E8A Script_VoiceChat_ActivatePrimaryCaptureCallback 00985E90 f end=00985E98 Script_VoiceChat_StartCapture 00985EF0 f end=00985F6B -Script_GetTokensFromGUID 0060BB70 f end=0060BF06 -Script_SendUnitSignal 0060BF10 f end=0060BF55 diff --git a/profile/3.3.5a-windows-386/symbol/scriptregion/func.sym b/profile/3.3.5a-windows-386/symbol/scriptregion/func.sym index 85c4652..d501452 100644 --- a/profile/3.3.5a-windows-386/symbol/scriptregion/func.sym +++ b/profile/3.3.5a-windows-386/symbol/scriptregion/func.sym @@ -1,3 +1,3 @@ -CScriptRegion__CScriptRegion 00488310 f end=00488348 type="void __thiscall func(CScriptRegion* this)" +CScriptRegion__constructor 00488310 f end=00488348 type="void __thiscall func(CScriptRegion* this)" CScriptRegion__ProtectedFunctionsAllowed 00488540 f end=0048856A CScriptRegion__RegisterScriptMethods 0049CA90 f end=0049CAB0 diff --git a/profile/3.3.5a-windows-386/symbol/si2/func.sym b/profile/3.3.5a-windows-386/symbol/si2/func.sym index b43226a..f150dc2 100644 --- a/profile/3.3.5a-windows-386/symbol/si2/func.sym +++ b/profile/3.3.5a-windows-386/symbol/si2/func.sym @@ -1,15 +1,15 @@ +SI2__Init 004C82E0 f end=004C8584 +SI2__SetWeatherKitID 004C8610 f end=004C8622 +SI2__StopAllMusic 004C93B0 f end=004C941B +SI2__DSP_MakeDSPsExpire 004CDC80 f end=004CDD32 +SI2__PlayItemSound 004D0090 f end=004D0102 +SI2__UpdateTaxiSounds 004D0110 f end=004D032D +SI2__RegisterCVars 004D1600 f end=004D1EB8 SI2__Log_Write 00877E10 f end=00878005 SI2__Log_Write 00878010 f end=0087807E SI2__InitCapture 0087E020 f end=0087EBBD -SI2__SetWeatherKitID 004C8610 f end=004C8622 -SI2__StopAllMusic 004C93B0 f end=004C941B -SI2__PlayItemSound 004D0090 f end=004D0102 SI2__RegisterScriptFunctions 00985EA0 f end=00985EC6 SI2__UnregisterScriptFunctions 00985ED0 f end=00985EEF SI2__StopGlueAmbience 00985F70 f end=00985FA2 SI2__StopGlueMusic 009860E0 f end=00986128 SI2__PlayVocalErrorSound 00986D00 f end=00986DD6 -SI2__Init 004C82E0 f end=004C8584 -SI2__RegisterCVars 004D1600 f end=004D1EB8 -SI2__DSP_MakeDSPsExpire 004CDC80 f end=004CDD32 -SI2__UpdateTaxiSounds 004D0110 f end=004D032D diff --git a/profile/3.3.5a-windows-386/symbol/simplebutton/func.sym b/profile/3.3.5a-windows-386/symbol/simplebutton/func.sym index af5edc3..f182668 100644 --- a/profile/3.3.5a-windows-386/symbol/simplebutton/func.sym +++ b/profile/3.3.5a-windows-386/symbol/simplebutton/func.sym @@ -1,3 +1,3 @@ CSimpleButton_GetButtonState 009771D0 f end=00977272 CSimpleButton_SetStateTexture 00977A70 f end=00977BD7 ; CSimpleButton_SetStateTexture(lua_State*, CSimpleButtonState, char const*) -CSimpleButton_SetNormalTexture 00977C70 f end=00977C87 ; CSimpleButton_SetNormalTexture(lua_State*) \ No newline at end of file +CSimpleButton_SetNormalTexture 00977C70 f end=00977C87 ; CSimpleButton_SetNormalTexture(lua_State*) diff --git a/profile/3.3.5a-windows-386/symbol/simplecamera/func.sym b/profile/3.3.5a-windows-386/symbol/simplecamera/func.sym index 8562059..a0d3529 100644 --- a/profile/3.3.5a-windows-386/symbol/simplecamera/func.sym +++ b/profile/3.3.5a-windows-386/symbol/simplecamera/func.sym @@ -1,2 +1,2 @@ CSimpleCamera__SetFacing 00607BD0 f end=00607BF6 -CSimpleCamera__CSimpleCamera 00607C20 f end=00607C90 +CSimpleCamera__constructor 00607C20 f end=00607C90 diff --git a/profile/3.3.5a-windows-386/symbol/simpleeditbox/func.sym b/profile/3.3.5a-windows-386/symbol/simpleeditbox/func.sym index 4c145fd..2e88c59 100644 --- a/profile/3.3.5a-windows-386/symbol/simpleeditbox/func.sym +++ b/profile/3.3.5a-windows-386/symbol/simpleeditbox/func.sym @@ -1,14 +1,14 @@ -CSimpleEditBox__PasteFromClipboard 00965ED0 f end=00965F1D -CSimpleEditBox__Insert 00965CE0 f end=00965D67 CSimpleEditBox__DeleteSubstring 00962F90 f end=0096313E ; DeleteSubString(int, int, int) CSimpleEditBox__HighlightText 00963140 f end=009631A0 ; HighlightText(int, int) CSimpleEditBox__UpdateSizes 00963740 f end=00963946 CSimpleEditBox__FontUpdated 009650E0 f end=00965114 ; FontUpdated(CSimpleFontedFrameFont*, int) CSimpleEditBox__OnFrameSizeChanged 009656D0 f end=009656F7 ; OnFrameSizeChanged(float, float) CSimpleEditBox__Insert 00965960 f end=00965CDB ; Insert(char const*, char const*, int, int, int) +CSimpleEditBox__Insert 00965CE0 f end=00965D67 +CSimpleEditBox__PasteFromClipboard 00965ED0 f end=00965F1D CSimpleEditBox__SetMultiLine 00965F20 f end=009660D3 ; SetMultiLine(int) CSimpleEditBox__SetText 00966580 f end=009665FA ; SetText(char const*, char const*) CSimpleEditBox__SetHistoryLines 00966FD0 f end=00967017 ; SetHistoryLines(int) CSimpleEditBox__LoadXML 00967290 f end=00967670 ; LoadXML(XMLNode*, CStatus*) CSimpleEditBox_SetText 00975E80 f end=00975F02 -CSimpleEditBox_HighlightText 00976080 f end=00976108 \ No newline at end of file +CSimpleEditBox_HighlightText 00976080 f end=00976108 diff --git a/profile/3.3.5a-windows-386/symbol/simplefont/func.sym b/profile/3.3.5a-windows-386/symbol/simplefont/func.sym index c598495..9087d70 100644 --- a/profile/3.3.5a-windows-386/symbol/simplefont/func.sym +++ b/profile/3.3.5a-windows-386/symbol/simplefont/func.sym @@ -1,2 +1,2 @@ -CSimpleFont__CSimpleFont 00496870 f end=00496915 +CSimpleFont__constructor 00496870 f end=00496915 StringToJustify 00815080 f end=008150CA diff --git a/profile/3.3.5a-windows-386/symbol/simplefontstring/func.sym b/profile/3.3.5a-windows-386/symbol/simplefontstring/func.sym index 18fab21..0214bc7 100644 --- a/profile/3.3.5a-windows-386/symbol/simplefontstring/func.sym +++ b/profile/3.3.5a-windows-386/symbol/simplefontstring/func.sym @@ -1,5 +1,5 @@ -CSimpleFontString__SetText 00483910 f end=00483A3D type="void __thiscall func(CSimpleFontString* this, char* a1, int32_t a2)" -CSimpleFontString_SetFormattedText 0048D800 f end=0048D88B type="int32_t __stdcall func(lua_State* L)" -CSimpleFontString__CSimpleFontString 00485240 f end=0048536F CSimpleFontString__GetFontHeight 00482290 f end=004822F4 +CSimpleFontString__SetText 00483910 f end=00483A3D type="void __thiscall func(CSimpleFontString* this, char* a1, int32_t a2)" +CSimpleFontString__constructor 00485240 f end=0048536F CSimpleFontString__UpdateString 00486B20 f end=00486E2A +CSimpleFontString_SetFormattedText 0048D800 f end=0048D88B type="int32_t __stdcall func(lua_State* L)" diff --git a/profile/3.3.5a-windows-386/symbol/simpleframe/func.sym b/profile/3.3.5a-windows-386/symbol/simpleframe/func.sym index 5eec88a..77e322d 100644 --- a/profile/3.3.5a-windows-386/symbol/simpleframe/func.sym +++ b/profile/3.3.5a-windows-386/symbol/simpleframe/func.sym @@ -1,10 +1,11 @@ -CSimpleFrame__SetFrameAlpha 0048EA10 f end=0048EA32 type="void __thiscall func(CSimpleFrame* this, uint8_t alpha)" ; CSimpleFrame::SetFrameAlpha(unsigned char) -CSimpleFrame__SetFrameDepth 0048F5D0 f end=0048F611 -CSimpleFrame_SetAlpha 0049F9E0 f end=0049FAA1 type="void __stdcall func(lua_State* L)" CSimpleFrame__GetScriptByName 0048E680 f end=0048E961 ; CSimpleFrame::GetScriptByName(char const*, FrameScript_Object::ScriptData&) CSimpleFrame__Raise 0048E9A0 f end=0048E9AF ; CSimpleFrame::Raise() +CSimpleFrame__SetFrameAlpha 0048EA10 f end=0048EA32 type="void __thiscall func(CSimpleFrame* this, uint8_t alpha)" ; CSimpleFrame::SetFrameAlpha(unsigned char) CSimpleFrame__UnregisterForEvents 0048EA80 f end=0048EABE ; CSimpleFrame::UnregisterForEvents(int) CSimpleFrame__SetFrameScale 0048F580 f end=0048F5CC ; CSimpleFrame::SetFrameScale(float, bool) +CSimpleFrame__SetFrameDepth 0048F5D0 f end=0048F611 +CSimpleFrame__Hide 0048F620 f end=0048F65E +CSimpleFrame__Show 0048F660 f end=0048F69E CSimpleFrame__EnableEvent 0048F6A0 f end=0048F6E1 ; CSimpleFrame::EnableEvent(CSimpleEventType, unsigned int) CSimpleFrame__GetHitRect 0048F890 f end=0048F8D1 ; CSimpleFrame::GetHitRect(CRect&) CSimpleFrame__OnFrameSizeChanged 0048FA20 f end=0048FB0B ; CSimpleFrame::OnFrameSizeChanged(CAaRect const&) @@ -13,10 +14,16 @@ CSimpleFrame__NotifyDrawLayerChanged 00490270 f end=004902C7 ; CSimpleFrame::Not CSimpleFrame__OnFrameSizeChanged 00490330 f end=00490357 ; CSimpleFrame::OnFrameSizeChanged(float, float) CSimpleFrame__PostLoadXML 00490410 f end=00490598 ; CSimpleFrame::PostLoadXML(XMLNode*, CStatus*) CSimpleFrame__SetBackdrop 004905A0 f end=004905F5 ; CSimpleFrame::SetBackdrop(CBackdropGenerator*) +CSimpleFrame__RegisterRegion 00490640 f end=00490672 +CSimpleFrame__AddFrameRegion 004906C0 f end=004906FF +CSimpleFrame__RemoveFrameRegion 00490700 f end=00490765 CSimpleFrame__OnLayerUpdate 00490770 f end=00490831 ; CSimpleFrame::OnLayerUpdate(float) CSimpleFrame__OnFrameRender 00490840 f end=004908A0 ; CSimpleFrame::OnFrameRender(CRenderBatch*, unsigned int) CSimpleFrame__OnScreenSizeChanged 004908A0 f end=004908D7 ; CSimpleFrame::OnScreenSizeChanged() +CSimpleFrame__OnLayerCursorExit 00490980 f end=00490A23 CSimpleFrame__SetBeingScrolled 00490F60 f end=00491018 ; CSimpleFrame::SetBeingScrolled(int, int) +CSimpleFrame__SetFrameStrata 00491020 f end=00491096 +CSimpleFrame__SetFrameLevel 004910A0 f end=00491156 CSimpleFrame__UnparentFrame 00491160 f end=004911A8 ; CSimpleFrame::UnparentFrame(CSimpleFrame*) CSimpleFrame__SetParent 004911B0 f end=00491343 ; CSimpleFrame::SetParent(CSimpleFrame*) CSimpleFrame__GetBoundsRect 004913C0 f end=00491594 ; CSimpleFrame::GetBoundsRect(CRect&) @@ -24,16 +31,9 @@ CSimpleFrame__UpdateScale 004915A0 f end=00491677 ; CSimpleFrame::UpdateScale(bo CSimpleFrame__HideThis 00491830 f end=004918EC ; CSimpleFrame::HideThis() CSimpleFrame__ShowThis 004918F0 f end=004919E4 ; CSimpleFrame::ShowThis(bool) CSimpleFrame__OnFrameRender 00491E00 f end=00491FB5 ; CSimpleFrame::OnFrameRender() -CSimpleFrame__CSimpleFrame 004922F0 f end=004926A7 ; CSimpleFrame::CSimpleFrame(CSimpleFrame*) +CSimpleFrame__constructor 004922F0 f end=004926A7 ; CSimpleFrame::CSimpleFrame(CSimpleFrame*) CSimpleFrame__LoadXML 004932C0 f end=00493A09 ; CSimpleFrame::LoadXML(XMLNode*, CStatus*) CSimpleFrame__RegisterScriptMethods 0049E540 f end=0049E560 ; CSimpleFrame::RegisterScriptMethods(lua_State*) +CSimpleFrame_SetAlpha 0049F9E0 f end=0049FAA1 type="void __stdcall func(lua_State* L)" RegisterSimpleFrameScriptMethods 0081B870 f end=0081B914 UnregisterSimpleFrameScriptMethods 0081B920 f end=0081B9B8 -CSimpleFrame__OnLayerCursorExit 00490980 f end=00490A23 -CSimpleFrame__SetFrameStrata 00491020 f end=00491096 -CSimpleFrame__Hide 0048F620 f end=0048F65E -CSimpleFrame__Show 0048F660 f end=0048F69E -CSimpleFrame__RegisterRegion 00490640 f end=00490672 -CSimpleFrame__AddFrameRegion 004906C0 f end=004906FF -CSimpleFrame__RemoveFrameRegion 00490700 f end=00490765 -CSimpleFrame__SetFrameLevel 004910A0 f end=00491156 diff --git a/profile/3.3.5a-windows-386/symbol/simplehtml/func.sym b/profile/3.3.5a-windows-386/symbol/simplehtml/func.sym index 854dde9..88f807f 100644 --- a/profile/3.3.5a-windows-386/symbol/simplehtml/func.sym +++ b/profile/3.3.5a-windows-386/symbol/simplehtml/func.sym @@ -1,5 +1,5 @@ CSimpleHTML__FontUpdated 0096C750 f end=0096C764 ; CSimpleHTML::FontUpdated(CSimpleFontedFrameFont*, int) -CSimpleHTML__CSimpleHTML 0096C820 f end=0096C922 ; CSimpleHTML::CSimpleHTML(CSimpleFrame*) +CSimpleHTML__constructor 0096C820 f end=0096C922 ; CSimpleHTML::CSimpleHTML(CSimpleFrame*) CSimpleHTML__IsA 0096C960 f end=0096C995 ; CSimpleHTML::IsA(int) const CSimpleHTML__ParseIMG 0096C9E0 f end=0096CC8F ; CSimpleHTML::ParseIMG(XMLNode const*, CStatus*) CSimpleHTML__AddText 0096CC90 f end=0096CE72 ; CSimpleHTML::AddText(char const*, HTML_TEXT_TYPE, unsigned int) diff --git a/profile/3.3.5a-windows-386/symbol/simplehyperlinkedframe/func.sym b/profile/3.3.5a-windows-386/symbol/simplehyperlinkedframe/func.sym index 215d0e9..fdedde3 100644 --- a/profile/3.3.5a-windows-386/symbol/simplehyperlinkedframe/func.sym +++ b/profile/3.3.5a-windows-386/symbol/simplehyperlinkedframe/func.sym @@ -1 +1 @@ -CSimpleHyperlinkedFrame__CSimpleHyperlinkedFrame 00978900 f end=0097894F ; CSimpleHyperlinkedFrame::CSimpleHyperlinkedFrame(CSimpleFrame*) +CSimpleHyperlinkedFrame__constructor 00978900 f end=0097894F ; CSimpleHyperlinkedFrame::CSimpleHyperlinkedFrame(CSimpleFrame*) diff --git a/profile/3.3.5a-windows-386/symbol/simplemodel/func.sym b/profile/3.3.5a-windows-386/symbol/simplemodel/func.sym index 6a5349c..d8409c3 100644 --- a/profile/3.3.5a-windows-386/symbol/simplemodel/func.sym +++ b/profile/3.3.5a-windows-386/symbol/simplemodel/func.sym @@ -6,7 +6,7 @@ CSimpleModel__SetCameraByID 0095F540 f end=0095F5BD type="void __thiscall func(C CSimpleModel__SetLight 0095F5C0 f end=0095F5DB type="void __thiscall func(CSimpleModel* this, CM2Light* light)" CSimpleModel__SetSequence 0095F5E0 f end=0095f60A type="void __thiscall func(CSimpleModel* this, uint32_t sequence)" CSimpleModel__SetSequenceTime 0095F610 f end=0095F641 type="int32_t __thiscall func(CSimpleModel* this, uint32_t sequence, int32_t time)" -CSimpleModel__CSimpleModel 0095F680 f end=0095F7C5 type="void __thiscall func(CSimpleModel* this)" +CSimpleModel__constructor 0095F680 f end=0095F7C5 type="void __thiscall func(CSimpleModel* this)" CSimpleModel__scalar_deleting_destructor 0095F7D0 f end=0095F7FB type="void __thiscall func(CSimpleModel* this, uint32_t __flags)" CSimpleModel__LoadXML 0095F800 f end=0095F989 type="void __thiscall func(CSimpleModel* this, XMLNode* node, CStatus* status)" CSimpleModel__SetModel 0095F990 f end=0095F9E8 type="void __thiscall func(CSimpleModel* this, char* sourcefile)" diff --git a/profile/3.3.5a-windows-386/symbol/simplemodelffx/func.sym b/profile/3.3.5a-windows-386/symbol/simplemodelffx/func.sym index 1d1de62..5d4a447 100644 --- a/profile/3.3.5a-windows-386/symbol/simplemodelffx/func.sym +++ b/profile/3.3.5a-windows-386/symbol/simplemodelffx/func.sym @@ -1,9 +1,9 @@ CSimpleModelFFX__SetModel 004E5ED0 f end=004E5EF7 ; CSimpleModelFFX::SetModel(CM2Model*) CSimpleModelFFX__LoadXML 004E5F00 f end=004E5F47 ; CSimpleModelFFX::LoadXML(XMLNode*, CStatus*) -CSimpleModelFFX__CSimpleModelFFX 004E5F70 f end=004E60A3 ; CSimpleModelFFX::CSimpleModelFFX(CSimpleFrame*) +CSimpleModelFFX__constructor 004E5F70 f end=004E60A3 ; CSimpleModelFFX::CSimpleModelFFX(CSimpleFrame*) CSimpleModelFFX__Render 004E6190 f end=004E6229 ; CSimpleModelFFX::Render(void*) CSimpleModelFFX__Create 004E6300 f end=004E632B ; CSimpleModelFFX::Create(CSimpleFrame*) CSimpleModelFFX__OnFrameRender 004E6330 f end=004E635E ; CSimpleModelFFX::OnFrameRender(CRenderBatch*, unsigned int) CSimpleModelFFX_ResetLights 004E6BE0 f end=004E6C5C CSimpleModelFFX_AddLight 004E6C60 f end=004E6D4B -CSimpleModelFFX__CreateScriptMetaTable 004E6F60 f end=004E6F79 ; CSimpleModelFFX::CreateScriptMetaTable() \ No newline at end of file +CSimpleModelFFX__CreateScriptMetaTable 004E6F60 f end=004E6F79 ; CSimpleModelFFX::CreateScriptMetaTable() diff --git a/profile/3.3.5a-windows-386/symbol/simpleregion/func.sym b/profile/3.3.5a-windows-386/symbol/simpleregion/func.sym index d08e426..61ed8a5 100644 --- a/profile/3.3.5a-windows-386/symbol/simpleregion/func.sym +++ b/profile/3.3.5a-windows-386/symbol/simpleregion/func.sym @@ -5,5 +5,5 @@ CSimpleRegion__HideThis 00487BF0 f type="void __thiscall func(CSimpleRegion* thi CSimpleRegion__ShowThis 00487C40 f type="void __thiscall func(CSimpleRegion* this)" CSimpleRegion__OnRegionChanged 00487CA0 f type="void __thiscall func(CSimpleRegion* this)" CSimpleRegion__OnColorChanged 00487D70 f type="void __thiscall func(CSimpleRegion* this, bool a2)" -CSimpleRegion__CSimpleRegion 004880E0 f type="void __thiscall func(CSimpleRegion* this, CSimpleFrame* frame, uint32_t drawLayer, int32_t show)" +CSimpleRegion__constructor 004880E0 f type="void __thiscall func(CSimpleRegion* this, CSimpleFrame* frame, uint32_t drawLayer, int32_t show)" CSimpleRegion__destructor 004881D0 f type="void __thiscall func(CSimpleRegion* this)" diff --git a/profile/3.3.5a-windows-386/symbol/simplescrollframe/func.sym b/profile/3.3.5a-windows-386/symbol/simplescrollframe/func.sym index 9a8dcba..9c1526e 100644 --- a/profile/3.3.5a-windows-386/symbol/simplescrollframe/func.sym +++ b/profile/3.3.5a-windows-386/symbol/simplescrollframe/func.sym @@ -2,7 +2,7 @@ CSimpleScrollFrame__RunOnScrollRangeChangedScript 0096AFD0 f end=0096B05B CSimpleScrollFrame__UnparentFrame 0096B060 f end=0096B082 ; CSimpleScrollFrame::UnparentFrame(CSimpleFrame*) CSimpleScrollFrame__UpdateScrollChild 0096B1C0 f end=0096B207 ; void __thiscall CSimpleScrollFrame::UpdateScrollChild(void) CSimpleScrollFrame__OnFrameSizeChanged 0096B210 f end=0096B23A ; CSimpleScrollFrame::OnFrameSizeChanged(float, float) -CSimpleScrollFrame__CSimpleScrollFrame 0096B2D0 f end=0096B33F ; CSimpleScrollFrame::CSimpleScrollFrame(CSimpleFrame*) +CSimpleScrollFrame__constructor 0096B2D0 f end=0096B33F ; CSimpleScrollFrame::CSimpleScrollFrame(CSimpleFrame*) CSimpleScrollFrame__SetScrollChild 0096B3A0 f end=0096B43D ; CSimpleScrollFrame::SetScrollChild(CSimpleFrame*) CSimpleScrollFrame__SetVerticalScroll 0096B480 f end=0096B4BE ; CSimpleScrollFrame::SetVerticalScroll(float) CSimpleScrollFrame__UpdateScrollChildRect 0096B4C0 f end=0096B59D ; CSimpleScrollFrame::UpdateScrollChildRect(float, float) diff --git a/profile/3.3.5a-windows-386/symbol/simpleslider/func.sym b/profile/3.3.5a-windows-386/symbol/simpleslider/func.sym index 1ca66bd..5908a2e 100644 --- a/profile/3.3.5a-windows-386/symbol/simpleslider/func.sym +++ b/profile/3.3.5a-windows-386/symbol/simpleslider/func.sym @@ -1,5 +1,5 @@ CSimpleSlider__RunOnMinMaxChangedScript 0096BBB0 f end=0096BC08 -CSimpleSlider__CSimpleSlider 0096BE50 f end=0096BEC9 ; CSimpleSlider::CSimpleSlider(CSimpleFrame*) +CSimpleSlider__constructor 0096BE50 f end=0096BEC9 ; CSimpleSlider::CSimpleSlider(CSimpleFrame*) CSimpleSlider__IsA 0096BF00 f end=0096BF35 ; CSimpleSlider::IsA(int) const CSimpleSlider__SetValue 0096C090 f end=0096C1A7 ; CSimpleSlider::SetValue(float, bool) CSimpleSlider__SetMinMaxValues 0096C470 f end=0096C4FD ; CSimpleSlider::SetMinMaxValues(float, float) diff --git a/profile/3.3.5a-windows-386/symbol/simpletexture/func.sym b/profile/3.3.5a-windows-386/symbol/simpletexture/func.sym index b6db241..458a0d5 100644 --- a/profile/3.3.5a-windows-386/symbol/simpletexture/func.sym +++ b/profile/3.3.5a-windows-386/symbol/simpletexture/func.sym @@ -1,10 +1,10 @@ CSimpleTexture__SetTexture 00481590 f end=004815D2 ; CSimpleTexture::SetTexture(CImVector const&) CSimpleTexture__SetBlendMode 00481620 f end=0048163D ; CSimpleTexture::SetBlendMode(EGxBlend) CSimpleTexture__SetTexCoord 00481640 f end=00481691 ; CSimpleTexture::SetTexCoord(C2Vector const*) +CSimpleTexture__Init 00483060 f end=00483098 CSimpleTexture__SetTexCoord 004831D0 f end=00483220 ; CSimpleTexture::SetTexCoord(CRect const&) -CSimpleTexture__CSimpleTexture 00484470 f end=004845E6 ; CSimpleTexture::CSimpleTexture(CSimpleFrame*, unsigned int, int) +CSimpleTexture__constructor 00484470 f end=004845E6 ; CSimpleTexture::CSimpleTexture(CSimpleFrame*, unsigned int, int) CSimpleTexture__LoadXML 00485F40 f end=00486B11 ; CSimpleTexture::LoadXML(XMLNode*, CStatus*) CSimpleTexture_SetVertexColor 0048C1C0 f end=0048C23E ; CSimpleTexture_SetVertexColor(lua_State*) CSimpleTexture_SetAlpha 0048C3E0 f end=0048C4B3 ; CSimpleTexture_SetAlpha(lua_State*) CSimpleTexture_SetTexCoord 0048E170 f end=0048E353 ; CSimpleTexture_SetTexCoord(lua_State*) -CSimpleTexture__Init 00483060 f end=00483098 diff --git a/profile/3.3.5a-windows-386/symbol/simpletop/func.sym b/profile/3.3.5a-windows-386/symbol/simpletop/func.sym index ab49a15..b152cb3 100644 --- a/profile/3.3.5a-windows-386/symbol/simpletop/func.sym +++ b/profile/3.3.5a-windows-386/symbol/simpletop/func.sym @@ -1,11 +1,11 @@ -CSimpleTop__OnLayerRender 00495410 f end=0049546A CSimpleTop__RoundToPixelHeight 00493E00 f end=00493E85 ; CSimpleTop::RoundToPixelHeight(float) CSimpleTop__HideFrame 00493F30 f end=00493FA5 ; CSimpleTop::HideFrame(CSimpleFrame*, int) CSimpleTop__OnMouseMove 004945A0 f end=0049472A ; CSimpleTop::OnMouseMove(EVENT_DATA_MOUSE const*, void*) CSimpleTop__UnregisterFrame 00494FA0 f end=0049504D ; CSimpleTop::UnregisterFrame(CSimpleFrame*) +CSimpleTop__RaiseFrame 004951A0 f end=00495261 +CSimpleTop__OnLayerRender 00495410 f end=0049546A CSimpleTop__OnDisplaySizeChanged 004955E0 f end=00495667 ; CSimpleTop::OnDisplaySizeChanged(EVENT_DATA_SIZE const*, void*) CSimpleTop__RegisterForEvent 00495880 f end=004958F9 ; CSimpleTop::RegisterForEvent(CSimpleFrame*, CSimpleEventType, int, unsigned int) CSimpleTop__EnableEvents 004959F0 f end=00495AF2 ; CSimpleTop::EnableEvents() -CSimpleTop__CSimpleTop 00495EB0 f end=004960C6 ; CSimpleTop::CSimpleTop() +CSimpleTop__constructor 00495EB0 f end=004960C6 ; CSimpleTop::CSimpleTop() CSimpleTop__ShowFrame 004960D0 f end=004960FA ; CSimpleTop::ShowFrame(CSimpleFrame*, int) -CSimpleTop__RaiseFrame 004951A0 f end=00495261 diff --git a/profile/3.3.5a-windows-386/symbol/spell/func.sym b/profile/3.3.5a-windows-386/symbol/spell/func.sym index 2b07892..40ec0f3 100644 --- a/profile/3.3.5a-windows-386/symbol/spell/func.sym +++ b/profile/3.3.5a-windows-386/symbol/spell/func.sym @@ -1,9 +1,7 @@ +SpellParserParseText 0057ABC0 f end=0057AC93 SpellVisualsClear 007FC9F0 f end=007FCA29 Spell_C_IsTargeting 007FD620 f end=007FD62C -Spell_C_IsCursorWorldObjectHousing 007FD7F0 f end=007FD7F6 -Spell_C_CursorWorldObjectRotate 007FD800 f end=007FD82F -Spell_C_StopTargeting 00809A60 f end=00809A79 -Spell_C_SetAutoRangedCombatSpell 007FE140 f end=007FE180 +Spell_C_GetTargetingSpell 007FD630 f end=007FD640 Spell_C_CanTargetUnits 007FD650 f end=007FD661 Spell_C_CanTargetParty 007FD670 f end=007FD681 Spell_C_CanTargetRaid 007FD690 f end=007FD6A1 @@ -16,28 +14,30 @@ Spell_C_CanTargetObjects 007FD730 f end=007FD741 Spell_C_CanTargetTerrain 007FD750 f end=007FD75E Spell_C_CanTargetNonCombatPet 007FD780 f end=007FD78B Spell_C_SetCursorWorldObjectPosition 007FD7B0 f end=007FD7D1 -Spell_C_GetTargetingSpell 007FD630 f end=007FD640 +Spell_C_IsCursorWorldObjectHousing 007FD7F0 f end=007FD7F6 +Spell_C_CursorWorldObjectRotate 007FD800 f end=007FD82F +Spell_C_SetAutoRangedCombatSpell 007FE140 f end=007FE180 Spell_C_UsesDefaultMinRange 007FF3C0 f end=007FF3FB Spell_C_GetDefaultMinRange 007FF400 f end=007FF477 Spell_C_GetMinMaxRange 007FF480 f end=007FF766 Spell_C_GetSpellReagentUses 007FFA30 f end=007FFABF -Spell_C_GetSpellReagentUses 00801770 f end=008017D2 -Spell_C_GetItemCooldown 008090C0 f end=008090FA -Spell_C_NeedsCooldownEvent 0080AC10 f end=0080AC85 -SpellParserParseText 0057ABC0 f end=0057AC93 -Spell_C_CancelSpell 00806200 f end=0080638A -Spell_C_PlayMissileTrajectoryCastVisuals 00800DD0 f end=00801018 -Spell_C_CastSpell 0080CCE0 f end=0080DA32 Spell_C_SetPlayerClass 008007A0 f end=008007D2 -Spell_C_CancelPlayerSpells 00809AC0 f end=00809AE1 +Spell_C_PlayMissileTrajectoryCastVisuals 00800DD0 f end=00801018 +Spell_C_GetPowerCost 008012F0 f end=0080164E +Spell_C_GetSpellReagentUses 00801770 f end=008017D2 +Spell_C_HaveSpellPower 008017E0 f end=00801874 Spell_C__GetSpellRange 00802C30 f end=00802CA6 Spell_C_HandleSpriteRay 00803A50 f end=00803ED6 +Spell_C_CancelSpell 00806200 f end=0080638A Spell_C__GetSpellCooldown 00809000 f end=00809029 Spell_C__GetItemCooldown 00809030 f end=008090B1 +Spell_C_GetItemCooldown 008090C0 f end=008090FA +Spell_C_StopTargeting 00809A60 f end=00809A79 +Spell_C_CancelPlayerSpells 00809AC0 f end=00809AE1 +Spell_C_NeedsCooldownEvent 0080AC10 f end=0080AC85 +Spell_C_IsUsableAction 0080B5D0 f end=0080BC74 Spell_C__HandleTerrainClick 0080C340 f end=0080C3D2 Spell_C_TargetTradeItem 0080C5F0 f end=0080C64E +Spell_C_CastSpell 0080CCE0 f end=0080DA32 Spell_C_CastSpell 0080DA40 f end=0080DA7C Spell_C__SystemInitialize 008100E0 f end=00810320 -Spell_C_GetPowerCost 008012F0 f end=0080164E -Spell_C_HaveSpellPower 008017E0 f end=00801874 -Spell_C_IsUsableAction 0080B5D0 f end=0080BC74 diff --git a/profile/3.3.5a-windows-386/symbol/spellbook/func.sym b/profile/3.3.5a-windows-386/symbol/spellbook/func.sym index 65e931e..00e60ab 100644 --- a/profile/3.3.5a-windows-386/symbol/spellbook/func.sym +++ b/profile/3.3.5a-windows-386/symbol/spellbook/func.sym @@ -1,7 +1,7 @@ -CGSpellBook__UpdateUsable 0053CF10 f end=0053D1AD -CGSpellBook__GetSkinningSpell 0053BCE0 f end=0053BD10 -CGSpellBook__SendCompanionUpdate 0053B440 f end=0053B478 -CGSpellBook__DelKnownSpell 0053FAD0 f end=005401CF CGSpellBook__SetCursorSpell 00520960 f end=00520A58 +CGSpellBook__SendCompanionUpdate 0053B440 f end=0053B478 CGSpellBook__GetSpellProgressionRank 0053B5A0 f end=0053B5BD +CGSpellBook__GetSkinningSpell 0053BCE0 f end=0053BD10 +CGSpellBook__UpdateUsable 0053CF10 f end=0053D1AD +CGSpellBook__DelKnownSpell 0053FAD0 f end=005401CF CGSpellBook__AddKnownSpell 00542030 f end=00542E08 diff --git a/profile/3.3.5a-windows-386/symbol/spellhistory/func.sym b/profile/3.3.5a-windows-386/symbol/spellhistory/func.sym index 06af2ed..e29d67f 100644 --- a/profile/3.3.5a-windows-386/symbol/spellhistory/func.sym +++ b/profile/3.3.5a-windows-386/symbol/spellhistory/func.sym @@ -1,2 +1,2 @@ -SpellHistory__IsOnHold 00807DA0 f end=00807F07 SpellHistory__GetCooldown 00807980 f end=00807D3E +SpellHistory__IsOnHold 00807DA0 f end=00807F07 diff --git a/profile/3.3.5a-windows-386/symbol/sphereparticleemitter/func.sym b/profile/3.3.5a-windows-386/symbol/sphereparticleemitter/func.sym index ec482de..fb01608 100644 --- a/profile/3.3.5a-windows-386/symbol/sphereparticleemitter/func.sym +++ b/profile/3.3.5a-windows-386/symbol/sphereparticleemitter/func.sym @@ -1 +1 @@ -CSphereParticleEmitter__CSphereParticleEmitter 009813F0 f end=00981423 ; CSphereParticleEmitter::CSphereParticleEmitter() \ No newline at end of file +CSphereParticleEmitter__constructor 009813F0 f end=00981423 ; CSphereParticleEmitter::CSphereParticleEmitter() diff --git a/profile/3.3.5a-windows-386/symbol/splineparticleemitter/func.sym b/profile/3.3.5a-windows-386/symbol/splineparticleemitter/func.sym index 0a040a0..26dd7ce 100644 --- a/profile/3.3.5a-windows-386/symbol/splineparticleemitter/func.sym +++ b/profile/3.3.5a-windows-386/symbol/splineparticleemitter/func.sym @@ -1,2 +1,2 @@ CSplineParticleEmitter__SetSpline 00981500 f end=0098150F ; CSplineParticleEmitter::SetSpline(C3Vector const*, unsigned int) -CSplineParticleEmitter__CSplineParticleEmitter 009820F0 f end=00982148 ; CSplineParticleEmitter::CSplineParticleEmitter() +CSplineParticleEmitter__constructor 009820F0 f end=00982148 ; CSplineParticleEmitter::CSplineParticleEmitter() diff --git a/profile/3.3.5a-windows-386/symbol/srp6/func.sym b/profile/3.3.5a-windows-386/symbol/srp6/func.sym index 399cc3b..4e9e49f 100644 --- a/profile/3.3.5a-windows-386/symbol/srp6/func.sym +++ b/profile/3.3.5a-windows-386/symbol/srp6/func.sym @@ -1,5 +1,5 @@ SRP6_Client__BeginAuthentication 009A8300 f end=009A83DF ; SRP6_Client::BeginAuthentication(char const*, char const*) SRP6_Client__CalculateProof 009A83E0 f end=009A88B1 ; SRP6_Client::CalculateProof(unsigned char const*, unsigned int, unsigned char const*, unsigned int, unsigned char const*, unsigned int, unsigned char const*, unsigned int, SRP6_Random&) SRP6_Client__VerifyServerProof 009A88C0 f end=009A897C ; SRP6_Client::VerifyServerProof(unsigned char const*, unsigned int) -SRP6_Random__SRP6_Random 009A8980 f end=009A89EA ; SRP6_Random::SRP6_Random(void const*, unsigned int) +SRP6_Random__constructor 009A8980 f end=009A89EA ; SRP6_Random::SRP6_Random(void const*, unsigned int) SRP6_Random__GenerateRandomBytes 009A89F0 f end=009A8A9B ; SRP6_Random::GenerateRandomBytes(unsigned char*, unsigned int) diff --git a/profile/3.3.5a-windows-386/symbol/storm/func.sym b/profile/3.3.5a-windows-386/symbol/storm/func.sym index dd26125..8adc648 100644 --- a/profile/3.3.5a-windows-386/symbol/storm/func.sym +++ b/profile/3.3.5a-windows-386/symbol/storm/func.sym @@ -1,6 +1,4 @@ TSList__LinkNode 004F71A0 f end=004F724D -TSList__LinkToHead 007B5020 f end=007B50AB ; 00005410 -TSList__LinkToTail 0086E200 f end=0086E25F ; 00005410 TSGrowableArray_CGxMonitorMode__New 0068A090 f end=0068A0ED type="CGxMonitorMode* __thiscall func(TSGrowableArray_CGxMonitorMode* this)" TSGrowableArray_CGxMonitorMode__SetCount 0068A0F0 f end=0068A165 type="void __thiscall func(TSGrowableArray_CGxMonitorMode* this, uint32_t count)" SMemSetDebugFlags 0076E4A0 f end=0076E4D2 type="void __stdcall func(uint32_t flags, uint8_t changeMask)" @@ -53,7 +51,7 @@ SCmdProcessCommandLine 00773990 f end=007739AD type="int32_t __stdcall func(CMDE StormInitialize 007739E0 f end=007739F4 StormDestroy 00773A00 f end=00773A2F StormSetOption 00773A80 f end=00773C81 type="int32_t __stdcall func(int optname, void* optval, uint32_t optlen)" -SCritSect__SCritSect 00774620 f end=0077462E type="SCritSect* __thiscall func(SCritSect* this)" +SCritSect__constructor 00774620 f end=0077462E type="SCritSect* __thiscall func(SCritSect* this)" SCritSect__destructor 00774630 f end=00774638 type="void __thiscall func(SCritSect *this)" SCritSect__Enter 00774640 f end=00774648 type="void __thiscall func(SCritSect *this)" SCritSect__Leave 00774650 f end=00774658 type="void __thiscall func(SCritSect *this)" @@ -92,7 +90,7 @@ BigStack__destructor 0077AE80 f end=0077AEB1 type="void __thiscall func(BigStack BigBuffer__operator_index 0077AEC0 f end=0077AF2D type="uint32_t* __thiscall func(BigBuffer* this, uint32_t index)" ; public: unsigned int & __thiscall BigBuffer::operator[](unsigned int)const BigBuffer__SetCount 0077AF30 f end=0077AF7C type="void __thiscall func(BigBuffer* this, uint32_t count)" BigBuffer__Trim 0077AF80 f end=0077AFE3 type="void __thiscall func(BigBuffer* this)" ; public: void __thiscall BigBuffer::Trim(void)const -BigStack__BigStack 0077AFF0 f end=0077B01F type="void __thiscall func(BigBuffer* this)" +BigStack__constructor 0077AFF0 f end=0077B01F type="void __thiscall func(BigBuffer* this)" Add 0077B020 f end=0077B158 type="void __stdcall func(BigBuffer* a, BigBuffer* b, BigBuffer* c@)" ; void Add(class BigBuffer &,class BigBuffer const &,class BigBuffer const &) Div 0077B160 f end=0077B2A8 type="void __stdcall func(BigBuffer* a, uint32_t* b, BigBuffer* c, uint64_t d)" ; void Div(class BigBuffer &,unsigned int *,class BigBuffer const &,unsigned __int64) Mul 0077B2B0 f end=0077B3D2 type="void __stdcall func(BigBuffer* a, BigBuffer* b, uint64_t c)" ; void Mul(class BigBuffer &,class BigBuffer const &,unsigned __int64) @@ -118,3 +116,5 @@ SBigDel 0077C6A0 f end=0077C6F6 type="void __stdcall func(BigData* num)" SBigMul 0077C700 f end=0077C71F type="void __stdcall func(BigData* a, BigData* b, BigData* c)" PowMod 0077C720 f end=0077C97B type="void __stdcall func(BigBuffer* a, BigBuffer* b, BigBuffer* c, BigBuffer* d, BigStack* stack)" SBigPowMod 0077C980 f end=0077C9A4 type="void __stdcall func(BigData* a, BigData* b, BigData* c, BigData* d)" +TSList__LinkToHead 007B5020 f end=007B50AB ; 00005410 +TSList__LinkToTail 0086E200 f end=0086E25F ; 00005410 diff --git a/profile/3.3.5a-windows-386/symbol/tempest/func.sym b/profile/3.3.5a-windows-386/symbol/tempest/func.sym index 708d209..9dd0e0e 100644 --- a/profile/3.3.5a-windows-386/symbol/tempest/func.sym +++ b/profile/3.3.5a-windows-386/symbol/tempest/func.sym @@ -1,15 +1,17 @@ -C44Matrix__C44Matrix 00407F40 f end=00407F76 -C44Matrix__operator_assign_C44Matrix 00407F80 f end=00407FEA -CRndSeed__SetSeed 004C1510 f -C44Matrix__Determinant 004C1930 f -C44Matrix__Translate 004C1B30 f -C44Matrix__Scale_C3Vector 004C1B90 f -C44Matrix__Scale_float 004C1BF0 f -C44Matrix__C44Matrix_C4Quaternion 004C1DE0 f -operator_multiply_C44Matrix_C44Matrix 004C1F00 f -operator_multiply_C3Vector_C44Matrix 004C21B0 f -C44Matrix__operator_assignment_multiply 004C2370 f +C44Matrix__constructor 00407F40 f end=00407F76 type="C44Matrix* __thiscall func(C44Matrix* this)" +C44Matrix__operator_assign_C44Matrix 00407F80 f end=00407FEA type="float __thiscall func(C44Matrix* this, C44Matrix* rhs)" +CRndSeed__SetSeed 004C1510 f end=004C1584 +C44Matrix__Determinant 004C1930 f type="float __thiscall func(C44Matrix* this)" +C44Matrix__Translate 004C1B30 f type="void __thiscall func(C44Matrix* this, C3Vector* move)" +C44Matrix__Scale 004C1B90 f type="void __thiscall func(C44Matrix* this, C3Vector* scale)" ; void C44Matrix::Scale(const C3Vector& scale) +C44Matrix__Scale 004C1BF0 f type="void __thiscall func(C44Matrix* this, float scale)" ; void C44Matrix::Scale(float scale) +C44Matrix__constructor 004C1DE0 f type="C44Matrix* __thiscall func(C44Matrix* this, C4Quaternion* a)" +operator_multiply_C44Matrix_C44Matrix 004C1F00 f type="C44Matrix* __stdcall func(C44Matrix* __return_ptr result, C44Matrix* l, C44Matrix* r)" +operator_multiply_C44Matrix_float 004C2120 f type="C44Matrix* __stdcall func(C44Matrix* __return_ptr result, C44Matrix* l, float a)" +operator_multiply_C3Vector_C44Matrix 004C21B0 f type="C3Vector* __stdcall func(C3Vector* __return_ptr result, C3Vector* l, C44Matrix* a)" +C44Matrix__operator_assignment_multiply_C44Matrix 004C2370 f type="void __thiscall func(C44Matrix* this, C44Matrix* a)" C44Matrix__Transpose 004C23D0 f +C44Matrix__Adjoint 004C2440 f type="C44Matrix* __thiscall func(C44Matrix* this, C44Matrix* __return_ptr result)" ; C44Matrix C44Matrix::Adjoint() C44Matrix__Inverse 004C2F90 f C44Matrix__AffineInverse 004C2FC0 f C44Matrix__AffineInvertInPlace 004C30A0 f @@ -18,15 +20,16 @@ C44Matrix__RotateAroundX 004C3300 f C44Matrix__RotateAroundY 004C3340 f C44Matrix__RotateAroundZ 004C3380 f C44Matrix__Rotate 004C33C0 f -C3Vector__Normalize_1 004C3420 f -C3Vector__Normalize_2 004C3600 f +C3Vector__Normalize 004C3420 f type="void __thiscall func(C3Vector* this)" +C3Vector__Normalize 004C3600 f type="void __thiscall func(C3Vector* this)" TSGrowableArray_C3Vector__SetCount 004C4B80 f end=004C4C75 type="void __thiscall func(TSGrowableArray_C3Vector* this, uint32_t count)" C33Matrix__operator_assign_C33Matrix 004C51B0 f C33Matrix__Rotation 004C5550 f end=004C55A2 +C33Matrix__FromEulerAnglesZYX 004C56D0 f end=004C581A TSGrowableArray_C2Vector__SetCount 0057FDD0 f end=0057FE93 type="void __thiscall func(TSGrowableArray_C2Vector* this, uint32_t count)" TSGrowableArray_CImVector__SetCount 00616CA0 f end=00616D07 type="void __thiscall func(TSGrowableArray_CImVector* this, uint32_t count)" -C3Vector__C3Vector 00982970 f end=009829AD ; C3Vector::C3Vector(CImVector const&) -C4Vector__C4Vector 00984C90 f end=00984CDC ; C4Vector::C4Vector(CImVector const&) +C44Matrix__Inverse 006A43A0 f type="C44Matrix* __thiscall func(C44Matrix *this, C44Matrix* __return_ptr result)" C4Quaternion__Slerp 00982460 f end=0098256C ; C4Quaternion::Slerp(float, C4Quaternion const&, C4Quaternion const&) C4Quaternion__Nlerp 00982630 f end=0098269F ; C4Quaternion::Nlerp(float, C4Quaternion const&, C4Quaternion const&) -C33Matrix__FromEulerAnglesZYX 004C56D0 f end=004C581A +C3Vector__constructor 00982970 f end=009829AD ; C3Vector::C3Vector(CImVector const&) +C4Vector__constructor 00984C90 f end=00984CDC ; C4Vector::C4Vector(CImVector const&) diff --git a/profile/3.3.5a-windows-386/symbol/tooltip/func.sym b/profile/3.3.5a-windows-386/symbol/tooltip/func.sym index 352340f..e7a2a89 100644 --- a/profile/3.3.5a-windows-386/symbol/tooltip/func.sym +++ b/profile/3.3.5a-windows-386/symbol/tooltip/func.sym @@ -1,13 +1,13 @@ CGTooltip__GetDurationString 0061A9E0 f end=0061ABE4 CGTooltip__GetItemDurationStrin 0061ABF0 f end=0061AEDA +CGTooltip__ResetPosition 0061B040 f end=0061B263 +CGTooltip__FadeOut 0061B290 f end=0061B2D1 CGTooltip__FormatStringForXML 0061B4F0 f end=0061B5A1 CGTooltip__ClearTooltip 0061C620 f end=0061C8A6 CGTooltip__CalculateSize 0061CAF0 f end=0061CFE1 CGTooltip__AddLine 0061FEC0 f end=006201B4 +CGTooltip__SetUnit 00621070 f end=0062240C +CGTooltip__SetEquipmentSet 00622DD0 f end=006230C5 CGTooltip__AddSpellReagents 00623590 f end=00623752 CGTooltip__SetSpell 006238A0 f end=006252F1 CGTooltip__SetItem 006277F0 f end=0062D924 -CGTooltip__ResetPosition 0061B040 f end=0061B263 -CGTooltip__FadeOut 0061B290 f end=0061B2D1 -CGTooltip__SetUnit 00621070 f end=0062240C -CGTooltip__SetEquipmentSet 00622DD0 f end=006230C5 diff --git a/profile/3.3.5a-windows-386/symbol/uimacros/func.sym b/profile/3.3.5a-windows-386/symbol/uimacros/func.sym index b11ff71..800033a 100644 --- a/profile/3.3.5a-windows-386/symbol/uimacros/func.sym +++ b/profile/3.3.5a-windows-386/symbol/uimacros/func.sym @@ -1,7 +1,7 @@ -CGUIMacros__RunMacro 00564DB0 f end=00564E8C -CGUIMacros__GetMacroByIndex 00566A70 f end=00566A97 CGUIMacros__GetMacroIndexByID 00564AB0 f end=00564AD6 -CGUIMacros__GetFullIconPath 00566AC0 f end=00566CC5 -CGUIMacros__FindMacro 00566AA0 f end=00566ABA +CGUIMacros__RunMacro 00564DB0 f end=00564E8C MACRONODE__FindSpellID 005650C0 f end=00565413 CGUIMacros__UpdateDynamicMacros 00566660 f end=005666A0 +CGUIMacros__GetMacroByIndex 00566A70 f end=00566A97 +CGUIMacros__FindMacro 00566AA0 f end=00566ABA +CGUIMacros__GetFullIconPath 00566AC0 f end=00566CC5 diff --git a/profile/3.3.5a-windows-386/symbol/uimacros/label.sym b/profile/3.3.5a-windows-386/symbol/uimacros/label.sym index ca01b62..b23b2f4 100644 --- a/profile/3.3.5a-windows-386/symbol/uimacros/label.sym +++ b/profile/3.3.5a-windows-386/symbol/uimacros/label.sym @@ -1,3 +1,3 @@ +CGUIMacros__m_sortedMacros 00BEAE20 l CGUIMacros__m_macroRunning 00BEAF48 l CGUIMacros__m_macroButton 00BEAF4C l -CGUIMacros__m_sortedMacros 00BEAE20 l \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/unit/func.sym b/profile/3.3.5a-windows-386/symbol/unit/func.sym index ae71c45..5705199 100644 --- a/profile/3.3.5a-windows-386/symbol/unit/func.sym +++ b/profile/3.3.5a-windows-386/symbol/unit/func.sym @@ -1,74 +1,74 @@ +CalculateFacingTo 004F5130 f end=004F51B1 +ScriptEventsRegisterUnit 00614190 f end=00614260 +ScriptEventsUnregisterUnit 00614300 f end=00614389 CGUnit_C__StopMissileTrajectoryTargeting 006FBF00 f end=006FBF7B +CGUnit_C__InitMissileTrajectorySystem 006FC8E0 f end=006FC918 +CGUnit_C__SendFinalMissileTrajectoryUpdate 006FD6B0 f end=006FDA1E +CGUnit_C__UpdateMissileTrajectory 006FE7E0 f end=006FE9A8 +CGUnit_C__IsLocalClientControlled 00714AC0 f end=00714ACD +CGUnit_C__ForceFacingChange 00715270 f end=007152AD +CGUnit_C__NamePlateUpdateLevels 007153A0 f end=007153BB +CGUnit_C__RegisterScript 007158C0 f end=007158F4 +CGUnit_C__UnregisterScript 00715900 f end=00715929 +CGUnit_C__SetCastingAutoRepeat 00715AC0 f end=00715AE5 CGUnit_C__StopNamePlateSpellbar 00715B20 f end=00715B46 -CGUnit_C__DoPowerRegen 00728A20 f end=00728B09 -CGUnit_C__SetTrackingDirection 0072F040 f end=0072F1E8 -CGUnit_C__IsInMelee 0071AF90 f end=0071AFA7 -CGUnit_C__ClearTrackingTarget 007272C0 f end=007273F7 -CGUnit_C__CancelRangedMode 0072AFE0 f end=0072B05E -CGUnit_C__SpellInterrupted 0072ED80 f end=0072EE11 -CGUnit_C__Dismount 007412E0 f end=007413EA -CGUnit_C__SignalPlayerGainsVehicleDataEvent 0074BBD0 f end=0074BC45 -CGUnit_C__UpdateVehicleUISliders 0074C5A0 f end=0074C64D CGUnit_C__GetNamePlateFocus 00715C30 f end=00715C36 CGUnit_C__ClearNamePlateFocus 00715C40 f end=00715C5A CGUnit_C__GetCursorOverride 00715EA0 f end=00715F1C CGUnit_C__GetCursorFile 00715F20 f end=00715F6F -CGUnit_C__CanBeLooted 00717B60 f end=00717B98 -CGUnit_C__UnitReaction 00718C20 f end=00718C9B -CGUnit_C__CanAssist 0071F890 f end=0071F8A6 -CGUnit_C__SetNamePlateFocus 007271D0 f end=007272B5 -CGUnit_C__CanInteractNow 00729620 f end=0072973B -CGUnit_C__UpdateAllSmoothFacing 00739630 f end=00739648 -CGUnit_C__DestroyVehicleCamera 0074CD60 f end=0074CDD3 -CGUnit_C__IsLocalClientControlled 00714AC0 f end=00714ACD -CGUnit_C__HasVehicleTranspor 0074B8B0 f end=0074B8F5 -CGUnit_C__UpdateMissileTrajectory 006FE7E0 f end=006FE9A8 -CGUnit_C__IsSpellKnown 007260E0 f end=00726160 -CGUnit_C__NamePlateUpdateLevels 007153A0 f end=007153BB -CGUnit_C__SetCastingAutoRepeat 00715AC0 f end=00715AE5 -CGUnit_C__UpdateSelectionRadius 00720330 f end=007203FF -CGUnit_C__PlayNPCSound 00720860 f end=00720955 -CGUnit_C__UpdateModelScale 0072CBB0 f end=0072CC28 -CGUnit_C__OnLevelChange 0072E3A0 f end=0072E430 -CGUnit_C__OnVehicleCameraPossiblyNeeded 0074CE40 f end=0074CF22 -CGUnit_C__ForceFacingChange 00715270 f end=007152AD -CGUnit_C__RegisterScript 007158C0 f end=007158F4 -CGUnit_C__UnregisterScript 00715900 f end=00715929 CGUnit_C__MountedCombatAllowed 00715F70 f end=00715F87 -CGUnit_C__OnTurnStopLocal 0071AE40 f end=0071AE4F -CGUnit_C__CanAutoDismount 0071B0C0 f end=0071B123 -CGUnit_C__BuildComponentObject 0071D010 f end=0071D1E1 -CGUnit_C__ShowHandItemSpellEffects 00720400 f end=0072069D -CGUnit_C__TrackingMakeRelativeTo 00722010 f end=00722082 -CGUnit_C__IsValidFollowTarget 00729BD0 f end=00729C6A -CGUnit_C__HandleNPCFeedback 0072A680 f end=0072A7E9 -CGUnit_C__SetTrackingTarget 0072B4A0 f end=0072B63D -CGUnit_C__VerifyAttackIconPressed 0072BDB0 f end=0072C2AD -CGUnit_C__OnMovementInitiated 0072EAD0 f end=0072EB76 -CGUnit_C__InitializeComponent 00730100 f end=00730281 -CGUnit_C__ShouldRender 00730F30 f end=00731092 -CGUnit_C__CheckAndReportSpellInhibitFlags 00739650 f end=0073A51E -CGUnit_C__UpdateLootAnimKit 0073AC30 f end=0073ACFC -CGUnit_C__VehiclePassengerInitWorldCameraState 0074B880 f end=0074B892 -CGUnit_C__IsStrafingDisabled 0074B9A0 f end=0074B9AB -CGUnit_C__IsVehicleCurrentlyUnstoppable 0074BB90 f end=0074BBC8 -CGUnit_C__OnVehicleCameraPossiblyUnneeded 0074C4E0 f end=0074C550 -CGUnit_C__VehiclePassengerMaybeAutoExit 0074CCE0 f end=0074CD5F -ScriptEventsRegisterUnit 00614190 f end=00614260 -ScriptEventsUnregisterUnit 00614300 f end=00614389 -CGUnit_C__InitMissileTrajectorySystem 006FC8E0 f end=006FC918 -CGUnit_C__SendFinalMissileTrajectoryUpdate 006FD6B0 f end=006FDA1E -UnitCombatLogInvalidateName 0074F400 f end=0074F4CC -CalculateFacingTo 004F5130 f end=004F51B1 +CGUnit_C__CanBeLooted 00717B60 f end=00717B98 CGUnit_C__InitActiveMover 00717C50 f end=00717D84 CGUnit_C__GetMaxCameraHeight 00718080 f end=007180B5 +CGUnit_C__UnitReaction 00718C20 f end=00718C9B +CGUnit_C__OnTurnStopLocal 0071AE40 f end=0071AE4F +CGUnit_C__IsInMelee 0071AF90 f end=0071AFA7 +CGUnit_C__CanAutoDismount 0071B0C0 f end=0071B123 CGUnit_C__CanAutoUnshift 0071B130 f end=0071B1D8 +CGUnit_C__GetPredictedHealth 0071C2C0 f end=0071C2DC +CGUnit_C__GetPredictedPower 0071C2E0 f end=0071C31F CGUnit_C__GetCameraRelativeTo 0071C4D0 f end=0071C4F1 CGUnit_C__SetLocalClientControl 0071C930 f end=0071C9C4 +CGUnit_C__BuildComponentObject 0071D010 f end=0071D1E1 +CGUnit_C__CanAssist 0071F890 f end=0071F8A6 +CGUnit_C__UpdateSelectionRadius 00720330 f end=007203FF +CGUnit_C__ShowHandItemSpellEffects 00720400 f end=0072069D +CGUnit_C__PlayNPCSound 00720860 f end=00720955 CGUnit_C__UpdateObjectEffectMovementStates 00721300 f end=007219EB CGUnit_C__IsShapeShifted 00721CA0 f end=00721CEE CGUnit_C__CanCurrentFormMount 00721DA0 f end=00721E68 +CGUnit_C__TrackingMakeRelativeTo 00722010 f end=00722082 +CGUnit_C__IsSpellKnown 007260E0 f end=00726160 CGUnit_C__CancelFormPreventingMount 00726F30 f end=00727126 +CGUnit_C__SetNamePlateFocus 007271D0 f end=007272B5 +CGUnit_C__ClearTrackingTarget 007272C0 f end=007273F7 +CGUnit_C__DoPowerRegen 00728A20 f end=00728B09 +CGUnit_C__CanInteractNow 00729620 f end=0072973B +CGUnit_C__IsValidFollowTarget 00729BD0 f end=00729C6A +CGUnit_C__HandleNPCFeedback 0072A680 f end=0072A7E9 +CGUnit_C__CancelRangedMode 0072AFE0 f end=0072B05E +CGUnit_C__SetTrackingTarget 0072B4A0 f end=0072B63D +CGUnit_C__VerifyAttackIconPressed 0072BDB0 f end=0072C2AD +CGUnit_C__UpdateModelScale 0072CBB0 f end=0072CC28 +CGUnit_C__OnLevelChange 0072E3A0 f end=0072E430 +CGUnit_C__OnMovementInitiated 0072EAD0 f end=0072EB76 +CGUnit_C__SpellInterrupted 0072ED80 f end=0072EE11 +CGUnit_C__SetTrackingDirection 0072F040 f end=0072F1E8 +CGUnit_C__InitializeComponent 00730100 f end=00730281 +CGUnit_C__ShouldRender 00730F30 f end=00731092 +CGUnit_C__UpdateAllSmoothFacing 00739630 f end=00739648 +CGUnit_C__CheckAndReportSpellInhibitFlags 00739650 f end=0073A51E +CGUnit_C__UpdateLootAnimKit 0073AC30 f end=0073ACFC +CGUnit_C__Dismount 007412E0 f end=007413EA +CGUnit_C__VehiclePassengerInitWorldCameraState 0074B880 f end=0074B892 +CGUnit_C__HasVehicleTranspor 0074B8B0 f end=0074B8F5 +CGUnit_C__IsStrafingDisabled 0074B9A0 f end=0074B9AB +CGUnit_C__IsVehicleCurrentlyUnstoppable 0074BB90 f end=0074BBC8 +CGUnit_C__SignalPlayerGainsVehicleDataEvent 0074BBD0 f end=0074BC45 +CGUnit_C__OnVehicleCameraPossiblyUnneeded 0074C4E0 f end=0074C550 +CGUnit_C__UpdateVehicleUISliders 0074C5A0 f end=0074C64D CGUnit_C__FindRootVehicle 0074C650 f end=0074C749 -CGUnit_C__GetPredictedHealth 0071C2C0 f end=0071C2DC -CGUnit_C__GetPredictedPower 0071C2E0 f end=0071C31F +CGUnit_C__VehiclePassengerMaybeAutoExit 0074CCE0 f end=0074CD5F +CGUnit_C__DestroyVehicleCamera 0074CD60 f end=0074CDD3 +CGUnit_C__OnVehicleCameraPossiblyNeeded 0074CE40 f end=0074CF22 +UnitCombatLogInvalidateName 0074F400 f end=0074F4CC diff --git a/profile/3.3.5a-windows-386/symbol/vehicle/func.sym b/profile/3.3.5a-windows-386/symbol/vehicle/func.sym index 703df54..0d53809 100644 --- a/profile/3.3.5a-windows-386/symbol/vehicle/func.sym +++ b/profile/3.3.5a-windows-386/symbol/vehicle/func.sym @@ -1,4 +1,4 @@ -CVehicle_C__EnterWorld 00757180 f end=007571C0 -CVehicle_C__GetVehicleSeatRec 00756EC0 f end=00756F00 CVehicle_C__InitSystem 00756E30 f end=00756E8B CVehicle_C__UninitSystem 00756E90 f end=00756EB3 +CVehicle_C__GetVehicleSeatRec 00756EC0 f end=00756F00 +CVehicle_C__EnterWorld 00757180 f end=007571C0 diff --git a/profile/3.3.5a-windows-386/symbol/vehiclecamera/func.sym b/profile/3.3.5a-windows-386/symbol/vehiclecamera/func.sym index 7b6d83e..9458fe1 100644 --- a/profile/3.3.5a-windows-386/symbol/vehiclecamera/func.sym +++ b/profile/3.3.5a-windows-386/symbol/vehiclecamera/func.sym @@ -1,7 +1,7 @@ -CVehicleCamera_C__Destroy 00759D60 f end=00759D7C -CVehicleCamera_C__AttachToHierarchy 0075A720 f end=0075A7CE CVehicleCamera_C__InitSystem 00759160 f end=007591CF CVehicleCamera_C__UninitSystem 007591D0 f end=007591FD -CVehicleCamera_C__Create 0075B1A0 f end=0075B3DD CVehicleCamera_C__ComputeSafeCurWorldPos 00759580 f end=007597C1 CVehicleCamera_C__GetRelativeTo 007599D0 f end=00759A56 +CVehicleCamera_C__Destroy 00759D60 f end=00759D7C +CVehicleCamera_C__AttachToHierarchy 0075A720 f end=0075A7CE +CVehicleCamera_C__Create 0075B1A0 f end=0075B3DD diff --git a/profile/3.3.5a-windows-386/symbol/vehiclepassenger/func.sym b/profile/3.3.5a-windows-386/symbol/vehiclepassenger/func.sym index 9189d38..b200298 100644 --- a/profile/3.3.5a-windows-386/symbol/vehiclepassenger/func.sym +++ b/profile/3.3.5a-windows-386/symbol/vehiclepassenger/func.sym @@ -1,5 +1,5 @@ CVehiclePassenger_C__PostRenderUpdateAll 00747AE0 f end=00747AFB -CVehiclePassenger_C__InitSystem 0074A070 f end=0074A15F -CVehiclePassenger_C__UninitSystem 0074A160 f end=0074A1FE CVehiclePassenger_C__OnSetActiveMover 00747F40 f end=00747F9F CVehiclePassenger_C__GetStoredRootVehicleUnit 00748040 f end=0074806E +CVehiclePassenger_C__InitSystem 0074A070 f end=0074A15F +CVehiclePassenger_C__UninitSystem 0074A160 f end=0074A1FE diff --git a/profile/3.3.5a-windows-386/symbol/wardenclient/func.sym b/profile/3.3.5a-windows-386/symbol/wardenclient/func.sym index ef2904e..4baa0c4 100644 --- a/profile/3.3.5a-windows-386/symbol/wardenclient/func.sym +++ b/profile/3.3.5a-windows-386/symbol/wardenclient/func.sym @@ -1,2 +1,2 @@ WardenClient_Destroy 007DA420 f end=007DA4B0 ; WardenClient_Destroy() -WardenClient_Initialize 007DA8C0 f end=007DA92C ; WardenClient_Initialize() \ No newline at end of file +WardenClient_Initialize 007DA8C0 f end=007DA92C ; WardenClient_Initialize() diff --git a/profile/3.3.5a-windows-386/symbol/world/func.sym b/profile/3.3.5a-windows-386/symbol/world/func.sym index cf56583..82e8f92 100644 --- a/profile/3.3.5a-windows-386/symbol/world/func.sym +++ b/profile/3.3.5a-windows-386/symbol/world/func.sym @@ -1,3 +1,3 @@ World__SetLoadProgressCallback 0077EC90 f end=0077ECA6 -World__Preload 00781500 f end=007815B7 World__Intersect 0077F310 f end=0077F319 +World__Preload 00781500 f end=007815B7 diff --git a/profile/3.3.5a-windows-386/symbol/worldframe/func.sym b/profile/3.3.5a-windows-386/symbol/worldframe/func.sym index 3881d52..4299fa0 100644 --- a/profile/3.3.5a-windows-386/symbol/worldframe/func.sym +++ b/profile/3.3.5a-windows-386/symbol/worldframe/func.sym @@ -27,6 +27,6 @@ CGWorldFrame__OnLayerUpdate 004FA040 f end=004FA371 CGWorldFrame__SetupDefaultAction 004FA570 f end=004FA5CE CGWorldFrame__UnitClear 004FA5D0 f end=004FA5EF CGWorldFrame__OnWorldUpdate 004FA5F0 f end=004FABC5 -CGWorldFrame__CGWorldFrame 004FABD0 f end=004FAF5E +CGWorldFrame__constructor 004FABD0 f end=004FAF5E CGWorldFrame__RenderWorld 004FAF90 f end=004FB079 CGWorldFrame__OnFrameRender 004FB080 f end=004FB0AD diff --git a/profile/3.3.5a-windows-386/symbol/worldmap/func.sym b/profile/3.3.5a-windows-386/symbol/worldmap/func.sym index 2969ad7..73aebfd 100644 --- a/profile/3.3.5a-windows-386/symbol/worldmap/func.sym +++ b/profile/3.3.5a-windows-386/symbol/worldmap/func.sym @@ -1,2 +1,2 @@ -CGWorldMap__InitializeGame 00547EB0 f end=00548568 CGWorldMap__GetPlayerPosition 005444F0 f end=005445EB +CGWorldMap__InitializeGame 00547EB0 f end=00548568 diff --git a/profile/3.3.5a-windows-386/symbol/wowconnection/func.sym b/profile/3.3.5a-windows-386/symbol/wowconnection/func.sym index 56e8b7b..5d4c105 100644 --- a/profile/3.3.5a-windows-386/symbol/wowconnection/func.sym +++ b/profile/3.3.5a-windows-386/symbol/wowconnection/func.sym @@ -7,8 +7,8 @@ WowConnection__Disconnect 00466B50 f end=00466B8F ; WowConnection::Disconnect() WowConnection__SetEncryptionKey 00466BF0 f end=00466DA9 ; WowConnection::SetEncryptionKey(unsigned char const*, unsigned char, unsigned char, unsigned char const*, unsigned char) WowConnection__CloseSocket 00466DE0 f end=00466E29 ; WowConnection::CloseSocket(int) WowConnection__DoStreamReads 00466F00 f end=004670CA ; WowConnection::DoStreamReads() -WowConnection__WowConnection 00467270 f end=00467330 ; WowConnection::WowConnection(int, sockaddr_in*, WowConnectionResponse*) -WowConnection__WowConnection 00467330 f end=004673B9 ; WowConnection::WowConnection(WowConnectionResponse*, void (*)()) +WowConnection__constructor 00467270 f end=00467330 ; WowConnection::WowConnection(int, sockaddr_in*, WowConnectionResponse*) +WowConnection__constructor 00467330 f end=004673B9 ; WowConnection::WowConnection(WowConnectionResponse*, void (*)()) WowConnection__destructor 004673C0 f end=00467536 ; WowConnection::~WowConnection() WowConnection__Send 004675F0 f end=00467988 ; WowConnection::Send(CDataStore*, int) WowConnection__SendRaw 00467990 f end=00467B96 ; WowConnection::SendRaw(unsigned char*, int) diff --git a/profile/3.3.5a-windows-386/x64dbg/game.dd32 b/profile/3.3.5a-windows-386/x64dbg/game.dd32 index 87814402fd0e43b15515a9a57b971df8d9e17fee..5006c23bfc9889a047fa01a4cbd713bb96af3989 100644 GIT binary patch delta 74048 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

g${Iqn$TuxxCa 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 B@+`3A*kvDnL))#+Zbeq(rL81^ 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 Zm7ySvx?B^dJnJWikmo!m7oQ@J{14$^T5kXV delta 73164 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 E9};9c0RR91 diff --git a/profile/3.3.5a-windows-386/x64dbg/types.json b/profile/3.3.5a-windows-386/x64dbg/types.json index 7c40601..00f5a8f 100644 --- a/profile/3.3.5a-windows-386/x64dbg/types.json +++ b/profile/3.3.5a-windows-386/x64dbg/types.json @@ -228,6 +228,10 @@ "type": "int", "name": "EGxTexFormat" }, + { + "type": "int", + "name": "EGxTexGen" + }, { "type": "int", "name": "EGxTexTarget" @@ -328,6 +332,10 @@ "type": "IDirect3D9*", "name": "LPDIRECT3D9" }, + { + "type": "IDirect3DBaseTexture9*", + "name": "LPDIRECT3DBASETEXTURE9" + }, { "type": "IDirect3DCubeTexture9*", "name": "LPDIRECT3DCUBETEXTURE9" @@ -392,6 +400,10 @@ "type": "int", "name": "MipMapAlgorithm" }, + { + "type": "int", + "name": "NETMESSAGE" + }, { "type": "int", "name": "NV_StereoRegistryProfileType" @@ -400,6 +412,10 @@ "type": "int", "name": "NvAPI_Status" }, + { + "type": "int", + "name": "OBJECT_TYPE" + }, { "type": "int", "name": "OSINPUT" @@ -432,6 +448,10 @@ "type": "long long", "name": "TimingMethod" }, + { + "type": "uint64_t", + "name": "WOWGUID" + }, { "type": "int32_t", "name": "intptr_t" @@ -2504,6 +2524,33 @@ } ] }, + { + "name": "CGObject", + "size": 8, + "members": [ + { + "type": "uint32_t*", + "name": "m_data", + "offset": 0 + }, + { + "type": "CGObjectData*", + "name": "m_obj", + "offset": 4 + } + ] + }, + { + "name": "CGObject_C__v_table", + "size": 4, + "members": [ + { + "type": "void*", + "name": "unk", + "offset": 0 + } + ] + }, { "name": "CGxDevice__TextureTarget", "size": 12, @@ -18367,6 +18414,108 @@ } ] }, + { + "name": "IDirect3DBaseTexture9", + "size": 4, + "members": [ + { + "type": "IDirect3DBaseTexture9__v_table*", + "name": "v_table", + "offset": 0 + } + ] + }, + { + "name": "IDirect3DBaseTexture9__v_table", + "size": 68, + "members": [ + { + "type": "void*", + "name": "v_fn_0_QueryInterface", + "offset": 0 + }, + { + "type": "void*", + "name": "v_fn_1_AddRef", + "offset": 4 + }, + { + "type": "void*", + "name": "v_fn_2_Release", + "offset": 8 + }, + { + "type": "void*", + "name": "v_fn_3_GetDevice", + "offset": 12 + }, + { + "type": "void*", + "name": "v_fn_4_SetPrivateData", + "offset": 16 + }, + { + "type": "void*", + "name": "v_fn_5_GetPrivateData", + "offset": 20 + }, + { + "type": "void*", + "name": "v_fn_6_FreePrivateData", + "offset": 24 + }, + { + "type": "void*", + "name": "v_fn_7_SetPriority", + "offset": 28 + }, + { + "type": "void*", + "name": "v_fn_8_GetPriority", + "offset": 32 + }, + { + "type": "void*", + "name": "v_fn_9_PreLoad", + "offset": 36 + }, + { + "type": "void*", + "name": "v_fn_10_GetType", + "offset": 40 + }, + { + "type": "void*", + "name": "v_fn_11_SetLOD", + "offset": 44 + }, + { + "type": "void*", + "name": "v_fn_12_GetLOD", + "offset": 48 + }, + { + "type": "void*", + "name": "v_fn_13_GetLevelCount", + "offset": 52 + }, + { + "type": "void*", + "name": "v_fn_14_SetAutoGenFilterType", + "offset": 56 + }, + { + "type": "void*", + "name": "v_fn_15_GetAutoGenFilterType", + "offset": 60 + }, + { + "type": "void*", + "name": "v_fn_16_GenerateMipSubLevels", + "offset": 64 + } + ] + }, { "name": "IDirect3DCubeTexture9", "size": 4, @@ -31120,6 +31269,93 @@ } ] }, + { + "name": "CGObject_C", + "size": 220, + "members": [ + { + "type": "CGObject_C__v_table*", + "name": "v_table", + "offset": 0 + }, + { + "type": "CGObject", + "name": "b_base", + "offset": 4 + }, + { + "type": "uint32_t", + "name": "unk", + "arrsize": 42, + "offset": 12 + }, + { + "type": "float", + "name": "m_renderScale", + "offset": 180 + }, + { + "type": "uint32_t", + "name": "unki", + "offset": 184 + }, + { + "type": "void*", + "name": "m_model", + "offset": 188 + }, + { + "type": "uint32_t", + "name": "m_highlightTypes", + "offset": 192 + }, + { + "type": "float", + "name": "m_objectHeight", + "offset": 196 + }, + { + "type": "uint32_t", + "name": "m_worldObject", + "offset": 200 + }, + { + "type": "uint32_t", + "name": "m_flags", + "offset": 204 + }, + { + "type": "uint32_t", + "name": "m_fadeStartTime", + "offset": 208 + }, + { + "type": "uint32_t", + "name": "m_fadeDuration", + "offset": 212 + }, + { + "type": "uint8_t", + "name": "m_alpha", + "offset": 216 + }, + { + "type": "uint8_t", + "name": "m_startAlpha", + "offset": 217 + }, + { + "type": "uint8_t", + "name": "m_endAlpha", + "offset": 218 + }, + { + "type": "uint8_t", + "name": "m_maxAlpha", + "offset": 219 + } + ] + }, { "name": "CGxFormat", "size": 88, @@ -31176,12 +31412,12 @@ }, { "type": "uint32_t", - "name": "sampleCount", + "name": "multisampleCount", "offset": 32 }, { "type": "float", - "name": "sampleQuality", + "name": "multisampleQuality", "offset": 36 }, { @@ -31588,6 +31824,37 @@ } ] }, + { + "name": "D3DMATERIAL9", + "size": 68, + "members": [ + { + "type": "D3DCOLORVALUE", + "name": "Diffuse", + "offset": 0 + }, + { + "type": "D3DCOLORVALUE", + "name": "Ambient", + "offset": 16 + }, + { + "type": "D3DCOLORVALUE", + "name": "Specular", + "offset": 32 + }, + { + "type": "D3DCOLORVALUE", + "name": "Emissive", + "offset": 48 + }, + { + "type": "float", + "name": "Power", + "offset": 64 + } + ] + }, { "name": "D3DDEVICE_CREATION_PARAMETERS", "size": 24, @@ -35323,6 +35590,37 @@ } ] }, + { + "name": "CGObjectData", + "size": 24, + "members": [ + { + "type": "WOWGUID", + "name": "m_guid", + "offset": 0 + }, + { + "type": "OBJECT_TYPE", + "name": "m_type", + "offset": 8 + }, + { + "type": "int32_t", + "name": "m_entryID", + "offset": 12 + }, + { + "type": "float", + "name": "m_scale", + "offset": 16 + }, + { + "type": "uint32_t", + "name": "pad", + "offset": 20 + } + ] + }, { "name": "WowClientDB_Common_AchievementRec", "size": 24, @@ -48072,7 +48370,7 @@ }, { "type": "int32_t", - "name": "intF64", + "name": "m_windowFocus", "offset": 3940 }, {