mirror of
https://github.com/thunderbrewhq/binana.git
synced 2025-12-12 09:52:28 +00:00
353 lines
No EOL
6.6 KiB
C
353 lines
No EOL
6.6 KiB
C
#ifndef WEATHER_H
|
|
#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
|
|
{
|
|
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];
|
|
|
|
Rain* rain;
|
|
Snow* snow;
|
|
Sand* sand;
|
|
|
|
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 |