more effects functions (#836)

* water_fountain: matched main

* water_fountain: Matched update

* quizmo_audience: Matched main

* star_outline:  Matched main

* star_outline: Matched update

* quizmo_audience: Removed unused struct
This commit is contained in:
Spencer Vaughn 2022-10-27 08:07:27 -05:00 committed by GitHub
parent b64886fa8c
commit f67d317d5a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 266 additions and 580 deletions

View File

@ -1434,8 +1434,18 @@ typedef struct MerlinHouseStarsFXData {
} MerlinHouseStarsFXData; // size = 0x3C
typedef struct QuizmoAudienceFXData {
/* 0x00 */ char todo[0];
} QuizmoAudienceFXData; // size = unknown
/* 0x00 */ s32 unk_00;
/* 0x04 */ s32 timeLeft;
/* 0x08 */ s32 lifeTime;
/* 0x0C */ Vec3f pos;
/* 0x18 */ s32 unk_18;
/* 0x1C */ s32 unk_1C[10];
/* 0x44 */ s32 unk_44[10];
/* 0x6C */ s32 unk_6C[10];
/* 0x94 */ f32 unk_94[10];
/* 0xBC */ f32 unk_BC[10];
/* 0xE4 */ f32 unk_E4[10];
} QuizmoAudienceFXData; // size = 0x10C
typedef struct ButterfliesFXData {
/* 0x00 */ s32 unk_00;
@ -1550,21 +1560,22 @@ typedef struct WaterfallFXData {
} WaterfallFXData; // size = unknown
typedef struct WaterFountainFXData {
/* 0x00 */ char unk_00[0x4];
/* 0x04 */ Vec3f unk_04;
/* 0x10 */ char unk_10[0x8];
/* 0x00 */ s32 unk_00;
/* 0x04 */ Vec3f pos;
/* 0x10 */ s32 timeLeft;
/* 0x14 */ s32 lifeTime;
/* 0x18 */ s32 unk_18;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ char unk_24[0x4];
/* 0x24 */ s32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ s32 unk_30;
/* 0x34 */ char unk_34[0x4];
/* 0x34 */ f32 unk_34;
/* 0x38 */ f32 unk_38;
/* 0x3C */ f32 unk_3C;
/* 0x40 */ f32 unk_40;
} WaterFountainFXData; // size = ?
} WaterFountainFXData; // size = 0x44
typedef struct UnderwaterFXData {
/* 0x00 */ char todo[0];
@ -2289,15 +2300,25 @@ typedef struct PinkSparklesFXData {
typedef struct StarOutlineFXData {
/* 0x00 */ s16 unk_00;
/* 0x02 */ char unk_02[0x2];
/* 0x02 */ s16 unk_02;
/* 0x04 */ Vec3f pos;
/* 0x10 */ char unk_10[0x14];
/* 0x10 */ s32 timeLeft;
/* 0x14 */ s32 lifeTime;
/* 0x18 */ s32 unk_18;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ s32 unk_24;
/* 0x28 */ char unk_28[0xC];
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ s32 unk_30;
/* 0x34 */ s32 unk_34;
/* 0x38 */ f32 unk_38;
/* 0x3C */ Vec3f unk_3C;
} StarOutlineFXData; // size = unknown
/* 0x48 */ f32 unk_48;
/* 0x4C */ f32 unk_4C;
/* 0x50 */ f32 unk_50;
/* 0x54 */ f32 unk_54;
} StarOutlineFXData; // size = 0x58
typedef struct Effect86FXData {
/* 0x00 */ s32 unk_00;

View File

@ -115,7 +115,7 @@ FX_MAIN(quizmo_answer_main);
EffectInstance* motion_blur_flame_main(s32, f32, f32, f32, f32, s32);
EffectInstance* energy_orb_wave_main(s32, f32, f32, f32, f32, s32);
EffectInstance* merlin_house_stars_main(s32, f32, f32, f32);
FX_MAIN(quizmo_audience_main);
EffectInstance* quizmo_audience_main(s32, f32, f32, f32);
EffectInstance* butterflies_main(s32, f32, f32, f32);
EffectInstance* stat_change_main(s32, f32, f32, f32, f32, s32);
EffectInstance* snaking_static_main(s32, f32, f32, f32, f32, s32);
@ -123,7 +123,7 @@ EffectInstance* thunderbolt_ring_main(s32, f32, f32, f32, f32, s32);
EffectInstance* squirt_main(s32, f32, f32, f32, f32, f32, f32, f32, s32);
FX_MAIN(water_block_main);
FX_MAIN(waterfall_main);
FX_MAIN(water_fountain_main);
EffectInstance* water_fountain_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(underwater_main);
EffectInstance* lightning_bolt_main(s32, f32, f32, f32, f32, f32, f32, f32, s32);
FX_MAIN(water_splash_main);
@ -162,7 +162,7 @@ FX_MAIN(ice_pillar_main);
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);
FX_MAIN(star_outline_main);
EffectInstance* star_outline_main(s32, f32, f32, f32, f32, s32);
EffectInstance* fx_86_main(s32, f32, f32, f32, f32, s32);
#endif

View File

@ -302,9 +302,9 @@ ApiStatus func_80238540_7081E0(Evt* script, s32 isInitialCall) {
x = 0.0f;
y = 0.0f;
add_vec2D_polar(&x, &y, partner->scale.x * -15.0f, state->angle);
D_8023C070->data.waterFountain->unk_04.x = state->currentPos.x + x;
D_8023C070->data.waterFountain->unk_04.y = state->currentPos.y + y;
D_8023C070->data.waterFountain->unk_04.z = state->currentPos.z + 5.0f;
D_8023C070->data.waterFountain->pos.x = state->currentPos.x + x;
D_8023C070->data.waterFountain->pos.y = state->currentPos.y + y;
D_8023C070->data.waterFountain->pos.z = state->currentPos.z + 5.0f;
D_8023C070->data.waterFountain->unk_38 = state->angle;
D_8023C070->data.waterFountain->unk_3C = partner->scale.x;
D_8023C070->data.waterFountain->unk_40 = partner->scale.x;
@ -327,9 +327,9 @@ ApiStatus func_80238540_7081E0(Evt* script, s32 isInitialCall) {
script->functionTemp[0] = 3;
case 3:
add_vec2D_polar(&state->currentPos.x, &state->currentPos.y, state->speed, state->angle);
D_8023C070->data.waterFountain->unk_04.x = state->currentPos.x;
D_8023C070->data.waterFountain->unk_04.y = state->currentPos.y;
D_8023C070->data.waterFountain->unk_04.z = state->currentPos.z;
D_8023C070->data.waterFountain->pos.x = state->currentPos.x;
D_8023C070->data.waterFountain->pos.y = state->currentPos.y;
D_8023C070->data.waterFountain->pos.z = state->currentPos.z;
D_8023C070->data.waterFountain->unk_38 = state->angle;
D_8023C070->data.waterFountain->unk_3C = partner->scale.x;
D_8023C070->data.waterFountain->unk_40 = partner->scale.x;

View File

@ -11,9 +11,47 @@ s32 D_E00A8690[] = { D_E00A8648, 0x18000000, D_E00A8678, 0x0C000000 };
void quizmo_audience_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/quizmo_audience", quizmo_audience_main);
void quizmo_audience_init(EffectInstance* effect);
void quizmo_audience_update(EffectInstance* effect);
void quizmo_audience_render(EffectInstance* effect);
void quizmo_audience_init(void) {
EffectInstance* quizmo_audience_main(s32 arg0, f32 posX, f32 posY, f32 posZ) {
EffectBlueprint effectBp;
EffectInstance* effect;
QuizmoAudienceFXData* data;
s32 numParts = 1;
s32 i;
effectBp.init = quizmo_audience_init;
effectBp.update = quizmo_audience_update;
effectBp.renderWorld = quizmo_audience_render;
effectBp.unk_00 = 0;
effectBp.unk_14 = 0;
effectBp.effectID = EFFECT_QUIZMO_AUDIENCE;
effect = shim_create_effect_instance(&effectBp);
effect->numParts = numParts;
data = effect->data.quizmoAudience = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(data != NULL);
data->timeLeft = 100;
data->unk_00 = arg0;
data->unk_18 = 255;
data->pos.x = posX;
data->pos.y = posY;
data->pos.z = posZ;
data->lifeTime = 0;
for(i = 0; i < 10; i++) {
data->unk_1C[i] = 0;
data->unk_BC[i] = data->unk_E4[i] = 0.0f;
}
return effect;
}
void quizmo_audience_init(EffectInstance* effect) {
}
INCLUDE_ASM(s32, "effects/quizmo_audience", quizmo_audience_update);

View File

@ -3,12 +3,126 @@
void star_outline_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/star_outline", star_outline_main);
void star_outline_init(EffectInstance* effect);
void star_outline_update(EffectInstance* effect);
void star_outline_render(EffectInstance* effect);
void star_outline_init(void) {
EffectInstance* star_outline_main(s32 arg0, f32 posX, f32 posY, f32 posZ, f32 arg4, s32 arg5) {
EffectBlueprint effectBp;
EffectInstance* effect;
StarOutlineFXData* data;
s32 numParts = 1;
effectBp.init = star_outline_init;
effectBp.update = star_outline_update;
effectBp.renderWorld = star_outline_render;
effectBp.unk_00 = 0;
effectBp.unk_14 = 0;
effectBp.effectID = EFFECT_STAR_OUTLINE;
effect = shim_create_effect_instance(&effectBp);
effect->numParts = numParts;
data = effect->data.starOutline = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(data != NULL);
data->unk_00 = 1;
data->unk_02 = arg0;
data->lifeTime = 0;
if (arg5 <= 0) {
data->timeLeft = 1000;
} else {
data->timeLeft = arg5;
}
data->pos.x = posX;
data->pos.y = posY;
data->pos.z = posZ;
data->unk_38 = arg4;
data->unk_18 = 255;
data->unk_1C = 255;
data->unk_20 = 120;
data->unk_28 = 255;
data->unk_2C = 120;
data->unk_30 = 0;
data->unk_34 = 255;
data->unk_24 = 255;
data->unk_3C.x = 0;
data->unk_3C.y = 0;
data->unk_3C.z = 0;
return effect;
}
INCLUDE_ASM(s32, "effects/star_outline", star_outline_update);
void star_outline_init(EffectInstance* effect) {
}
void star_outline_update(EffectInstance* effect) {
StarOutlineFXData* data = effect->data.starOutline;
f32 temp_f20;
s32 lifeTime;
s32 temp_v1_3;
s32 temp_v1_4;
s32 temp_a2 = data->unk_02;
if (effect->flags & 16) {
effect->flags &= ~16;
data->timeLeft = 16;
}
if (data->timeLeft < 1000) {
data->timeLeft--;
}
data->lifeTime++;
if (data->timeLeft < 0) {
shim_remove_effect(effect);
return;
}
lifeTime = data->lifeTime;
if (data->timeLeft < 16) {
temp_v1_3 = data->timeLeft * 16;
if (temp_v1_3 < data->unk_24) {
data->unk_24 = temp_v1_3;
}
if (temp_v1_3 < data->unk_34) {
data->unk_34 = temp_v1_3;
}
}
if (lifeTime < 16) {
temp_v1_4 = (lifeTime * 16) + 15;
if (data->unk_24 < temp_v1_4) {
data->unk_24 = temp_v1_4;
}
if (data->unk_34 < temp_v1_4) {
data->unk_34 = temp_v1_4;
}
}
data->unk_48 = data->unk_3C.x;
data->unk_4C = data->unk_3C.y;
data->unk_50 = data->unk_3C.z;
data->unk_54 = data->unk_38;
if (temp_a2 == 1) {
temp_f20 = lifeTime;
data->unk_3C.x = lifeTime * 4;
data->unk_24 = 255;
data->unk_3C.y = (lifeTime * 4.0f * 0.4953);
data->unk_3C.z = (lifeTime * 4.0f * 0.2234);
data->unk_34 = ((shim_sin_deg (temp_f20 * 7.12343)) * 127.0f) + 128.0f;
data->unk_18 = ((shim_sin_deg (temp_f20 * 1.231)) * 127.0f) + 215.0f;
data->unk_1C = ((shim_sin_deg (temp_f20 * 0.531)) * 127.0f) + 215.0f;
data->unk_20 = ((shim_sin_deg (temp_f20 * 3.231)) * 127.0f) + 215.0f;
data->unk_28 = ((shim_sin_deg (temp_f20 * 0.298)) * 127.0f) + 188.0f;
data->unk_2C = ((shim_sin_deg (temp_f20 * 0.831)) * 127.0f) + 188.0f;
data->unk_30 = ((shim_sin_deg (temp_f20 * 2.231)) * 127.0f) + 188.0f;
data->unk_38 = ((shim_sin_deg (temp_f20 * 2.044)) * 0.3) + 0.7;
}
if (lifeTime == 1) {
data->unk_48 = data->unk_3C.x;
data->unk_4C = data->unk_3C.y;
data->unk_50 = data->unk_3C.z;
data->unk_54 = data->unk_38;
}
}
void star_outline_render(EffectInstance* effect) {
RenderTask renderTask;

View File

@ -10,13 +10,77 @@ s32 D_E00B8B58[] = { 0x0000001E, 0x008C0000, 0xFF000006, 0x001E0078, 0x0000F000,
s32 D_E00B8CA4[] = { 0x00000000, 0x00000028, 0x00000037, 0x000000BE, 0x00000014, 0x00000082, 0x0000010E, 0x0000012C, 0x00000000, 0x00000000, 0x00000000 };
void water_fountain_appendGfx(void* effect);
void water_fountain_init(EffectInstance* effect);
void water_fountain_update(EffectInstance* effect);
void water_fountain_render(EffectInstance* effect);
INCLUDE_ASM(s32, "effects/water_fountain", water_fountain_main);
EffectInstance* water_fountain_main(s32 arg0, f32 posX, f32 posY, f32 posZ, f32 arg4, s32 arg5) {
EffectBlueprint effectBp;
EffectInstance* effect;
WaterFountainFXData* data;
s32 numParts = 1;
void water_fountain_init(void) {
effectBp.init = water_fountain_init;
effectBp.update = water_fountain_update;
effectBp.renderWorld = water_fountain_render;
effectBp.unk_00 = 0;
effectBp.unk_14 = 0;
effectBp.effectID = EFFECT_WATER_FOUNTAIN;
effect = shim_create_effect_instance(&effectBp);
effect->numParts = numParts;
data = effect->data.waterFountain = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(data != NULL);
data->unk_00 = arg0;
data->lifeTime = 0;
if (arg5 <= 0) {
data->timeLeft = 1000;
} else {
data->timeLeft = arg5;
}
data->unk_24 = 255;
data->pos.x = posX;
data->pos.y = posY;
data->pos.z = posZ;
data->unk_34 = arg4;
data->unk_18 = 70;
data->unk_1C = 180;
data->unk_20 = 255;
data->unk_28 = 255;
data->unk_2C = 255;
data->unk_30 = 255;
data->unk_38 = 0;
data->unk_3C = 1.0f;
data->unk_40 = 1.0f;
return effect;
}
void water_fountain_init(EffectInstance* effect) {
}
void water_fountain_update(EffectInstance* effect) {
WaterFountainFXData* data = effect->data.waterFountain;
if (effect->flags & 16) {
effect->flags &= ~16;
data->timeLeft = 16;
}
if (data->timeLeft < 1000) {
data->timeLeft--;
}
data->lifeTime++;
if (data->timeLeft < 0) {
shim_remove_effect(effect);
return;
}
if (data->lifeTime < 8) {
data->unk_24 = (data->lifeTime * 32) + 31;
}
}
INCLUDE_ASM(s32, "effects/water_fountain", water_fountain_update);
void water_fountain_render(EffectInstance* effect) {
RenderTask renderTask;

View File

@ -1,70 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel quizmo_audience_main
/* 3A70F0 E00A8000 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 3A70F4 E00A8004 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3A70F8 E00A8008 4485A000 */ mtc1 $a1, $f20
/* 3A70FC E00A800C AFB1002C */ sw $s1, 0x2c($sp)
/* 3A7100 E00A8010 0080882D */ daddu $s1, $a0, $zero
/* 3A7104 E00A8014 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3A7108 E00A8018 4486B000 */ mtc1 $a2, $f22
/* 3A710C E00A801C 27A40010 */ addiu $a0, $sp, 0x10
/* 3A7110 E00A8020 F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3A7114 E00A8024 4487C000 */ mtc1 $a3, $f24
/* 3A7118 E00A8028 3C02E00B */ lui $v0, %hi(quizmo_audience_init)
/* 3A711C E00A802C 244280FC */ addiu $v0, $v0, %lo(quizmo_audience_init)
/* 3A7120 E00A8030 AFA20018 */ sw $v0, 0x18($sp)
/* 3A7124 E00A8034 3C02E00B */ lui $v0, %hi(quizmo_audience_update)
/* 3A7128 E00A8038 24428104 */ addiu $v0, $v0, %lo(quizmo_audience_update)
/* 3A712C E00A803C AFA2001C */ sw $v0, 0x1c($sp)
/* 3A7130 E00A8040 3C02E00B */ lui $v0, %hi(quizmo_audience_render)
/* 3A7134 E00A8044 244282D4 */ addiu $v0, $v0, %lo(quizmo_audience_render)
/* 3A7138 E00A8048 AFA20020 */ sw $v0, 0x20($sp)
/* 3A713C E00A804C 24020054 */ addiu $v0, $zero, 0x54
/* 3A7140 E00A8050 AFBF0030 */ sw $ra, 0x30($sp)
/* 3A7144 E00A8054 AFB00028 */ sw $s0, 0x28($sp)
/* 3A7148 E00A8058 AFA00010 */ sw $zero, 0x10($sp)
/* 3A714C E00A805C AFA00024 */ sw $zero, 0x24($sp)
/* 3A7150 E00A8060 0C080124 */ jal shim_create_effect_instance
/* 3A7154 E00A8064 AFA20014 */ sw $v0, 0x14($sp)
/* 3A7158 E00A8068 2404010C */ addiu $a0, $zero, 0x10c
/* 3A715C E00A806C 24030001 */ addiu $v1, $zero, 1
/* 3A7160 E00A8070 0040802D */ daddu $s0, $v0, $zero
/* 3A7164 E00A8074 0C08012C */ jal shim_general_heap_malloc
/* 3A7168 E00A8078 AE030008 */ sw $v1, 8($s0)
/* 3A716C E00A807C 14400003 */ bnez $v0, .LE00A808C
/* 3A7170 E00A8080 AE02000C */ sw $v0, 0xc($s0)
.LE00A8084:
/* 3A7174 E00A8084 0802A021 */ j .LE00A8084
/* 3A7178 E00A8088 00000000 */ nop
.LE00A808C:
/* 3A717C E00A808C 0000202D */ daddu $a0, $zero, $zero
/* 3A7180 E00A8090 0040182D */ daddu $v1, $v0, $zero
/* 3A7184 E00A8094 44800000 */ mtc1 $zero, $f0
/* 3A7188 E00A8098 24020064 */ addiu $v0, $zero, 0x64
/* 3A718C E00A809C AC620004 */ sw $v0, 4($v1)
/* 3A7190 E00A80A0 240200FF */ addiu $v0, $zero, 0xff
/* 3A7194 E00A80A4 AC710000 */ sw $s1, ($v1)
/* 3A7198 E00A80A8 AC620018 */ sw $v0, 0x18($v1)
/* 3A719C E00A80AC E474000C */ swc1 $f20, 0xc($v1)
/* 3A71A0 E00A80B0 E4760010 */ swc1 $f22, 0x10($v1)
/* 3A71A4 E00A80B4 E4780014 */ swc1 $f24, 0x14($v1)
/* 3A71A8 E00A80B8 AC600008 */ sw $zero, 8($v1)
.LE00A80BC:
/* 3A71AC E00A80BC AC60001C */ sw $zero, 0x1c($v1)
/* 3A71B0 E00A80C0 E46000E4 */ swc1 $f0, 0xe4($v1)
/* 3A71B4 E00A80C4 E46000BC */ swc1 $f0, 0xbc($v1)
/* 3A71B8 E00A80C8 24840001 */ addiu $a0, $a0, 1
/* 3A71BC E00A80CC 2882000A */ slti $v0, $a0, 0xa
/* 3A71C0 E00A80D0 1440FFFA */ bnez $v0, .LE00A80BC
/* 3A71C4 E00A80D4 24630004 */ addiu $v1, $v1, 4
/* 3A71C8 E00A80D8 0200102D */ daddu $v0, $s0, $zero
/* 3A71CC E00A80DC 8FBF0030 */ lw $ra, 0x30($sp)
/* 3A71D0 E00A80E0 8FB1002C */ lw $s1, 0x2c($sp)
/* 3A71D4 E00A80E4 8FB00028 */ lw $s0, 0x28($sp)
/* 3A71D8 E00A80E8 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 3A71DC E00A80EC D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3A71E0 E00A80F0 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3A71E4 E00A80F4 03E00008 */ jr $ra
/* 3A71E8 E00A80F8 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,83 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel star_outline_main
/* 413360 E0126000 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 413364 E0126004 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 413368 E0126008 4485A000 */ mtc1 $a1, $f20
/* 41336C E012600C F7B60040 */ sdc1 $f22, 0x40($sp)
/* 413370 E0126010 4486B000 */ mtc1 $a2, $f22
/* 413374 E0126014 AFB20030 */ sw $s2, 0x30($sp)
/* 413378 E0126018 0080902D */ daddu $s2, $a0, $zero
/* 41337C E012601C F7B80048 */ sdc1 $f24, 0x48($sp)
/* 413380 E0126020 4487C000 */ mtc1 $a3, $f24
/* 413384 E0126024 27A40010 */ addiu $a0, $sp, 0x10
/* 413388 E0126028 AFB1002C */ sw $s1, 0x2c($sp)
/* 41338C E012602C 8FB10064 */ lw $s1, 0x64($sp)
/* 413390 E0126030 3C02E012 */ lui $v0, %hi(star_outline_init)
/* 413394 E0126034 2442612C */ addiu $v0, $v0, %lo(star_outline_init)
/* 413398 E0126038 AFA20018 */ sw $v0, 0x18($sp)
/* 41339C E012603C 3C02E012 */ lui $v0, %hi(star_outline_update)
/* 4133A0 E0126040 24426134 */ addiu $v0, $v0, %lo(star_outline_update)
/* 4133A4 E0126044 AFA2001C */ sw $v0, 0x1c($sp)
/* 4133A8 E0126048 3C02E012 */ lui $v0, %hi(star_outline_render)
/* 4133AC E012604C 244264A4 */ addiu $v0, $v0, %lo(star_outline_render)
/* 4133B0 E0126050 AFA20020 */ sw $v0, 0x20($sp)
/* 4133B4 E0126054 24020085 */ addiu $v0, $zero, 0x85
/* 4133B8 E0126058 AFBF0034 */ sw $ra, 0x34($sp)
/* 4133BC E012605C AFB00028 */ sw $s0, 0x28($sp)
/* 4133C0 E0126060 AFA00010 */ sw $zero, 0x10($sp)
/* 4133C4 E0126064 AFA00024 */ sw $zero, 0x24($sp)
/* 4133C8 E0126068 0C080124 */ jal shim_create_effect_instance
/* 4133CC E012606C AFA20014 */ sw $v0, 0x14($sp)
/* 4133D0 E0126070 24040058 */ addiu $a0, $zero, 0x58
/* 4133D4 E0126074 24030001 */ addiu $v1, $zero, 1
/* 4133D8 E0126078 0040802D */ daddu $s0, $v0, $zero
/* 4133DC E012607C 0C08012C */ jal shim_general_heap_malloc
/* 4133E0 E0126080 AE030008 */ sw $v1, 8($s0)
/* 4133E4 E0126084 0040282D */ daddu $a1, $v0, $zero
/* 4133E8 E0126088 14A00003 */ bnez $a1, .LE0126098
/* 4133EC E012608C AE02000C */ sw $v0, 0xc($s0)
.LE0126090:
/* 4133F0 E0126090 08049824 */ j .LE0126090
/* 4133F4 E0126094 00000000 */ nop
.LE0126098:
/* 4133F8 E0126098 24020001 */ addiu $v0, $zero, 1
/* 4133FC E012609C A4A20000 */ sh $v0, ($a1)
/* 413400 E01260A0 A4B20002 */ sh $s2, 2($a1)
/* 413404 E01260A4 1E200004 */ bgtz $s1, .LE01260B8
/* 413408 E01260A8 ACA00014 */ sw $zero, 0x14($a1)
/* 41340C E01260AC 240203E8 */ addiu $v0, $zero, 0x3e8
/* 413410 E01260B0 0804982F */ j .LE01260BC
/* 413414 E01260B4 ACA20010 */ sw $v0, 0x10($a1)
.LE01260B8:
/* 413418 E01260B8 ACB10010 */ sw $s1, 0x10($a1)
.LE01260BC:
/* 41341C E01260BC 0200102D */ daddu $v0, $s0, $zero
/* 413420 E01260C0 240300FF */ addiu $v1, $zero, 0xff
/* 413424 E01260C4 E4B40004 */ swc1 $f20, 4($a1)
/* 413428 E01260C8 E4B60008 */ swc1 $f22, 8($a1)
/* 41342C E01260CC E4B8000C */ swc1 $f24, 0xc($a1)
/* 413430 E01260D0 C7A00060 */ lwc1 $f0, 0x60($sp)
/* 413434 E01260D4 24040078 */ addiu $a0, $zero, 0x78
/* 413438 E01260D8 ACA30018 */ sw $v1, 0x18($a1)
/* 41343C E01260DC ACA3001C */ sw $v1, 0x1c($a1)
/* 413440 E01260E0 ACA40020 */ sw $a0, 0x20($a1)
/* 413444 E01260E4 ACA30028 */ sw $v1, 0x28($a1)
/* 413448 E01260E8 ACA4002C */ sw $a0, 0x2c($a1)
/* 41344C E01260EC ACA00030 */ sw $zero, 0x30($a1)
/* 413450 E01260F0 ACA30034 */ sw $v1, 0x34($a1)
/* 413454 E01260F4 ACA30024 */ sw $v1, 0x24($a1)
/* 413458 E01260F8 ACA0003C */ sw $zero, 0x3c($a1)
/* 41345C E01260FC ACA00040 */ sw $zero, 0x40($a1)
/* 413460 E0126100 ACA00044 */ sw $zero, 0x44($a1)
/* 413464 E0126104 E4A00038 */ swc1 $f0, 0x38($a1)
/* 413468 E0126108 8FBF0034 */ lw $ra, 0x34($sp)
/* 41346C E012610C 8FB20030 */ lw $s2, 0x30($sp)
/* 413470 E0126110 8FB1002C */ lw $s1, 0x2c($sp)
/* 413474 E0126114 8FB00028 */ lw $s0, 0x28($sp)
/* 413478 E0126118 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 41347C E012611C D7B60040 */ ldc1 $f22, 0x40($sp)
/* 413480 E0126120 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 413484 E0126124 03E00008 */ jr $ra
/* 413488 E0126128 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,274 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0126BD0
.double 7.12343
dlabel D_E0126BD8
.double 0.4953
dlabel D_E0126BE0
.double 0.2234
dlabel D_E0126BE8
.double 1.231
dlabel D_E0126BF0
.double 0.531
dlabel D_E0126BF8
.double 3.231
dlabel D_E0126C00
.double 0.298
dlabel D_E0126C08
.double 0.831
dlabel D_E0126C10
.double 2.231
dlabel D_E0126C18
.double 2.044
dlabel D_E0126C20
.double 0.3
dlabel D_E0126C28
.double 0.7
.section .text
glabel star_outline_update
/* 413494 E0126134 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 413498 E0126138 AFBF001C */ sw $ra, 0x1c($sp)
/* 41349C E012613C AFB20018 */ sw $s2, 0x18($sp)
/* 4134A0 E0126140 AFB10014 */ sw $s1, 0x14($sp)
/* 4134A4 E0126144 AFB00010 */ sw $s0, 0x10($sp)
/* 4134A8 E0126148 F7B80030 */ sdc1 $f24, 0x30($sp)
/* 4134AC E012614C F7B60028 */ sdc1 $f22, 0x28($sp)
/* 4134B0 E0126150 F7B40020 */ sdc1 $f20, 0x20($sp)
/* 4134B4 E0126154 8C830000 */ lw $v1, ($a0)
/* 4134B8 E0126158 8C90000C */ lw $s0, 0xc($a0)
/* 4134BC E012615C 30620010 */ andi $v0, $v1, 0x10
/* 4134C0 E0126160 86060002 */ lh $a2, 2($s0)
/* 4134C4 E0126164 10400005 */ beqz $v0, .LE012617C
/* 4134C8 E0126168 2402FFEF */ addiu $v0, $zero, -0x11
/* 4134CC E012616C 00621024 */ and $v0, $v1, $v0
/* 4134D0 E0126170 AC820000 */ sw $v0, ($a0)
/* 4134D4 E0126174 24020010 */ addiu $v0, $zero, 0x10
/* 4134D8 E0126178 AE020010 */ sw $v0, 0x10($s0)
.LE012617C:
/* 4134DC E012617C 8E030010 */ lw $v1, 0x10($s0)
/* 4134E0 E0126180 286203E8 */ slti $v0, $v1, 0x3e8
/* 4134E4 E0126184 10400002 */ beqz $v0, .LE0126190
/* 4134E8 E0126188 2462FFFF */ addiu $v0, $v1, -1
/* 4134EC E012618C AE020010 */ sw $v0, 0x10($s0)
.LE0126190:
/* 4134F0 E0126190 8E020014 */ lw $v0, 0x14($s0)
/* 4134F4 E0126194 8E050010 */ lw $a1, 0x10($s0)
/* 4134F8 E0126198 24420001 */ addiu $v0, $v0, 1
/* 4134FC E012619C 04A10005 */ bgez $a1, .LE01261B4
/* 413500 E01261A0 AE020014 */ sw $v0, 0x14($s0)
/* 413504 E01261A4 0C080128 */ jal shim_remove_effect
/* 413508 E01261A8 00000000 */ nop
/* 41350C E01261AC 08049920 */ j .LE0126480
/* 413510 E01261B0 00000000 */ nop
.LE01261B4:
/* 413514 E01261B4 0040882D */ daddu $s1, $v0, $zero
/* 413518 E01261B8 28A20010 */ slti $v0, $a1, 0x10
/* 41351C E01261BC 1040000B */ beqz $v0, .LE01261EC
/* 413520 E01261C0 2A220010 */ slti $v0, $s1, 0x10
/* 413524 E01261C4 8E020024 */ lw $v0, 0x24($s0)
/* 413528 E01261C8 00051900 */ sll $v1, $a1, 4
/* 41352C E01261CC 0062102A */ slt $v0, $v1, $v0
/* 413530 E01261D0 54400001 */ bnel $v0, $zero, .LE01261D8
/* 413534 E01261D4 AE030024 */ sw $v1, 0x24($s0)
.LE01261D8:
/* 413538 E01261D8 8E020034 */ lw $v0, 0x34($s0)
/* 41353C E01261DC 0062102A */ slt $v0, $v1, $v0
/* 413540 E01261E0 54400001 */ bnel $v0, $zero, .LE01261E8
/* 413544 E01261E4 AE030034 */ sw $v1, 0x34($s0)
.LE01261E8:
/* 413548 E01261E8 2A220010 */ slti $v0, $s1, 0x10
.LE01261EC:
/* 41354C E01261EC 1040000B */ beqz $v0, .LE012621C
/* 413550 E01261F0 00000000 */ nop
/* 413554 E01261F4 00111900 */ sll $v1, $s1, 4
/* 413558 E01261F8 8E020024 */ lw $v0, 0x24($s0)
/* 41355C E01261FC 2463000F */ addiu $v1, $v1, 0xf
/* 413560 E0126200 0043102A */ slt $v0, $v0, $v1
/* 413564 E0126204 54400001 */ bnel $v0, $zero, .LE012620C
/* 413568 E0126208 AE030024 */ sw $v1, 0x24($s0)
.LE012620C:
/* 41356C E012620C 8E020034 */ lw $v0, 0x34($s0)
/* 413570 E0126210 0043102A */ slt $v0, $v0, $v1
/* 413574 E0126214 54400001 */ bnel $v0, $zero, .LE012621C
/* 413578 E0126218 AE030034 */ sw $v1, 0x34($s0)
.LE012621C:
/* 41357C E012621C C600003C */ lwc1 $f0, 0x3c($s0)
/* 413580 E0126220 C6020040 */ lwc1 $f2, 0x40($s0)
/* 413584 E0126224 C6040044 */ lwc1 $f4, 0x44($s0)
/* 413588 E0126228 C6060038 */ lwc1 $f6, 0x38($s0)
/* 41358C E012622C 24120001 */ addiu $s2, $zero, 1
/* 413590 E0126230 E6000048 */ swc1 $f0, 0x48($s0)
/* 413594 E0126234 E602004C */ swc1 $f2, 0x4c($s0)
/* 413598 E0126238 E6040050 */ swc1 $f4, 0x50($s0)
/* 41359C E012623C 14D20086 */ bne $a2, $s2, .LE0126458
/* 4135A0 E0126240 E6060054 */ swc1 $f6, 0x54($s0)
/* 4135A4 E0126244 3C014080 */ lui $at, 0x4080
/* 4135A8 E0126248 44810000 */ mtc1 $at, $f0
/* 4135AC E012624C 4491A000 */ mtc1 $s1, $f20
/* 4135B0 E0126250 00000000 */ nop
/* 4135B4 E0126254 4680A520 */ cvt.s.w $f20, $f20
/* 4135B8 E0126258 4600A002 */ mul.s $f0, $f20, $f0
/* 4135BC E012625C 00000000 */ nop
/* 4135C0 E0126260 3C01E012 */ lui $at, %hi(D_E0126BD0)
/* 4135C4 E0126264 D42C6BD0 */ ldc1 $f12, %lo(D_E0126BD0)($at)
/* 4135C8 E0126268 4600A521 */ cvt.d.s $f20, $f20
/* 4135CC E012626C 462CA302 */ mul.d $f12, $f20, $f12
/* 4135D0 E0126270 00000000 */ nop
/* 4135D4 E0126274 3C01E012 */ lui $at, %hi(D_E0126BD8)
/* 4135D8 E0126278 D4246BD8 */ ldc1 $f4, %lo(D_E0126BD8)($at)
/* 4135DC E012627C 46000021 */ cvt.d.s $f0, $f0
/* 4135E0 E0126280 46240102 */ mul.d $f4, $f0, $f4
/* 4135E4 E0126284 00000000 */ nop
/* 4135E8 E0126288 3C01E012 */ lui $at, %hi(D_E0126BE0)
/* 4135EC E012628C D4226BE0 */ ldc1 $f2, %lo(D_E0126BE0)($at)
/* 4135F0 E0126290 46220002 */ mul.d $f0, $f0, $f2
/* 4135F4 E0126294 00000000 */ nop
/* 4135F8 E0126298 00111080 */ sll $v0, $s1, 2
/* 4135FC E012629C 44821000 */ mtc1 $v0, $f2
/* 413600 E01262A0 00000000 */ nop
/* 413604 E01262A4 468010A0 */ cvt.s.w $f2, $f2
/* 413608 E01262A8 240200FF */ addiu $v0, $zero, 0xff
/* 41360C E01262AC E602003C */ swc1 $f2, 0x3c($s0)
/* 413610 E01262B0 AE020024 */ sw $v0, 0x24($s0)
/* 413614 E01262B4 46206320 */ cvt.s.d $f12, $f12
/* 413618 E01262B8 46202120 */ cvt.s.d $f4, $f4
/* 41361C E01262BC 46200020 */ cvt.s.d $f0, $f0
/* 413620 E01262C0 E6040040 */ swc1 $f4, 0x40($s0)
/* 413624 E01262C4 0C080140 */ jal shim_sin_deg
/* 413628 E01262C8 E6000044 */ swc1 $f0, 0x44($s0)
/* 41362C E01262CC 3C01E012 */ lui $at, %hi(D_E0126BE8)
/* 413630 E01262D0 D42C6BE8 */ ldc1 $f12, %lo(D_E0126BE8)($at)
/* 413634 E01262D4 462CA302 */ mul.d $f12, $f20, $f12
/* 413638 E01262D8 00000000 */ nop
/* 41363C E01262DC 3C0142FE */ lui $at, 0x42fe
/* 413640 E01262E0 4481C000 */ mtc1 $at, $f24
/* 413644 E01262E4 00000000 */ nop
/* 413648 E01262E8 46180002 */ mul.s $f0, $f0, $f24
/* 41364C E01262EC 00000000 */ nop
/* 413650 E01262F0 3C014300 */ lui $at, 0x4300
/* 413654 E01262F4 44811000 */ mtc1 $at, $f2
/* 413658 E01262F8 00000000 */ nop
/* 41365C E01262FC 46020000 */ add.s $f0, $f0, $f2
/* 413660 E0126300 4600020D */ trunc.w.s $f8, $f0
/* 413664 E0126304 E6080034 */ swc1 $f8, 0x34($s0)
/* 413668 E0126308 0C080140 */ jal shim_sin_deg
/* 41366C E012630C 46206320 */ cvt.s.d $f12, $f12
/* 413670 E0126310 3C01E012 */ lui $at, %hi(D_E0126BF0)
/* 413674 E0126314 D42C6BF0 */ ldc1 $f12, %lo(D_E0126BF0)($at)
/* 413678 E0126318 462CA302 */ mul.d $f12, $f20, $f12
/* 41367C E012631C 00000000 */ nop
/* 413680 E0126320 46180002 */ mul.s $f0, $f0, $f24
/* 413684 E0126324 00000000 */ nop
/* 413688 E0126328 3C014357 */ lui $at, 0x4357
/* 41368C E012632C 4481B000 */ mtc1 $at, $f22
/* 413690 E0126330 00000000 */ nop
/* 413694 E0126334 46160000 */ add.s $f0, $f0, $f22
/* 413698 E0126338 4600020D */ trunc.w.s $f8, $f0
/* 41369C E012633C E6080018 */ swc1 $f8, 0x18($s0)
/* 4136A0 E0126340 0C080140 */ jal shim_sin_deg
/* 4136A4 E0126344 46206320 */ cvt.s.d $f12, $f12
/* 4136A8 E0126348 3C01E012 */ lui $at, %hi(D_E0126BF8)
/* 4136AC E012634C D42C6BF8 */ ldc1 $f12, %lo(D_E0126BF8)($at)
/* 4136B0 E0126350 462CA302 */ mul.d $f12, $f20, $f12
/* 4136B4 E0126354 00000000 */ nop
/* 4136B8 E0126358 46180002 */ mul.s $f0, $f0, $f24
/* 4136BC E012635C 00000000 */ nop
/* 4136C0 E0126360 46160000 */ add.s $f0, $f0, $f22
/* 4136C4 E0126364 4600020D */ trunc.w.s $f8, $f0
/* 4136C8 E0126368 E608001C */ swc1 $f8, 0x1c($s0)
/* 4136CC E012636C 0C080140 */ jal shim_sin_deg
/* 4136D0 E0126370 46206320 */ cvt.s.d $f12, $f12
/* 4136D4 E0126374 3C01E012 */ lui $at, %hi(D_E0126C00)
/* 4136D8 E0126378 D42C6C00 */ ldc1 $f12, %lo(D_E0126C00)($at)
/* 4136DC E012637C 462CA302 */ mul.d $f12, $f20, $f12
/* 4136E0 E0126380 00000000 */ nop
/* 4136E4 E0126384 46180002 */ mul.s $f0, $f0, $f24
/* 4136E8 E0126388 00000000 */ nop
/* 4136EC E012638C 46160000 */ add.s $f0, $f0, $f22
/* 4136F0 E0126390 4600020D */ trunc.w.s $f8, $f0
/* 4136F4 E0126394 E6080020 */ swc1 $f8, 0x20($s0)
/* 4136F8 E0126398 0C080140 */ jal shim_sin_deg
/* 4136FC E012639C 46206320 */ cvt.s.d $f12, $f12
/* 413700 E01263A0 3C01E012 */ lui $at, %hi(D_E0126C08)
/* 413704 E01263A4 D42C6C08 */ ldc1 $f12, %lo(D_E0126C08)($at)
/* 413708 E01263A8 462CA302 */ mul.d $f12, $f20, $f12
/* 41370C E01263AC 00000000 */ nop
/* 413710 E01263B0 46180002 */ mul.s $f0, $f0, $f24
/* 413714 E01263B4 00000000 */ nop
/* 413718 E01263B8 3C01433C */ lui $at, 0x433c
/* 41371C E01263BC 4481B000 */ mtc1 $at, $f22
/* 413720 E01263C0 00000000 */ nop
/* 413724 E01263C4 46160000 */ add.s $f0, $f0, $f22
/* 413728 E01263C8 4600020D */ trunc.w.s $f8, $f0
/* 41372C E01263CC E6080028 */ swc1 $f8, 0x28($s0)
/* 413730 E01263D0 0C080140 */ jal shim_sin_deg
/* 413734 E01263D4 46206320 */ cvt.s.d $f12, $f12
/* 413738 E01263D8 3C01E012 */ lui $at, %hi(D_E0126C10)
/* 41373C E01263DC D42C6C10 */ ldc1 $f12, %lo(D_E0126C10)($at)
/* 413740 E01263E0 462CA302 */ mul.d $f12, $f20, $f12
/* 413744 E01263E4 00000000 */ nop
/* 413748 E01263E8 46180002 */ mul.s $f0, $f0, $f24
/* 41374C E01263EC 00000000 */ nop
/* 413750 E01263F0 46160000 */ add.s $f0, $f0, $f22
/* 413754 E01263F4 4600020D */ trunc.w.s $f8, $f0
/* 413758 E01263F8 E608002C */ swc1 $f8, 0x2c($s0)
/* 41375C E01263FC 0C080140 */ jal shim_sin_deg
/* 413760 E0126400 46206320 */ cvt.s.d $f12, $f12
/* 413764 E0126404 3C01E012 */ lui $at, %hi(D_E0126C18)
/* 413768 E0126408 D4226C18 */ ldc1 $f2, %lo(D_E0126C18)($at)
/* 41376C E012640C 4622A502 */ mul.d $f20, $f20, $f2
/* 413770 E0126410 00000000 */ nop
/* 413774 E0126414 46180002 */ mul.s $f0, $f0, $f24
/* 413778 E0126418 00000000 */ nop
/* 41377C E012641C 46160000 */ add.s $f0, $f0, $f22
/* 413780 E0126420 4600020D */ trunc.w.s $f8, $f0
/* 413784 E0126424 E6080030 */ swc1 $f8, 0x30($s0)
/* 413788 E0126428 0C080140 */ jal shim_sin_deg
/* 41378C E012642C 4620A320 */ cvt.s.d $f12, $f20
/* 413790 E0126430 3C01E012 */ lui $at, %hi(D_E0126C20)
/* 413794 E0126434 D4226C20 */ ldc1 $f2, %lo(D_E0126C20)($at)
/* 413798 E0126438 46000021 */ cvt.d.s $f0, $f0
/* 41379C E012643C 46220002 */ mul.d $f0, $f0, $f2
/* 4137A0 E0126440 00000000 */ nop
/* 4137A4 E0126444 3C01E012 */ lui $at, %hi(D_E0126C28)
/* 4137A8 E0126448 D4226C28 */ ldc1 $f2, %lo(D_E0126C28)($at)
/* 4137AC E012644C 46220000 */ add.d $f0, $f0, $f2
/* 4137B0 E0126450 46200020 */ cvt.s.d $f0, $f0
/* 4137B4 E0126454 E6000038 */ swc1 $f0, 0x38($s0)
.LE0126458:
/* 4137B8 E0126458 16320009 */ bne $s1, $s2, .LE0126480
/* 4137BC E012645C 00000000 */ nop
/* 4137C0 E0126460 C600003C */ lwc1 $f0, 0x3c($s0)
/* 4137C4 E0126464 C6020040 */ lwc1 $f2, 0x40($s0)
/* 4137C8 E0126468 C6040044 */ lwc1 $f4, 0x44($s0)
/* 4137CC E012646C C6060038 */ lwc1 $f6, 0x38($s0)
/* 4137D0 E0126470 E6000048 */ swc1 $f0, 0x48($s0)
/* 4137D4 E0126474 E602004C */ swc1 $f2, 0x4c($s0)
/* 4137D8 E0126478 E6040050 */ swc1 $f4, 0x50($s0)
/* 4137DC E012647C E6060054 */ swc1 $f6, 0x54($s0)
.LE0126480:
/* 4137E0 E0126480 8FBF001C */ lw $ra, 0x1c($sp)
/* 4137E4 E0126484 8FB20018 */ lw $s2, 0x18($sp)
/* 4137E8 E0126488 8FB10014 */ lw $s1, 0x14($sp)
/* 4137EC E012648C 8FB00010 */ lw $s0, 0x10($sp)
/* 4137F0 E0126490 D7B80030 */ ldc1 $f24, 0x30($sp)
/* 4137F4 E0126494 D7B60028 */ ldc1 $f22, 0x28($sp)
/* 4137F8 E0126498 D7B40020 */ ldc1 $f20, 0x20($sp)
/* 4137FC E012649C 03E00008 */ jr $ra
/* 413800 E01264A0 27BD0038 */ addiu $sp, $sp, 0x38

View File

@ -1,83 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel water_fountain_main
/* 3B7B80 E00B8000 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 3B7B84 E00B8004 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3B7B88 E00B8008 4485A000 */ mtc1 $a1, $f20
/* 3B7B8C E00B800C F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3B7B90 E00B8010 4486B000 */ mtc1 $a2, $f22
/* 3B7B94 E00B8014 AFB20030 */ sw $s2, 0x30($sp)
/* 3B7B98 E00B8018 0080902D */ daddu $s2, $a0, $zero
/* 3B7B9C E00B801C F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3B7BA0 E00B8020 4487C000 */ mtc1 $a3, $f24
/* 3B7BA4 E00B8024 27A40010 */ addiu $a0, $sp, 0x10
/* 3B7BA8 E00B8028 AFB1002C */ sw $s1, 0x2c($sp)
/* 3B7BAC E00B802C 8FB10064 */ lw $s1, 0x64($sp)
/* 3B7BB0 E00B8030 3C02E00C */ lui $v0, %hi(water_fountain_init)
/* 3B7BB4 E00B8034 2442812C */ addiu $v0, $v0, %lo(water_fountain_init)
/* 3B7BB8 E00B8038 AFA20018 */ sw $v0, 0x18($sp)
/* 3B7BBC E00B803C 3C02E00C */ lui $v0, %hi(water_fountain_update)
/* 3B7BC0 E00B8040 24428134 */ addiu $v0, $v0, %lo(water_fountain_update)
/* 3B7BC4 E00B8044 AFA2001C */ sw $v0, 0x1c($sp)
/* 3B7BC8 E00B8048 3C02E00C */ lui $v0, %hi(water_fountain_render)
/* 3B7BCC E00B804C 244281B8 */ addiu $v0, $v0, %lo(water_fountain_render)
/* 3B7BD0 E00B8050 AFA20020 */ sw $v0, 0x20($sp)
/* 3B7BD4 E00B8054 2402005C */ addiu $v0, $zero, 0x5c
/* 3B7BD8 E00B8058 AFBF0034 */ sw $ra, 0x34($sp)
/* 3B7BDC E00B805C AFB00028 */ sw $s0, 0x28($sp)
/* 3B7BE0 E00B8060 AFA00010 */ sw $zero, 0x10($sp)
/* 3B7BE4 E00B8064 AFA00024 */ sw $zero, 0x24($sp)
/* 3B7BE8 E00B8068 0C080124 */ jal shim_create_effect_instance
/* 3B7BEC E00B806C AFA20014 */ sw $v0, 0x14($sp)
/* 3B7BF0 E00B8070 24040044 */ addiu $a0, $zero, 0x44
/* 3B7BF4 E00B8074 24030001 */ addiu $v1, $zero, 1
/* 3B7BF8 E00B8078 0040802D */ daddu $s0, $v0, $zero
/* 3B7BFC E00B807C 0C08012C */ jal shim_general_heap_malloc
/* 3B7C00 E00B8080 AE030008 */ sw $v1, 8($s0)
/* 3B7C04 E00B8084 0040282D */ daddu $a1, $v0, $zero
/* 3B7C08 E00B8088 14A00003 */ bnez $a1, .LE00B8098
/* 3B7C0C E00B808C AE02000C */ sw $v0, 0xc($s0)
.LE00B8090:
/* 3B7C10 E00B8090 0802E024 */ j .LE00B8090
/* 3B7C14 E00B8094 00000000 */ nop
.LE00B8098:
/* 3B7C18 E00B8098 ACB20000 */ sw $s2, ($a1)
/* 3B7C1C E00B809C 1E200004 */ bgtz $s1, .LE00B80B0
/* 3B7C20 E00B80A0 ACA00014 */ sw $zero, 0x14($a1)
/* 3B7C24 E00B80A4 240203E8 */ addiu $v0, $zero, 0x3e8
/* 3B7C28 E00B80A8 0802E02D */ j .LE00B80B4
/* 3B7C2C E00B80AC ACA20010 */ sw $v0, 0x10($a1)
.LE00B80B0:
/* 3B7C30 E00B80B0 ACB10010 */ sw $s1, 0x10($a1)
.LE00B80B4:
/* 3B7C34 E00B80B4 0200102D */ daddu $v0, $s0, $zero
/* 3B7C38 E00B80B8 240400FF */ addiu $a0, $zero, 0xff
/* 3B7C3C E00B80BC ACA40024 */ sw $a0, 0x24($a1)
/* 3B7C40 E00B80C0 E4B40004 */ swc1 $f20, 4($a1)
/* 3B7C44 E00B80C4 E4B60008 */ swc1 $f22, 8($a1)
/* 3B7C48 E00B80C8 E4B8000C */ swc1 $f24, 0xc($a1)
/* 3B7C4C E00B80CC C7A00060 */ lwc1 $f0, 0x60($sp)
/* 3B7C50 E00B80D0 24030046 */ addiu $v1, $zero, 0x46
/* 3B7C54 E00B80D4 ACA30018 */ sw $v1, 0x18($a1)
/* 3B7C58 E00B80D8 E4A00034 */ swc1 $f0, 0x34($a1)
/* 3B7C5C E00B80DC 3C013F80 */ lui $at, 0x3f80
/* 3B7C60 E00B80E0 44810000 */ mtc1 $at, $f0
/* 3B7C64 E00B80E4 240300B4 */ addiu $v1, $zero, 0xb4
/* 3B7C68 E00B80E8 ACA3001C */ sw $v1, 0x1c($a1)
/* 3B7C6C E00B80EC ACA40020 */ sw $a0, 0x20($a1)
/* 3B7C70 E00B80F0 ACA40028 */ sw $a0, 0x28($a1)
/* 3B7C74 E00B80F4 ACA4002C */ sw $a0, 0x2c($a1)
/* 3B7C78 E00B80F8 ACA40030 */ sw $a0, 0x30($a1)
/* 3B7C7C E00B80FC ACA00038 */ sw $zero, 0x38($a1)
/* 3B7C80 E00B8100 E4A0003C */ swc1 $f0, 0x3c($a1)
/* 3B7C84 E00B8104 E4A00040 */ swc1 $f0, 0x40($a1)
/* 3B7C88 E00B8108 8FBF0034 */ lw $ra, 0x34($sp)
/* 3B7C8C E00B810C 8FB20030 */ lw $s2, 0x30($sp)
/* 3B7C90 E00B8110 8FB1002C */ lw $s1, 0x2c($sp)
/* 3B7C94 E00B8114 8FB00028 */ lw $s0, 0x28($sp)
/* 3B7C98 E00B8118 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 3B7C9C E00B811C D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3B7CA0 E00B8120 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3B7CA4 E00B8124 03E00008 */ jr $ra
/* 3B7CA8 E00B8128 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,41 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel water_fountain_update
/* 3B7CB4 E00B8134 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3B7CB8 E00B8138 AFBF0010 */ sw $ra, 0x10($sp)
/* 3B7CBC E00B813C 8C830000 */ lw $v1, ($a0)
/* 3B7CC0 E00B8140 8C86000C */ lw $a2, 0xc($a0)
/* 3B7CC4 E00B8144 30620010 */ andi $v0, $v1, 0x10
/* 3B7CC8 E00B8148 10400005 */ beqz $v0, .LE00B8160
/* 3B7CCC E00B814C 2402FFEF */ addiu $v0, $zero, -0x11
/* 3B7CD0 E00B8150 00621024 */ and $v0, $v1, $v0
/* 3B7CD4 E00B8154 AC820000 */ sw $v0, ($a0)
/* 3B7CD8 E00B8158 24020010 */ addiu $v0, $zero, 0x10
/* 3B7CDC E00B815C ACC20010 */ sw $v0, 0x10($a2)
.LE00B8160:
/* 3B7CE0 E00B8160 8CC30010 */ lw $v1, 0x10($a2)
/* 3B7CE4 E00B8164 286203E8 */ slti $v0, $v1, 0x3e8
/* 3B7CE8 E00B8168 10400002 */ beqz $v0, .LE00B8174
/* 3B7CEC E00B816C 2462FFFF */ addiu $v0, $v1, -1
/* 3B7CF0 E00B8170 ACC20010 */ sw $v0, 0x10($a2)
.LE00B8174:
/* 3B7CF4 E00B8174 8CC20014 */ lw $v0, 0x14($a2)
/* 3B7CF8 E00B8178 8CC30010 */ lw $v1, 0x10($a2)
/* 3B7CFC E00B817C 24450001 */ addiu $a1, $v0, 1
/* 3B7D00 E00B8180 04610005 */ bgez $v1, .LE00B8198
/* 3B7D04 E00B8184 ACC50014 */ sw $a1, 0x14($a2)
/* 3B7D08 E00B8188 0C080128 */ jal shim_remove_effect
/* 3B7D0C E00B818C 00000000 */ nop
/* 3B7D10 E00B8190 0802E06B */ j .LE00B81AC
/* 3B7D14 E00B8194 00000000 */ nop
.LE00B8198:
/* 3B7D18 E00B8198 28A20008 */ slti $v0, $a1, 8
/* 3B7D1C E00B819C 10400003 */ beqz $v0, .LE00B81AC
/* 3B7D20 E00B81A0 00051140 */ sll $v0, $a1, 5
/* 3B7D24 E00B81A4 2442001F */ addiu $v0, $v0, 0x1f
/* 3B7D28 E00B81A8 ACC20024 */ sw $v0, 0x24($a2)
.LE00B81AC:
/* 3B7D2C E00B81AC 8FBF0010 */ lw $ra, 0x10($sp)
/* 3B7D30 E00B81B0 03E00008 */ jr $ra
/* 3B7D34 E00B81B4 27BD0018 */ addiu $sp, $sp, 0x18