Further documentations have been made:
- src/fight: named more variables and functions, named some parameters - src/core1, src/core2: named some dummy functions, documented a bit of the graphics stack
This commit is contained in:
@@ -98,64 +98,64 @@ void func_8038EB90(ActorMarker *arg0, f32 *arg1) {
|
||||
temp_v0->position_y = temp_v0->position_y + 210.0f;
|
||||
}
|
||||
|
||||
void func_8038EBE0(f32 arg0[3], u32 arg1, enum asset_e arg2, f32 arg3[6], f32 arg4[6], f32 arg5[6], f32 arg6[4], f32 arg7[4], f32 arg8[2]) {
|
||||
ParticleEmitter *temp_v0 = partEmitMgr_newEmitter(arg1);
|
||||
void chSpellFireball_emitSparkles(f32 position[3], u32 count, enum asset_e sprite, f32 position_range[6], f32 acceleration_range[6], f32 velocity_range[6], f32 scale_range[4], f32 lifetime_range[4], f32 fade[2]) {
|
||||
ParticleEmitter *pe = partEmitMgr_newEmitter(count);
|
||||
|
||||
particleEmitter_setSprite(temp_v0, arg2);
|
||||
particleEmitter_setStartingFrameRange(temp_v0, 1, 6);
|
||||
particleEmitter_setPosition(temp_v0, arg0);
|
||||
particleEmitter_setParticleSpawnPositionRange(temp_v0, arg3[0], arg3[1], arg3[2], arg3[3], arg3[4], arg3[5]);
|
||||
particleEmitter_setParticleAccelerationRange(temp_v0, arg4[0], arg4[1], arg4[2], arg4[3], arg4[4], arg4[5]);
|
||||
particleEmitter_setParticleVelocityRange(temp_v0, arg5[0], arg5[1], arg5[2], arg5[3], arg5[4], arg5[5]);
|
||||
particleEmitter_setAngularVelocityRange(temp_v0, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f);
|
||||
func_802EFB70(temp_v0, arg6[0], arg6[1]);
|
||||
func_802EFB84(temp_v0, arg6[2], arg6[3]);
|
||||
func_802EF9F8(temp_v0, 0.5f);
|
||||
func_802EFA18(temp_v0, 3);
|
||||
particleEmitter_setSpawnIntervalRange(temp_v0, arg7[0], arg7[1]);
|
||||
particleEmitter_setParticleLifeTimeRange(temp_v0, arg7[2], arg7[3]);
|
||||
particleEmitter_setFade(temp_v0, arg8[0], arg8[1]);
|
||||
func_802EFA78(temp_v0, 1);
|
||||
particleEmitter_setDrawMode(temp_v0, 4);
|
||||
particleEmitter_emitN(temp_v0, arg1);
|
||||
particleEmitter_setSprite(pe, sprite);
|
||||
particleEmitter_setStartingFrameRange(pe, 1, 6);
|
||||
particleEmitter_setPosition(pe, position);
|
||||
particleEmitter_setParticleSpawnPositionRange(pe, position_range[0], position_range[1], position_range[2], position_range[3], position_range[4], position_range[5]);
|
||||
particleEmitter_setParticleAccelerationRange(pe, acceleration_range[0], acceleration_range[1], acceleration_range[2], acceleration_range[3], acceleration_range[4], acceleration_range[5]);
|
||||
particleEmitter_setParticleVelocityRange(pe, velocity_range[0], velocity_range[1], velocity_range[2], velocity_range[3], velocity_range[4], velocity_range[5]);
|
||||
particleEmitter_setAngularVelocityRange(pe, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f);
|
||||
func_802EFB70(pe, scale_range[0], scale_range[1]);
|
||||
func_802EFB84(pe, scale_range[2], scale_range[3]);
|
||||
func_802EF9F8(pe, 0.5f);
|
||||
func_802EFA18(pe, 3);
|
||||
particleEmitter_setSpawnIntervalRange(pe, lifetime_range[0], lifetime_range[1]);
|
||||
particleEmitter_setParticleLifeTimeRange(pe, lifetime_range[2], lifetime_range[3]);
|
||||
particleEmitter_setFade(pe, fade[0], fade[1]);
|
||||
func_802EFA78(pe, 1);
|
||||
particleEmitter_setDrawMode(pe, 4);
|
||||
particleEmitter_emitN(pe, count);
|
||||
}
|
||||
|
||||
void func_8038ED9C(f32 arg0[3], u32 arg1, s32 arg2, s32 arg3[2], f32 arg4[6], f32 arg5[4], f32 arg6[4], f32 arg7[2]) {
|
||||
ParticleEmitter *temp_v0 = partEmitMgr_newEmitter(arg2);
|
||||
void chSpellFireball_emitExplosion(f32 position[3], enum asset_e sprite, s32 count, s32 staring_frame_range[2], f32 position_range[6], f32 scale_range[4], f32 lifetime_range[4], f32 fade[2]) {
|
||||
ParticleEmitter *pe = partEmitMgr_newEmitter(count);
|
||||
|
||||
particleEmitter_setSprite(temp_v0, arg1);
|
||||
particleEmitter_setStartingFrameRange(temp_v0, arg3[0], arg3[1]);
|
||||
particleEmitter_setParticleFramerateRange(temp_v0, 8.0f, 8.0f);
|
||||
particleEmitter_setPosition(temp_v0, arg0);
|
||||
particleEmitter_setParticleSpawnPositionRange(temp_v0, arg4[0], arg4[1], arg4[2], arg4[3], arg4[4], arg4[5]);
|
||||
particleEmitter_setParticleVelocityRange(temp_v0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
|
||||
func_802EFB70(temp_v0, arg5[0], arg5[1]);
|
||||
func_802EFB84(temp_v0, arg5[2], arg5[3]);
|
||||
particleEmitter_setSpawnIntervalRange(temp_v0, arg6[0], arg6[1]);
|
||||
particleEmitter_setParticleLifeTimeRange(temp_v0, arg6[2], arg6[3]);
|
||||
particleEmitter_setFade(temp_v0, arg7[0], arg7[1]);
|
||||
particleEmitter_setDrawMode(temp_v0, PART_EMIT_NO_DEPTH);
|
||||
func_802EFA78(temp_v0, 1);
|
||||
particleEmitter_emitN(temp_v0, arg2);
|
||||
particleEmitter_setSprite(pe, sprite);
|
||||
particleEmitter_setStartingFrameRange(pe, staring_frame_range[0], staring_frame_range[1]);
|
||||
particleEmitter_setParticleFramerateRange(pe, 8.0f, 8.0f);
|
||||
particleEmitter_setPosition(pe, position);
|
||||
particleEmitter_setParticleSpawnPositionRange(pe, position_range[0], position_range[1], position_range[2], position_range[3], position_range[4], position_range[5]);
|
||||
particleEmitter_setParticleVelocityRange(pe, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
|
||||
func_802EFB70(pe, scale_range[0], scale_range[1]);
|
||||
func_802EFB84(pe, scale_range[2], scale_range[3]);
|
||||
particleEmitter_setSpawnIntervalRange(pe, lifetime_range[0], lifetime_range[1]);
|
||||
particleEmitter_setParticleLifeTimeRange(pe, lifetime_range[2], lifetime_range[3]);
|
||||
particleEmitter_setFade(pe, fade[0], fade[1]);
|
||||
particleEmitter_setDrawMode(pe, PART_EMIT_NO_DEPTH);
|
||||
func_802EFA78(pe, 1);
|
||||
particleEmitter_emitN(pe, count);
|
||||
}
|
||||
|
||||
void func_8038EEFC(f32 arg0[3], u32 arg1, f32 *arg2) {
|
||||
ParticleEmitter *temp_v0 = partEmitMgr_newEmitter(arg1);
|
||||
void chSpellFireball_emitSmoke(f32 position[3], u32 count, f32 *lifetime_and_spawn_range) {
|
||||
ParticleEmitter *pe = partEmitMgr_newEmitter(count);
|
||||
|
||||
particleEmitter_setSprite(temp_v0, ASSET_70E_SPRITE_SMOKE_2);
|
||||
particleEmitter_setRGB(temp_v0, D_80391B48);
|
||||
particleEmitter_setAlpha(temp_v0, 0xEB);
|
||||
particleEmitter_setStartingFrameRange(temp_v0, 0, 7);
|
||||
particleEmitter_setPosition(temp_v0, arg0);
|
||||
particleEmitter_setPositionAndVelocityRanges(temp_v0, &D_80391B54);
|
||||
func_802EFB70(temp_v0, 0.1f, 0.2f);
|
||||
func_802EFB84(temp_v0, 3.6f, 4.6f);
|
||||
particleEmitter_setSpawnIntervalRange(temp_v0, arg2[0], arg2[1]);
|
||||
particleEmitter_setParticleLifeTimeRange(temp_v0, arg2[2], arg2[3]);
|
||||
particleEmitter_setFade(temp_v0, 0.05f, 0.1f);
|
||||
particleEmitter_setDrawMode(temp_v0, PART_EMIT_NO_DEPTH);
|
||||
func_802EFA78(temp_v0, 1);
|
||||
particleEmitter_emitN(temp_v0, arg1);
|
||||
particleEmitter_setSprite(pe, ASSET_70E_SPRITE_SMOKE_2);
|
||||
particleEmitter_setRGB(pe, D_80391B48);
|
||||
particleEmitter_setAlpha(pe, 0xEB);
|
||||
particleEmitter_setStartingFrameRange(pe, 0, 7);
|
||||
particleEmitter_setPosition(pe, position);
|
||||
particleEmitter_setPositionAndVelocityRanges(pe, &D_80391B54);
|
||||
func_802EFB70(pe, 0.1f, 0.2f);
|
||||
func_802EFB84(pe, 3.6f, 4.6f);
|
||||
particleEmitter_setSpawnIntervalRange(pe, lifetime_and_spawn_range[0], lifetime_and_spawn_range[1]);
|
||||
particleEmitter_setParticleLifeTimeRange(pe, lifetime_and_spawn_range[2], lifetime_and_spawn_range[3]);
|
||||
particleEmitter_setFade(pe, 0.05f, 0.1f);
|
||||
particleEmitter_setDrawMode(pe, PART_EMIT_NO_DEPTH);
|
||||
func_802EFA78(pe, 1);
|
||||
particleEmitter_emitN(pe, count);
|
||||
}
|
||||
|
||||
void func_8038F01C(void) {
|
||||
@@ -184,31 +184,31 @@ void func_8038F084(ActorMarker *marker){
|
||||
actor->unk58_0 = 0;
|
||||
actor->scale *= 1.6;
|
||||
if(actor->marker->unk14_20 != MARKER_280_GRUNTY_SPELL_GREEN_ATTACK){
|
||||
func_8038EBE0(actor->position, 4, ASSET_713_SPRITE_SPARKLE_YELLOW,
|
||||
chSpellFireball_emitSparkles(actor->position, 4, ASSET_713_SPRITE_SPARKLE_YELLOW,
|
||||
D_80391C0C, D_80391C24, D_80391C3C,
|
||||
D_80391C54, D_80391C64, D_80391C74
|
||||
);
|
||||
func_8038EBE0(actor->position, 4, ASSET_715_SPRITE_SPARKLE_RED,
|
||||
chSpellFireball_emitSparkles(actor->position, 4, ASSET_715_SPRITE_SPARKLE_RED,
|
||||
D_80391C0C, D_80391C24, D_80391C3C,
|
||||
D_80391C54, D_80391C64, D_80391C74
|
||||
);
|
||||
func_8038EEFC(actor->position, 3, D_80391BFC);
|
||||
func_8038ED9C(D_803928E8, ASSET_4A0_SPRITE_EXPLOSION, 1, D_80391BA4, D_80391BE4,
|
||||
chSpellFireball_emitSmoke(actor->position, 3, D_80391BFC);
|
||||
chSpellFireball_emitExplosion(D_803928E8, ASSET_4A0_SPRITE_EXPLOSION, 1, D_80391BA4, D_80391BE4,
|
||||
D_80391BAC, D_80391BBC, D_80391BDC
|
||||
|
||||
);
|
||||
D_803928E8[1] -= 50.0f;
|
||||
func_8038ED9C(D_803928E8, ASSET_6C1_SPRITE_SMOKE, 2, D_80391BA4, D_80391BE4,
|
||||
chSpellFireball_emitExplosion(D_803928E8, ASSET_6C1_SPRITE_SMOKE, 2, D_80391BA4, D_80391BE4,
|
||||
D_80391BAC, D_80391BBC, D_80391BDC
|
||||
|
||||
);
|
||||
}
|
||||
else{//L8038F304
|
||||
func_8038EBE0(actor->position, 4, ASSET_713_SPRITE_SPARKLE_YELLOW,
|
||||
chSpellFireball_emitSparkles(actor->position, 4, ASSET_713_SPRITE_SPARKLE_YELLOW,
|
||||
D_80391C0C, D_80391C24, D_80391C3C,
|
||||
D_80391C54, D_80391BCC, D_80391C74
|
||||
);
|
||||
func_8038EEFC(actor->position, 3, D_80391BFC);
|
||||
chSpellFireball_emitSmoke(actor->position, 3, D_80391BFC);
|
||||
func_8038CED8(actor->position, 0x558, 0.15f, 0.5f);
|
||||
actor->position_y += 260.0f;
|
||||
chbossjinjo_spawnParticles(actor, 0x712, ASSET_6C3_SPRITE_SMOKE_GREEN, 1.6f);
|
||||
@@ -313,13 +313,13 @@ void func_8038F620(Actor *this){
|
||||
|
||||
switch(this->marker->unk14_20){
|
||||
case MARKER_25C_GRUNTY_SPELL_FIREBALL://L8038F8AC
|
||||
func_8038ED9C(this->position, ASSET_4A0_SPRITE_EXPLOSION, 1,
|
||||
chSpellFireball_emitExplosion(this->position, ASSET_4A0_SPRITE_EXPLOSION, 1,
|
||||
D_80391CEC, D_80391D34,
|
||||
D_80391CF4, D_80391D04, D_80391D14
|
||||
);
|
||||
break;
|
||||
case MARKER_280_GRUNTY_SPELL_GREEN_ATTACK://L8038F8C8
|
||||
func_8038ED9C(this->position, ASSET_6C9_SPRITE_GREEN_SPELL_ATTACK, 1,
|
||||
chSpellFireball_emitExplosion(this->position, ASSET_6C9_SPRITE_GREEN_SPELL_ATTACK, 1,
|
||||
D_80391CEC, D_80391D34,
|
||||
D_80391CF4, D_80391D1C, D_80391D2C
|
||||
);
|
||||
|
@@ -16,7 +16,7 @@ extern ActorInfo chJinjonatorBase;
|
||||
extern ActorInfo chSpellBarrier;
|
||||
extern ActorInfo chSpellFireball;
|
||||
extern ActorInfo chSpellGreen;
|
||||
extern ActorInfo chSpriteSmokeGreen2;
|
||||
extern ActorInfo chGreenBlast;
|
||||
extern ActorInfo chJinjonator;
|
||||
extern ActorInfo chBossShadow;
|
||||
|
||||
@@ -26,7 +26,7 @@ u8 pad_fight_80392740[0x10];
|
||||
void fight_func_803863F0(void)
|
||||
{
|
||||
spawnableActorList_add(&chSpellFireball, actor_new, 0X108444);
|
||||
spawnableActorList_add(&chSpriteSmokeGreen2, actor_new, 0X108444);
|
||||
spawnableActorList_add(&chGreenBlast, actor_new, 0X108444);
|
||||
spawnableActorList_add(&chFinalBoss, actor_new, 0X300468);
|
||||
spawnableActorList_add(&chBossJinjoOrange, actor_new, 0X8464);
|
||||
spawnableActorList_add(&chBossJinjoGreen, actor_new, 0X8464);
|
||||
|
@@ -6,49 +6,49 @@ extern void func_80386654(f32 arg0, f32 (*arg1)[4], f32 (*arg2)[4]);
|
||||
extern void func_80387470(Actor *, f32 [3], f32, f32, f32, f32, f32);
|
||||
extern Actor *func_80325CAC(ActorMarker *, Gfx **, Mtx **, Vtx**);
|
||||
|
||||
void chSpriteSmokeGreen2_update(Actor *this);
|
||||
Actor *chSpriteSmokeGreen2_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3);
|
||||
void chGreenBlast_update(Actor *this);
|
||||
Actor *chGreenBlast_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3);
|
||||
|
||||
/* .data */
|
||||
ActorInfo chSpriteSmokeGreen2 = {
|
||||
MARKER_25D_SPRITE_SMOKE_GREEN_2, ACTOR_38A_SPRITE_SMOKE_GREEN_2, ASSET_6C7_SPRITE_SMOKE_GREEN_2,
|
||||
ActorInfo chGreenBlast = {
|
||||
MARKER_25D_GREEN_BLAST, ACTOR_38A_GREEN_BLAST, ASSET_6C7_GREEN_BLAST,
|
||||
0x1, NULL,
|
||||
chSpriteSmokeGreen2_update, func_80326224, chSpriteSmokeGreen2_draw,
|
||||
chGreenBlast_update, func_80326224, chGreenBlast_draw,
|
||||
0, 0, 1.0f, 0
|
||||
};
|
||||
|
||||
f32 D_80391DE4[4] = {0.6f, 1.0f, 1.0f, 1.0f};
|
||||
f32 D_80391DF4[4] = {0.3f, 0.3f, 0.3f, 1.0f};
|
||||
s32 D_80391E04[2] = {1, 9};
|
||||
f32 D_80391E0C[4] = {4.5f, 4.5f, 4.5f, 4.5f};
|
||||
f32 D_80391E1C[4] = {0.0f, 0.0f, 0.85f, 1.35f};
|
||||
f32 fight_D_80391E2C[2] = {0.6f, 0.7f};
|
||||
f32 D_80391E34[6] = {-130.0f, 0.0f, -130.0f, 130.0f, 0.0f, 130.0f};
|
||||
f32 D_80391E4C[4] = {1.1f, 1.1f, 4.0f, 5.4f};
|
||||
s32 chGreenBlastExplosionStartFrameRange[2] = {1, 9};
|
||||
f32 chGreenBlastExplosionScaleRange[4] = {4.5f, 4.5f, 4.5f, 4.5f};
|
||||
f32 chGreenBlastExplosionLifetimeRange[4] = {0.0f, 0.0f, 0.85f, 1.35f};
|
||||
f32 chGreenBlastExplosionFade[2] = {0.6f, 0.7f};
|
||||
f32 chGreenBlastExplosionPositionRange[6] = {-130.0f, 0.0f, -130.0f, 130.0f, 0.0f, 130.0f};
|
||||
f32 chGreenBlastSmokeLifetime[4] = {1.1f, 1.1f, 4.0f, 5.4f};
|
||||
|
||||
f32 D_80391E5C[6] = {-20.0f, 0.0f, -20.0f, 20.0f, 40.0f, 20.0f};
|
||||
f32 fight_D_80391E74[6] = {0.0f, -1200.0f, 0.0f, 0.0f, -1200.0f, 0.0f};
|
||||
f32 D_80391E8C[6] = {-420.0f, 410.0f, -420.0f, 480.0f, 860.0f, 480.0f};
|
||||
f32 D_80391EA4[4] = {0.35f, 0.65f, 0.0f, 0.0f};
|
||||
f32 D_80391EB4[4] = {0.0f, 0.01f, 2.0f, 2.3f};
|
||||
f32 D_80391EC4[2] = { 0.0f, 0.35f};
|
||||
f32 chGreenBlastDieSparklesPositionRange[6] = {-20.0f, 0.0f, -20.0f, 20.0f, 40.0f, 20.0f};
|
||||
f32 chGreenBlastDieSparklesAccelerationRange[6] = {0.0f, -1200.0f, 0.0f, 0.0f, -1200.0f, 0.0f};
|
||||
f32 chGreenBlastDieSparklesVelocityRange[6] = {-420.0f, 410.0f, -420.0f, 480.0f, 860.0f, 480.0f};
|
||||
f32 chGreenBlastDieSparklesScaleRange[4] = {0.35f, 0.65f, 0.0f, 0.0f};
|
||||
f32 chGreenBlastDieSparklesLifetimeRange[4] = {0.0f, 0.01f, 2.0f, 2.3f};
|
||||
f32 chGreenBlastDieSparklesFade[2] = { 0.0f, 0.35f};
|
||||
|
||||
f32 D_80391ECC[6] = {0.0f, 50.0f, 0.0f, 0.0f, 50.0f, 0.0f};
|
||||
f32 D_80391EE4[6] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
f32 D_80391EFC[6] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
f32 D_80391F14[4] = {0.2f, 0.25f, 2.3f, 2.5f};
|
||||
f32 D_80391F24[4] = {0.0f, 0.0f, 0.34f, 0.34f};
|
||||
f32 D_80391F34[2] = {0.7f, 0.8f};
|
||||
f32 chGreenBlast_unused_D_80391ECC[6] = {0.0f, 50.0f, 0.0f, 0.0f, 50.0f, 0.0f};
|
||||
f32 chGreenBlast_unused_D_80391EE4[6] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
f32 chGreenBlast_unused_D_80391EFC[6] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
f32 chGreenBlast_unused_D_80391F14[4] = {0.2f, 0.25f, 2.3f, 2.5f};
|
||||
f32 chGreenBlast_unused_D_80391F24[4] = {0.0f, 0.0f, 0.34f, 0.34f};
|
||||
f32 chGreenBlast_unused_D_80391F34[2] = {0.7f, 0.8f};
|
||||
|
||||
f32 D_80391F3C[6] = { -50.0f, -50.0f, -50.0f, 50.0f, 50.0f, 50.0f};
|
||||
f32 D_80391F54[6] = { 0.0f, -1200.0f, 0.0f, 0.0f, -1200.0f, 0.0f};
|
||||
f32 D_80391F6C[6] = { -260.0f, -260.0f, -260.0f, 260.0f, 260.0f, 260.0f};
|
||||
f32 D_80391F84[4] = {0.15f, 0.3f, 0.0f, 0.0f};
|
||||
f32 D_80391F94[4] = {0.0f, 0.01f, 0.7f, 0.8f};
|
||||
f32 D_80391FA4[2] = {0.0f, 0.65f};
|
||||
f32 chGreenBlastSparklesPositionRange[6] = { -50.0f, -50.0f, -50.0f, 50.0f, 50.0f, 50.0f};
|
||||
f32 chGreenBlastSparklesAccelerationRange[6] = { 0.0f, -1200.0f, 0.0f, 0.0f, -1200.0f, 0.0f};
|
||||
f32 chGreenBlastSparklesVelocityRange[6] = { -260.0f, -260.0f, -260.0f, 260.0f, 260.0f, 260.0f};
|
||||
f32 chGreenBlastSparklesScaleRange[4] = {0.15f, 0.3f, 0.0f, 0.0f};
|
||||
f32 chGreenBlastSparklesLifetimeRange[4] = {0.0f, 0.01f, 0.7f, 0.8f};
|
||||
f32 chGreenBlastSparklesFade[2] = {0.0f, 0.65f};
|
||||
|
||||
/* .code */
|
||||
Actor *chSpriteSmokeGreen2_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3){
|
||||
Actor *chGreenBlast_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3){
|
||||
Actor *actor = marker_getActor(marker);
|
||||
func_80344C2C(1);
|
||||
return func_80325CAC(marker, gdl, mptr, arg3);
|
||||
@@ -62,72 +62,82 @@ void func_8038FCBC(void){
|
||||
func_80386654(1.0f, &D_80391DE4, &D_80391DF4);
|
||||
}
|
||||
|
||||
void func_8038FCF0(ActorMarker *marker, ActorMarker *other_marker){
|
||||
void chGreenBlast_collisionDie(ActorMarker *marker, ActorMarker *other_marker){
|
||||
Actor *actor = marker_getActor(marker);
|
||||
f32 sp38[3];
|
||||
sp38[0] = actor->position_x;
|
||||
sp38[1] = actor->position_y;
|
||||
sp38[2] = actor->position_z;
|
||||
sp38[1] += 160.0f;
|
||||
f32 explosion_position[3];
|
||||
|
||||
explosion_position[0] = actor->position_x;
|
||||
explosion_position[1] = actor->position_y;
|
||||
explosion_position[2] = actor->position_z;
|
||||
explosion_position[1] += 160.0f;
|
||||
|
||||
FUNC_8030E8B4(SFX_1B_EXPLOSION_1, 1.0f, 32000, actor->position, 1000, 3500);
|
||||
timedFunc_set_0(0.0f, func_8038FC88);
|
||||
timedFunc_set_0(0.3f, func_8038FCBC);
|
||||
func_8038EBE0(actor->position, 4, ASSET_710_SPRITE_SPARKLE_PURPLE,
|
||||
&D_80391E5C, &fight_D_80391E74, &D_80391E8C,
|
||||
&D_80391EA4, &D_80391EB4, &D_80391EC4
|
||||
|
||||
chSpellFireball_emitSparkles(actor->position, 4, ASSET_710_SPRITE_SPARKLE_PURPLE,
|
||||
chGreenBlastDieSparklesPositionRange, chGreenBlastDieSparklesAccelerationRange, chGreenBlastDieSparklesVelocityRange,
|
||||
chGreenBlastDieSparklesScaleRange, chGreenBlastDieSparklesLifetimeRange, chGreenBlastDieSparklesFade
|
||||
);
|
||||
func_8038EBE0(actor->position, 4, ASSET_711_SPRITE_SPARKLE_DARK_BLUE,
|
||||
&D_80391E5C, &fight_D_80391E74, &D_80391E8C,
|
||||
&D_80391EA4, &D_80391EB4, &D_80391EC4
|
||||
|
||||
chSpellFireball_emitSparkles(actor->position, 4, ASSET_711_SPRITE_SPARKLE_DARK_BLUE,
|
||||
chGreenBlastDieSparklesPositionRange, chGreenBlastDieSparklesAccelerationRange, chGreenBlastDieSparklesVelocityRange,
|
||||
chGreenBlastDieSparklesScaleRange, chGreenBlastDieSparklesLifetimeRange, chGreenBlastDieSparklesFade
|
||||
);
|
||||
func_8038EEFC(actor->position, 3, &D_80391E4C);
|
||||
func_8038ED9C(&sp38, 0x6C8, 3,
|
||||
&D_80391E04, &D_80391E34,
|
||||
&D_80391E0C, &D_80391E1C, &fight_D_80391E2C
|
||||
|
||||
chSpellFireball_emitSmoke(actor->position, 3, chGreenBlastSmokeLifetime);
|
||||
|
||||
chSpellFireball_emitExplosion(&explosion_position, 0x6C8, 3,
|
||||
chGreenBlastExplosionStartFrameRange, chGreenBlastExplosionPositionRange,
|
||||
chGreenBlastExplosionScaleRange, chGreenBlastExplosionLifetimeRange, chGreenBlastExplosionFade
|
||||
);
|
||||
|
||||
marker_despawn(actor->marker);
|
||||
}
|
||||
|
||||
void chSpriteSmokeGreen2_update(Actor *this){
|
||||
f32 sp54 = time_getDelta();
|
||||
f32 sp48[3];
|
||||
void chGreenBlast_update(Actor *this){
|
||||
f32 delta_time = time_getDelta();
|
||||
f32 target_position[3];
|
||||
|
||||
if(!this->unk16C_4){
|
||||
if (!this->unk16C_4) {
|
||||
this->unk16C_4 = 1;
|
||||
marker_setCollisionScripts(this->marker, NULL, NULL, func_8038FCF0);
|
||||
marker_setCollisionScripts(this->marker, NULL, NULL, chGreenBlast_collisionDie);
|
||||
this->marker->propPtr->unk8_3 = 0;
|
||||
actor_collisionOn(this);
|
||||
this->unk60 = 10.0f;
|
||||
this->scale = (f64)this->scale + this->scale;
|
||||
}//L8038FF18
|
||||
this->roll += 20.0f;
|
||||
if(globalTimer_getTime()%4 == 1){
|
||||
if(randf() < 0.5){
|
||||
func_8038EBE0(this->position, 4, ASSET_718_SPRITE_SPARKLE_WHITE_2,
|
||||
&D_80391F3C, &D_80391F54, &D_80391F6C,
|
||||
&D_80391F84, &D_80391F94, &D_80391FA4
|
||||
);
|
||||
}
|
||||
else{//L8038FFE0
|
||||
func_8038EBE0(this->position, 4, ASSET_719_SPRITE_SPARKLE_GREEN_2,
|
||||
&D_80391F3C, &D_80391F54, &D_80391F6C,
|
||||
&D_80391F84, &D_80391F94, &D_80391FA4
|
||||
);
|
||||
}
|
||||
}//L80390020
|
||||
player_getPosition(sp48);
|
||||
sp48[1] += 50.0f;
|
||||
func_80387470(this, sp48, this->unk1C[0], this->unk1C[1], 0.0f, 1400.0f, 70.0f);
|
||||
|
||||
if(func_8028F25C()){
|
||||
func_8038FCF0(this->marker, 0);
|
||||
}
|
||||
else{
|
||||
if(0.0 <= this->unk60){
|
||||
this->unk60 -= sp54;
|
||||
|
||||
this->roll += 20.0f;
|
||||
|
||||
if (globalTimer_getTime() % 4 == 1) {
|
||||
if (randf() < 0.5) {
|
||||
chSpellFireball_emitSparkles(this->position, 4, ASSET_718_SPRITE_SPARKLE_WHITE_2,
|
||||
chGreenBlastSparklesPositionRange, chGreenBlastSparklesAccelerationRange, chGreenBlastSparklesVelocityRange,
|
||||
chGreenBlastSparklesScaleRange, chGreenBlastSparklesLifetimeRange, chGreenBlastSparklesFade
|
||||
);
|
||||
}
|
||||
else{
|
||||
func_8038FCF0(this->marker, 0);
|
||||
else {
|
||||
chSpellFireball_emitSparkles(this->position, 4, ASSET_719_SPRITE_SPARKLE_GREEN_2,
|
||||
chGreenBlastSparklesPositionRange, chGreenBlastSparklesAccelerationRange, chGreenBlastSparklesVelocityRange,
|
||||
chGreenBlastSparklesScaleRange, chGreenBlastSparklesLifetimeRange, chGreenBlastSparklesFade
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
player_getPosition(target_position);
|
||||
target_position[1] += 50.0f;
|
||||
func_80387470(this, target_position, this->unk1C[0], this->unk1C[1], 0.0f, 1400.0f, 70.0f);
|
||||
|
||||
if (func_8028F25C()) {
|
||||
chGreenBlast_collisionDie(this->marker, 0);
|
||||
}
|
||||
else {
|
||||
if(0.0 <= this->unk60) {
|
||||
this->unk60 -= delta_time;
|
||||
}
|
||||
else {
|
||||
chGreenBlast_collisionDie(this->marker, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user