128 for (i = 0; i < np; i++, data++) {
133 temp_f28 = sp28 * 0.5 * 2.0;
137 temp_f28 = sp28 * 0.5 * 2.0;
141 temp_f28 = sp28 * 0.5 * 2.0;
144 temp_f28 = sp28 * 0.5 * 2.0;
146 theta = ((i * 360.0f) / np) + temp_fp;
158 data->
unk_04 = temp_f30 * sinTheta * cosTheta2;
159 data->
unk_08 = temp_f30 * cosTheta * cosTheta2;
160 data->
unk_0C = temp_f30 * sinTheta2;
161 data->
unk_10 = temp_f28 * sinTheta * cosTheta2;
162 data->
unk_14 = (temp_f28 * cosTheta * cosTheta2) + 1.0f;
163 data->
unk_18 = temp_f28 * sinTheta2;
165 data->
unk_1C = -0.02 - ((i + 1) % 3) * 0.02;
192 if (part->
unk_24 > 324000) {
205 for (i = 0; i < unk_2C; i++, part++) {
223 if (unk_24 >= 6 && part->
unk_14 > -0.5) {
282 for (i = 0; i < unk_2C; i++, part++) {
289 gDPSetPrimColor(
gMainGfxPos++, 0, 0, color->
r, color->
g, color->
b, unk_28);
291 switch ((unk_24 + i) % 3) {
302 uly = ((i +
D_E0088D00[unk_24 % 6]) & 0xF) * 16;
304 gDPSetTileSize(
gMainGfxPos++, G_TX_RENDERTILE, ulx << 2, uly << 2,
305 (ulx << 2) + ((width >> 1) << 1), (uly << 2) + height);
EffectInstance * confetti_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5)
void func_E0088000(ConfettiFXData *part)
void confetti_update(EffectInstance *effect)
void confetti_render(EffectInstance *effect)
void confetti_init(EffectInstance *effect)
void confetti_appendGfx(void *effect)
#define general_heap_malloc
#define queue_render_task
#define create_effect_instance
struct ConfettiFXData * confetti
#define ASSERT(condition)
@ 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