diff options
Diffstat (limited to 'src/bossWrenchThrow.cpp')
-rw-r--r-- | src/bossWrenchThrow.cpp | 40 |
1 files changed, 12 insertions, 28 deletions
diff --git a/src/bossWrenchThrow.cpp b/src/bossWrenchThrow.cpp index 1abc226..af5e272 100644 --- a/src/bossWrenchThrow.cpp +++ b/src/bossWrenchThrow.cpp @@ -1,10 +1,8 @@ #include <common.h> #include <game.h> #include <g3dhax.h> -#include "player.h" -#include "effects.h" #include <sfx.h> - +#include "boss.h" class daWrench : public dEn_c { int onCreate(); @@ -46,24 +44,10 @@ CREATE_STATE(daWrench, Straight); CREATE_STATE(daWrench, Kaboom); -extern "C" void *PlaySound(dEn_c *, int soundID); -extern "C" void *PlaySoundAsync(dEn_c *, int soundID); extern "C" void *PlayWrenchSound(dEn_c *); -extern "C" dStageActor_c *GetSpecificPlayerActor(int number); -extern "C" u32 GenerateRandomNumber(int max); - - -void daWrench::playerCollision(ActivePhysics *apThis, ActivePhysics *apOther) { - this->dEn_c::playerCollision(apThis, apOther); - this->_vf220(apOther->owner); - this->isDead = 0; - this->flags_4FC |= (1<<(31-7)); - if(apOther->owner->which_player < 4) { - this->counter_504[apOther->owner->which_player] = 0; - } -} +void daWrench::playerCollision(ActivePhysics *apThis, ActivePhysics *apOther) { DamagePlayer(this, apThis, apOther); } void daWrench::collisionCat1_Fireball_E_Explosion(ActivePhysics *apThis, ActivePhysics *apOther) { } bool daWrench::collisionCat2_IceBall_15_YoshiIce(ActivePhysics *apThis, ActivePhysics *apOther) { @@ -71,7 +55,7 @@ bool daWrench::collisionCat2_IceBall_15_YoshiIce(ActivePhysics *apThis, ActivePh } void daWrench::collisionCat9_RollingObject(ActivePhysics *apThis, ActivePhysics *apOther) {} void daWrench::collisionCat13_Hammer(ActivePhysics *apThis, ActivePhysics *apOther) { - CreateEffect(&this->pos, &(S16Vec){0,0,0}, &(Vec){0.5, 0.5, 0.5}, 48); + SpawnEffect("Wm_ob_cmnboxgrain", 0, &this->pos, &(S16Vec){0,0,0}, &(Vec){0.5, 0.5, 0.5}); PlaySoundAsync(this, SE_BOSS_JR_FLOOR_BREAK); this->Delete(1); @@ -80,7 +64,7 @@ void daWrench::collisionCat14_YoshiFire(ActivePhysics *apThis, ActivePhysics *ap void daWrench::collisionCat7_WMWaggleWater(ActivePhysics *apThis, ActivePhysics *apOther) { this->_vf220(apOther->owner); - CreateEffect(&this->pos, &(S16Vec){0,0,0}, &(Vec){0.5, 0.5, 0.5}, 48); + SpawnEffect("Wm_ob_cmnboxgrain", 0, &this->pos, &(S16Vec){0,0,0}, &(Vec){0.5, 0.5, 0.5}); PlaySoundAsync(this, SE_BOSS_JR_FLOOR_BREAK); this->Delete(1); @@ -239,8 +223,8 @@ void daWrench::executeState_Kaboom() { // hit the ground PlaySoundAsync(this, SE_BOSS_JR_BOMB_BURST); - CreateEffect(&this->pos, &(S16Vec){0,0,0}, &(Vec){0.75, 0.75, 0.75}, 9); - CreateEffect(&this->pos, &(S16Vec){0,0,0}, &(Vec){1.25, 1.25, 1.25}, 167); + SpawnEffect("Wm_en_burst_s", 0, &this->pos, &(S16Vec){0,0,0}, &(Vec){0.75, 0.75, 0.75}); + SpawnEffect("Wm_mr_wirehit", 0, &this->pos, &(S16Vec){0,0,0}, &(Vec){1.25, 1.25, 1.25}); this->Delete(1); } if (collMgr.bitfield_for_checks & (0x15 << direction)) { @@ -248,12 +232,12 @@ void daWrench::executeState_Kaboom() { PlaySoundAsync(this, SE_BOSS_JR_BOMB_BURST); if (this->direction == 0) { // directions 1 spins clockwise, fly rightwards - CreateEffect(&this->pos, &(S16Vec){0,0x4000,0}, &(Vec){0.75, 0.75, 0.75}, 9); - CreateEffect(&this->pos, &(S16Vec){0,0x4000,0}, &(Vec){1.25, 1.25, 1.25}, 167); + SpawnEffect("Wm_en_burst_s", 0, &this->pos, &(S16Vec){0,0x4000,0}, &(Vec){0.75, 0.75, 0.75}); + SpawnEffect("Wm_mr_wirehit", 0, &this->pos, &(S16Vec){0,0x4000,0}, &(Vec){1.25, 1.25, 1.25}); } else { // directions 0 spins anti-clockwise, fly leftwards - CreateEffect(&this->pos, &(S16Vec){0,0xE000,0}, &(Vec){0.75, 0.75, 0.75}, 9); - CreateEffect(&this->pos, &(S16Vec){0,0xE000,0}, &(Vec){1.25, 1.25, 1.25}, 167); + SpawnEffect("Wm_en_burst_s", 0, &this->pos, &(S16Vec){0,0xE000,0}, &(Vec){0.75, 0.75, 0.75}); + SpawnEffect("Wm_mr_wirehit", 0, &this->pos, &(S16Vec){0,0xE000,0}, &(Vec){1.25, 1.25, 1.25}); } this->Delete(1); @@ -298,14 +282,14 @@ void daWrench::executeState_Straight() { // hit the ground PlaySoundAsync(this, SE_BOSS_JR_FLOOR_BREAK); - CreateEffect(&this->pos, &(S16Vec){0,0,0}, &(Vec){0.75, 0.75, 0.75}, 9); + SpawnEffect("Wm_en_burst_s", 0, &this->pos, &(S16Vec){0,0,0}, &(Vec){0.75, 0.75, 0.75}); this->Delete(1); } if (collMgr.bitfield_for_checks & (0x15 << direction)) { // hit the wall PlaySoundAsync(this, SE_BOSS_JR_FLOOR_BREAK); - CreateEffect(&this->pos, &(S16Vec){0,0,0}, &(Vec){0.75, 0.75, 0.75}, 9); + SpawnEffect("Wm_en_burst_s", 0, &this->pos, &(S16Vec){0,0,0}, &(Vec){0.75, 0.75, 0.75}); this->Delete(1); } |