24 effectBp.
effectID = EFFECT_SNAKING_STATIC;
56 for(i = 1; i < numParts; i++, data++) {
58 data->
unk_3C = (i - 1) * 360 / (numParts - 1);
84 effect->
flags &= ~FX_INSTANCE_FLAG_DISMISS;
101 data->
unk_24 = timeLeft * 16;
104 data->
unk_24 = (lifeTime * 16) + 15;
108 for (i = 1; i < effect->
numParts; i += 3, data += 3) {
117 tempPosX = data->
pos.
x;
118 tempPosY = data->
pos.
y;
123 data->
pos.
x = tempPosX + tempOffsetX;
124 data->
pos.
y = tempPosY + tempOffsetY;
125 data->
unk_3C =
atan2(0.0f, 0.0f, tempOffsetX, tempOffsetY);
126 if (tempOffsetX != 0.0f || tempOffsetY != 0.0f) {
127 data->
unk_34 =
sqrtf((tempOffsetX * tempOffsetX) + (tempOffsetY * tempOffsetY));
133 if (data->
unk_24 >= 256) {
140 for (i = 1; i < effect->
numParts; i++, data++) {
151 renderTask.
dist = 10;
167 s32 unk_24 = data->
unk_24;
182 G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
188 for (i = 1; i < ((
EffectInstance*)effect)->numParts; i++, data++) {
189 gDPSetPrimColor(
gMainGfxPos++, 0, 0, primR, primG, primB, (data->
unk_24 * unk_24) / 255);
198 G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
200 gDPSetTileSize(
gMainGfxPos++, 1, (lifeTime * 12), 0, ((lifeTime * 3) + 0x1F) * 4, 0x007C);
#define general_heap_malloc
#define queue_render_task
#define create_effect_instance
struct SnakingStaticFXData * snakingStatic
#define ASSERT(condition)
@ FX_INSTANCE_FLAG_DISMISS
@ RENDER_TASK_FLAG_REFLECT_FLOOR
@ RENDER_MODE_CLOUD_NO_ZCMP
#define VIRTUAL_TO_PHYSICAL(addr)
void snaking_static_render(EffectInstance *effect)
EffectInstance * snaking_static_main(s32 type, f32 posX, f32 posY, f32 posZ, f32 scale, s32 timeLeft)
void snaking_static_appendGfx(void *effect)
void snaking_static_update(EffectInstance *)
void snaking_static_init(EffectInstance *effect)
void(* renderUI)(EffectInstance *effectInst)
void(* init)(EffectInstance *effectInst)
void(* update)(EffectInstance *effectInst)
void(* renderWorld)(EffectInstance *effectInst)
void(* appendGfx)(void *)
DisplayContext * gDisplayContext