summaryrefslogtreecommitdiff
path: root/src/projectile
diff options
context:
space:
mode:
authorTheo <65437533+notyourav@users.noreply.github.com>2023-12-31 17:36:15 -0800
committerGitHub <noreply@github.com>2023-12-31 17:36:15 -0800
commit48fdf9d8277d2bd2e071cb30fc6284c58645e343 (patch)
treef5364bb3cdb41fe41512d767c1de44f73963e498 /src/projectile
parent72c27b5393372081f558a4c610bab7d5c88d3e89 (diff)
parent37ac9cb0fb2d9ccb64286bab2cdf648e6f2541c5 (diff)
Merge pull request #684 from notyourav/tiles
Tiles documentation
Diffstat (limited to 'src/projectile')
-rw-r--r--src/projectile/arrowProjectile.c2
-rw-r--r--src/projectile/boneProjectile.c4
-rw-r--r--src/projectile/cannonballProjectile.c8
-rw-r--r--src/projectile/darkNutSwordSlash.c2
-rw-r--r--src/projectile/dekuSeedProjectile.c10
-rw-r--r--src/projectile/dirtBallProjectile.c4
-rw-r--r--src/projectile/fireProjectile.c2
-rw-r--r--src/projectile/gleerokProjectile.c5
-rw-r--r--src/projectile/guardLineOfSight.c4
-rw-r--r--src/projectile/iceProjectile.c2
-rw-r--r--src/projectile/keatonDagger.c2
-rw-r--r--src/projectile/lakituLightning.c2
-rw-r--r--src/projectile/mandiblesProjectile.c4
-rw-r--r--src/projectile/moblinSpear.c2
-rw-r--r--src/projectile/octorokBossProjectile.c4
-rw-r--r--src/projectile/projectile5.c2
-rw-r--r--src/projectile/removableDust.c4
-rw-r--r--src/projectile/rockProjectile.c6
-rw-r--r--src/projectile/spiderWeb.c4
-rw-r--r--src/projectile/stalfosProjectile.c2
-rw-r--r--src/projectile/v1DarkMagicProjectile.c2
-rw-r--r--src/projectile/v1FireProjectile.c2
-rw-r--r--src/projectile/v2Projectile.c2
-rw-r--r--src/projectile/windProjectile.c2
-rw-r--r--src/projectile/winder.c2
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);