Compare commits

...

3 commits

Author SHA1 Message Date
gromchek
4e3971454f chore(build): refresh generated files 2025-11-23 21:48:46 +03:00
gromchek
93fdfe1a79 feat(profile): Weather packet structs 2025-11-23 21:48:19 +03:00
gromchek
18168eeb55 feat(profile): Weather funcs 2025-11-23 21:47:52 +03:00
7 changed files with 1300 additions and 9 deletions

View file

@ -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");

View file

@ -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;

View file

@ -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

View file

@ -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

View file

@ -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

File diff suppressed because it is too large Load diff