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 cd21eb6..b562c96 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 @@ -4431,20 +4431,36 @@ static import_symbols() { set_name(0x00783A40, "World__GetFacets@2"); set_name(0x00783B60, "Weather__GetType"); set_name(0x00783B90, "Weather__FillInDefaultPrecipTexturePath"); + set_name(0x007840B0, "Rain__SetStormIntensity"); set_name(0x00784140, "Rain__GetMotionBlurMatrix"); set_name(0x007842D0, "Rain__RealizePacket"); + set_name(0x007843E0, "Rain__RealizePacket@2"); + set_name(0x007844F0, "Snow__SetStormIntensity"); + set_name(0x00784580, "Sand__SetStormIntensity"); set_name(0x007846A0, "Weather__SetType"); set_name(0x00784850, "Weather__SetStormIntensity"); + set_name(0x00785140, "Rain__InitDrop"); + set_name(0x00785640, "Rain__UpdatePacket"); 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(0x00786920, "Packet__RainDrop__constructor"); + set_name(0x00786990, "Packet__RainPatter__constructor"); set_name(0x00786E10, "Mists__Render"); set_name(0x00787780, "Weather__constructor"); + set_name(0x00787920, "PacketList__Packet__RainDrop__Alloc"); + set_name(0x00787A10, "PacketList__Packet__RainPatter__Alloc"); + set_name(0x00787B00, "PacketList__Packet__SnowFlake__Alloc"); + set_name(0x00787BF0, "PacketList__Packet__SandGrain__Alloc"); set_name(0x00787CE0, "Rain__UpdatePackets"); set_name(0x00788090, "Snow__UpdatePacketsSW"); set_name(0x00788660, "Sand__UpdatePacketsSW"); + set_name(0x00788C10, "PacketList__Packet__RainDrop__destructor"); + set_name(0x00788D50, "PacketList__Packet__RainPatter__destructor"); + set_name(0x00788E90, "PacketList__Packet__SnowFlake__destructor"); + set_name(0x00788FD0, "PacketList__Packet__SandGrain__destructor"); set_name(0x00789110, "Rain__destructor"); set_name(0x007891B0, "Rain__RenderPatterPacketsSW"); set_name(0x007898A0, "Rain__RenderDropPacketsSW"); diff --git a/profile/3.3.5a-windows-386/include/map/Weather.h b/profile/3.3.5a-windows-386/include/map/Weather.h index cbc6b24..13e7ab3 100644 --- a/profile/3.3.5a-windows-386/include/map/Weather.h +++ b/profile/3.3.5a-windows-386/include/map/Weather.h @@ -2,9 +2,307 @@ #define WEATHER_H DECLARE_STRUCT(Weather); +DECLARE_STRUCT(Mists); +DECLARE_STRUCT(Rain); +DECLARE_STRUCT(Snow); +DECLARE_STRUCT(Sand); +DECLARE_STRUCT(PacketList_Packet_RainDrop); +DECLARE_STRUCT(Packet_RainDrop); +DECLARE_STRUCT(RainDropParticle); +DECLARE_STRUCT(RainParticleBuffer); + +DECLARE_STRUCT(PacketList_Packet_RainPatter); +DECLARE_STRUCT(Packet_RainPatter); +DECLARE_STRUCT(RainPatterParticle); +DECLARE_STRUCT(RainPatterParticleBuffer); + +DECLARE_STRUCT(PacketList_Packet_SnowFlake); +DECLARE_STRUCT(Packet_SnowFlake); +DECLARE_STRUCT(SnowFlakeParticle); +DECLARE_STRUCT(SnowFlakeParticleBuffer); + +DECLARE_STRUCT(PacketList_Packet_SandGrain); +DECLARE_STRUCT(Packet_SandGrain); +DECLARE_STRUCT(SandGrainParticle); +DECLARE_STRUCT(SandGrainParticleBuffer); + +#include "tempest/box.h" #include "system/types.h" #include "tempest/vector.h" +#include "texture/texture.h" +#include "gx/shader.h" +#include "gx/buffer.h" + +struct Mists +{ + void** vtable; + C3Vector position; + uint32_t unk_10; + uint32_t unk_14; + uint32_t unk_18; + float scale; + uint32_t unk_20; + float rotationSpeed; + float fadeSpeed; + uint32_t unk_2C; + float opacity; + float lifeTime; + float spawnRate; + uint8_t unk_3C; + uint8_t padding[3]; + CTexture* mistTexture; + uint32_t particleCount; + uint32_t unk_48; + uint32_t unk_4C; + uint32_t unk_50; +}; + +struct SandGrainParticle +{ + C3Vector position; + C3Vector velocity; + float lifetime; + float size; +}; + +struct SandGrainParticleBuffer +{ + uint32_t particleCount; + SandGrainParticle particles[6144]; +}; + +struct Packet_SandGrain +{ + Packet_SandGrain* prev; + Packet_SandGrain* next; + + SandGrainParticleBuffer particlesBuffer; + + uint32_t currParticle; + uint32_t packetStartTick; + uint32_t packetEndTick; + float packetBuildTime; + + uint32_t field_C007; + uint32_t field_C008; + uint32_t field_C009; + + CGxPool* gxPool; + CGxBuf* vertexBufHandle; +}; + +struct PacketList_Packet_SandGrain +{ + int32_t unk_00; + Packet_SandGrain* prev; + Packet_SandGrain* next; + int32_t activePacketsCount; + int32_t freePacketsCount; + int32_t unk_14; + Packet_SandGrain* unk_18; + Packet_SandGrain* unk_1C; +}; + +struct Sand +{ + int32_t useWeatherShaders; + CAaBox bbox; + Mists mists; + + PacketList_Packet_SandGrain sandGrainPacketList; + + Packet_SandGrain* sandGrainPacketPtr; + float unk_94; + CGxShader* shader; + float unk_9C; +}; + +struct SnowFlakeParticle +{ + C3Vector position; + C3Vector velocity; + float lifetime; + float size; +}; + +struct SnowFlakeParticleBuffer +{ + uint32_t particleCount; + SnowFlakeParticle particles[6144]; +}; + +struct Packet_SnowFlake +{ + Packet_SnowFlake* prev; + Packet_SnowFlake* next; + + SnowFlakeParticleBuffer particlesBuffer; + + uint32_t currParticle; + uint32_t packetStartTick; + uint32_t packetEndTick; + float packetBuildTime; + + uint32_t field_C007; + uint32_t field_C008; + uint32_t field_C009; + + CGxPool* gxPool; + CGxBuf* vertexBufHandle; +}; + +struct PacketList_Packet_SnowFlake +{ + int32_t unk_00; + Packet_SnowFlake* prev; + Packet_SnowFlake* next; + int32_t activePacketsCount; + int32_t freePacketsCount; + int32_t unk_14; + Packet_SnowFlake* unk_18; + Packet_SnowFlake* unk_1C; +}; + +struct Snow +{ + int32_t useWeatherShaders; + CAaBox bbox; + Mists mists; + + //PacketList_Packet_SnowFlake snowFlakePacketList; + int32_t unk_70; + void* unk_74; + void* unk_78; + int32_t activePacketsCount; + int32_t freePacketsCount; + int32_t unk_84; + void* unk_88; + void* unk_8C; + //end + + Packet_SnowFlake* snowFlakePacketPtr; + float unk_94; + CTexture* snowFlakeTex; + CGxShader* shaderPtr; + int32_t unk_A0; + int32_t unk_A4; +}; + +struct RainPatterParticle +{ + C3Vector position; + float lifetime; + float size; + float unk; +}; + +struct RainPatterParticleBuffer +{ + uint32_t particleCount; + RainPatterParticle particles[6144]; +}; + +struct Packet_RainPatter +{ + Packet_RainPatter* prev; + Packet_RainPatter* next; + + RainPatterParticleBuffer particlesBuffer; + + uint32_t currParticle; + uint32_t packetStartTick; + uint32_t packetEndTick; + float packetBuildTime; + + uint32_t field_9007; + uint32_t field_9008; + uint32_t field_9009; + + CGxPool* gxPool; + CGxBuf* vertexBufHandle; +}; + +struct PacketList_Packet_RainPatter +{ + int32_t unk_00; + Packet_RainPatter* prev; + Packet_RainPatter* next; + int32_t activePacketsCount; + int32_t freePacketsCount; + int32_t unk_14; + Packet_RainPatter* unk_18; + Packet_RainPatter* unk_1C; +}; + +struct RainDropParticle +{ + C3Vector position; + C3Vector velocity; + CImVector color; + float size; + float unk; +}; + +struct RainParticleBuffer +{ + uint32_t particleCount; + RainDropParticle particles[6144]; +}; + +struct Packet_RainDrop +{ + Packet_RainDrop* prev; + Packet_RainDrop* next; + + RainParticleBuffer particlesBuffer; + + uint32_t currParticle; + uint32_t packetStartTick; + uint32_t packetEndTick; + float packetBuildTime; + + uint32_t field_D807; + uint32_t field_D808; + uint32_t field_D809; + + CGxPool* gxPool; + CGxBuf* vertexBufHandle; +}; + +struct PacketList_Packet_RainDrop +{ + int32_t unk_00; + Packet_RainDrop* prev; + Packet_RainDrop* next; + int32_t activePacketsCount; + int32_t freePacketsCount; + int32_t unk_14; + Packet_RainDrop* unk_18; + Packet_RainDrop* unk_1C; +}; + +struct Rain +{ + int32_t useWeatherShaders; + CAaBox bbox; + Mists mists; + + PacketList_Packet_RainDrop rainDropPacketList; + PacketList_Packet_RainPatter rainPatterPacketList; + + Packet_RainDrop* rainDropPacketPtr; + float unk_B4; // particle lifetime? + Packet_RainPatter* rainPatterPacketPtr; + + CTexture* rainDropTex; + CGxShader* shaderRain; + CTexture* rainDropSplashTex; + CGxShader* shaderPatter; + + float particlesPerFrame; + float intensity; +}; struct Weather { @@ -27,9 +325,9 @@ struct Weather char texturePath[260]; - void* RainPtr; - void* SnowPtr; - void* SandPtr; + Rain* rain; + Snow* snow; + Sand* sand; void* unkObject; diff --git a/profile/3.3.5a-windows-386/symbol/main.sym b/profile/3.3.5a-windows-386/symbol/main.sym index 12beba6..ca48b38 100644 --- a/profile/3.3.5a-windows-386/symbol/main.sym +++ b/profile/3.3.5a-windows-386/symbol/main.sym @@ -4428,20 +4428,36 @@ 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__SetStormIntensity 007840B0 f end=00784133 Rain__GetMotionBlurMatrix 00784140 f end=0078426F Rain__RealizePacket 007842D0 f end=007843D9 +Rain__RealizePacket 007843E0 f end=007844ED +Snow__SetStormIntensity 007844F0 f end=00784573 +Sand__SetStormIntensity 00784580 f end=007845E2 Weather__SetType 007846A0 f end=0078484C Weather__SetStormIntensity 00784850 f end=00784A24 +Rain__InitDrop 00785140 f end=00785637 +Rain__UpdatePacket 00785640 f end=00785875 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 +Packet__RainDrop__constructor 00786920 f end=0078698C +Packet__RainPatter__constructor 00786990 f end=00786A1A Mists__Render 00786E10 f end=00787779 Weather__constructor 00787780 f end=0078791A +PacketList__Packet__RainDrop__Alloc 00787920 f end=00787A0F +PacketList__Packet__RainPatter__Alloc 00787A10 f end=00787AFF +PacketList__Packet__SnowFlake__Alloc 00787B00 f end=00787BEF +PacketList__Packet__SandGrain__Alloc 00787BF0 f end=00787CDF Rain__UpdatePackets 00787CE0 f end=00788090 Snow__UpdatePacketsSW 00788090 f end=00788657 Sand__UpdatePacketsSW 00788660 f end=00788927 +PacketList__Packet__RainDrop__destructor 00788C10 f end=00788D44 +PacketList__Packet__RainPatter__destructor 00788D50 f end=00788E84 +PacketList__Packet__SnowFlake__destructor 00788E90 f end=00788FC4 +PacketList__Packet__SandGrain__destructor 00788FD0 f end=00789104 Rain__destructor 00789110 f end=007891A8 Rain__RenderPatterPacketsSW 007891B0 f end=007898A0 Rain__RenderDropPacketsSW 007898A0 f end=0078A029 diff --git a/profile/3.3.5a-windows-386/symbol/packetlist/func.sym b/profile/3.3.5a-windows-386/symbol/packetlist/func.sym new file mode 100644 index 0000000..9dc5aac --- /dev/null +++ b/profile/3.3.5a-windows-386/symbol/packetlist/func.sym @@ -0,0 +1,10 @@ +Packet__RainDrop__constructor 00786920 f end=0078698C +Packet__RainPatter__constructor 00786990 f end=00786A1A +PacketList__Packet__RainDrop__Alloc 00787920 f end=00787A0F +PacketList__Packet__RainPatter__Alloc 00787A10 f end=00787AFF +PacketList__Packet__SnowFlake__Alloc 00787B00 f end=00787BEF +PacketList__Packet__SandGrain__Alloc 00787BF0 f end=00787CDF +PacketList__Packet__RainDrop__destructor 00788C10 f end=00788D44 +PacketList__Packet__RainPatter__destructor 00788D50 f end=00788E84 +PacketList__Packet__SnowFlake__destructor 00788E90 f end=00788FC4 +PacketList__Packet__SandGrain__destructor 00788FD0 f end=00789104 \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/weather/func.sym b/profile/3.3.5a-windows-386/symbol/weather/func.sym index 3ed9f75..f728901 100644 --- a/profile/3.3.5a-windows-386/symbol/weather/func.sym +++ b/profile/3.3.5a-windows-386/symbol/weather/func.sym @@ -36,3 +36,9 @@ Sand__constructor 0078CF20 f end=0078D0A8 Weather__Clear 0078D0B0 f end=0078D12A Weather__Update 0078D170 f end=0078D53C Weather__destructor 0078D540 f end=0078D602 +Rain__SetStormIntensity 007840B0 f end=00784133 +Rain__RealizePacket 007843E0 f end=007844ED +Snow__SetStormIntensity 007844F0 f end=00784573 +Sand__SetStormIntensity 00784580 f end=007845E2 +Rain__InitDrop 00785140 f end=00785637 +Rain__UpdatePacket 00785640 f end=00785875 diff --git a/profile/3.3.5a-windows-386/x64dbg/game.dd32 b/profile/3.3.5a-windows-386/x64dbg/game.dd32 index a3d0508..a5b72d4 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 68a2869..1528f92 100644 --- a/profile/3.3.5a-windows-386/x64dbg/types.json +++ b/profile/3.3.5a-windows-386/x64dbg/types.json @@ -22823,6 +22823,190 @@ } ] }, + { + "name": "PacketList_Packet_RainDrop", + "size": 32, + "members": [ + { + "type": "int32_t", + "name": "unk_00", + "offset": 0 + }, + { + "type": "Packet_RainDrop*", + "name": "prev", + "offset": 4 + }, + { + "type": "Packet_RainDrop*", + "name": "next", + "offset": 8 + }, + { + "type": "int32_t", + "name": "activePacketsCount", + "offset": 12 + }, + { + "type": "int32_t", + "name": "freePacketsCount", + "offset": 16 + }, + { + "type": "int32_t", + "name": "unk_14", + "offset": 20 + }, + { + "type": "Packet_RainDrop*", + "name": "unk_18", + "offset": 24 + }, + { + "type": "Packet_RainDrop*", + "name": "unk_1C", + "offset": 28 + } + ] + }, + { + "name": "PacketList_Packet_RainPatter", + "size": 32, + "members": [ + { + "type": "int32_t", + "name": "unk_00", + "offset": 0 + }, + { + "type": "Packet_RainPatter*", + "name": "prev", + "offset": 4 + }, + { + "type": "Packet_RainPatter*", + "name": "next", + "offset": 8 + }, + { + "type": "int32_t", + "name": "activePacketsCount", + "offset": 12 + }, + { + "type": "int32_t", + "name": "freePacketsCount", + "offset": 16 + }, + { + "type": "int32_t", + "name": "unk_14", + "offset": 20 + }, + { + "type": "Packet_RainPatter*", + "name": "unk_18", + "offset": 24 + }, + { + "type": "Packet_RainPatter*", + "name": "unk_1C", + "offset": 28 + } + ] + }, + { + "name": "PacketList_Packet_SandGrain", + "size": 32, + "members": [ + { + "type": "int32_t", + "name": "unk_00", + "offset": 0 + }, + { + "type": "Packet_SandGrain*", + "name": "prev", + "offset": 4 + }, + { + "type": "Packet_SandGrain*", + "name": "next", + "offset": 8 + }, + { + "type": "int32_t", + "name": "activePacketsCount", + "offset": 12 + }, + { + "type": "int32_t", + "name": "freePacketsCount", + "offset": 16 + }, + { + "type": "int32_t", + "name": "unk_14", + "offset": 20 + }, + { + "type": "Packet_SandGrain*", + "name": "unk_18", + "offset": 24 + }, + { + "type": "Packet_SandGrain*", + "name": "unk_1C", + "offset": 28 + } + ] + }, + { + "name": "PacketList_Packet_SnowFlake", + "size": 32, + "members": [ + { + "type": "int32_t", + "name": "unk_00", + "offset": 0 + }, + { + "type": "Packet_SnowFlake*", + "name": "prev", + "offset": 4 + }, + { + "type": "Packet_SnowFlake*", + "name": "next", + "offset": 8 + }, + { + "type": "int32_t", + "name": "activePacketsCount", + "offset": 12 + }, + { + "type": "int32_t", + "name": "freePacketsCount", + "offset": 16 + }, + { + "type": "int32_t", + "name": "unk_14", + "offset": 20 + }, + { + "type": "Packet_SnowFlake*", + "name": "unk_18", + "offset": 24 + }, + { + "type": "Packet_SnowFlake*", + "name": "unk_1C", + "offset": 28 + } + ] + }, { "name": "PageTextMaterialRec", "size": 8, @@ -32427,6 +32611,191 @@ } ] }, + { + "name": "Mists", + "size": 84, + "members": [ + { + "type": "void**", + "name": "vtable", + "offset": 0 + }, + { + "type": "C3Vector", + "name": "position", + "offset": 4 + }, + { + "type": "uint32_t", + "name": "unk_10", + "offset": 16 + }, + { + "type": "uint32_t", + "name": "unk_14", + "offset": 20 + }, + { + "type": "uint32_t", + "name": "unk_18", + "offset": 24 + }, + { + "type": "float", + "name": "scale", + "offset": 28 + }, + { + "type": "uint32_t", + "name": "unk_20", + "offset": 32 + }, + { + "type": "float", + "name": "rotationSpeed", + "offset": 36 + }, + { + "type": "float", + "name": "fadeSpeed", + "offset": 40 + }, + { + "type": "uint32_t", + "name": "unk_2C", + "offset": 44 + }, + { + "type": "float", + "name": "opacity", + "offset": 48 + }, + { + "type": "float", + "name": "lifeTime", + "offset": 52 + }, + { + "type": "float", + "name": "spawnRate", + "offset": 56 + }, + { + "type": "uint8_t", + "name": "unk_3C", + "offset": 60 + }, + { + "type": "uint8_t", + "name": "padding", + "arrsize": 3, + "offset": 61 + }, + { + "type": "CTexture*", + "name": "mistTexture", + "offset": 64 + }, + { + "type": "uint32_t", + "name": "particleCount", + "offset": 68 + }, + { + "type": "uint32_t", + "name": "unk_48", + "offset": 72 + }, + { + "type": "uint32_t", + "name": "unk_4C", + "offset": 76 + }, + { + "type": "uint32_t", + "name": "unk_50", + "offset": 80 + } + ] + }, + { + "name": "RainPatterParticle", + "size": 24, + "members": [ + { + "type": "C3Vector", + "name": "position", + "offset": 0 + }, + { + "type": "float", + "name": "lifetime", + "offset": 12 + }, + { + "type": "float", + "name": "size", + "offset": 16 + }, + { + "type": "float", + "name": "unk", + "offset": 20 + } + ] + }, + { + "name": "SnowFlakeParticle", + "size": 32, + "members": [ + { + "type": "C3Vector", + "name": "position", + "offset": 0 + }, + { + "type": "C3Vector", + "name": "velocity", + "offset": 12 + }, + { + "type": "float", + "name": "lifetime", + "offset": 24 + }, + { + "type": "float", + "name": "size", + "offset": 28 + } + ] + }, + { + "name": "SandGrainParticle", + "size": 32, + "members": [ + { + "type": "C3Vector", + "name": "position", + "offset": 0 + }, + { + "type": "C3Vector", + "name": "velocity", + "offset": 12 + }, + { + "type": "float", + "name": "lifetime", + "offset": 24 + }, + { + "type": "float", + "name": "size", + "offset": 28 + } + ] + }, { "name": "CGxMatrixStack", "size": 280, @@ -33221,18 +33590,18 @@ "offset": 56 }, { - "type": "void*", - "name": "RainPtr", + "type": "Rain*", + "name": "rain", "offset": 316 }, { - "type": "void*", - "name": "SnowPtr", + "type": "Snow*", + "name": "snow", "offset": 320 }, { - "type": "void*", - "name": "SandPtr", + "type": "Sand*", + "name": "sand", "offset": 324 }, { @@ -33307,6 +33676,37 @@ } ] }, + { + "name": "RainDropParticle", + "size": 36, + "members": [ + { + "type": "C3Vector", + "name": "position", + "offset": 0 + }, + { + "type": "C3Vector", + "name": "velocity", + "offset": 12 + }, + { + "type": "CImVector", + "name": "color", + "offset": 24 + }, + { + "type": "float", + "name": "size", + "offset": 28 + }, + { + "type": "float", + "name": "unk", + "offset": 32 + } + ] + }, { "name": "ARGLIST", "size": 16, @@ -43636,6 +44036,270 @@ } ] }, + { + "name": "Rain", + "size": 212, + "members": [ + { + "type": "int32_t", + "name": "useWeatherShaders", + "offset": 0 + }, + { + "type": "CAaBox", + "name": "bbox", + "offset": 4 + }, + { + "type": "Mists", + "name": "mists", + "offset": 28 + }, + { + "type": "PacketList_Packet_RainDrop", + "name": "rainDropPacketList", + "offset": 112 + }, + { + "type": "PacketList_Packet_RainPatter", + "name": "rainPatterPacketList", + "offset": 144 + }, + { + "type": "Packet_RainDrop*", + "name": "rainDropPacketPtr", + "offset": 176 + }, + { + "type": "float", + "name": "unk_B4", + "offset": 180 + }, + { + "type": "Packet_RainPatter*", + "name": "rainPatterPacketPtr", + "offset": 184 + }, + { + "type": "CTexture*", + "name": "rainDropTex", + "offset": 188 + }, + { + "type": "CGxShader*", + "name": "shaderRain", + "offset": 192 + }, + { + "type": "CTexture*", + "name": "rainDropSplashTex", + "offset": 196 + }, + { + "type": "CGxShader*", + "name": "shaderPatter", + "offset": 200 + }, + { + "type": "float", + "name": "particlesPerFrame", + "offset": 204 + }, + { + "type": "float", + "name": "intensity", + "offset": 208 + } + ] + }, + { + "name": "Snow", + "size": 168, + "members": [ + { + "type": "int32_t", + "name": "useWeatherShaders", + "offset": 0 + }, + { + "type": "CAaBox", + "name": "bbox", + "offset": 4 + }, + { + "type": "Mists", + "name": "mists", + "offset": 28 + }, + { + "type": "int32_t", + "name": "unk_70", + "offset": 112 + }, + { + "type": "void*", + "name": "unk_74", + "offset": 116 + }, + { + "type": "void*", + "name": "unk_78", + "offset": 120 + }, + { + "type": "int32_t", + "name": "activePacketsCount", + "offset": 124 + }, + { + "type": "int32_t", + "name": "freePacketsCount", + "offset": 128 + }, + { + "type": "int32_t", + "name": "unk_84", + "offset": 132 + }, + { + "type": "void*", + "name": "unk_88", + "offset": 136 + }, + { + "type": "void*", + "name": "unk_8C", + "offset": 140 + }, + { + "type": "Packet_SnowFlake*", + "name": "snowFlakePacketPtr", + "offset": 144 + }, + { + "type": "float", + "name": "unk_94", + "offset": 148 + }, + { + "type": "CTexture*", + "name": "snowFlakeTex", + "offset": 152 + }, + { + "type": "CGxShader*", + "name": "shaderPtr", + "offset": 156 + }, + { + "type": "int32_t", + "name": "unk_A0", + "offset": 160 + }, + { + "type": "int32_t", + "name": "unk_A4", + "offset": 164 + } + ] + }, + { + "name": "Sand", + "size": 160, + "members": [ + { + "type": "int32_t", + "name": "useWeatherShaders", + "offset": 0 + }, + { + "type": "CAaBox", + "name": "bbox", + "offset": 4 + }, + { + "type": "Mists", + "name": "mists", + "offset": 28 + }, + { + "type": "PacketList_Packet_SandGrain", + "name": "sandGrainPacketList", + "offset": 112 + }, + { + "type": "Packet_SandGrain*", + "name": "sandGrainPacketPtr", + "offset": 144 + }, + { + "type": "float", + "name": "unk_94", + "offset": 148 + }, + { + "type": "CGxShader*", + "name": "shader", + "offset": 152 + }, + { + "type": "float", + "name": "unk_9C", + "offset": 156 + } + ] + }, + { + "name": "RainPatterParticleBuffer", + "size": 147460, + "members": [ + { + "type": "uint32_t", + "name": "particleCount", + "offset": 0 + }, + { + "type": "RainPatterParticle", + "name": "particles", + "arrsize": 6144, + "offset": 4 + } + ] + }, + { + "name": "SnowFlakeParticleBuffer", + "size": 196612, + "members": [ + { + "type": "uint32_t", + "name": "particleCount", + "offset": 0 + }, + { + "type": "SnowFlakeParticle", + "name": "particles", + "arrsize": 6144, + "offset": 4 + } + ] + }, + { + "name": "SandGrainParticleBuffer", + "size": 196612, + "members": [ + { + "type": "uint32_t", + "name": "particleCount", + "offset": 0 + }, + { + "type": "SandGrainParticle", + "name": "particles", + "arrsize": 6144, + "offset": 4 + } + ] + }, { "name": "M2ModelBone", "size": 164, @@ -43744,6 +44408,23 @@ } ] }, + { + "name": "RainParticleBuffer", + "size": 221188, + "members": [ + { + "type": "uint32_t", + "name": "particleCount", + "offset": 0 + }, + { + "type": "RainDropParticle", + "name": "particles", + "arrsize": 6144, + "offset": 4 + } + ] + }, { "name": "EvtTimer", "size": 56, @@ -51034,6 +51715,270 @@ } ] }, + { + "name": "Packet_RainPatter", + "size": 147504, + "members": [ + { + "type": "Packet_RainPatter*", + "name": "prev", + "offset": 0 + }, + { + "type": "Packet_RainPatter*", + "name": "next", + "offset": 4 + }, + { + "type": "RainPatterParticleBuffer", + "name": "particlesBuffer", + "offset": 8 + }, + { + "type": "uint32_t", + "name": "currParticle", + "offset": 147468 + }, + { + "type": "uint32_t", + "name": "packetStartTick", + "offset": 147472 + }, + { + "type": "uint32_t", + "name": "packetEndTick", + "offset": 147476 + }, + { + "type": "float", + "name": "packetBuildTime", + "offset": 147480 + }, + { + "type": "uint32_t", + "name": "field_9007", + "offset": 147484 + }, + { + "type": "uint32_t", + "name": "field_9008", + "offset": 147488 + }, + { + "type": "uint32_t", + "name": "field_9009", + "offset": 147492 + }, + { + "type": "CGxPool*", + "name": "gxPool", + "offset": 147496 + }, + { + "type": "CGxBuf*", + "name": "vertexBufHandle", + "offset": 147500 + } + ] + }, + { + "name": "Packet_SnowFlake", + "size": 196656, + "members": [ + { + "type": "Packet_SnowFlake*", + "name": "prev", + "offset": 0 + }, + { + "type": "Packet_SnowFlake*", + "name": "next", + "offset": 4 + }, + { + "type": "SnowFlakeParticleBuffer", + "name": "particlesBuffer", + "offset": 8 + }, + { + "type": "uint32_t", + "name": "currParticle", + "offset": 196620 + }, + { + "type": "uint32_t", + "name": "packetStartTick", + "offset": 196624 + }, + { + "type": "uint32_t", + "name": "packetEndTick", + "offset": 196628 + }, + { + "type": "float", + "name": "packetBuildTime", + "offset": 196632 + }, + { + "type": "uint32_t", + "name": "field_C007", + "offset": 196636 + }, + { + "type": "uint32_t", + "name": "field_C008", + "offset": 196640 + }, + { + "type": "uint32_t", + "name": "field_C009", + "offset": 196644 + }, + { + "type": "CGxPool*", + "name": "gxPool", + "offset": 196648 + }, + { + "type": "CGxBuf*", + "name": "vertexBufHandle", + "offset": 196652 + } + ] + }, + { + "name": "Packet_SandGrain", + "size": 196656, + "members": [ + { + "type": "Packet_SandGrain*", + "name": "prev", + "offset": 0 + }, + { + "type": "Packet_SandGrain*", + "name": "next", + "offset": 4 + }, + { + "type": "SandGrainParticleBuffer", + "name": "particlesBuffer", + "offset": 8 + }, + { + "type": "uint32_t", + "name": "currParticle", + "offset": 196620 + }, + { + "type": "uint32_t", + "name": "packetStartTick", + "offset": 196624 + }, + { + "type": "uint32_t", + "name": "packetEndTick", + "offset": 196628 + }, + { + "type": "float", + "name": "packetBuildTime", + "offset": 196632 + }, + { + "type": "uint32_t", + "name": "field_C007", + "offset": 196636 + }, + { + "type": "uint32_t", + "name": "field_C008", + "offset": 196640 + }, + { + "type": "uint32_t", + "name": "field_C009", + "offset": 196644 + }, + { + "type": "CGxPool*", + "name": "gxPool", + "offset": 196648 + }, + { + "type": "CGxBuf*", + "name": "vertexBufHandle", + "offset": 196652 + } + ] + }, + { + "name": "Packet_RainDrop", + "size": 221232, + "members": [ + { + "type": "Packet_RainDrop*", + "name": "prev", + "offset": 0 + }, + { + "type": "Packet_RainDrop*", + "name": "next", + "offset": 4 + }, + { + "type": "RainParticleBuffer", + "name": "particlesBuffer", + "offset": 8 + }, + { + "type": "uint32_t", + "name": "currParticle", + "offset": 221196 + }, + { + "type": "uint32_t", + "name": "packetStartTick", + "offset": 221200 + }, + { + "type": "uint32_t", + "name": "packetEndTick", + "offset": 221204 + }, + { + "type": "float", + "name": "packetBuildTime", + "offset": 221208 + }, + { + "type": "uint32_t", + "name": "field_D807", + "offset": 221212 + }, + { + "type": "uint32_t", + "name": "field_D808", + "offset": 221216 + }, + { + "type": "uint32_t", + "name": "field_D809", + "offset": 221220 + }, + { + "type": "CGxPool*", + "name": "gxPool", + "offset": 221224 + }, + { + "type": "CGxBuf*", + "name": "vertexBufHandle", + "offset": 221228 + } + ] + }, { "name": "EvtThread", "size": 44,