document fxRipple and fxSparkle
This commit is contained in:
@@ -727,7 +727,8 @@ segments:
|
|||||||
- [0xFBFE10, c, code_6A4B0]
|
- [0xFBFE10, c, code_6A4B0]
|
||||||
- [0xFC0850, c, code_6AEF0] #DONE
|
- [0xFC0850, c, code_6AEF0] #DONE
|
||||||
- [0xFC0990, c, code_6B030] #DONE
|
- [0xFC0990, c, code_6B030] #DONE
|
||||||
- [0xFC1D40, c, code_6C3E0] #DONE
|
- [0xFC1D40, c, fx/ripple] #DONE
|
||||||
|
- [0xFC2040, c, fx/sparkle] #DONE
|
||||||
- [0xFC2680, c, code_6CD20] #DONE
|
- [0xFC2680, c, code_6CD20] #DONE
|
||||||
- [0xFC2820, c, code_6CEC0] #DONE
|
- [0xFC2820, c, code_6CEC0] #DONE
|
||||||
- [0xFC2990, c, code_6D030] #DONE
|
- [0xFC2990, c, code_6D030] #DONE
|
||||||
@@ -1008,7 +1009,8 @@ segments:
|
|||||||
- [0x10373A0, .data, code_6A4B0]
|
- [0x10373A0, .data, code_6A4B0]
|
||||||
- [0x1037470, .data, code_6AEF0]
|
- [0x1037470, .data, code_6AEF0]
|
||||||
- [0x1037480, .data, code_6B030]
|
- [0x1037480, .data, code_6B030]
|
||||||
- [0x1037500, .data, code_6C3E0]
|
- [0x1037500, .data, fx/ripple]
|
||||||
|
- [0x10375A0, .data, fx/sparkle]
|
||||||
- [0x1037750, .data, code_6CD20]
|
- [0x1037750, .data, code_6CD20]
|
||||||
- [0x10377A0, .data, code_6D030]
|
- [0x10377A0, .data, code_6D030]
|
||||||
- [0x10377B0, .data, code_6D270]
|
- [0x10377B0, .data, code_6D270]
|
||||||
@@ -1258,7 +1260,8 @@ segments:
|
|||||||
- [0x1045B80, .rodata, particle]
|
- [0x1045B80, .rodata, particle]
|
||||||
- [0x1045BA0, .rodata, code_6A4B0]
|
- [0x1045BA0, .rodata, code_6A4B0]
|
||||||
- [0x1045BB0, .rodata, code_6B030]
|
- [0x1045BB0, .rodata, code_6B030]
|
||||||
- [0x1045BC0, .rodata, code_6C3E0]
|
- [0x1045BC0, .rodata, fx/ripple]
|
||||||
|
- [0x1045BD0, .rodata, fx/sparkle]
|
||||||
- [0x1045BE0, .rodata, code_6CEC0]
|
- [0x1045BE0, .rodata, code_6CEC0]
|
||||||
- [0x1045BF0, .rodata, code_6D030]
|
- [0x1045BF0, .rodata, code_6D030]
|
||||||
- [0x1045C00, .rodata, code_6D270]
|
- [0x1045C00, .rodata, code_6D270]
|
||||||
@@ -1515,7 +1518,7 @@ segments:
|
|||||||
- [0x1048560, .bss, code_69F60]
|
- [0x1048560, .bss, code_69F60]
|
||||||
- [0x1048560, .bss, code_6AEF0]
|
- [0x1048560, .bss, code_6AEF0]
|
||||||
- [0x1048560, .bss, code_6B030]
|
- [0x1048560, .bss, code_6B030]
|
||||||
- [0x1048560, .bss, code_6C3E0]
|
- [0x1048560, .bss, fx/ripple]
|
||||||
- [0x1048560, .bss, code_6CD20]
|
- [0x1048560, .bss, code_6CD20]
|
||||||
- [0x1048560, .bss, code_6CEC0]
|
- [0x1048560, .bss, code_6CEC0]
|
||||||
- [0x1048560, .bss, code_6D030]
|
- [0x1048560, .bss, code_6D030]
|
||||||
|
@@ -5,7 +5,21 @@
|
|||||||
#define PART_EMIT_NO_DEPTH 0x10
|
#define PART_EMIT_NO_DEPTH 0x10
|
||||||
#define PART_EMIT_NO_LOOP 0x8
|
#define PART_EMIT_NO_LOOP 0x8
|
||||||
|
|
||||||
#define PART_EMIT_3D_ROTATE 0x1
|
#define PART_EMIT_ROTATABLE 0x1
|
||||||
|
|
||||||
|
|
||||||
|
void particleEmitter_setAlpha(ParticleEmitter *this, s32 alpha);
|
||||||
|
void particleEmitter_setSfx(ParticleEmitter *this, enum sfx_e sfx_id, s32 arg2);
|
||||||
|
void func_802EFA04(ParticleEmitter *this, f32);
|
||||||
|
void particleEmitter_setParticleCallback(ParticleEmitter *this, void (*arg1)(ParticleEmitter *this, f32 pos[3]));
|
||||||
|
void func_802EFA20(ParticleEmitter *this, f32, f32);
|
||||||
|
void func_802EFA34(ParticleEmitter *this, f32);
|
||||||
|
void func_802EFA40(ParticleEmitter *this, f32 (*)[3]);
|
||||||
|
void func_802EFA78(ParticleEmitter *this, s32 arg1);
|
||||||
|
void func_802EFF5C(ParticleEmitter *this, f32, f32, f32);
|
||||||
|
void func_802EFF7C(ParticleEmitter *this, f32, f32, f32);
|
||||||
|
void func_802EFF9C(ParticleEmitter *this, f32);
|
||||||
|
void partEmitMgr_freeEmitter(ParticleEmitter *this);
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -587,7 +587,7 @@ bool func_80311480(s32 text_id, s32 arg1, f32 *pos, ActorMarker *marker, void(*c
|
|||||||
void ability_unlock(enum ability_e);
|
void ability_unlock(enum ability_e);
|
||||||
|
|
||||||
extern void func_802EE278(Actor *, s32, s32, s32, f32, f32);
|
extern void func_802EE278(Actor *, s32, s32, s32, f32, f32);
|
||||||
extern void func_802F3BF4(s16[3]);
|
extern void fxSparkle_chTreasure(s16[3]);
|
||||||
extern void actor_collisionOn(Actor *);
|
extern void actor_collisionOn(Actor *);
|
||||||
extern void func_80328AC8(Actor *, s32);
|
extern void func_80328AC8(Actor *, s32);
|
||||||
|
|
||||||
|
@@ -338,27 +338,10 @@ typedef struct struct_21_s{
|
|||||||
void * unk1;
|
void * unk1;
|
||||||
}struct21s;
|
}struct21s;
|
||||||
|
|
||||||
//particle
|
|
||||||
typedef struct struct_2F_s{
|
|
||||||
f32 acceleration[3];
|
|
||||||
f32 fade;
|
|
||||||
f32 frame; //frame
|
|
||||||
f32 framerate; //framerate
|
|
||||||
f32 position[3];
|
|
||||||
f32 rotation[3];
|
|
||||||
f32 scale; //size
|
|
||||||
f32 initialSize_34; //initial_size
|
|
||||||
f32 finalSizeDiff; //delta_size
|
|
||||||
f32 angluar_velocity[3];
|
|
||||||
f32 age_48;
|
|
||||||
f32 lifetime_4C;
|
|
||||||
f32 velocity_50[3];
|
|
||||||
u8 unk5C;
|
|
||||||
u8 pad5D[3];
|
|
||||||
} Particle;
|
|
||||||
|
|
||||||
//particle_ctrl
|
//particle_ctrl
|
||||||
typedef struct struct_30_s{
|
typedef struct particle_emitter{
|
||||||
u32 pad0_31:8;
|
u32 pad0_31:8;
|
||||||
u32 doneSpawning_0_23:7; //doneSpawning
|
u32 doneSpawning_0_23:7; //doneSpawning
|
||||||
u32 unk0_16:1;
|
u32 unk0_16:1;
|
||||||
@@ -388,7 +371,7 @@ typedef struct struct_30_s{
|
|||||||
f32 unk74;
|
f32 unk74;
|
||||||
f32 unk78;
|
f32 unk78;
|
||||||
s32 unk7C;
|
s32 unk7C;
|
||||||
void (*particleCallback_80)(struct struct_30_s *, f32 [3]); //particleCallback
|
void (*particleCallback_80)(struct particle_emitter *, f32 [3]); //particleCallback
|
||||||
PAIR(s32, particleStartingFrameRange_84);
|
PAIR(s32, particleStartingFrameRange_84);
|
||||||
PAIR(f32, particleFramerateRange_8C);
|
PAIR(f32, particleFramerateRange_8C);
|
||||||
TUPLE_PAIR(f32, particleSpawnPositionRange_94);
|
TUPLE_PAIR(f32, particleSpawnPositionRange_94);
|
||||||
@@ -414,10 +397,9 @@ typedef struct struct_30_s{
|
|||||||
f32 unk108;
|
f32 unk108;
|
||||||
f32 unk10C[3];
|
f32 unk10C[3];
|
||||||
f32 unk118[3];
|
f32 unk118[3];
|
||||||
Particle *pList_start_124; //start_ptr?
|
struct particle *pList_start_124; //start_ptr?
|
||||||
Particle *pList_end_128; //end_ptr
|
struct particle *pList_end_128; //end_ptr
|
||||||
Particle *pList_capacity_12C; //capacity_end_ptr;
|
struct particle *pList_capacity_12C; //capacity_end_ptr;
|
||||||
Particle data[];//end of struct 0x130
|
|
||||||
} ParticleEmitter;
|
} ParticleEmitter;
|
||||||
|
|
||||||
typedef struct struct_31_s{
|
typedef struct struct_31_s{
|
||||||
|
@@ -53,7 +53,7 @@ void CC_func_80386920(Actor *this, s32 next_state){
|
|||||||
func_8025A6EC(COMUSIC_2B_DING_B, 0x7fff);
|
func_8025A6EC(COMUSIC_2B_DING_B, 0x7fff);
|
||||||
player_getPosition(&sp28);
|
player_getPosition(&sp28);
|
||||||
TUPLE_COPY(sp20, sp28);
|
TUPLE_COPY(sp20, sp28);
|
||||||
func_802F3A60(&sp20);
|
fxSparkle_giantGoldFeather(&sp20);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(next_state == 4){
|
if(next_state == 4){
|
||||||
|
@@ -69,7 +69,7 @@ void chtreasure_update(Actor *this){
|
|||||||
sp34[1] = (s16)sp3C[1];
|
sp34[1] = (s16)sp3C[1];
|
||||||
sp34[2] = (s16)sp3C[2];
|
sp34[2] = (s16)sp3C[2];
|
||||||
sp34[1] += 50;
|
sp34[1] += 50;
|
||||||
func_802F3BF4(sp34);
|
fxSparkle_chTreasure(sp34);
|
||||||
|
|
||||||
switch(this->state){
|
switch(this->state){
|
||||||
case 1://L8038C29C
|
case 1://L8038C29C
|
||||||
|
@@ -309,7 +309,7 @@ BKCollisionTri *func_802457C4(f32 arg0[3], f32 arg1[3], f32 arg2, f32 arg3, f32
|
|||||||
return var_v1;
|
return var_v1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8024587C(BKCollisionTri *dst, BKCollisionTri *src){
|
void collisionTri_copy(BKCollisionTri *dst, BKCollisionTri *src){
|
||||||
dst->unk0[0] = src->unk0[0];
|
dst->unk0[0] = src->unk0[0];
|
||||||
dst->unk0[1] = src->unk0[1];
|
dst->unk0[1] = src->unk0[1];
|
||||||
dst->unk0[2] = src->unk0[2];
|
dst->unk0[2] = src->unk0[2];
|
||||||
|
@@ -180,7 +180,7 @@ void __baMarker_resolveMusicNoteCollision(Prop *arg0) {
|
|||||||
func_8025A6EC(COMUSIC_9_NOTE_COLLECTED, 16000);
|
func_8025A6EC(COMUSIC_9_NOTE_COLLECTED, 16000);
|
||||||
timedFunc_set_1(0.75f, func_8035644C, 3);
|
timedFunc_set_1(0.75f, func_8035644C, 3);
|
||||||
}
|
}
|
||||||
func_802F379C(arg0->unk4);
|
fxSparkle_musicNote(arg0->unk4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __baMarker_8028BAB0(enum jiggy_e jiggy_id, s32 arg1, s32 arg2, s32 arg3){
|
void __baMarker_8028BAB0(enum jiggy_e jiggy_id, s32 arg1, s32 arg2, s32 arg3){
|
||||||
@@ -564,7 +564,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
|
|||||||
if(!(item_getCount(ITEM_13_EMPTY_HONEYCOMB) < 6)){
|
if(!(item_getCount(ITEM_13_EMPTY_HONEYCOMB) < 6)){
|
||||||
gcpausemenu_80314AC8(0);
|
gcpausemenu_80314AC8(0);
|
||||||
}
|
}
|
||||||
func_802F36DC(&other_prop->actorProp.x);
|
fxSparkle_emptyHoneycomb(&other_prop->actorProp.x);
|
||||||
marker_despawn(marker);
|
marker_despawn(marker);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -592,7 +592,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
|
|||||||
func_8025A6EC(COMUSIC_16_HONEYCOMB_COLLECTED, 28000);
|
func_8025A6EC(COMUSIC_16_HONEYCOMB_COLLECTED, 28000);
|
||||||
timedFunc_set_1(0.75f, func_8035644C, 0xA);
|
timedFunc_set_1(0.75f, func_8035644C, 0xA);
|
||||||
item_inc(ITEM_14_HEALTH);
|
item_inc(ITEM_14_HEALTH);
|
||||||
func_802F373C(&other_prop->actorProp.x);
|
fxSparkle_honeycomb(&other_prop->actorProp.x);
|
||||||
marker_despawn(marker);
|
marker_despawn(marker);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -702,7 +702,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
|
|||||||
}
|
}
|
||||||
func_8025A6EC(COMUSIC_15_EXTRA_LIFE_COLLECTED, 0x7FFF);
|
func_8025A6EC(COMUSIC_15_EXTRA_LIFE_COLLECTED, 0x7FFF);
|
||||||
timedFunc_set_1(1.5f, func_8035646C, 0xC);
|
timedFunc_set_1(1.5f, func_8035646C, 0xC);
|
||||||
func_802F3B3C(&other_prop->actorProp.x);
|
fxSparkle_extraLife(&other_prop->actorProp.x);
|
||||||
item_inc(ITEM_16_LIFE);
|
item_inc(ITEM_16_LIFE);
|
||||||
marker_despawn(marker);
|
marker_despawn(marker);
|
||||||
break;
|
break;
|
||||||
|
@@ -96,7 +96,7 @@ bool chcollectable_collectItem(Actor* actor, u32 arg1, enum asset_e dialogId, en
|
|||||||
s32 chcollectable_collectEgg(ActorProp *arg0){
|
s32 chcollectable_collectEgg(ActorProp *arg0){
|
||||||
Actor *actPtr = NULL;
|
Actor *actPtr = NULL;
|
||||||
if(arg0 != NULL){
|
if(arg0 != NULL){
|
||||||
func_802F3808(&arg0->x);
|
fxSparkle_blueEgg(&arg0->x);
|
||||||
if(arg0->unk8_0)
|
if(arg0->unk8_0)
|
||||||
actPtr = marker_getActor(arg0->marker);
|
actPtr = marker_getActor(arg0->marker);
|
||||||
}
|
}
|
||||||
@@ -105,7 +105,7 @@ s32 chcollectable_collectEgg(ActorProp *arg0){
|
|||||||
|
|
||||||
void chcollectable_collectRedFeather(ActorProp *arg0){
|
void chcollectable_collectRedFeather(ActorProp *arg0){
|
||||||
Actor *actPtr = NULL;
|
Actor *actPtr = NULL;
|
||||||
func_802F38F0(&arg0->x);
|
fxSparkle_redFeather(&arg0->x);
|
||||||
if(arg0->unk8_0)
|
if(arg0->unk8_0)
|
||||||
actPtr = marker_getActor(arg0->marker);
|
actPtr = marker_getActor(arg0->marker);
|
||||||
chcollectable_collectItem(actPtr, 6, 0xD9F, COMUSIC_B_RED_FEATHER_COLLECTED, 0xF, 4.0f);
|
chcollectable_collectItem(actPtr, 6, 0xD9F, COMUSIC_B_RED_FEATHER_COLLECTED, 0xF, 4.0f);
|
||||||
@@ -113,7 +113,7 @@ void chcollectable_collectRedFeather(ActorProp *arg0){
|
|||||||
|
|
||||||
void chcollectable_collectGoldFeather(ActorProp *arg0){
|
void chcollectable_collectGoldFeather(ActorProp *arg0){
|
||||||
Actor *actPtr = NULL;
|
Actor *actPtr = NULL;
|
||||||
func_802F39D8(&arg0->x);
|
fxSparkle_goldFeather(&arg0->x);
|
||||||
if(arg0->unk8_0)
|
if(arg0->unk8_0)
|
||||||
actPtr = marker_getActor(arg0->marker);
|
actPtr = marker_getActor(arg0->marker);
|
||||||
chcollectable_collectItem(actPtr, 7, 0xDA0, COMUSIC_14_GOLD_FEATHER_COLLECTED, ITEM_10_GOLD_FEATHER, 6.0f);
|
chcollectable_collectItem(actPtr, 7, 0xDA0, COMUSIC_14_GOLD_FEATHER_COLLECTED, ITEM_10_GOLD_FEATHER, 6.0f);
|
||||||
|
@@ -38,7 +38,7 @@ struct43s D_80372B00 = {
|
|||||||
void func_80359A40(f32 position[3], struct_core2_D2AB0 *arg1, s32 cnt){
|
void func_80359A40(f32 position[3], struct_core2_D2AB0 *arg1, s32 cnt){
|
||||||
ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt);
|
ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt);
|
||||||
particleEmitter_setSprite(pCtrl, ASSET_70C_SPRITE_RIPPLE);
|
particleEmitter_setSprite(pCtrl, ASSET_70C_SPRITE_RIPPLE);
|
||||||
particleEmitter_setDrawMode(pCtrl, PART_EMIT_3D_ROTATE);
|
particleEmitter_setDrawMode(pCtrl, PART_EMIT_ROTATABLE);
|
||||||
particleEmitter_setRGB(pCtrl, D_80372AE4);
|
particleEmitter_setRGB(pCtrl, D_80372AE4);
|
||||||
particleEmitter_setPosition(pCtrl, position);
|
particleEmitter_setPosition(pCtrl, position);
|
||||||
func_802EFB70(pCtrl, 0.1f, 0.1f);
|
func_802EFB70(pCtrl, 0.1f, 0.1f);
|
||||||
|
@@ -599,7 +599,7 @@ void func_8029C0D0(void) {
|
|||||||
_player_getPosition(sp3C);
|
_player_getPosition(sp3C);
|
||||||
sp3C[1] = sp34 = func_80294500();
|
sp3C[1] = sp34 = func_80294500();
|
||||||
p_ctrl = func_802F4094(sp3C, 35.0f);
|
p_ctrl = func_802F4094(sp3C, 35.0f);
|
||||||
func_802F3554(3, sp3C);
|
fxRipple_802F3554(3, sp3C);
|
||||||
particleEmitter_setParticleVelocityRange(p_ctrl, -350.0f, 300.0f, -350.0f, 350.0f, 500.0f, 350.0f);
|
particleEmitter_setParticleVelocityRange(p_ctrl, -350.0f, 300.0f, -350.0f, 350.0f, 500.0f, 350.0f);
|
||||||
particleEmitter_emitN(p_ctrl, 0xA);
|
particleEmitter_emitN(p_ctrl, 0xA);
|
||||||
particleEmitter_setParticleVelocityRange(p_ctrl, -150.0f, 500.0f, -150.0f, 150.0f, 800.0f, 150.0f);
|
particleEmitter_setParticleVelocityRange(p_ctrl, -150.0f, 500.0f, -150.0f, 150.0f, 800.0f, 150.0f);
|
||||||
@@ -635,7 +635,7 @@ void func_8029C304(s32 arg0) {
|
|||||||
|
|
||||||
_player_getPosition(sp1C);
|
_player_getPosition(sp1C);
|
||||||
sp1C[1] = func_80294500();
|
sp1C[1] = func_80294500();
|
||||||
func_802F3584(arg0, sp1C, func_802946CC());
|
fxRipple_802F3584(arg0, sp1C, func_802946CC());
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8029C348(void) {
|
void func_8029C348(void) {
|
||||||
|
@@ -13,7 +13,7 @@ void func_802C5BC0(Actor *this){
|
|||||||
actor_collisionOff(this);
|
actor_collisionOff(this);
|
||||||
this->unk60 = 0.0f;
|
this->unk60 = 0.0f;
|
||||||
this->pitch = 90.0f;
|
this->pitch = 90.0f;
|
||||||
func_802F3554(4, this->position);
|
fxRipple_802F3554(4, this->position);
|
||||||
this->initialized = TRUE;
|
this->initialized = TRUE;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@@ -88,7 +88,7 @@ void func_802C9D80(void){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func_802F373C(&s5->propPtr->x);
|
fxSparkle_honeycomb(&s5->propPtr->x);
|
||||||
marker_despawn(s5);
|
marker_despawn(s5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
extern f32 func_80258640(f32 [3], f32[3]);
|
extern f32 func_80258640(f32 [3], f32[3]);
|
||||||
extern void func_8025A788(enum comusic_e, f32, f32);
|
extern void func_8025A788(enum comusic_e, f32, f32);
|
||||||
extern void func_8031CC40(enum map_e, s32);
|
extern void func_8031CC40(enum map_e, s32);
|
||||||
extern void func_802F363C(f32);
|
extern void fxRipple_802F363C(f32);
|
||||||
extern void func_802F9D38(s32);
|
extern void func_802F9D38(s32);
|
||||||
extern void func_802EE6CC(f32[3], f32[3], s32[4], s32, f32, f32, s32, s32, s32);
|
extern void func_802EE6CC(f32[3], f32[3], s32[4], s32, f32, f32, s32, s32, s32);
|
||||||
extern void ml_vec3f_assign(f32[3], f32, f32, f32);
|
extern void ml_vec3f_assign(f32[3], f32, f32, f32);
|
||||||
@@ -865,7 +865,7 @@ void func_802D5260(void) {
|
|||||||
func_8034DEB4(sp38, sp34);
|
func_8034DEB4(sp38, sp34);
|
||||||
player_getPosition(sp28);
|
player_getPosition(sp28);
|
||||||
|
|
||||||
func_802F363C(sp34 + ((sp3C != -1) ? (D_803679E0[sp3C] + ((sp3C == 2) ? (6600.0f < sp28[0]) ? -200 : 0 : 0)) : 0));
|
fxRipple_802F363C(sp34 + ((sp3C != -1) ? (D_803679E0[sp3C] + ((sp3C == 2) ? (6600.0f < sp28[0]) ? -200 : 0 : 0)) : 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -30,7 +30,7 @@ void chMumboToken_collect(ActorMarker *marker, ActorMarker *other_marker){
|
|||||||
mumboscore_set(func_802E0CB0(this), TRUE);
|
mumboscore_set(func_802E0CB0(this), TRUE);
|
||||||
func_8030E760(0x401, 1.0f, 0x7fff);
|
func_8030E760(0x401, 1.0f, 0x7fff);
|
||||||
timedFunc_set_1(0.75f, func_8035644C, 4);
|
timedFunc_set_1(0.75f, func_8035644C, 4);
|
||||||
func_802F3AC0(&marker->propPtr->x);
|
fxSparkle_mumboToken(&marker->propPtr->x);
|
||||||
item_inc(ITEM_1C_MUMBO_TOKEN);
|
item_inc(ITEM_1C_MUMBO_TOKEN);
|
||||||
marker_despawn(marker);
|
marker_despawn(marker);
|
||||||
|
|
||||||
|
@@ -23,7 +23,7 @@ void func_802EDD44(void){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_802EDD68(ParticleEmitter *caller, f32 pos[3]){
|
void func_802EDD68(ParticleEmitter *caller, f32 pos[3]){
|
||||||
func_802F3554(0, pos);
|
fxRipple_802F3554(0, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
ParticleEmitter *func_802EDD8C(f32 pos[3], f32 xz_range, f32 arg2){
|
ParticleEmitter *func_802EDD8C(f32 pos[3], f32 xz_range, f32 arg2){
|
||||||
|
@@ -106,9 +106,9 @@ void func_802F1320(void){
|
|||||||
|
|
||||||
void func_802F1388(void){
|
void func_802F1388(void){
|
||||||
func_802EDD20();
|
func_802EDD20();
|
||||||
func_802F35B4();
|
fxRipple_free();
|
||||||
func_802F1E80();
|
func_802F1E80();
|
||||||
func_802F3C64();
|
fxSparkle_free();
|
||||||
func_802F404C();
|
func_802F404C();
|
||||||
func_802F422C();
|
func_802F422C();
|
||||||
func_802EE684();
|
func_802EE684();
|
||||||
@@ -117,9 +117,9 @@ void func_802F1388(void){
|
|||||||
|
|
||||||
void func_802F13E0(void){
|
void func_802F13E0(void){
|
||||||
func_802EDD44();
|
func_802EDD44();
|
||||||
func_802F35D8();
|
fxRipple_init();
|
||||||
func_802F1EA4();
|
func_802F1EA4();
|
||||||
func_802F3C84();
|
fxSparkle_init();
|
||||||
func_802F4070();
|
func_802F4070();
|
||||||
func_802F4250();
|
func_802F4250();
|
||||||
func_802EE63C();
|
func_802EE63C();
|
||||||
|
@@ -1,289 +0,0 @@
|
|||||||
#include <ultra64.h>
|
|
||||||
#include "functions.h"
|
|
||||||
#include "variables.h"
|
|
||||||
#include "core2/particle.h"
|
|
||||||
|
|
||||||
extern bool func_8024549C(f32[3], f32);
|
|
||||||
extern void func_802EFAB0(ParticleEmitter *, s32, f32);
|
|
||||||
extern ParticleEmitter *func_802F3670(s16[3], f32, enum asset_e);
|
|
||||||
extern void func_802F0EAC(ParticleEmitter *, f32);
|
|
||||||
extern ParticleEmitter *func_802F0EF0(u8);
|
|
||||||
extern ParticleEmitter *func_802F3E98(f32 pos[3], enum asset_e sprite_id);
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
f32 unk0[2];
|
|
||||||
f32 unk8;
|
|
||||||
f32 unkC[2];
|
|
||||||
f32 unk14[2];
|
|
||||||
u8 unk1C[3];
|
|
||||||
u8 unk1F;
|
|
||||||
}Struct_Core2_6C3E0;
|
|
||||||
|
|
||||||
/* .data */
|
|
||||||
Struct_Core2_6C3E0 D_80368B30[] = {
|
|
||||||
{{0.7f, 0.9f}, 0.5f, {0.1f, 0.1f}, { 0.4f, 0.6f}, {0xFF, 0xFF, 0xFE}, 0},
|
|
||||||
{{0.8f, 1.2f}, 0.5f, {0.1f, 0.1f}, { 0.9f, 1.8f}, {0xFF, 0xFF, 0xFE}, 1},
|
|
||||||
{{0.8f, 1.0f}, 0.5f, {0.1f, 0.1f}, { 0.6f, 1.0f}, {0xFF, 0xFF, 0xFE}, 2},
|
|
||||||
{{0.7f, 0.7f}, 0.5f, {0.4f, 0.4f}, { 1.8f, 1.9f}, {0xFF, 0xFF, 0xFE}, 3},
|
|
||||||
{{1.5f, 1.5f}, 0.5f, {0.1f, 0.1f}, {12.0f, 12.0f}, {0xFF, 0xFF, 0xFE}, 4}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct42s D_80368BD0 = {
|
|
||||||
{{-100.0f, 100.0f, -100.0f}, { 100.0f, 250.0f, 100.0f}},
|
|
||||||
{{ -10.0f, 10.0f, -10.0f}, { 10.0f, 10.0f, 10.0f}}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct42s D_80368C00 = {
|
|
||||||
{{-100.0f, 100.0f, -100.0f}, { 100.0f, 250.0f, 100.0f}},
|
|
||||||
{{ -10.0f, 10.0f, -10.0f}, { 10.0f, 10.0f, 10.0f}}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct42s D_80368C30 = {
|
|
||||||
{{-200.0f, 100.0f, -200.0f}, { 200.0f, 350.0f, 200.0f}},
|
|
||||||
{{ -30.0f, 100.0f, -30.0f}, { 30.0f, 100.0f, 30.0f}}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct42s D_80368C60 = {
|
|
||||||
{{-125.0f, 100.0f, -125.0f}, { 125.0f, 250.0f, 125.0f}},
|
|
||||||
{{ -15.0f, 100.0f, -15.0f}, { 15.0f, 100.0f, 15.0f}}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct42s D_80368C90 = {
|
|
||||||
{{-125.0f, 100.0f, -125.0f}, { 125.0f, 250.0f, 125.0f}},
|
|
||||||
{{ -15.0f, 100.0f, -15.0f}, { 15.0f, 100.0f, 15.0f}}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct42s D_80368CC0 = {
|
|
||||||
{{-100.0f, 100.0f, -100.0f}, { 100.0f, 250.0f, 100.0f}},
|
|
||||||
{{ -15.0f, 15.0f, -15.0f}, { 15.0f, 15.0f, 15.0f}}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct42s D_80368CF0 = {
|
|
||||||
{{ -75.0f, 100.0f, -75.0f}, { 75.0f, 250.0f, 75.0f}},
|
|
||||||
{{ -8.0f, 5.0f, -8.0f}, { -5.0f, 35.0f, 8.0f}}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct42s D_80368D20 = {
|
|
||||||
{{ 0.0f, 0.0f, 0.0f}, { 0.0f, 0.0f, 0.0f}},
|
|
||||||
{{ -15.0f, -15.0f, -15.0f}, { 15.0f, 15.0f, 15.0f}}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct42s D_80368D50 = {
|
|
||||||
{{ 0.0f, 0.0f, 0.0f}, { 0.0f, 0.0f, 0.0f}},
|
|
||||||
{{ -25.0f, -5.0f, -25.0f}, { 25.0f, 5.0f, 25.0f}}
|
|
||||||
};
|
|
||||||
|
|
||||||
/* .bss */
|
|
||||||
u8 D_80380A60;
|
|
||||||
|
|
||||||
/* .code */
|
|
||||||
bool func_802F3370(f32 arg0[3], s32 *arg1, bool arg2){
|
|
||||||
f32 sp1C;
|
|
||||||
|
|
||||||
*arg1 = 0;
|
|
||||||
if(arg2){
|
|
||||||
arg0[1] += 1.0f;
|
|
||||||
} else {
|
|
||||||
arg2 = func_8024549C(arg0, 20.0f);
|
|
||||||
if(!arg2){
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(func_80245524(arg0, arg2, arg1, &sp1C)){
|
|
||||||
arg0[1] = sp1C;
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
ParticleEmitter *func_802F3404(s32 arg0, f32 arg1[3], bool arg2){
|
|
||||||
s32 sp44;
|
|
||||||
f32 sp38[3];
|
|
||||||
ParticleEmitter *p_emitter;
|
|
||||||
s32 sp28[3];
|
|
||||||
Struct_Core2_6C3E0 *var_s0;
|
|
||||||
|
|
||||||
ml_vec3f_copy(sp38, arg1);
|
|
||||||
if(!func_802F3370(sp38, &sp44, arg2)){
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
sp38[1] += 3.0f;
|
|
||||||
p_emitter = func_802F0EF0(D_80380A60);
|
|
||||||
particleEmitter_setSprite(p_emitter, ASSET_70C_SPRITE_RIPPLE);
|
|
||||||
particleEmitter_setDrawMode(p_emitter, PART_EMIT_3D_ROTATE);
|
|
||||||
if(sp44){
|
|
||||||
func_802EFAB0(p_emitter, sp44, sp38[1]);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
func_802EFAB0(p_emitter, 0, 0.0f);
|
|
||||||
}
|
|
||||||
var_s0 = &D_80368B30[arg0];
|
|
||||||
sp28[0] = (s32) var_s0->unk1C[0];
|
|
||||||
sp28[1] = (s32) var_s0->unk1C[1];
|
|
||||||
sp28[2] = (s32) var_s0->unk1C[2];
|
|
||||||
particleEmitter_setFade(p_emitter, 0.0f, var_s0->unk8);
|
|
||||||
particleEmitter_setPosition(p_emitter, sp38);
|
|
||||||
particleEmitter_setRGB(p_emitter, sp28);
|
|
||||||
func_802EFB70(p_emitter, var_s0->unkC[0], var_s0->unkC[1]);
|
|
||||||
func_802EFB84(p_emitter, var_s0->unk14[0], var_s0->unk14[1]);
|
|
||||||
particleEmitter_setParticleLifeTimeRange(p_emitter, var_s0->unk0[0], var_s0->unk0[1]);
|
|
||||||
func_802EFF50(p_emitter, 100.0f);
|
|
||||||
return p_emitter;
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F3554(s32 arg0, f32 arg1[3]){
|
|
||||||
ParticleEmitter *p_emitter = func_802F3404(arg0, arg1, 0);
|
|
||||||
if(p_emitter != NULL){
|
|
||||||
particleEmitter_emitN(p_emitter, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F3584(s32 arg0, f32 arg1[3], s32 arg2){
|
|
||||||
ParticleEmitter *p_emitter = func_802F3404(arg0, arg1, arg2);
|
|
||||||
if(p_emitter != NULL){
|
|
||||||
particleEmitter_emitN(p_emitter, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F35B4(void){
|
|
||||||
func_802F1190(D_80380A60);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F35D8(void){
|
|
||||||
D_80380A60 = func_802F0F78(0x19);
|
|
||||||
}
|
|
||||||
|
|
||||||
ParticleEmitter *func_802F35FC(s32 arg0, f32 arg1[3]){
|
|
||||||
return func_802F3404(arg0, arg1, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
ParticleEmitter *func_802F361C(s32 arg0, f32 arg1[3], s32 arg2){
|
|
||||||
return func_802F3404(arg0, arg1, arg2);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F363C(f32 arg0){
|
|
||||||
func_802F0EAC(func_802F0EF0(D_80380A60), arg0);
|
|
||||||
}
|
|
||||||
|
|
||||||
ParticleEmitter *func_802F3670(s16 arg0[3], f32 arg1, enum asset_e sprite_id){
|
|
||||||
f32 sp1C[3];
|
|
||||||
|
|
||||||
sp1C[0] = (f32)arg0[0];
|
|
||||||
sp1C[1] = (f32)arg0[1];
|
|
||||||
sp1C[2] = (f32)arg0[2];
|
|
||||||
sp1C[1] += arg1;
|
|
||||||
|
|
||||||
return func_802F3E98(sp1C, sprite_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F36DC(s16 arg0[3]){
|
|
||||||
ParticleEmitter *p_emitter = func_802F3670(arg0, 10.0f, ASSET_713_SPRITE_SPARKLE_YELLOW);
|
|
||||||
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368BD0);
|
|
||||||
func_802EFB70(p_emitter, 0.32f, 0.32f);
|
|
||||||
particleEmitter_emitN(p_emitter, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F373C(s16 arg0[3]){
|
|
||||||
ParticleEmitter *p_emitter = func_802F3670(arg0, 10.0f, ASSET_713_SPRITE_SPARKLE_YELLOW);
|
|
||||||
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368C00);
|
|
||||||
func_802EFB70(p_emitter, 0.32f, 0.32f);
|
|
||||||
particleEmitter_emitN(p_emitter, 7);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F379C(s16 arg0[3]){
|
|
||||||
ParticleEmitter *p_emitter = func_802F3670(arg0, 7.0f, ASSET_713_SPRITE_SPARKLE_YELLOW);
|
|
||||||
particleEmitter_setParticleVelocityRange(p_emitter,
|
|
||||||
-70.0f, 100.0f, -70.0f,
|
|
||||||
70.0f, 250.0f, 70.0f
|
|
||||||
);
|
|
||||||
particleEmitter_emitN(p_emitter, 5);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F3808(s16 arg0[3]){
|
|
||||||
ParticleEmitter *p_emitter = func_802F3670(arg0, 7.0f, ASSET_716_SPRITE_SPARKLE_WHITE);
|
|
||||||
particleEmitter_setParticleVelocityRange(p_emitter,
|
|
||||||
-70.0f, 100.0f, -70.0f,
|
|
||||||
70.0f, 250.0f, 70.0f
|
|
||||||
);
|
|
||||||
particleEmitter_emitN(p_emitter, 5);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F3874(s16 arg0[3]){
|
|
||||||
ParticleEmitter *p_emitter = func_802F3670(arg0, 25.0f, ASSET_716_SPRITE_SPARKLE_WHITE);
|
|
||||||
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368C30);
|
|
||||||
func_802EFB70(p_emitter, 0.5f, 0.5f);
|
|
||||||
particleEmitter_emitN(p_emitter, 12);
|
|
||||||
particleEmitter_setParticleLifeTimeRange(p_emitter, 1.5f, 1.5f);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F38F0(s16 arg0[3]){
|
|
||||||
ParticleEmitter *p_emitter = func_802F3670(arg0, 12.0f, ASSET_715_SPRITE_SPARKLE_RED);
|
|
||||||
particleEmitter_setParticleVelocityRange(p_emitter,
|
|
||||||
-75.0f, 100.0f, -75.0f,
|
|
||||||
75.0f, 250.0f, 75.0f
|
|
||||||
);
|
|
||||||
func_802EFB70(p_emitter, 0.3f, 0.3f);
|
|
||||||
particleEmitter_emitN(p_emitter, 5);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F3978(s16 arg0[3]){
|
|
||||||
ParticleEmitter *p_emitter = func_802F3670(arg0, 40.0f, ASSET_715_SPRITE_SPARKLE_RED);
|
|
||||||
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368C60);
|
|
||||||
func_802EFB70(p_emitter, 0.5f, 0.5f);
|
|
||||||
particleEmitter_emitN(p_emitter, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F39D8(s16 arg0[3]){
|
|
||||||
ParticleEmitter *p_emitter = func_802F3670(arg0, 7.0f, ASSET_713_SPRITE_SPARKLE_YELLOW);
|
|
||||||
particleEmitter_setParticleVelocityRange(p_emitter,
|
|
||||||
-75.0f, 100.0f, -75.0f,
|
|
||||||
75.0f, 250.0f, 75.0f
|
|
||||||
);
|
|
||||||
func_802EFB70(p_emitter, 0.3f, 0.3f);
|
|
||||||
particleEmitter_emitN(p_emitter, 5);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F3A60(s16 arg0[3]){
|
|
||||||
ParticleEmitter *p_emitter = func_802F3670(arg0, 40.0f, ASSET_713_SPRITE_SPARKLE_YELLOW);
|
|
||||||
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368C90);
|
|
||||||
func_802EFB70(p_emitter, 0.5f, 0.5f);
|
|
||||||
particleEmitter_emitN(p_emitter, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F3AC0(s16 arg0[3]){
|
|
||||||
ParticleEmitter *p_emitter = func_802F3670(arg0, 10.0f, ASSET_718_SPRITE_SPARKLE_WHITE_2);
|
|
||||||
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368CC0);
|
|
||||||
func_802EFB70(p_emitter, 0.4f, 0.4f);
|
|
||||||
particleEmitter_emitN(p_emitter, 7);
|
|
||||||
particleEmitter_setParticleLifeTimeRange(p_emitter, 1.5f, 1.5f);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F3B3C(s16 arg0[3]){
|
|
||||||
ParticleEmitter *p_emitter = func_802F3670(arg0, 10.0f, ASSET_713_SPRITE_SPARKLE_YELLOW);
|
|
||||||
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368CF0);
|
|
||||||
func_802EFB70(p_emitter, 0.27f, 0.27f);
|
|
||||||
particleEmitter_emitN(p_emitter, 5);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F3B9C(s16 arg0[3]){
|
|
||||||
ParticleEmitter *p_emitter = func_802F3670(arg0, 10.0f, ASSET_713_SPRITE_SPARKLE_YELLOW);
|
|
||||||
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368D20);
|
|
||||||
func_802EFB70(p_emitter, 0.25f, 0.3f);
|
|
||||||
particleEmitter_emitN(p_emitter, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F3BF4(s16 arg0[3]){
|
|
||||||
ParticleEmitter *p_emitter = func_802F3670(arg0, 10.0f, ASSET_713_SPRITE_SPARKLE_YELLOW);
|
|
||||||
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368D50);
|
|
||||||
func_802EFB70(p_emitter, 0.45f, 0.6f);
|
|
||||||
particleEmitter_setParticleLifeTimeRange(p_emitter, 0.5f, 0.8f);
|
|
||||||
particleEmitter_emitN(p_emitter, 3);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F3C64(void){
|
|
||||||
func_802F3E50();
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_802F3C84(void){
|
|
||||||
func_802F3E74();
|
|
||||||
}
|
|
@@ -1,20 +1,16 @@
|
|||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include "functions.h"
|
#include "functions.h"
|
||||||
#include "variables.h"
|
#include "variables.h"
|
||||||
|
#include "core2/particle.h"
|
||||||
extern void func_802EFA04(ParticleEmitter *, f32);
|
|
||||||
|
|
||||||
ParticleEmitter *func_802F4094(f32 pos[3], f32 arg1);
|
ParticleEmitter *func_802F4094(f32 pos[3], f32 arg1);
|
||||||
|
|
||||||
/* .data */
|
|
||||||
s32 D_80368DD0[3] = {0xff, 0xff, 0xfe};
|
|
||||||
|
|
||||||
/* .bss */
|
/* .bss */
|
||||||
u8 D_80380A90;
|
u8 D_80380A90;
|
||||||
|
|
||||||
/* .code */
|
/* .code */
|
||||||
void func_802F3FC0(ParticleEmitter *this, f32 pos[3]){
|
void func_802F3FC0(ParticleEmitter *this, f32 pos[3]){
|
||||||
func_802F3554(0, pos);
|
fxRipple_802F3554(0, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_802F3FE4(f32 pos[3]){
|
void func_802F3FE4(f32 pos[3]){
|
||||||
@@ -37,6 +33,8 @@ void func_802F4070(void){
|
|||||||
|
|
||||||
ParticleEmitter *func_802F4094(f32 pos[3], f32 arg1){
|
ParticleEmitter *func_802F4094(f32 pos[3], f32 arg1){
|
||||||
ParticleEmitter *pCtrl;
|
ParticleEmitter *pCtrl;
|
||||||
|
static s32 D_80368DD0[3] = {0xff, 0xff, 0xfe};
|
||||||
|
|
||||||
|
|
||||||
pCtrl = func_802F0EF0(D_80380A90);
|
pCtrl = func_802F0EF0(D_80380A90);
|
||||||
particleEmitter_setSprite(pCtrl, ASSET_70B_SPRITE_BUBBLE_2);
|
particleEmitter_setSprite(pCtrl, ASSET_70B_SPRITE_BUBBLE_2);
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
BKCollisionTri *func_80309B48(f32 *, f32 *, f32 *, u32);
|
BKCollisionTri *func_80309B48(f32 *, f32 *, f32 *, u32);
|
||||||
void func_8031C608(struct0 *this);
|
void func_8031C608(struct0 *this);
|
||||||
void func_8031BD98(struct0 *, f32, s32, s32, f32 *, void *, s32);
|
void func_8031BD98(struct0 *, f32, s32, s32, f32 *, void *, BKCollisionTri *);
|
||||||
|
|
||||||
void func_8031BE98(struct0*, f32, BKCollisionTri *);
|
void func_8031BE98(struct0*, f32, BKCollisionTri *);
|
||||||
|
|
||||||
@@ -126,9 +126,9 @@ s32 func_8031BCF4(struct0 *this) {
|
|||||||
return 3;
|
return 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8031BD98(struct0 *this, f32 arg1, s32 arg2, s32 arg3, f32 *normPtr, void *model, s32 arg6){
|
void func_8031BD98(struct0 *this, f32 arg1, s32 arg2, s32 arg3, f32 *normPtr, void *model, BKCollisionTri *arg6){
|
||||||
if(arg6){
|
if(arg6){
|
||||||
func_8024587C(&this->unk4, arg6);
|
collisionTri_copy(&this->unk4, arg6);
|
||||||
}
|
}
|
||||||
this->unk58 = 1;
|
this->unk58 = 1;
|
||||||
this->unk4C = arg2;
|
this->unk4C = arg2;
|
||||||
@@ -148,7 +148,7 @@ void func_8031BE58(struct0 *this){
|
|||||||
|
|
||||||
void func_8031BE98(struct0 *this, f32 arg1, BKCollisionTri * arg2){
|
void func_8031BE98(struct0 *this, f32 arg1, BKCollisionTri * arg2){
|
||||||
if(arg2 != NULL)
|
if(arg2 != NULL)
|
||||||
func_8024587C(&this->unk10, arg2);
|
collisionTri_copy(&this->unk10, arg2);
|
||||||
this->unk59 = 1;
|
this->unk59 = 1;
|
||||||
this->posY = arg1;
|
this->posY = arg1;
|
||||||
}
|
}
|
||||||
|
@@ -96,7 +96,7 @@ void func_80344138(BKSpriteDisplayData *self, s32 frame, s32 mirrored, f32 posit
|
|||||||
func_80344124();
|
func_80344124();
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_80344424(BKSpriteDisplayData *arg0, s32 frame, bool mirrored, f32 arg3[3], f32 scale[3], f32 rotation, Gfx **gfx, Mtx **mtx) {
|
void func_80344424(BKSpriteDisplayData *arg0, s32 frame, bool mirrored, f32 position[3], f32 scale[3], f32 rotation, Gfx **gfx, Mtx **mtx) {
|
||||||
f32 sp6C[3];
|
f32 sp6C[3];
|
||||||
f32 sp60[3];
|
f32 sp60[3];
|
||||||
f32 sp5C;
|
f32 sp5C;
|
||||||
@@ -111,9 +111,9 @@ void func_80344424(BKSpriteDisplayData *arg0, s32 frame, bool mirrored, f32 arg3
|
|||||||
|
|
||||||
func_8024C5CC(sp6C);
|
func_8024C5CC(sp6C);
|
||||||
func_8024C5A8(sp60);
|
func_8024C5A8(sp60);
|
||||||
sp50[0] = arg3[0] - sp6C[0];
|
sp50[0] = position[0] - sp6C[0];
|
||||||
sp50[1] = arg3[1] - sp6C[1];
|
sp50[1] = position[1] - sp6C[1];
|
||||||
sp50[2] = arg3[2] - sp6C[2];
|
sp50[2] = position[2] - sp6C[2];
|
||||||
sp5C = sp60[0]*sp50[0] + sp60[1]*sp50[1] + sp60[2]*sp50[2];
|
sp5C = sp60[0]*sp50[0] + sp60[1]*sp50[1] + sp60[2]*sp50[2];
|
||||||
if ((sp5C < 0.0f) || (20000.0f < sp5C)) {
|
if ((sp5C < 0.0f) || (20000.0f < sp5C)) {
|
||||||
func_80344124();
|
func_80344124();
|
||||||
@@ -157,7 +157,7 @@ void func_80344424(BKSpriteDisplayData *arg0, s32 frame, bool mirrored, f32 arg3
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void func_80344720(BKSpriteDisplayData *arg0, s32 frame, bool mirrored, f32 arg3[3], f32 rotation[3], f32 scale[3], Gfx **gfx, Mtx **mtx) {
|
void func_80344720(BKSpriteDisplayData *arg0, s32 frame, bool mirrored, f32 position[3], f32 rotation[3], f32 scale[3], Gfx **gfx, Mtx **mtx) {
|
||||||
f32 sp5C[3];
|
f32 sp5C[3];
|
||||||
f32 sp50[3];
|
f32 sp50[3];
|
||||||
f32 sp4C;
|
f32 sp4C;
|
||||||
@@ -169,9 +169,9 @@ void func_80344720(BKSpriteDisplayData *arg0, s32 frame, bool mirrored, f32 arg3
|
|||||||
|
|
||||||
func_8024C5CC(sp5C);
|
func_8024C5CC(sp5C);
|
||||||
func_8024C5A8(sp50);
|
func_8024C5A8(sp50);
|
||||||
sp40[0] = arg3[0] - sp5C[0];
|
sp40[0] = position[0] - sp5C[0];
|
||||||
sp40[1] = arg3[1] - sp5C[1];
|
sp40[1] = position[1] - sp5C[1];
|
||||||
sp40[2] = arg3[2] - sp5C[2];
|
sp40[2] = position[2] - sp5C[2];
|
||||||
sp4C = sp50[0]*sp40[0] + sp50[1]*sp40[1] + sp50[2]*sp40[2];
|
sp4C = sp50[0]*sp40[0] + sp50[1]*sp40[1] + sp50[2]*sp40[2];
|
||||||
if ((sp4C < 0.0f) || (20000.0f < sp4C)) {
|
if ((sp4C < 0.0f) || (20000.0f < sp4C)) {
|
||||||
func_80344124();
|
func_80344124();
|
||||||
|
@@ -380,7 +380,7 @@ void func_80293F0C(void){
|
|||||||
_player_getPosition(sp38);
|
_player_getPosition(sp38);
|
||||||
ml_vec3f_diff_copy(D_8037C268, sp38, sp2C);
|
ml_vec3f_diff_copy(D_8037C268, sp38, sp2C);
|
||||||
if (D_8037C204) {
|
if (D_8037C204) {
|
||||||
func_8024587C(&D_8037C208, D_8037C204);
|
collisionTri_copy(&D_8037C208, D_8037C204);
|
||||||
D_8037C204 = &D_8037C208;
|
D_8037C204 = &D_8037C208;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
128
src/core2/fx/ripple.c
Normal file
128
src/core2/fx/ripple.c
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
#include <ultra64.h>
|
||||||
|
#include "functions.h"
|
||||||
|
#include "variables.h"
|
||||||
|
#include "core2/particle.h"
|
||||||
|
|
||||||
|
extern bool func_8024549C(f32[3], f32);
|
||||||
|
extern void func_802EFAB0(ParticleEmitter *, s32, f32);
|
||||||
|
extern void func_802F0EAC(ParticleEmitter *, f32);
|
||||||
|
extern ParticleEmitter *func_802F0EF0(u8);
|
||||||
|
|
||||||
|
typedef union range_f32_u {
|
||||||
|
f32 raw[2];
|
||||||
|
struct {
|
||||||
|
f32 min;
|
||||||
|
f32 max;
|
||||||
|
};
|
||||||
|
}Range_f32;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
struct {f32 min; f32 max;} lifetime;
|
||||||
|
f32 fade_out;
|
||||||
|
f32 unkC[2];
|
||||||
|
f32 unk14[2];
|
||||||
|
struct {u8 r; u8 g; u8 b;} color;
|
||||||
|
u8 uid;
|
||||||
|
}Struct_Core2_6C3E0;
|
||||||
|
|
||||||
|
/* .data */
|
||||||
|
Struct_Core2_6C3E0 D_80368B30[] = {
|
||||||
|
{{0.7f, 0.9f}, 0.5f, {0.1f, 0.1f}, { 0.4f, 0.6f}, {0xFF, 0xFF, 0xFE}, 0},
|
||||||
|
{{0.8f, 1.2f}, 0.5f, {0.1f, 0.1f}, { 0.9f, 1.8f}, {0xFF, 0xFF, 0xFE}, 1},
|
||||||
|
{{0.8f, 1.0f}, 0.5f, {0.1f, 0.1f}, { 0.6f, 1.0f}, {0xFF, 0xFF, 0xFE}, 2},
|
||||||
|
{{0.7f, 0.7f}, 0.5f, {0.4f, 0.4f}, { 1.8f, 1.9f}, {0xFF, 0xFF, 0xFE}, 3},
|
||||||
|
{{1.5f, 1.5f}, 0.5f, {0.1f, 0.1f}, {12.0f, 12.0f}, {0xFF, 0xFF, 0xFE}, 4}
|
||||||
|
};
|
||||||
|
|
||||||
|
/* .bss */
|
||||||
|
u8 D_80380A60;
|
||||||
|
|
||||||
|
/* .code */
|
||||||
|
bool __fxRipple_802F3370(f32 position[3], s32 *arg1, bool arg2){
|
||||||
|
f32 sp1C;
|
||||||
|
|
||||||
|
*arg1 = 0;
|
||||||
|
if(arg2){
|
||||||
|
position[1] += 1.0f;
|
||||||
|
} else {
|
||||||
|
arg2 = func_8024549C(position, 20.0f);
|
||||||
|
if(!arg2){
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(func_80245524(position, arg2, arg1, &sp1C)){
|
||||||
|
position[1] = sp1C;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
ParticleEmitter *__fxRipple_create(s32 arg0, f32 position[3], bool arg2){
|
||||||
|
s32 sp44;
|
||||||
|
f32 spawn_position[3];
|
||||||
|
ParticleEmitter *p_emitter;
|
||||||
|
s32 rgb[3];
|
||||||
|
Struct_Core2_6C3E0 *var_s0;
|
||||||
|
|
||||||
|
ml_vec3f_copy(spawn_position, position);
|
||||||
|
if(!__fxRipple_802F3370(spawn_position, &sp44, arg2)){
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
spawn_position[1] += 3.0f;
|
||||||
|
p_emitter = func_802F0EF0(D_80380A60);
|
||||||
|
particleEmitter_setSprite(p_emitter, ASSET_70C_SPRITE_RIPPLE);
|
||||||
|
particleEmitter_setDrawMode(p_emitter, PART_EMIT_ROTATABLE);
|
||||||
|
if(sp44){
|
||||||
|
func_802EFAB0(p_emitter, sp44, spawn_position[1]);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
func_802EFAB0(p_emitter, 0, 0.0f);
|
||||||
|
}
|
||||||
|
var_s0 = &D_80368B30[arg0];
|
||||||
|
rgb[0] = (s32) var_s0->color.r;
|
||||||
|
rgb[1] = (s32) var_s0->color.g;
|
||||||
|
rgb[2] = (s32) var_s0->color.b;
|
||||||
|
particleEmitter_setFade(p_emitter, 0.0f, var_s0->fade_out);
|
||||||
|
particleEmitter_setPosition(p_emitter, spawn_position);
|
||||||
|
particleEmitter_setRGB(p_emitter, rgb);
|
||||||
|
func_802EFB70(p_emitter, var_s0->unkC[0], var_s0->unkC[1]);
|
||||||
|
func_802EFB84(p_emitter, var_s0->unk14[0], var_s0->unk14[1]);
|
||||||
|
particleEmitter_setParticleLifeTimeRange(p_emitter, var_s0->lifetime.min, var_s0->lifetime.max);
|
||||||
|
func_802EFF50(p_emitter, 100.0f);
|
||||||
|
return p_emitter;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxRipple_802F3554(s32 arg0, f32 position[3]){
|
||||||
|
ParticleEmitter *p_emitter = __fxRipple_create(arg0, position, 0);
|
||||||
|
if(p_emitter != NULL){
|
||||||
|
particleEmitter_emitN(p_emitter, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxRipple_802F3584(s32 arg0, f32 position[3], s32 arg2){
|
||||||
|
ParticleEmitter *p_emitter = __fxRipple_create(arg0, position, arg2);
|
||||||
|
if(p_emitter != NULL){
|
||||||
|
particleEmitter_emitN(p_emitter, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxRipple_free(void){
|
||||||
|
func_802F1190(D_80380A60);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxRipple_init(void){
|
||||||
|
D_80380A60 = func_802F0F78(0x19);
|
||||||
|
}
|
||||||
|
|
||||||
|
ParticleEmitter *fxRipple_802F35FC(s32 arg0, f32 position[3]){
|
||||||
|
return __fxRipple_create(arg0, position, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
ParticleEmitter *fxRipple_802F361C(s32 arg0, f32 position[3], s32 arg2){
|
||||||
|
return __fxRipple_create(arg0, position, arg2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxRipple_802F363C(f32 arg0){
|
||||||
|
func_802F0EAC(func_802F0EF0(D_80380A60), arg0);
|
||||||
|
}
|
||||||
|
|
167
src/core2/fx/sparkle.c
Normal file
167
src/core2/fx/sparkle.c
Normal file
@@ -0,0 +1,167 @@
|
|||||||
|
#include <ultra64.h>
|
||||||
|
#include "functions.h"
|
||||||
|
#include "variables.h"
|
||||||
|
#include "core2/particle.h"
|
||||||
|
|
||||||
|
extern ParticleEmitter *func_802F3E98(f32 pos[3], enum asset_e sprite_id);
|
||||||
|
|
||||||
|
ParticleEmitter *__fxSparkle_create(s16 position[3], f32 height, enum asset_e sprite_id){
|
||||||
|
f32 position_f[3];
|
||||||
|
|
||||||
|
position_f[0] = (f32)position[0];
|
||||||
|
position_f[1] = (f32)position[1];
|
||||||
|
position_f[2] = (f32)position[2];
|
||||||
|
position[1] += height;
|
||||||
|
|
||||||
|
return func_802F3E98(position, sprite_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxSparkle_emptyHoneycomb(s16 position[3]){
|
||||||
|
static struct42s D_80368BD0 = {
|
||||||
|
{{-100.0f, 100.0f, -100.0f}, { 100.0f, 250.0f, 100.0f}},
|
||||||
|
{{ -10.0f, 10.0f, -10.0f}, { 10.0f, 10.0f, 10.0f}}
|
||||||
|
};
|
||||||
|
|
||||||
|
ParticleEmitter *p_emitter = __fxSparkle_create(position, 10.0f, ASSET_713_SPRITE_SPARKLE_YELLOW);
|
||||||
|
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368BD0);
|
||||||
|
func_802EFB70(p_emitter, 0.32f, 0.32f);
|
||||||
|
particleEmitter_emitN(p_emitter, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxSparkle_honeycomb(s16 position[3]){
|
||||||
|
static struct42s D_80368C00 = {
|
||||||
|
{{-100.0f, 100.0f, -100.0f}, { 100.0f, 250.0f, 100.0f}},
|
||||||
|
{{ -10.0f, 10.0f, -10.0f}, { 10.0f, 10.0f, 10.0f}}
|
||||||
|
};
|
||||||
|
|
||||||
|
ParticleEmitter *p_emitter = __fxSparkle_create(position, 10.0f, ASSET_713_SPRITE_SPARKLE_YELLOW);
|
||||||
|
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368C00);
|
||||||
|
func_802EFB70(p_emitter, 0.32f, 0.32f);
|
||||||
|
particleEmitter_emitN(p_emitter, 7);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxSparkle_musicNote(s16 position[3]){
|
||||||
|
ParticleEmitter *p_emitter = __fxSparkle_create(position, 7.0f, ASSET_713_SPRITE_SPARKLE_YELLOW);
|
||||||
|
particleEmitter_setParticleVelocityRange(p_emitter,
|
||||||
|
-70.0f, 100.0f, -70.0f,
|
||||||
|
70.0f, 250.0f, 70.0f
|
||||||
|
);
|
||||||
|
particleEmitter_emitN(p_emitter, 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxSparkle_blueEgg(s16 position[3]){
|
||||||
|
ParticleEmitter *p_emitter = __fxSparkle_create(position, 7.0f, ASSET_716_SPRITE_SPARKLE_WHITE);
|
||||||
|
particleEmitter_setParticleVelocityRange(p_emitter,
|
||||||
|
-70.0f, 100.0f, -70.0f,
|
||||||
|
70.0f, 250.0f, 70.0f
|
||||||
|
);
|
||||||
|
particleEmitter_emitN(p_emitter, 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxSparkle_giantBlueEgg(s16 position[3]){
|
||||||
|
static struct42s D_80368C30 = {
|
||||||
|
{{-200.0f, 100.0f, -200.0f}, { 200.0f, 350.0f, 200.0f}}, /*position*/
|
||||||
|
{{ -30.0f, 100.0f, -30.0f}, { 30.0f, 100.0f, 30.0f}} /*velocity*/
|
||||||
|
};
|
||||||
|
ParticleEmitter *p_emitter = __fxSparkle_create(position, 25.0f, ASSET_716_SPRITE_SPARKLE_WHITE);
|
||||||
|
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368C30);
|
||||||
|
func_802EFB70(p_emitter, 0.5f, 0.5f);
|
||||||
|
particleEmitter_emitN(p_emitter, 12);
|
||||||
|
particleEmitter_setParticleLifeTimeRange(p_emitter, 1.5f, 1.5f);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxSparkle_redFeather(s16 position[3]){
|
||||||
|
ParticleEmitter *p_emitter = __fxSparkle_create(position, 12.0f, ASSET_715_SPRITE_SPARKLE_RED);
|
||||||
|
particleEmitter_setParticleVelocityRange(p_emitter,
|
||||||
|
-75.0f, 100.0f, -75.0f,
|
||||||
|
75.0f, 250.0f, 75.0f
|
||||||
|
);
|
||||||
|
func_802EFB70(p_emitter, 0.3f, 0.3f);
|
||||||
|
particleEmitter_emitN(p_emitter, 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxSparkle_giantRedFeather(s16 position[3]){
|
||||||
|
static struct42s D_80368C60 = {
|
||||||
|
{{-125.0f, 100.0f, -125.0f}, { 125.0f, 250.0f, 125.0f}}, /*position*/
|
||||||
|
{{ -15.0f, 100.0f, -15.0f}, { 15.0f, 100.0f, 15.0f}} /*velocity*/
|
||||||
|
};
|
||||||
|
ParticleEmitter *p_emitter = __fxSparkle_create(position, 40.0f, ASSET_715_SPRITE_SPARKLE_RED);
|
||||||
|
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368C60);
|
||||||
|
func_802EFB70(p_emitter, 0.5f, 0.5f);
|
||||||
|
particleEmitter_emitN(p_emitter, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxSparkle_goldFeather(s16 position[3]){
|
||||||
|
ParticleEmitter *p_emitter = __fxSparkle_create(position, 7.0f, ASSET_713_SPRITE_SPARKLE_YELLOW);
|
||||||
|
particleEmitter_setParticleVelocityRange(p_emitter,
|
||||||
|
-75.0f, 100.0f, -75.0f,
|
||||||
|
75.0f, 250.0f, 75.0f
|
||||||
|
);
|
||||||
|
func_802EFB70(p_emitter, 0.3f, 0.3f);
|
||||||
|
particleEmitter_emitN(p_emitter, 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxSparkle_giantGoldFeather(s16 position[3]){
|
||||||
|
static struct42s D_80368C90 = {
|
||||||
|
{{-125.0f, 100.0f, -125.0f}, { 125.0f, 250.0f, 125.0f}}, /*position*/
|
||||||
|
{{ -15.0f, 100.0f, -15.0f}, { 15.0f, 100.0f, 15.0f}} /*velocity*/
|
||||||
|
};
|
||||||
|
ParticleEmitter *p_emitter = __fxSparkle_create(position, 40.0f, ASSET_713_SPRITE_SPARKLE_YELLOW);
|
||||||
|
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368C90);
|
||||||
|
func_802EFB70(p_emitter, 0.5f, 0.5f);
|
||||||
|
particleEmitter_emitN(p_emitter, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxSparkle_mumboToken(s16 position[3]){
|
||||||
|
static struct42s D_80368CC0 = {
|
||||||
|
{{-100.0f, 100.0f, -100.0f}, { 100.0f, 250.0f, 100.0f}}, /*position*/
|
||||||
|
{{ -15.0f, 15.0f, -15.0f}, { 15.0f, 15.0f, 15.0f}} /*velocity*/
|
||||||
|
};
|
||||||
|
ParticleEmitter *p_emitter = __fxSparkle_create(position, 10.0f, ASSET_718_SPRITE_SPARKLE_WHITE_2);
|
||||||
|
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368CC0);
|
||||||
|
func_802EFB70(p_emitter, 0.4f, 0.4f);
|
||||||
|
particleEmitter_emitN(p_emitter, 7);
|
||||||
|
particleEmitter_setParticleLifeTimeRange(p_emitter, 1.5f, 1.5f);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxSparkle_extraLife(s16 position[3]){
|
||||||
|
static struct42s D_80368CF0 = {
|
||||||
|
{{ -75.0f, 100.0f, -75.0f}, { 75.0f, 250.0f, 75.0f}}, /*position*/
|
||||||
|
{{ -8.0f, 5.0f, -8.0f}, { -5.0f, 35.0f, 8.0f}} /*velocity*/
|
||||||
|
};
|
||||||
|
ParticleEmitter *p_emitter = __fxSparkle_create(position, 10.0f, ASSET_713_SPRITE_SPARKLE_YELLOW);
|
||||||
|
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368CF0);
|
||||||
|
func_802EFB70(p_emitter, 0.27f, 0.27f);
|
||||||
|
particleEmitter_emitN(p_emitter, 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxSparkle_brentilda(s16 position[3]){
|
||||||
|
static struct42s D_80368D20 = {
|
||||||
|
{{ 0.0f, 0.0f, 0.0f}, { 0.0f, 0.0f, 0.0f}}, /*position*/
|
||||||
|
{{ -15.0f, -15.0f, -15.0f}, { 15.0f, 15.0f, 15.0f}} /*velocity*/
|
||||||
|
};
|
||||||
|
ParticleEmitter *p_emitter = __fxSparkle_create(position, 10.0f, ASSET_713_SPRITE_SPARKLE_YELLOW);
|
||||||
|
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368D20);
|
||||||
|
func_802EFB70(p_emitter, 0.25f, 0.3f);
|
||||||
|
particleEmitter_emitN(p_emitter, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxSparkle_chTreasure(s16 position[3]){
|
||||||
|
static struct42s D_80368D50 = {
|
||||||
|
{{ 0.0f, 0.0f, 0.0f}, { 0.0f, 0.0f, 0.0f}}, /*position*/
|
||||||
|
{{ -25.0f, -5.0f, -25.0f}, { 25.0f, 5.0f, 25.0f}} /*velocity*/
|
||||||
|
};
|
||||||
|
ParticleEmitter *p_emitter = __fxSparkle_create(position, 10.0f, ASSET_713_SPRITE_SPARKLE_YELLOW);
|
||||||
|
particleEmitter_setPositionAndVelocityRanges(p_emitter, &D_80368D50);
|
||||||
|
func_802EFB70(p_emitter, 0.45f, 0.6f);
|
||||||
|
particleEmitter_setParticleLifeTimeRange(p_emitter, 0.5f, 0.8f);
|
||||||
|
particleEmitter_emitN(p_emitter, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxSparkle_free(void){
|
||||||
|
func_802F3E50();
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxSparkle_init(void){
|
||||||
|
func_802F3E74();
|
||||||
|
}
|
@@ -8,21 +8,6 @@ extern s32 spriteGetFrameCount(BKSprite *);
|
|||||||
extern void func_80344720(s32 SpriteGfx, s32 frame, s32, f32[3], f32[3], f32[3], Gfx **, Mtx **);
|
extern void func_80344720(s32 SpriteGfx, s32 frame, s32, f32[3], f32[3], f32[3], Gfx **, Mtx **);
|
||||||
extern void func_80344424(s32 SpriteGfx, s32 frame, s32, f32[3], f32[3], f32, Gfx **, Mtx **);
|
extern void func_80344424(s32 SpriteGfx, s32 frame, s32, f32[3], f32[3], f32, Gfx **, Mtx **);
|
||||||
|
|
||||||
|
|
||||||
void particleEmitter_setAlpha(ParticleEmitter *this, s32 arg1);
|
|
||||||
void particleEmitter_setSfx(ParticleEmitter *this, enum sfx_e arg1, s32 arg2);
|
|
||||||
void func_802EFA04(ParticleEmitter *, f32);
|
|
||||||
void particleEmitter_setParticleCallback(ParticleEmitter *this, void (*arg1)(ParticleEmitter *this, f32 pos[3]));
|
|
||||||
void func_802EFA20(ParticleEmitter *, f32, f32);
|
|
||||||
void func_802EFA34(ParticleEmitter *, f32);
|
|
||||||
void func_802EFA40(ParticleEmitter *, f32 (*)[3]);
|
|
||||||
void func_802EFA78(ParticleEmitter *this, s32 arg1);
|
|
||||||
void func_802EFF5C(ParticleEmitter *, f32, f32, f32);
|
|
||||||
void func_802EFF7C(ParticleEmitter *, f32, f32, f32);
|
|
||||||
void func_802EFF9C(ParticleEmitter *, f32);
|
|
||||||
void partEmitMgr_freeEmitter(ParticleEmitter *this);
|
|
||||||
|
|
||||||
|
|
||||||
Gfx D_80368940[] = {
|
Gfx D_80368940[] = {
|
||||||
gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
|
gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
|
||||||
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_TEXTURE_GEN_LINEAR | G_SHADING_SMOOTH),
|
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_TEXTURE_GEN_LINEAR | G_SHADING_SMOOTH),
|
||||||
@@ -46,6 +31,25 @@ Gfx D_80368978[] = {
|
|||||||
ParticleEmitter **partEmitMgr = NULL; //particlePtrArrayPtr
|
ParticleEmitter **partEmitMgr = NULL; //particlePtrArrayPtr
|
||||||
s32 partEmitMgrLength = 0; //particlePtrArraySize
|
s32 partEmitMgrLength = 0; //particlePtrArraySize
|
||||||
|
|
||||||
|
//particle
|
||||||
|
typedef struct particle{
|
||||||
|
f32 acceleration[3];
|
||||||
|
f32 fade;
|
||||||
|
f32 frame; //frame
|
||||||
|
f32 framerate; //framerate
|
||||||
|
f32 position[3];
|
||||||
|
f32 rotation[3];
|
||||||
|
f32 scale; //size
|
||||||
|
f32 initialSize_34; //initial_size
|
||||||
|
f32 finalSizeDiff; //delta_size
|
||||||
|
f32 angluar_velocity[3];
|
||||||
|
f32 age_48;
|
||||||
|
f32 lifetime_4C;
|
||||||
|
f32 velocity_50[3];
|
||||||
|
u8 unk5C;
|
||||||
|
//u8 pad5D[3];
|
||||||
|
} Particle;
|
||||||
|
|
||||||
/* .bss */
|
/* .bss */
|
||||||
f32 particleSfxTimer;
|
f32 particleSfxTimer;
|
||||||
u8 partEmitMgrEnable;
|
u8 partEmitMgrEnable;
|
||||||
@@ -209,7 +213,7 @@ void __particleEmitter_drawOnPass(ParticleEmitter *this, Gfx **gfx, Mtx **mtx, V
|
|||||||
func_802EED1C(this, iPtr->age_48, scale);
|
func_802EED1C(this, iPtr->age_48, scale);
|
||||||
}
|
}
|
||||||
func_80344C2C(this->unk0_16);
|
func_80344C2C(this->unk0_16);
|
||||||
if(this->draw_mode & PART_EMIT_3D_ROTATE){
|
if(this->draw_mode & PART_EMIT_ROTATABLE){
|
||||||
func_80344720(this->unk34, (s32)iPtr->frame, 0, position, flat_rotation, scale, gfx, mtx);
|
func_80344720(this->unk34, (s32)iPtr->frame, 0, position, flat_rotation, scale, gfx, mtx);
|
||||||
}//L802EF2F8
|
}//L802EF2F8
|
||||||
else{
|
else{
|
||||||
@@ -330,8 +334,8 @@ ParticleEmitter * particleEmitter_new(u32 capacity){
|
|||||||
func_802EFF50(this, 0.0f);
|
func_802EFF50(this, 0.0f);
|
||||||
this->unk100 = 0;
|
this->unk100 = 0;
|
||||||
this->unk104 = 0;
|
this->unk104 = 0;
|
||||||
this->pList_start_124 = &this->data[0];
|
this->pList_start_124 = (Particle *)(this + 1);
|
||||||
this->pList_end_128 = &this->data[0];
|
this->pList_end_128 = (Particle *)(this + 1);
|
||||||
this->pList_capacity_12C = &this->pList_start_124[capacity];
|
this->pList_capacity_12C = &this->pList_start_124[capacity];
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@@ -130,7 +130,7 @@ void func_8038BCF0(Actor *this) {
|
|||||||
sp48[0] = (s16)sp50[0];
|
sp48[0] = (s16)sp50[0];
|
||||||
sp48[1] = (s16)sp50[1];
|
sp48[1] = (s16)sp50[1];
|
||||||
sp48[2] = (s16)sp50[2];
|
sp48[2] = (s16)sp50[2];
|
||||||
func_802F3B9C(sp48);
|
fxSparkle_brentilda(sp48);
|
||||||
}
|
}
|
||||||
|
|
||||||
this->unk38_31++;
|
this->unk38_31++;
|
||||||
|
@@ -35,17 +35,17 @@ void func_803905CC(ActorMarker *marker, ActorMarker *other_marker){
|
|||||||
switch (marker->unk14_20) {
|
switch (marker->unk14_20) {
|
||||||
case 0x170:
|
case 0x170:
|
||||||
func_80346448(ITEM_D_EGGS);
|
func_80346448(ITEM_D_EGGS);
|
||||||
func_802F3874(&marker->propPtr->x);
|
fxSparkle_giantBlueEgg(&marker->propPtr->x);
|
||||||
func_8025A6EC(SFX_EGG_REFILL, -1);
|
func_8025A6EC(SFX_EGG_REFILL, -1);
|
||||||
break;
|
break;
|
||||||
case 0x171:
|
case 0x171:
|
||||||
func_80346448(ITEM_F_RED_FEATHER);
|
func_80346448(ITEM_F_RED_FEATHER);
|
||||||
func_802F3978(&marker->propPtr->x);
|
fxSparkle_giantRedFeather(&marker->propPtr->x);
|
||||||
func_8025A6EC(SFX_RED_FEATHER_REFILL, -1);
|
func_8025A6EC(SFX_RED_FEATHER_REFILL, -1);
|
||||||
break;
|
break;
|
||||||
case 0x172:
|
case 0x172:
|
||||||
func_80346448(ITEM_10_GOLD_FEATHER);
|
func_80346448(ITEM_10_GOLD_FEATHER);
|
||||||
func_802F3A60(&marker->propPtr->x);
|
fxSparkle_giantGoldFeather(&marker->propPtr->x);
|
||||||
func_8025A6EC(SFX_GOLD_FEATHER_REFILL, -1);
|
func_8025A6EC(SFX_GOLD_FEATHER_REFILL, -1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user