document more in particle.c

This commit is contained in:
Unnunu
2025-04-18 12:19:57 +03:00
parent 88bfcc6d22
commit 38ee60fa15
11 changed files with 571 additions and 491 deletions
+380 -307
View File
File diff suppressed because it is too large Load Diff
+33 -26
View File
@@ -77,13 +77,13 @@ enum ParticleBehaviorFlags {
PARTICLE_VELOCITY_SCALED_FROM_PARENT = 0x40,
PARTICLE_ROTATION_ABSOLUTE = 0x80,
PARTICLE_BEHAVIOR_FLAG_100 = 0x100,
PARTICLE_BEHAVIOR_FLAG_200 = 0x200,
PARTICLE_POINT_EMITTER_DISABLED = 0x200,
PARTICLE_POINT = 0x400,
PARTICLE_BEHAVIOR_FLAG_800 = 0x800,
PARTICLE_SCALE_VELOCITY_INHERITS_PARENT_SPEED = 0x1000,
PARTICLE_BEHAVIOR_FLAG_2000 = 0x2000,
PARTICLE_EMITTER_AWAITING_SPAWN = 0x2000,
PARTICLE_LINE = 0x4000,
PARTICLE_BEHAVIOR_FLAG_8000 = 0x8000
PARTICLE_EMITTER_ENABLED = 0x8000
};
enum ParticleMovement {
@@ -190,7 +190,7 @@ typedef struct ParticleBehavior {
} ParticleBehavior;
typedef struct unk800AF29C_C_400 {
struct PointParticle **unkC_60;
struct PointParticle **refPoints;
s16 unk10;
s16 unk12;
s16 unk14;
@@ -203,7 +203,7 @@ typedef struct ParticleEmitter {
/* 0x04 */ s16 flags;
union {
/* 0x06 */ u8 sourceRotationCounter; // Used by general particles
/* 0x06 */ u8 line_unk6; // Used by line particles
/* 0x06 */ u8 lineOpacity; // Used by line particles
/* 0x06 */ u8 pointCount; // Used by point particles
};
union {
@@ -212,14 +212,21 @@ typedef struct ParticleEmitter {
};
/* 0x08 */ s16 descriptorID;
union {
/* 0x0A */ s16 line_opacity;
/* 0x0A */ s16 line_unused; // Set to zero on particle spawn and neved read
/* 0x0A */ s16 point_opacity;
/* 0x0A */ s16 timeFromLastSpawn; // Used by general particles
};
union {
/* 0x000C */ Vec3f lineAnchor; // Used for line particle
/* 0x000C */ unk800AF29C_C_400 unkC_400;
/* 0x000C */ ParticleAngle angle;
/* 0x000C */ Vec3f lineRefPoint; // Used for line particle
/* 0x000C */ struct {
struct PointParticle **refPoints;
Vec2s pointSourceRotation;
Vec2s pointEmissionDirection;
};
/* 0x000C */ struct {
/* 0x000C */ Vec3s sourceRotation;
/* 0x0012 */ Vec3s emissionDirection;
};
};
/* 0x0018 */ Vec3s position; // Relative to parent object
/* 0x001E */ s16 colorIndex;
@@ -287,21 +294,21 @@ typedef struct PointParticle {
/* 0x0077 */ s8 unk77;
} PointParticle;
void func_800AE270(void);
void func_800AE2A0(void);
void func_800AE2D8(void);
void reset_particles(void);
void reset_particles_with_assets(void);
void free_unknown_particle_sprites(void);
void free_particle_buffers(void);
void free_particle_vertices_triangles(void);
void free_particle_assets(void);
void generate_particle_shape_triangle(ParticleModel *model, Vertex **vtx, Triangle **triangles);
void generate_particle_shape_quad(ParticleModel *model, Vertex **vtx, Triangle **triangles);
void generate_particle_shape_line(ParticleModel *model, Vertex **vtx, Triangle **triangles);
void generate_particle_shape_point(ParticleModel *model, Vertex **vtx, Triangle **triangles);
void func_800AF0A4(Particle *particle);
void func_800AF0F0(Particle *particle);
void init_triangle_particle_model(ParticleModel *model, Vertex **vtx, Triangle **triangles);
void init_rectangle_particle_model(ParticleModel *model, Vertex **vtx, Triangle **triangles);
void init_line_particle_model(ParticleModel *model, Vertex **vtx, Triangle **triangles);
void init_point_particle_model(ParticleModel *model, Vertex **vtx, Triangle **triangles);
void set_triangle_texture_coords(Particle *particle);
void set_rectangle_texture_coords(Particle *particle);
void emitter_init(ParticleEmitter *emitter, s32 behaviourID, s32 particleID);
void emitter_init_with_pos(ParticleEmitter *emitter, s32 behaviourID, s32 particleID, s16 posX, s16 posY, s16 posZ);
void func_800AF6E4(Object *obj, s32 emitterIndex);
void obj_disable_emitter(Object *obj, s32 emitterIndex);
void emitter_cleanup(ParticleEmitter *emitter);
void func_800B263C(PointParticle *arg0);
void init_particle_assets(void);
@@ -310,11 +317,11 @@ void setup_particle_position(Particle *particle, Object *obj, ParticleEmitter *e
void particle_deallocate(Particle *particle);
void particle_update(Particle *particle, s32 updateRate);
void setup_particle_velocity(Particle *particle, Object *obj, ParticleEmitter *emitter, ParticleBehavior *behavior);
PointParticle *init_point_particle(Object *obj, ParticleEmitter *emitter);
PointParticle *create_point_particle(Object *obj, ParticleEmitter *emitter);
Particle *particle_allocate(s32 kind);
void func_800AFE5C(Object *obj, ParticleEmitter *emitter);
Particle *init_general_particle(Object *obj, ParticleEmitter *emitter);
void func_800AF52C(Object *obj, s32 emitterIndex);
void obj_trigger_emitter(Object *obj, ParticleEmitter *emitter);
Particle *create_general_particle(Object *obj, ParticleEmitter *emitter);
void obj_enable_emitter(Object *obj, s32 emitterIndex);
void emitter_change_settings(ParticleEmitter *emitter, s32 behaviourID, s32 particleID, s16 posX, s16 posY, s16 posZ);
void render_particle(Particle *particle, Gfx **dList, MatrixS **mtx, Vertex **vtx, s32 flags);
void func_800B4668(Object *obj, s32 idx, s32 arg2, s32 arg3);
@@ -322,10 +329,10 @@ void func_800B46BC(Object *obj, s32 idx, s32 arg2, s32 arg3);
void obj_spawn_particle(Object *obj, s32 updateRate);
void func_800B3E64(PointParticle *obj);
void update_line_particle(Particle *particle);
void func_800AF714(Object *racerObj, s32 updateRate);
Particle* init_line_particle(Object* obj, ParticleEmitter* emitter);
void update_vehicle_particles(Object *racerObj, s32 updateRate);
Particle* create_line_particle(Object* obj, ParticleEmitter* emitter);
void func_800AF404(s32 updateRate); // Non Matching
void scroll_particle_textures(s32 updateRate); // Non Matching
void init_particle_buffers(s32 maxTriangleParticles, s32 maxRectangleParticles, s32 maxSpriteParticles,
s32 maxLineParticles, s32 maxPointParticles, s32 arg5); // Non Matching
void move_particle_basic_parent(Particle *);
+4 -4
View File
@@ -1537,7 +1537,7 @@ void func_80046524(s32 updateRate, f32 updateRateF, Object *obj, Object_Racer *r
obj->particleEmittersEnabled = OBJ_EMIT_NONE;
} else {
obj->segment.y_velocity += updateRate * gCurrentRacerWeightStat;
func_800AF714(obj, updateRate);
update_vehicle_particles(obj, updateRate);
obj->segment.y_velocity -= updateRate * gCurrentRacerWeightStat;
}
gCurrentRacerTransform.rotation.y_rotation = -obj->segment.trans.rotation.y_rotation;
@@ -3235,7 +3235,7 @@ void func_8004F7F4(s32 updateRate, f32 updateRateF, Object *racerObj, Object_Rac
}
}
if (racer->vehicleID < VEHICLE_BOSSES) {
func_800AF714(racerObj, updateRate);
update_vehicle_particles(racerObj, updateRate);
}
second_racer_camera_update(racerObj, racer, 0, updateRateF);
if (gNumViewports == 1 && racer->velocity > -3.0 && get_settings()->courseId != ASSET_LEVEL_WIZPIG1) {
@@ -4665,7 +4665,7 @@ void update_onscreen_AI_racer(Object *obj, Object_Racer *racer, s32 updateRate,
if (!racer->unk201) {
obj->particleEmittersEnabled = OBJ_EMIT_NONE;
} else if (racer->vehicleID < VEHICLE_BOSSES) {
func_800AF714(obj, updateRate);
update_vehicle_particles(obj, updateRate);
}
func_80053750(obj, racer, updateRateF);
tempVel = 1.0f / updateRateF;
@@ -7491,7 +7491,7 @@ void func_8005B818(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateR
racer->unkFC.y = obj->segment.trans.y_position;
racer->unkFC.z = obj->segment.trans.z_position;
obj->particleEmittersEnabled = OBJ_EMIT_NONE;
func_800AF714(obj, updateRate);
update_vehicle_particles(obj, updateRate);
}
#ifdef ANTI_TAMPER
+2 -2
View File
@@ -411,7 +411,7 @@ void unload_level_game(void) {
}
clear_audio_and_track();
transition_begin(&D_800DD3F4);
func_800AE270();
reset_particles();
hud_free();
free_game_text_table();
gCurrDisplayList = gDisplayLists[gSPTaskNum];
@@ -896,7 +896,7 @@ void unload_level_menu(void) {
mempool_free_timer(0);
clear_audio_and_track();
transition_begin(&D_800DD3F4);
func_800AE270();
reset_particles();
hud_free();
free_game_text_table();
mempool_free_timer(2);
+1 -1
View File
@@ -356,7 +356,7 @@ void render_scene(Gfx **dList, MatrixS **mtx, Vertex **vtx, Triangle **tris, s32
gDPSetEnvColor(gSceneCurrDisplayList++, 255, 255, 255, 0);
rain_fog();
update_fog(numViewports, tempUpdateRate);
func_800AF404(tempUpdateRate);
scroll_particle_textures(tempUpdateRate);
if (gCurrentLevelModel->numberOfAnimatedTextures > 0) {
animate_level_textures(tempUpdateRate);
}
+1 -1
View File
@@ -129,7 +129,7 @@ void update_rocket(s32 updateRate, f32 updateRateF, Object *obj, Object_Racer *r
}
obj->segment.animFrame = racer->animationSpeed;
obj->particleEmittersEnabled = OBJ_EMIT_NONE;
func_800AF714(obj, updateRate);
update_vehicle_particles(obj, updateRate);
fade_when_near_camera(obj, racer, 40);
if (*startTimer != 100) {
someObj = func_8000BF44(-1);
+30 -30
View File
@@ -1622,34 +1622,34 @@ rain_sound = 0x800AE1C8;
render_rain_overlay = 0x800AE2BC;
// particles.c .text
func_800AE270 = 0x800AE870;
func_800AE2A0 = 0x800AE8A0;
func_800AE2D8 = 0x800AE8D8;
reset_particles = 0x800AE870;
reset_particles_with_assets = 0x800AE8A0;
free_unknown_particle_sprites = 0x800AE8D8;
free_particle_buffers = 0x800AE974;
free_particle_vertices_triangles = 0x800AEA38;
free_particle_assets = 0x800AEA90;
init_particle_assets = 0x800AEB30;
init_particle_buffers = 0x800AED28;
generate_particle_shape_triangle = 0x800AF414;
generate_particle_shape_quad = 0x800AF4B8;
generate_particle_shape_line = 0x800AF588;
generate_particle_shape_point = 0x800AF624;
func_800AF0A4 = 0x800AF6A4;
func_800AF0F0 = 0x800AF6F0;
init_triangle_particle_model = 0x800AF414;
init_rectangle_particle_model = 0x800AF4B8;
init_line_particle_model = 0x800AF588;
init_point_particle_model = 0x800AF624;
set_triangle_texture_coords = 0x800AF6A4;
set_rectangle_texture_coords = 0x800AF6F0;
emitter_change_settings = 0x800AF734;
emitter_init = 0x800AF7E0;
emitter_init_with_pos = 0x800AF89C;
func_800AF404 = 0x800AFA04;
func_800AF52C = 0x800AFB2C;
func_800AF6E4 = 0x800AFCE4;
func_800AF714 = 0x800AFD14;
scroll_particle_textures = 0x800AFA04;
obj_enable_emitter = 0x800AFB2C;
obj_disable_emitter = 0x800AFCE4;
update_vehicle_particles = 0x800AFD14;
obj_spawn_particle = 0x800B023C;
func_800AFE5C = 0x800B045C;
obj_trigger_emitter = 0x800B045C;
setup_particle_velocity = 0x800B0610;
setup_particle_position = 0x800B09C0;
init_point_particle = 0x800B0C98;
init_line_particle = 0x800B11AC;
init_general_particle = 0x800B1730;
create_point_particle = 0x800B0C98;
create_line_particle = 0x800B11AC;
create_general_particle = 0x800B1730;
particle_allocate = 0x800B22B8;
particle_deallocate = 0x800B2640;
emitter_cleanup = 0x800B2860;
@@ -2811,19 +2811,19 @@ gThunderTransition = 0x800E4788;
// particles.c .data
gNumTriangleParticles = 0x800E4790;
D_800E2CA4 = 0x800E4794;
gTriangleParticleBufferFull = 0x800E4794;
gTriangleParticleBuffer = 0x800E4798;
gNumRectangleParticles = 0x800E479C;
D_800E2CB0 = 0x800E47A0;
gRectangleParticleBufferFull = 0x800E47A0;
gRectangleParticleBuffer = 0x800E47A4;
gNumSpriteParticles = 0x800E47A8;
D_800E2CBC = 0x800E47AC;
gSpriteParticleBufferFull = 0x800E47AC;
gSpriteParticleBuffer = 0x800E47B0;
gNumLineParticles = 0x800E47B4;
D_800E2CC8 = 0x800E47B8;
gLineParticleBufferFull = 0x800E47B8;
gLineParticleBuffer = 0x800E47BC;
gNumPointParticles = 0x800E47C0;
D_800E2CD4 = 0x800E47C4;
gPointParticleBufferFull = 0x800E47C4;
gPointParticleBuffer = 0x800E47C8;
D_800E2CDC = 0x800E47CC;
gParticleVertexBuffer = 0x800E47D0;
@@ -2834,12 +2834,12 @@ gParticlesAssetTable = 0x800E47E0;
gParticleBehavioursAssetTableCount = 0x800E47E4;
gParticleBehavioursAssets = 0x800E47E8;
gParticleBehavioursAssetTable = 0x800E47EC;
D_800E2D00 = 0x800E47F0;
D_800E2D08 = 0x800E47F8;
D_800E2D58 = 0x800E4848;
D_800E2D78 = 0x800E4868;
D_800E2DF8 = 0x800E48E8;
D_800E2E28 = 0x800E4918;
gParticleOverrideColor = 0x800E47F0;
gLineParticleTriangles = 0x800E47F8;
gLineParticleVCoords = 0x800E4848;
gPointParticleTriangles = 0x800E4868;
gPointParticleVCoords = 0x800E48E8;
gParticleTextureScrollOffset = 0x800E4918;
gParticleGravityTable = 0x800E491C;
gMaxTriangleParticles = 0x800E493C;
gMaxRectangleParticles = 0x800E4940;
@@ -2852,7 +2852,7 @@ gParticleCoordListTri = 0x800E4958;
gParticleCoordListQuad = 0x800E4964;
D_800E2E84 = 0x800E4974;
D_800E2EC4 = 0x800E49B4;
gParticleOpacity = 0x800E49DC;
gCurrentHovercraftParticleOpacity = 0x800E49DC;
// printf.c .data
D_800E2EF0 = 0x800E49E0;
@@ -4446,7 +4446,7 @@ gLensFlareSwitches = 0x801296F0;
// particles .bss
gParticleUpdateRate = 0x80129730;
D_80127C84 = 0x80129734;
D_80127C88 = 0x80129738;
gHovercraftParticleOpacities = 0x80129738;
// printf
gTexture = 0x80129750; //size:0xC
+30 -30
View File
@@ -1611,34 +1611,34 @@ rain_render_splashes = 0x800AD6E8;
rain_lightning = 0x800ADB48;
rain_sound = 0x800ADC58;
render_rain_overlay = 0x800ADD4C;
func_800AE270 = 0x800AE300;
func_800AE2A0 = 0x800AE330;
func_800AE2D8 = 0x800AE368;
reset_particles = 0x800AE300;
reset_particles_with_assets = 0x800AE330;
free_unknown_particle_sprites = 0x800AE368;
free_particle_buffers = 0x800AE404;
free_particle_vertices_triangles = 0x800AE4C8;
free_particle_assets = 0x800AE520;
init_particle_assets = 0x800AE5C0;
init_particle_buffers = 0x800AE7B8;
generate_particle_shape_triangle = 0x800AEEA4;
generate_particle_shape_quad = 0x800AEF48;
generate_particle_shape_line = 0x800AF018;
generate_particle_shape_point = 0x800AF0B4;
func_800AF0A4 = 0x800AF134;
func_800AF0F0 = 0x800AF180;
init_triangle_particle_model = 0x800AEEA4;
init_rectangle_particle_model = 0x800AEF48;
init_line_particle_model = 0x800AF018;
init_point_particle_model = 0x800AF0B4;
set_triangle_texture_coords = 0x800AF134;
set_rectangle_texture_coords = 0x800AF180;
emitter_change_settings = 0x800AF1C4;
emitter_init = 0x800AF270;
emitter_init_with_pos = 0x800AF32C;
func_800AF404 = 0x800AF494;
func_800AF52C = 0x800AF5BC;
func_800AF6E4 = 0x800AF774;
func_800AF714 = 0x800AF7A4;
scroll_particle_textures = 0x800AF494;
obj_enable_emitter = 0x800AF5BC;
obj_disable_emitter = 0x800AF774;
update_vehicle_particles = 0x800AF7A4;
obj_spawn_particle = 0x800AFCCC;
func_800AFE5C = 0x800AFEEC;
obj_trigger_emitter = 0x800AFEEC;
setup_particle_velocity = 0x800B00A0;
setup_particle_position = 0x800B0450;
init_point_particle = 0x800B0728;
init_line_particle = 0x800B0C3C;
init_general_particle = 0x800B11C0;
create_point_particle = 0x800B0728;
create_line_particle = 0x800B0C3C;
create_general_particle = 0x800B11C0;
particle_allocate = 0x800B1D48;
particle_deallocate = 0x800B20D0;
emitter_cleanup = 0x800B22F0;
@@ -2651,19 +2651,19 @@ gRainVertexFlip = 0x800E2D20;
gWeatherSoundMask = 0x800E2D24;
gThunderTransition = 0x800E2D28;
gNumTriangleParticles = 0x800E2D30;
D_800E2CA4 = 0x800E2D34;
gTriangleParticleBufferFull = 0x800E2D34;
gTriangleParticleBuffer = 0x800E2D38;
gNumRectangleParticles = 0x800E2D3C;
D_800E2CB0 = 0x800E2D40;
gRectangleParticleBufferFull = 0x800E2D40;
gRectangleParticleBuffer = 0x800E2D44;
gNumSpriteParticles = 0x800E2D48;
D_800E2CBC = 0x800E2D4C;
gSpriteParticleBufferFull = 0x800E2D4C;
gSpriteParticleBuffer = 0x800E2D50;
gNumLineParticles = 0x800E2D54;
D_800E2CC8 = 0x800E2D58;
gLineParticleBufferFull = 0x800E2D58;
gLineParticleBuffer = 0x800E2D5C;
gNumPointParticles = 0x800E2D60;
D_800E2CD4 = 0x800E2D64;
gPointParticleBufferFull = 0x800E2D64;
gPointParticleBuffer = 0x800E2D68;
D_800E2CDC = 0x800E2D6C;
gParticleVertexBuffer = 0x800E2D70;
@@ -2674,12 +2674,12 @@ gParticlesAssetTable = 0x800E2D80;
gParticleBehavioursAssetTableCount = 0x800E2D84;
gParticleBehavioursAssets = 0x800E2D88;
gParticleBehavioursAssetTable = 0x800E2D8C;
D_800E2D00 = 0x800E2D90;
D_800E2D08 = 0x800E2D98;
D_800E2D58 = 0x800E2DE8;
D_800E2D78 = 0x800E2E08;
D_800E2DF8 = 0x800E2E88;
D_800E2E28 = 0x800E2EB8;
gParticleOverrideColor = 0x800E2D90;
gLineParticleTriangles = 0x800E2D98;
gLineParticleVCoords = 0x800E2DE8;
gPointParticleTriangles = 0x800E2E08;
gPointParticleVCoords = 0x800E2E88;
gParticleTextureScrollOffset = 0x800E2EB8;
gParticleGravityTable = 0x800E2EBC;
gMaxTriangleParticles = 0x800E2EDC;
gMaxRectangleParticles = 0x800E2EE0;
@@ -2692,7 +2692,7 @@ gParticleCoordListTri = 0x800E2EF8;
gParticleCoordListQuad = 0x800E2F04;
D_800E2E84 = 0x800E2F14;
D_800E2EC4 = 0x800E2F54;
gParticleOpacity = 0x800E2F7C;
gCurrentHovercraftParticleOpacity = 0x800E2F7C;
D_800E2EF0 = 0x800E2F80;
gDebugFontCoords = 0x800E2F84;
dDebugFontSettings = 0x800E3048;
@@ -4138,7 +4138,7 @@ gLensFlarePos = 0x80127CC0;
gLensFlareSwitches = 0x80127CD0;
gParticleUpdateRate = 0x80127D10;
D_80127C84 = 0x80127D14;
D_80127C88 = 0x80127D18;
gHovercraftParticleOpacities = 0x80127D18;
gTexture = 0x80127D30; //size:0xC
gDebugTextX = 0x80127D3C;
gDebugTextY = 0x80127D3E;
+30 -30
View File
@@ -1532,34 +1532,34 @@ rain_render_splashes = 0x800ADC48;
rain_lightning = 0x800AE0A8;
rain_sound = 0x800AE1B8;
render_rain_overlay = 0x800AE2AC;
func_800AE270 = 0x800AE860;
func_800AE2A0 = 0x800AE890;
func_800AE2D8 = 0x800AE8C8;
reset_particles = 0x800AE860;
reset_particles_with_assets = 0x800AE890;
free_unknown_particle_sprites = 0x800AE8C8;
free_particle_buffers = 0x800AE964;
free_particle_vertices_triangles = 0x800AEA28;
free_particle_assets = 0x800AEA80;
init_particle_assets = 0x800AEB20;
init_particle_buffers = 0x800AED18;
generate_particle_shape_triangle = 0x800AF404;
generate_particle_shape_quad = 0x800AF4A8;
generate_particle_shape_line = 0x800AF578;
generate_particle_shape_point = 0x800AF614;
func_800AF0A4 = 0x800AF694;
func_800AF0F0 = 0x800AF6E0;
init_triangle_particle_model = 0x800AF404;
init_rectangle_particle_model = 0x800AF4A8;
init_line_particle_model = 0x800AF578;
init_point_particle_model = 0x800AF614;
set_triangle_texture_coords = 0x800AF694;
set_rectangle_texture_coords = 0x800AF6E0;
emitter_change_settings = 0x800AF724;
emitter_init = 0x800AF7D0;
emitter_init_with_pos = 0x800AF88C;
func_800AF404 = 0x800AF9F4;
func_800AF52C = 0x800AFB1C;
func_800AF6E4 = 0x800AFCD4;
func_800AF714 = 0x800AFD04;
scroll_particle_textures = 0x800AF9F4;
obj_enable_emitter = 0x800AFB1C;
obj_disable_emitter = 0x800AFCD4;
update_vehicle_particles = 0x800AFD04;
obj_spawn_particle = 0x800B022C;
func_800AFE5C = 0x800B044C;
obj_trigger_emitter = 0x800B044C;
setup_particle_velocity = 0x800B0600;
setup_particle_position = 0x800B09B0;
init_point_particle = 0x800B0C88;
init_line_particle = 0x800B119C;
init_general_particle = 0x800B1720;
create_point_particle = 0x800B0C88;
create_line_particle = 0x800B119C;
create_general_particle = 0x800B1720;
particle_allocate = 0x800B22A8;
particle_deallocate = 0x800B2630;
emitter_cleanup = 0x800B2850;
@@ -2580,19 +2580,19 @@ gRainVertexFlip = 0x800E32B0;
gWeatherSoundMask = 0x800E32B4;
gThunderTransition = 0x800E32B8;
gNumTriangleParticles = 0x800E32C0;
D_800E2CA4 = 0x800E32C4;
gTriangleParticleBufferFull = 0x800E32C4;
gTriangleParticleBuffer = 0x800E32C8;
gNumRectangleParticles = 0x800E32CC;
D_800E2CB0 = 0x800E32D0;
gRectangleParticleBufferFull = 0x800E32D0;
gRectangleParticleBuffer = 0x800E32D4;
gNumSpriteParticles = 0x800E32D8;
D_800E2CBC = 0x800E32DC;
gSpriteParticleBufferFull = 0x800E32DC;
gSpriteParticleBuffer = 0x800E32E0;
gNumLineParticles = 0x800E32E4;
D_800E2CC8 = 0x800E32E8;
gLineParticleBufferFull = 0x800E32E8;
gLineParticleBuffer = 0x800E32EC;
gNumPointParticles = 0x800E32F0;
D_800E2CD4 = 0x800E32F4;
gPointParticleBufferFull = 0x800E32F4;
gPointParticleBuffer = 0x800E32F8;
D_800E2CDC = 0x800E32FC;
gParticleVertexBuffer = 0x800E3300;
@@ -2603,12 +2603,12 @@ gParticlesAssetTable = 0x800E3310;
gParticleBehavioursAssetTableCount = 0x800E3314;
gParticleBehavioursAssets = 0x800E3318;
gParticleBehavioursAssetTable = 0x800E331C;
D_800E2D00 = 0x800E3320;
D_800E2D08 = 0x800E3328;
D_800E2D58 = 0x800E3378;
D_800E2D78 = 0x800E3398;
D_800E2DF8 = 0x800E3418;
D_800E2E28 = 0x800E3448;
gParticleOverrideColor = 0x800E3320;
gLineParticleTriangles = 0x800E3328;
gLineParticleVCoords = 0x800E3378;
gPointParticleTriangles = 0x800E3398;
gPointParticleVCoords = 0x800E3418;
gParticleTextureScrollOffset = 0x800E3448;
gParticleGravityTable = 0x800E344C;
gMaxTriangleParticles = 0x800E346C;
gMaxRectangleParticles = 0x800E3470;
@@ -2621,7 +2621,7 @@ gParticleCoordListTri = 0x800E3488;
gParticleCoordListQuad = 0x800E3494;
D_800E2E84 = 0x800E34A4;
D_800E2EC4 = 0x800E34E4;
gParticleOpacity = 0x800E350C;
gCurrentHovercraftParticleOpacity = 0x800E350C;
D_800E2EF0 = 0x800E3510;
gDebugFontCoords = 0x800E3514;
dDebugFontSettings = 0x800E35D8;
@@ -4073,7 +4073,7 @@ gLensFlarePos = 0x80128280;
gLensFlareSwitches = 0x80128290;
gParticleUpdateRate = 0x801282D0;
D_80127C84 = 0x801282D4;
D_80127C88 = 0x801282D8;
gHovercraftParticleOpacities = 0x801282D8;
gTexture = 0x801282F0; //size:0xC
gDebugTextX = 0x801282FC;
gDebugTextY = 0x801282FE;
+30 -30
View File
@@ -1617,34 +1617,34 @@ rain_sound = 0x800ADBC8;
render_rain_overlay = 0x800ADCBC;
// particles.c .text
func_800AE270 = 0x800AE270;
func_800AE2A0 = 0x800AE2A0;
func_800AE2D8 = 0x800AE2D8;
reset_particles = 0x800AE270;
reset_particles_with_assets = 0x800AE2A0;
free_unknown_particle_sprites = 0x800AE2D8;
free_particle_buffers = 0x800AE374;
free_particle_vertices_triangles = 0x800AE438;
free_particle_assets = 0x800AE490;
init_particle_assets = 0x800AE530;
init_particle_buffers = 0x800AE728;
generate_particle_shape_triangle = 0x800AEE14;
generate_particle_shape_quad = 0x800AEEB8;
generate_particle_shape_line = 0x800AEF88;
generate_particle_shape_point = 0x800AF024;
func_800AF0A4 = 0x800AF0A4;
func_800AF0F0 = 0x800AF0F0;
init_triangle_particle_model = 0x800AEE14;
init_rectangle_particle_model = 0x800AEEB8;
init_line_particle_model = 0x800AEF88;
init_point_particle_model = 0x800AF024;
set_triangle_texture_coords = 0x800AF0A4;
set_rectangle_texture_coords = 0x800AF0F0;
emitter_change_settings = 0x800AF134;
emitter_init = 0x800AF1E0;
emitter_init_with_pos = 0x800AF29C;
func_800AF404 = 0x800AF404;
func_800AF52C = 0x800AF52C;
func_800AF6E4 = 0x800AF6E4;
func_800AF714 = 0x800AF714;
scroll_particle_textures = 0x800AF404;
obj_enable_emitter = 0x800AF52C;
obj_disable_emitter = 0x800AF6E4;
update_vehicle_particles = 0x800AF714;
obj_spawn_particle = 0x800AFC3C;
func_800AFE5C = 0x800AFE5C;
obj_trigger_emitter = 0x800AFE5C;
setup_particle_velocity = 0x800B0010;
setup_particle_position = 0x800B03C0;
init_point_particle = 0x800B0698;
init_line_particle = 0x800B0BAC;
init_general_particle = 0x800B1130;
create_point_particle = 0x800B0698;
create_line_particle = 0x800B0BAC;
create_general_particle = 0x800B1130;
particle_allocate = 0x800B1CB8;
particle_deallocate = 0x800B2040;
emitter_cleanup = 0x800B2260;
@@ -2802,19 +2802,19 @@ gThunderTransition = 0x800E2C98;
// particles.c .data
gNumTriangleParticles = 0x800E2CA0;
D_800E2CA4 = 0x800E2CA4;
gTriangleParticleBufferFull = 0x800E2CA4;
gTriangleParticleBuffer = 0x800E2CA8;
gNumRectangleParticles = 0x800E2CAC;
D_800E2CB0 = 0x800E2CB0;
gRectangleParticleBufferFull = 0x800E2CB0;
gRectangleParticleBuffer = 0x800E2CB4;
gNumSpriteParticles = 0x800E2CB8;
D_800E2CBC = 0x800E2CBC;
gSpriteParticleBufferFull = 0x800E2CBC;
gSpriteParticleBuffer = 0x800E2CC0;
gNumLineParticles = 0x800E2CC4;
D_800E2CC8 = 0x800E2CC8;
gLineParticleBufferFull = 0x800E2CC8;
gLineParticleBuffer = 0x800E2CCC;
gNumPointParticles = 0x800E2CD0;
D_800E2CD4 = 0x800E2CD4;
gPointParticleBufferFull = 0x800E2CD4;
gPointParticleBuffer = 0x800E2CD8;
D_800E2CDC = 0x800E2CDC;
gParticleVertexBuffer = 0x800E2CE0;
@@ -2825,12 +2825,12 @@ gParticlesAssetTable = 0x800E2CF0;
gParticleBehavioursAssetTableCount = 0x800E2CF4;
gParticleBehavioursAssets = 0x800E2CF8;
gParticleBehavioursAssetTable = 0x800E2CFC;
D_800E2D00 = 0x800E2D00;
D_800E2D08 = 0x800E2D08;
D_800E2D58 = 0x800E2D58;
D_800E2D78 = 0x800E2D78;
D_800E2DF8 = 0x800E2DF8;
D_800E2E28 = 0x800E2E28;
gParticleOverrideColor = 0x800E2D00;
gLineParticleTriangles = 0x800E2D08;
gLineParticleVCoords = 0x800E2D58;
gPointParticleTriangles = 0x800E2D78;
gPointParticleVCoords = 0x800E2DF8;
gParticleTextureScrollOffset = 0x800E2E28;
gParticleGravityTable = 0x800E2E2C;
gMaxTriangleParticles = 0x800E2E4C;
gMaxRectangleParticles = 0x800E2E50;
@@ -2843,7 +2843,7 @@ gParticleCoordListTri = 0x800E2E68;
gParticleCoordListQuad = 0x800E2E74;
D_800E2E84 = 0x800E2E84;
D_800E2EC4 = 0x800E2EC4;
gParticleOpacity = 0x800E2EEC;
gCurrentHovercraftParticleOpacity = 0x800E2EEC;
// printf.c .data
D_800E2EF0 = 0x800E2EF0;
@@ -4575,7 +4575,7 @@ gLensFlareSwitches = 0x80127C40;
// particles .bss
gParticleUpdateRate = 0x80127C80;
D_80127C84 = 0x80127C84;
D_80127C88 = 0x80127C88;
gHovercraftParticleOpacities = 0x80127C88;
// printf
gTexture = 0x80127CA0; //size:0xC
+30 -30
View File
@@ -1531,34 +1531,34 @@ rain_render_splashes = 0x800ADBB8;
rain_lightning = 0x800AE018;
rain_sound = 0x800AE128;
render_rain_overlay = 0x800AE21C;
func_800AE270 = 0x800AE7D0;
func_800AE2A0 = 0x800AE800;
func_800AE2D8 = 0x800AE838;
reset_particles = 0x800AE7D0;
reset_particles_with_assets = 0x800AE800;
free_unknown_particle_sprites = 0x800AE838;
free_particle_buffers = 0x800AE8D4;
free_particle_vertices_triangles = 0x800AE998;
free_particle_assets = 0x800AE9F0;
init_particle_assets = 0x800AEA90;
init_particle_buffers = 0x800AEC88;
generate_particle_shape_triangle = 0x800AF374;
generate_particle_shape_quad = 0x800AF418;
generate_particle_shape_line = 0x800AF4E8;
generate_particle_shape_point = 0x800AF584;
func_800AF0A4 = 0x800AF604;
func_800AF0F0 = 0x800AF650;
init_triangle_particle_model = 0x800AF374;
init_rectangle_particle_model = 0x800AF418;
init_line_particle_model = 0x800AF4E8;
init_point_particle_model = 0x800AF584;
set_triangle_texture_coords = 0x800AF604;
set_rectangle_texture_coords = 0x800AF650;
emitter_change_settings = 0x800AF694;
emitter_init = 0x800AF740;
emitter_init_with_pos = 0x800AF7FC;
func_800AF404 = 0x800AF964;
func_800AF52C = 0x800AFA8C;
func_800AF6E4 = 0x800AFC44;
func_800AF714 = 0x800AFC74;
scroll_particle_textures = 0x800AF964;
obj_enable_emitter = 0x800AFA8C;
obj_disable_emitter = 0x800AFC44;
update_vehicle_particles = 0x800AFC74;
obj_spawn_particle = 0x800B019C;
func_800AFE5C = 0x800B03BC;
obj_trigger_emitter = 0x800B03BC;
setup_particle_velocity = 0x800B0570;
setup_particle_position = 0x800B0920;
init_point_particle = 0x800B0BF8;
init_line_particle = 0x800B110C;
init_general_particle = 0x800B1690;
create_point_particle = 0x800B0BF8;
create_line_particle = 0x800B110C;
create_general_particle = 0x800B1690;
particle_allocate = 0x800B2218;
particle_deallocate = 0x800B25A0;
emitter_cleanup = 0x800B27C0;
@@ -2577,19 +2577,19 @@ gRainVertexFlip = 0x800E3220;
gWeatherSoundMask = 0x800E3224;
gThunderTransition = 0x800E3228;
gNumTriangleParticles = 0x800E3230;
D_800E2CA4 = 0x800E3234;
gTriangleParticleBufferFull = 0x800E3234;
gTriangleParticleBuffer = 0x800E3238;
gNumRectangleParticles = 0x800E323C;
D_800E2CB0 = 0x800E3240;
gRectangleParticleBufferFull = 0x800E3240;
gRectangleParticleBuffer = 0x800E3244;
gNumSpriteParticles = 0x800E3248;
D_800E2CBC = 0x800E324C;
gSpriteParticleBufferFull = 0x800E324C;
gSpriteParticleBuffer = 0x800E3250;
gNumLineParticles = 0x800E3254;
D_800E2CC8 = 0x800E3258;
gLineParticleBufferFull = 0x800E3258;
gLineParticleBuffer = 0x800E325C;
gNumPointParticles = 0x800E3260;
D_800E2CD4 = 0x800E3264;
gPointParticleBufferFull = 0x800E3264;
gPointParticleBuffer = 0x800E3268;
D_800E2CDC = 0x800E326C;
gParticleVertexBuffer = 0x800E3270;
@@ -2600,12 +2600,12 @@ gParticlesAssetTable = 0x800E3280;
gParticleBehavioursAssetTableCount = 0x800E3284;
gParticleBehavioursAssets = 0x800E3288;
gParticleBehavioursAssetTable = 0x800E328C;
D_800E2D00 = 0x800E3290;
D_800E2D08 = 0x800E3298;
D_800E2D58 = 0x800E32E8;
D_800E2D78 = 0x800E3308;
D_800E2DF8 = 0x800E3388;
D_800E2E28 = 0x800E33B8;
gParticleOverrideColor = 0x800E3290;
gLineParticleTriangles = 0x800E3298;
gLineParticleVCoords = 0x800E32E8;
gPointParticleTriangles = 0x800E3308;
gPointParticleVCoords = 0x800E3388;
gParticleTextureScrollOffset = 0x800E33B8;
gParticleGravityTable = 0x800E33BC;
gMaxTriangleParticles = 0x800E33DC;
gMaxRectangleParticles = 0x800E33E0;
@@ -2618,7 +2618,7 @@ gParticleCoordListTri = 0x800E33F8;
gParticleCoordListQuad = 0x800E3404;
D_800E2E84 = 0x800E3414;
D_800E2EC4 = 0x800E3454;
gParticleOpacity = 0x800E347C;
gCurrentHovercraftParticleOpacity = 0x800E347C;
D_800E2EF0 = 0x800E3480;
gDebugFontCoords = 0x800E3484;
dDebugFontSettings = 0x800E3548;
@@ -4068,7 +4068,7 @@ gLensFlarePos = 0x801281F0;
gLensFlareSwitches = 0x80128200;
gParticleUpdateRate = 0x80128240;
D_80127C84 = 0x80128244;
D_80127C88 = 0x80128248;
gHovercraftParticleOpacities = 0x80128248;
gTexture = 0x80128260; //size:0xC
gDebugTextX = 0x8012826C;
gDebugTextY = 0x8012826E;