diff --git a/include/functions.h b/include/functions.h index 1fa82e044f9..e75ec558e4e 100644 --- a/include/functions.h +++ b/include/functions.h @@ -322,7 +322,7 @@ void ActorShadow_DrawFeet(Actor* actor, Lights* lights, PlayState* play); void Actor_SetFeetPos(Actor* actor, s32 limbIndex, s32 leftFootIndex, Vec3f* leftFootPos, s32 rightFootIndex, Vec3f* rightFootPos); void Actor_ProjectPos(PlayState* play, Vec3f* src, Vec3f* xyzDest, f32* cappedInvWDest); -void func_8002C124(TargetContext* targetCtx, PlayState* play); +void Target_Draw(TargetContext* targetCtx, PlayState* play); s32 Flags_GetSwitch(PlayState* play, s32 flag); void Flags_SetSwitch(PlayState* play, s32 flag); void Flags_UnsetSwitch(PlayState* play, s32 flag); @@ -394,7 +394,7 @@ void func_8002ED80(Actor* actor, PlayState* play, s32 flag); PosRot Actor_GetFocus(Actor* actor); PosRot Actor_GetWorld(Actor* actor); PosRot Actor_GetWorldPosShapeRot(Actor* actor); -s32 func_8002F0C8(Actor* actor, Player* player, s32 flag); +s32 Target_OutsideLeashRange(Actor* actor, Player* player, s32 ignoreLeash); s32 Actor_TalkOfferAccepted(Actor* actor, PlayState* play); s32 Actor_OfferTalkExchange(Actor* actor, PlayState* play, f32 xzRange, f32 yRange, u32 exchangeItemId); s32 Actor_OfferTalkExchangeEquiCylinder(Actor* actor, PlayState* play, f32 radius, u32 exchangeItemId); @@ -442,7 +442,7 @@ Actor* Actor_SpawnAsChild(ActorContext* actorCtx, Actor* parent, PlayState* play void Actor_SpawnTransitionActors(PlayState* play, ActorContext* actorCtx); Actor* Actor_SpawnEntry(ActorContext* actorCtx, ActorEntry* actorEntry, PlayState* play); Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play); -Actor* func_80032AF0(PlayState* play, ActorContext* actorCtx, Actor** actorPtr, Player* player); +Actor* Target_GetTargetActor(PlayState* play, ActorContext* actorCtx, Actor** targetableP, Player* player); Actor* Actor_Find(ActorContext* actorCtx, s32 actorId, s32 actorCategory); void Enemy_StartFinishingBlow(PlayState* play, Actor* actor); s16 func_80032CB4(s16* arg0, s16 arg1, s16 arg2, s16 arg3); diff --git a/include/z64.h b/include/z64.h index 572afb4d1dc..44253854ba0 100644 --- a/include/z64.h +++ b/include/z64.h @@ -116,32 +116,6 @@ typedef struct { /* 0x04 */ s32 timer; } FrameAdvanceContext; // size = 0x8 -typedef struct { - /* 0x00 */ Vec3f pos; - /* 0x0C */ f32 unk_0C; // radius? - /* 0x10 */ Color_RGB8 color; -} TargetContextEntry; // size = 0x14 - -typedef struct { - /* 0x00 */ Vec3f naviRefPos; // possibly wrong - /* 0x0C */ Vec3f targetCenterPos; - /* 0x18 */ Color_RGBAf naviInner; - /* 0x28 */ Color_RGBAf naviOuter; - /* 0x38 */ Actor* arrowPointedActor; - /* 0x3C */ Actor* targetedActor; - /* 0x40 */ f32 unk_40; - /* 0x44 */ f32 unk_44; - /* 0x48 */ s16 unk_48; - /* 0x4A */ u8 activeCategory; - /* 0x4B */ u8 unk_4B; - /* 0x4C */ s8 unk_4C; - /* 0x4D */ char unk_4D[0x03]; - /* 0x50 */ TargetContextEntry arr_50[3]; - /* 0x8C */ Actor* unk_8C; - /* 0x90 */ Actor* bgmEnemy; // The nearest enemy to player with the right flags that will trigger NA_BGM_ENEMY - /* 0x94 */ Actor* unk_94; -} TargetContext; // size = 0x98 - typedef struct { /* 0x00 */ void* texture; /* 0x04 */ s16 x; diff --git a/include/z64actor.h b/include/z64actor.h index fd38b002b28..40854594b7f 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -233,7 +233,7 @@ typedef struct Actor { /* 0x0F8 */ f32 uncullZoneScale; // Amount to increase the uncull zone scale by (in projected space) /* 0x0FC */ f32 uncullZoneDownward; // Amount to increase uncull zone downward by (in projected space) /* 0x100 */ Vec3f prevPos; // World position from the previous update cycle - /* 0x10C */ u8 isTargeted; // Set to true if the actor is currently being targeted by the player + /* 0x10C */ u8 isLockedOn; // Set to true if the actor is currently being targeted by the player /* 0x10D */ u8 targetPriority; // Lower values have higher priority. Resets to 0 when player stops targeting /* 0x10E */ u16 textId; // Text ID to pass to player/display when interacting with the actor /* 0x110 */ u16 freezeTimer; // Actor does not update when set. Timer decrements automatically @@ -515,6 +515,46 @@ typedef enum { /* 0xFF */ NAVI_ENEMY_NONE = 0xFF } NaviEnemy; +// A set of 4 triangles which appear as a ring around an actor when the player Z-Targets it +typedef struct { + /* 0x00 */ Vec3f pos; + /* 0x0C */ f32 radius; // distance towards the center of the locked on actor + /* 0x10 */ Color_RGB8 color; +} LockOnReticle; // size = 0x14 + +typedef struct { + /* 0x00 */ Vec3f naviPos; // Used by Navi to indicate a targetable actor or general hint + /* 0x0C */ Vec3f lockOnPos; + /* 0x18 */ Color_RGBAf naviInnerColor; + /* 0x28 */ Color_RGBAf naviOuterColor; + /* 0x38 */ Actor* naviHoverActor; // The actor that Navi hovers over + /* 0x3C */ Actor* lockOnActor; + /* 0x40 */ f32 naviMoveProgressFactor; // Controls Navi so she can smootly transition to the target actor + /* 0x44 */ f32 reticleRadius; // Control the reticle coming in from offscreen when you first target + /* 0x48 */ s16 reticleFadeAlphaControl; // Set and fade the reticle alpha. Also controls the reticle drawing with non-zero values. + /* 0x4A */ u8 naviHoverActorCategory; // category of the actor Navi is currently hovering over + /* 0x4B */ u8 reticleSpinCounter; // counts up when a reticle is active, used for z rotation of reticle + /* 0x4C */ s8 lockOnIndex; + /* 0x50 */ LockOnReticle lockOnReticles[3]; + /* 0x8C */ Actor* forcedTargetActor; // Not used, always set to NULL + /* 0x90 */ Actor* bgmEnemy; // The nearest enemy to player with the right flags that will trigger NA_BGM_ENEMY + /* 0x94 */ Actor* arrowHoverActor; // actor a target arrow is currently hovering over +} TargetContext; // size = 0x98 + +typedef enum { + /* 0 */ TARGET_MODE_0, + /* 1 */ TARGET_MODE_1, + /* 2 */ TARGET_MODE_2, + /* 3 */ TARGET_MODE_3, + /* 4 */ TARGET_MODE_4, + /* 5 */ TARGET_MODE_5, + /* 6 */ TARGET_MODE_6, + /* 7 */ TARGET_MODE_7, + /* 8 */ TARGET_MODE_8, + /* 9 */ TARGET_MODE_9, + /* 10 */ TARGET_MODE_MAX +} TargetMode; + #define TRANSITION_ACTOR_PARAMS_INDEX_SHIFT 10 #define GET_TRANSITION_ACTOR_INDEX(actor) ((u16)(actor)->params >> TRANSITION_ACTOR_PARAMS_INDEX_SHIFT) diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 7377bc9e854..d4c9e34be54 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -221,18 +221,24 @@ void Actor_ProjectPos(PlayState* play, Vec3f* src, Vec3f* xyzDest, f32* cappedIn } typedef struct { - /* 0x00 */ Color_RGBA8 inner; - /* 0x04 */ Color_RGBA8 outer; -} NaviColor; // size = 0x8 - -NaviColor sNaviColorList[] = { - { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, - { { 255, 255, 255, 255 }, { 0, 0, 255, 0 } }, { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, - { { 150, 150, 255, 255 }, { 150, 150, 255, 0 } }, { { 255, 255, 0, 255 }, { 200, 155, 0, 0 } }, - { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, - { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, { { 255, 255, 0, 255 }, { 200, 155, 0, 0 } }, - { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, - { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, + /* 0x0 */ Color_RGBA8 inner; + /* 0x4 */ Color_RGBA8 outer; +} TargetColor; // size = 0x8 + +TargetColor sTargetColorList[ACTORCAT_MAX + 1] = { + { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, // ACTORCAT_SWITCH + { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, // ACTORCAT_BG + { { 255, 255, 255, 255 }, { 0, 0, 255, 0 } }, // ACTORCAT_PLAYER + { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, // ACTORCAT_EXPLOSIVE + { { 150, 150, 255, 255 }, { 150, 150, 255, 0 } }, // ACTORCAT_NPC + { { 255, 255, 0, 255 }, { 200, 155, 0, 0 } }, // ACTORCAT_ENEMY + { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, // ACTORCAT_PROP + { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, // ACTORCAT_ITEMACTION + { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, // ACTORCAT_MISC + { { 255, 255, 0, 255 }, { 200, 155, 0, 0 } }, // ACTORCAT_BOSS + { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, // ACTORCAT_DOOR + { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, // ACTORCAT_CHEST + { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, // extra entry }; // unused @@ -240,143 +246,147 @@ Gfx D_80115FF0[] = { gsSPEndDisplayList(), }; -void func_8002BE64(TargetContext* targetCtx, s32 index, f32 arg2, f32 arg3, f32 arg4) { - targetCtx->arr_50[index].pos.x = arg2; - targetCtx->arr_50[index].pos.y = arg3; - targetCtx->arr_50[index].pos.z = arg4; - targetCtx->arr_50[index].unk_0C = targetCtx->unk_44; +void Target_SetReticlePos(TargetContext* targetCtx, s32 index, f32 x, f32 y, f32 z) { + targetCtx->lockOnReticles[index].pos.x = x; + targetCtx->lockOnReticles[index].pos.y = y; + targetCtx->lockOnReticles[index].pos.z = z; + targetCtx->lockOnReticles[index].radius = targetCtx->reticleRadius; } -void func_8002BE98(TargetContext* targetCtx, s32 actorCategory, PlayState* play) { - TargetContextEntry* entry; - NaviColor* naviColor; +void Target_InitReticle(TargetContext* targetCtx, s32 actorCategory, PlayState* play) { + LockOnReticle* reticle; + TargetColor* reticleColor = &sTargetColorList[actorCategory]; s32 i; - Math_Vec3f_Copy(&targetCtx->targetCenterPos, &play->view.eye); - targetCtx->unk_44 = 500.0f; - targetCtx->unk_48 = 0x100; - - naviColor = &sNaviColorList[actorCategory]; - - entry = &targetCtx->arr_50[0]; - for (i = 0; i < ARRAY_COUNT(targetCtx->arr_50); i++) { - func_8002BE64(targetCtx, i, 0.0f, 0.0f, 0.0f); - entry->color.r = naviColor->inner.r; - entry->color.g = naviColor->inner.g; - entry->color.b = naviColor->inner.b; - entry++; - } -} - -void Actor_SetNaviToActor(TargetContext* targetCtx, Actor* actor, s32 actorCategory, PlayState* play) { - NaviColor* naviColor = &sNaviColorList[actorCategory]; - targetCtx->naviRefPos.x = actor->focus.pos.x; - targetCtx->naviRefPos.y = actor->focus.pos.y + (actor->targetArrowOffset * actor->scale.y); - targetCtx->naviRefPos.z = actor->focus.pos.z; - targetCtx->naviInner.r = naviColor->inner.r; - targetCtx->naviInner.g = naviColor->inner.g; - targetCtx->naviInner.b = naviColor->inner.b; - targetCtx->naviInner.a = naviColor->inner.a; - targetCtx->naviOuter.r = naviColor->outer.r; - targetCtx->naviOuter.g = naviColor->outer.g; - targetCtx->naviOuter.b = naviColor->outer.b; - targetCtx->naviOuter.a = naviColor->outer.a; -} - -void func_8002C0C0(TargetContext* targetCtx, Actor* actor, PlayState* play) { - targetCtx->arrowPointedActor = NULL; - targetCtx->targetedActor = NULL; - targetCtx->unk_40 = 0.0f; - targetCtx->unk_8C = NULL; + Math_Vec3f_Copy(&targetCtx->lockOnPos, &play->view.eye); + targetCtx->reticleRadius = 500.0f; + targetCtx->reticleFadeAlphaControl = 256; + + reticle = &targetCtx->lockOnReticles[0]; + for (i = 0; i < ARRAY_COUNT(targetCtx->lockOnReticles); i++, reticle++) { + Target_SetReticlePos(targetCtx, i, 0.0f, 0.0f, 0.0f); + + reticle->color.r = reticleColor->inner.r; + reticle->color.g = reticleColor->inner.g; + reticle->color.b = reticleColor->inner.b; + } +} + +void Target_SetNaviState(TargetContext* targetCtx, Actor* actor, s32 actorCategory, PlayState* play) { + TargetColor* naviColor = &sTargetColorList[actorCategory]; + + targetCtx->naviPos.x = actor->focus.pos.x; + targetCtx->naviPos.y = actor->focus.pos.y + (actor->targetArrowOffset * actor->scale.y); + targetCtx->naviPos.z = actor->focus.pos.z; + + targetCtx->naviInnerColor.r = naviColor->inner.r; + targetCtx->naviInnerColor.g = naviColor->inner.g; + targetCtx->naviInnerColor.b = naviColor->inner.b; + targetCtx->naviInnerColor.a = naviColor->inner.a; + targetCtx->naviOuterColor.r = naviColor->outer.r; + targetCtx->naviOuterColor.g = naviColor->outer.g; + targetCtx->naviOuterColor.b = naviColor->outer.b; + targetCtx->naviOuterColor.a = naviColor->outer.a; +} + +void Target_Init(TargetContext* targetCtx, Actor* actor, PlayState* play) { + targetCtx->naviHoverActor = NULL; + targetCtx->lockOnActor = NULL; + targetCtx->naviMoveProgressFactor = 0.0f; + targetCtx->forcedTargetActor = NULL; targetCtx->bgmEnemy = NULL; - targetCtx->unk_4B = 0; - targetCtx->unk_4C = 0; - Actor_SetNaviToActor(targetCtx, actor, actor->category, play); - func_8002BE98(targetCtx, actor->category, play); + targetCtx->reticleSpinCounter = 0; + targetCtx->lockOnIndex = 0; + Target_SetNaviState(targetCtx, actor, actor->category, play); + Target_InitReticle(targetCtx, actor->category, play); } -void func_8002C124(TargetContext* targetCtx, PlayState* play) { - Actor* actor = targetCtx->targetedActor; +void Target_Draw(TargetContext* targetCtx, PlayState* play) { + Actor* actor = targetCtx->lockOnActor; OPEN_DISPS(play->state.gfxCtx, "../z_actor.c", 2029); - if (targetCtx->unk_48 != 0) { - TargetContextEntry* entry; + if (targetCtx->reticleFadeAlphaControl != 0) { + LockOnReticle* reticle; Player* player; - s16 spCE; + s16 alpha; f32 temp1; - Vec3f projTargetCenter; - s32 spB8; - f32 projTargetCappedInvW; - s32 spB0; - s32 spAC; - f32 var1; - f32 var2; + Vec3f projectedPos; + s32 totalEntries; + f32 invW; s32 i; + s32 index; + f32 projectdPosScale; + f32 lockOnScaleX; + s32 triangleIndex; player = GET_PLAYER(play); - spCE = 0xFF; - var1 = 1.0f; + alpha = 255; + projectdPosScale = 1.0f; - if (targetCtx->unk_4B != 0) { - spB8 = 1; + if (targetCtx->reticleSpinCounter != 0) { + totalEntries = 1; } else { - spB8 = 3; + // Use multiple reticles for the effect of the reticle quickly zooming in on an actor from off screen + totalEntries = ARRAY_COUNT(targetCtx->lockOnReticles); } if (actor != NULL) { - Math_Vec3f_Copy(&targetCtx->targetCenterPos, &actor->focus.pos); - var1 = (500.0f - targetCtx->unk_44) / 420.0f; + Math_Vec3f_Copy(&targetCtx->lockOnPos, &actor->focus.pos); + projectdPosScale = (500.0f - targetCtx->reticleRadius) / 420.0f; } else { - targetCtx->unk_48 -= 120; - if (targetCtx->unk_48 < 0) { - targetCtx->unk_48 = 0; + targetCtx->reticleFadeAlphaControl -= 120; + if (targetCtx->reticleFadeAlphaControl < 0) { + targetCtx->reticleFadeAlphaControl = 0; } - spCE = targetCtx->unk_48; + alpha = targetCtx->reticleFadeAlphaControl; } - Actor_ProjectPos(play, &targetCtx->targetCenterPos, &projTargetCenter, &projTargetCappedInvW); + Actor_ProjectPos(play, &targetCtx->lockOnPos, &projectedPos, &invW); - projTargetCenter.x = (160 * (projTargetCenter.x * projTargetCappedInvW)) * var1; - projTargetCenter.x = CLAMP(projTargetCenter.x, -320.0f, 320.0f); + projectedPos.x = ((SCREEN_WIDTH / 2) * (projectedPos.x * invW)) * projectdPosScale; + projectedPos.x = CLAMP(projectedPos.x, -SCREEN_WIDTH, SCREEN_WIDTH); - projTargetCenter.y = (120 * (projTargetCenter.y * projTargetCappedInvW)) * var1; - projTargetCenter.y = CLAMP(projTargetCenter.y, -240.0f, 240.0f); + projectedPos.y = ((SCREEN_HEIGHT / 2) * (projectedPos.y * invW)) * projectdPosScale; + projectedPos.y = CLAMP(projectedPos.y, -SCREEN_HEIGHT, SCREEN_HEIGHT); - projTargetCenter.z = projTargetCenter.z * var1; + projectedPos.z *= projectdPosScale; - targetCtx->unk_4C--; - if (targetCtx->unk_4C < 0) { - targetCtx->unk_4C = 2; + targetCtx->lockOnIndex--; + if (targetCtx->lockOnIndex < 0) { + targetCtx->lockOnIndex = ARRAY_COUNT(targetCtx->lockOnReticles) - 1; } - func_8002BE64(targetCtx, targetCtx->unk_4C, projTargetCenter.x, projTargetCenter.y, projTargetCenter.z); + Target_SetReticlePos(targetCtx, targetCtx->lockOnIndex, projectedPos.x, projectedPos.y, projectedPos.z); if (!(player->stateFlags1 & PLAYER_STATE1_6) || (actor != player->unk_664)) { OVERLAY_DISP = Gfx_SetupDL(OVERLAY_DISP, SETUPDL_57); - for (spB0 = 0, spAC = targetCtx->unk_4C; spB0 < spB8; spB0++, spAC = (spAC + 1) % 3) { - entry = &targetCtx->arr_50[spAC]; + for (i = 0, index = targetCtx->lockOnIndex; i < totalEntries; + i++, index = (index + 1) % ARRAY_COUNT(targetCtx->lockOnReticles)) { + reticle = &targetCtx->lockOnReticles[index]; - if (entry->unk_0C < 500.0f) { - if (entry->unk_0C <= 120.0f) { - var2 = 0.15f; + if (reticle->radius < 500.0f) { + if (reticle->radius <= 120.0f) { + lockOnScaleX = 0.15f; } else { - var2 = ((entry->unk_0C - 120.0f) * 0.001f) + 0.15f; + lockOnScaleX = ((reticle->radius - 120.0f) * 0.001f) + 0.15f; } - Matrix_Translate(entry->pos.x, entry->pos.y, 0.0f, MTXMODE_NEW); - Matrix_Scale(var2, 0.15f, 1.0f, MTXMODE_APPLY); + Matrix_Translate(reticle->pos.x, reticle->pos.y, 0.0f, MTXMODE_NEW); + Matrix_Scale(lockOnScaleX, 0.15f, 1.0f, MTXMODE_APPLY); - gDPSetPrimColor(OVERLAY_DISP++, 0, 0, entry->color.r, entry->color.g, entry->color.b, (u8)spCE); + gDPSetPrimColor(OVERLAY_DISP++, 0, 0, reticle->color.r, reticle->color.g, reticle->color.b, + (u8)alpha); - Matrix_RotateZ((targetCtx->unk_4B & 0x7F) * (M_PI / 64), MTXMODE_APPLY); + Matrix_RotateZ((targetCtx->reticleSpinCounter & 0x7F) * (M_PI / 64), MTXMODE_APPLY); - for (i = 0; i < 4; i++) { + // Draw 4 triangles that make up the reticle + for (triangleIndex = 0; triangleIndex < 4; triangleIndex++) { Matrix_RotateZ(M_PI / 2, MTXMODE_APPLY); Matrix_Push(); - Matrix_Translate(entry->unk_0C, entry->unk_0C, 0.0f, MTXMODE_APPLY); + Matrix_Translate(reticle->radius, reticle->radius, 0.0f, MTXMODE_APPLY); gSPMatrix(OVERLAY_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_actor.c", 2116), G_MTX_MODELVIEW | G_MTX_LOAD); gSPDisplayList(OVERLAY_DISP++, gZTargetLockOnTriangleDL); @@ -384,17 +394,17 @@ void func_8002C124(TargetContext* targetCtx, PlayState* play) { } } - spCE -= 0xFF / 3; - if (spCE < 0) { - spCE = 0; + alpha -= 255 / ARRAY_COUNT(targetCtx->lockOnReticles); + if (alpha < 0) { + alpha = 0; } } } } - actor = targetCtx->unk_94; + actor = targetCtx->arrowHoverActor; if ((actor != NULL) && !(actor->flags & ACTOR_FLAG_27)) { - NaviColor* naviColor = &sNaviColorList[actor->category]; + TargetColor* arrowColor = &sTargetColorList[actor->category]; POLY_XLU_DISP = Gfx_SetupDL(POLY_XLU_DISP, SETUPDL_7); @@ -403,7 +413,7 @@ void func_8002C124(TargetContext* targetCtx, PlayState* play) { Matrix_RotateY(BINANG_TO_RAD((u16)(play->gameplayFrames * 3000)), MTXMODE_APPLY); Matrix_Scale((iREG(27) + 35) / 1000.0f, (iREG(28) + 60) / 1000.0f, (iREG(29) + 50) / 1000.0f, MTXMODE_APPLY); - gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, naviColor->inner.r, naviColor->inner.g, naviColor->inner.b, 255); + gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, arrowColor->inner.r, arrowColor->inner.g, arrowColor->inner.b, 255); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_actor.c", 2153), G_MTX_MODELVIEW | G_MTX_LOAD); gSPDisplayList(POLY_XLU_DISP++, gZTargetArrowDL); @@ -412,103 +422,111 @@ void func_8002C124(TargetContext* targetCtx, PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_actor.c", 2158); } -void func_8002C7BC(TargetContext* targetCtx, Player* player, Actor* actorArg, PlayState* play) { +void Target_Update(TargetContext* targetCtx, Player* player, Actor* lockOnActor, PlayState* play) { s32 pad; - Actor* unkActor; + Actor* actor; s32 actorCategory; Vec3f projectedFocusPos; - f32 cappedInvWDest; - f32 temp1; - f32 temp2; - f32 temp3; - f32 temp4; - f32 temp5; - f32 temp6; + f32 invW; + f32 fairyMoveScale; + f32 velocityX; + f32 velocityY; + f32 velocityZ; + f32 lockOnStep; s32 lockOnSfxId; - unkActor = NULL; + actor = NULL; + // If currently not locked on to an actor and not pressing down on the analog stick then try to find a targetable + // actor if ((player->unk_664 != NULL) && (player->unk_84B[player->unk_846] == 2)) { - targetCtx->unk_94 = NULL; + targetCtx->arrowHoverActor = NULL; } else { - func_80032AF0(play, &play->actorCtx, &unkActor, player); - targetCtx->unk_94 = unkActor; + Target_GetTargetActor(play, &play->actorCtx, &actor, player); + targetCtx->arrowHoverActor = actor; } - if (targetCtx->unk_8C != NULL) { - unkActor = targetCtx->unk_8C; - targetCtx->unk_8C = NULL; - } else if (actorArg != NULL) { - unkActor = actorArg; + if (targetCtx->forcedTargetActor != NULL) { + actor = targetCtx->forcedTargetActor; + targetCtx->forcedTargetActor = NULL; + } else if (lockOnActor != NULL) { + actor = lockOnActor; } - if (unkActor != NULL) { - actorCategory = unkActor->category; + if (actor != NULL) { + actorCategory = actor->category; } else { actorCategory = player->actor.category; } - if ((unkActor != targetCtx->arrowPointedActor) || (actorCategory != targetCtx->activeCategory)) { - targetCtx->arrowPointedActor = unkActor; - targetCtx->activeCategory = actorCategory; - targetCtx->unk_40 = 1.0f; + if ((targetCtx->naviHoverActor != actor) || (targetCtx->naviHoverActorCategory != actorCategory)) { + targetCtx->naviHoverActor = actor; + targetCtx->naviHoverActorCategory = actorCategory; + targetCtx->naviMoveProgressFactor = 1.0f; } - if (unkActor == NULL) { - unkActor = &player->actor; + if (actor == NULL) { + actor = &player->actor; } - if (Math_StepToF(&targetCtx->unk_40, 0.0f, 0.25f) == 0) { - temp1 = 0.25f / targetCtx->unk_40; - temp2 = unkActor->world.pos.x - targetCtx->naviRefPos.x; - temp3 = (unkActor->world.pos.y + (unkActor->targetArrowOffset * unkActor->scale.y)) - targetCtx->naviRefPos.y; - temp4 = unkActor->world.pos.z - targetCtx->naviRefPos.z; - targetCtx->naviRefPos.x += temp2 * temp1; - targetCtx->naviRefPos.y += temp3 * temp1; - targetCtx->naviRefPos.z += temp4 * temp1; + if (!Math_StepToF(&targetCtx->naviMoveProgressFactor, 0.0f, 0.25f)) { + fairyMoveScale = 0.25f / targetCtx->naviMoveProgressFactor; + + velocityX = actor->world.pos.x - targetCtx->naviPos.x; + velocityY = (actor->world.pos.y + (actor->targetArrowOffset * actor->scale.y)) - targetCtx->naviPos.y; + velocityZ = actor->world.pos.z - targetCtx->naviPos.z; + + targetCtx->naviPos.x += velocityX * fairyMoveScale; + targetCtx->naviPos.y += velocityY * fairyMoveScale; + targetCtx->naviPos.z += velocityZ * fairyMoveScale; } else { - Actor_SetNaviToActor(targetCtx, unkActor, actorCategory, play); + Target_SetNaviState(targetCtx, actor, actorCategory, play); } - if ((actorArg != NULL) && (targetCtx->unk_4B == 0)) { - Actor_ProjectPos(play, &actorArg->focus.pos, &projectedFocusPos, &cappedInvWDest); - if (((projectedFocusPos.z <= 0.0f) || (1.0f <= fabsf(projectedFocusPos.x * cappedInvWDest))) || - (1.0f <= fabsf(projectedFocusPos.y * cappedInvWDest))) { - actorArg = NULL; + if ((lockOnActor != NULL) && (targetCtx->reticleSpinCounter == 0)) { + Actor_ProjectPos(play, &lockOnActor->focus.pos, &projectedFocusPos, &invW); + if (((projectedFocusPos.z <= 0.0f) || (1.0f <= fabsf(projectedFocusPos.x * invW))) || + (fabsf(projectedFocusPos.y * invW) >= 1.0f)) { + lockOnActor = NULL; } } - if (actorArg != NULL) { - if (actorArg != targetCtx->targetedActor) { - func_8002BE98(targetCtx, actorArg->category, play); - targetCtx->targetedActor = actorArg; + if (lockOnActor != NULL) { + if (lockOnActor != targetCtx->lockOnActor) { + // Lock On entries need to be re-initialized when changing the targeted actor + Target_InitReticle(targetCtx, lockOnActor->category, play); + targetCtx->lockOnActor = lockOnActor; - if (actorArg->id == ACTOR_EN_BOOM) { - targetCtx->unk_48 = 0; + if (lockOnActor->id == ACTOR_EN_BOOM) { + // Don't draw the reticle when locked onto the boomerang + targetCtx->reticleFadeAlphaControl = 0; } - lockOnSfxId = CHECK_FLAG_ALL(actorArg->flags, ACTOR_FLAG_0 | ACTOR_FLAG_2) ? NA_SE_SY_LOCK_ON - : NA_SE_SY_LOCK_ON_HUMAN; + lockOnSfxId = CHECK_FLAG_ALL(lockOnActor->flags, ACTOR_FLAG_0 | ACTOR_FLAG_2) ? NA_SE_SY_LOCK_ON + : NA_SE_SY_LOCK_ON_HUMAN; Sfx_PlaySfxCentered(lockOnSfxId); } - targetCtx->targetCenterPos.x = actorArg->world.pos.x; - targetCtx->targetCenterPos.y = actorArg->world.pos.y - (actorArg->shape.yOffset * actorArg->scale.y); - targetCtx->targetCenterPos.z = actorArg->world.pos.z; + targetCtx->lockOnPos.x = lockOnActor->world.pos.x; + targetCtx->lockOnPos.y = lockOnActor->world.pos.y - (lockOnActor->shape.yOffset * lockOnActor->scale.y); + targetCtx->lockOnPos.z = lockOnActor->world.pos.z; + + if (targetCtx->reticleSpinCounter == 0) { + lockOnStep = (500.0f - targetCtx->reticleRadius) * 3.0f; + lockOnStep = CLAMP(lockOnStep, 30.0f, 100.0f); - if (targetCtx->unk_4B == 0) { - temp5 = (500.0f - targetCtx->unk_44) * 3.0f; - temp6 = (temp5 < 30.0f) ? 30.0f : ((100.0f < temp5) ? 100.0f : temp5); - if (Math_StepToF(&targetCtx->unk_44, 80.0f, temp6) != 0) { - targetCtx->unk_4B++; + if (Math_StepToF(&targetCtx->reticleRadius, 80.0f, lockOnStep)) { + targetCtx->reticleSpinCounter++; } } else { - targetCtx->unk_4B = (targetCtx->unk_4B + 3) | 0x80; - targetCtx->unk_44 = 120.0f; + // 0x80 is or'd to avoid a value of zero. + // This rotation value gets multiplied by 0x200, which multiplied by 0x80 gives a full turn (0x10000) + targetCtx->reticleSpinCounter = (targetCtx->reticleSpinCounter + 3) | 0x80; + targetCtx->reticleRadius = 120.0f; } } else { - targetCtx->targetedActor = NULL; - Math_StepToF(&targetCtx->unk_44, 500.0f, 80.0f); + targetCtx->lockOnActor = NULL; + Math_StepToF(&targetCtx->reticleRadius, 500.0f, 80.0f); } } @@ -808,7 +826,7 @@ void Actor_Init(Actor* actor, PlayState* play) { Actor_SetFocus(actor, 0.0f); Math_Vec3f_Copy(&actor->prevPos, &actor->world.pos); Actor_SetScale(actor, 0.01f); - actor->targetMode = 3; + actor->targetMode = TARGET_MODE_3; actor->minVelocityY = -20.0f; actor->xyzDistToPlayerSq = MAXFLOAT; actor->naviEnemyId = NAVI_ENEMY_NONE; @@ -1482,22 +1500,32 @@ PosRot Actor_GetWorldPosShapeRot(Actor* actor) { return worldPosRot; } -f32 func_8002EFC0(Actor* actor, Player* player, s16 arg2) { - s16 yawTemp = (s16)(actor->yawTowardsPlayer - 0x8000) - arg2; - s16 yawTempAbs = ABS(yawTemp); +/** + * Returns the squared xyz distance from the actor to Player. + * + * This distance will be adjusted smaller if Player is already targeting an actor. The more Player is facing the actor, + * the smaller the distance is adjusted. + */ +f32 Target_GetAdjustedDistSq(Actor* actor, Player* player, s16 playerShapeYaw) { + f32 adjDistSq; + s16 yawDiff; + + // The yaw, with player as the origin, from where player is facing to where the actor is positioned + yawDiff = ABS((s16)((s16)(actor->yawTowardsPlayer - 0x8000) - playerShapeYaw)); if (player->unk_664 != NULL) { - if ((yawTempAbs > 0x4000) || (actor->flags & ACTOR_FLAG_27)) { + if ((yawDiff > 0x4000) || (actor->flags & ACTOR_FLAG_27)) { return MAXFLOAT; - } else { - f32 ret = - actor->xyzDistToPlayerSq - actor->xyzDistToPlayerSq * 0.8f * ((0x4000 - yawTempAbs) * (1.0f / 0x8000)); - - return ret; } + + // Linear scaling, yaw being 90 degrees means it will return the original distance, 0 degree will adjust to 60% + // of the distance + adjDistSq = actor->xyzDistToPlayerSq - actor->xyzDistToPlayerSq * 0.8f * ((0x4000 - yawDiff) * (1.0f / 0x8000)); + + return adjDistSq; } - if (yawTempAbs > 0x2AAA) { + if (yawDiff > 0x2AAA) { return MAXFLOAT; } @@ -1512,33 +1540,50 @@ typedef struct { #define TARGET_RANGE(range, leash) \ { SQ(range), (f32)range / leash } -TargetRangeParams D_80115FF8[] = { - TARGET_RANGE(70, 140), TARGET_RANGE(170, 255), TARGET_RANGE(280, 5600), TARGET_RANGE(350, 525), - TARGET_RANGE(700, 1050), TARGET_RANGE(1000, 1500), TARGET_RANGE(100, 105.36842), TARGET_RANGE(140, 163.33333), - TARGET_RANGE(240, 576), TARGET_RANGE(280, 280000), +TargetRangeParams sTargetRanges[TARGET_MODE_MAX] = { + TARGET_RANGE(70, 140), // TARGET_MODE_0 + TARGET_RANGE(170, 255), // TARGET_MODE_1 + TARGET_RANGE(280, 5600), // TARGET_MODE_2 + TARGET_RANGE(350, 525), // TARGET_MODE_3 + TARGET_RANGE(700, 1050), // TARGET_MODE_4 + TARGET_RANGE(1000, 1500), // TARGET_MODE_5 + TARGET_RANGE(100, 105.36842), // TARGET_MODE_6 + TARGET_RANGE(140, 163.33333), // TARGET_MODE_7 + TARGET_RANGE(240, 576), // TARGET_MODE_8 + TARGET_RANGE(280, 280000), // TARGET_MODE_9 }; -u32 func_8002F090(Actor* actor, f32 arg1) { - return arg1 < D_80115FF8[actor->targetMode].rangeSq; +/** + * Checks if an actor at distance `distSq` is inside the range specified by its targetMode + */ +s32 Target_IsActorInRange(Actor* actor, f32 distSq) { + return distSq < sTargetRanges[actor->targetMode].rangeSq; } -s32 func_8002F0C8(Actor* actor, Player* player, s32 flag) { +/** + * Returns true if the actor is outside the leash distance to player. + * + * Passing true to ignoreLeash avoids the distance and yaw checks, and considers the actor inside the leash distance. + */ +s32 Target_OutsideLeashRange(Actor* actor, Player* player, s32 ignoreLeash) { if ((actor->update == NULL) || !(actor->flags & ACTOR_FLAG_0)) { return true; } - if (!flag) { - s16 var = (s16)(actor->yawTowardsPlayer - 0x8000) - player->actor.shape.rot.y; - s16 abs_var = ABS(var); - f32 dist; + if (!ignoreLeash) { + s16 yawDiff; + f32 distSq; + + // The yaw, with player as the origin, from where player is facing to where the actor is positioned + yawDiff = ABS((s16)((s16)(actor->yawTowardsPlayer - 0x8000) - player->actor.shape.rot.y)); - if ((player->unk_664 == NULL) && (abs_var > 0x2AAA)) { - dist = MAXFLOAT; + if ((player->unk_664 == NULL) && (yawDiff > 0x2AAA)) { + distSq = MAXFLOAT; } else { - dist = actor->xyzDistToPlayerSq; + distSq = actor->xyzDistToPlayerSq; } - return !func_8002F090(actor, D_80115FF8[actor->targetMode].leashScale * dist); + return !Target_IsActorInRange(actor, sTargetRanges[actor->targetMode].leashScale * distSq); } return false; @@ -1574,7 +1619,7 @@ s32 Actor_OfferTalkExchange(Actor* actor, PlayState* play, f32 xzRange, f32 yRan Player* player = GET_PLAYER(play); if ((player->actor.flags & ACTOR_FLAG_TALK) || ((exchangeItemId != EXCH_ITEM_NONE) && Player_InCsMode(play)) || - (!actor->isTargeted && + (!actor->isLockedOn && ((yRange < fabsf(actor->yDistToPlayer)) || (player->targetActorDistance < actor->xzDistToPlayer) || (xzRange < actor->xzDistToPlayer)))) { return false; @@ -2097,7 +2142,7 @@ void Actor_InitContext(PlayState* play, ActorContext* actorCtx, ActorEntry* play actorCtx->absoluteSpace = NULL; Actor_SpawnEntry(actorCtx, playerEntry, play); - func_8002C0C0(&actorCtx->targetCtx, actorCtx->actorLists[ACTORCAT_PLAYER].head, play); + Target_Init(&actorCtx->targetCtx, actorCtx->actorLists[ACTORCAT_PLAYER].head, play); func_8002FA60(play); } @@ -2223,9 +2268,9 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) { if ((DECR(actor->freezeTimer) == 0) && (actor->flags & (ACTOR_FLAG_4 | ACTOR_FLAG_6))) { if (actor == player->unk_664) { - actor->isTargeted = true; + actor->isLockedOn = true; } else { - actor->isTargeted = false; + actor->isLockedOn = false; } if ((actor->targetPriority != 0) && (player->unk_664 == NULL)) { @@ -2260,13 +2305,13 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) { if ((actor == NULL) || (player->unk_66C < 5)) { actor = NULL; - if (actorCtx->targetCtx.unk_4B != 0) { - actorCtx->targetCtx.unk_4B = 0; + if (actorCtx->targetCtx.reticleSpinCounter != 0) { + actorCtx->targetCtx.reticleSpinCounter = 0; Sfx_PlaySfxCentered(NA_SE_SY_LOCK_OFF); } } - func_8002C7BC(&actorCtx->targetCtx, player, actor, play); + Target_Update(&actorCtx->targetCtx, player, actor, play); TitleCard_Update(play, &actorCtx->titleCtx); DynaPoly_UpdateBgActorTransforms(play, &play->colCtx.dyna); } @@ -3010,15 +3055,15 @@ Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play) { Camera_RequestMode(Play_GetCamera(play, Play_GetActiveCamId(play)), CAM_MODE_NORMAL); } - if (actor == actorCtx->targetCtx.arrowPointedActor) { - actorCtx->targetCtx.arrowPointedActor = NULL; + if (actorCtx->targetCtx.naviHoverActor == actor) { + actorCtx->targetCtx.naviHoverActor = NULL; } - if (actor == actorCtx->targetCtx.unk_8C) { - actorCtx->targetCtx.unk_8C = NULL; + if (actorCtx->targetCtx.forcedTargetActor == actor) { + actorCtx->targetCtx.forcedTargetActor = NULL; } - if (actor == actorCtx->targetCtx.bgmEnemy) { + if (actorCtx->targetCtx.bgmEnemy == actor) { actorCtx->targetCtx.bgmEnemy = NULL; } @@ -3043,106 +3088,150 @@ Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play) { return newHead; } -int func_80032880(PlayState* play, Actor* actor) { - s16 sp1E; - s16 sp1C; +int Target_InTargetableScreenRegion(PlayState* play, Actor* actor) { + s16 x; + s16 y; - Actor_GetScreenPos(play, actor, &sp1E, &sp1C); + Actor_GetScreenPos(play, actor, &x, &y); - return (sp1E > -20) && (sp1E < 340) && (sp1C > -160) && (sp1C < 400); + return (x > -20) && (x < SCREEN_WIDTH + 20) && (y > -160) && (y < SCREEN_HEIGHT + 160); } -Actor* D_8015BBE8; -Actor* D_8015BBEC; -f32 D_8015BBF0; -f32 sbgmEnemyDistSq; -s32 D_8015BBF8; -s16 D_8015BBFC; +Actor* sTargetableNearestActor; +Actor* sTargetablePrioritizedActor; +f32 sTargetableNearestActorDistSq; +f32 sBgmEnemyDistSq; +s32 sTargetablePrioritizedPriority; +s16 sTargetPlayerRotY; -void func_800328D4(PlayState* play, ActorContext* actorCtx, Player* player, u32 actorCategory) { - f32 var; +/** + * Search for targetable actors of the `actorCategory` category. + * + * Looks for the actor of said category with higher targetPriority and the one that is nearest to player. This actor + * must be within the range (relative to player) speicified by its targetMode. + * + * The actor must be on-screen + * + * The highest priority actor is stored in `sTargetablePrioritizedActor`, while the nearest actor is stored in + * `sTargetableNearestActor`. The higher priority / smaller distance of those actors are stored in + * `sTargetablePrioritizedPriority` and `sTargetableNearestActorDistSq`. + * + * For an actor to be taken in consideration by this function it needs: + * - Non-NULL update function + * - Not be Player itself. + * - It must be targetable. + * - Not be the already targeted actor. + * - Be withing the range specified by its targetMode. + * - It must be on-screen (within a margin) + * - Must not be blocked by a surface + * + * This function also checks for the nearest enemy actor, which allows determining if enemy background music should be + * played. This actor is stored in `targetCtx.bgmEnemy` and its distance is stored in `sBgmEnemyDistSq` + * + * This function is expected to be called with almost every actor category in each cycle. On a new cycle its global + * variables must be reset by the caller, otherwise the information of the previous cycle will be retained on this one. + */ +void Target_FindTargetableActorForCategory(PlayState* play, ActorContext* actorCtx, Player* player, u32 actorCategory) { + f32 distSq; Actor* actor; - Actor* sp84; + Actor* unk_664; CollisionPoly* sp80; s32 sp7C; Vec3f sp70; actor = actorCtx->actorLists[actorCategory].head; - sp84 = player->unk_664; + unk_664 = player->unk_664; - while (actor != NULL) { - if ((actor->update != NULL) && ((Player*)actor != player) && CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_0)) { + for (; actor != NULL; actor = actor->next) { + if ((actor->update == NULL) || ((Player*)actor == player)) { + continue; + } + + if (!CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_0)) { + continue; + } - // This block below is for determining the closest actor to player in determining the volume - // used while playing enemy background music - if ((actorCategory == ACTORCAT_ENEMY) && CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_0 | ACTOR_FLAG_2) && - (actor->xyzDistToPlayerSq < SQ(500.0f)) && (actor->xyzDistToPlayerSq < sbgmEnemyDistSq)) { + // 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_0 | ACTOR_FLAG_2)) { + if ((actor->xyzDistToPlayerSq < SQ(500.0f)) && (actor->xyzDistToPlayerSq < sBgmEnemyDistSq)) { actorCtx->targetCtx.bgmEnemy = actor; - sbgmEnemyDistSq = actor->xyzDistToPlayerSq; - } - - if (actor != sp84) { - var = func_8002EFC0(actor, player, D_8015BBFC); - if ((var < D_8015BBF0) && func_8002F090(actor, var) && func_80032880(play, actor) && - (!BgCheck_CameraLineTest1(&play->colCtx, &player->actor.focus.pos, &actor->focus.pos, &sp70, &sp80, - 1, 1, 1, 1, &sp7C) || - SurfaceType_IsIgnoredByProjectiles(&play->colCtx, sp80, sp7C))) { - if (actor->targetPriority != 0) { - if (actor->targetPriority < D_8015BBF8) { - D_8015BBEC = actor; - D_8015BBF8 = actor->targetPriority; - } - } else { - D_8015BBE8 = actor; - D_8015BBF0 = var; - } - } + sBgmEnemyDistSq = actor->xyzDistToPlayerSq; } } - actor = actor->next; + if (actor == unk_664) { + continue; + } + + distSq = Target_GetAdjustedDistSq(actor, player, sTargetPlayerRotY); + + if ((distSq < sTargetableNearestActorDistSq) && Target_IsActorInRange(actor, distSq) && + Target_InTargetableScreenRegion(play, actor) && + (!BgCheck_CameraLineTest1(&play->colCtx, &player->actor.focus.pos, &actor->focus.pos, &sp70, &sp80, 1, 1, 1, + 1, &sp7C) || + SurfaceType_IsIgnoredByProjectiles(&play->colCtx, sp80, sp7C))) { + if (actor->targetPriority != 0) { + if (actor->targetPriority < sTargetablePrioritizedPriority) { + sTargetablePrioritizedActor = actor; + sTargetablePrioritizedPriority = actor->targetPriority; + } + } else { + sTargetableNearestActor = actor; + sTargetableNearestActorDistSq = distSq; + } + } } } -u8 D_801160A0[] = { +u8 sTargetableActorCategories[] = { ACTORCAT_BOSS, ACTORCAT_ENEMY, ACTORCAT_BG, ACTORCAT_EXPLOSIVE, ACTORCAT_NPC, ACTORCAT_ITEMACTION, ACTORCAT_CHEST, ACTORCAT_SWITCH, ACTORCAT_PROP, ACTORCAT_MISC, ACTORCAT_DOOR, ACTORCAT_SWITCH, }; -Actor* func_80032AF0(PlayState* play, ActorContext* actorCtx, Actor** actorPtr, Player* player) { +/** + * Search for the nearest targetable actor. + * + * The specific criteria is specified in Target_FindTargetableActorForCategory. + * + * The actor found is stored in the targetableP parameter. It may be NULL if no actor that fulfills the criteria is + * found. + */ +Actor* Target_GetTargetActor(PlayState* play, ActorContext* actorCtx, Actor** targetableP, Player* player) { s32 i; - u8* entry; + u8* actorCategories; - D_8015BBE8 = D_8015BBEC = NULL; - D_8015BBF0 = sbgmEnemyDistSq = MAXFLOAT; - D_8015BBF8 = 0x7FFFFFFF; + sTargetableNearestActor = sTargetablePrioritizedActor = NULL; + sTargetableNearestActorDistSq = sBgmEnemyDistSq = MAXFLOAT; + sTargetablePrioritizedPriority = INT32_MAX; if (!Player_InCsMode(play)) { - entry = &D_801160A0[0]; + actorCategories = sTargetableActorCategories; actorCtx->targetCtx.bgmEnemy = NULL; - D_8015BBFC = player->actor.shape.rot.y; + sTargetPlayerRotY = player->actor.shape.rot.y; + // Try to search for a targetable actor that's a Boss, Enemy or Bg first for (i = 0; i < 3; i++) { - func_800328D4(play, actorCtx, player, *entry); - entry++; + Target_FindTargetableActorForCategory(play, actorCtx, player, *actorCategories); + actorCategories++; } - if (D_8015BBE8 == NULL) { - for (; i < ARRAY_COUNT(D_801160A0); i++) { - func_800328D4(play, actorCtx, player, *entry); - entry++; + // If no actor in the above categories was found then try to search for one in every other category + if (sTargetableNearestActor == NULL) { + for (; i < ARRAY_COUNT(sTargetableActorCategories); i++) { + Target_FindTargetableActorForCategory(play, actorCtx, player, *actorCategories); + actorCategories++; } } } - if (D_8015BBE8 == NULL) { - *actorPtr = D_8015BBEC; + if (sTargetableNearestActor == NULL) { + *targetableP = sTargetablePrioritizedActor; } else { - *actorPtr = D_8015BBE8; + *targetableP = sTargetableNearestActor; } - return *actorPtr; + return *targetableP; } /** @@ -3569,7 +3658,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->stateFlags1 & PLAYER_STATE1_4) && actor->isTargeted) { + if ((player->stateFlags1 & PLAYER_STATE1_4) && actor->isLockedOn) { return true; } else { return false; @@ -3582,7 +3671,7 @@ s32 Actor_IsTargeted(PlayState* play, Actor* actor) { s32 Actor_OtherIsTargeted(PlayState* play, Actor* actor) { Player* player = GET_PLAYER(play); - if ((player->stateFlags1 & PLAYER_STATE1_4) && !actor->isTargeted) { + if ((player->stateFlags1 & PLAYER_STATE1_4) && !actor->isLockedOn) { return true; } else { return false; @@ -5721,7 +5810,7 @@ s32 func_80037D98(PlayState* play, Actor* actor, s16 arg2, s32* arg3) { return false; } - if ((actor->xyzDistToPlayerSq > SQ(160.0f)) && !actor->isTargeted) { + if ((actor->xyzDistToPlayerSq > SQ(160.0f)) && !actor->isLockedOn) { return false; } diff --git a/src/code/z_en_a_keep.c b/src/code/z_en_a_keep.c index 118f0f3d9ad..847e6ee1b28 100644 --- a/src/code/z_en_a_keep.c +++ b/src/code/z_en_a_keep.c @@ -152,7 +152,7 @@ void EnAObj_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, thisx, &sCylinderInit); thisx->colChkInfo.mass = MASS_IMMOVABLE; - thisx->targetMode = 0; + thisx->targetMode = TARGET_MODE_0; break; case A_OBJ_BOULDER_FRAGMENT: thisx->gravity = -1.5f; diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 8f541f8b4f2..306d16df01d 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -3257,7 +3257,7 @@ void Interface_Draw(PlayState* play) { if ((R_PAUSE_BG_PRERENDER_STATE != PAUSE_BG_PRERENDER_PROCESS) && (R_PAUSE_BG_PRERENDER_STATE != PAUSE_BG_PRERENDER_READY)) { - func_8002C124(&play->actorCtx.targetCtx, play); // Draw Z-Target + Target_Draw(&play->actorCtx.targetCtx, play); } Gfx_SetupDL_39Overlay(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c index 3e1df35363f..08e076e3ffb 100644 --- a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c +++ b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c @@ -161,7 +161,7 @@ void BgBdanSwitch_Init(Actor* thisx, PlayState* play) { case YELLOW_TALL_2: BgBdanSwitch_InitCollision(this, play); this->dyna.actor.flags |= ACTOR_FLAG_0; - this->dyna.actor.targetMode = 4; + this->dyna.actor.targetMode = TARGET_MODE_4; break; } diff --git a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c index d59affce0a4..5707af95363 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c +++ b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c @@ -122,7 +122,7 @@ static CollisionCheckInfoInit sColChkInfoInit = { 0, 80, 130, MASS_IMMOVABLE }; static InitChainEntry sInitChain[] = { ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 4, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_4, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c index 4137f799aad..9364a50eebe 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c @@ -54,10 +54,8 @@ static ColliderJntSphInit sJntSphInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 3, ICHAIN_CONTINUE), - ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_3, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c index 00e35a1c231..825e56a6ce1 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c +++ b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c @@ -65,7 +65,7 @@ static ColliderJntSphInit sJntSphInit = { static InitChainEntry sInitChainClasp[] = { ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 3, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, TARGET_MODE_3, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 40, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c index d51acdb08f6..8880336c0a9 100644 --- a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c +++ b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c @@ -42,10 +42,8 @@ ActorInit Bg_Treemouth_InitVars = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), - ICHAIN_VEC3F(scale, 1, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneForward, 8000, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneScale, 300, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_VEC3F(scale, 1, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneForward, 8000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 300, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneDownward, 300, ICHAIN_STOP), }; @@ -143,7 +141,7 @@ void func_808BC8B8(BgTreemouth* this, PlayState* play) { if (Flags_GetEventChkInf(EVENTCHKINF_0C)) { if (Actor_IsFacingAndNearPlayer(&this->dyna.actor, 1658.0f, 0x7530)) { this->dyna.actor.flags |= ACTOR_FLAG_0; - if (this->dyna.actor.isTargeted) { + if (this->dyna.actor.isLockedOn) { this->dyna.actor.flags &= ~ACTOR_FLAG_0; play->csCtx.script = D_808BD2A0; gSaveContext.cutsceneTrigger = 1; diff --git a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c index 630758628a6..65eeed2460d 100644 --- a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c +++ b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c @@ -48,7 +48,7 @@ ActorInit Boss_Dodongo_InitVars = { #include "z_boss_dodongo_data.inc.c" static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_KING_DODONGO, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -3000.0f, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 8200.0f, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c index fea0dcbf046..547d60bd95b 100644 --- a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c +++ b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c @@ -59,7 +59,7 @@ ActorInit Boss_Fd_InitVars = { #include "z_boss_fd_colchk.inc.c" static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_VOLVAGIA, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c index 42c5eb0679d..4a374274992 100644 --- a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c +++ b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c @@ -67,7 +67,7 @@ static Vec3f sHoleLocations[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_VOLVAGIA, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c index 909d50b1316..0f3269e6c67 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -326,7 +326,7 @@ void BossGanon_SetAnimationObject(BossGanon* this, PlayState* play, s32 objectId } static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_GANONDORF, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c index f817bd62a6c..1f6ab06243d 100644 --- a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c +++ b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c @@ -199,7 +199,7 @@ static void* sLimbTex_rgba16_16x32[] = { gPhantomGanonLimbTex_00AA80, gPhantomGa static void* sMouthTex_ci8_16x16[] = { gPhantomGanonMouthTex, gPhantomGanonSmileTex }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_PHANTOM_GANON_PHASE_1, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c index 1dad9bafadb..cfbc0b4fb9a 100644 --- a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c +++ b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c @@ -333,7 +333,7 @@ void BossGoma_ClearPixels(u8* clearPixelTable, s16 i) { } static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_GOHMA, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c index d6378b1225a..09a5b09e75c 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -292,7 +292,7 @@ static s16 sAttackRot[41] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_MORPHA, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c index 1a0c1326eb8..9a6adb5d93b 100644 --- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c +++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c @@ -259,7 +259,7 @@ static AnimationHeader* sHandHangPoses[] = { &gBongoLeftHandHangPoseAnim, &gBong static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_BONGO_BONGO, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 20, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c index 75644f0b48a..4e9ff553860 100644 --- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c +++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c @@ -201,7 +201,7 @@ static Vec3f sTwinrovaPillarPos[] = { static u8 sTwInitialized = false; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c index 99ea011f4b6..7f9dc5e28e1 100644 --- a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c +++ b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c @@ -581,7 +581,7 @@ void BossVa_Init(Actor* thisx, PlayState* play2) { s16 warpId; Actor_SetScale(&this->actor, 0.1f); - this->actor.targetMode = 5; + this->actor.targetMode = TARGET_MODE_5; this->actor.colChkInfo.mass = MASS_IMMOVABLE; switch (this->actor.params) { diff --git a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c index 4434285c334..3e87957afcf 100644 --- a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c +++ b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c @@ -79,7 +79,7 @@ void DoorAna_Init(Actor* thisx, PlayState* play) { } else { DoorAna_SetupAction(this, DoorAna_WaitOpen); } - this->actor.targetMode = 0; + this->actor.targetMode = TARGET_MODE_0; } void DoorAna_Destroy(Actor* thisx, PlayState* play) { @@ -128,7 +128,7 @@ void DoorAna_WaitOpen(DoorAna* this, PlayState* play) { player = GET_PLAYER(play); if (Math_StepToF(&this->actor.scale.x, 0.01f, 0.001f)) { - if ((this->actor.targetMode != 0) && (play->transitionTrigger == TRANS_TRIGGER_OFF) && + if ((this->actor.targetMode != TARGET_MODE_0) && (play->transitionTrigger == TRANS_TRIGGER_OFF) && (player->stateFlags1 & PLAYER_STATE1_31) && (player->av1.actionVar1 == 0)) { destinationIdx = ((this->actor.params >> 0xC) & 7) - 1; Play_SetupRespawnPoint(play, RESPAWN_MODE_RETURN, 0x4FF); @@ -145,9 +145,9 @@ void DoorAna_WaitOpen(DoorAna* this, PlayState* play) { this->actor.xzDistToPlayer <= 15.0f && -50.0f <= this->actor.yDistToPlayer && this->actor.yDistToPlayer <= 15.0f) { player->stateFlags1 |= PLAYER_STATE1_31; - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; } else { - this->actor.targetMode = 0; + this->actor.targetMode = TARGET_MODE_0; } } } diff --git a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c index 9339c56b5c4..9fde45a26dc 100644 --- a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c +++ b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c @@ -148,7 +148,7 @@ void EnAnubice_Init(Actor* thisx, PlayState* play) { this->focusHeightOffset = 0.0f; this->actor.flags &= ~ACTOR_FLAG_0; this->home = this->actor.world.pos; - this->actor.targetMode = 3; + this->actor.targetMode = TARGET_MODE_3; this->actionFunc = EnAnubice_FindFlameCircles; } diff --git a/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c b/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c index c5c43923824..a3f9e869993 100644 --- a/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c +++ b/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c @@ -32,7 +32,7 @@ ActorInit En_Attack_Niw_InitVars = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 1, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_1, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Ba/z_en_ba.c b/src/overlays/actors/ovl_En_Ba/z_en_ba.c index cdbbb60ee57..9203b13b944 100644 --- a/src/overlays/actors/ovl_En_Ba/z_en_ba.c +++ b/src/overlays/actors/ovl_En_Ba/z_en_ba.c @@ -103,7 +103,7 @@ void EnBa_Init(Actor* thisx, PlayState* play) { this->unk_158[i].y = this->actor.world.pos.y - (i + 1) * 32.0f; } - this->actor.targetMode = 4; + this->actor.targetMode = TARGET_MODE_4; this->upperParams = (thisx->params >> 8) & 0xFF; thisx->params &= 0xFF; diff --git a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c index f3ac29088eb..6c65f2cde81 100644 --- a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c +++ b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c @@ -145,7 +145,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(gravity, -1, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_BIGOCTO, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 33, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c b/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c index 37cd13375ae..13f330e3cb5 100644 --- a/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c +++ b/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c @@ -78,7 +78,7 @@ void EnBomBowlMan_Init(Actor* thisx, PlayState* play2) { } this->prizeSelect = (s16)Rand_ZeroFloat(4.99f); - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; this->actionFunc = EnBomBowlMan_SetupWaitAsleep; } diff --git a/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c b/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c index 96c66a79194..78e883ce94a 100644 --- a/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c +++ b/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c @@ -55,7 +55,7 @@ static ColliderJntSphInit sJntSphInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 1000 * BOMBCHU_SCALE, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c index b6ef1afc8e6..8561e8e0aa0 100644 --- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c +++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c @@ -109,7 +109,7 @@ void EnBombf_Init(Actor* thisx, PlayState* play) { thisx->colChkInfo.cylRadius = 10.0f; thisx->colChkInfo.cylHeight = 10; - thisx->targetMode = 0; + thisx->targetMode = TARGET_MODE_0; if (thisx->params == BOMBFLOWER_BODY) { this->timer = 140; diff --git a/src/overlays/actors/ovl_En_Boom/z_en_boom.c b/src/overlays/actors/ovl_En_Boom/z_en_boom.c index 6103793a3f9..3e07e6a19d3 100644 --- a/src/overlays/actors/ovl_En_Boom/z_en_boom.c +++ b/src/overlays/actors/ovl_En_Boom/z_en_boom.c @@ -49,7 +49,7 @@ static ColliderQuadInit sQuadInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_S8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_VEC3S(shape.rot, 0, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Box/z_en_box.c b/src/overlays/actors/ovl_En_Box/z_en_box.c index 0ddd1f5abd7..c3470ee82b1 100644 --- a/src/overlays/actors/ovl_En_Box/z_en_box.c +++ b/src/overlays/actors/ovl_En_Box/z_en_box.c @@ -66,7 +66,7 @@ static AnimationHeader* sAnimations[4] = { &gTreasureChestAnim_00024C, &gTreasur &gTreasureChestAnim_00043C, &gTreasureChestAnim_00043C }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 0, ICHAIN_STOP), + ICHAIN_U8(targetMode, TARGET_MODE_0, ICHAIN_STOP), }; static UNK_TYPE sUnused; diff --git a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c index b3dd3a90460..aeb3adefa13 100644 --- a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c +++ b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c @@ -251,7 +251,7 @@ void EnClearTag_Init(Actor* thisx, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_IT_SWORD_REFLECT_MG); } else { // Initialize the Arwing. this->actor.flags |= ACTOR_FLAG_0; - this->actor.targetMode = 5; + this->actor.targetMode = TARGET_MODE_5; Collider_SetCylinder(play, &this->collider, &this->actor, &sArwingCylinderInit); this->actor.colChkInfo.health = 3; diff --git a/src/overlays/actors/ovl_En_Cow/z_en_cow.c b/src/overlays/actors/ovl_En_Cow/z_en_cow.c index 2c9b8753e97..5e302f2f5ba 100644 --- a/src/overlays/actors/ovl_En_Cow/z_en_cow.c +++ b/src/overlays/actors/ovl_En_Cow/z_en_cow.c @@ -146,7 +146,7 @@ void EnCow_Init(Actor* thisx, PlayState* play) { COW_TYPE_TAIL); this->animationTimer = Rand_ZeroFloat(1000.0f) + 40.0f; this->breathTimer = 0; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; R_EPONAS_SONG_PLAYED = false; break; diff --git a/src/overlays/actors/ovl_En_Cs/z_en_cs.c b/src/overlays/actors/ovl_En_Cs/z_en_cs.c index 8df53cd5fcf..46c384262f0 100644 --- a/src/overlays/actors/ovl_En_Cs/z_en_cs.c +++ b/src/overlays/actors/ovl_En_Cs/z_en_cs.c @@ -143,7 +143,7 @@ void EnCs_Init(Actor* thisx, PlayState* play) { Animation_GetLastFrame(sAnimationInfo[ENCS_ANIM_0].animation), sAnimationInfo[ENCS_ANIM_0].mode, sAnimationInfo[ENCS_ANIM_0].morphFrames); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->path = this->actor.params & 0xFF; this->unk_1EC = 0; // This variable is unused anywhere else this->talkState = 0; diff --git a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c index 711ecafe2b9..f8c2eada07b 100644 --- a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c +++ b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c @@ -189,7 +189,7 @@ void EnDaiku_Init(Actor* thisx, PlayState* play) { Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->currentAnimIndex = -1; this->runSpeed = 5.0f; this->initRot = this->actor.world.rot; diff --git a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c index 0949f4a2402..28083ede198 100644 --- a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c +++ b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c @@ -172,7 +172,7 @@ void EnDaikuKakariko_Init(Actor* thisx, PlayState* play) { this->actor.gravity = 0.0f; this->runSpeed = 3.0f; this->actor.uncullZoneForward = 1200.0f; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->currentAnimIndex = -1; if (this->flags & 0x40) { diff --git a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c index 9d38b020a01..e2c658c4711 100644 --- a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c +++ b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c @@ -249,7 +249,7 @@ void EnDekubaba_Init(Actor* thisx, PlayState* play) { CollisionCheck_SetInfo(&this->actor.colChkInfo, &sBigDekuBabaDamageTable, &sColChkInfoInit); this->actor.colChkInfo.health = 4; this->actor.naviEnemyId = NAVI_ENEMY_BIG_DEKU_BABA; - this->actor.targetMode = 2; + this->actor.targetMode = TARGET_MODE_2; } else { this->size = 1.0f; @@ -263,7 +263,7 @@ void EnDekubaba_Init(Actor* thisx, PlayState* play) { CollisionCheck_SetInfo(&this->actor.colChkInfo, &sDekuBabaDamageTable, &sColChkInfoInit); this->actor.naviEnemyId = NAVI_ENEMY_DEKU_BABA; - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; } EnDekubaba_SetupWait(this); diff --git a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c index 2b7925985e3..b8419443b96 100644 --- a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c +++ b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c @@ -93,7 +93,7 @@ void EnDivingGame_Init(Actor* thisx, PlayState* play) { Actor_Kill(&this->actor); } else { D_809EF0B0 = true; - this->actor.targetMode = 0; + this->actor.targetMode = TARGET_MODE_0; this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->actionFunc = func_809EDCB0; } diff --git a/src/overlays/actors/ovl_En_Dns/z_en_dns.c b/src/overlays/actors/ovl_En_Dns/z_en_dns.c index 8835fa716be..81086ad2c16 100644 --- a/src/overlays/actors/ovl_En_Dns/z_en_dns.c +++ b/src/overlays/actors/ovl_En_Dns/z_en_dns.c @@ -113,7 +113,7 @@ static DnsItemEntry* sItemEntries[] = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_BUSINESS_SCRUB, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; @@ -344,7 +344,7 @@ void EnDns_Idle(EnDns* this, PlayState* play) { if (Actor_TalkOfferAccepted(&this->actor, play)) { this->actionFunc = EnDns_Talk; } else { - if ((this->collider.base.ocFlags1 & OC1_HIT) || this->actor.isTargeted) { + if ((this->collider.base.ocFlags1 & OC1_HIT) || this->actor.isLockedOn) { this->actor.flags |= ACTOR_FLAG_16; } else { this->actor.flags &= ~ACTOR_FLAG_16; diff --git a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c index bdeb85d31e7..d4b277999c2 100644 --- a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c +++ b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c @@ -84,7 +84,7 @@ void EnDntJiji_Init(Actor* thisx, PlayState* play) { osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ デグナッツお面品評会長老 ☆☆☆☆☆ %x\n" VT_RST, this->stage); this->actor.flags &= ~ACTOR_FLAG_0; this->actor.colChkInfo.mass = 0xFF; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->actionFunc = EnDntJiji_SetFlower; this->actor.gravity = -2.0f; } diff --git a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c index 55b860222cf..259b639b12e 100644 --- a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c +++ b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c @@ -308,7 +308,7 @@ void EnDodongo_Init(Actor* thisx, PlayState* play) { EnDodongo* this = (EnDodongo*)thisx; EffectBlureInit1 blureInit; - this->actor.targetMode = 3; + this->actor.targetMode = TARGET_MODE_3; Actor_ProcessInitChain(&this->actor, sInitChain); this->bombSmokePrimColor.r = this->bombSmokePrimColor.g = this->bombSmokeEnvColor.r = 255; this->bombSmokePrimColor.a = this->bombSmokeEnvColor.a = 200; diff --git a/src/overlays/actors/ovl_En_Door/z_en_door.c b/src/overlays/actors/ovl_En_Door/z_en_door.c index 5f04f6159f3..2fb66589758 100644 --- a/src/overlays/actors/ovl_En_Door/z_en_door.c +++ b/src/overlays/actors/ovl_En_Door/z_en_door.c @@ -73,7 +73,7 @@ static EnDoorInfo sDoorInfo[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 0, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_0, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Ds/z_en_ds.c b/src/overlays/actors/ovl_En_Ds/z_en_ds.c index 05c4c1a7833..40682d813ce 100644 --- a/src/overlays/actors/ovl_En_Ds/z_en_ds.c +++ b/src/overlays/actors/ovl_En_Ds/z_en_ds.c @@ -41,7 +41,7 @@ void EnDs_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.013f); this->actionFunc = EnDs_Wait; - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; this->unk_1E8 = 0; this->actor.flags &= ~ACTOR_FLAG_0; this->unk_1E4 = 0.0f; diff --git a/src/overlays/actors/ovl_En_Du/z_en_du.c b/src/overlays/actors/ovl_En_Du/z_en_du.c index ddb77031b91..61c7b0e0963 100644 --- a/src/overlays/actors/ovl_En_Du/z_en_du.c +++ b/src/overlays/actors/ovl_En_Du/z_en_du.c @@ -291,7 +291,7 @@ void EnDu_Init(Actor* thisx, PlayState* play) { } Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENDU_ANIM_0); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; if (gSaveContext.save.cutsceneIndex >= 0xFFF0) { diff --git a/src/overlays/actors/ovl_En_Elf/z_en_elf.c b/src/overlays/actors/ovl_En_Elf/z_en_elf.c index a2bbaf354ca..8e2ec65a339 100644 --- a/src/overlays/actors/ovl_En_Elf/z_en_elf.c +++ b/src/overlays/actors/ovl_En_Elf/z_en_elf.c @@ -838,7 +838,7 @@ void func_80A03CF8(EnElf* this, PlayState* play) { Vec3f nextPos; Vec3f prevPos; Player* player = GET_PLAYER(play); - Actor* arrowPointedActor; + Actor* naviHoverActor; f32 xScale; f32 distFromPlayerHat; @@ -935,11 +935,11 @@ void func_80A03CF8(EnElf* this, PlayState* play) { break; default: func_80A029A8(this, 1); - nextPos = play->actorCtx.targetCtx.naviRefPos; + nextPos = play->actorCtx.targetCtx.naviPos; nextPos.y += (1500.0f * this->actor.scale.y); - arrowPointedActor = play->actorCtx.targetCtx.arrowPointedActor; + naviHoverActor = play->actorCtx.targetCtx.naviHoverActor; - if (arrowPointedActor != NULL) { + if (naviHoverActor != NULL) { func_80A03148(this, &nextPos, 0.0f, 20.0f, 0.2f); if (this->actor.speed >= 5.0f) { @@ -1000,12 +1000,12 @@ void EnElf_ChangeColor(Color_RGBAf* dest, Color_RGBAf* newColor, Color_RGBAf* cu } void func_80A04414(EnElf* this, PlayState* play) { - Actor* arrowPointedActor = play->actorCtx.targetCtx.arrowPointedActor; + Actor* naviHoverActor = play->actorCtx.targetCtx.naviHoverActor; Player* player = GET_PLAYER(play); f32 transitionRate; u16 sfxId; - if (play->actorCtx.targetCtx.unk_40 != 0.0f) { + if (play->actorCtx.targetCtx.naviMoveProgressFactor != 0.0f) { this->unk_2C6 = 0; this->unk_29C = 1.0f; @@ -1015,34 +1015,34 @@ void func_80A04414(EnElf* this, PlayState* play) { } else { if (this->unk_2C6 == 0) { - if ((arrowPointedActor == NULL) || - (Math_Vec3f_DistXYZ(&this->actor.world.pos, &play->actorCtx.targetCtx.naviRefPos) < 50.0f)) { + if ((naviHoverActor == NULL) || + (Math_Vec3f_DistXYZ(&this->actor.world.pos, &play->actorCtx.targetCtx.naviPos) < 50.0f)) { this->unk_2C6 = 1; } } else if (this->unk_29C != 0.0f) { if (Math_StepToF(&this->unk_29C, 0.0f, 0.25f) != 0) { - this->innerColor = play->actorCtx.targetCtx.naviInner; - this->outerColor = play->actorCtx.targetCtx.naviOuter; + this->innerColor = play->actorCtx.targetCtx.naviInnerColor; + this->outerColor = play->actorCtx.targetCtx.naviOuterColor; } else { transitionRate = 0.25f / this->unk_29C; - EnElf_ChangeColor(&this->innerColor, &play->actorCtx.targetCtx.naviInner, &this->innerColor, + EnElf_ChangeColor(&this->innerColor, &play->actorCtx.targetCtx.naviInnerColor, &this->innerColor, transitionRate); - EnElf_ChangeColor(&this->outerColor, &play->actorCtx.targetCtx.naviOuter, &this->outerColor, + EnElf_ChangeColor(&this->outerColor, &play->actorCtx.targetCtx.naviOuterColor, &this->outerColor, transitionRate); } } } if (this->fairyFlags & 1) { - if ((arrowPointedActor == NULL) || (player->unk_664 == NULL)) { + if ((naviHoverActor == NULL) || (player->unk_664 == NULL)) { this->fairyFlags ^= 1; } } else { - if ((arrowPointedActor != NULL) && (player->unk_664 != NULL)) { - if (arrowPointedActor->category == ACTORCAT_NPC) { + if ((naviHoverActor != NULL) && (player->unk_664 != NULL)) { + if (naviHoverActor->category == ACTORCAT_NPC) { sfxId = NA_SE_VO_NAVY_HELLO; } else { - sfxId = (arrowPointedActor->category == ACTORCAT_ENEMY) ? NA_SE_VO_NAVY_ENEMY : NA_SE_VO_NAVY_HEAR; + sfxId = (naviHoverActor->category == ACTORCAT_ENEMY) ? NA_SE_VO_NAVY_ENEMY : NA_SE_VO_NAVY_HEAR; } if (this->unk_2C7 == 0) { @@ -1056,7 +1056,7 @@ void func_80A04414(EnElf* this, PlayState* play) { void func_80A0461C(EnElf* this, PlayState* play) { s32 temp; - Actor* arrowPointedActor; + Actor* naviHoverActor; Player* player = GET_PLAYER(play); if (play->csCtx.state != CS_STATE_IDLE) { @@ -1081,7 +1081,7 @@ void func_80A0461C(EnElf* this, PlayState* play) { } } else { - arrowPointedActor = play->actorCtx.targetCtx.arrowPointedActor; + naviHoverActor = play->actorCtx.targetCtx.naviHoverActor; // `R_SCENE_CAM_TYPE` is not a bit field, but this conditional checks for a specific bit. // This `& 0x10` check will pass for either `SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT`, `SCENE_CAM_TYPE_FIXED`, or @@ -1092,8 +1092,8 @@ void func_80A0461C(EnElf* this, PlayState* play) { ((R_SCENE_CAM_TYPE & 0x10) && Play_CheckViewpoint(play, VIEWPOINT_PIVOT))) { temp = 12; this->unk_2C0 = 100; - } else if (arrowPointedActor == NULL || arrowPointedActor->category == ACTORCAT_NPC) { - if (arrowPointedActor != NULL) { + } else if ((naviHoverActor == NULL) || (naviHoverActor->category == ACTORCAT_NPC)) { + if (naviHoverActor != NULL) { this->unk_2C0 = 100; player->stateFlags2 |= PLAYER_STATE2_20; temp = 0; @@ -1219,20 +1219,20 @@ void func_80A04D90(EnElf* this, PlayState* play) { void func_80A04DE4(EnElf* this, PlayState* play) { Vec3f headCopy; Player* player = GET_PLAYER(play); - Vec3f naviRefPos; + Vec3f targetNaviPos; if (this->fairyFlags & 0x10) { - naviRefPos = play->actorCtx.targetCtx.naviRefPos; + targetNaviPos = play->actorCtx.targetCtx.naviPos; if ((player->unk_664 == NULL) || (&player->actor == player->unk_664) || (&this->actor == player->unk_664)) { - naviRefPos.x = + targetNaviPos.x = player->bodyPartsPos[PLAYER_BODYPART_HEAD].x + (Math_SinS(player->actor.shape.rot.y) * 20.0f); - naviRefPos.y = player->bodyPartsPos[PLAYER_BODYPART_HEAD].y + 5.0f; - naviRefPos.z = + targetNaviPos.y = player->bodyPartsPos[PLAYER_BODYPART_HEAD].y + 5.0f; + targetNaviPos.z = player->bodyPartsPos[PLAYER_BODYPART_HEAD].z + (Math_CosS(player->actor.shape.rot.y) * 20.0f); } - this->actor.focus.pos = naviRefPos; + this->actor.focus.pos = targetNaviPos; this->fairyFlags &= ~0x10; } diff --git a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c index 76f880f190a..509407c7109 100644 --- a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c +++ b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c @@ -112,7 +112,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_VEC3F_DIV1000(scale, 5, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -500, ICHAIN_CONTINUE), - ICHAIN_F32(minVelocityY, -4, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_F32(minVelocityY, -4, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 4000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Fr/z_en_fr.c b/src/overlays/actors/ovl_En_Fr/z_en_fr.c index 0b3bc3968af..17188ad33da 100644 --- a/src/overlays/actors/ovl_En_Fr/z_en_fr.c +++ b/src/overlays/actors/ovl_En_Fr/z_en_fr.c @@ -168,7 +168,7 @@ static s16 sTimerFrogSong[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/src/overlays/actors/ovl_En_Fu/z_en_fu.c index 9579e1f4171..fda428144d0 100644 --- a/src/overlays/actors/ovl_En_Fu/z_en_fu.c +++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.c @@ -92,7 +92,7 @@ void EnFu_Init(Actor* thisx, PlayState* play) { this->skelanime.playSpeed = 2.0f; } this->behaviorFlags = 0; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; } void EnFu_Destroy(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Fz/z_en_fz.c b/src/overlays/actors/ovl_En_Fz/z_en_fz.c index eaf1af7d590..142dc3e2e11 100644 --- a/src/overlays/actors/ovl_En_Fz/z_en_fz.c +++ b/src/overlays/actors/ovl_En_Fz/z_en_fz.c @@ -151,7 +151,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_FREEZARD, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Gb/z_en_gb.c b/src/overlays/actors/ovl_En_Gb/z_en_gb.c index 6ad3d48e524..485b9cb558f 100644 --- a/src/overlays/actors/ovl_En_Gb/z_en_gb.c +++ b/src/overlays/actors/ovl_En_Gb/z_en_gb.c @@ -121,7 +121,7 @@ static ColliderCylinderInitType1 sBottlesCylindersInit[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 6, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_6, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 2200, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c index 8d35a171c89..afcd239e706 100644 --- a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c +++ b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c @@ -98,7 +98,7 @@ void EnGe1_Init(Actor* thisx, PlayState* play) { this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->animation = &gGerudoWhiteIdleAnim; this->animFunc = EnGe1_CueUpAnimation; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; Actor_SetScale(&this->actor, 0.01f); this->actor.uncullZoneForward = ((play->sceneId == SCENE_GERUDO_VALLEY) ? 1000.0f : 1200.0f); @@ -146,7 +146,7 @@ void EnGe1_Init(Actor* thisx, PlayState* play) { Actor_Kill(&this->actor); return; } - this->actor.targetMode = 3; + this->actor.targetMode = TARGET_MODE_3; this->hairstyle = GE1_HAIR_BOB; // "Horseback archery Gerudo EVENT_INF(0) =" osSyncPrintf(VT_FGCOL(CYAN) "やぶさめ ゲルド EVENT_INF(0) = %x\n" VT_RST, gSaveContext.eventInf[0]); diff --git a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c index 91410c1a219..dbbd98ed874 100644 --- a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c +++ b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c @@ -138,21 +138,21 @@ void EnGe2_Init(Actor* thisx, PlayState* play) { EnGe2_ChangeAction(this, GE2_ACTION_WALK); if (EnGe2_CheckCarpentersFreed()) { this->actor.update = EnGe2_UpdateFriendly; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; } break; case GE2_TYPE_STATIONARY: EnGe2_ChangeAction(this, GE2_ACTION_STAND); if (EnGe2_CheckCarpentersFreed()) { this->actor.update = EnGe2_UpdateFriendly; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; } break; case GE2_TYPE_GERUDO_CARD_GIVER: EnGe2_ChangeAction(this, GE2_ACTION_WAITLOOKATPLAYER); this->actor.update = EnGe2_UpdateAfterTalk; this->actionFunc = EnGe2_ForceTalk; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; break; default: ASSERT(0, "0", "../z_en_ge2.c", 418); @@ -594,7 +594,7 @@ void EnGe2_Update(Actor* thisx, PlayState* play) { if (EnGe2_CheckCarpentersFreed() && !(this->stateFlags & GE2_STATE_KO)) { this->actor.update = EnGe2_UpdateFriendly; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; } } @@ -619,7 +619,7 @@ void EnGe2_UpdateStunned(Actor* thisx, PlayState* play2) { if (EnGe2_CheckCarpentersFreed()) { this->actor.update = EnGe2_UpdateFriendly; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->actor.colorFilterTimer = 0; } else if (this->actor.colorFilterTimer == 0) { this->actor.update = EnGe2_Update; diff --git a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c index 0f3e0d480e3..428831c0696 100644 --- a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c +++ b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c @@ -80,7 +80,7 @@ void EnGe3_Init(Actor* thisx, PlayState* play2) { EnGe3_ChangeAction(this, 0); this->actionFunc = EnGe3_ForceTalk; this->unk_30C = 0; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->actor.minVelocityY = -4.0f; this->actor.gravity = -1.0f; } diff --git a/src/overlays/actors/ovl_En_Gm/z_en_gm.c b/src/overlays/actors/ovl_En_Gm/z_en_gm.c index ec0821cf7da..fd6f64d9f68 100644 --- a/src/overlays/actors/ovl_En_Gm/z_en_gm.c +++ b/src/overlays/actors/ovl_En_Gm/z_en_gm.c @@ -58,7 +58,7 @@ static ColliderCylinderInitType1 sCylinderInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c index 529e7de4aed..0fc5a4a82e0 100644 --- a/src/overlays/actors/ovl_En_Go/z_en_go.c +++ b/src/overlays/actors/ovl_En_Go/z_en_go.c @@ -642,7 +642,7 @@ void EnGo_Init(Actor* thisx, PlayState* play) { } EnGo_ChangeAnim(this, ENGO_ANIM_0); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->actor.gravity = -1.0f; @@ -676,7 +676,7 @@ void EnGo_Init(Actor* thisx, PlayState* play) { EnGo_SetupAction(this, func_80A3FEB4); break; case 0x90: - this->actor.targetMode = 5; + this->actor.targetMode = TARGET_MODE_5; Actor_SetScale(&this->actor, 0.16f); EnGo_SetupAction(this, EnGo_CurledUp); break; diff --git a/src/overlays/actors/ovl_En_Go2/z_en_go2.c b/src/overlays/actors/ovl_En_Go2/z_en_go2.c index 51e8dcbb142..d56c60aead2 100644 --- a/src/overlays/actors/ovl_En_Go2/z_en_go2.c +++ b/src/overlays/actors/ovl_En_Go2/z_en_go2.c @@ -115,10 +115,13 @@ static EnGo2DataStruct1 D_80A4816C[14] = { }; static EnGo2DataStruct2 D_80A481F8[14] = { - { 30.0f, 0.026f, 6, 60.0f }, { 24.0f, 0.008f, 6, 30.0f }, { 28.0f, 0.16f, 5, 380.0f }, { 28.0f, 0.01f, 7, 40.0f }, - { 30.0f, 0.015f, 6, 30.0f }, { 28.0f, 0.01f, 6, 30.0f }, { 28.0f, 0.01f, 6, 30.0f }, { 28.0f, 0.01f, 6, 30.0f }, - { 28.0f, 0.01f, 6, 30.0f }, { 28.0f, 0.01f, 6, 30.0f }, { 28.0f, 0.01f, 6, 30.0f }, { 28.0f, 0.01f, 6, 30.0f }, - { 28.0f, 0.01f, 6, 30.0f }, { 28.0f, 0.01f, 6, 30.0f }, + { 30.0f, 0.026f, TARGET_MODE_6, 60.0f }, { 24.0f, 0.008f, TARGET_MODE_6, 30.0f }, + { 28.0f, 0.16f, TARGET_MODE_5, 380.0f }, { 28.0f, 0.01f, TARGET_MODE_7, 40.0f }, + { 30.0f, 0.015f, TARGET_MODE_6, 30.0f }, { 28.0f, 0.01f, TARGET_MODE_6, 30.0f }, + { 28.0f, 0.01f, TARGET_MODE_6, 30.0f }, { 28.0f, 0.01f, TARGET_MODE_6, 30.0f }, + { 28.0f, 0.01f, TARGET_MODE_6, 30.0f }, { 28.0f, 0.01f, TARGET_MODE_6, 30.0f }, + { 28.0f, 0.01f, TARGET_MODE_6, 30.0f }, { 28.0f, 0.01f, TARGET_MODE_6, 30.0f }, + { 28.0f, 0.01f, TARGET_MODE_6, 30.0f }, { 28.0f, 0.01f, TARGET_MODE_6, 30.0f }, }; static f32 sPlayerTrackingYOffsets[14][2] = { @@ -851,7 +854,7 @@ void EnGo2_SetShape(EnGo2* this) { this->actor.shape.shadowScale = D_80A481F8[index].shape_unk_10; Actor_SetScale(&this->actor, D_80A481F8[index].scale); - this->actor.targetMode = D_80A481F8[index].actor_unk_1F; + this->actor.targetMode = D_80A481F8[index].targetMode; this->interactRange = D_80A481F8[index].interactRange; this->interactRange += this->collider.dim.radius; } diff --git a/src/overlays/actors/ovl_En_Go2/z_en_go2.h b/src/overlays/actors/ovl_En_Go2/z_en_go2.h index e1528413664..1ba6d770869 100644 --- a/src/overlays/actors/ovl_En_Go2/z_en_go2.h +++ b/src/overlays/actors/ovl_En_Go2/z_en_go2.h @@ -52,7 +52,7 @@ typedef struct { typedef struct { f32 shape_unk_10; f32 scale; - s8 actor_unk_1F; + s8 targetMode; f32 interactRange; } EnGo2DataStruct2; // size = 0x10 diff --git a/src/overlays/actors/ovl_En_Goma/z_en_goma.c b/src/overlays/actors/ovl_En_Goma/z_en_goma.c index 813bfa582c5..4130591a2e1 100644 --- a/src/overlays/actors/ovl_En_Goma/z_en_goma.c +++ b/src/overlays/actors/ovl_En_Goma/z_en_goma.c @@ -98,7 +98,7 @@ static u8 sSpawnNum = 0; static Vec3f sDeadEffectVel = { 0.0f, 0.0f, 0.0f }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 3, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_3, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_GOHMA_LARVA, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 20, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_En_Gs/z_en_gs.c b/src/overlays/actors/ovl_En_Gs/z_en_gs.c index 5068760a8b4..c638d0c2fdf 100644 --- a/src/overlays/actors/ovl_En_Gs/z_en_gs.c +++ b/src/overlays/actors/ovl_En_Gs/z_en_gs.c @@ -102,7 +102,7 @@ void EnGs_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, thisx, &sCylinderInit); CollisionCheck_SetInfo2(&thisx->colChkInfo, &sDamageTable, &sColChkInfoInit); - thisx->targetMode = 6; + thisx->targetMode = TARGET_MODE_6; this->unk_1D8 = thisx->world.pos; this->actionFunc = func_80A4F734; this->unk_1B4[0].x = 1.0f; diff --git a/src/overlays/actors/ovl_En_Guest/z_en_guest.c b/src/overlays/actors/ovl_En_Guest/z_en_guest.c index 0e6d7496922..568a6c2b178 100644 --- a/src/overlays/actors/ovl_En_Guest/z_en_guest.c +++ b/src/overlays/actors/ovl_En_Guest/z_en_guest.c @@ -45,7 +45,7 @@ static ColliderCylinderInitType1 sCylinderInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 6, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_6, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 500, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c index bd48316563a..625436b8305 100644 --- a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c +++ b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c @@ -126,7 +126,7 @@ void EnHeishi2_Init(Actor* thisx, PlayState* play) { this->collider.dim.yShift = 0; this->collider.dim.radius = 15; this->collider.dim.height = 70; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; switch (this->type) { diff --git a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c index c2df806634d..89c17d4881a 100644 --- a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c +++ b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c @@ -73,7 +73,7 @@ void EnHeishi3_Init(Actor* thisx, PlayState* play) { ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f); SkelAnime_Init(play, &this->skelAnime, &gEnHeishiSkel, &gEnHeishiIdleAnim, this->jointTable, this->morphTable, 17); this->actor.colChkInfo.mass = MASS_IMMOVABLE; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); // "Castle Gate Soldier - Power Up" diff --git a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c index 5f1713993a2..12fa565fc5b 100644 --- a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c +++ b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c @@ -62,7 +62,7 @@ void EnHeishi4_Init(Actor* thisx, PlayState* play) { this->type = thisx->params & 0xFF; thisx->colChkInfo.mass = MASS_IMMOVABLE; this->pos = thisx->world.pos; - thisx->targetMode = 6; + thisx->targetMode = TARGET_MODE_6; if (this->type == HEISHI4_AT_MARKET_DYING) { this->height = 30.0f; ActorShape_Init(&thisx->shape, 0.0f, NULL, 30.0f); diff --git a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c index a65a8e7312f..1978465ed95 100644 --- a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c +++ b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c @@ -323,7 +323,7 @@ void EnHintnuts_BeginFreeze(EnHintnuts* this, PlayState* play) { void EnHintnuts_CheckProximity(EnHintnuts* this, PlayState* play) { if (this->actor.category != ACTORCAT_ENEMY) { - if ((this->collider.base.ocFlags1 & OC1_HIT) || this->actor.isTargeted) { + if ((this->collider.base.ocFlags1 & OC1_HIT) || this->actor.isLockedOn) { this->actor.flags |= ACTOR_FLAG_16; } else { this->actor.flags &= ~ACTOR_FLAG_16; diff --git a/src/overlays/actors/ovl_En_Hs/z_en_hs.c b/src/overlays/actors/ovl_En_Hs/z_en_hs.c index 681ea2b5584..d081e029db2 100644 --- a/src/overlays/actors/ovl_En_Hs/z_en_hs.c +++ b/src/overlays/actors/ovl_En_Hs/z_en_hs.c @@ -89,7 +89,7 @@ void EnHs_Init(Actor* thisx, PlayState* play) { } this->unk_2A8 = 0; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; } void EnHs_Destroy(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c index 27e8ee2d33c..1fb03390a9a 100644 --- a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c +++ b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c @@ -63,7 +63,7 @@ void EnHs2_Init(Actor* thisx, PlayState* play) { osSyncPrintf(VT_FGCOL(CYAN) " ヒヨコの店(子人の時) \n" VT_RST); this->actionFunc = func_80A6F1A4; this->unk_2A8 = 0; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; } void EnHs2_Destroy(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Hy/z_en_hy.c b/src/overlays/actors/ovl_En_Hy/z_en_hy.c index c7fc4275705..2fdf4df1964 100644 --- a/src/overlays/actors/ovl_En_Hy/z_en_hy.c +++ b/src/overlays/actors/ovl_En_Hy/z_en_hy.c @@ -328,27 +328,27 @@ typedef struct { } EnHyInit2Info; // size = 0x1C static EnHyInit2Info sInit2Info[] = { - /* ENHY_TYPE_AOB */ { 36.0f, { 0.0f, 0.0f, 600.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_COB */ { 40.0f, { -100.0f, 0.0f, 400.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_AHG_2 */ { 22.0f, { 0.0f, 0.0f, -200.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_BOJ_3 */ { 20.0f, { -100.0f, 0.0f, 0.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_AHG_4 */ { 22.0f, { 0.0f, 0.0f, 0.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_BOJ_5 */ { 21.0f, { 0.0f, 0.0f, 0.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_BBA */ { 25.0f, { -100.0f, 0.0f, 600.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_BJI_7 */ { 28.0f, { -100.0f, 0.0f, 800.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_CNE_8 */ { 17.0f, { 0.0f, 0.0f, 700.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_BOJ_9 */ { 18.0f, { 0.0f, 0.0f, 100.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_BOJ_10 */ { 18.0f, { 0.0f, 0.0f, -200.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_CNE_11 */ { 17.0f, { 0.0f, 0.0f, 700.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_BOJ_12 */ { 21.0f, { 0.0f, 0.0f, -300.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_AHG_13 */ { 20.0f, { 0.0f, 0.0f, -200.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_BOJ_14 */ { 18.0f, { -200.0f, 0.0f, -200.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_BJI_15 */ { 27.0f, { -100.0f, 0.0f, 800.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_BOJ_16 */ { 19.0f, { 400.0f, 0.0f, 0.0f }, 0.01f, 0x04, 30.0f }, - /* ENHY_TYPE_AHG_17 */ { 19.0f, { 400.0f, 0.0f, 0.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_BOB_18 */ { 40.0f, { -100.0f, 0.0f, 400.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_BJI_19 */ { 17.0f, { 0.0f, 0.0f, 700.0f }, 0.01f, 0x06, 30.0f }, - /* ENHY_TYPE_AHG_20 */ { 20.0f, { 0.0f, 0.0f, -200.0f }, 0.01f, 0x06, 30.0f }, + /* ENHY_TYPE_AOB */ { 36.0f, { 0.0f, 0.0f, 600.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_COB */ { 40.0f, { -100.0f, 0.0f, 400.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_AHG_2 */ { 22.0f, { 0.0f, 0.0f, -200.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_BOJ_3 */ { 20.0f, { -100.0f, 0.0f, 0.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_AHG_4 */ { 22.0f, { 0.0f, 0.0f, 0.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_BOJ_5 */ { 21.0f, { 0.0f, 0.0f, 0.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_BBA */ { 25.0f, { -100.0f, 0.0f, 600.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_BJI_7 */ { 28.0f, { -100.0f, 0.0f, 800.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_CNE_8 */ { 17.0f, { 0.0f, 0.0f, 700.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_BOJ_9 */ { 18.0f, { 0.0f, 0.0f, 100.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_BOJ_10 */ { 18.0f, { 0.0f, 0.0f, -200.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_CNE_11 */ { 17.0f, { 0.0f, 0.0f, 700.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_BOJ_12 */ { 21.0f, { 0.0f, 0.0f, -300.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_AHG_13 */ { 20.0f, { 0.0f, 0.0f, -200.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_BOJ_14 */ { 18.0f, { -200.0f, 0.0f, -200.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_BJI_15 */ { 27.0f, { -100.0f, 0.0f, 800.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_BOJ_16 */ { 19.0f, { 400.0f, 0.0f, 0.0f }, 0.01f, TARGET_MODE_4, 30.0f }, + /* ENHY_TYPE_AHG_17 */ { 19.0f, { 400.0f, 0.0f, 0.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_BOB_18 */ { 40.0f, { -100.0f, 0.0f, 400.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_BJI_19 */ { 17.0f, { 0.0f, 0.0f, 700.0f }, 0.01f, TARGET_MODE_6, 30.0f }, + /* ENHY_TYPE_AHG_20 */ { 20.0f, { 0.0f, 0.0f, -200.0f }, 0.01f, TARGET_MODE_6, 30.0f }, }; s32 EnHy_FindSkelAndHeadObjects(EnHy* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c index 767be3ef1af..681075b93ab 100644 --- a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c +++ b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c @@ -77,10 +77,8 @@ static ColliderCylinderInit sCylinderInitDroppedFlame = { }; static InitChainEntry sInitChainCapturableFlame[] = { - ICHAIN_U8(targetMode, 0, ICHAIN_CONTINUE), - ICHAIN_F32(targetArrowOffset, 60, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 60, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_In/z_en_in.c b/src/overlays/actors/ovl_En_In/z_en_in.c index 5052ea98944..1ab73a6529d 100644 --- a/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/src/overlays/actors/ovl_En_In/z_en_in.c @@ -520,7 +520,7 @@ void EnIn_WaitForObject(EnIn* this, PlayState* play) { return; } Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->actionFunc = func_80A7A4BC; @@ -579,7 +579,7 @@ void EnIn_WaitForObject(EnIn* this, PlayState* play) { gSaveContext.eventInf[EVENTINF_HORSES_INDEX] = 0; break; case EVENTINF_HORSES_STATE_1: - this->actor.targetMode = 3; + this->actor.targetMode = TARGET_MODE_3; EnIn_ChangeAnim(this, ENIN_ANIM_2); this->actionFunc = func_80A7A568; Interface_SetTimer(60); @@ -595,7 +595,7 @@ void EnIn_WaitForObject(EnIn* this, PlayState* play) { break; case EVENTINF_HORSES_STATE_5: case EVENTINF_HORSES_STATE_6: - this->actor.targetMode = 3; + this->actor.targetMode = TARGET_MODE_3; EnIn_ChangeAnim(this, ENIN_ANIM_6); this->unk_1EC = 8; this->actionFunc = func_80A7AA40; @@ -940,7 +940,7 @@ void EnIn_Update(Actor* thisx, PlayState* play) { if (Actor_TalkOfferAccepted(&this->actor, play)) {} } else { Npc_UpdateTalking(play, &this->actor, &this->interactInfo.talkState, - ((this->actor.targetMode == 6) ? 80.0f : 320.0f) + this->collider.dim.radius, + ((this->actor.targetMode == TARGET_MODE_6) ? 80.0f : 320.0f) + this->collider.dim.radius, EnIn_GetTextId, EnIn_UpdateTalkState); if (this->interactInfo.talkState != NPC_TALK_STATE_IDLE) { this->unk_1FA = this->unk_1F8; diff --git a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c index a4b691936fd..3dd13d45c2d 100644 --- a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c +++ b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c @@ -69,7 +69,7 @@ void EnKakasi_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; SkelAnime_InitFlex(play, &this->skelanime, &object_ka_Skel_0065B0, &object_ka_Anim_000214, NULL, NULL, 0); this->rot = this->actor.world.rot; diff --git a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c index d7c15346e4b..b84886da925 100644 --- a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c +++ b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c @@ -69,7 +69,7 @@ void EnKakasi2_Init(Actor* thisx, PlayState* play) { if (this->switchFlag == 0x3F) { this->switchFlag = -1; } - this->actor.targetMode = 4; + this->actor.targetMode = TARGET_MODE_4; this->maxSpawnDistance.x = (spawnRangeY * 40.0f) + 40.0f; this->maxSpawnDistance.y = (spawnRangeXZ * 40.0f) + 40.0f; diff --git a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c index 0c2e50df624..de65e596368 100644 --- a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c +++ b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c @@ -71,7 +71,7 @@ void EnKakasi3_Init(Actor* thisx, PlayState* play) { osSyncPrintf("\n\n"); // "Obonur" -- Related to the name of the scarecrow (Bonooru) osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ おーボヌール ☆☆☆☆☆ \n" VT_RST); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); diff --git a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c index 273c0f52d62..53d273d7f24 100644 --- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c +++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c @@ -209,7 +209,7 @@ void EnKanban_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.01f); if (this->actor.params != ENKANBAN_PIECE) { - this->actor.targetMode = 0; + this->actor.targetMode = TARGET_MODE_0; this->actor.flags |= ACTOR_FLAG_0; Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); diff --git a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c index 2569c2cd370..a8044201799 100644 --- a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c +++ b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c @@ -85,7 +85,7 @@ static CollisionCheckInfoInit sColCheckInfoInit = { 1, 15, 80, MASS_HEAVY }; static InitChainEntry sInitChain[] = { ICHAIN_F32(targetArrowOffset, 2500, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 1, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_1, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, NAVI_ENEMY_WITHERED_DEKU_BABA, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Ko/z_en_ko.c b/src/overlays/actors/ovl_En_Ko/z_en_ko.c index 83720cf915d..1e4cd7c95a1 100644 --- a/src/overlays/actors/ovl_En_Ko/z_en_ko.c +++ b/src/overlays/actors/ovl_En_Ko/z_en_ko.c @@ -239,19 +239,19 @@ typedef struct { } EnKoInteractInfo; // size = 0xC static EnKoInteractInfo sInteractInfo[] = { - /* ENKO_TYPE_CHILD_0 */ { 6, 30.0f, 180.0f }, - /* ENKO_TYPE_CHILD_1 */ { 6, 30.0f, 180.0f }, - /* ENKO_TYPE_CHILD_2 */ { 6, 30.0f, 180.0f }, - /* ENKO_TYPE_CHILD_3 */ { 6, 30.0f, 180.0f }, - /* ENKO_TYPE_CHILD_4 */ { 6, 30.0f, 180.0f }, - /* ENKO_TYPE_CHILD_5 */ { 1, 30.0f, 240.0f }, - /* ENKO_TYPE_CHILD_6 */ { 6, 30.0f, 180.0f }, - /* ENKO_TYPE_CHILD_7 */ { 6, 30.0f, 180.0f }, - /* ENKO_TYPE_CHILD_8 */ { 6, 30.0f, 180.0f }, - /* ENKO_TYPE_CHILD_9 */ { 6, 30.0f, 180.0f }, - /* ENKO_TYPE_CHILD_10 */ { 6, 30.0f, 180.0f }, - /* ENKO_TYPE_CHILD_11 */ { 6, 30.0f, 180.0f }, - /* ENKO_TYPE_CHILD_FADO */ { 6, 30.0f, 180.0f }, + /* ENKO_TYPE_CHILD_0 */ { TARGET_MODE_6, 30.0f, 180.0f }, + /* ENKO_TYPE_CHILD_1 */ { TARGET_MODE_6, 30.0f, 180.0f }, + /* ENKO_TYPE_CHILD_2 */ { TARGET_MODE_6, 30.0f, 180.0f }, + /* ENKO_TYPE_CHILD_3 */ { TARGET_MODE_6, 30.0f, 180.0f }, + /* ENKO_TYPE_CHILD_4 */ { TARGET_MODE_6, 30.0f, 180.0f }, + /* ENKO_TYPE_CHILD_5 */ { TARGET_MODE_1, 30.0f, 240.0f }, + /* ENKO_TYPE_CHILD_6 */ { TARGET_MODE_6, 30.0f, 180.0f }, + /* ENKO_TYPE_CHILD_7 */ { TARGET_MODE_6, 30.0f, 180.0f }, + /* ENKO_TYPE_CHILD_8 */ { TARGET_MODE_6, 30.0f, 180.0f }, + /* ENKO_TYPE_CHILD_9 */ { TARGET_MODE_6, 30.0f, 180.0f }, + /* ENKO_TYPE_CHILD_10 */ { TARGET_MODE_6, 30.0f, 180.0f }, + /* ENKO_TYPE_CHILD_11 */ { TARGET_MODE_6, 30.0f, 180.0f }, + /* ENKO_TYPE_CHILD_FADO */ { TARGET_MODE_6, 30.0f, 180.0f }, }; s32 EnKo_AreObjectsAvailable(EnKo* this, PlayState* play) { @@ -1250,7 +1250,7 @@ void func_80A995CC(EnKo* this, PlayState* play) { this->actor.world.pos.z += 80.0f * Math_CosS(homeYawToPlayer); this->actor.shape.rot.y = this->actor.world.rot.y = this->actor.yawTowardsPlayer; - if (this->interactInfo.talkState == NPC_TALK_STATE_IDLE || !this->actor.isTargeted) { + if (this->interactInfo.talkState == NPC_TALK_STATE_IDLE || !this->actor.isLockedOn) { temp_f2 = fabsf((f32)this->actor.yawTowardsPlayer - homeYawToPlayer) * 0.001f * 3.0f; if (temp_f2 < 1.0f) { this->skelAnime.playSpeed = 1.0f; diff --git a/src/overlays/actors/ovl_En_Kz/z_en_kz.c b/src/overlays/actors/ovl_En_Kz/z_en_kz.c index 1ebc9d0f37d..791f66506a7 100644 --- a/src/overlays/actors/ovl_En_Kz/z_en_kz.c +++ b/src/overlays/actors/ovl_En_Kz/z_en_kz.c @@ -332,7 +332,7 @@ void EnKz_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &sColChkInfoInit); Actor_SetScale(&this->actor, 0.01); - this->actor.targetMode = 3; + this->actor.targetMode = TARGET_MODE_3; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; Animation_ChangeByInfo(&this->skelanime, sAnimationInfo, ENKZ_ANIM_0); diff --git a/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c b/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c index f89e7dc765f..4e1e0548c66 100644 --- a/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c +++ b/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c @@ -53,7 +53,7 @@ void EnLightbox_Init(Actor* thisx, PlayState* play) { ActorShape_Init(&thisx->shape, 0.0f, ActorShadow_DrawCircle, 6.0f); this->dyna.interactFlags = 0; this->dyna.transformFlags = 0; - thisx->targetMode = 0; + thisx->targetMode = TARGET_MODE_0; thisx->gravity = -2.0f; CollisionHeader_GetVirtual(&object_lightbox_Col_001F10, &colHeader); this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, thisx, colHeader); diff --git a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c index 702aa3aa37d..5ce262e1dbe 100644 --- a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c +++ b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c @@ -277,7 +277,7 @@ void EnMa1_Init(Actor* thisx, PlayState* play) { Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; if (!GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE) || CHECK_QUEST_ITEM(QUEST_SONG_EPONA)) { diff --git a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c index 16f6eec8c77..202ba584986 100644 --- a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c +++ b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c @@ -242,7 +242,7 @@ void EnMa2_Init(Actor* thisx, PlayState* play) { Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; } diff --git a/src/overlays/actors/ovl_En_Md/z_en_md.c b/src/overlays/actors/ovl_En_Md/z_en_md.c index 1f65d106d3c..ba12e755ae5 100644 --- a/src/overlays/actors/ovl_En_Md/z_en_md.c +++ b/src/overlays/actors/ovl_En_Md/z_en_md.c @@ -667,7 +667,7 @@ void EnMd_Init(Actor* thisx, PlayState* play) { Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENMD_ANIM_0); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->alpha = 255; Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_ELF, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, FAIRY_KOKIRI); diff --git a/src/overlays/actors/ovl_En_Mk/z_en_mk.c b/src/overlays/actors/ovl_En_Mk/z_en_mk.c index b81a9a88a32..8904bec7250 100644 --- a/src/overlays/actors/ovl_En_Mk/z_en_mk.c +++ b/src/overlays/actors/ovl_En_Mk/z_en_mk.c @@ -66,7 +66,7 @@ void EnMk_Init(Actor* thisx, PlayState* play) { this->actionFunc = EnMk_Wait; this->flags = 0; this->swimFlag = 0; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; if (GET_ITEMGETINF(ITEMGETINF_10)) { this->flags |= 4; diff --git a/src/overlays/actors/ovl_En_Mm/z_en_mm.c b/src/overlays/actors/ovl_En_Mm/z_en_mm.c index 034cfed9f53..8987eb4b7d2 100644 --- a/src/overlays/actors/ovl_En_Mm/z_en_mm.c +++ b/src/overlays/actors/ovl_En_Mm/z_en_mm.c @@ -176,7 +176,7 @@ void EnMm_Init(Actor* thisx, PlayState* play) { this->path = this->actor.params & 0xFF; this->unk_1F0 = 2; this->unk_1E8 = 0; - this->actor.targetMode = 2; + this->actor.targetMode = TARGET_MODE_2; this->actor.gravity = -1.0f; this->speedXZ = 3.0f; this->unk_204 = this->actor.objectSlot; diff --git a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c index d36c0ed3d0b..3d4ed5fc28a 100644 --- a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c +++ b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c @@ -136,7 +136,7 @@ void EnMm2_Init(Actor* thisx, PlayState* play2) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->mouthTexIndex = RM2_MOUTH_CLOSED; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->unk_1F4 |= 1; this->actor.gravity = -1.0f; if (this->actor.params == 1) { diff --git a/src/overlays/actors/ovl_En_Ms/z_en_ms.c b/src/overlays/actors/ovl_En_Ms/z_en_ms.c index 725e497f4e7..29e9804aeed 100644 --- a/src/overlays/actors/ovl_En_Ms/z_en_ms.c +++ b/src/overlays/actors/ovl_En_Ms/z_en_ms.c @@ -53,7 +53,7 @@ static u16 sOfferTextIDs[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 500, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Mu/z_en_mu.c b/src/overlays/actors/ovl_En_Mu/z_en_mu.c index 64e5b9ef177..fb6cb4e94ff 100644 --- a/src/overlays/actors/ovl_En_Mu/z_en_mu.c +++ b/src/overlays/actors/ovl_En_Mu/z_en_mu.c @@ -139,7 +139,7 @@ void EnMu_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &D_80AB0BD0); CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &D_80AB0BFC); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; Actor_SetScale(&this->actor, 0.01f); EnMu_Interact(this, play); EnMu_SetupAction(this, EnMu_Pose); diff --git a/src/overlays/actors/ovl_En_Niw/z_en_niw.c b/src/overlays/actors/ovl_En_Niw/z_en_niw.c index 0ebce6a0a7f..8d9cdc87d3d 100644 --- a/src/overlays/actors/ovl_En_Niw/z_en_niw.c +++ b/src/overlays/actors/ovl_En_Niw/z_en_niw.c @@ -114,7 +114,7 @@ static ColliderCylinderInit sCylinderInit2 = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 6, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_6, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c index 174b0b5747f..6d64c775d08 100644 --- a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c +++ b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c @@ -61,7 +61,7 @@ void EnNiwGirl_Init(Actor* thisx, PlayState* play) { SkelAnime_InitFlex(play, &this->skelAnime, &gNiwGirlSkel, &gNiwGirlRunAnim, this->jointTable, this->morphTable, 17); Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; if (this->actor.params < 0) { this->actor.params = 0; } diff --git a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c index c97c7f33e32..be04097b30a 100644 --- a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c +++ b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c @@ -165,7 +165,7 @@ void func_80AB9F24(EnNiwLady* this, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); this->unk_272 = 0; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->actor.draw = EnNiwLady_Draw; switch (this->unk_278) { case 0: diff --git a/src/overlays/actors/ovl_En_Ny/z_en_ny.c b/src/overlays/actors/ovl_En_Ny/z_en_ny.c index af104d6390f..0b3a2947365 100644 --- a/src/overlays/actors/ovl_En_Ny/z_en_ny.c +++ b/src/overlays/actors/ovl_En_Ny/z_en_ny.c @@ -99,7 +99,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_SPIKE, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c index f6a21f01958..d1b4222593b 100644 --- a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c +++ b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c @@ -57,7 +57,7 @@ void EnOkarinaTag_Init(Actor* thisx, PlayState* play) { this->ocarinaSong = 0; this->unk_158 = 1; } - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; if (this->actor.world.rot.z > 0) { this->interactRange = this->actor.world.rot.z * 40.0f; } diff --git a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c index 47f452d44f9..743aa94f901 100644 --- a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c +++ b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c @@ -310,7 +310,7 @@ static EnOssanGetGirlAParamsFunc sShopItemReplaceFunc[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 500, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c index 799dc2a83e0..4698bc46432 100644 --- a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c +++ b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c @@ -1108,7 +1108,7 @@ void func_80ADBF58(EnPoSisters* this, PlayState* play) { } void func_80ADC034(EnPoSisters* this, PlayState* play) { - if (this->actor.isTargeted && this->unk_22E.a == 255) { + if (this->actor.isLockedOn && this->unk_22E.a == 255) { if (this->unk_197 != 0) { this->unk_197--; } diff --git a/src/overlays/actors/ovl_En_Poh/z_en_poh.c b/src/overlays/actors/ovl_En_Poh/z_en_poh.c index e560308572c..4cadbc9bfa6 100644 --- a/src/overlays/actors/ovl_En_Poh/z_en_poh.c +++ b/src/overlays/actors/ovl_En_Poh/z_en_poh.c @@ -883,7 +883,7 @@ void EnPoh_UpdateVisibility(EnPoh* this) { this->visibilityTimer--; } if (this->lightColor.a == 255) { - if (this->actor.isTargeted) { + if (this->actor.isLockedOn) { this->unk_194++; this->unk_194 = CLAMP_MAX(this->unk_194, 20); } else { diff --git a/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c b/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c index b141965c37b..045d0a01c7a 100644 --- a/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c +++ b/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c @@ -53,7 +53,7 @@ void EnPubox_Init(Actor* thisx, PlayState* play) { ActorShape_Init(&thisx->shape, 0.0f, ActorShadow_DrawCircle, 6.0f); this->dyna.interactFlags = 0; this->dyna.transformFlags = 0; - thisx->targetMode = 1; + thisx->targetMode = TARGET_MODE_1; thisx->gravity = -2.0f; CollisionHeader_GetVirtual(&gBlockMediumCol, &colHeader); this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, thisx, colHeader); diff --git a/src/overlays/actors/ovl_En_Rd/z_en_rd.c b/src/overlays/actors/ovl_En_Rd/z_en_rd.c index 1f8e1b84e80..6ec342de018 100644 --- a/src/overlays/actors/ovl_En_Rd/z_en_rd.c +++ b/src/overlays/actors/ovl_En_Rd/z_en_rd.c @@ -142,7 +142,7 @@ void EnRd_Init(Actor* thisx, PlayState* play) { EnRd* this = (EnRd*)thisx; Actor_ProcessInitChain(thisx, sInitChain); - this->actor.targetMode = 0; + this->actor.targetMode = TARGET_MODE_0; this->actor.colChkInfo.damageTable = &sDamageTable; ActorShape_Init(&thisx->shape, 0.0f, NULL, 0.0f); this->upperBodyYRotation = this->headYRotation = 0; @@ -434,7 +434,7 @@ void EnRd_WalkToHome(EnRd* this, PlayState* play) { PLAYER_STATE1_19 | PLAYER_STATE1_21)) && !(player->stateFlags2 & PLAYER_STATE2_7) && (Actor_WorldDistXYZToPoint(&player->actor, &this->actor.home.pos) < 150.0f)) { - this->actor.targetMode = 0; + this->actor.targetMode = TARGET_MODE_0; EnRd_SetupWalkToPlayer(this, play); } else if (this->actor.params > REDEAD_TYPE_DOES_NOT_MOURN_IF_WALKING) { if (this->actor.parent != NULL) { @@ -577,7 +577,7 @@ void EnRd_Grab(EnRd* this, PlayState* play) { if (!LINK_IS_ADULT) { Math_SmoothStepToF(&this->actor.shape.yOffset, 0, 1.0f, 400.0f, 0.0f); } - this->actor.targetMode = 0; + this->actor.targetMode = TARGET_MODE_0; this->actor.flags |= ACTOR_FLAG_0; this->playerStunWaitTimer = 0xA; this->grabWaitTimer = 0xF; diff --git a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c index 3fc213e1550..ff781c0f27a 100644 --- a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c +++ b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c @@ -113,7 +113,7 @@ void EnReeba_Init(Actor* thisx, PlayState* play) { s32 surfaceType; this->actor.naviEnemyId = NAVI_ENEMY_LEEVER; - this->actor.targetMode = 3; + this->actor.targetMode = TARGET_MODE_3; this->actor.gravity = -3.5f; this->actor.focus.pos = this->actor.world.pos; SkelAnime_Init(play, &this->skelanime, &object_reeba_Skel_001EE8, &object_reeba_Anim_0001E4, this->jointTable, diff --git a/src/overlays/actors/ovl_En_Rr/z_en_rr.c b/src/overlays/actors/ovl_En_Rr/z_en_rr.c index 736d1f15126..5f968e9c9bb 100644 --- a/src/overlays/actors/ovl_En_Rr/z_en_rr.c +++ b/src/overlays/actors/ovl_En_Rr/z_en_rr.c @@ -156,7 +156,7 @@ static DamageTable sDamageTable = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_LIKE_LIKE, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Sa/z_en_sa.c b/src/overlays/actors/ovl_En_Sa/z_en_sa.c index 2691735f322..fb1b8c89263 100644 --- a/src/overlays/actors/ovl_En_Sa/z_en_sa.c +++ b/src/overlays/actors/ovl_En_Sa/z_en_sa.c @@ -523,7 +523,7 @@ void EnSa_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->alpha = 255; this->unk_21A = this->actor.shape.rot; diff --git a/src/overlays/actors/ovl_En_Sb/z_en_sb.c b/src/overlays/actors/ovl_En_Sb/z_en_sb.c index a6eda4e5d0e..740e13ac6ad 100644 --- a/src/overlays/actors/ovl_En_Sb/z_en_sb.c +++ b/src/overlays/actors/ovl_En_Sb/z_en_sb.c @@ -86,7 +86,7 @@ static DamageTable sDamageTable[] = { static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_SHELL_BLADE, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Skj/z_en_skj.c b/src/overlays/actors/ovl_En_Skj/z_en_skj.c index a2035106e74..4649907685b 100644 --- a/src/overlays/actors/ovl_En_Skj/z_en_skj.c +++ b/src/overlays/actors/ovl_En_Skj/z_en_skj.c @@ -278,7 +278,7 @@ static EnSkjActionFunc sActionFuncs[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; @@ -417,7 +417,7 @@ void EnSkj_Init(Actor* thisx, PlayState* play2) { } if ((type > 0) && (type < 3)) { - this->actor.targetMode = 7; + this->actor.targetMode = TARGET_MODE_7; this->posCopy = this->actor.world.pos; sOcarinaMinigameSkullKids[type - 1].unk_0 = 1; sOcarinaMinigameSkullKids[type - 1].skullkid = this; diff --git a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c index cb73dacc077..967e1e58300 100644 --- a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c +++ b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c @@ -48,7 +48,7 @@ static ColliderCylinderInitType1 sCylinderInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Sth/z_en_sth.c b/src/overlays/actors/ovl_En_Sth/z_en_sth.c index 447d01d7834..b39b5bc0d29 100644 --- a/src/overlays/actors/ovl_En_Sth/z_en_sth.c +++ b/src/overlays/actors/ovl_En_Sth/z_en_sth.c @@ -131,7 +131,7 @@ void EnSth_Init(Actor* thisx, PlayState* play) { EnSth_SetupAction(this, EnSth_WaitForObject); this->actor.draw = NULL; this->unk_2B2 = 0; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; } void EnSth_SetupShapeColliderUpdate2AndDraw(EnSth* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c index 3f267dcf8e5..078af4a9e56 100644 --- a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c +++ b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c @@ -156,7 +156,7 @@ void EnSyatekiMan_Init(Actor* thisx, PlayState* play) { osSyncPrintf("\n\n"); // "Old man appeared!! Muhohohohohohohon" osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 親父登場!!むほほほほほほほーん ☆☆☆☆☆ \n" VT_RST); - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; Actor_SetScale(&this->actor, 0.01f); SkelAnime_InitFlex(play, &this->skelAnime, &gObjectOssanSkel, &gObjectOssanAnim_000338, this->jointTable, this->morphTable, 9); diff --git a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c index 02062bf2373..4c0acd99031 100644 --- a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c +++ b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c @@ -59,7 +59,7 @@ static ColliderCylinderInit sCylinderInit = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 1, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_1, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -1000, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Ta/z_en_ta.c b/src/overlays/actors/ovl_En_Ta/z_en_ta.c index 4501b2613bf..dbee1a4b20a 100644 --- a/src/overlays/actors/ovl_En_Ta/z_en_ta.c +++ b/src/overlays/actors/ovl_En_Ta/z_en_ta.c @@ -150,7 +150,7 @@ void EnTa_Init(Actor* thisx, PlayState* play2) { this->blinkTimer = 20; this->blinkFunc = EnTa_BlinkWaitUntilNext; Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->actor.velocity.y = -4.0f; this->actor.minVelocityY = -4.0f; this->actor.gravity = -1.0f; diff --git a/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c b/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c index 5831adc961e..776f0e97c68 100644 --- a/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c +++ b/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c @@ -66,7 +66,7 @@ void EnTakaraMan_Init(Actor* thisx, PlayState* play) { this->originalRoomNum = thisx->room; thisx->room = -1; thisx->world.rot.y = thisx->shape.rot.y = -0x4E20; - thisx->targetMode = 1; + thisx->targetMode = TARGET_MODE_1; this->actionFunc = func_80B176E0; } diff --git a/src/overlays/actors/ovl_En_Test/z_en_test.c b/src/overlays/actors/ovl_En_Test/z_en_test.c index 63a0351e323..7770d99084d 100644 --- a/src/overlays/actors/ovl_En_Test/z_en_test.c +++ b/src/overlays/actors/ovl_En_Test/z_en_test.c @@ -405,7 +405,7 @@ void EnTest_ChooseAction(EnTest* this, PlayState* play) { if (this->actor.xzDistToPlayer < 110.0f) { if (Rand_ZeroOne() > 0.2f) { if (player->stateFlags1 & PLAYER_STATE1_4) { - if (this->actor.isTargeted) { + if (this->actor.isLockedOn) { EnTest_SetupSlashDown(this); } else { func_808627C4(this, play); @@ -664,7 +664,7 @@ void EnTest_WalkAndBlock(EnTest* this, PlayState* play) { return; } } else if (player->heldItemAction != PLAYER_IA_NONE) { - if (this->actor.isTargeted) { + if (this->actor.isLockedOn) { if ((play->gameplayFrames % 2) != 0) { func_808627C4(this, play); return; @@ -690,7 +690,7 @@ void EnTest_WalkAndBlock(EnTest* this, PlayState* play) { if (this->actor.xzDistToPlayer < 110.0f) { if (Rand_ZeroOne() > 0.2f) { if (player->stateFlags1 & PLAYER_STATE1_4) { - if (this->actor.isTargeted) { + if (this->actor.isLockedOn) { EnTest_SetupSlashDown(this); } else { func_808627C4(this, play); @@ -975,7 +975,7 @@ void EnTest_SlashDownEnd(EnTest* this, PlayState* play) { this->actor.world.rot.y = this->actor.yawTowardsPlayer; EnTest_SetupJumpBack(this); } else if (player->stateFlags1 & PLAYER_STATE1_4) { - if (this->actor.isTargeted) { + if (this->actor.isLockedOn) { EnTest_SetupSlashDown(this); } else if ((play->gameplayFrames % 2) != 0) { func_808627C4(this, play); diff --git a/src/overlays/actors/ovl_En_Tg/z_en_tg.c b/src/overlays/actors/ovl_En_Tg/z_en_tg.c index af02dda0f98..387349a9326 100644 --- a/src/overlays/actors/ovl_En_Tg/z_en_tg.c +++ b/src/overlays/actors/ovl_En_Tg/z_en_tg.c @@ -117,7 +117,7 @@ void EnTg_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &sColChkInfoInit); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; Actor_SetScale(&this->actor, 0.01f); this->nextDialogue = play->state.frames % 2; this->actionFunc = EnTg_SpinIfNotTalking; diff --git a/src/overlays/actors/ovl_En_Tite/z_en_tite.c b/src/overlays/actors/ovl_En_Tite/z_en_tite.c index d1aeb1e7214..d4532cca1b1 100644 --- a/src/overlays/actors/ovl_En_Tite/z_en_tite.c +++ b/src/overlays/actors/ovl_En_Tite/z_en_tite.c @@ -177,7 +177,7 @@ void EnTite_Init(Actor* thisx, PlayState* play) { EnTite* this = (EnTite*)thisx; Actor_ProcessInitChain(thisx, sInitChain); - thisx->targetMode = 3; + thisx->targetMode = TARGET_MODE_3; Actor_SetScale(thisx, 0.01f); SkelAnime_Init(play, &this->skelAnime, &object_tite_Skel_003A20, &object_tite_Anim_0012E4, this->jointTable, this->morphTable, 25); diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/src/overlays/actors/ovl_En_Tk/z_en_tk.c index 7ed29d145cf..cca0f018b8f 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -498,7 +498,7 @@ void EnTk_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->actor.gravity = -0.1f; this->currentReward = -1; this->currentSpot = NULL; diff --git a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c index a5f86c6361c..4a924f7eab6 100644 --- a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c +++ b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c @@ -413,7 +413,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { sp50 = 0.0f; if ((90.0f >= this->actor.xzDistToPlayer) && (this->actor.xzDistToPlayer > 70.0f) && (ABS(sp5A) >= 0x7800) && - (this->actor.isTargeted || !(player->stateFlags1 & PLAYER_STATE1_22))) { + (this->actor.isLockedOn || !(player->stateFlags1 & PLAYER_STATE1_22))) { EnTorch2_SwingSword(play, input, this); } else if (((this->actor.xzDistToPlayer <= 70.0f) || ((this->actor.xzDistToPlayer <= 80.0f + sp50) && @@ -426,7 +426,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { } else if (this->actor.xzDistToPlayer <= 50 + sp50) { sStickTilt = 127.0f; sStickAngle = this->actor.yawTowardsPlayer; - if (!this->actor.isTargeted) { + if (!this->actor.isLockedOn) { Math_SmoothStepToS(&sStickAngle, player->actor.shape.rot.y + 0x7FFF, 1, 0x2328, 0); } } else if (this->actor.xzDistToPlayer > 100.0f + sp50) { @@ -436,7 +436,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { (this->actor.xzDistToPlayer >= 280.0f)) { sStickTilt = 127.0f; sStickAngle = this->actor.yawTowardsPlayer; - if (!this->actor.isTargeted) { + if (!this->actor.isLockedOn) { Math_SmoothStepToS(&sStickAngle, player->actor.shape.rot.y + 0x7FFF, 1, 0x2328, 0); } } else { @@ -446,7 +446,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) { !EnTorch2_SwingSword(play, input, this)) { sStickAngle = this->actor.yawTowardsPlayer; sStickTilt = 127.0f; - if (!this->actor.isTargeted) { + if (!this->actor.isLockedOn) { Math_SmoothStepToS(&sStickAngle, player->actor.shape.rot.y + 0x7FFF, 1, 0x2328, 0); } } diff --git a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c index ad3d446e90c..1944724d725 100644 --- a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c +++ b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c @@ -127,7 +127,7 @@ void EnToryo_Init(Actor* thisx, PlayState* play) { Animation_GetLastFrame(sEnToryoAnimation.animation), sEnToryoAnimation.mode, sEnToryoAnimation.morphFrames); this->stateFlags |= 8; - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->actionFunc = EnToryo_Idle; } diff --git a/src/overlays/actors/ovl_En_Tp/z_en_tp.c b/src/overlays/actors/ovl_En_Tp/z_en_tp.c index bc8da3fe901..17b2bd8091e 100644 --- a/src/overlays/actors/ovl_En_Tp/z_en_tp.c +++ b/src/overlays/actors/ovl_En_Tp/z_en_tp.c @@ -136,7 +136,7 @@ void EnTp_Init(Actor* thisx, PlayState* play2) { s32 i; Actor_ProcessInitChain(&this->actor, sInitChain); - this->actor.targetMode = 3; + this->actor.targetMode = TARGET_MODE_3; this->actor.colChkInfo.damageTable = &sDamageTable; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 0.14f); this->unk_150 = 0; diff --git a/src/overlays/actors/ovl_En_Trap/z_en_trap.c b/src/overlays/actors/ovl_En_Trap/z_en_trap.c index 8bdcea00329..6da8fe94ab0 100644 --- a/src/overlays/actors/ovl_En_Trap/z_en_trap.c +++ b/src/overlays/actors/ovl_En_Trap/z_en_trap.c @@ -112,7 +112,7 @@ void EnTrap_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, thisx, &sCylinderInit); ActorShape_Init(&thisx->shape, 0.0f, ActorShadow_DrawCircle, 0.0f); - thisx->targetMode = 3; + thisx->targetMode = TARGET_MODE_3; thisx->colChkInfo.mass = 0xFF; } diff --git a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c index e60e3f40ace..a1c4ddd93e3 100644 --- a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c +++ b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c @@ -128,7 +128,7 @@ void EnWonderItem_Init(Actor* thisx, PlayState* play) { if (this->switchFlag == 0x3F) { this->switchFlag = -1; } - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; if ((this->switchFlag >= 0) && Flags_GetSwitch(play, this->switchFlag)) { osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ You are Shock! ☆☆☆☆☆ %d\n" VT_RST, this->switchFlag); Actor_Kill(&this->actor); diff --git a/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c b/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c index 1256a781ce3..4637bc958d1 100644 --- a/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c +++ b/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c @@ -45,7 +45,7 @@ void EnWonderTalk_Init(Actor* thisx, PlayState* play) { if (this->switchFlag == 0x3F) { this->switchFlag = -1; } - this->actor.targetMode = 1; + this->actor.targetMode = TARGET_MODE_1; if (this->switchFlag >= 0) { if (Flags_GetSwitch(play, this->switchFlag)) { osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ You are Shock! ☆☆☆☆☆ %d\n" VT_RST, this->switchFlag); diff --git a/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c b/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c index a831460a804..cdc20e27ce7 100644 --- a/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c +++ b/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c @@ -31,7 +31,8 @@ ActorInit En_Wonder_Talk2_InitVars = { /**/ NULL, }; -static s16 D_80B3A8E0[] = { 6, 0, 1, 2, 3, 4, 5 }; +static s16 D_80B3A8E0[] = { TARGET_MODE_6, TARGET_MODE_0, TARGET_MODE_1, TARGET_MODE_2, + TARGET_MODE_3, TARGET_MODE_4, TARGET_MODE_5 }; void EnWonderTalk2_Destroy(Actor* thisx, PlayState* play) { } diff --git a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c index e70587fd109..7b2942b9273 100644 --- a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c +++ b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c @@ -82,7 +82,7 @@ void EnYabusameMark_Init(Actor* thisx, PlayState* play) { osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ やぶさめまと ☆☆☆☆☆ %x\n" VT_RST, this->actor.params); this->actor.flags &= ~ACTOR_FLAG_0; this->typeIndex = this->actor.params; - this->actor.targetMode = 5; + this->actor.targetMode = TARGET_MODE_5; osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 種類インデックス \t ☆☆☆☆☆ %d\n" VT_RST, this->typeIndex); switch (this->typeIndex) { case 0: diff --git a/src/overlays/actors/ovl_En_Zf/z_en_zf.c b/src/overlays/actors/ovl_En_Zf/z_en_zf.c index 1f8fb35b738..93f74a0f12a 100644 --- a/src/overlays/actors/ovl_En_Zf/z_en_zf.c +++ b/src/overlays/actors/ovl_En_Zf/z_en_zf.c @@ -282,7 +282,7 @@ void EnZf_Init(Actor* thisx, PlayState* play) { f32 posDiff; Actor_ProcessInitChain(thisx, sInitChain); - thisx->targetMode = 3; + thisx->targetMode = TARGET_MODE_3; this->clearFlag = (thisx->params & 0xFF00) >> 8; /* Strip the top byte of params */ thisx->params &= 0xFF; @@ -532,7 +532,7 @@ s16 EnZf_FindNextPlatformTowardsPlayer(Vec3f* pos, s16 curPlatform, s16 arg2, Pl // Player not targeting this or another EnZf? s32 EnZf_CanAttack(PlayState* play, EnZf* this) { - Actor* targetedActor; + Actor* unk_664; Player* player = GET_PLAYER(play); if (this->actor.params >= ENZF_TYPE_LIZALFOS_MINIBOSS_A) { // miniboss @@ -546,16 +546,16 @@ s32 EnZf_CanAttack(PlayState* play, EnZf* this) { return true; } if (this->actor.params == ENZF_TYPE_DINOLFOS) { - targetedActor = player->unk_664; - if (targetedActor == NULL) { + unk_664 = player->unk_664; + if (unk_664 == NULL) { return false; } else { - if (targetedActor->category != ACTORCAT_ENEMY) { + if (unk_664->category != ACTORCAT_ENEMY) { return true; } - if (targetedActor->id != ACTOR_EN_ZF) { + if (unk_664->id != ACTOR_EN_ZF) { return false; - } else if (targetedActor->colorFilterTimer != 0) { + } else if (unk_664->colorFilterTimer != 0) { return true; } } @@ -1217,7 +1217,7 @@ void EnZf_Slash(EnZf* this, PlayState* play) { this->actor.world.rot.y = this->actor.yawTowardsPlayer; func_80B483E4(this, play); } else if (player->stateFlags1 & (PLAYER_STATE1_4 | PLAYER_STATE1_13 | PLAYER_STATE1_14)) { - if (this->actor.isTargeted) { + if (this->actor.isLockedOn) { EnZf_SetupSlash(this); } else { func_80B483E4(this, play); diff --git a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c index 8815b37ba36..6050872be6c 100644 --- a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c +++ b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c @@ -85,7 +85,7 @@ void EnZl1_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); Actor_SetScale(&this->actor, 0.01f); ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 24.0f); - this->actor.targetMode = 0; + this->actor.targetMode = TARGET_MODE_0; if (IS_CUTSCENE_LAYER) { frameCount = Animation_GetLastFrame(&gChildZelda1Anim_00438); diff --git a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c index 8a66a202a0a..8c0f22285e3 100644 --- a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c +++ b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c @@ -367,7 +367,7 @@ void EnZl4_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &sColChkInfoInit); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->actor.textId = -1; this->eyeExpression = this->mouthExpression = ZL4_MOUTH_NEUTRAL; diff --git a/src/overlays/actors/ovl_En_Zo/z_en_zo.c b/src/overlays/actors/ovl_En_Zo/z_en_zo.c index e88310d9de4..b07abbfb9cb 100644 --- a/src/overlays/actors/ovl_En_Zo/z_en_zo.c +++ b/src/overlays/actors/ovl_En_Zo/z_en_zo.c @@ -589,7 +589,7 @@ void EnZo_Init(Actor* thisx, PlayState* play) { Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENZO_ANIM_2); Actor_SetScale(&this->actor, 0.01f); - this->actor.targetMode = 6; + this->actor.targetMode = TARGET_MODE_6; this->dialogRadius = this->collider.dim.radius + 30.0f; this->trackingMode = NPC_TRACKING_NONE; this->canSpeak = false; diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 7ccc2da400e..2728e94697a 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -817,7 +817,7 @@ static FishingFishInit sFishInits[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_5, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), }; @@ -989,7 +989,7 @@ void Fishing_Init(Actor* thisx, PlayState* play2) { if (thisx->params == EN_FISH_AQUARIUM) { this->fishState = 100; Actor_ChangeCategory(play, &play->actorCtx, thisx, ACTORCAT_PROP); - thisx->targetMode = 0; + thisx->targetMode = TARGET_MODE_0; thisx->flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3; this->lightNode = LightContext_InsertLight(play, &play->lightCtx, &this->lightInfo); } else { diff --git a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c index 66f30f96887..025004ccaeb 100644 --- a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c +++ b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c @@ -315,7 +315,7 @@ void ObjSwitch_Init(Actor* thisx, PlayState* play) { if (type == OBJSWITCH_TYPE_CRYSTAL_TARGETABLE) { this->dyna.actor.flags |= ACTOR_FLAG_0; - this->dyna.actor.targetMode = 4; + this->dyna.actor.targetMode = TARGET_MODE_4; } this->dyna.actor.colChkInfo.mass = MASS_IMMOVABLE; diff --git a/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c b/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c index 2f8787654d1..8bfe6373e1a 100644 --- a/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c +++ b/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c @@ -51,7 +51,7 @@ static ObjTimeblockSizeOptions sSizeOptions[] = { static f32 sRanges[] = { 60.0, 100.0, 140.0, 180.0, 220.0, 260.0, 300.0, 300.0 }; static InitChainEntry sInitChain[] = { - ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), + ICHAIN_U8(targetMode, TARGET_MODE_2, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneForward, 1800, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 300, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneDownward, 1500, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 68b57faca3b..be44cdfc70b 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -3415,7 +3415,7 @@ void func_808368EC(Player* this, PlayState* play) { if (!(this->stateFlags2 & (PLAYER_STATE2_5 | PLAYER_STATE2_6))) { if ((this->unk_664 != NULL) && - ((play->actorCtx.targetCtx.unk_4B != 0) || (this->actor.category != ACTORCAT_PLAYER))) { + ((play->actorCtx.targetCtx.reticleSpinCounter != 0) || (this->actor.category != ACTORCAT_PLAYER))) { Math_ScaledStepToS(&this->actor.shape.rot.y, Math_Vec3f_Yaw(&this->actor.world.pos, &this->unk_664->focus.pos), 4000); } else if ((this->stateFlags1 & PLAYER_STATE1_17) && @@ -3474,7 +3474,7 @@ s32 func_80836AB8(Player* this, s32 arg1) { } void func_80836BEC(Player* this, PlayState* play) { - s32 sp1C = 0; + s32 ignoreLeash = false; s32 zTrigPressed = CHECK_BTN_ALL(sControlInput->cur.button, BTN_Z); Actor* actorToTarget; s32 pad; @@ -3501,7 +3501,7 @@ void func_80836BEC(Player* this, PlayState* play) { } if (this->unk_66C >= 6) { - sp1C = 1; + ignoreLeash = true; } cond = func_8083224C(play); @@ -3512,7 +3512,7 @@ void func_80836BEC(Player* this, PlayState* play) { CHECK_BTN_ALL(sControlInput->press.button, BTN_Z)) { if (this->actor.category == ACTORCAT_PLAYER) { - actorToTarget = play->actorCtx.targetCtx.arrowPointedActor; + actorToTarget = play->actorCtx.targetCtx.naviHoverActor; } else { actorToTarget = &GET_PLAYER(play)->actor; } @@ -3522,7 +3522,7 @@ void func_80836BEC(Player* this, PlayState* play) { if ((actorToTarget != NULL) && !(actorToTarget->flags & ACTOR_FLAG_27)) { if ((actorToTarget == this->unk_664) && (this->actor.category == ACTORCAT_PLAYER)) { - actorToTarget = play->actorCtx.targetCtx.unk_94; + actorToTarget = play->actorCtx.targetCtx.arrowHoverActor; } if (actorToTarget != this->unk_664) { @@ -3548,7 +3548,7 @@ void func_80836BEC(Player* this, PlayState* play) { if (this->unk_664 != NULL) { if ((this->actor.category == ACTORCAT_PLAYER) && (this->unk_664 != this->unk_684) && - func_8002F0C8(this->unk_664, this, sp1C)) { + Target_OutsideLeashRange(this->unk_664, this, ignoreLeash)) { func_8008EDF0(this); this->stateFlags1 |= PLAYER_STATE1_30; } else if (this->unk_664 != NULL) { @@ -3683,7 +3683,7 @@ s32 Player_GetMovementSpeedAndYaw(Player* this, f32* outSpeedTarget, s16* outYaw *outYawTarget = this->actor.shape.rot.y; if (this->unk_664 != NULL) { - if ((play->actorCtx.targetCtx.unk_4B != 0) && !(this->stateFlags2 & PLAYER_STATE2_6)) { + if ((play->actorCtx.targetCtx.reticleSpinCounter != 0) && !(this->stateFlags2 & PLAYER_STATE2_6)) { *outYawTarget = Math_Vec3f_Yaw(&this->actor.world.pos, &this->unk_664->focus.pos); return false; } @@ -10223,7 +10223,7 @@ void func_808473D4(PlayState* play, Player* this) { doAction = DO_ACTION_JUMP; } else if ((this->heldItemAction >= PLAYER_IA_SWORD_MASTER) || ((this->stateFlags2 & PLAYER_STATE2_20) && - (play->actorCtx.targetCtx.arrowPointedActor == NULL))) { + (play->actorCtx.targetCtx.naviHoverActor == NULL))) { doAction = DO_ACTION_PUTAWAY; } } diff --git a/tools/namefixer.py b/tools/namefixer.py index 150d094c44e..2d6ba345d10 100755 --- a/tools/namefixer.py +++ b/tools/namefixer.py @@ -199,7 +199,7 @@ "shape.unk_14":"shape.shadowAlpha", "actor.unk_CC":"actor.shape.feetPos", "actor.pos4":"actor.prevPos", - "actor.unk_10C":"actor.isTargeted", + "actor.unk_10C":"actor.isLockedOn", "actor.unk_10D":"actor.targetPriority", "actor.dmgEffectTimer":"actor.colorFilterTimer", "actor.dmgEffectParams":"actor.colorFilterParams",