Player "Hostile" Docs (#1706)

* actor flag hostile

* player hostile
This commit is contained in:
engineer124
2024-10-15 12:11:20 +11:00
committed by GitHub
parent 3472e79caa
commit 278717bb04
125 changed files with 292 additions and 265 deletions
+7 -7
View File
@@ -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;
}
+9 -2
View File
@@ -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) {