9 0xFEACACFE, 0xACD5FEB4, 0x9AD5B4FE,
10 0xB4B4FEB4, 0xDDFEB4FE, 0xFEB4FED5,
11 0xB4FEB4D5, 0xFEB4FEFE, 0xB4FED5AC
44 part->player = player;
45 part->scale = scale * 1.2;
46 part->initialScale = scale * 1.2;
47 part->duration = duration;
48 part->timeLeft = duration;
53 for (i = 1; i < numParts; i++,
part++) {
60 part->pos.y = i * 7 + 4;
62 part->rotVel.x = 0.0f;
63 part->rotVel.y = 60.0f;
64 part->rotVel.z = 0.0f;
66 part->rot.y = i * 120;
75 part->pos.y = i * 7 + 4;
77 part->rotVel.x = 0.0f;
78 part->rotVel.y = -60.0f;
79 part->rotVel.z = 0.0f;
81 part->rot.y = i * 120;
96 part->rot.y = (i - 1) * 360 / (numParts - 1);
97 part->rot.z = 360 - i * 38;
98 part->scale = (
f32) (i - 1) / (numParts - 1) * 0.5 + 0.5;
140 if (
part->timeLeft < 0) {
146 time =
part->timeLeft;
150 part->alpha += (255 -
part->alpha) * 0.05;
152 part->scale = (
part->initialScale * time) /
part->duration;
154 part->alpha = time * 25;
158 part->alpha += (100 -
part->alpha) * 0.3;
162 part->scale += (2.0f *
part->initialScale -
part->scale) * 0.1;
174 part->rotVel.y += (40.0f -
part->rotVel.y) * 0.2;
176 part->rotVel.y += (-40.0f -
part->rotVel.y) * 0.2;
181 }
else if (time < 10) {
182 part->rot.y += (
part->rotVel.y * time) / 10.0f;
207 f32 initialScale =
part->initialScale;
BSS s32 PopupMenu_SelectedIndex
void effect_46_init(EffectInstance *effect)
void effect_46_update(EffectInstance *effect)
EffectInstance * effect_46_main(s32 type, PlayerStatus *player, f32 scale, s32 duration)
void effect_46_appendGfx(void *effect)
void effect_46_render(EffectInstance *effect)
#define general_heap_malloc
#define queue_render_task
#define create_effect_instance
EffectInstanceDataPtr data
#define ASSERT(condition)
@ RENDER_TASK_FLAG_REFLECT_FLOOR
@ RENDER_MODE_CLOUD_NO_ZCMP
#define VIRTUAL_TO_PHYSICAL(addr)
void(* appendGfx)(void *)
DisplayContext * gDisplayContext