From 278717bb0473ad2cb50c5916e9c6aff2dbcbc014 Mon Sep 17 00:00:00 2001 From: engineer124 <47598039+engineer124@users.noreply.github.com> Date: Tue, 15 Oct 2024 12:11:20 +1100 Subject: Player "Hostile" Docs (#1706) * actor flag hostile * player hostile --- src/code/z_actor.c | 14 +++++++------- src/code/z_player_lib.c | 11 +++++++++-- 2 files changed, 16 insertions(+), 9 deletions(-) (limited to 'src/code') diff --git a/src/code/z_actor.c b/src/code/z_actor.c index ae7a0b1ac..311085a3b 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -605,7 +605,7 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) { } actor = targetCtx->arrowPointedActor; - if ((actor != NULL) && !(actor->flags & ACTOR_FLAG_CANT_LOCK_ON)) { + if ((actor != NULL) && !(actor->flags & ACTOR_FLAG_LOCK_ON_DISABLED)) { TatlColor* color = &sTatlColorList[actor->category]; POLY_XLU_DISP = Gfx_SetupDL(POLY_XLU_DISP, SETUPDL_7); @@ -698,7 +698,7 @@ void Target_Update(TargetContext* targetCtx, Player* player, Actor* lockOnActor, targetCtx->lockOnAlpha = 0; } - sfxId = CHECK_FLAG_ALL(lockOnActor->flags, ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_UNFRIENDLY) + sfxId = CHECK_FLAG_ALL(lockOnActor->flags, ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_HOSTILE) ? NA_SE_SY_LOCK_ON : NA_SE_SY_LOCK_ON_HUMAN; Audio_PlaySfx(sfxId); @@ -1855,7 +1855,7 @@ f32 Target_GetAdjustedDistSq(Actor* actor, Player* player, s16 playerShapeYaw) { yawDiff = ABS_ALT(BINANG_SUB(BINANG_SUB(actor->yawTowardsPlayer, 0x8000), playerShapeYaw)); if (player->lockOnActor != NULL) { - if ((yawDiff > 0x4000) || (actor->flags & ACTOR_FLAG_CANT_LOCK_ON)) { + if ((yawDiff > 0x4000) || (actor->flags & ACTOR_FLAG_LOCK_ON_DISABLED)) { return FLT_MAX; } @@ -1903,7 +1903,7 @@ s32 Target_IsActorInRange(Actor* actor, f32 distSq) { */ s32 Target_OutsideLeashRange(Actor* actor, Player* player, s32 ignoreLeash) { if ((actor->update == NULL) || !(actor->flags & ACTOR_FLAG_TARGETABLE) || - (actor->flags & ACTOR_FLAG_CANT_LOCK_ON)) { + (actor->flags & ACTOR_FLAG_LOCK_ON_DISABLED)) { return true; } @@ -3566,7 +3566,7 @@ void Target_FindTargetableActorForCategory(PlayState* play, ActorContext* actorC // Determine the closest enemy actor to player within a range. Used for playing enemy background music. if ((actorCategory == ACTORCAT_ENEMY) && - CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_UNFRIENDLY)) { + CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_HOSTILE)) { if ((actor->xyzDistToPlayerSq < SQ(500.0f)) && (actor->xyzDistToPlayerSq < sBgmEnemyDistSq)) { actorCtx->targetCtx.bgmEnemy = actor; sBgmEnemyDistSq = actor->xyzDistToPlayerSq; @@ -3936,7 +3936,7 @@ s16 Actor_TestFloorInDirection(Actor* actor, PlayState* play, f32 distance, s16 s32 Actor_IsTargeted(PlayState* play, Actor* actor) { Player* player = GET_PLAYER(play); - if ((player->stateFlags3 & PLAYER_STATE3_80000000) && actor->isLockedOn) { + if ((player->stateFlags3 & PLAYER_STATE3_HOSTILE_LOCK_ON) && actor->isLockedOn) { return true; } @@ -3949,7 +3949,7 @@ s32 Actor_IsTargeted(PlayState* play, Actor* actor) { s32 Actor_OtherIsTargeted(PlayState* play, Actor* actor) { Player* player = GET_PLAYER(play); - if ((player->stateFlags3 & PLAYER_STATE3_80000000) && !actor->isLockedOn) { + if ((player->stateFlags3 & PLAYER_STATE3_HOSTILE_LOCK_ON) && !actor->isLockedOn) { return true; } diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index f7f63c09a..e3f3ce941 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -505,8 +505,15 @@ bool Player_InCsMode(PlayState* play) { return Player_InBlockingCsMode(play, player) || (player->unk_AA5 == PLAYER_UNKAA5_5); } -bool func_80123420(Player* player) { - return player->stateFlags3 & PLAYER_STATE3_80000000; +/** + * Checks if Player is currently locked onto a hostile actor. + * `PLAYER_STATE3_HOSTILE_LOCK_ON` controls Player's "battle" response to hostile actors. + * + * Note that within Player, `Player_UpdateHostileLockOn` exists, which updates the flag and also returns the check. + * Player can use this function instead if the flag should be checked, but not updated. + */ +bool Player_CheckHostileLockOn(Player* player) { + return player->stateFlags3 & PLAYER_STATE3_HOSTILE_LOCK_ON; } bool func_80123434(Player* player) { -- cgit v1.2.3