diff options
Diffstat (limited to 'src/projectile')
25 files changed, 43 insertions, 42 deletions
diff --git a/src/projectile/arrowProjectile.c b/src/projectile/arrowProjectile.c index 0eda80eb..7acc8003 100644 --- a/src/projectile/arrowProjectile.c +++ b/src/projectile/arrowProjectile.c @@ -34,7 +34,7 @@ void ArrowProjectile_OnTick(Entity* this) { } void ArrowProjectile_OnCollision(Entity* this) { - if ((this->contactFlags & 0x80) != 0) { + if ((this->contactFlags & CONTACT_TAKE_DAMAGE) != 0) { if ((this->contactFlags & 0x3f) != 0) { ModHealth(-2); sub_080A9488(this); diff --git a/src/projectile/boneProjectile.c b/src/projectile/boneProjectile.c index 164ec13b..d1052df8 100644 --- a/src/projectile/boneProjectile.c +++ b/src/projectile/boneProjectile.c @@ -23,7 +23,7 @@ void BoneProjectile_OnTick(Entity* this) { } void BoneProjectile_OnCollision(Entity* this) { - if (this->contactFlags == 0x80) { + if (this->contactFlags == CONTACT_TAKE_DAMAGE) { DeleteEntity(this); } else { sub_080A82D8(this); @@ -44,7 +44,7 @@ void BoneProjectile_Action1(Entity* this) { if (IsProjectileOffScreen(this)) { DeleteEntity(this); } else { - sub_08016AD2(this); + UpdateCollisionLayer(this); if (--this->timer == 0) { this->action = 2; this->speed = 0x120; diff --git a/src/projectile/cannonballProjectile.c b/src/projectile/cannonballProjectile.c index 5f2e7e04..c5b4244f 100644 --- a/src/projectile/cannonballProjectile.c +++ b/src/projectile/cannonballProjectile.c @@ -63,15 +63,15 @@ void CannonballProjectile_Action2(Entity* this) { } bool32 sub_080AB5F4(Entity* this) { - switch (sub_080043E8(this)) { + switch (GetTileHazardType(this)) { case 1: - CreateItemOnGround(this); + CreatePitFallFX(this); return TRUE; case 2: - sub_080043A8(this); + CreateDrownFX(this); return TRUE; case 3: - CreateChestSpawner(this); + CreateLavaDrownFX(this); return TRUE; } return FALSE; diff --git a/src/projectile/darkNutSwordSlash.c b/src/projectile/darkNutSwordSlash.c index e95ab908..838435e5 100644 --- a/src/projectile/darkNutSwordSlash.c +++ b/src/projectile/darkNutSwordSlash.c @@ -30,7 +30,7 @@ void DarkNutSwordSlash(Entity* this) { if ((this->parent == NULL) || (this->parent->health == 0)) { DeleteThisEntity(); } - if (((this->contactFlags & 0x80) != 0) && (this->contactedEntity == &gPlayerEntity.base)) { + if (((this->contactFlags & CONTACT_TAKE_DAMAGE) != 0) && (this->contactedEntity == &gPlayerEntity.base)) { this->iframes = -0x2d; } this->contactFlags = 0; diff --git a/src/projectile/dekuSeedProjectile.c b/src/projectile/dekuSeedProjectile.c index 132bf708..c086f251 100644 --- a/src/projectile/dekuSeedProjectile.c +++ b/src/projectile/dekuSeedProjectile.c @@ -24,7 +24,7 @@ void DekuSeedProjectile_OnTick(Entity* this) { } void DekuSeedProjectile_OnCollision(Entity* this) { - if (this->contactFlags == 0x80) { + if (this->contactFlags == CONTACT_TAKE_DAMAGE) { if (this->hitType == 0x68) { EnqueueSFX(SFX_86); } @@ -60,13 +60,13 @@ void DekuSeedProjectile_Action1(Entity* this) { if (IsProjectileOffScreen(this)) { DeleteThisEntity(); } - sub_08016AD2(this); + UpdateCollisionLayer(this); if (--this->timer == 0) { this->action = 4; } } else { sub_0800417E(this, this->collisions); - sub_08016AD2(this); + UpdateCollisionLayer(this); InitializeAnimation(this, 0x19); sub_080A86A0(this); } @@ -75,7 +75,7 @@ void DekuSeedProjectile_Action1(Entity* this) { if ((parent->next != NULL) && (IsColliding(this, parent) != 0)) { this->iframes = 0x10; this->knockbackDirection = -this->direction; - this->contactFlags = 0x80; + this->contactFlags = CONTACT_TAKE_DAMAGE; this->knockbackDuration = 0xc; this->knockbackSpeed = 0; parent->iframes = 0x10; @@ -99,7 +99,7 @@ void DekuSeedProjectile_Action2(Entity* this) { } } else { sub_0800417E(this, this->collisions); - sub_08016AD2(this); + UpdateCollisionLayer(this); InitializeAnimation(this, 0x19); sub_080A86A0(this); } diff --git a/src/projectile/dirtBallProjectile.c b/src/projectile/dirtBallProjectile.c index 12f9beae..2ef3867e 100644 --- a/src/projectile/dirtBallProjectile.c +++ b/src/projectile/dirtBallProjectile.c @@ -41,7 +41,7 @@ void DirtBallProjectile_OnCollision(Entity* this) { this->knockbackSpeed = 0; if (this->type == 0) { this->parent->child = NULL; - if (this->contactFlags == 0x80) { + if (this->contactFlags == CONTACT_TAKE_DAMAGE) { gPlayerState.hurtBlinkSpeed = 0xf0; ModHealth(-2); } @@ -136,7 +136,7 @@ void DirtBallProjectile_Action2(Entity* this) { return; } - tmp = sub_080043E8(this); + tmp = GetTileHazardType(this); if (tmp != 0) { switch (tmp) { case 2: diff --git a/src/projectile/fireProjectile.c b/src/projectile/fireProjectile.c index fa5e2d5c..cd81f3d3 100644 --- a/src/projectile/fireProjectile.c +++ b/src/projectile/fireProjectile.c @@ -57,7 +57,7 @@ void FireProjectile_Action2(Entity* this) { if (IsProjectileOffScreen(this)) { DeleteEntity(this); } else { - sub_08016AD2(this); + UpdateCollisionLayer(this); } } else { this->action = 3; diff --git a/src/projectile/gleerokProjectile.c b/src/projectile/gleerokProjectile.c index 2b4af4f2..d40d2a92 100644 --- a/src/projectile/gleerokProjectile.c +++ b/src/projectile/gleerokProjectile.c @@ -28,7 +28,8 @@ void GleerokProjectile(GleerokProjectileEntity* this) { } void GleerokProjectile_OnTick(GleerokProjectileEntity* this) { - if (((super->type != 3) && ((super->contactFlags & 0x80) != 0)) && ((super->contactFlags & 0x7f) != 0x1e)) { + if (((super->type != 3) && ((super->contactFlags & CONTACT_TAKE_DAMAGE) != 0)) && + ((super->contactFlags & 0x7f) != 0x1e)) { super->action = 3; COLLISION_OFF(super); InitializeAnimation(super, 0x53); @@ -95,7 +96,7 @@ void GleerokProjectile_Init(GleerokProjectileEntity* this) { void GleerokProjectile_Action1(GleerokProjectileEntity* this) { if (super->type == 3) { if (GravityUpdate(super, Q_8_8(24.0)) == 0) { - sub_08008790(super, 7); + DoTileInteractionHere(super, 7); CreateFx(super, FX_ROCK, 0); DeleteThisEntity(); } diff --git a/src/projectile/guardLineOfSight.c b/src/projectile/guardLineOfSight.c index f76f4360..dfb59237 100644 --- a/src/projectile/guardLineOfSight.c +++ b/src/projectile/guardLineOfSight.c @@ -26,7 +26,7 @@ void GuardLineOfSight(Entity* this) { this->timer = Random(); this->spriteSettings.draw = 0; } - if (this->contactFlags == 0x80) { + if (this->contactFlags == CONTACT_TAKE_DAMAGE) { if (this->parent != NULL) { this->parent->type = 0xff; } @@ -58,7 +58,7 @@ void GuardLineOfSight(Entity* this) { this->hitbox = (Hitbox*)&gUnk_080FD1E4; InitializeAnimation(this, 0); } - if (this->contactFlags == 0x80) { + if (this->contactFlags == CONTACT_TAKE_DAMAGE) { if (this->parent != NULL) { this->parent->type = 0xff; } diff --git a/src/projectile/iceProjectile.c b/src/projectile/iceProjectile.c index 1fa2ea7a..7a430b38 100644 --- a/src/projectile/iceProjectile.c +++ b/src/projectile/iceProjectile.c @@ -59,7 +59,7 @@ void IceProjectile_Action2(Entity* this) { if (IsProjectileOffScreen(this)) { DeleteEntity(this); } else { - sub_08016AD2(this); + UpdateCollisionLayer(this); } } else { this->action = 3; diff --git a/src/projectile/keatonDagger.c b/src/projectile/keatonDagger.c index 4f5b95af..6a4b66c3 100644 --- a/src/projectile/keatonDagger.c +++ b/src/projectile/keatonDagger.c @@ -20,7 +20,7 @@ void KeatonDagger(Entity* this) { } parent = this->parent; if (((parent == NULL) || (parent->health == 0)) || (parent->next == NULL)) { - if (((this->contactFlags & 0x80) != 0) && (this->contactedEntity == &gPlayerEntity.base)) { + if (((this->contactFlags & CONTACT_TAKE_DAMAGE) != 0) && (this->contactedEntity == &gPlayerEntity.base)) { sub_0803C0AC(this); } DeleteEntity(this); diff --git a/src/projectile/lakituLightning.c b/src/projectile/lakituLightning.c index 866c5b20..47d300a7 100644 --- a/src/projectile/lakituLightning.c +++ b/src/projectile/lakituLightning.c @@ -23,7 +23,7 @@ void LakituLightning_OnTick(Entity* this) { } void LakituLightning_OnCollision(Entity* this) { - if ((this->health == 0) || (this->contactFlags == 0x80)) { + if ((this->health == 0) || (this->contactFlags == CONTACT_TAKE_DAMAGE)) { DeleteThisEntity(); } LakituLightning_OnTick(this); diff --git a/src/projectile/mandiblesProjectile.c b/src/projectile/mandiblesProjectile.c index 6e797140..64142a9c 100644 --- a/src/projectile/mandiblesProjectile.c +++ b/src/projectile/mandiblesProjectile.c @@ -55,7 +55,7 @@ void MandiblesProjectile_OnTick(MandiblesProjectileEntity* this) { void MandiblesProjectile_OnCollision(MandiblesProjectileEntity* this) { Entity* parent; - if ((super->contactFlags & 0x80) != 0) { + if ((super->contactFlags & CONTACT_TAKE_DAMAGE) != 0) { switch (super->action) { case 4: super->subtimer = 0; @@ -118,7 +118,7 @@ void MandiblesProjectile_Action2(MandiblesProjectileEntity* this) { } this->unk_78 = TILE(super->x.HALF.HI, super->y.HALF.HI); if (GetTileType(this->unk_78, super->collisionLayer) == 0x4000) { - SetTile(0x4005, this->unk_78, super->collisionLayer); + SetBottomTile(0x4005, this->unk_78, super->collisionLayer); } } diff --git a/src/projectile/moblinSpear.c b/src/projectile/moblinSpear.c index ea1ac374..076477b0 100644 --- a/src/projectile/moblinSpear.c +++ b/src/projectile/moblinSpear.c @@ -38,7 +38,7 @@ void MoblinSpear_OnTick(Entity* this) { void MoblinSpear_OnCollision(Entity* this) { u8 tmp; - if (this->contactFlags == 0x80) { + if (this->contactFlags == CONTACT_TAKE_DAMAGE) { this->iframes = 0x10; this->knockbackDuration = 0xc; this->knockbackSpeed = 0x180; diff --git a/src/projectile/octorokBossProjectile.c b/src/projectile/octorokBossProjectile.c index 789e3a41..43982f37 100644 --- a/src/projectile/octorokBossProjectile.c +++ b/src/projectile/octorokBossProjectile.c @@ -99,7 +99,7 @@ void OctorokBossProjectile_Action1(OctorokBossProjectileEntity* this) { if (super->parent->action == 2) { DeleteThisEntity(); } - if ((super->type2 == 0) && ((super->contactFlags & 0x80) != 0)) { + if ((super->type2 == 0) && ((super->contactFlags & CONTACT_TAKE_DAMAGE) != 0)) { if ((super->contactFlags & 0x7f) == 0) { OctorokBossProjectile_Action2(this); } @@ -182,7 +182,7 @@ void OctorokBossProjectile_Action1(OctorokBossProjectileEntity* this) { if (--*(u32*)&this->unk_78 == -1) { OctorokBossProjectile_Action2(this); } - if ((super->contactFlags & 0x80) == 0) { + if ((super->contactFlags & CONTACT_TAKE_DAMAGE) == 0) { return; } OctorokBossProjectile_Action2(this); diff --git a/src/projectile/projectile5.c b/src/projectile/projectile5.c index 31471e10..379dd97d 100644 --- a/src/projectile/projectile5.c +++ b/src/projectile/projectile5.c @@ -41,7 +41,7 @@ void Projectile5_OnCollision(Entity* this) { if ((((Projectile5Entity*)this->parent)->unk_83 & 0x3f) == 3) { if (gPlayerState.hurtBlinkSpeed != 0) { if (sub_080B1B44(TILE(this->x.HALF.HI, this->y.HALF.HI), gPlayerEntity.base.collisionLayer) == 0) { - if (this->contactFlags == 0x80) { + if (this->contactFlags == CONTACT_TAKE_DAMAGE) { *pbVar2 = *pbVar2 & 0x7f; DeleteThisEntity(); } diff --git a/src/projectile/removableDust.c b/src/projectile/removableDust.c index c3138d16..e89cd3b4 100644 --- a/src/projectile/removableDust.c +++ b/src/projectile/removableDust.c @@ -51,7 +51,7 @@ void RemovableDust_OnTick(RemovableDustEntity* this) { } void RemovableDust_OnCollision(RemovableDustEntity* this) { - if (super->contactFlags == 0x96) { + if (super->contactFlags == (CONTACT_TAKE_DAMAGE | 0x16)) { RemovableDust_OnGrabbed(this); } } @@ -91,7 +91,7 @@ void sub_080AA494(RemovableDustEntity* this) { } super->type2 = index; super->spritePriority.b0 = 7; - SetTile(0x4068, TILE(super->x.HALF.HI, super->y.HALF.HI), super->collisionLayer); + SetBottomTile(0x4068, TILE(super->x.HALF.HI, super->y.HALF.HI), super->collisionLayer); } void sub_080AA534(Entity* this) { diff --git a/src/projectile/rockProjectile.c b/src/projectile/rockProjectile.c index 70957e97..7dc35d0c 100644 --- a/src/projectile/rockProjectile.c +++ b/src/projectile/rockProjectile.c @@ -22,7 +22,7 @@ void RockProjectile_OnTick(Entity* this) { } void RockProjectile_OnCollision(Entity* this) { - if (this->contactFlags == 0x80) { + if (this->contactFlags == CONTACT_TAKE_DAMAGE) { DeleteEntity(this); } else { this->direction = this->knockbackDirection; @@ -43,7 +43,7 @@ void RockProjectile_Action1(Entity* this) { if (IsProjectileOffScreen(this)) { DeleteEntity(this); } else { - sub_08016AD2(this); + UpdateCollisionLayer(this); if (--this->timer == 0) { this->action = 3; } @@ -51,7 +51,7 @@ void RockProjectile_Action1(Entity* this) { } else { sub_0800417E(this, this->collisions); sub_080A8178(this); - sub_08016AD2(this); + UpdateCollisionLayer(this); } } diff --git a/src/projectile/spiderWeb.c b/src/projectile/spiderWeb.c index dca0bc9a..c1cb7adc 100644 --- a/src/projectile/spiderWeb.c +++ b/src/projectile/spiderWeb.c @@ -64,7 +64,7 @@ void SpiderWeb_OnCollision(SpiderWebEntity* this) { }; Entity* object; - if (super->contactFlags == 0x87) { + if (super->contactFlags == (CONTACT_TAKE_DAMAGE | 0x7)) { super->action = 3; super->timer = 90; COLLISION_OFF(super); @@ -246,7 +246,7 @@ void sub_080AA9E0(Entity* this) { void sub_080AAA68(Entity* this) { static const u16 typeTiles[] = { 16419, 16421, 16422, 16420 }; - SetTile(typeTiles[this->type], TILE(this->x.HALF.HI, this->y.HALF.HI), this->collisionLayer); + SetBottomTile(typeTiles[this->type], TILE(this->x.HALF.HI, this->y.HALF.HI), this->collisionLayer); } void sub_080AAAA8(SpiderWebEntity* this) { diff --git a/src/projectile/stalfosProjectile.c b/src/projectile/stalfosProjectile.c index ff776f2e..660b8f5c 100644 --- a/src/projectile/stalfosProjectile.c +++ b/src/projectile/stalfosProjectile.c @@ -35,7 +35,7 @@ void StalfosProjectile_OnTick(Entity* this) { } void StalfosProjectile_OnCollision(Entity* this) { - if (this->contactFlags == 0x9d) { + if (this->contactFlags == (CONTACT_TAKE_DAMAGE | 0x1d)) { this->action = 3; COLLISION_OFF(this); this->zVelocity = Q_16_16(2.625); diff --git a/src/projectile/v1DarkMagicProjectile.c b/src/projectile/v1DarkMagicProjectile.c index 248612e4..eb5f73cc 100644 --- a/src/projectile/v1DarkMagicProjectile.c +++ b/src/projectile/v1DarkMagicProjectile.c @@ -43,7 +43,7 @@ void V1DarkMagicProjectile_OnTick(V1DarkMagicProjectileEntity* this) { } void V1DarkMagicProjectile_OnCollision(V1DarkMagicProjectileEntity* this) { - if ((super->contactFlags & 0x80) != 0) { + if ((super->contactFlags & CONTACT_TAKE_DAMAGE) != 0) { if (super->type2 == 0) { if ((super->contactFlags & 0x3f) == 0) { super->action = 2; diff --git a/src/projectile/v1FireProjectile.c b/src/projectile/v1FireProjectile.c index a0f89b5b..661547ba 100644 --- a/src/projectile/v1FireProjectile.c +++ b/src/projectile/v1FireProjectile.c @@ -31,7 +31,7 @@ void V1FireProjectile_OnTick(V1FireProjectileEntity* this) { } void V1FireProjectile_OnCollision(V1FireProjectileEntity* this) { - if ((super->contactFlags & 0x80) != 0) { + if ((super->contactFlags & CONTACT_TAKE_DAMAGE) != 0) { super->action = 3; COLLISION_OFF(super); InitializeAnimation(super, 0x53); diff --git a/src/projectile/v2Projectile.c b/src/projectile/v2Projectile.c index e602c6f4..8f7531c4 100644 --- a/src/projectile/v2Projectile.c +++ b/src/projectile/v2Projectile.c @@ -43,7 +43,7 @@ void V2Projectile_OnTick(V2ProjectileEntity* this) { } void V2Projectile_OnCollision(V2ProjectileEntity* this) { - if ((super->contactFlags & 0x80) == 0) + if ((super->contactFlags & CONTACT_TAKE_DAMAGE) == 0) return; switch (super->type) { diff --git a/src/projectile/windProjectile.c b/src/projectile/windProjectile.c index 499409f2..2682b104 100644 --- a/src/projectile/windProjectile.c +++ b/src/projectile/windProjectile.c @@ -64,7 +64,7 @@ void WindProjectile_Action2(Entity* this) { if (IsProjectileOffScreen(this)) { DeleteEntity(this); } else { - sub_08016AD2(this); + UpdateCollisionLayer(this); } } else { this->action = 3; diff --git a/src/projectile/winder.c b/src/projectile/winder.c index 5cbea569..b8caaefb 100644 --- a/src/projectile/winder.c +++ b/src/projectile/winder.c @@ -119,7 +119,7 @@ void Winder_SetPositions(WinderEntity* this) { bool32 Winder_CheckForRailings(WinderEntity* this, u32 dir) { u32 tile; u32 val; - LayerStruct* layer = GetLayerByIndex(super->collisionLayer); + LayerStruct* layer = GetTileBuffer(super->collisionLayer); u32 collisionData; tile = TILE(super->x.HALF.HI, super->y.HALF.HI); |
