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 e682629..cd21eb6 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 @@ -413,6 +413,7 @@ static import_symbols() { set_name(0x0048A520, "CLayoutFrame__SetDeferredResize"); set_name(0x0048B130, "CLayoutFrame__DestroyLayout"); set_name(0x0048B5F0, "CScriptObject__GetScriptObjectByName"); + set_name(0x0048BD20, "CImVector__Set"); set_name(0x0048C1C0, "CSimpleTexture_SetVertexColor"); set_name(0x0048C3E0, "CSimpleTexture_SetAlpha"); set_name(0x0048D800, "CSimpleFontString_SetFormattedText"); @@ -566,6 +567,7 @@ static import_symbols() { set_name(0x004C3380, "C44Matrix__RotateAroundZ"); set_name(0x004C33C0, "C44Matrix__Rotate"); set_name(0x004C3420, "C3Vector__Normalize"); + set_name(0x004C3460, "C44Matrix__Rotation"); set_name(0x004C3600, "C3Vector__Normalize@2"); set_name(0x004C4B80, "TSGrowableArray_C3Vector__SetCount"); set_name(0x004C4DF0, "C2Vector__C2Vector"); @@ -576,6 +578,8 @@ static import_symbols() { set_name(0x004C51B0, "C33Matrix__operator_assign_C33Matrix"); set_name(0x004C5550, "C33Matrix__Rotation"); set_name(0x004C56D0, "C33Matrix__FromEulerAnglesZYX"); + set_name(0x004C5820, "C33Matrix__Rotation@2"); + set_name(0x004C5940, "C33Matrix__Rotate"); set_name(0x004C5990, "SE2SoundKitProperties__ResetToDefaults"); set_name(0x004C6390, "SE2__StopSound"); set_name(0x004C6A40, "SE2__PlaySoundKit"); @@ -4390,6 +4394,7 @@ static import_symbols() { set_name(0x0077EC80, "World__MapIsDungeon"); set_name(0x0077EC90, "World__SetLoadProgressCallback"); set_name(0x0077EFF0, "World__Render"); + set_name(0x0077F030, "CWorldScene__RenderWeather"); set_name(0x0077F080, "World__QueryMapId"); set_name(0x0077F090, "World__QueryObjectInside"); set_name(0x0077F1B0, "World__QueryMapObjAreaTable"); @@ -4401,6 +4406,7 @@ static import_symbols() { set_name(0x0077FCD0, "World__ObjectIsDrawable"); set_name(0x0077FFB0, "World__ObjectTestConvexVolume"); set_name(0x00780240, "World__ObjectUpdate"); + set_name(0x00780640, "World__GetCamPos"); set_name(0x00780660, "World__SetShadowColor"); set_name(0x00780710, "World__SetDetailDoodadDensity"); set_name(0x00780730, "World__SetDetailDoodadDist"); @@ -4423,6 +4429,44 @@ static import_symbols() { set_name(0x007837F0, "World__Destroy"); set_name(0x00783910, "World__GetFacets"); set_name(0x00783A40, "World__GetFacets@2"); + set_name(0x00783B60, "Weather__GetType"); + set_name(0x00783B90, "Weather__FillInDefaultPrecipTexturePath"); + set_name(0x00784140, "Rain__GetMotionBlurMatrix"); + set_name(0x007842D0, "Rain__RealizePacket"); + set_name(0x007846A0, "Weather__SetType"); + set_name(0x00784850, "Weather__SetStormIntensity"); + set_name(0x00785880, "Snow__InitFlake"); + set_name(0x00785D60, "Snow__UpdatePacket"); + set_name(0x00785EA0, "Sand__InitGrain"); + set_name(0x00786210, "Sand__UpdatePacket"); + set_name(0x00786330, "Mists__CreateMist"); + set_name(0x00786E10, "Mists__Render"); + set_name(0x00787780, "Weather__constructor"); + set_name(0x00787CE0, "Rain__UpdatePackets"); + set_name(0x00788090, "Snow__UpdatePacketsSW"); + set_name(0x00788660, "Sand__UpdatePacketsSW"); + set_name(0x00789110, "Rain__destructor"); + set_name(0x007891B0, "Rain__RenderPatterPacketsSW"); + set_name(0x007898A0, "Rain__RenderDropPacketsSW"); + set_name(0x0078A030, "Rain__RenderPatterPackets"); + set_name(0x0078A640, "Rain__RenderDropPackets"); + set_name(0x0078AE20, "Rain__Render"); + set_name(0x0078AE70, "Snow__destructor"); + set_name(0x0078AEE0, "Snow__RenderPackets"); + set_name(0x0078B370, "Snow__RenderPackets@2"); + set_name(0x0078BA60, "Snow__Render"); + set_name(0x0078BAA0, "Sand__destructor"); + set_name(0x0078BB00, "Sand__RenderPackets"); + set_name(0x0078BEE0, "Sand__RenderPackets@2"); + set_name(0x0078C3E0, "Sand__Render"); + set_name(0x0078C420, "Mists__constructor"); + set_name(0x0078CA50, "Weather__Render"); + set_name(0x0078CA90, "Rain__constructor"); + set_name(0x0078CD30, "Snow__constructor"); + set_name(0x0078CF20, "Sand__constructor"); + set_name(0x0078D0B0, "Weather__Clear"); + set_name(0x0078D170, "Weather__Update"); + set_name(0x0078D540, "Weather__destructor"); set_name(0x0078D610, "CWorldParam__TerrainLOD"); set_name(0x0078D660, "CWorldParam__TerrainShadows"); set_name(0x0078D6B0, "CWorldParam__MaxLights"); @@ -6622,6 +6666,7 @@ static import_symbols() { set_name(0x00CB7220, "s_logsysteminit"); set_name(0x00CB732C, "s_defaultdir_critsect"); set_name(0x00CB7358, "s_critsect@2"); + set_name(0x00CD7544, "World__s_weather"); set_name(0x00CD7548, "World__particulate"); set_name(0x00CD754C, "CWorldScene__s_m2Scene"); set_name(0x00CD7554, "World__shadowModTexture"); diff --git a/profile/3.3.5a-windows-386/include/main.h b/profile/3.3.5a-windows-386/include/main.h index 2085328..e4c5e4d 100644 --- a/profile/3.3.5a-windows-386/include/main.h +++ b/profile/3.3.5a-windows-386/include/main.h @@ -91,6 +91,7 @@ #include "map/CMapDoodadDef.h" #include "map/CMapEntity.h" #include "map/CMapBaseObjLink.h" +#include "map/Weather.h" #include "character/CCharacterComponent.h" diff --git a/profile/3.3.5a-windows-386/include/map/Weather.h b/profile/3.3.5a-windows-386/include/map/Weather.h new file mode 100644 index 0000000..cbc6b24 --- /dev/null +++ b/profile/3.3.5a-windows-386/include/map/Weather.h @@ -0,0 +1,55 @@ +#ifndef WEATHER_H +#define WEATHER_H + +DECLARE_STRUCT(Weather); + +#include "system/types.h" +#include "tempest/vector.h" + +struct Weather +{ + float intensity; + float lastIntensity; + float currStormItensity; + float targetSkyDark; + float startSkyDark; + float currSkyDark; + uint32_t weatherStartMs; + uint32_t weatherStartMs2; + uint32_t weatherType; + uint32_t abrupt; + + float transitionSkyBox; + float transitionSkyBoxNotAbrupt; + float transitionSkyBoxNoWeather; + + CImVector color; + + char texturePath[260]; + + void* RainPtr; + void* SnowPtr; + void* SandPtr; + + void* unkObject; + + int32_t unk_14C; + + void* unk_ptr_150; + void* unk_ptr_154; + + int32_t unk_158; + + void* unk_ptr_15C; + void* unk_ptr_160; + + C3Vector velocity; + C3Vector unkVec; + C3Vector playerPos; + int32_t unk_188; + float facingAngle; + float moveSpeed; + int32_t unk_194; +}; + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/main.sym b/profile/3.3.5a-windows-386/symbol/main.sym index 3040ae3..12beba6 100644 --- a/profile/3.3.5a-windows-386/symbol/main.sym +++ b/profile/3.3.5a-windows-386/symbol/main.sym @@ -1,3 +1,4 @@ + 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__constructor 00401050 f end=0040106E type="CDataStore* __thiscall func(CDataStore* this)" @@ -409,6 +410,7 @@ CLayoutFrame__ClearAllPoints 0048A510 f end=0048A515 ; CLayoutFrame::ClearAllPoi CLayoutFrame__SetDeferredResize 0048A520 f end=0048A5F0 ; CLayoutFrame::SetDeferredResize(int) CLayoutFrame__DestroyLayout 0048B130 f end=0048B23B ; CLayoutFrame::DestroyLayout() CScriptObject__GetScriptObjectByName 0048B5F0 f end=0048B671 +CImVector__Set 0048BD20 f end=0048BDDA CSimpleTexture_SetVertexColor 0048C1C0 f end=0048C23E ; CSimpleTexture_SetVertexColor(lua_State*) CSimpleTexture_SetAlpha 0048C3E0 f end=0048C4B3 ; CSimpleTexture_SetAlpha(lua_State*) CSimpleFontString_SetFormattedText 0048D800 f end=0048D88B type="int32_t __stdcall func(lua_State* L)" @@ -562,6 +564,7 @@ C44Matrix__RotateAroundY 004C3340 f C44Matrix__RotateAroundZ 004C3380 f C44Matrix__Rotate 004C33C0 f C3Vector__Normalize 004C3420 f type="void __thiscall func(C3Vector* this)" +C44Matrix__Rotation 004C3460 f end=004C3593 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)" C2Vector__C2Vector 004C4DF0 f end=004C4E06 @@ -572,6 +575,8 @@ CMath__NormalizeAngle0to2pi 004C5090 f end=004C50B4 C33Matrix__operator_assign_C33Matrix 004C51B0 f C33Matrix__Rotation 004C5550 f end=004C55A2 C33Matrix__FromEulerAnglesZYX 004C56D0 f end=004C581A +C33Matrix__Rotation 004C5820 f end=004C5932 +C33Matrix__Rotate 004C5940 f end=004C5984 SE2SoundKitProperties__ResetToDefaults 004C5990 f end=004C5A18 SE2__StopSound 004C6390 f end=004C6410 SE2__PlaySoundKit 004C6A40 f end=004C713B @@ -4386,6 +4391,7 @@ SBigPowMod 0077C980 f end=0077C9A4 type="void __stdcall func(BigData* a, BigData World__MapIsDungeon 0077EC80 f end=0077EC8B World__SetLoadProgressCallback 0077EC90 f end=0077ECA6 World__Render 0077EFF0 f end=0077F00C +CWorldScene__RenderWeather 0077F030 f end=0077F03B World__QueryMapId 0077F080 f end=0077F086 World__QueryObjectInside 0077F090 f end=0077F0A4 World__QueryMapObjAreaTable 0077F1B0 f end=0077F1D1 @@ -4397,6 +4403,7 @@ CComand_CharacterAmbient 0077F750 f end=0077F7D1 World__ObjectIsDrawable 0077FCD0 f end=0077FD07 World__ObjectTestConvexVolume 0077FFB0 f end=00780122 World__ObjectUpdate 00780240 f end=007804F5 +World__GetCamPos 00780640 f end=00780646 World__SetShadowColor 00780660 f end=0078070D World__SetDetailDoodadDensity 00780710 f end=0078072F World__SetDetailDoodadDist 00780730 f end=00780761 @@ -4419,6 +4426,44 @@ World__PrepareUpdate 007831A0 f end=007834FE World__Destroy 007837F0 f end=007BA834 World__GetFacets 00783910 f end=00783A36 World__GetFacets 00783A40 f end=00783A5E +Weather__GetType 00783B60 f end=00783B8C +Weather__FillInDefaultPrecipTexturePath 00783B90 f end=00783BCE +Rain__GetMotionBlurMatrix 00784140 f end=0078426F +Rain__RealizePacket 007842D0 f end=007843D9 +Weather__SetType 007846A0 f end=0078484C +Weather__SetStormIntensity 00784850 f end=00784A24 +Snow__InitFlake 00785880 f end=00785D55 +Snow__UpdatePacket 00785D60 f end=00785E9F +Sand__InitGrain 00785EA0 f end=0078620E +Sand__UpdatePacket 00786210 f end=00786330 +Mists__CreateMist 00786330 f end=00786559 +Mists__Render 00786E10 f end=00787779 +Weather__constructor 00787780 f end=0078791A +Rain__UpdatePackets 00787CE0 f end=00788090 +Snow__UpdatePacketsSW 00788090 f end=00788657 +Sand__UpdatePacketsSW 00788660 f end=00788927 +Rain__destructor 00789110 f end=007891A8 +Rain__RenderPatterPacketsSW 007891B0 f end=007898A0 +Rain__RenderDropPacketsSW 007898A0 f end=0078A029 +Rain__RenderPatterPackets 0078A030 f end=0078A63F +Rain__RenderDropPackets 0078A640 f end=0078AE1D +Rain__Render 0078AE20 f end=0078AE6A +Snow__destructor 0078AE70 f end=0078AED1 +Snow__RenderPackets 0078AEE0 f end=0078B363 +Snow__RenderPackets 0078B370 f end=0078BA51 +Snow__Render 0078BA60 f end=0078BA9C +Sand__destructor 0078BAA0 f end=0078BAF6 +Sand__RenderPackets 0078BB00 f end=0078BED3 +Sand__RenderPackets 0078BEE0 f end=0078C3D3 +Sand__Render 0078C3E0 f end=0078C41C +Mists__constructor 0078C420 f end=0078C4F8 +Weather__Render 0078CA50 f end=0078CA8C +Rain__constructor 0078CA90 f end=0078CD2A +Snow__constructor 0078CD30 f end=0078CF1F +Sand__constructor 0078CF20 f end=0078D0A8 +Weather__Clear 0078D0B0 f end=0078D12A +Weather__Update 0078D170 f end=0078D53C +Weather__destructor 0078D540 f end=0078D602 CWorldParam__TerrainLOD 0078D610 f end=0078D652 CWorldParam__TerrainShadows 0078D660 f end=0078D6A2 CWorldParam__MaxLights 0078D6B0 f end=0078D6E2 @@ -6618,6 +6663,7 @@ g_opt 00CAE958 l type="STORMOPTIONS" s_logsysteminit 00CB7220 l type="int32_t" s_defaultdir_critsect 00CB732C l type="CRITICAL_SECTION" s_critsect 00CB7358 l type="CRITICAL_SECTION[4]" +World__s_weather 00CD7544 l World__particulate 00CD7548 l CWorldScene__s_m2Scene 00CD754C l World__shadowModTexture 00CD7554 l 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 bd0378b..1f6030a 100644 --- a/profile/3.3.5a-windows-386/symbol/tempest/func.sym +++ b/profile/3.3.5a-windows-386/symbol/tempest/func.sym @@ -46,3 +46,7 @@ CFacet__Set 007912C0 f end=00791378 CFacet__constructor 00983940 f end=0098398F CAaBox__Bounding 00984930 f end=00984C6D CFacet__Set 009838D0 f end=0098393E +CImVector__Set 0048BD20 f end=0048BDDA +C44Matrix__Rotation 004C3460 f end=004C3593 +C33Matrix__Rotation 004C5820 f end=004C5932 +C33Matrix__Rotate 004C5940 f end=004C5984 diff --git a/profile/3.3.5a-windows-386/symbol/weather/func.sym b/profile/3.3.5a-windows-386/symbol/weather/func.sym new file mode 100644 index 0000000..3ed9f75 --- /dev/null +++ b/profile/3.3.5a-windows-386/symbol/weather/func.sym @@ -0,0 +1,38 @@ +Weather__GetType 00783B60 f end=00783B8C +Weather__FillInDefaultPrecipTexturePath 00783B90 f end=00783BCE +Rain__GetMotionBlurMatrix 00784140 f end=0078426F +Rain__RealizePacket 007842D0 f end=007843D9 +Weather__SetType 007846A0 f end=0078484C +Weather__SetStormIntensity 00784850 f end=00784A24 +Snow__InitFlake 00785880 f end=00785D55 +Snow__UpdatePacket 00785D60 f end=00785E9F +Sand__InitGrain 00785EA0 f end=0078620E +Sand__UpdatePacket 00786210 f end=00786330 +Mists__CreateMist 00786330 f end=00786559 +Mists__Render 00786E10 f end=00787779 +Weather__constructor 00787780 f end=0078791A +Rain__UpdatePackets 00787CE0 f end=00788090 +Snow__UpdatePacketsSW 00788090 f end=00788657 +Sand__UpdatePacketsSW 00788660 f end=00788927 +Rain__destructor 00789110 f end=007891A8 +Rain__RenderPatterPacketsSW 007891B0 f end=007898A0 +Rain__RenderDropPacketsSW 007898A0 f end=0078A029 +Rain__RenderPatterPackets 0078A030 f end=0078A63F +Rain__RenderDropPackets 0078A640 f end=0078AE1D +Rain__Render 0078AE20 f end=0078AE6A +Snow__destructor 0078AE70 f end=0078AED1 +Snow__RenderPackets 0078AEE0 f end=0078B363 +Snow__RenderPackets 0078B370 f end=0078BA51 +Snow__Render 0078BA60 f end=0078BA9C +Sand__destructor 0078BAA0 f end=0078BAF6 +Sand__RenderPackets 0078BB00 f end=0078BED3 +Sand__RenderPackets 0078BEE0 f end=0078C3D3 +Sand__Render 0078C3E0 f end=0078C41C +Mists__constructor 0078C420 f end=0078C4F8 +Weather__Render 0078CA50 f end=0078CA8C +Rain__constructor 0078CA90 f end=0078CD2A +Snow__constructor 0078CD30 f end=0078CF1F +Sand__constructor 0078CF20 f end=0078D0A8 +Weather__Clear 0078D0B0 f end=0078D12A +Weather__Update 0078D170 f end=0078D53C +Weather__destructor 0078D540 f end=0078D602 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 200deb1..dc655c9 100644 --- a/profile/3.3.5a-windows-386/symbol/world/func.sym +++ b/profile/3.3.5a-windows-386/symbol/world/func.sym @@ -25,4 +25,4 @@ World__QueryObjectInside 0077F090 f end=0077F0A4 World__QueryMapObjAreaTable 0077F1B0 f end=0077F1D1 World__Update 007815C0 f end=00781604 World__SetFarClip 00780800 f end=0078085F - +World__GetCamPos 00780640 f end=00780646 diff --git a/profile/3.3.5a-windows-386/symbol/world/label.sym b/profile/3.3.5a-windows-386/symbol/world/label.sym index df289bc..8777403 100644 --- a/profile/3.3.5a-windows-386/symbol/world/label.sym +++ b/profile/3.3.5a-windows-386/symbol/world/label.sym @@ -23,3 +23,4 @@ World__detailDoodadDensity 00CD773C l World__shadowModTexture 00CD7554 l World__shadowColor 00CD7878 l World__particulate 00CD7548 l +World__s_weather 00CD7544 l diff --git a/profile/3.3.5a-windows-386/symbol/worldscene/func.sym b/profile/3.3.5a-windows-386/symbol/worldscene/func.sym index cb5077b..4800a1c 100644 --- a/profile/3.3.5a-windows-386/symbol/worldscene/func.sym +++ b/profile/3.3.5a-windows-386/symbol/worldscene/func.sym @@ -32,3 +32,4 @@ CWorldScene__AddDoodadDefs 007998A0 f end=00799977 CWorldScene__CullDoodadsExterior 00799980 f end=00799B62 CWorldScene__CullDoodadsInterior 00799B70 f end=00799D36 CWorldScene__CullMapObjDefGroupFromExterior 007B3A10 f end=007B3B1A +CWorldScene__RenderWeather 0077F030 f end=0077F03B diff --git a/profile/3.3.5a-windows-386/x64dbg/game.dd32 b/profile/3.3.5a-windows-386/x64dbg/game.dd32 index c810ab8..a3d0508 100644 Binary files a/profile/3.3.5a-windows-386/x64dbg/game.dd32 and b/profile/3.3.5a-windows-386/x64dbg/game.dd32 differ diff --git a/profile/3.3.5a-windows-386/x64dbg/types.json b/profile/3.3.5a-windows-386/x64dbg/types.json index aac38a1..68a2869 100644 --- a/profile/3.3.5a-windows-386/x64dbg/types.json +++ b/profile/3.3.5a-windows-386/x64dbg/types.json @@ -33140,6 +33140,173 @@ } ] }, + { + "name": "Weather", + "size": 408, + "members": [ + { + "type": "float", + "name": "intensity", + "offset": 0 + }, + { + "type": "float", + "name": "lastIntensity", + "offset": 4 + }, + { + "type": "float", + "name": "currStormItensity", + "offset": 8 + }, + { + "type": "float", + "name": "targetSkyDark", + "offset": 12 + }, + { + "type": "float", + "name": "startSkyDark", + "offset": 16 + }, + { + "type": "float", + "name": "currSkyDark", + "offset": 20 + }, + { + "type": "uint32_t", + "name": "weatherStartMs", + "offset": 24 + }, + { + "type": "uint32_t", + "name": "weatherStartMs2", + "offset": 28 + }, + { + "type": "uint32_t", + "name": "weatherType", + "offset": 32 + }, + { + "type": "uint32_t", + "name": "abrupt", + "offset": 36 + }, + { + "type": "float", + "name": "transitionSkyBox", + "offset": 40 + }, + { + "type": "float", + "name": "transitionSkyBoxNotAbrupt", + "offset": 44 + }, + { + "type": "float", + "name": "transitionSkyBoxNoWeather", + "offset": 48 + }, + { + "type": "CImVector", + "name": "color", + "offset": 52 + }, + { + "type": "char", + "name": "texturePath", + "arrsize": 260, + "offset": 56 + }, + { + "type": "void*", + "name": "RainPtr", + "offset": 316 + }, + { + "type": "void*", + "name": "SnowPtr", + "offset": 320 + }, + { + "type": "void*", + "name": "SandPtr", + "offset": 324 + }, + { + "type": "void*", + "name": "unkObject", + "offset": 328 + }, + { + "type": "int32_t", + "name": "unk_14C", + "offset": 332 + }, + { + "type": "void*", + "name": "unk_ptr_150", + "offset": 336 + }, + { + "type": "void*", + "name": "unk_ptr_154", + "offset": 340 + }, + { + "type": "int32_t", + "name": "unk_158", + "offset": 344 + }, + { + "type": "void*", + "name": "unk_ptr_15C", + "offset": 348 + }, + { + "type": "void*", + "name": "unk_ptr_160", + "offset": 352 + }, + { + "type": "C3Vector", + "name": "velocity", + "offset": 356 + }, + { + "type": "C3Vector", + "name": "unkVec", + "offset": 368 + }, + { + "type": "C3Vector", + "name": "playerPos", + "offset": 380 + }, + { + "type": "int32_t", + "name": "unk_188", + "offset": 392 + }, + { + "type": "float", + "name": "facingAngle", + "offset": 396 + }, + { + "type": "float", + "name": "moveSpeed", + "offset": 400 + }, + { + "type": "int32_t", + "name": "unk_194", + "offset": 404 + } + ] + }, { "name": "ARGLIST", "size": 16,