27 temp_f12 =
SQ(arg4) +
SQ(arg5) +
SQ(arg6);
28 if (temp_f12 != 0.0f) {
29 temp_f12 = -1.0f /
sqrtf(temp_f12);
37 temp_f30 = -arg5 / arg4;
39 }
else if (arg5 != 0.0f) {
46 temp_f28 = -arg4 / arg6;
49 temp_f12 =
SQ(temp_f30) +
SQ(sp70) +
SQ(temp_f28);
50 if (temp_f12 != 0.0f) {
51 temp_f12 = 1.0f /
sqrtf(temp_f12);
85 for (i = 1; i < arg7; i++, part++) {
89 guRotateF(sp30, i * 72, arg4, arg5, arg6);
93 part->
unk_38 = -arg4 * 0.05 * 4.0;
94 part->
unk_3C = -arg5 * 0.05 * 4.0;
95 part->
unk_40 = -arg6 * 0.05 * 4.0;
96 part->
unk_2C = (sp30[0][0] * temp_f30 + sp30[1][0] * sp70 + sp30[2][0] * temp_f28) * 0.1 * 4.0;
97 part->
unk_30 = (sp30[0][1] * temp_f30 + sp30[1][1] * sp70 + sp30[2][1] * temp_f28) * 0.1 * 4.0;
98 part->
unk_34 = (sp30[0][2] * temp_f30 + sp30[1][2] * sp70 + sp30[2][2] * temp_f28) * 0.1 * 4.0;
104 part->
unk_64 = ((i - 1) / 5) * 2;
119 s32 unk_04 = part->
unk_04;
126 if (part->
unk_5C < 0 && unk_04 == 2) {
134 for (i = 1; i < effect->
numParts; i++, part++) {
164 if (unk_5C >= 4 && unk_5C <= 6) {
179 if (part->
unk_18 < 0.0f) {
233 for (i = 1; i < ((
EffectInstance*)effect)->numParts; i++, part++) {
void effect_3D_update(EffectInstance *effect)
void effect_3D_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, s32 arg7, EffectInstance **outEffect)
void effect_3D_init(EffectInstance *effect)
void effect_3D_appendGfx(void *effect)
void effect_3D_render(EffectInstance *effect)
#define general_heap_malloc
#define queue_render_task
#define create_effect_instance
struct Effect3DFXData * unk_3D
#define ASSERT(condition)
@ RENDER_TASK_FLAG_REFLECT_FLOOR
@ RENDER_MODE_CLOUD_NO_ZCMP
#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