49 bp.
effectID = EFFECT_PEACH_STAR_BEAM;
87 if (type == 0 && i == 0) {
110 effect->
flags &= ~FX_INSTANCE_FLAG_DISMISS;
135 part->
pos.
x = centerX;
137 part->
pos.
z = centerZ;
139 spiritAngle = rotationAngle + ((-360 + (360 * i)) / 7);
140 part->
pos.
x = centerX + radius *
sin_deg(spiritAngle);
141 part->
pos.
y = centerY;
142 part->
pos.
z = centerZ + radius *
cos_deg(spiritAngle);
144 if (!(part->
flags & 2)) {
158 renderTask.
dist = 10;
171 f32 partX, partY, partZ;
180 if (part->
flags & 1) {
181 if (part->
flags & 2) {
191 if (!(data->
pos.
z < partZ)) {
196 G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
197 gDPSetPrimColor(
gMainGfxPos++, 0, 0, 128, 128, 128, 255);
212 G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
224 if (part->
flags & 1) {
225 if (part->
flags & 2) {
235 if (!(partZ <= data->
pos.
z)) {
236 guPositionF(sp20, 0.0f, 0.0f, 0.0f, 0.67f, partX, partY, partZ);
240 G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
241 gDPSetPrimColor(
gMainGfxPos++, 0, 0, 128, 128, 128, 255);
#define general_heap_malloc
#define queue_render_task
#define create_effect_instance
struct PeachStarBeamFXData * peachStarBeam
PeachStarBeamSpirit spirits[8]
#define ASSERT(condition)
@ FX_INSTANCE_FLAG_DISMISS
@ RENDER_TASK_FLAG_REFLECT_FLOOR
@ RENDER_MODE_CLOUD_NO_ZCMP
void peach_star_beam_init(EffectInstance *effect)
void peach_star_beam_update(EffectInstance *effect)
void peach_star_beam_appendGfx(void *effect)
void peach_star_beam_render(EffectInstance *effect)
EffectInstance * peach_star_beam_main(s32 type, f32 x, f32 y, f32 z, f32 arg4, s32 duration)
#define SPRITE_WORLD_SCALE_F
#define VIRTUAL_TO_PHYSICAL(addr)
void(* renderUI)(EffectInstance *effectInst)
void(* init)(EffectInstance *effectInst)
void(* update)(EffectInstance *effectInst)
void(* renderWorld)(EffectInstance *effectInst)
void(* appendGfx)(void *)
DisplayContext * gDisplayContext