diff options
| author | engineer124 <47598039+engineer124@users.noreply.github.com> | 2023-03-04 17:53:56 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-04 19:53:56 -0300 |
| commit | 2cce8f67671c7162a946dd11604f83c9630fbc28 (patch) | |
| tree | cd8cf2049d4256b2f7068aead995a46d76bea6b1 /src/code | |
| parent | 8b025badd14616338b0a690b4b872d6ca6bd0327 (diff) | |
Introduce BgCheckFlags Defines (#1195)
* flags
* cleanup
* adjust comment
Diffstat (limited to 'src/code')
| -rw-r--r-- | src/code/z_actor.c | 75 | ||||
| -rw-r--r-- | src/code/z_bgcheck.c | 4 | ||||
| -rw-r--r-- | src/code/z_en_hy_code.c | 2 | ||||
| -rw-r--r-- | src/code/z_en_item00.c | 8 | ||||
| -rw-r--r-- | src/code/z_player_lib.c | 7 |
5 files changed, 49 insertions, 47 deletions
diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 644d933b9..f6039a8ed 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -113,7 +113,7 @@ void ActorShadow_Draw(Actor* actor, Lights* lights, PlayState* play, Gfx* dlist, } void ActorShadow_DrawCircle(Actor* actor, Lights* lights, PlayState* play) { - if (actor->bgCheckFlags & 0x400) { + if (actor->bgCheckFlags & BGCHECKFLAG_PLAYER_400) { func_800B4AEC(play, actor, 50.0f); } @@ -121,7 +121,7 @@ void ActorShadow_DrawCircle(Actor* actor, Lights* lights, PlayState* play) { } void ActorShadow_DrawSquare(Actor* actor, Lights* lights, PlayState* play) { - if (actor->bgCheckFlags & 0x400) { + if (actor->bgCheckFlags & BGCHECKFLAG_PLAYER_400) { func_800B4AEC(play, actor, 50.0f); } @@ -285,7 +285,7 @@ void ActorShadow_DrawFeet(Actor* actor, Lights* mapper, PlayState* play) { floorHeightPtr++; } - if (!(actor->bgCheckFlags & 1)) { + if (!(actor->bgCheckFlags & BGCHECKFLAG_GROUND)) { actor->shape.feetFloorFlags = 0; } else if (actor->shape.feetFloorFlags == 3) { f32 footDistY = actor->shape.feetPos[FOOT_LEFT].y - actor->shape.feetPos[FOOT_RIGHT].y; @@ -336,7 +336,7 @@ void func_800B4B50(Actor* actor, Lights* mapper, PlayState* play) { Light* phi_s0; s32 lightNumMax; - if (actor->bgCheckFlags & 0x400) { + if (actor->bgCheckFlags & BGCHECKFLAG_PLAYER_400) { func_800B4AEC(play, actor, 50.0f); } @@ -1497,9 +1497,9 @@ void Actor_GetSlopeDirection(CollisionPoly* floorPoly, Vec3f* slopeNormal, s16* } s32 func_800B761C(Actor* actor, f32 arg1, s32 arg2) { - if (actor->bgCheckFlags & 1) { - actor->bgCheckFlags &= ~1; - actor->bgCheckFlags |= 4; + if (actor->bgCheckFlags & BGCHECKFLAG_GROUND) { + actor->bgCheckFlags &= ~BGCHECKFLAG_GROUND; + actor->bgCheckFlags |= BGCHECKFLAG_GROUND_LEAVE; if ((actor->velocity.y < 0.0f) && (arg2 & 0x10)) { actor->velocity.y = 0.0f; @@ -1517,21 +1517,22 @@ s32 func_800B7678(PlayState* play, Actor* actor, Vec3f* pos, s32 flags) { pos->y += (flags & 0x800) ? 10.0f : 50.0f; actor->floorHeight = BgCheck_EntityRaycastFloor5_2(play, &play->colCtx, &actor->floorPoly, &bgId, actor, pos); - actor->bgCheckFlags &= ~(0x80 | 0x04 | 0x02); + actor->bgCheckFlags &= ~(BGCHECKFLAG_GROUND_TOUCH | BGCHECKFLAG_GROUND_LEAVE | BGCHECKFLAG_GROUND_STRICT); if (actor->floorHeight <= BGCHECK_Y_MIN) { return func_800B761C(actor, BGCHECK_Y_MIN, flags); } distToFloor = actor->floorHeight - actor->world.pos.y; actor->floorBgId = bgId; - if ((distToFloor >= 0.0f) || (((actor->bgCheckFlags & 1)) && !(actor->bgCheckFlags & 0x800) && - (distToFloor >= -11.0f) && (actor->velocity.y < 0.0f))) { - actor->bgCheckFlags |= 0x80; + if ((distToFloor >= 0.0f) || + (((actor->bgCheckFlags & BGCHECKFLAG_GROUND)) && !(actor->bgCheckFlags & BGCHECKFLAG_PLAYER_800) && + (distToFloor >= -11.0f) && (actor->velocity.y < 0.0f))) { + actor->bgCheckFlags |= BGCHECKFLAG_GROUND_STRICT; - if (actor->bgCheckFlags & 0x10) { + if (actor->bgCheckFlags & BGCHECKFLAG_CEILING) { if (bgId != D_801ED8B4) { if (distToFloor > 15.0f) { - actor->bgCheckFlags |= 0x100; + actor->bgCheckFlags |= BGCHECKFLAG_CRUSHED; } } else { actor->world.pos.x = actor->prevPos.x; @@ -1542,15 +1543,15 @@ s32 func_800B7678(PlayState* play, Actor* actor, Vec3f* pos, s32 flags) { actor->world.pos.y = actor->floorHeight; if (actor->velocity.y <= 0.0f) { - if (!(actor->bgCheckFlags & 1)) { - actor->bgCheckFlags |= 2; + if (!(actor->bgCheckFlags & BGCHECKFLAG_GROUND)) { + actor->bgCheckFlags |= BGCHECKFLAG_GROUND_TOUCH; } else if ((flags & 8) && (actor->gravity < 0.0f)) { actor->velocity.y = -4.0f; } else if (!(flags & 0x100)) { actor->velocity.y = 0.0f; } - actor->bgCheckFlags |= 1; + actor->bgCheckFlags |= BGCHECKFLAG_GROUND; BgCheck2_AttachToMesh(&play->colCtx, actor, (s32)actor->floorBgId); } } else { @@ -1566,14 +1567,14 @@ void Actor_UpdateBgCheckInfo(PlayState* play, Actor* actor, f32 wallCheckHeight, s32 pad; Vec3f pos; - if ((actor->floorBgId != BGCHECK_SCENE) && (actor->bgCheckFlags & 1)) { + if ((actor->floorBgId != BGCHECK_SCENE) && (actor->bgCheckFlags & BGCHECKFLAG_GROUND)) { BgCheck2_UpdateActorAttachedToMesh(&play->colCtx, actor->floorBgId, actor); } if (flags & 1) { s32 bgId; - actor->bgCheckFlags &= ~0x1000; + actor->bgCheckFlags &= ~BGCHECKFLAG_PLAYER_1000; if ((!(flags & 0x80) && (BgCheck_EntitySphVsWall3(&play->colCtx, &pos, &actor->world.pos, &actor->prevPos, wallCheckRadius, &actor->wallPoly, &bgId, actor, wallCheckHeight))) || @@ -1582,18 +1583,18 @@ void Actor_UpdateBgCheckInfo(PlayState* play, Actor* actor, f32 wallCheckHeight, &actor->wallPoly, &bgId, actor, wallCheckHeight)))) { CollisionPoly* sp7C = actor->wallPoly; - actor->bgCheckFlags |= 8; - if ((flags & 0x200) && (actor->bgCheckFlags & 0x1000) && ((s32)sp7C->normal.y > 0) && + actor->bgCheckFlags |= BGCHECKFLAG_WALL; + if ((flags & 0x200) && (actor->bgCheckFlags & BGCHECKFLAG_PLAYER_1000) && ((s32)sp7C->normal.y > 0) && (sqrtf(SQXYZ(actor->colChkInfo.displacement)) < 10.0f)) { - actor->bgCheckFlags &= ~8; - } else if (actor->bgCheckFlags & 8) { + actor->bgCheckFlags &= ~BGCHECKFLAG_WALL; + } else if (actor->bgCheckFlags & BGCHECKFLAG_WALL) { Math_Vec3f_Copy(&actor->world.pos, &pos); } actor->wallYaw = Math_Atan2S_XY(sp7C->normal.z, sp7C->normal.x); actor->wallBgId = bgId; } else { - actor->bgCheckFlags &= ~8; + actor->bgCheckFlags &= ~BGCHECKFLAG_WALL; } } @@ -1605,10 +1606,10 @@ void Actor_UpdateBgCheckInfo(PlayState* play, Actor* actor, f32 wallCheckHeight, pos.y = actor->prevPos.y + 4.0f; if (BgCheck_EntityCheckCeiling(&play->colCtx, &y, &pos, (ceilingCheckHeight + sp94) - 4.0f, &D_801ED8B0, &D_801ED8B4, actor)) { - actor->bgCheckFlags |= 0x10; + actor->bgCheckFlags |= BGCHECKFLAG_CEILING; actor->world.pos.y = (y + sp94) - 4.0f; } else { - actor->bgCheckFlags &= ~0x10; + actor->bgCheckFlags &= ~BGCHECKFLAG_CEILING; } } if (flags & 4) { @@ -1622,9 +1623,9 @@ void Actor_UpdateBgCheckInfo(PlayState* play, Actor* actor, f32 wallCheckHeight, if (WaterBox_GetSurface1(play, &play->colCtx, actor->world.pos.x, actor->world.pos.z, &y, &waterbox)) { actor->depthInWater = y - actor->world.pos.y; if (actor->depthInWater <= 0.0f) { - actor->bgCheckFlags &= ~(0x40 | 0x20); - } else if (!(actor->bgCheckFlags & 0x20)) { - actor->bgCheckFlags |= (0x40 | 0x20); + actor->bgCheckFlags &= ~(BGCHECKFLAG_WATER | BGCHECKFLAG_WATER_TOUCH); + } else if (!(actor->bgCheckFlags & BGCHECKFLAG_WATER)) { + actor->bgCheckFlags |= (BGCHECKFLAG_WATER | BGCHECKFLAG_WATER_TOUCH); if (!(flags & 0x40)) { Vec3f sp64; @@ -1637,10 +1638,10 @@ void Actor_UpdateBgCheckInfo(PlayState* play, Actor* actor, f32 wallCheckHeight, EffectSsGRipple_Spawn(play, &sp64, 100, 500, 8); } } else { - actor->bgCheckFlags &= ~0x40; + actor->bgCheckFlags &= ~BGCHECKFLAG_WATER_TOUCH; } } else { - actor->bgCheckFlags &= ~(0x40 | 0x20); + actor->bgCheckFlags &= ~(BGCHECKFLAG_WATER | BGCHECKFLAG_WATER_TOUCH); actor->depthInWater = BGCHECK_Y_MIN; } } @@ -1653,9 +1654,9 @@ void Actor_UpdateBgCheckInfo(PlayState* play, Actor* actor, f32 wallCheckHeight, actor->depthInWater = y - actor->world.pos.y; if (actor->depthInWater < 0.0f) { - actor->bgCheckFlags &= ~(0x40 | 0x20); - } else if (!(actor->bgCheckFlags & 0x20)) { - actor->bgCheckFlags |= (0x40 | 0x20); + actor->bgCheckFlags &= ~(BGCHECKFLAG_WATER | BGCHECKFLAG_WATER_TOUCH); + } else if (!(actor->bgCheckFlags & BGCHECKFLAG_WATER)) { + actor->bgCheckFlags |= (BGCHECKFLAG_WATER | BGCHECKFLAG_WATER_TOUCH); if (!(flags & 0x40)) { Vec3f sp50; @@ -1668,10 +1669,10 @@ void Actor_UpdateBgCheckInfo(PlayState* play, Actor* actor, f32 wallCheckHeight, EffectSsGRipple_Spawn(play, &sp50, 100, 500, 8); } } else { - actor->bgCheckFlags &= ~0x40; + actor->bgCheckFlags &= ~BGCHECKFLAG_WATER_TOUCH; } } else { - actor->bgCheckFlags &= ~(0x40 | 0x20); + actor->bgCheckFlags &= ~(BGCHECKFLAG_WATER | BGCHECKFLAG_WATER_TOUCH); actor->depthInWater = BGCHECK_Y_MIN; } } @@ -2152,7 +2153,7 @@ void Actor_PlaySfx(Actor* actor, u16 sfxId) { void func_800B8EF4(PlayState* play, Actor* actor) { u32 sfxId; - if (actor->bgCheckFlags & 0x20) { + if (actor->bgCheckFlags & BGCHECKFLAG_WATER) { if (actor->depthInWater < 20.0f) { sfxId = NA_SE_PL_WALK_WATER0 - SFX_FLAG; } else { @@ -3680,7 +3681,7 @@ s16 Actor_TestFloorInDirection(Actor* actor, PlayState* play, f32 distance, s16 Actor_UpdateBgCheckInfo(play, actor, 0.0f, 0.0f, 0.0f, 4); Math_Vec3f_Copy(&actor->world.pos, &actorPos); - ret = actor->bgCheckFlags & 1; + ret = actor->bgCheckFlags & BGCHECKFLAG_GROUND; actor->bgCheckFlags = bgCheckFlags; diff --git a/src/code/z_bgcheck.c b/src/code/z_bgcheck.c index eda6437af..6d4414c38 100644 --- a/src/code/z_bgcheck.c +++ b/src/code/z_bgcheck.c @@ -1955,7 +1955,7 @@ s32 BgCheck_CheckWallImpl(CollisionContext* colCtx, u16 xpFlags, Vec3f* posResul } posResult->z = posIntersect.z; if (actor != NULL) { - actor->bgCheckFlags |= 0x1000; + actor->bgCheckFlags |= BGCHECKFLAG_PLAYER_1000; } } // poly is wall @@ -2001,7 +2001,7 @@ s32 BgCheck_CheckWallImpl(CollisionContext* colCtx, u16 xpFlags, Vec3f* posResul result = true; if (poly->normal.y * COLPOLY_NORMAL_FRAC > 0.5f) { if (actor != NULL) { - actor->bgCheckFlags |= 0x1000; + actor->bgCheckFlags |= BGCHECKFLAG_PLAYER_1000; } } } else { diff --git a/src/code/z_en_hy_code.c b/src/code/z_en_hy_code.c index 1affc8df7..2f508bb94 100644 --- a/src/code/z_en_hy_code.c +++ b/src/code/z_en_hy_code.c @@ -254,7 +254,7 @@ s32 EnHy_PlayWalkingSound(EnHy* enHy, PlayState* play, f32 distAboveThreshold) { u16 sfxId; u8 isFootOnGround; - if (enHy->actor.bgCheckFlags & 0x20) { + if (enHy->actor.bgCheckFlags & BGCHECKFLAG_WATER) { if (enHy->actor.depthInWater < 20.0f) { waterSfxId = NA_SE_PL_WALK_WATER0 - SFX_FLAG; } else { diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c index 987f8b10e..4423a184d 100644 --- a/src/code/z_en_item00.c +++ b/src/code/z_en_item00.c @@ -362,7 +362,7 @@ void func_800A640C(EnItem00* this, PlayState* play) { } } - if ((this->actor.gravity != 0.0f) && !(this->actor.bgCheckFlags & 1)) { + if ((this->actor.gravity != 0.0f) && !(this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { this->actionFunc = func_800A6650; } } @@ -387,12 +387,12 @@ void func_800A6650(EnItem00* this, PlayState* play) { EffectSsKirakira_SpawnSmall(play, &pos, &sEffectVelocity, &sEffectAccel, &sEffectPrimColor, &sEffectEnvColor); } - if (this->actor.bgCheckFlags & 3) { + if (this->actor.bgCheckFlags & (BGCHECKFLAG_GROUND | BGCHECKFLAG_GROUND_TOUCH)) { if (this->actor.velocity.y > -2.0f) { this->actionFunc = func_800A640C; } else { this->actor.velocity.y = this->actor.velocity.y * -0.8f; - this->actor.bgCheckFlags &= ~1; + this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND; } } } @@ -444,7 +444,7 @@ void func_800A6780(EnItem00* this, PlayState* play) { EffectSsKirakira_SpawnSmall(play, &pos, &sEffectVelocity, &sEffectAccel, &sEffectPrimColor, &sEffectEnvColor); } - if (this->actor.bgCheckFlags & 3) { + if (this->actor.bgCheckFlags & (BGCHECKFLAG_GROUND | BGCHECKFLAG_GROUND_TOUCH)) { this->actionFunc = func_800A640C; this->actor.shape.rot.z = 0; this->actor.speed = 0.0f; diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index a52a7a5c4..4bdd22e0a 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -495,7 +495,8 @@ s32 func_801234D4(PlayState* play) { return (player->stateFlags2 & PLAYER_STATE2_8) || (player->actor.speed != 0.0f) || ((player->transformation != PLAYER_FORM_ZORA) && (player->stateFlags1 & PLAYER_STATE1_8000000)) || ((player->transformation == PLAYER_FORM_ZORA) && (player->stateFlags1 & PLAYER_STATE1_8000000) && - (!(player->actor.bgCheckFlags & 1) || (player->currentBoots < PLAYER_BOOTS_ZORA_UNDERWATER))); + (!(player->actor.bgCheckFlags & BGCHECKFLAG_GROUND) || + (player->currentBoots < PLAYER_BOOTS_ZORA_UNDERWATER))); } s32 func_80123590(PlayState* play, Actor* actor) { @@ -1274,7 +1275,7 @@ void func_80123DA4(Player* player) { } void func_80123DC0(Player* player) { - if ((player->actor.bgCheckFlags & 1) || + if ((player->actor.bgCheckFlags & BGCHECKFLAG_GROUND) || (player->stateFlags1 & (PLAYER_STATE1_200000 | PLAYER_STATE1_800000 | PLAYER_STATE1_8000000)) || (!(player->stateFlags1 & (PLAYER_STATE1_40000 | PLAYER_STATE1_80000)) && ((player->actor.world.pos.y - player->actor.floorHeight) < 100.0f))) { @@ -1461,7 +1462,7 @@ s32 Player_GetEnvironmentalHazard(PlayState* play) { envHazard = PLAYER_ENV_HAZARD_UNDERWATER_FREE - 1; } else if (player->stateFlags1 & PLAYER_STATE1_8000000) { if ((player->transformation == PLAYER_FORM_ZORA) && (player->currentBoots >= PLAYER_BOOTS_ZORA_UNDERWATER) && - (player->actor.bgCheckFlags & 1)) { + (player->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { envHazard = PLAYER_ENV_HAZARD_UNDERWATER_FLOOR - 1; } else { envHazard = PLAYER_ENV_HAZARD_SWIMMING - 1; |
