Cleanup & effect gfx data (#973)

* wip / clean

* remaining effect gfx data, cleanup

* restore file

* oopz

* oopz2

* oopz3
This commit is contained in:
Ethan Roseman 2023-03-13 15:11:17 +09:00 committed by GitHub
parent 9551b16d77
commit f8836ce36f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 223 additions and 156 deletions

View File

@ -97,7 +97,7 @@ void energy_shockwave_main(s32, f32, f32, f32, f32, s32);
EffectInstance* shimmer_wave_main(s32, f32, f32, f32, f32, f32, s32, s32);
void aura_main(s32, f32, f32, f32, f32, EffectInstance**);
void bulb_glow_main(s32, f32, f32, f32, f32, EffectInstance**);
void fx_3D_main(s32, f32, f32, f32, f32, f32, f32, s32, EffectInstance**);
void effect_3D_main(s32, f32, f32, f32, f32, f32, f32, s32, EffectInstance**);
void blast_main(s32, f32, f32, f32, f32, s32);
EffectInstance* fire_flower_main(s32, f32, f32, f32, s32);
EffectInstance* recover_main(s32, f32, f32, f32, s32);
@ -106,7 +106,7 @@ EffectInstance* bombette_breaking_main(s32, s32, s32, f32, s32, s32);
EffectInstance* firework_main(s32, f32, f32, f32, f32, s32);
EffectInstance* confetti_main(s32, f32, f32, f32, f32, s32);
EffectInstance* snowfall_main(s32, s32);
EffectInstance* fx_46_main(s32, PlayerStatus*, f32, s32);
EffectInstance* effect_46_main(s32, PlayerStatus*, f32, s32);
EffectInstance* gather_magic_main(s32, f32, f32, f32, f32, s32);
EffectInstance* attack_result_text_main(s32, f32, f32, f32, f32, s32);
EffectInstance* small_gold_sparkle_main(s32, f32, f32, f32, f32);
@ -135,9 +135,9 @@ EffectInstance* water_splash_main(s32, f32, f32, f32, f32, s32);
EffectInstance* snowman_doll_main(s32, f32, f32, f32, f32, s32);
EffectInstance* fright_jar_main(s32, f32, f32, f32, f32, s32);
EffectInstance* stop_watch_main(s32, f32, f32, f32, f32, s32);
EffectInstance* fx_63_main(s32, f32, f32, f32, f32, f32, f32, f32, s32, s32);
EffectInstance* effect_63_main(s32, f32, f32, f32, f32, f32, f32, f32, s32, s32);
EffectInstance* throw_spiny_main(s32, f32, f32, f32, f32, f32, f32, f32, s32);
EffectInstance* fx_65_main(s32, f32, f32, f32, f32, s32);
EffectInstance* effect_65_main(s32, f32, f32, f32, f32, s32);
EffectInstance* tubba_heart_attack_main(s32, f32, f32, f32, f32, s32);
EffectInstance* whirlwind_main(s32, f32, f32, f32, f32, s32);
EffectInstance* red_impact_main(s32, f32, f32, f32, f32);
@ -152,7 +152,7 @@ EffectInstance* hieroglyphs_main(s32, f32, f32, f32, f32, s32);
EffectInstance *misc_particles_main(s32, f32, f32, f32, f32, f32, f32, s32, s32);
EffectInstance* static_status_main(s32, f32, f32, f32, f32, s32, s32);
EffectInstance* moving_cloud_main(s32, f32, f32, f32, f32, f32, f32, f32, f32);
EffectInstance* fx_75_main(s32, f32, f32, f32, f32, s32);
EffectInstance* effect_75_main(s32, f32, f32, f32, f32, s32);
EffectInstance* firework_rocket_main(s32, f32, f32, f32, f32, f32, f32, f32, s32);
EffectInstance* peach_star_beam_main(s32, f32, f32, f32, f32, s32);
EffectInstance* chapter_change_main(s32, f32, f32, f32, f32, s32);
@ -168,6 +168,6 @@ EffectInstance* sun_main(s32, f32, f32, f32, f32, s32);
EffectInstance* star_spirits_energy_main(s32, f32, f32, f32, f32, s32);
EffectInstance* pink_sparkles_main(s32, f32, f32, f32, f32, f32);
EffectInstance* star_outline_main(s32, f32, f32, f32, f32, s32);
EffectInstance* fx_86_main(s32, f32, f32, f32, f32, s32);
EffectInstance* effect_86_main(s32, f32, f32, f32, f32, s32);
#endif

View File

@ -507,7 +507,7 @@ void collision_main_lateral(void) {
f32 xBump;
f32 zBump;
gCollisionStatus.pushingAgainstWall = -1;
gCollisionStatus.pushingAgainstWall = NO_COLLIDER;
if (playerStatus->flags & PS_FLAG_CUTSCENE_MOVEMENT) {
speed = playerStatus->currentSpeed;
if (playerStatus->flags & PS_FLAG_ENTERING_BATTLE) {

View File

@ -94,7 +94,7 @@ void create_shading_palette(Matrix4f mtx, s32 uls, s32 ult, s32 lrs, s32 lrt, s3
posX = mtx[3][0];
posY = mtx[3][1];
posZ = mtx[3][2];
Mxz = mtx[0][2];
Myz = mtx[1][2];
Mzz = mtx[2][2];
@ -173,7 +173,7 @@ void create_shading_palette(Matrix4f mtx, s32 uls, s32 ult, s32 lrs, s32 lrt, s3
if (intensityScale > 1.0f) {
intensityScale = 1.0f;
}
shadowDirX += dx;
shadowDirY += dy;
shadowDirZ += dz;

View File

@ -19,12 +19,6 @@ extern Addr D_801A6000;
gfx_name##_ROM_END \
}
// TODO remove once everyone is named
#define FX_ENTRY_NUMBERED(name, gfx_name) { \
fx_##name##_main, effect_effect_##name##_ROM_START, effect_effect_##name##_ROM_END, effect_effect_##name##_VRAM, \
gfx_name##_ROM_START, gfx_name##_ROM_END \
} \
EffectTableEntry gEffectTable[] = {
/* 0x00 */ {},
/* 0x01 */ FX_ENTRY(big_smoke_puff, effect_gfx_big_smoke_puff),
@ -87,7 +81,7 @@ EffectTableEntry gEffectTable[] = {
/* 0x3A */ FX_ENTRY(shimmer_wave, effect_gfx_sparkles),
/* 0x3B */ FX_ENTRY(aura, effect_gfx_aura),
/* 0x3C */ FX_ENTRY(bulb_glow, effect_gfx_bulb_glow),
/* 0x3D */ FX_ENTRY_NUMBERED(3D, effect_gfx_effect_3D),
/* 0x3D */ FX_ENTRY(effect_3D, effect_gfx_effect_3D),
/* 0x3E */ FX_ENTRY(blast, effect_gfx_blast),
/* 0x3F */ FX_ENTRY(fire_flower, effect_gfx_fire_flower),
/* 0x40 */ FX_ENTRY(recover, effect_gfx_recover),
@ -96,7 +90,7 @@ EffectTableEntry gEffectTable[] = {
/* 0x43 */ FX_ENTRY(firework, effect_gfx_firework),
/* 0x44 */ FX_ENTRY(confetti, effect_gfx_confetti),
/* 0x45 */ FX_ENTRY(snowfall, effect_gfx_snowfall),
/* 0x46 */ FX_ENTRY_NUMBERED(46, effect_gfx_effect_46),
/* 0x46 */ FX_ENTRY(effect_46, effect_gfx_effect_46),
/* 0x47 */ FX_ENTRY(gather_magic, effect_gfx_gather_magic),
/* 0x48 */ FX_ENTRY(attack_result_text, effect_gfx_attack_result_text),
/* 0x49 */ FX_ENTRY(small_gold_sparkle, effect_gfx_small_gold_sparkle),
@ -107,7 +101,7 @@ EffectTableEntry gEffectTable[] = {
/* 0x4E */ FX_ENTRY(quizmo_stage, effect_gfx_quizmo_stage),
/* 0x4F */ FX_ENTRY(radiating_energy_orb, effect_gfx_radiating_energy_orb),
/* 0x50 */ FX_ENTRY(quizmo_answer, effect_gfx_quizmo_answer),
/* 0x51 */ FX_ENTRY(motion_blur_flame, _3A33D0),
/* 0x51 */ FX_ENTRY(motion_blur_flame, effect_gfx_motion_blur_flame),
/* 0x52 */ FX_ENTRY(energy_orb_wave, effect_gfx_energy_orb_wave),
/* 0x53 */ FX_ENTRY(merlin_house_stars, effect_gfx_merlin_house_stars),
/* 0x54 */ FX_ENTRY(quizmo_audience, effect_gfx_quizmo_audience),
@ -119,15 +113,15 @@ EffectTableEntry gEffectTable[] = {
/* 0x5A */ FX_ENTRY(water_block, effect_gfx_water_block),
/* 0x5B */ FX_ENTRY(waterfall, effect_gfx_waterfall),
/* 0x5C */ FX_ENTRY(water_fountain, effect_gfx_water_fountain),
/* 0x5D */ FX_ENTRY(underwater, _3B9A70),
/* 0x5D */ FX_ENTRY(underwater, effect_gfx_underwater),
/* 0x5E */ FX_ENTRY(lightning_bolt, effect_gfx_lightning_bolt),
/* 0x5F */ FX_ENTRY(water_splash, effect_gfx_water_splash),
/* 0x60 */ FX_ENTRY(snowman_doll, effect_gfx_snowman_doll),
/* 0x61 */ FX_ENTRY(fright_jar, effect_gfx_fright_jar),
/* 0x62 */ FX_ENTRY(stop_watch, effect_gfx_stop_watch),
/* 0x63 */ FX_ENTRY_NUMBERED(63, effect_gfx_effect_63),
/* 0x63 */ FX_ENTRY(effect_63, effect_gfx_effect_63),
/* 0x64 */ FX_ENTRY(throw_spiny, effect_gfx_throw_spiny),
/* 0x65 */ FX_ENTRY_NUMBERED(65, effect_gfx_effect_65),
/* 0x65 */ FX_ENTRY(effect_65, effect_gfx_effect_65),
/* 0x66 */ FX_ENTRY(tubba_heart_attack, effect_gfx_tubba_heart_attack),
/* 0x67 */ FX_ENTRY(whirlwind, effect_gfx_whirlwind),
/* 0x68 */ FX_ENTRY(red_impact, effect_gfx_shockwave),
@ -143,7 +137,7 @@ EffectTableEntry gEffectTable[] = {
/* 0x72 */ FX_ENTRY(misc_particles, effect_gfx_misc_particles),
/* 0x73 */ FX_ENTRY(static_status, effect_gfx_static_status),
/* 0x74 */ FX_ENTRY(moving_cloud, effect_gfx_moving_cloud),
/* 0x75 */ FX_ENTRY_NUMBERED(75, effect_gfx_effect_75),
/* 0x75 */ FX_ENTRY(effect_75, effect_gfx_effect_75),
/* 0x76 */ {},
/* 0x77 */ FX_ENTRY(firework_rocket, effect_gfx_firework_rocket),
/* 0x78 */ FX_ENTRY(peach_star_beam, effect_gfx_peach_star_beam),
@ -160,7 +154,7 @@ EffectTableEntry gEffectTable[] = {
/* 0x83 */ FX_ENTRY(star_spirits_energy, effect_gfx_star_spirits_energy),
/* 0x84 */ FX_ENTRY(pink_sparkles, effect_gfx_sparkles),
/* 0x85 */ FX_ENTRY(star_outline, effect_gfx_star_outline),
/* 0x86 */ FX_ENTRY_NUMBERED(86, effect_gfx_effect_86),
/* 0x86 */ FX_ENTRY(effect_86, effect_gfx_effect_86),
};
s32 D_8007FEB8[] = {

View File

@ -4,12 +4,12 @@
extern Gfx D_09000240_37D3C0[];
extern Gfx D_090002E8_37D468[];
void fx_3D_init(EffectInstance* effect);
void fx_3D_update(EffectInstance* effect);
void fx_3D_render(EffectInstance* effect);
void fx_3D_appendGfx(void* effect);
void effect_3D_init(EffectInstance* effect);
void effect_3D_update(EffectInstance* effect);
void effect_3D_render(EffectInstance* effect);
void effect_3D_appendGfx(void* effect);
void fx_3D_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, s32 arg7, EffectInstance** outEffect) {
void effect_3D_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, s32 arg7, EffectInstance** outEffect) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
@ -62,9 +62,9 @@ void fx_3D_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32
arg6 *= 8.0f;
bpPtr->unk_00 = 0;
bpPtr->init = fx_3D_init;
bpPtr->update = fx_3D_update;
bpPtr->renderWorld = fx_3D_render;
bpPtr->init = effect_3D_init;
bpPtr->update = effect_3D_update;
bpPtr->renderWorld = effect_3D_render;
bpPtr->unk_14 = NULL;
bpPtr->effectID = EFFECT_3D;
@ -111,10 +111,10 @@ void fx_3D_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32
}
}
void fx_3D_init(EffectInstance* effect) {
void effect_3D_init(EffectInstance* effect) {
}
void fx_3D_update(EffectInstance* effect) {
void effect_3D_update(EffectInstance* effect) {
Effect3DFXData* part = effect->data.unk_3D;
s32 unk_04 = part->unk_04;
s32 unk_5C;
@ -198,11 +198,11 @@ void fx_3D_update(EffectInstance* effect) {
}
}
void fx_3D_render(EffectInstance* effect) {
void effect_3D_render(EffectInstance* effect) {
RenderTask renderTask;
RenderTask* retTask;
renderTask.appendGfx = fx_3D_appendGfx;
renderTask.appendGfx = effect_3D_appendGfx;
renderTask.appendGfxArg = effect;
renderTask.distance = 0;
renderTask.renderMode = RENDER_MODE_2D;
@ -214,7 +214,7 @@ void fx_3D_render(EffectInstance* effect) {
void func_E007A884(void) {
}
void fx_3D_appendGfx(void* effect) {
void effect_3D_appendGfx(void* effect) {
Effect3DFXData* part = ((EffectInstance*)effect)->data.unk_3D;
Matrix4f sp18;
Matrix4f sp58;

View File

@ -13,12 +13,12 @@ u8 D_E008CB14[] = { 255, 255, 64 };
u8 D_E008CB18[] = { 255, 64, 64 };
u8 D_E008CB1C[] = { 255, 64, 255 };
void fx_46_init(EffectInstance* effect);
void fx_46_update(EffectInstance* effect);
void fx_46_render(EffectInstance* effect);
void fx_46_appendGfx(void* effect);
void effect_46_init(EffectInstance* effect);
void effect_46_update(EffectInstance* effect);
void effect_46_render(EffectInstance* effect);
void effect_46_appendGfx(void* effect);
EffectInstance* fx_46_main(s32 arg0, PlayerStatus* arg1, f32 arg2, s32 arg3) {
EffectInstance* effect_46_main(s32 arg0, PlayerStatus* arg1, f32 arg2, s32 arg3) {
EffectBlueprint bp;
EffectInstance* effect;
Effect46FXData* part;
@ -26,9 +26,9 @@ EffectInstance* fx_46_main(s32 arg0, PlayerStatus* arg1, f32 arg2, s32 arg3) {
s32 index;
s32 i;
bp.init = fx_46_init;
bp.update = fx_46_update;
bp.renderWorld = fx_46_render;
bp.init = effect_46_init;
bp.update = effect_46_update;
bp.renderWorld = effect_46_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_46;
@ -123,10 +123,10 @@ EffectInstance* fx_46_main(s32 arg0, PlayerStatus* arg1, f32 arg2, s32 arg3) {
return effect;
}
void fx_46_init(EffectInstance* effect) {
void effect_46_init(EffectInstance* effect) {
}
void fx_46_update(EffectInstance* effect) {
void effect_46_update(EffectInstance* effect) {
Effect46FXData* part = effect->data.unk_46;
s32 unk_00;
s32 unk_24;
@ -184,11 +184,11 @@ void fx_46_update(EffectInstance* effect) {
}
}
void fx_46_render(EffectInstance* effect) {
void effect_46_render(EffectInstance* effect) {
RenderTask renderTask;
RenderTask* retTask;
renderTask.appendGfx = fx_46_appendGfx;
renderTask.appendGfx = effect_46_appendGfx;
renderTask.appendGfxArg = effect;
renderTask.distance = 0;
renderTask.renderMode = RENDER_MODE_2D;
@ -197,7 +197,7 @@ void fx_46_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_REFLECT_FLOOR;
}
void fx_46_appendGfx(void* effect) {
void effect_46_appendGfx(void* effect) {
Effect46FXData* part = ((EffectInstance*)effect)->data.unk_46;
s32 unk_00;
s32 unk_1C = part->unk_1C;

View File

@ -12,12 +12,12 @@ Gfx* D_E00C6C9C[] = {
D_09001B70_3CF250, D_09001B70_3CF250, D_09001B70_3CF250, NULL, NULL
};
void fx_63_init(EffectInstance* effect);
void fx_63_update(EffectInstance* effect);
void fx_63_render(EffectInstance* effect);
void fx_63_appendGfx(void* effect);
void effect_63_init(EffectInstance* effect);
void effect_63_update(EffectInstance* effect);
void effect_63_render(EffectInstance* effect);
void effect_63_appendGfx(void* effect);
EffectInstance* fx_63_main(
EffectInstance* effect_63_main(
s32 arg0,
f32 arg1,
f32 arg2,
@ -43,9 +43,9 @@ EffectInstance* fx_63_main(
numParts = 1;
}
bpPtr->init = fx_63_init;
bpPtr->update = fx_63_update;
bpPtr->renderWorld = fx_63_render;
bpPtr->init = effect_63_init;
bpPtr->update = effect_63_update;
bpPtr->renderWorld = effect_63_render;
bpPtr->unk_00 = 0;
bpPtr->unk_14 = NULL;
bpPtr->effectID = EFFECT_63;
@ -125,10 +125,10 @@ EffectInstance* fx_63_main(
return effect;
}
void fx_63_init(EffectInstance* effect) {
void effect_63_init(EffectInstance* effect) {
}
void fx_63_update(EffectInstance* effect) {
void effect_63_update(EffectInstance* effect) {
Effect63FXData* part = effect->data.unk_63;
s32 unk_00 = part->unk_00;
s32 unk_24;
@ -146,7 +146,7 @@ void fx_63_update(EffectInstance* effect) {
part->unk_24++;
if (part->unk_20 == 1 && unk_00 == 1) {
shim_load_effect(EFFECT_63);
fx_63_main(2, part->unk_04, part->unk_08, part->unk_0C, part->unk_10, part->unk_14, part->unk_18, 1.0f, 32, 32);
effect_63_main(2, part->unk_04, part->unk_08, part->unk_0C, part->unk_10, part->unk_14, part->unk_18, 1.0f, 32, 32);
}
if (part->unk_20 < 0) {
@ -160,7 +160,7 @@ void fx_63_update(EffectInstance* effect) {
case 0:
if (!(unk_24 & (1 | 2))) {
shim_load_effect(EFFECT_63);
fx_63_main(1, part->unk_04, part->unk_08, part->unk_0C, part->unk_10, part->unk_14, part->unk_18, 1.0f, part->unk_1C, part->unk_1C);
effect_63_main(1, part->unk_04, part->unk_08, part->unk_0C, part->unk_10, part->unk_14, part->unk_18, 1.0f, part->unk_1C, part->unk_1C);
}
break;
case 1:
@ -194,11 +194,11 @@ void fx_63_update(EffectInstance* effect) {
}
}
void fx_63_render(EffectInstance* effect) {
void effect_63_render(EffectInstance* effect) {
RenderTask renderTask;
RenderTask* retTask;
renderTask.appendGfx = fx_63_appendGfx;
renderTask.appendGfx = effect_63_appendGfx;
renderTask.appendGfxArg = effect;
renderTask.distance = 10;
renderTask.renderMode = RENDER_MODE_2D;
@ -207,7 +207,7 @@ void fx_63_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_REFLECT_FLOOR;
}
void fx_63_appendGfx(void* effect) {
void effect_63_appendGfx(void* effect) {
Effect63FXData* part = ((EffectInstance*)effect)->data.unk_63;
Camera* camera = &gCameras[gCurrentCameraID];
s32 unk_34 = part->unk_34;

View File

@ -1,16 +1,16 @@
#include "common.h"
#include "effects_internal.h"
void fx_65_init(EffectInstance* effect);
void fx_65_update(EffectInstance* effect);
void fx_65_render(EffectInstance* effect);
void fx_65_appendGfx(void* effect);
void effect_65_init(EffectInstance* effect);
void effect_65_update(EffectInstance* effect);
void effect_65_render(EffectInstance* effect);
void effect_65_appendGfx(void* effect);
extern Gfx D_09000400_3D15E0[];
Gfx* D_E00CACB0[] = { D_09000400_3D15E0, D_09000400_3D15E0, D_09000400_3D15E0, D_09000400_3D15E0 };
EffectInstance* fx_65_main(
EffectInstance* effect_65_main(
s32 arg0,
f32 arg1,
f32 arg2,
@ -24,9 +24,9 @@ EffectInstance* fx_65_main(
s32 numParts = 1;
s32 i;
bp.init = fx_65_init;
bp.update = fx_65_update;
bp.renderWorld = fx_65_render;
bp.init = effect_65_init;
bp.update = effect_65_update;
bp.renderWorld = effect_65_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_65;
@ -109,10 +109,10 @@ EffectInstance* fx_65_main(
return effect;
}
void fx_65_init(EffectInstance* effect) {
void effect_65_init(EffectInstance* effect) {
}
void fx_65_update(EffectInstance* effect) {
void effect_65_update(EffectInstance* effect) {
Effect65FXData* data = effect->data.unk_65;
s32 unk_00 = data->unk_00;
s32 unk_14;
@ -190,11 +190,11 @@ void fx_65_update(EffectInstance* effect) {
}
}
void fx_65_render(EffectInstance* effect) {
void effect_65_render(EffectInstance* effect) {
RenderTask renderTask;
RenderTask* retTask;
renderTask.appendGfx = fx_65_appendGfx;
renderTask.appendGfx = effect_65_appendGfx;
renderTask.appendGfxArg = effect;
renderTask.distance = 10;
renderTask.renderMode = RENDER_MODE_2D;
@ -203,9 +203,13 @@ void fx_65_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_REFLECT_FLOOR;
}
extern int COMBINED;
extern int ENVIRONMENT;
extern int SHADE;
// floats and more
#ifdef NON_MATCHING
void fx_65_appendGfx(void* effect) {
void effect_65_appendGfx(void* effect) {
Effect65FXData* data = ((EffectInstance*)effect)->data.unk_65; //s6
Matrix4f sp10;
f32 padding[2];
@ -329,7 +333,8 @@ void fx_65_appendGfx(void* effect) {
new_var = 24.0f;
//temp_v1 = data->unk_1B8[idx];
temp_s1 = sp50 - data->unk_1B8[idx];
temp_f22 = (shim_sin_deg((sp50 - data->unk_1B8[idx] * 80) * 4) * 3.0f + 16.0f + temp_s1) * sp58;
temp_f22 = (shim_sin_deg((sp50 - data->unk_1B8[idx] * 80) * 4) * 3.0f + 16.0f + temp_s1);
temp_f22 *= sp58;
temp_s5_2 = sp64;
temp_s5_2 = (data->unk_2AC[idx] * new_var) + temp_s5_2;
@ -389,5 +394,5 @@ void fx_65_appendGfx(void* effect) {
gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
}
#else
INCLUDE_ASM(s32, "effects/effect_65", fx_65_appendGfx);
INCLUDE_ASM(s32, "effects/effect_65", effect_65_appendGfx);
#endif

View File

@ -8,21 +8,21 @@ extern Gfx D_09001A20_3E4380[];
Gfx* D_E00EAA50[2] = { D_09001A00_3E4360, D_09001A20_3E4380 };
Gfx* D_E00EAA58[2] = { D_09001910_3E4270, NULL };
void fx_75_init(EffectInstance* effect);
void fx_75_update(EffectInstance* effect);
void fx_75_render(EffectInstance* effect);
void fx_75_appendGfx(void* effect);
void effect_75_init(EffectInstance* effect);
void effect_75_update(EffectInstance* effect);
void effect_75_render(EffectInstance* effect);
void effect_75_appendGfx(void* effect);
EffectInstance* fx_75_main(s32 arg0, f32 posX, f32 posY, f32 posZ, f32 scale, s32 arg5) {
EffectInstance* effect_75_main(s32 arg0, f32 posX, f32 posY, f32 posZ, f32 scale, s32 arg5) {
EffectBlueprint bp;
EffectInstance* effect;
Effect75FXData* data;
s32 numParts = 1;
s32 i;
bp.init = fx_75_init;
bp.update = fx_75_update;
bp.renderWorld = fx_75_render;
bp.init = effect_75_init;
bp.update = effect_75_update;
bp.renderWorld = effect_75_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_75;
@ -72,10 +72,10 @@ EffectInstance* fx_75_main(s32 arg0, f32 posX, f32 posY, f32 posZ, f32 scale, s3
return effect;
}
void fx_75_init(EffectInstance* effect) {
void effect_75_init(EffectInstance* effect) {
}
void fx_75_update(EffectInstance* effect) {
void effect_75_update(EffectInstance* effect) {
Effect75FXData* data = effect->data.unk_75;
s32 unk_14;
@ -151,7 +151,7 @@ void fx_75_update(EffectInstance* effect) {
+ (data->unk_64 - data->unk_60)) * 0.5;
}
void fx_75_render(EffectInstance* effect) {
void effect_75_render(EffectInstance* effect) {
Effect75FXData* data = effect->data.unk_75;
RenderTask renderTask;
RenderTask* renderTaskPtr = &renderTask;
@ -177,7 +177,7 @@ void fx_75_render(EffectInstance* effect) {
outDist = 0;
}
renderTaskPtr->appendGfx = fx_75_appendGfx;
renderTaskPtr->appendGfx = effect_75_appendGfx;
renderTaskPtr->distance = -outDist;
renderTaskPtr->appendGfxArg = effect;
renderTaskPtr->renderMode = RENDER_MODE_SURFACE_XLU_LAYER1;
@ -189,7 +189,7 @@ void fx_75_render(EffectInstance* effect) {
void func_E00EA664(void) {
}
void fx_75_appendGfx(void* effect) {
void effect_75_appendGfx(void* effect) {
Effect75FXData* data = ((EffectInstance*)effect)->data.unk_75;
Camera* camera = &gCameras[gCurrentCameraID];
s32 type = data->type;

View File

@ -23,21 +23,21 @@ Gfx* D_E0128480[12] = {
Gfx* D_E01284B0[] = { D_09000800_415860 };
void fx_86_init(EffectInstance* effect);
void fx_86_update(EffectInstance* effect);
void fx_86_render(EffectInstance* effect);
void fx_86_appendGfx(void* effect);
void effect_86_init(EffectInstance* effect);
void effect_86_update(EffectInstance* effect);
void effect_86_render(EffectInstance* effect);
void effect_86_appendGfx(void* effect);
EffectInstance* fx_86_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) {
EffectInstance* effect_86_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) {
EffectBlueprint bp;
EffectInstance* effect;
Effect86FXData* data;
Effect86FXData* part;
s32 numParts = 1;
bp.init = fx_86_init;
bp.update = fx_86_update;
bp.renderWorld = fx_86_render;
bp.init = effect_86_init;
bp.update = effect_86_update;
bp.renderWorld = effect_86_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_86;
@ -73,10 +73,10 @@ EffectInstance* fx_86_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32
return effect;
}
void fx_86_init(EffectInstance* effect) {
void effect_86_init(EffectInstance* effect) {
}
void fx_86_update(EffectInstance* effect) {
void effect_86_update(EffectInstance* effect) {
Effect86FXData* data = effect->data.unk_86;
if (effect->flags & 0x10) {
@ -94,11 +94,11 @@ void fx_86_update(EffectInstance* effect) {
}
}
void fx_86_render(EffectInstance* effect) {
void effect_86_render(EffectInstance* effect) {
RenderTask renderTask;
RenderTask* retTask;
renderTask.appendGfx = fx_86_appendGfx;
renderTask.appendGfx = effect_86_appendGfx;
renderTask.appendGfxArg = effect;
renderTask.distance = 10;
renderTask.renderMode = RENDER_MODE_2D;
@ -107,7 +107,7 @@ void fx_86_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_REFLECT_FLOOR;
}
void fx_86_appendGfx(void* effect) {
void effect_86_appendGfx(void* effect) {
Matrix4f sp10;
Matrix4f sp50;
Effect86FXData* part = ((EffectInstance*)effect)->data.unk_86;

View File

@ -0,0 +1,5 @@
#include "effects/gfx/D_09000000_3A33D0.png.inc.c"
#include "effects/gfx/D_09000100_3A34D0.png.inc.c"
#include "effects/gfx/D_09000200_3A35D0.gfx.inc.c"
#include "effects/gfx/D_090002A8_3A3678.gfx.inc.c"
#include "effects/gfx/D_09000358_3A3728.gfx.inc.c"

View File

@ -0,0 +1,19 @@
#include "effects/gfx/D_09000000_3B9A70.png.inc.c"
#include "effects/gfx/D_09000080_3B9AF0.vtx.inc.c"
#include "effects/gfx/D_09000200_3B9C70.gfx.inc.c"
#include "effects/gfx/D_09000248_3B9CB8.gfx.inc.c"
#include "effects/gfx/D_09000258_3B9CC8.gfx.inc.c"
#include "effects/gfx/D_09000268_3B9CD8.gfx.inc.c"
#include "effects/gfx/D_09000278_3B9CE8.gfx.inc.c"
#include "effects/gfx/D_090003A0_3B9E10.gfx.inc.c"
#include "effects/gfx/D_090003B8_3B9E28.vtx.inc.c"
#include "effects/gfx/D_090003D8_3B9E58.gfx.inc.c"
// TODO ???
u8 D_09000418_3B9E88[] = {
0x2, 0x80, 0x1, 0xE0, 0x1, 0xFF, 0x0, 0x0, 0x2, 0x80, 0x1, 0xE0, 0x1, 0xFF, 0x0, 0x0
};
#include "effects/gfx/D_09000428_3B9E98.vtx.inc.c"
#include "effects/gfx/D_09000528_3B9F98.gfx.inc.c"
#include "effects/gfx/D_09000570_3B9FE0.gfx.inc.c"

View File

@ -2,7 +2,11 @@
#include "effects_internal.h"
#include "nu/nusys.h"
s32 D_E00A29D0[] = { 0x09000200, 0x090002A8, 0x09000358 };
extern Gfx D_09000200_3A35D0[];
extern Gfx D_090002A8_3A3678[];
extern Gfx D_09000358_3A3728[];
Gfx* D_E00A29D0[] = { D_09000200_3A35D0, D_090002A8_3A3678, D_09000358_3A3728 };
typedef struct UnkStruct {
/* 0x00 */ s32 unk_00;

View File

@ -19,16 +19,16 @@ void clear_trigger_data(void) {
}
gTriggerCount = 0;
collisionStatus->pushingAgainstWall = -1;
collisionStatus->currentFloor = -1;
collisionStatus->lastTouchedFloor = -1;
collisionStatus->currentCeiling = -1;
collisionStatus->currentInspect = -1;
collisionStatus->pushingAgainstWall = NO_COLLIDER;
collisionStatus->currentFloor = NO_COLLIDER;
collisionStatus->lastTouchedFloor = NO_COLLIDER;
collisionStatus->currentCeiling = NO_COLLIDER;
collisionStatus->currentInspect = NO_COLLIDER;
collisionStatus->unk_0C = -1;
collisionStatus->unk_0E = -1;
collisionStatus->unk_10 = -1;
collisionStatus->currentWall = -1;
collisionStatus->lastWallHammered = -1;
collisionStatus->currentWall = NO_COLLIDER;
collisionStatus->lastWallHammered = NO_COLLIDER;
collisionStatus->touchingWallTrigger = 0;
collisionStatus->bombetteExploded = -1;
collisionStatus->bombetteExplosionPos.x = 0.0f;

View File

@ -169,7 +169,7 @@ void action_update_spin(void) {
playerSpinState->spinDirection.x = sin_rad(DEG_TO_RAD(angle)) * playerSpinState->spinDirectionMagnitude;
playerSpinState->spinDirection.y = -cos_rad(DEG_TO_RAD(angle)) * playerSpinState->spinDirectionMagnitude;
playerStatus->currentStateTime--;
if ((playerStatus->currentStateTime) == 0) {
if (playerStatus->currentStateTime == 0) {
playerSpinState->stopSoundTimer = 4;
set_action_state(ACTION_STATE_IDLE);
playerStatus->flags &= ~PS_FLAG_SPINNING;
@ -183,7 +183,7 @@ void action_update_spin(void) {
if (playerStatus->actionSubstate == SUBSTATE_SPIN_0) {
if (playerStatus->animFlags & PA_FLAG_INTERRUPT_SPIN) {
playerStatus->actionSubstate = SUBSTATE_SPIN_1;
} else if (gCollisionStatus.pushingAgainstWall >= 0) {
} else if (gCollisionStatus.pushingAgainstWall > NO_COLLIDER) {
playerSpinState->hitWallTime++;
if (playerSpinState->hitWallTime >= 10) {
playerStatus->actionSubstate = SUBSTATE_SPIN_1;

View File

@ -1,5 +1,5 @@
#include "kgr_02.h"
API_CALLABLE(N(HasBombetteExploded)) {
if (gCollisionStatus.bombetteExploded >= 0) {
script->varTable[1] = TRUE;

View File

@ -68,7 +68,7 @@ API_CALLABLE(N(GetBombetteExplodeGround)) {
Npc* partner = get_npc_safe(NPC_PARTNER);
s32 colliderID = NO_COLLIDER;
if (gCollisionStatus.bombetteExploded > NO_COLLIDER) {
if (gCollisionStatus.bombetteExploded >= 0) {
f32 depth = 11.0f;
f32 x = partner->pos.x;
f32 y = partner->pos.y + depth;
@ -86,9 +86,9 @@ API_CALLABLE(N(GetBombetteExplodeGround)) {
}
s32 N(IcebergBobbingOffsets)[] = {
0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
0, -1, -1, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -1, -1,
0x8000,
0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
0, -1, -1, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -1, -1,
0x8000,
};
EvtScript N(EVS_UpdateIceberg) = {

View File

@ -193,7 +193,7 @@ void func_802BD414_31E184(Npc* npc) {
npc->pos.z += (z - npc->pos.z) * 0.5f;
} else {
npc_move_heading(npc, sp24, sp20);
collisionStatus->pushingAgainstWall = -1;
collisionStatus->pushingAgainstWall = NO_COLLIDER;
}
sp24 = 2.0f;
sp20 = clamp_angle(npc->yaw - 30.0f);

View File

@ -1109,7 +1109,7 @@ segments:
type: bin
start: 0x3EB3E0
vram: 0xE00A2000
- name: _3A33D0
- name: effect_gfx_motion_blur_flame
type: bin
start: 0x3EBE20
- name: effect_energy_orb_wave
@ -1193,7 +1193,7 @@ segments:
type: bin
start: 0x401620
vram: 0xE00BA000
- name: _3B9A70
- name: effect_gfx_underwater
type: bin
start: 0x4024C0
- name: effect_lightning_bolt

View File

@ -53,7 +53,7 @@ energy_shockwave_main = 0xE0072000; // segment:effect_energy_shockwave
shimmer_wave_main = 0xE0074000; // segment:effect_shimmer_wave
aura_main = 0xE0076000; // segment:effect_aura
bulb_glow_main = 0xE0078000; // segment:effect_bulb_glow
fx_3D_main = 0xE007A000; // segment:effect_effect_3D
effect_3D_main = 0xE007A000; // segment:effect_effect_3D
blast_main = 0xE007C000; // segment:effect_blast
fire_flower_main = 0xE007E000; // segment:effect_fire_flower
recover_main = 0xE0080000; // segment:effect_recover
@ -62,7 +62,7 @@ bombette_breaking_main = 0xE0084084; // segment:effect_bombette_breaking
firework_main = 0xE0086000; // segment:effect_firework
confetti_main = 0xE008817C; // segment:effect_confetti
snowfall_main = 0xE008A188; // segment:effect_snowfall
fx_46_main = 0xE008C000; // segment:effect_effect_46
effect_46_main = 0xE008C000; // segment:effect_effect_46
gather_magic_main = 0xE008E000; // segment:effect_gather_magic
attack_result_text_main = 0xE0090000; // segment:effect_attack_result_text
small_gold_sparkle_main = 0xE0092000; // segment:effect_small_gold_sparkle
@ -91,9 +91,9 @@ water_splash_main = 0xE00BE000; // segment:effect_water_splash
snowman_doll_main = 0xE00C0000; // segment:effect_snowman_doll
fright_jar_main = 0xE00C2000; // segment:effect_fright_jar
stop_watch_main = 0xE00C4000; // segment:effect_stop_watch
fx_63_main = 0xE00C6000; // segment:effect_effect_63
effect_63_main = 0xE00C6000; // segment:effect_effect_63
throw_spiny_main = 0xE00C8000; // segment:effect_throw_spiny
fx_65_main = 0xE00CA000; // segment:effect_effect_65
effect_65_main = 0xE00CA000; // segment:effect_effect_65
tubba_heart_attack_main = 0xE00CC000; // segment:effect_tubba_heart_attack
whirlwind_main = 0xE00CE000; // segment:effect_whirlwind
red_impact_main = 0xE00D0000; // segment:effect_red_impact
@ -108,7 +108,7 @@ hieroglyphs_main = 0xE00E2000; // segment:effect_hieroglyphs
misc_particles_main = 0xE00E4000; // segment:effect_misc_particles
static_status_main = 0xE00E6000; // segment:effect_static_status
moving_cloud_main = 0xE00E8000; // segment:effect_moving_cloud
fx_75_main = 0xE00EA000; // segment:effect_effect_75
effect_75_main = 0xE00EA000; // segment:effect_effect_75
firework_rocket_main = 0xE010A000; // segment:effect_firework_rocket
peach_star_beam_main = 0xE010C000; // segment:effect_peach_star_beam
chapter_change_main = 0xE010E32C; // segment:effect_chapter_change
@ -124,7 +124,7 @@ sun_main = 0xE0120000; // segment:effect_sun
star_spirits_energy_main = 0xE0122000; // segment:effect_star_spirits_energy
pink_sparkles_main = 0xE0124000; // segment:effect_pink_sparkles
star_outline_main = 0xE0126000; // segment:effect_star_outline
fx_86_main = 0xE0128000; // segment:effect_effect_86
effect_86_main = 0xE0128000; // segment:effect_effect_86
machi_settings = 0x802407A0; // segment:machi
mac_00_settings = 0x80243BE0; // segment:mac_00

View File

@ -384,23 +384,23 @@ segments:
- [auto, .rodata, B0E0]
- [auto, .rodata, camera]
- [auto, .rodata, state_logos]
- [auto, .rodata, state_file_select]
- [auto, .rodata, 111f0_len_860]
- [auto, .rodata, state_intro]
- [auto, .rodata, state_title_screen]
- [auto, .rodata, state_demo]
- [auto, .rodata, npc]
- [auto, .rodata, encounter]
- [auto, .rodata, status_icons]
- [auto, .rodata, 23680]
- [auto, .rodata, audio/28910_len_5090]
- [auto, .rodata, audio/2e230_len_2190]
- [auto, .rodata, audio/30450]
- [auto, .rodata, audio/33450]
- [auto, .rodata, audio/reverb]
- [auto, .rodata, state_file_select]
- [auto, .rodata, 111f0_len_860]
- [auto, .rodata, state_intro]
- [auto, .rodata, state_title_screen]
- [auto, .rodata, state_demo]
- [auto, .rodata, npc]
- [auto, .rodata, encounter]
- [auto, .rodata, status_icons]
- [auto, .rodata, 23680]
- [auto, .rodata, audio/28910_len_5090]
- [auto, .rodata, audio/2e230_len_2190]
- [auto, .rodata, audio/30450]
- [auto, .rodata, audio/33450]
- [auto, .rodata, audio/reverb]
- [auto, .rodata, 5B320]
- [auto, .rodata, world/world]
- [auto, .rodata, world/world]
- [0x74E80, rodata, os/osSetIntMask]
- [0x74F00]
- [auto, .rodata, os/devmgr]
@ -990,7 +990,7 @@ segments:
type: bin
start: 0x3AAC90
vram: 0xE00A2000
- name: _3A33D0
- name: effect_gfx_motion_blur_flame
type: bin
start: 0x3AB6D0
- name: effect_energy_orb_wave
@ -1074,7 +1074,7 @@ segments:
type: bin
start: 0x3C0ED0
vram: 0xE00BA000
- name: _3B9A70
- name: effect_gfx_underwater
type: bin
start: 0x3C1D70
- name: effect_lightning_bolt

View File

@ -927,7 +927,7 @@ energy_shockwave_main = 0xE0072000; // segment:effect_energy_shockwave
shimmer_wave_main = 0xE0074000; // segment:effect_shimmer_wave
aura_main = 0xE0076000; // segment:effect_aura
bulb_glow_main = 0xE0078000; // segment:effect_bulb_glow
fx_3D_main = 0xE007A000; // segment:effect_effect_3D
effect_3D_main = 0xE007A000; // segment:effect_effect_3D
blast_main = 0xE007C000; // segment:effect_blast
fire_flower_main = 0xE007E000; // segment:effect_fire_flower
recover_main = 0xE0080000; // segment:effect_recover
@ -936,7 +936,7 @@ bombette_breaking_main = 0xE0084084; // segment:effect_bombette_breaking
firework_main = 0xE0086000; // segment:effect_firework
confetti_main = 0xE008817C; // segment:effect_confetti
snowfall_main = 0xE008A188; // segment:effect_snowfall
fx_46_main = 0xE008C000; // segment:effect_effect_46
effect_46_main = 0xE008C000; // segment:effect_effect_46
gather_magic_main = 0xE008E000; // segment:effect_gather_magic
attack_result_text_main = 0xE0090000; // segment:effect_attack_result_text
small_gold_sparkle_main = 0xE0092000; // segment:effect_small_gold_sparkle
@ -965,9 +965,9 @@ water_splash_main = 0xE00BE000; // segment:effect_water_splash
snowman_doll_main = 0xE00C0000; // segment:effect_snowman_doll
fright_jar_main = 0xE00C2000; // segment:effect_fright_jar
stop_watch_main = 0xE00C4000; // segment:effect_stop_watch
fx_63_main = 0xE00C6000; // segment:effect_effect_63
effect_63_main = 0xE00C6000; // segment:effect_effect_63
throw_spiny_main = 0xE00C8000; // segment:effect_throw_spiny
fx_65_main = 0xE00CA000; // segment:effect_effect_65
effect_65_main = 0xE00CA000; // segment:effect_effect_65
tubba_heart_attack_main = 0xE00CC000; // segment:effect_tubba_heart_attack
whirlwind_main = 0xE00CE000; // segment:effect_whirlwind
red_impact_main = 0xE00D0000; // segment:effect_red_impact
@ -982,7 +982,7 @@ hieroglyphs_main = 0xE00E2000; // segment:effect_hieroglyphs
misc_particles_main = 0xE00E4000; // segment:effect_misc_particles
static_status_main = 0xE00E6000; // segment:effect_static_status
moving_cloud_main = 0xE00E8000; // segment:effect_moving_cloud
fx_75_main = 0xE00EA000; // segment:effect_effect_75
effect_75_main = 0xE00EA000; // segment:effect_effect_75
firework_rocket_main = 0xE010A000; // segment:effect_firework_rocket
peach_star_beam_main = 0xE010C000; // segment:effect_peach_star_beam
chapter_change_main = 0xE010E32C; // segment:effect_chapter_change
@ -998,7 +998,7 @@ sun_main = 0xE0120000; // segment:effect_sun
star_spirits_energy_main = 0xE0122000; // segment:effect_star_spirits_energy
pink_sparkles_main = 0xE0124000; // segment:effect_pink_sparkles
star_outline_main = 0xE0126000; // segment:effect_star_outline
fx_86_main = 0xE0128000; // segment:effect_effect_86
effect_86_main = 0xE0128000; // segment:effect_effect_86
b_area_kzn2_dmaTable = 0x8022AA84;
b_area_kmr_part_1_Formations = 0x802194D4;

View File

@ -5017,7 +5017,24 @@ segments:
subsegments:
- [0x3A2990, c, motion_blur_flame]
- [0x3A3360]
- [0x3A33D0, bin] # motion_blur_flame gfx
- name: effect_gfx_motion_blur_flame
dir: effects/gfx
type: code
start: 0x3A33D0
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3A33D0, c, motion_blur_flame]
- start: 0x3A33D0
type: .data
name: motion_blur_flame
subsegments:
- [0x3A33D0, i8, D_09000000_3A33D0, 16, 16]
- [0x3A34D0, i8, D_09000100_3A34D0, 16, 16]
- [0x3A35D0, gfx, D_09000200_3A35D0]
- [0x3A3678, gfx, D_090002A8_3A3678]
- [0x3A3728, gfx, D_09000358_3A3728]
- [0x3A37D8]
- name: effect_energy_orb_wave
dir: effects
type: code
@ -5414,9 +5431,32 @@ segments:
subsegments:
- [0x3B8BD0, c, underwater]
- [0x3B9A50]
- start: 0x3B9A70 # underwater gfx
type: bin
align: 16
- name: effect_gfx_underwater
dir: effects/gfx
type: code
start: 0x3B9A70
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3B9A70, c, underwater]
- start: 0x3B9A70
type: .data
name: underwater
subsegments:
- [0x3B9A70, i4, D_09000000_3B9A70, 16, 16]
- [0x3B9AF0, vtx, D_09000080_3B9AF0]
- [0x3B9C70, gfx, D_09000200_3B9C70]
- [0x3B9CB8, gfx, D_09000248_3B9CB8]
- [0x3B9CC8, gfx, D_09000258_3B9CC8]
- [0x3B9CD8, gfx, D_09000268_3B9CD8]
- [0x3B9CE8, gfx, D_09000278_3B9CE8]
- [0x3B9E10, gfx, D_090003A0_3B9E10]
- [0x3B9E28, vtx, D_090003B8_3B9E28]
- [0x3B9E58, gfx, D_090003D8_3B9E58]
- [0x3B9E88] # unmapped
- [0x3B9E98, vtx, D_09000428_3B9E98]
- [0x3B9F98, gfx, D_09000528_3B9F98]
- [0x3B9FE0, gfx, D_09000570_3B9FE0]
- name: effect_lightning_bolt
dir: effects
type: code