15static s8 D_E000CC38[] = { 0x00, 0x01, 0x02, 0x1A, 0x03, 0x1B, 0x04, 0x1C, 0x05, 0x15, 0x35, 0x46, 0x46, 0x46, 0xFF,
18static s8 D_E000CC48[] = { 0x00, 0x01, 0x02, 0x1A, 0x03, 0x1B, 0x04, 0x1C, 0x05, 0x1D, 0x06, 0x16, 0x26, 0x47, 0x57,
19 0x67, 0xFF, 0x00, 0x00, 0x00 };
21static s8 D_E000CC5C[] = {
22 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x01, 0x09, 0x11, 0x19, 0x21, 0x29, 0x31, 0x39, 0x02, 0x02, 0x0A,
23 0x0A, 0x12, 0x12, 0x1A, 0x1A, 0x22, 0x22, 0x2A, 0x2A, 0x32, 0x32, 0x3A, 0x3A, 0x03, 0x03, 0x0B, 0x0B, 0x13, 0x13,
24 0x1B, 0x1B, 0x23, 0x23, 0x2B, 0x2B, 0x33, 0x33, 0x3B, 0x3B, 0x04, 0x04, 0x0C, 0x0C, 0x14, 0x14, 0x1C, 0x1C, 0x24,
25 0x24, 0x2C, 0x2C, 0x34, 0x34, 0x3C, 0x3C, 0x05, 0x05, 0x0D, 0x0D, 0x15, 0x15, 0x1D, 0x1D, 0x25, 0x25, 0x2D, 0x2D,
26 0x35, 0x35, 0x3D, 0x3D, 0x06, 0x06, 0x06, 0x0E, 0x0E, 0x0E, 0x16, 0x16, 0x16, 0x1E, 0x1E, 0x1E, 0x26, 0x26, 0x26,
27 0x2E, 0x2E, 0x2E, 0x36, 0x36, 0x36, 0x3E, 0x3E, 0x3E, 0x47, 0x47, 0x47, 0x4F, 0x4F, 0x4F, 0x57, 0x57, 0x57, 0x5F,
28 0x5F, 0x5F, 0x67, 0x67, 0x67, 0x6F, 0x6F, 0x6F, 0x77, 0x77, 0x77, 0x7F, 0x7F, 0x7F, 0xFF, 0x00, 0x00, 0x00
31static s8 D_E000CCE0[] = { 0x00, 0x10, 0x20, 0x30, 0x01, 0x11, 0x21, 0x31, 0x02, 0x0A, 0x12, 0x1A, 0x22, 0x2A, 0x32,
32 0x3A, 0x03, 0x0B, 0x13, 0x1B, 0x23, 0x2B, 0x33, 0x3B, 0x04, 0x0C, 0x14, 0x1C, 0x24, 0x2C,
33 0x34, 0x3C, 0x05, 0x0D, 0x15, 0x1D, 0x25, 0x2D, 0x35, 0x3D, 0x06, 0x06, 0x0E, 0x16, 0x16,
34 0x1E, 0x26, 0x26, 0x2E, 0x36, 0x36, 0x3E, 0x47, 0x47, 0x4F, 0x57, 0x57, 0x5F, 0x67, 0x67,
35 0x6F, 0x77, 0x77, 0x7F, 0xFF, 0x00, 0x00, 0x00 };
37static s8* D_E000CD24[4] = { D_E000CC38, D_E000CC48, D_E000CC5C, D_E000CCE0 };
102 bpPtr->
effectID = EFFECT_LANDING_DUST;
111 mem_clear(data, numParts *
sizeof(*data));
138 for (i = 1; i < numParts; i++, data++) {
140 data->
unk_14 = 0.29999998f;
158 for (i = 1; i < numParts; i++, data++) {
176 data->
unk_20 = 0.84999996f;
194 for (i = 1; i < numParts; i++, data++) {
198 data->
unk_24 = 0.099999994f;
201 theta = angle + ((i - 1) * 360 / (numParts - 1));
223 s32 type = data->
type;
228 for (i = 1; i < effect->
numParts; i++, data++) {
262 s32 type = part->
type;
263 s32 temp_t0 = part->
unk_40;
277 envAlpha = (temp_t0 & 0x38) * 4;
279 dlist1 = sDlists[type];
280 dlist2 = sDlists2[type];
287 spDC = temp_t0 & 0x40;
300 gDPSetPrimColor(
gMainGfxPos++, 0, 0, 230, 222, 222, 110);
306 gDPSetPrimColor(
gMainGfxPos++, 0, 0, 230, 222, 222, 130);
317 temp_lo = spD8 * phi_a0;
318 temp = temp_lo + phi_a0;
320 gDPSetTileSize(
gMainGfxPos++, G_TX_RENDERTILE, temp_lo * 4, 0, temp * 4, phi_a0 * 4);
323 gDPSetTileSize(
gMainGfxPos++, 1, temp * 4, phi_a0 * 4, (temp_lo + (phi_a0 * 2)) * 4, phi_a0 * 8);
325 gDPSetTileSize(
gMainGfxPos++, 1, temp * 4, 0, (temp_lo + (phi_a0 * 2)) * 4, phi_a0 * 4);
334 for (i = 1; i < ((
EffectInstance*)effect)->numParts; i++, part++) {
338 G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
#define general_heap_malloc
#define queue_render_task
#define create_effect_instance
struct LandingDustFXData * landingDust
#define ASSERT(condition)
@ RENDER_TASK_FLAG_REFLECT_FLOOR
@ RENDER_MODE_PASS_THROUGH
void landing_dust_render(EffectInstance *effect)
void landing_dust_appendGfx(void *effect)
void landing_dust_init(EffectInstance *effect)
void func_E000C000(LandingDustFXData *part)
void func_E000C0C8(LandingDustFXData *part)
void func_E000C094(LandingDustFXData *part)
void landing_dust_main(s32 type, f32 x, f32 y, f32 z, f32 angle)
void landing_dust_update(EffectInstance *effect)
#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