64 part->
unk_1C = (arg4 - x) * (1.0f / arg7);
65 part->
unk_20 = (arg5 - y) * (1.0f / arg7);
66 part->
unk_24 = (arg6 - z) * (1.0f / arg7);
89 effect->
flags =
flags & ~FX_INSTANCE_FLAG_DISMISS;
103 if (!isChild && part->
timeLeft == 0) {
109 0.0f, 0.0f, 0.0f, 0x18
114 if (isChild == TRUE) {
139 return (f32)((
sin_deg(frameCounter + arg1) * (255 - arg0) + (255 - arg0)) * 0.5 + arg0);
147 return (f32)((
sin_deg(frameCounter + arg1) * -arg0 + -arg0) * 0.5 + arg0);
155 f32 unk_28 = data->
unk_28;
184 angle = timeLeft * 35;
188 angle = timeLeft * 25;
194 for (i = 0; i < 3; i++) {
198 unk_10 -= 2.0f * data->
unk_1C;
200 unk_18 -= 2.0f * data->
unk_24;
203 unk_10 -= data->
unk_1C * (100.0 / 83) * 2.0;
205 primA = data->
unk_34 * 100 / 255;
215 cos_deg(angle) * factor, 0.0f);
223 cos_deg(angle) * factor, 0.0f);
231 cos_deg(angle) * factor, 0.0f);
237 for (j = 0; j < 3; j++) {
238 gSPMatrix(
gMainGfxPos++, sp60[j], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
274 guRotateF(sp20, 30.0f, 0.0f, 0.0f, 1.0f);
279 for (i = 0; i < 12; i++) {
280 gSPMatrix(
gMainGfxPos++, mtx, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
#define general_heap_malloc
#define queue_render_task
#define create_effect_instance
struct ShapeSpellFXData * shapeSpell
#define ASSERT(condition)
@ FX_INSTANCE_FLAG_DISMISS
@ RENDER_TASK_FLAG_REFLECT_FLOOR
@ RENDER_MODE_CLOUD_NO_ZCMP
#define VIRTUAL_TO_PHYSICAL(addr)
void shape_spell_update(EffectInstance *effect)
void shape_spell_render(EffectInstance *effect)
void shape_spell_init(EffectInstance *effect)
s32 func_E0024324(s32 arg0, s32 arg1)
void shape_spell_appendGfx(void *effect)
s32 func_E00243BC(s32 arg0, s32 arg1)
EffectInstance * shape_spell_main(s32 isChild, f32 x, f32 y, f32 z, f32 arg4, f32 arg5, f32 arg6, s32 arg7)
void(* renderUI)(EffectInstance *effectInst)
void(* init)(EffectInstance *effectInst)
void(* update)(EffectInstance *effectInst)
void(* renderWorld)(EffectInstance *effectInst)
void(* appendGfx)(void *)
GameStatus * gGameStatusPtr
DisplayContext * gDisplayContext