mirror of
https://github.com/pret/pokeplatinum.git
synced 2024-11-23 13:59:53 +00:00
General cleanup and naming fields
This commit is contained in:
parent
327e781f54
commit
342bf9230b
@ -61,17 +61,19 @@ typedef struct SPLEmitter {
|
|||||||
u32 emissionInterval : 8; // number of frames between particle emissions
|
u32 emissionInterval : 8; // number of frames between particle emissions
|
||||||
u32 baseAlpha : 8;
|
u32 baseAlpha : 8;
|
||||||
u32 updateCycle : 3; // 0 = every frame, 1 = cycle A, 2 = cycle B, cycles A and B alternate
|
u32 updateCycle : 3; // 0 = every frame, 1 = cycle A, 2 = cycle B, cycles A and B alternate
|
||||||
u32 unk_02_3 : 13;
|
u32 reserved : 13;
|
||||||
} misc;
|
} misc;
|
||||||
VecFx16 crossAxis1;
|
VecFx16 crossAxis1;
|
||||||
VecFx16 crossAxis2;
|
VecFx16 crossAxis2;
|
||||||
SPLEmitterUpdateCallback updateCallback;
|
SPLEmitterUpdateCallback updateCallback;
|
||||||
void * unk_104;
|
|
||||||
|
// Fields that the game can use for custom data
|
||||||
|
void *userDataPtr;
|
||||||
union {
|
union {
|
||||||
u32 unk_108_val1;
|
u32 u32;
|
||||||
u16 unk_108_val2[2];
|
u16 u16[2];
|
||||||
u8 unk_108_val3[4];
|
u8 u8[4];
|
||||||
} unk_108;
|
} userData;
|
||||||
} SPLEmitter;
|
} SPLEmitter;
|
||||||
|
|
||||||
typedef struct SPLEmitterList {
|
typedef struct SPLEmitterList {
|
||||||
|
@ -124,18 +124,18 @@ typedef struct SPLResourceHeader {
|
|||||||
SPLResourceFlags flags;
|
SPLResourceFlags flags;
|
||||||
VecFx32 emitterBasePos;
|
VecFx32 emitterBasePos;
|
||||||
fx32 emissionCount; // Number of particles to emit per emission interval
|
fx32 emissionCount; // Number of particles to emit per emission interval
|
||||||
fx32 unk_14;
|
fx32 radius; // Used for circle, sphere, and cylinder emissions
|
||||||
fx32 unk_18;
|
fx32 length; // Used for cylinder emission
|
||||||
VecFx16 unk_1C;
|
VecFx16 axis;
|
||||||
GXRgb color;
|
GXRgb color;
|
||||||
fx32 unk_24;
|
fx32 initVelPosAmplifier;
|
||||||
fx32 unk_28;
|
fx32 initVelAxisAmplifier;
|
||||||
fx32 unk_2C;
|
fx32 baseScale;
|
||||||
fx16 aspectRatio;
|
fx16 aspectRatio;
|
||||||
u16 startDelay; // Delay, in frames, before the emitter starts emitting particles
|
u16 startDelay; // Delay, in frames, before the emitter starts emitting particles
|
||||||
s16 minRotation;
|
s16 minRotation;
|
||||||
s16 maxRotation;
|
s16 maxRotation;
|
||||||
u16 unk_38;
|
u16 initAngle;
|
||||||
u16 reserved_3A;
|
u16 reserved_3A;
|
||||||
u16 emitterLifeTime;
|
u16 emitterLifeTime;
|
||||||
u16 particleLifeTime;
|
u16 particleLifeTime;
|
||||||
@ -151,18 +151,18 @@ typedef struct SPLResourceHeader {
|
|||||||
} randomAttenuation;
|
} randomAttenuation;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
u32 unk_00_0 : 8;
|
u32 emissionInterval : 8;
|
||||||
u32 unk_01_0 : 8;
|
u32 baseAlpha : 8;
|
||||||
u32 airResistance : 8;
|
u32 airResistance : 8;
|
||||||
u32 textureIndex : 8;
|
u32 textureIndex : 8;
|
||||||
u32 loopFrames : 8;
|
u32 loopFrames : 8;
|
||||||
u32 unk_05_0 : 16;
|
u32 unk_05_0 : 16;
|
||||||
u32 unk_07_0 : 2;
|
u32 textureTileCountS : 2; // Number of times to tile the texture in the S direction
|
||||||
u32 unk_07_2 : 2;
|
u32 textureTileCountT : 2; // Number of times to tile the texture in the T direction
|
||||||
u32 scaleAnimDir : 3; // Maps to SPLScaleAnimDir
|
u32 scaleAnimDir : 3; // Maps to SPLScaleAnimDir
|
||||||
u32 unk_07_7 : 1;
|
u32 unk_07_7 : 1;
|
||||||
u32 unk_08_0 : 1;
|
u32 flipTextureS : 1;
|
||||||
u32 unk_08_1 : 1;
|
u32 flipTextureT : 1;
|
||||||
u32 unk_08_2 : 3;
|
u32 unk_08_2 : 3;
|
||||||
u32 unk_08_5 : 27;
|
u32 unk_08_5 : 27;
|
||||||
} misc;
|
} misc;
|
||||||
@ -242,10 +242,10 @@ typedef struct SPLChildResource {
|
|||||||
u32 emissionDelay : 8; // Delay, as a fraction of the particle's lifetime, before the particle starts emitting
|
u32 emissionDelay : 8; // Delay, as a fraction of the particle's lifetime, before the particle starts emitting
|
||||||
u32 emissionInterval : 8;
|
u32 emissionInterval : 8;
|
||||||
u32 textureIndex : 8;
|
u32 textureIndex : 8;
|
||||||
u32 unk_04_0 : 2;
|
u32 textureTileCountS : 2;
|
||||||
u32 unk_04_2 : 2;
|
u32 textureTileCountT : 2;
|
||||||
u32 unk_04_4 : 1;
|
u32 flipTextureS : 1;
|
||||||
u32 unk_04_5 : 1;
|
u32 flipTextureT : 1;
|
||||||
u32 unk_04_6 : 1;
|
u32 unk_04_6 : 1;
|
||||||
u32 reserved_04_7 : 25;
|
u32 reserved_04_7 : 25;
|
||||||
} misc;
|
} misc;
|
||||||
|
@ -75,42 +75,42 @@ void SPLEmitter_Init(SPLEmitter *emtr, SPLResource *res, const VecFx32 *pos)
|
|||||||
emtr->age = 0;
|
emtr->age = 0;
|
||||||
emtr->emissionCountFractional = 0;
|
emtr->emissionCountFractional = 0;
|
||||||
|
|
||||||
emtr->axis = emtr->resource->header->unk_1C;
|
emtr->axis = emtr->resource->header->axis;
|
||||||
emtr->initAngle = emtr->resource->header->unk_38;
|
emtr->initAngle = emtr->resource->header->initAngle;
|
||||||
emtr->emissionCount = emtr->resource->header->emissionCount;
|
emtr->emissionCount = emtr->resource->header->emissionCount;
|
||||||
emtr->radius = emtr->resource->header->unk_14;
|
emtr->radius = emtr->resource->header->radius;
|
||||||
emtr->length = emtr->resource->header->unk_18;
|
emtr->length = emtr->resource->header->length;
|
||||||
emtr->initVelPositionAmplifier = emtr->resource->header->unk_24;
|
emtr->initVelPositionAmplifier = emtr->resource->header->initVelPosAmplifier;
|
||||||
emtr->initVelAxisAmplifier = emtr->resource->header->unk_28;
|
emtr->initVelAxisAmplifier = emtr->resource->header->initVelAxisAmplifier;
|
||||||
emtr->baseScale = emtr->resource->header->unk_2C;
|
emtr->baseScale = emtr->resource->header->baseScale;
|
||||||
emtr->particleLifeTime = emtr->resource->header->particleLifeTime;
|
emtr->particleLifeTime = emtr->resource->header->particleLifeTime;
|
||||||
|
|
||||||
emtr->color = GX_RGB(31, 31, 31);
|
emtr->color = GX_RGB(31, 31, 31);
|
||||||
emtr->misc.emissionInterval = emtr->resource->header->misc.unk_00_0;
|
emtr->misc.emissionInterval = emtr->resource->header->misc.emissionInterval;
|
||||||
emtr->misc.baseAlpha = emtr->resource->header->misc.unk_01_0;
|
emtr->misc.baseAlpha = emtr->resource->header->misc.baseAlpha;
|
||||||
emtr->misc.updateCycle = 0;
|
emtr->misc.updateCycle = 0;
|
||||||
emtr->misc.unk_02_3 = 0;
|
emtr->misc.reserved = 0;
|
||||||
emtr->collisionPlaneHeight = FX32_MIN;
|
emtr->collisionPlaneHeight = FX32_MIN;
|
||||||
emtr->textureS = FX32_ONE << emtr->resource->header->misc.unk_07_0;
|
emtr->textureS = FX32_ONE << emtr->resource->header->misc.textureTileCountS;
|
||||||
emtr->textureT = FX32_ONE << emtr->resource->header->misc.unk_07_2;
|
emtr->textureT = FX32_ONE << emtr->resource->header->misc.textureTileCountT;
|
||||||
|
|
||||||
if (emtr->resource->header->misc.unk_08_0) {
|
if (emtr->resource->header->misc.flipTextureS) {
|
||||||
emtr->textureS *= -1;
|
emtr->textureS *= -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (emtr->resource->header->misc.unk_08_1) {
|
if (emtr->resource->header->misc.flipTextureT) {
|
||||||
emtr->textureT *= -1;
|
emtr->textureT *= -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (emtr->resource->header->flags.hasChildResource) {
|
if (emtr->resource->header->flags.hasChildResource) {
|
||||||
emtr->childTextureS = FX32_ONE << emtr->resource->childResource->misc.unk_04_0;
|
emtr->childTextureS = FX32_ONE << emtr->resource->childResource->misc.textureTileCountS;
|
||||||
emtr->childTextureT = FX32_ONE << emtr->resource->childResource->misc.unk_04_2;
|
emtr->childTextureT = FX32_ONE << emtr->resource->childResource->misc.textureTileCountT;
|
||||||
|
|
||||||
if (emtr->resource->childResource->misc.unk_04_4) {
|
if (emtr->resource->childResource->misc.flipTextureS) {
|
||||||
emtr->childTextureS *= -1;
|
emtr->childTextureS *= -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (emtr->resource->childResource->misc.unk_04_5) {
|
if (emtr->resource->childResource->misc.flipTextureT) {
|
||||||
emtr->childTextureT *= -1;
|
emtr->childTextureT *= -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -119,8 +119,8 @@ void SPLEmitter_Init(SPLEmitter *emtr, SPLResource *res, const VecFx32 *pos)
|
|||||||
emtr->particles.first = emtr->childParticles.first = NULL;
|
emtr->particles.first = emtr->childParticles.first = NULL;
|
||||||
emtr->particles.count = emtr->childParticles.count = 0;
|
emtr->particles.count = emtr->childParticles.count = 0;
|
||||||
emtr->updateCallback = NULL;
|
emtr->updateCallback = NULL;
|
||||||
emtr->unk_104 = NULL;
|
emtr->userDataPtr = NULL;
|
||||||
emtr->unk_108.unk_108_val1 = 0;
|
emtr->userData.u32 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SPLEmitter_Update(SPLManager *mgr, SPLEmitter *emtr)
|
void SPLEmitter_Update(SPLManager *mgr, SPLEmitter *emtr)
|
||||||
|
Loading…
Reference in New Issue
Block a user