summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
authorengineer124 <47598039+engineer124@users.noreply.github.com>2024-10-15 12:11:20 +1100
committerGitHub <noreply@github.com>2024-10-14 18:11:20 -0700
commit278717bb0473ad2cb50c5916e9c6aff2dbcbc014 (patch)
tree207af4b7e29c7e9609fcaea3707fcc384c083ca0 /src/code
parent3472e79caa697ba2b915850171f97f9515aec6b2 (diff)
Player "Hostile" Docs (#1706)
* actor flag hostile * player hostile
Diffstat (limited to 'src/code')
-rw-r--r--src/code/z_actor.c14
-rw-r--r--src/code/z_player_lib.c11
2 files changed, 16 insertions, 9 deletions
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) {