From 1b3c6b147d5623613417d8f14da60260b035c173 Mon Sep 17 00:00:00 2001 From: gromchek Date: Mon, 1 Sep 2025 22:28:15 +0300 Subject: [PATCH 1/2] feat(profile): CMapArea and CMapChunk functions --- .../symbol/chunkliquid/func.sym | 1 + .../symbol/detaildoodad/func.sym | 2 ++ .../symbol/frustum/func.sym | 1 + .../symbol/m2scene/func.sym | 1 + .../3.3.5a-windows-386/symbol/map/func.sym | 18 +++++++++++++++++ .../3.3.5a-windows-386/symbol/map/label.sym | 2 ++ .../symbol/maparea/func.sym | 8 ++++++++ .../symbol/mapbojgroup/func.sym | 2 ++ .../symbol/mapchunk/func.sym | 20 +++++++++++++++++++ .../symbol/mapchunk/label.sym | 1 + .../symbol/mapdoodaddef/func.sym | 1 + .../3.3.5a-windows-386/symbol/mapobj/func.sym | 1 + .../symbol/mapobjdef/func.sym | 1 + .../symbol/maprenderchunk/func.sym | 4 ++++ .../3.3.5a-windows-386/symbol/world/func.sym | 1 + 15 files changed, 64 insertions(+) create mode 100644 profile/3.3.5a-windows-386/symbol/chunkliquid/func.sym create mode 100644 profile/3.3.5a-windows-386/symbol/frustum/func.sym create mode 100644 profile/3.3.5a-windows-386/symbol/maprenderchunk/func.sym diff --git a/profile/3.3.5a-windows-386/symbol/chunkliquid/func.sym b/profile/3.3.5a-windows-386/symbol/chunkliquid/func.sym new file mode 100644 index 0000000..eea8e62 --- /dev/null +++ b/profile/3.3.5a-windows-386/symbol/chunkliquid/func.sym @@ -0,0 +1 @@ +CChunkLiquid__Purge 007CDE10 f end=007CDE28 diff --git a/profile/3.3.5a-windows-386/symbol/detaildoodad/func.sym b/profile/3.3.5a-windows-386/symbol/detaildoodad/func.sym index 05d9d6a..3ae8e6f 100644 --- a/profile/3.3.5a-windows-386/symbol/detaildoodad/func.sym +++ b/profile/3.3.5a-windows-386/symbol/detaildoodad/func.sym @@ -2,3 +2,5 @@ CDetailDoodad__UpdateAlphaRampTexture 007B1270 f end=007B129F ; CDetailDoodad::U CDetailDoodad__InitializeShaderConstants 007B15D0 f end=007B1B05 ; CDetailDoodad::InitializeShaderConstants() CDetailDoodad__Initialize 007B2760 f end=007B29AA ; CDetailDoodad::Initialize() CDetailDoodad__InitializeRenderState 007B2D30 f end=007B304E ; CDetailDoodad::InitializeRenderState() +CDetailDoodad__UpdatePools 007B2A80 f end=007B2C92 +CDetailDoodad__FreeInst 007B3960 f end=007B3987 diff --git a/profile/3.3.5a-windows-386/symbol/frustum/func.sym b/profile/3.3.5a-windows-386/symbol/frustum/func.sym new file mode 100644 index 0000000..cd85b9b --- /dev/null +++ b/profile/3.3.5a-windows-386/symbol/frustum/func.sym @@ -0,0 +1 @@ +CFrustum__Cull 00983D70 f end=00983E61 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 9ecd6b5..72296c9 100644 --- a/profile/3.3.5a-windows-386/symbol/m2scene/func.sym +++ b/profile/3.3.5a-windows-386/symbol/m2scene/func.sym @@ -17,3 +17,4 @@ 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) +CM2Scene__PurgeModelCache 0081CAB0 f end=0081CABF 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 4553db4..837da4d 100644 --- a/profile/3.3.5a-windows-386/symbol/map/func.sym +++ b/profile/3.3.5a-windows-386/symbol/map/func.sym @@ -30,3 +30,21 @@ CMap__TestQueryAdd 007A4C10 f end=007A4EDD CMap__GetChunkFacets 007A5330 f end=007A55DC CMap__PrepareMapObjDefs 007B6110 f end=007B64ED CMap__LocateViewerMapObjs 007D59B0 f end=007D5CC9 +CMap__QueryGroundTypeTerrain 007A0530 f end=007A0699 +CMap__GetChunkFacets 007A5A60 f end=007A5DC8 +CMap__GetFacets 007A5F20 f end=007A6136 +CMap__GetTriSubchunk 007A6260 f end=007A6623 +CMap__GetHeightTerrain 007AD3B0 f end=007AD6F1 +CMap__UpdateArea 007B4DF0 f end=007B4F06 +CMap__PreUpdateAreas 007B5950 f end=007B5CFF +CMap__PrepareUpdate 007B6B00 f end=007B6ECF +CMap__AllocRawAreaData 007BFE40 f end=007BFE5A +CMap__FreeRawAreaData 007BFE60 f end=007BFE7A +CMap__FreeChunkLiquid 007C04A0 f end=007C0500 +CMap__AllocChunkLiquid 007C0980 f end=007C09E6 +CMap__LinkObjectToMapObjDefGroup 007C1FF0 f end=007C2035 +CMap__PurgeArea 007C3700 f end=007C372E +CMap__Purge 007C3730 f end=007CC01C +CMap__LoadTerrainTexture 007D6980 f end=007D6A8F +CMap__LoadArea 007D9A20 f end=007D9A6B +CMap__PrepareArea 007D9A70 f end=007D9B0E diff --git a/profile/3.3.5a-windows-386/symbol/map/label.sym b/profile/3.3.5a-windows-386/symbol/map/label.sym index 8f8f02f..be04900 100644 --- a/profile/3.3.5a-windows-386/symbol/map/label.sym +++ b/profile/3.3.5a-windows-386/symbol/map/label.sym @@ -17,3 +17,5 @@ CMap__mapPath 00CE07D0 l CMap__bActive 00CF08F0 l CMap__bDungeon 00CF08F4 l CMap__bPreload 00ADFBC8 l +CMap__s_holeMask 00A3FAF0 l +CMap__m_areaTable 00CE48D0 l diff --git a/profile/3.3.5a-windows-386/symbol/maparea/func.sym b/profile/3.3.5a-windows-386/symbol/maparea/func.sym index b13d130..eef4e59 100644 --- a/profile/3.3.5a-windows-386/symbol/maparea/func.sym +++ b/profile/3.3.5a-windows-386/symbol/maparea/func.sym @@ -1 +1,9 @@ CMapArea__constructor 007D7050 f end=007D711F +CMapArea__PurgeChunk 007C35D0 f end=007C35EA +CMapArea__PurgeXXX 007C35F0 f end=007C36F2 +CMapArea__PurgeChunks 007D6A90 f end=007D6B2F +CMapArea__PrepareChunk 007D6B30 f end=007D6BEC +CMapArea__Update 007D6BF0 f end=007D6D19 +CMapArea__Create 007D6EF0 f end=007D7015 +CMapArea__AsyncLoadCallback 007D7020 f end=007D7045 +CMapArea__Load 007D7150 f end=007D71CD diff --git a/profile/3.3.5a-windows-386/symbol/mapbojgroup/func.sym b/profile/3.3.5a-windows-386/symbol/mapbojgroup/func.sym index 5b04cd2..1d193da 100644 --- a/profile/3.3.5a-windows-386/symbol/mapbojgroup/func.sym +++ b/profile/3.3.5a-windows-386/symbol/mapbojgroup/func.sym @@ -29,3 +29,5 @@ CMapObjGroup__CreateDataPointers 007D7F50 f end=007D800F CMapObjGroup__CreateOccluders 007D81C0 f end=007D82D6 CMapObjGroup__Create 007D82E0 f end=007D856F CMapObjGroup__AsyncPostloadCallback 007D8570 f end=007D85D6 +CMapObjGroup__AsyncFailedCallback 007C75E0 f end=007C7608 +CMapObjGroup__GetNumSharedTiles 007C8BF0 f end=007C8C5E 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 f416bc4..5cd79de 100644 --- a/profile/3.3.5a-windows-386/symbol/mapchunk/func.sym +++ b/profile/3.3.5a-windows-386/symbol/mapchunk/func.sym @@ -1,2 +1,22 @@ CMapChunk__UpdateLights 007C65A0 f end=007C65FE ; public: void __thiscall CMapChunk::UpdateLights(void) CMapChunk__Initialize 007C3D90 f end=007C3DAD +CMapChunk__Purge 007C3370 f end=007C35CF +CMapChunk__ProcessIffChunks 007C3A10 f end=007C3B3C +CMapChunk__CreateIndices 007C3B60 f end=007C3C57 +CMapChunk__initVerts 007C3C60 f end=007C3D90 +CMapChunk__CreateVerticesWorld 007C3F30 f end=007C4618 +CMapChunk__CreateVerticesWorld 007C4620 f end=007C495A +CMapChunk__CreateVerticesLocal 007C4960 f end=007C4F0A +CMapChunk__CreateVerticesLocal 007C4F10 f end=007C51AE +CMapChunk__CreateIndices 007C51B0 f end=007C5218 +CMapChunk__CreateBounds 007C5220 f end=007C543B +CMapChunk__CreateVertices 007C54C0 f end=007C552B +CMapChunk__CreateLiquids 007C5690 f end=007C5B1E +CMapChunk__CreateSoundEmitters 007C6060 f end=007C6144 +CMapChunk__CreateRefs 007C6150 f end=007C647D +CMapChunk__Create 007C64B0 f end=007C659D +CMapChunk__CreateDetailDoodads 007D3390 f end=007D3E01 +CMapChunk__CreateDetailDoodadInst 007D3FE0 f end=007D4091 +CMapChunk__Intersect 007D8730 f end=007D883E +CMapChunk__Intersect 007D8840 f end=007D8DF6 +CMapChunk__Intersect 007D8E00 f end=007D91E5 diff --git a/profile/3.3.5a-windows-386/symbol/mapchunk/label.sym b/profile/3.3.5a-windows-386/symbol/mapchunk/label.sym index f634858..4a05b83 100644 --- a/profile/3.3.5a-windows-386/symbol/mapchunk/label.sym +++ b/profile/3.3.5a-windows-386/symbol/mapchunk/label.sym @@ -1 +1,2 @@ CMapChunk__s_geoToTex 00D25488 l +CMapChunk__m_vertexListXY 00D25498 l 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 f08412a..2ba0432 100644 --- a/profile/3.3.5a-windows-386/symbol/mapdoodaddef/func.sym +++ b/profile/3.3.5a-windows-386/symbol/mapdoodaddef/func.sym @@ -1,2 +1,3 @@ CMapDoodadDef__SelectLights 007C1150 f end=007C1371 ; CMapDoodadDef::SelectLights(CM2Lighting*) CMapDoodadDef__constructor 007C21E0 f end=007C234A +CMapDoodadDef__Purge 007C3020 f end=007C30A6 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 e896030..a5d5122 100644 --- a/profile/3.3.5a-windows-386/symbol/mapobj/func.sym +++ b/profile/3.3.5a-windows-386/symbol/mapobj/func.sym @@ -50,5 +50,6 @@ CMapObj__AttenTransVerts 007D78C0 f end=007D7C24 CMapObj__CreateData 007D7EB0 f end=007D7F4A CMapObj__AsyncPostloadCallback 007D8050 f end=007D80B6 CMapObj__ReadGroup 007D85E0 f end=007D872B +CMapObj__AsyncFailedCallback 007AE110 f end=007AE138 GetMinimapQuads 007AF8D0 f end=007AFC70 GetMinimapQuads 007AFE70 f end=007AFED2 diff --git a/profile/3.3.5a-windows-386/symbol/mapobjdef/func.sym b/profile/3.3.5a-windows-386/symbol/mapobjdef/func.sym index b7b8821..87280ad 100644 --- a/profile/3.3.5a-windows-386/symbol/mapobjdef/func.sym +++ b/profile/3.3.5a-windows-386/symbol/mapobjdef/func.sym @@ -1 +1,2 @@ CMapObjDef__constructor 007B4350 f end=007B44FE +CMapObjDef__Purge 007C3250 f end=007C332D diff --git a/profile/3.3.5a-windows-386/symbol/maprenderchunk/func.sym b/profile/3.3.5a-windows-386/symbol/maprenderchunk/func.sym new file mode 100644 index 0000000..82e41de --- /dev/null +++ b/profile/3.3.5a-windows-386/symbol/maprenderchunk/func.sym @@ -0,0 +1,4 @@ +CMapRenderChunk__Initialize 007BA340 f end=007BA3C7 +CMapRenderChunk__UpdatePools 007BA600 f end=007BA7B6 +CMapRenderChunk__RenderPrepBufs 007D02C0 f end=007D0419 +CMapRenderChunk__UseStreamingBufs 007D0420 f end=007D049B 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 f2e2fed..57c366f 100644 --- a/profile/3.3.5a-windows-386/symbol/world/func.sym +++ b/profile/3.3.5a-windows-386/symbol/world/func.sym @@ -8,3 +8,4 @@ World__Initialize 00780F50 f end=0078142F World__LoadMap 00781430 f end=007814F2 World__Render 0077EFF0 f end=0077F00C World__ObjectTestConvexVolume 0077FFB0 f end=00780122 +World__PrepareUpdate 007831A0 f end=007834FE From 75c348f7840f873c2dd20e30ffda3be995ae66f7 Mon Sep 17 00:00:00 2001 From: gromchek Date: Mon, 1 Sep 2025 22:29:07 +0300 Subject: [PATCH 2/2] chore(build): refresh generated files --- .../ida/batch/import_symbols.idc | 64 ++++++++++++++++++ profile/3.3.5a-windows-386/symbol/main.sym | 64 ++++++++++++++++++ profile/3.3.5a-windows-386/x64dbg/game.dd32 | Bin 191351 -> 193501 bytes 3 files changed, 128 insertions(+) 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 49b6b60..1b0cd9a 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 @@ -4146,6 +4146,7 @@ static import_symbols() { set_name(0x00781430, "World__LoadMap"); set_name(0x00781500, "World__Preload"); set_name(0x007816F0, "DayNight__Update"); + set_name(0x007831A0, "World__PrepareUpdate"); set_name(0x0078F020, "AreaListRegisterLocation"); set_name(0x0078FB00, "CWorldScene__FrustumXform"); set_name(0x00791100, "CWorldScene__FrustumSet"); @@ -4165,9 +4166,13 @@ static import_symbols() { set_name(0x0079E7C0, "CMap__Initialize"); set_name(0x0079F320, "CMap__Destroy"); set_name(0x0079F820, "CPassenger__Disable"); + set_name(0x007A0530, "CMap__QueryGroundTypeTerrain"); set_name(0x007A0FE0, "CMapEntity__constructor"); set_name(0x007A4C10, "CMap__TestQueryAdd"); set_name(0x007A5330, "CMap__GetChunkFacets"); + set_name(0x007A5A60, "CMap__GetChunkFacets@2"); + set_name(0x007A5F20, "CMap__GetFacets"); + set_name(0x007A6260, "CMap__GetTriSubchunk"); set_name(0x007A8520, "CMapObj__UpdateMaterials"); set_name(0x007A9BF0, "CMapObj__RenderGroupLightmapTex"); set_name(0x007A9D30, "CMapObj__RenderGroupColorTex"); @@ -4175,7 +4180,9 @@ static import_symbols() { set_name(0x007AC6A0, "CMapObj__ExtRender"); set_name(0x007AC9F0, "CMapObj__IntRender"); set_name(0x007AD020, "CMapObj__PrepareUpdate"); + set_name(0x007AD3B0, "CMap__GetHeightTerrain"); set_name(0x007AE030, "CMapObj__Delete"); + set_name(0x007AE110, "CMapObj__AsyncFailedCallback"); set_name(0x007AE1A0, "CMapObj__ReadGroup"); set_name(0x007AE1C0, "CMapObj__WaitLoad"); set_name(0x007AE300, "CMapObj__Init"); @@ -4216,15 +4223,24 @@ static import_symbols() { set_name(0x007B1270, "CDetailDoodad__UpdateAlphaRampTexture"); set_name(0x007B15D0, "CDetailDoodad__InitializeShaderConstants"); set_name(0x007B2760, "CDetailDoodad__Initialize"); + set_name(0x007B2A80, "CDetailDoodad__UpdatePools"); set_name(0x007B2D30, "CDetailDoodad__InitializeRenderState"); + set_name(0x007B3960, "CDetailDoodad__FreeInst"); set_name(0x007B3DE0, "CMapObjDefGroup__constructor"); set_name(0x007B4350, "CMapObjDef__constructor"); + set_name(0x007B4DF0, "CMap__UpdateArea"); set_name(0x007B5020, "TSList__LinkToHead"); + set_name(0x007B5950, "CMap__PreUpdateAreas"); set_name(0x007B6110, "CMap__PrepareMapObjDefs"); + set_name(0x007B6B00, "CMap__PrepareUpdate"); + set_name(0x007BA340, "CMapRenderChunk__Initialize"); + set_name(0x007BA600, "CMapRenderChunk__UpdatePools"); set_name(0x007BD3A0, "CShadowQuery__Initialize"); set_name(0x007BD9F0, "CMap__Preload"); set_name(0x007BF8B0, "CMap__LoadWdt"); set_name(0x007BFCE0, "CMap__Load"); + set_name(0x007BFE40, "CMap__AllocRawAreaData"); + set_name(0x007BFE60, "CMap__FreeRawAreaData"); set_name(0x007BFF20, "CMap__AllocMapObj"); set_name(0x007BFF70, "CMap__FreeMapObj"); set_name(0x007BFFE0, "CMap__AllocMapObjGroup"); @@ -4235,20 +4251,46 @@ static import_symbols() { set_name(0x007C02D0, "CMap__FreeEntity"); set_name(0x007C0370, "CMap__FreeMapObjDefGroup"); set_name(0x007C03E0, "CMap__AllocMapObjDef"); + set_name(0x007C04A0, "CMap__FreeChunkLiquid"); set_name(0x007C0670, "CMap__AllocEntity"); set_name(0x007C07C0, "CMap__AllocArea"); set_name(0x007C08A0, "CMap__AllocLight"); set_name(0x007C0910, "CMap__AllocMapObjDefGroup"); + set_name(0x007C0980, "CMap__AllocChunkLiquid"); set_name(0x007C09F0, "CMap__FreeBaseObjLink"); set_name(0x007C1150, "CMapDoodadDef__SelectLights"); set_name(0x007C1730, "CMapEntity__SelectLights"); + set_name(0x007C1FF0, "CMap__LinkObjectToMapObjDefGroup"); set_name(0x007C21E0, "CMapDoodadDef__constructor"); + set_name(0x007C3020, "CMapDoodadDef__Purge"); + set_name(0x007C3250, "CMapObjDef__Purge"); + set_name(0x007C3370, "CMapChunk__Purge"); + set_name(0x007C35D0, "CMapArea__PurgeChunk"); + set_name(0x007C35F0, "CMapArea__PurgeXXX"); + set_name(0x007C3700, "CMap__PurgeArea"); + set_name(0x007C3730, "CMap__Purge"); + set_name(0x007C3A10, "CMapChunk__ProcessIffChunks"); + set_name(0x007C3B60, "CMapChunk__CreateIndices"); + set_name(0x007C3C60, "CMapChunk__initVerts"); set_name(0x007C3D90, "CMapChunk__Initialize"); + set_name(0x007C3F30, "CMapChunk__CreateVerticesWorld"); + set_name(0x007C4620, "CMapChunk__CreateVerticesWorld@2"); + set_name(0x007C4960, "CMapChunk__CreateVerticesLocal"); + set_name(0x007C4F10, "CMapChunk__CreateVerticesLocal@2"); + set_name(0x007C51B0, "CMapChunk__CreateIndices@2"); + set_name(0x007C5220, "CMapChunk__CreateBounds"); + set_name(0x007C54C0, "CMapChunk__CreateVertices"); + set_name(0x007C5690, "CMapChunk__CreateLiquids"); + set_name(0x007C6060, "CMapChunk__CreateSoundEmitters"); + set_name(0x007C6150, "CMapChunk__CreateRefs"); + set_name(0x007C64B0, "CMapChunk__Create"); set_name(0x007C65A0, "CMapChunk__UpdateLights"); + set_name(0x007C75E0, "CMapObjGroup__AsyncFailedCallback"); set_name(0x007C7AE0, "CMapObjGroup__GetTrisFromQuery"); set_name(0x007C7F10, "CMapObjGroup__InitPtrs"); set_name(0x007C7FE0, "CMapObjGroup__QueryLighting"); set_name(0x007C8360, "CMapObjGroup__QueryLiquid"); + set_name(0x007C8BF0, "CMapObjGroup__GetNumSharedTiles"); set_name(0x007C8C60, "CMapObjGroup__GenLiquidVerts"); set_name(0x007C8D80, "CMapObjGroup__IdentifyLegacyLiquidType"); set_name(0x007C8DD0, "CMapObjGroup__VectorIntersectLiquidTiles"); @@ -4269,8 +4311,20 @@ static import_symbols() { set_name(0x007CB9D0, "CMapObjGroup__Destroy"); set_name(0x007CBE80, "CMapObjGroup__Clear"); set_name(0x007CC310, "CMap__LoadWdl"); + set_name(0x007CDE10, "CChunkLiquid__Purge"); + set_name(0x007D02C0, "CMapRenderChunk__RenderPrepBufs"); + set_name(0x007D0420, "CMapRenderChunk__UseStreamingBufs"); + set_name(0x007D3390, "CMapChunk__CreateDetailDoodads"); + set_name(0x007D3FE0, "CMapChunk__CreateDetailDoodadInst"); set_name(0x007D59B0, "CMap__LocateViewerMapObjs"); + set_name(0x007D6980, "CMap__LoadTerrainTexture"); + set_name(0x007D6A90, "CMapArea__PurgeChunks"); + set_name(0x007D6B30, "CMapArea__PrepareChunk"); + set_name(0x007D6BF0, "CMapArea__Update"); + set_name(0x007D6EF0, "CMapArea__Create"); + set_name(0x007D7020, "CMapArea__AsyncLoadCallback"); set_name(0x007D7050, "CMapArea__constructor"); + set_name(0x007D7150, "CMapArea__Load"); set_name(0x007D7260, "CMapBaseObj__constructor"); set_name(0x007D72D0, "CMapObj__CreateMaterials"); set_name(0x007D7310, "CMapObjGroup__GetLegacyLiquidId"); @@ -4287,6 +4341,11 @@ static import_symbols() { set_name(0x007D82E0, "CMapObjGroup__Create"); set_name(0x007D8570, "CMapObjGroup__AsyncPostloadCallback"); set_name(0x007D85E0, "CMapObj__ReadGroup@2"); + set_name(0x007D8730, "CMapChunk__Intersect"); + set_name(0x007D8840, "CMapChunk__Intersect@2"); + set_name(0x007D8E00, "CMapChunk__Intersect@3"); + set_name(0x007D9A20, "CMap__LoadArea"); + set_name(0x007D9A70, "CMap__PrepareArea"); set_name(0x007D9B10, "CMapLight__constructor"); set_name(0x007D9BD0, "CMap__CreateLight"); set_name(0x007D9C80, "CMap__UpdateLightBounds"); @@ -4452,6 +4511,7 @@ static import_symbols() { set_name(0x0081C840, "CM2Cache__LinkToSharedUpdateList"); set_name(0x0081C900, "CM2Cache__constructor"); set_name(0x0081C9C0, "CM2Scene__AdvanceTime"); + set_name(0x0081CAB0, "CM2Scene__PurgeModelCache"); set_name(0x0081CE70, "CM2Scene__AnimateThread"); set_name(0x0081E400, "CM2Scene__SelectLights"); set_name(0x0081EA90, "CM2Scene__SortDoodadProxy"); @@ -4908,6 +4968,7 @@ static import_symbols() { set_name(0x00982460, "C4Quaternion__Slerp"); set_name(0x00982630, "C4Quaternion__Nlerp"); set_name(0x00982970, "C3Vector__constructor"); + set_name(0x00983D70, "CFrustum__Cull"); set_name(0x00984C90, "C4Vector__constructor"); set_name(0x009858B0, "Script_PlaySound"); set_name(0x00985950, "Script_PlayMusic"); @@ -5137,6 +5198,7 @@ static import_symbols() { set_name(0x00A2F9E4, "CGxDeviceD3d__s_colorArgs"); set_name(0x00A2FA14, "CGxDeviceD3d__s_cmpFunc"); set_name(0x00A2FA24, "CGxDeviceD3d__s_cullMode"); + set_name(0x00A3FAF0, "CMap__s_holeMask"); set_name(0x00AB6350, "g_startup_StringsDB"); set_name(0x00AB90AC, "System_File__Stacked__s_manager"); set_name(0x00AB912C, "System_File__read_func"); @@ -5794,6 +5856,7 @@ static import_symbols() { set_name(0x00CE05D0, "CMap__wdtFilename"); set_name(0x00CE06D0, "CMap__mapName"); set_name(0x00CE07D0, "CMap__mapPath"); + set_name(0x00CE48D0, "CMap__m_areaTable"); set_name(0x00CF08F0, "CMap__bActive"); set_name(0x00CF08F4, "CMap__bDungeon"); set_name(0x00CFBEC4, "CMapObjRenderGroupExterior_ptr"); @@ -5816,6 +5879,7 @@ static import_symbols() { set_name(0x00D2542C, "CMap__mapObjDefHeap"); set_name(0x00D25430, "CMap__chunkLiquidHeap"); set_name(0x00D25488, "CMapChunk__s_geoToTex"); + set_name(0x00D25498, "CMapChunk__m_vertexListXY"); set_name(0x00D3F778, "FrameScript_Object__s_objectType"); set_name(0x00D3F798, "s_scriptProfileEnabled"); set_name(0x00D4139C, "CGGameUI__m_luaTainted"); diff --git a/profile/3.3.5a-windows-386/symbol/main.sym b/profile/3.3.5a-windows-386/symbol/main.sym index 164ded2..4517cfb 100644 --- a/profile/3.3.5a-windows-386/symbol/main.sym +++ b/profile/3.3.5a-windows-386/symbol/main.sym @@ -4142,6 +4142,7 @@ World__Initialize 00780F50 f end=0078142F World__LoadMap 00781430 f end=007814F2 World__Preload 00781500 f end=007815B7 DayNight__Update 007816F0 f end=007819BC ; DayNight::Update(unsigned int, float, float) +World__PrepareUpdate 007831A0 f end=007834FE AreaListRegisterLocation 0078F020 f end=0078F1EC CWorldScene__FrustumXform 0078FB00 f end=0078FB20 CWorldScene__FrustumSet 00791100 f end=00791120 @@ -4161,9 +4162,13 @@ Particulate__constructor 0079E100 f end=0079E191 CMap__Initialize 0079E7C0 f end=0079EFD4 CMap__Destroy 0079F320 f end=0079F646 CPassenger__Disable 0079F820 f end=0079F858 +CMap__QueryGroundTypeTerrain 007A0530 f end=007A0699 CMapEntity__constructor 007A0FE0 f end=007A1098 CMap__TestQueryAdd 007A4C10 f end=007A4EDD CMap__GetChunkFacets 007A5330 f end=007A55DC +CMap__GetChunkFacets 007A5A60 f end=007A5DC8 +CMap__GetFacets 007A5F20 f end=007A6136 +CMap__GetTriSubchunk 007A6260 f end=007A6623 CMapObj__UpdateMaterials 007A8520 f end=007A85D1 CMapObj__RenderGroupLightmapTex 007A9BF0 f end=007A9D21 CMapObj__RenderGroupColorTex 007A9D30 f end=007A9ECF @@ -4171,7 +4176,9 @@ CMapObj__RenderGroup 007ABF50 f end=007AC059 CMapObj__ExtRender 007AC6A0 f end=007AC9EF CMapObj__IntRender 007AC9F0 f end=007AD015 CMapObj__PrepareUpdate 007AD020 f end=007AD1EC +CMap__GetHeightTerrain 007AD3B0 f end=007AD6F1 CMapObj__Delete 007AE030 f end=007AE050 +CMapObj__AsyncFailedCallback 007AE110 f end=007AE138 CMapObj__ReadGroup 007AE1A0 f end=007AE1B2 CMapObj__WaitLoad 007AE1C0 f end=007AE1E5 CMapObj__Init 007AE300 f end=007AE3A6 ; CMapObj::Init() @@ -4212,15 +4219,24 @@ 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() CDetailDoodad__Initialize 007B2760 f end=007B29AA ; CDetailDoodad::Initialize() +CDetailDoodad__UpdatePools 007B2A80 f end=007B2C92 CDetailDoodad__InitializeRenderState 007B2D30 f end=007B304E ; CDetailDoodad::InitializeRenderState() +CDetailDoodad__FreeInst 007B3960 f end=007B3987 CMapObjDefGroup__constructor 007B3DE0 f end=007B3EFC CMapObjDef__constructor 007B4350 f end=007B44FE +CMap__UpdateArea 007B4DF0 f end=007B4F06 TSList__LinkToHead 007B5020 f end=007B50AB ; 00005410 +CMap__PreUpdateAreas 007B5950 f end=007B5CFF CMap__PrepareMapObjDefs 007B6110 f end=007B64ED +CMap__PrepareUpdate 007B6B00 f end=007B6ECF +CMapRenderChunk__Initialize 007BA340 f end=007BA3C7 +CMapRenderChunk__UpdatePools 007BA600 f end=007BA7B6 CShadowQuery__Initialize 007BD3A0 f end=007BD44D CMap__Preload 007BD9F0 f end=007BDA62 CMap__LoadWdt 007BF8B0 f end=007BFCDC ; CMap::LoadWdt() CMap__Load 007BFCE0 f end=007BFE33 ; public: static void __cdecl CMap::Load(char const *, int) +CMap__AllocRawAreaData 007BFE40 f end=007BFE5A +CMap__FreeRawAreaData 007BFE60 f end=007BFE7A CMap__AllocMapObj 007BFF20 f end=007BFF6B ; CMap::AllocMapObj() CMap__FreeMapObj 007BFF70 f end=007BFFD6 CMap__AllocMapObjGroup 007BFFE0 f end=007C002B @@ -4231,20 +4247,46 @@ CMap__FreeDoodadDef 007C0240 f end=007C02CC CMap__FreeEntity 007C02D0 f end=007C0334 CMap__FreeMapObjDefGroup 007C0370 f end=007C03D4 CMap__AllocMapObjDef 007C03E0 f end=007C042C +CMap__FreeChunkLiquid 007C04A0 f end=007C0500 CMap__AllocEntity 007C0670 f end=007C06D9 CMap__AllocArea 007C07C0 f end=007C0827 CMap__AllocLight 007C08A0 f end=007C0907 ; public: static class CMapLight * __fastcall CMap::AllocLight(void) CMap__AllocMapObjDefGroup 007C0910 f end=007C0977 +CMap__AllocChunkLiquid 007C0980 f end=007C09E6 CMap__FreeBaseObjLink 007C09F0 f end=007C0A8B CMapDoodadDef__SelectLights 007C1150 f end=007C1371 ; CMapDoodadDef::SelectLights(CM2Lighting*) CMapEntity__SelectLights 007C1730 f end=007C1ACA ; CMapEntity::SelectLights(CM2Lighting*) +CMap__LinkObjectToMapObjDefGroup 007C1FF0 f end=007C2035 CMapDoodadDef__constructor 007C21E0 f end=007C234A +CMapDoodadDef__Purge 007C3020 f end=007C30A6 +CMapObjDef__Purge 007C3250 f end=007C332D +CMapChunk__Purge 007C3370 f end=007C35CF +CMapArea__PurgeChunk 007C35D0 f end=007C35EA +CMapArea__PurgeXXX 007C35F0 f end=007C36F2 +CMap__PurgeArea 007C3700 f end=007C372E +CMap__Purge 007C3730 f end=007CC01C +CMapChunk__ProcessIffChunks 007C3A10 f end=007C3B3C +CMapChunk__CreateIndices 007C3B60 f end=007C3C57 +CMapChunk__initVerts 007C3C60 f end=007C3D90 CMapChunk__Initialize 007C3D90 f end=007C3DAD +CMapChunk__CreateVerticesWorld 007C3F30 f end=007C4618 +CMapChunk__CreateVerticesWorld 007C4620 f end=007C495A +CMapChunk__CreateVerticesLocal 007C4960 f end=007C4F0A +CMapChunk__CreateVerticesLocal 007C4F10 f end=007C51AE +CMapChunk__CreateIndices 007C51B0 f end=007C5218 +CMapChunk__CreateBounds 007C5220 f end=007C543B +CMapChunk__CreateVertices 007C54C0 f end=007C552B +CMapChunk__CreateLiquids 007C5690 f end=007C5B1E +CMapChunk__CreateSoundEmitters 007C6060 f end=007C6144 +CMapChunk__CreateRefs 007C6150 f end=007C647D +CMapChunk__Create 007C64B0 f end=007C659D CMapChunk__UpdateLights 007C65A0 f end=007C65FE ; public: void __thiscall CMapChunk::UpdateLights(void) +CMapObjGroup__AsyncFailedCallback 007C75E0 f end=007C7608 CMapObjGroup__GetTrisFromQuery 007C7AE0 f end=007C7F0C CMapObjGroup__InitPtrs 007C7F10 f end=007C7FD8 CMapObjGroup__QueryLighting 007C7FE0 f end=007C8352 CMapObjGroup__QueryLiquid 007C8360 f end=007C8500 +CMapObjGroup__GetNumSharedTiles 007C8BF0 f end=007C8C5E CMapObjGroup__GenLiquidVerts 007C8C60 f end=007C8D73 CMapObjGroup__IdentifyLegacyLiquidType 007C8D80 f end=007C8DCB CMapObjGroup__VectorIntersectLiquidTiles 007C8DD0 f end=007C9106 @@ -4265,8 +4307,20 @@ CMapObjGroup__GetTris 007CB7B0 f end=007CB867 CMapObjGroup__Destroy 007CB9D0 f end=007CB9EE CMapObjGroup__Clear 007CBE80 f end=007CBF3F CMap__LoadWdl 007CC310 f end=007CC761 +CChunkLiquid__Purge 007CDE10 f end=007CDE28 +CMapRenderChunk__RenderPrepBufs 007D02C0 f end=007D0419 +CMapRenderChunk__UseStreamingBufs 007D0420 f end=007D049B +CMapChunk__CreateDetailDoodads 007D3390 f end=007D3E01 +CMapChunk__CreateDetailDoodadInst 007D3FE0 f end=007D4091 CMap__LocateViewerMapObjs 007D59B0 f end=007D5CC9 +CMap__LoadTerrainTexture 007D6980 f end=007D6A8F +CMapArea__PurgeChunks 007D6A90 f end=007D6B2F +CMapArea__PrepareChunk 007D6B30 f end=007D6BEC +CMapArea__Update 007D6BF0 f end=007D6D19 +CMapArea__Create 007D6EF0 f end=007D7015 +CMapArea__AsyncLoadCallback 007D7020 f end=007D7045 CMapArea__constructor 007D7050 f end=007D711F +CMapArea__Load 007D7150 f end=007D71CD CMapBaseObj__constructor 007D7260 f end=007D7293 ; CMapBaseObj::CMapBaseObj() CMapObj__CreateMaterials 007D72D0 f end=007D730C CMapObjGroup__GetLegacyLiquidId 007D7310 f end=007D7361 @@ -4283,6 +4337,11 @@ CMapObjGroup__CreateOccluders 007D81C0 f end=007D82D6 CMapObjGroup__Create 007D82E0 f end=007D856F CMapObjGroup__AsyncPostloadCallback 007D8570 f end=007D85D6 CMapObj__ReadGroup 007D85E0 f end=007D872B +CMapChunk__Intersect 007D8730 f end=007D883E +CMapChunk__Intersect 007D8840 f end=007D8DF6 +CMapChunk__Intersect 007D8E00 f end=007D91E5 +CMap__LoadArea 007D9A20 f end=007D9A6B +CMap__PrepareArea 007D9A70 f end=007D9B0E 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 *) @@ -4448,6 +4507,7 @@ CM2Cache__UpdateShared 0081C790 f end=0081C832 ; CM2Cache::UpdateShared() CM2Cache__LinkToSharedUpdateList 0081C840 f end=0081C862 ; CM2Cache::LinkToSharedUpdateList(CM2Shared*) CM2Cache__constructor 0081C900 f end=0081C988 ; CM2Cache::CM2Cache() CM2Scene__AdvanceTime 0081C9C0 f end=0081CA09 ; CM2Scene::AdvanceTime(unsigned int) +CM2Scene__PurgeModelCache 0081CAB0 f end=0081CABF CM2Scene__AnimateThread 0081CE70 f end=0081CF14 ; CM2Scene::AnimateThread(void*) CM2Scene__SelectLights 0081E400 f end=0081E58F ; CM2Scene::SelectLights(CM2Lighting*) CM2Scene__SortDoodadProxy 0081EA90 f end=0081EACA ; CM2Scene::SortDoodadProxy(unsigned int, unsigned int, void const*) @@ -4904,6 +4964,7 @@ CSplineParticleEmitter__constructor 009820F0 f end=00982148 ; CSplineParticleEmi 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__constructor 00982970 f end=009829AD ; C3Vector::C3Vector(CImVector const&) +CFrustum__Cull 00983D70 f end=00983E61 C4Vector__constructor 00984C90 f end=00984CDC ; C4Vector::C4Vector(CImVector const&) Script_PlaySound 009858B0 f end=0098594B Script_PlayMusic 00985950 f end=009859AA @@ -5133,6 +5194,7 @@ CGxDeviceD3d__s_colorOp 00A2F9CC l type="int32_t[6]" CGxDeviceD3d__s_colorArgs 00A2F9E4 l type="int32_t[6][2]" CGxDeviceD3d__s_cmpFunc 00A2FA14 l type="D3DCMPFUNC[4]" CGxDeviceD3d__s_cullMode 00A2FA24 l type="D3DCULL[3]" +CMap__s_holeMask 00A3FAF0 l g_startup_StringsDB 00AB6350 l type="WowClientDB_Startup_StringsRec" System_File__Stacked__s_manager 00AB90AC l type="Blizzard__File__Filesystem*" System_File__read_func 00AB912C l ; type="int32_t (*)(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" @@ -5790,6 +5852,7 @@ CWorldScene__s_defaultTexture 00CD8618 l CMap__wdtFilename 00CE05D0 l CMap__mapName 00CE06D0 l CMap__mapPath 00CE07D0 l +CMap__m_areaTable 00CE48D0 l CMap__bActive 00CF08F0 l CMap__bDungeon 00CF08F4 l CMapObjRenderGroupExterior_ptr 00CFBEC4 l @@ -5812,6 +5875,7 @@ CMap__mapObjDefGroupHeap 00D25428 l CMap__mapObjDefHeap 00D2542C l CMap__chunkLiquidHeap 00D25430 l CMapChunk__s_geoToTex 00D25488 l +CMapChunk__m_vertexListXY 00D25498 l FrameScript_Object__s_objectType 00D3F778 l s_scriptProfileEnabled 00D3F798 l type="int32_t" CGGameUI__m_luaTainted 00D4139C l diff --git a/profile/3.3.5a-windows-386/x64dbg/game.dd32 b/profile/3.3.5a-windows-386/x64dbg/game.dd32 index 250e28f5c745675e0b88792a8410becd0021b963..3f6ba5ce612a6b3b4e0ce8216a764eb06b5a2a07 100644 GIT binary patch delta 32722 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
ZlCc>~boK+P@a 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