diff --git a/include/z64actor.h b/include/z64actor.h index ef524bc9ee..bb3a905c6a 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -287,7 +287,7 @@ typedef struct LockOnReticle { /* 0x10 */ Color_RGBA8 color; } LockOnReticle; // size = 0x14 -typedef struct TargetContext { +typedef struct Attention { /* 0x00 */ Vec3f fairyPos; // Used by Tatl to indicate a targetable actor or general hint /* 0x0C */ Vec3f reticlePos; // Main reticle pos which each `LockOnReticle` instance can reference /* 0x18 */ Color_RGBAf fairyInnerColor; @@ -304,7 +304,7 @@ typedef struct TargetContext { /* 0x8C */ Actor* forcedTargetActor; // Never set to non-NULL /* 0x90 */ Actor* bgmEnemy; /* 0x94 */ Actor* arrowPointedActor; -} TargetContext; // size = 0x98 +} Attention; // size = 0x98 typedef enum TargetMode { /* 0 */ TARGET_MODE_0, @@ -407,7 +407,7 @@ typedef struct ActorContext { /* 0x00F */ u8 numLensActors; /* 0x010 */ ActorListEntry actorLists[ACTORCAT_MAX]; /* 0x0A0 */ Actor* lensActors[LENS_ACTOR_MAX]; // Draws up to LENS_ACTOR_MAX number of invisible actors - /* 0x120 */ TargetContext targetCtx; + /* 0x120 */ Attention attention; /* 0x1B8 */ ActorContextSceneFlags sceneFlags; /* 0x1E4 */ TitleCardContext titleCtxt; /* 0x1F4 */ PlayerImpact playerImpact; @@ -696,7 +696,7 @@ void func_800B4AEC(struct PlayState* play, Actor* actor, f32 y); void func_800B4B50(Actor* actor, struct Lights* mapper, struct PlayState* play); void Actor_GetProjectedPos(struct PlayState* play, Vec3f* worldPos, Vec3f* projectedPos, f32* invW); -void Target_Draw(TargetContext* targetCtx, struct PlayState* play); +void Attention_Draw(Attention* attention, struct PlayState* play); s32 Flags_GetSwitch(struct PlayState* play, s32 flag); void Flags_SetSwitch(struct PlayState* play, s32 flag); @@ -770,7 +770,7 @@ PosRot Actor_GetFocus(Actor* actor); PosRot Actor_GetWorld(Actor* actor); PosRot Actor_GetWorldPosShapeRot(Actor* actor); -s32 Target_OutsideLeashRange(Actor* actor, struct Player* player, s32 ignoreLeash); +s32 Attention_OutsideLeashRange(Actor* actor, struct Player* player, s32 ignoreLeash); s32 Actor_TalkOfferAccepted(Actor* actor, struct GameState* gameState); s32 Actor_OfferTalk(Actor* actor, struct PlayState* play, f32 radius); s32 Actor_OfferTalkNearColChkInfoCylinder(Actor* actor, struct PlayState* play); diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 279443f4d8..aa3afcb982 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -63,7 +63,8 @@ struct Actor* D_801ED920; // 2 funcs. 1 out of z_actor void Actor_KillAllOnHalfDayChange(PlayState* play, ActorContext* actorCtx); Actor* Actor_SpawnEntry(ActorContext* actorCtx, ActorEntry* actorEntry, PlayState* play); Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play); -void Target_GetTargetActor(PlayState* play, ActorContext* actorCtx, Actor** targetableP, Actor** arg3, Player* player); +void Attention_GetTargetActor(PlayState* play, ActorContext* actorCtx, Actor** targetableP, Actor** arg3, + Player* player); s32 func_800BA2FC(PlayState* play, Actor* actor, Vec3f* projectedPos, f32 projectedW); void Actor_AddToCategory(ActorContext* actorCtx, Actor* actor, u8 actorCategory); Actor* Actor_RemoveFromCategory(PlayState* play, ActorContext* actorCtx, Actor* actorToRemove); @@ -426,12 +427,12 @@ void Actor_GetProjectedPos(PlayState* play, Vec3f* worldPos, Vec3f* projectedPos *invW = (*invW < 1.0f) ? 1.0f : (1.0f / *invW); } -void Target_SetReticlePos(TargetContext* targetCtx, s32 reticleNum, f32 x, f32 y, f32 z) { - targetCtx->lockOnReticles[reticleNum].pos.x = x; - targetCtx->lockOnReticles[reticleNum].pos.y = y; - targetCtx->lockOnReticles[reticleNum].pos.z = z; +void Attention_SetReticlePos(Attention* attention, s32 reticleNum, f32 x, f32 y, f32 z) { + attention->lockOnReticles[reticleNum].pos.x = x; + attention->lockOnReticles[reticleNum].pos.y = y; + attention->lockOnReticles[reticleNum].pos.z = z; - targetCtx->lockOnReticles[reticleNum].radius = targetCtx->reticleRadius; + attention->lockOnReticles[reticleNum].radius = attention->reticleRadius; } typedef struct { @@ -456,19 +457,19 @@ TatlColor sTatlColorList[] = { { { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, // ACTORCAT_MAX }; -void Target_InitReticle(TargetContext* targetCtx, ActorType actorCategory, PlayState* play) { +void Attention_InitReticle(Attention* attention, ActorType actorCategory, PlayState* play) { TatlColor* tatlColorEntry; s32 i; LockOnReticle* reticle; - Math_Vec3f_Copy(&targetCtx->reticlePos, &play->view.eye); - targetCtx->reticleFadeAlphaControl = 256; + Math_Vec3f_Copy(&attention->reticlePos, &play->view.eye); + attention->reticleFadeAlphaControl = 256; tatlColorEntry = &sTatlColorList[actorCategory]; - targetCtx->reticleRadius = 500.0f; + attention->reticleRadius = 500.0f; - reticle = targetCtx->lockOnReticles; - for (i = 0; i < ARRAY_COUNT(targetCtx->lockOnReticles); i++, reticle++) { - Target_SetReticlePos(targetCtx, i, 0.0f, 0.0f, 0.0f); + reticle = attention->lockOnReticles; + for (i = 0; i < ARRAY_COUNT(attention->lockOnReticles); i++, reticle++) { + Attention_SetReticlePos(attention, i, 0.0f, 0.0f, 0.0f); reticle->color.r = tatlColorEntry->inner.r; reticle->color.g = tatlColorEntry->inner.g; @@ -476,34 +477,34 @@ void Target_InitReticle(TargetContext* targetCtx, ActorType actorCategory, PlayS } } -void Target_SetFairyState(TargetContext* targetCtx, Actor* actor, ActorType type, PlayState* play) { - targetCtx->fairyPos.x = actor->focus.pos.x; - targetCtx->fairyPos.y = actor->focus.pos.y + (actor->targetArrowOffset * actor->scale.y); - targetCtx->fairyPos.z = actor->focus.pos.z; +void Attention_SetFairyState(Attention* attention, Actor* actor, ActorType type, PlayState* play) { + attention->fairyPos.x = actor->focus.pos.x; + attention->fairyPos.y = actor->focus.pos.y + (actor->targetArrowOffset * actor->scale.y); + attention->fairyPos.z = actor->focus.pos.z; - targetCtx->fairyInnerColor.r = sTatlColorList[type].inner.r; - targetCtx->fairyInnerColor.g = sTatlColorList[type].inner.g; - targetCtx->fairyInnerColor.b = sTatlColorList[type].inner.b; - targetCtx->fairyInnerColor.a = sTatlColorList[type].inner.a; - targetCtx->fairyOuterColor.r = sTatlColorList[type].outer.r; - targetCtx->fairyOuterColor.g = sTatlColorList[type].outer.g; - targetCtx->fairyOuterColor.b = sTatlColorList[type].outer.b; - targetCtx->fairyOuterColor.a = sTatlColorList[type].outer.a; + attention->fairyInnerColor.r = sTatlColorList[type].inner.r; + attention->fairyInnerColor.g = sTatlColorList[type].inner.g; + attention->fairyInnerColor.b = sTatlColorList[type].inner.b; + attention->fairyInnerColor.a = sTatlColorList[type].inner.a; + attention->fairyOuterColor.r = sTatlColorList[type].outer.r; + attention->fairyOuterColor.g = sTatlColorList[type].outer.g; + attention->fairyOuterColor.b = sTatlColorList[type].outer.b; + attention->fairyOuterColor.a = sTatlColorList[type].outer.a; } -void Target_Init(TargetContext* targetCtx, Actor* actor, PlayState* play) { - targetCtx->bgmEnemy = NULL; - targetCtx->forcedTargetActor = NULL; - targetCtx->reticleActor = NULL; - targetCtx->fairyActor = NULL; - targetCtx->reticleSpinCounter = 0; - targetCtx->curReticle = 0; - targetCtx->fairyMoveProgressFactor = 0.0f; - Target_SetFairyState(targetCtx, actor, actor->category, play); - Target_InitReticle(targetCtx, actor->category, play); +void Attention_Init(Attention* attention, Actor* actor, PlayState* play) { + attention->bgmEnemy = NULL; + attention->forcedTargetActor = NULL; + attention->reticleActor = NULL; + attention->fairyActor = NULL; + attention->reticleSpinCounter = 0; + attention->curReticle = 0; + attention->fairyMoveProgressFactor = 0.0f; + Attention_SetFairyState(attention, actor, actor->category, play); + Attention_InitReticle(attention, actor->category, play); } -void Target_Draw(TargetContext* targetCtx, PlayState* play) { +void Attention_Draw(Attention* attention, PlayState* play) { Player* player = GET_PLAYER(play); Actor* actor; @@ -512,11 +513,11 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) { return; } - actor = targetCtx->reticleActor; + actor = attention->reticleActor; OPEN_DISPS(play->state.gfxCtx); - if (targetCtx->reticleFadeAlphaControl != 0) { + if (attention->reticleFadeAlphaControl != 0) { LockOnReticle* reticle; s16 alpha = 255; f32 projectdPosScale = 1.0f; @@ -527,32 +528,32 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) { s32 curReticle; f32 lockOnScaleX; - if (targetCtx->reticleSpinCounter != 0) { + if (attention->reticleSpinCounter != 0) { // Reticle is spinning so it is active, only need to draw one numReticles = 1; } else { // Use multiple reticles for the motion blur effect from the reticle // quickly zooming in on an actor from off screen - numReticles = ARRAY_COUNT(targetCtx->lockOnReticles); + numReticles = ARRAY_COUNT(attention->lockOnReticles); } if (actor != NULL) { - Math_Vec3f_Copy(&targetCtx->reticlePos, &actor->focus.pos); - projectdPosScale = (500.0f - targetCtx->reticleRadius) / 420.0f; + Math_Vec3f_Copy(&attention->reticlePos, &actor->focus.pos); + projectdPosScale = (500.0f - attention->reticleRadius) / 420.0f; } else { // Not locked on, start fading out - targetCtx->reticleFadeAlphaControl -= 120; + attention->reticleFadeAlphaControl -= 120; - if (targetCtx->reticleFadeAlphaControl < 0) { - targetCtx->reticleFadeAlphaControl = 0; + if (attention->reticleFadeAlphaControl < 0) { + attention->reticleFadeAlphaControl = 0; } // `reticleFadeAlphaControl` is only used as an alpha when fading out. // Otherwise it defaults to 255, set above. - alpha = targetCtx->reticleFadeAlphaControl; + alpha = attention->reticleFadeAlphaControl; } - Actor_GetProjectedPos(play, &targetCtx->reticlePos, &projectedPos, &invW); + Actor_GetProjectedPos(play, &attention->reticlePos, &projectedPos, &invW); projectedPos.x = ((SCREEN_WIDTH / 2) * (projectedPos.x * invW)) * projectdPosScale; projectedPos.x = CLAMP(projectedPos.x, -SCREEN_WIDTH, SCREEN_WIDTH); @@ -562,20 +563,20 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) { projectedPos.z *= projectdPosScale; - targetCtx->curReticle--; + attention->curReticle--; - if (targetCtx->curReticle < 0) { - targetCtx->curReticle = ARRAY_COUNT(targetCtx->lockOnReticles) - 1; + if (attention->curReticle < 0) { + attention->curReticle = ARRAY_COUNT(attention->lockOnReticles) - 1; } - Target_SetReticlePos(targetCtx, targetCtx->curReticle, projectedPos.x, projectedPos.y, projectedPos.z); + Attention_SetReticlePos(attention, attention->curReticle, projectedPos.x, projectedPos.y, projectedPos.z); if (!(player->stateFlags1 & PLAYER_STATE1_40) || (actor != player->focusActor)) { OVERLAY_DISP = Gfx_SetupDL(OVERLAY_DISP, SETUPDL_57); - for (i = 0, curReticle = targetCtx->curReticle; i < numReticles; - i++, curReticle = (curReticle + 1) % ARRAY_COUNT(targetCtx->lockOnReticles)) { - reticle = &targetCtx->lockOnReticles[curReticle]; + for (i = 0, curReticle = attention->curReticle; i < numReticles; + i++, curReticle = (curReticle + 1) % ARRAY_COUNT(attention->lockOnReticles)) { + reticle = &attention->lockOnReticles[curReticle]; if (reticle->radius < 500.0f) { s32 triangleIndex; @@ -592,7 +593,7 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) { gDPSetPrimColor(OVERLAY_DISP++, 0, 0, reticle->color.r, reticle->color.g, reticle->color.b, (u8)alpha); - Matrix_RotateZS(targetCtx->reticleSpinCounter * 0x200, MTXMODE_APPLY); + Matrix_RotateZS(attention->reticleSpinCounter * 0x200, MTXMODE_APPLY); // Draw the 4 triangles that make up the reticle for (triangleIndex = 0; triangleIndex < 4; triangleIndex++) { @@ -605,7 +606,7 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) { } } - alpha -= 255 / ARRAY_COUNT(targetCtx->lockOnReticles); + alpha -= 255 / ARRAY_COUNT(attention->lockOnReticles); if (alpha < 0) { alpha = 0; @@ -614,7 +615,7 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) { } } - actor = targetCtx->arrowPointedActor; + actor = attention->arrowPointedActor; if ((actor != NULL) && !(actor->flags & ACTOR_FLAG_LOCK_ON_DISABLED)) { TatlColor* color = &sTatlColorList[actor->category]; @@ -634,7 +635,7 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) { CLOSE_DISPS(play->state.gfxCtx); } -void Target_Update(TargetContext* targetCtx, Player* player, Actor* playerFocusActor, PlayState* play) { +void Attention_Update(Attention* attention, Player* player, Actor* playerFocusActor, PlayState* play) { s32 pad; Actor* actor = NULL; s32 category; @@ -644,15 +645,15 @@ void Target_Update(TargetContext* targetCtx, Player* player, Actor* playerFocusA // 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->focusActor != NULL) && (player->unk_AE3[player->unk_ADE] == 2)) { - targetCtx->arrowPointedActor = NULL; + attention->arrowPointedActor = NULL; } else { - Target_GetTargetActor(play, &play->actorCtx, &actor, &D_801ED920, player); - targetCtx->arrowPointedActor = actor; + Attention_GetTargetActor(play, &play->actorCtx, &actor, &D_801ED920, player); + attention->arrowPointedActor = actor; } - if (targetCtx->forcedTargetActor != NULL) { - actor = targetCtx->forcedTargetActor; - targetCtx->forcedTargetActor = NULL; + if (attention->forcedTargetActor != NULL) { + actor = attention->forcedTargetActor; + attention->forcedTargetActor = NULL; } else if (playerFocusActor != NULL) { actor = playerFocusActor; } @@ -663,30 +664,30 @@ void Target_Update(TargetContext* targetCtx, Player* player, Actor* playerFocusA category = player->actor.category; } - if ((actor != targetCtx->fairyActor) || (category != targetCtx->fairyActorCategory)) { - targetCtx->fairyActor = actor; - targetCtx->fairyActorCategory = category; - targetCtx->fairyMoveProgressFactor = 1.0f; + if ((actor != attention->fairyActor) || (category != attention->fairyActorCategory)) { + attention->fairyActor = actor; + attention->fairyActorCategory = category; + attention->fairyMoveProgressFactor = 1.0f; } if (actor == NULL) { actor = &player->actor; } - if (!Math_StepToF(&targetCtx->fairyMoveProgressFactor, 0.0f, 0.25f)) { - f32 fairyMoveScale = 0.25f / targetCtx->fairyMoveProgressFactor; - f32 x = actor->focus.pos.x - targetCtx->fairyPos.x; - f32 y = (actor->focus.pos.y + (actor->targetArrowOffset * actor->scale.y)) - targetCtx->fairyPos.y; - f32 z = actor->focus.pos.z - targetCtx->fairyPos.z; + if (!Math_StepToF(&attention->fairyMoveProgressFactor, 0.0f, 0.25f)) { + f32 fairyMoveScale = 0.25f / attention->fairyMoveProgressFactor; + f32 x = actor->focus.pos.x - attention->fairyPos.x; + f32 y = (actor->focus.pos.y + (actor->targetArrowOffset * actor->scale.y)) - attention->fairyPos.y; + f32 z = actor->focus.pos.z - attention->fairyPos.z; - targetCtx->fairyPos.x += x * fairyMoveScale; - targetCtx->fairyPos.y += y * fairyMoveScale; - targetCtx->fairyPos.z += z * fairyMoveScale; + attention->fairyPos.x += x * fairyMoveScale; + attention->fairyPos.y += y * fairyMoveScale; + attention->fairyPos.z += z * fairyMoveScale; } else { - Target_SetFairyState(targetCtx, actor, category, play); + Attention_SetFairyState(attention, actor, category, play); } - if ((playerFocusActor != NULL) && (targetCtx->reticleSpinCounter == 0)) { + if ((playerFocusActor != NULL) && (attention->reticleSpinCounter == 0)) { Actor_GetProjectedPos(play, &playerFocusActor->focus.pos, &projectedPos, &invW); if ((projectedPos.z <= 0.0f) || (fabsf(projectedPos.x * invW) >= 1.0f) || (fabsf(projectedPos.y * invW) >= 1.0f)) { @@ -695,17 +696,17 @@ void Target_Update(TargetContext* targetCtx, Player* player, Actor* playerFocusA } if (playerFocusActor != NULL) { - if (playerFocusActor != targetCtx->reticleActor) { + if (playerFocusActor != attention->reticleActor) { s32 sfxId; // Lock On entries need to be re-initialized when changing the targeted actor - Target_InitReticle(targetCtx, playerFocusActor->category, play); + Attention_InitReticle(attention, playerFocusActor->category, play); - targetCtx->reticleActor = playerFocusActor; + attention->reticleActor = playerFocusActor; if (playerFocusActor->id == ACTOR_EN_BOOM) { // Avoid drawing the lock on triangles on a zora boomerang - targetCtx->reticleFadeAlphaControl = 0; + attention->reticleFadeAlphaControl = 0; } sfxId = CHECK_FLAG_ALL(playerFocusActor->flags, ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_HOSTILE) @@ -714,28 +715,28 @@ void Target_Update(TargetContext* targetCtx, Player* player, Actor* playerFocusA Audio_PlaySfx(sfxId); } - targetCtx->reticlePos.x = playerFocusActor->world.pos.x; - targetCtx->reticlePos.y = + attention->reticlePos.x = playerFocusActor->world.pos.x; + attention->reticlePos.y = playerFocusActor->world.pos.y - (playerFocusActor->shape.yOffset * playerFocusActor->scale.y); - targetCtx->reticlePos.z = playerFocusActor->world.pos.z; + attention->reticlePos.z = playerFocusActor->world.pos.z; - if (targetCtx->reticleSpinCounter == 0) { - f32 lockOnStep = (500.0f - targetCtx->reticleRadius) * 3.0f; + if (attention->reticleSpinCounter == 0) { + f32 lockOnStep = (500.0f - attention->reticleRadius) * 3.0f; lockOnStep = CLAMP(lockOnStep, 30.0f, 100.0f); - if (Math_StepToF(&targetCtx->reticleRadius, 80.0f, lockOnStep)) { - targetCtx->reticleSpinCounter++; + if (Math_StepToF(&attention->reticleRadius, 80.0f, lockOnStep)) { + attention->reticleSpinCounter++; } } else { // 0x80 is or'd to avoid getting this value be set to 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; + attention->reticleSpinCounter = (attention->reticleSpinCounter + 3) | 0x80; + attention->reticleRadius = 120.0f; } } else { - targetCtx->reticleActor = NULL; - Math_StepToF(&targetCtx->reticleRadius, 500.0f, 80.0f); + attention->reticleActor = NULL; + Math_StepToF(&attention->reticleRadius, 500.0f, 80.0f); } } @@ -1858,7 +1859,7 @@ PosRot Actor_GetWorldPosShapeRot(Actor* actor) { * 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 Attention_GetAdjustedDistSq(Actor* actor, Player* player, s16 playerShapeYaw) { f32 adjDistSq; s16 yawDiff; @@ -1903,7 +1904,7 @@ TargetRangeParams gTargetRanges[TARGET_MODE_MAX] = { /** * Checks if an actor at distance `distSq` is inside the range specified by its targetMode */ -s32 Target_IsActorInRange(Actor* actor, f32 distSq) { +s32 Attention_IsActorInRange(Actor* actor, f32 distSq) { return distSq < gTargetRanges[actor->targetMode].rangeSq; } @@ -1912,7 +1913,7 @@ s32 Target_IsActorInRange(Actor* actor, f32 distSq) { * * 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) { +s32 Attention_OutsideLeashRange(Actor* actor, Player* player, s32 ignoreLeash) { if ((actor->update == NULL) || !(actor->flags & ACTOR_FLAG_TARGETABLE) || (actor->flags & ACTOR_FLAG_LOCK_ON_DISABLED)) { return true; @@ -1931,7 +1932,7 @@ s32 Target_OutsideLeashRange(Actor* actor, Player* player, s32 ignoreLeash) { distSq = actor->xyzDistToPlayerSq; } - return !Target_IsActorInRange(actor, gTargetRanges[actor->targetMode].leashScale * distSq); + return !Attention_IsActorInRange(actor, gTargetRanges[actor->targetMode].leashScale * distSq); } return false; @@ -2457,7 +2458,7 @@ void Actor_InitContext(PlayState* play, ActorContext* actorCtx, ActorEntry* acto actorCtx->absoluteSpace = NULL; Actor_SpawnEntry(actorCtx, actorEntry, play); - Target_Init(&actorCtx->targetCtx, actorCtx->actorLists[ACTORCAT_PLAYER].first, play); + Attention_Init(&actorCtx->attention, actorCtx->actorLists[ACTORCAT_PLAYER].first, play); Actor_InitHalfDaysBit(actorCtx); Fault_AddClient(&sActorFaultClient, (void*)Actor_PrintLists, actorCtx, NULL); Player_SpawnHorse(play, (Player*)actorCtx->actorLists[ACTORCAT_PLAYER].first); @@ -2701,14 +2702,14 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) { if ((actor == NULL) || (player->unk_738 < 5)) { actor = NULL; - if (actorCtx->targetCtx.reticleSpinCounter != 0) { - actorCtx->targetCtx.reticleSpinCounter = 0; + if (actorCtx->attention.reticleSpinCounter != 0) { + actorCtx->attention.reticleSpinCounter = 0; Audio_PlaySfx(NA_SE_SY_LOCK_OFF); } } if (!(player->stateFlags1 & PLAYER_STATE1_2)) { - Target_Update(&actorCtx->targetCtx, player, actor, play); + Attention_Update(&actorCtx->attention, player, actor, play); } TitleCard_Update(&play->state, &actorCtx->titleCtxt); @@ -3491,16 +3492,16 @@ Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play) { Camera_ChangeMode(Play_GetCamera(play, Play_GetActiveCamId(play)), CAM_MODE_NORMAL); } - if (actor == actorCtx->targetCtx.fairyActor) { - actorCtx->targetCtx.fairyActor = NULL; + if (actor == actorCtx->attention.fairyActor) { + actorCtx->attention.fairyActor = NULL; } - if (actor == actorCtx->targetCtx.forcedTargetActor) { - actorCtx->targetCtx.forcedTargetActor = NULL; + if (actor == actorCtx->attention.forcedTargetActor) { + actorCtx->attention.forcedTargetActor = NULL; } - if (actor == actorCtx->targetCtx.bgmEnemy) { - actorCtx->targetCtx.bgmEnemy = NULL; + if (actor == actorCtx->attention.bgmEnemy) { + actorCtx->attention.bgmEnemy = NULL; } AudioSfx_StopByPos(&actor->projectedPos); @@ -3517,7 +3518,7 @@ Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play) { return newHead; } -bool Target_InTargetableScreenRegion(PlayState* play, Actor* actor) { +bool Attention_InTargetableScreenRegion(PlayState* play, Actor* actor) { s16 screenPosX; s16 screenPosY; @@ -3552,13 +3553,13 @@ bool Target_InTargetableScreenRegion(PlayState* play, Actor* actor) { * - 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` + * played. This actor is stored in `attention.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, - ActorType actorCategory) { +void Attention_FindTargetableActorForCategory(PlayState* play, ActorContext* actorCtx, Player* player, + ActorType actorCategory) { f32 distSq; Actor* actor = actorCtx->actorLists[actorCategory].first; Actor* playerFocusActor = player->focusActor; @@ -3579,7 +3580,7 @@ void Target_FindTargetableActorForCategory(PlayState* play, ActorContext* actorC if ((actorCategory == ACTORCAT_ENEMY) && CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_HOSTILE)) { if ((actor->xyzDistToPlayerSq < SQ(500.0f)) && (actor->xyzDistToPlayerSq < sBgmEnemyDistSq)) { - actorCtx->targetCtx.bgmEnemy = actor; + actorCtx->attention.bgmEnemy = actor; sBgmEnemyDistSq = actor->xyzDistToPlayerSq; } } @@ -3589,7 +3590,7 @@ void Target_FindTargetableActorForCategory(PlayState* play, ActorContext* actorC continue; } - distSq = Target_GetAdjustedDistSq(actor, player, sTargetPlayerRotY); + distSq = Attention_GetAdjustedDistSq(actor, player, sTargetPlayerRotY); isNearestTargetableActor = (actor->flags & ACTOR_FLAG_TARGETABLE) && (distSq < sTargetableNearestActorDistSq); phi_s2_2 = (actor->flags & ACTOR_FLAG_40000000) && (distSq < D_801ED8D0); @@ -3598,7 +3599,7 @@ void Target_FindTargetableActorForCategory(PlayState* play, ActorContext* actorC continue; } - if (Target_IsActorInRange(actor, distSq) && Target_InTargetableScreenRegion(play, actor)) { + if (Attention_IsActorInRange(actor, distSq) && Attention_InTargetableScreenRegion(play, actor)) { CollisionPoly* poly; s32 bgId; Vec3f posResult; @@ -3641,12 +3642,13 @@ u8 sTargetableActorCategories[] = { /** * Search for the nearest targetable actor. * - * The specific criteria is specified in Target_FindTargetableActorForCategory. + * The specific criteria is specified in Attention_FindTargetableActorForCategory. * * The actor found is stored in the targetableP parameter. It may be NULL if no actor that fulfills the criteria is * found. */ -void Target_GetTargetActor(PlayState* play, ActorContext* actorCtx, Actor** targetableP, Actor** arg3, Player* player) { +void Attention_GetTargetActor(PlayState* play, ActorContext* actorCtx, Actor** targetableP, Actor** arg3, + Player* player) { u8* actorCategories; s32 i; @@ -3654,21 +3656,21 @@ void Target_GetTargetActor(PlayState* play, ActorContext* actorCtx, Actor** targ sTargetableNearestActorDistSq = D_801ED8D0 = sBgmEnemyDistSq = FLT_MAX; sTargetablePrioritizedPriority = D_801ED8D8 = INT32_MAX; - actorCtx->targetCtx.bgmEnemy = NULL; + actorCtx->attention.bgmEnemy = NULL; sTargetPlayerRotY = player->actor.shape.rot.y; actorCategories = sTargetableActorCategories; // Try to search for a targetable actor that's a Boss, Enemy or Bg first for (i = 0; i < 3; i++) { - Target_FindTargetableActorForCategory(play, actorCtx, player, *actorCategories); + Attention_FindTargetableActorForCategory(play, actorCtx, player, *actorCategories); actorCategories++; } // 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); + Attention_FindTargetableActorForCategory(play, actorCtx, player, *actorCategories); actorCategories++; } } diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 328378b480..4662438545 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -6580,7 +6580,7 @@ void Interface_Draw(PlayState* play) { Map_DrawMinimap(play); if ((R_PAUSE_BG_PRERENDER_STATE != 2) && (R_PAUSE_BG_PRERENDER_STATE != 3)) { - Target_Draw(&play->actorCtx.targetCtx, play); + Attention_Draw(&play->actorCtx.attention, play); } Gfx_SetupDL39_Overlay(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_Boss_05/z_boss_05.c b/src/overlays/actors/ovl_Boss_05/z_boss_05.c index 0f450e3447..8022022d63 100644 --- a/src/overlays/actors/ovl_Boss_05/z_boss_05.c +++ b/src/overlays/actors/ovl_Boss_05/z_boss_05.c @@ -797,8 +797,8 @@ void Boss05_LilyPadWithHead_Move(Boss05* this, PlayState* play) { if (player2->focusActor == &this->dyna.actor) { player2->focusActor = &child->dyna.actor; - play->actorCtx.targetCtx.fairyActor = &child->dyna.actor; - play->actorCtx.targetCtx.reticleActor = &child->dyna.actor; + play->actorCtx.attention.fairyActor = &child->dyna.actor; + play->actorCtx.attention.reticleActor = &child->dyna.actor; } for (i = 0; i < BIO_DEKU_BABA_LILY_PAD_LIMB_MAX; i++) { @@ -928,8 +928,8 @@ void Boss05_FallingHead_Fall(Boss05* this, PlayState* play) { if (player->focusActor == &this->dyna.actor) { player->focusActor = &walkingHead->dyna.actor; - play->actorCtx.targetCtx.fairyActor = &walkingHead->dyna.actor; - play->actorCtx.targetCtx.reticleActor = &walkingHead->dyna.actor; + play->actorCtx.attention.fairyActor = &walkingHead->dyna.actor; + play->actorCtx.attention.reticleActor = &walkingHead->dyna.actor; } for (i = 0; i < BIO_DEKU_BABA_HEAD_LIMB_MAX; i++) { 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 5984e66d04..94a9752458 100644 --- a/src/overlays/actors/ovl_En_Elf/z_en_elf.c +++ b/src/overlays/actors/ovl_En_Elf/z_en_elf.c @@ -972,11 +972,11 @@ void func_8088E850(EnElf* this, PlayState* play) { break; default: - targetFairyActor = play->actorCtx.targetCtx.fairyActor; + targetFairyActor = play->actorCtx.attention.fairyActor; if ((player->stateFlags1 & PLAYER_STATE1_40) && (player->talkActor != NULL)) { Math_Vec3f_Copy(&nextPos, &player->talkActor->focus.pos); } else { - Math_Vec3f_Copy(&nextPos, &play->actorCtx.targetCtx.fairyPos); + Math_Vec3f_Copy(&nextPos, &play->actorCtx.attention.fairyPos); } nextPos.y += 1500.0f * this->actor.scale.y; @@ -1041,7 +1041,7 @@ void func_8088EF18(Color_RGBAf* dest, Color_RGBAf* newColor, Color_RGBAf* curCol } void func_8088EFA4(EnElf* this, PlayState* play) { - Actor* targetFairyActor = play->actorCtx.targetCtx.fairyActor; + Actor* targetFairyActor = play->actorCtx.attention.fairyActor; Player* player = GET_PLAYER(play); f32 transitionRate; @@ -1066,7 +1066,7 @@ void func_8088EFA4(EnElf* this, PlayState* play) { this->outerColor.b = 80.0f; this->outerColor.a = 0.0f; } - } else if (play->actorCtx.targetCtx.fairyMoveProgressFactor != 0.0f) { + } else if (play->actorCtx.attention.fairyMoveProgressFactor != 0.0f) { this->unk_268 = 0; this->unk_238 = 1.0f; if (!this->unk_269) { @@ -1074,18 +1074,18 @@ void func_8088EFA4(EnElf* this, PlayState* play) { } } else if (this->unk_268 == 0) { if ((targetFairyActor == NULL) || - (Math_Vec3f_DistXYZ(&this->actor.world.pos, &play->actorCtx.targetCtx.fairyPos) < 50.0f)) { + (Math_Vec3f_DistXYZ(&this->actor.world.pos, &play->actorCtx.attention.fairyPos) < 50.0f)) { this->unk_268 = 1; } } else if (this->unk_238 != 0.0f) { if (Math_StepToF(&this->unk_238, 0.0f, 0.25f)) { - this->innerColor = play->actorCtx.targetCtx.fairyInnerColor; - this->outerColor = play->actorCtx.targetCtx.fairyOuterColor; + this->innerColor = play->actorCtx.attention.fairyInnerColor; + this->outerColor = play->actorCtx.attention.fairyOuterColor; } else { transitionRate = 0.25f / this->unk_238; - func_8088EF18(&this->innerColor, &play->actorCtx.targetCtx.fairyInnerColor, &this->innerColor, + func_8088EF18(&this->innerColor, &play->actorCtx.attention.fairyInnerColor, &this->innerColor, transitionRate); - func_8088EF18(&this->outerColor, &play->actorCtx.targetCtx.fairyOuterColor, &this->outerColor, + func_8088EF18(&this->outerColor, &play->actorCtx.attention.fairyOuterColor, &this->outerColor, transitionRate); } } @@ -1138,7 +1138,7 @@ void func_8088F214(EnElf* this, PlayState* play) { sp34 = 1; Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_BELL_ANGER - SFX_FLAG); } else { - targetFairyActor = play->actorCtx.targetCtx.fairyActor; + targetFairyActor = play->actorCtx.attention.fairyActor; if (player->stateFlags1 & PLAYER_STATE1_400) { sp34 = 10; this->unk_25C = 100; @@ -1282,7 +1282,7 @@ void func_8088FA38(EnElf* this, PlayState* play) { Player* player = GET_PLAYER(play); if (this->fairyFlags & 0x10) { - refPos = play->actorCtx.targetCtx.fairyPos; + refPos = play->actorCtx.attention.fairyPos; if (this->unk_234 != NULL) { refPos = this->unk_234->world.pos; diff --git a/src/overlays/actors/ovl_En_Knight/z_en_knight.c b/src/overlays/actors/ovl_En_Knight/z_en_knight.c index 9918341986..8179ea5597 100644 --- a/src/overlays/actors/ovl_En_Knight/z_en_knight.c +++ b/src/overlays/actors/ovl_En_Knight/z_en_knight.c @@ -2179,8 +2179,8 @@ void EnKnight_FlyingHeadDone(EnKnight* this, PlayState* play) { sIgosHeadInstance = NULL; this->actor.flags |= ACTOR_FLAG_TARGETABLE; player->focusActor = &this->actor; - play->actorCtx.targetCtx.fairyActor = &this->actor; - play->actorCtx.targetCtx.reticleActor = &this->actor; + play->actorCtx.attention.fairyActor = &this->actor; + play->actorCtx.attention.reticleActor = &this->actor; } if (this->timers[0] == 15) { @@ -3257,8 +3257,8 @@ void EnKnight_FlyingHead(EnKnight* this, PlayState* play) { this->timers[0] = 20; sIgosInstance->actor.flags &= ~ACTOR_FLAG_TARGETABLE; player->focusActor = &this->actor; - play->actorCtx.targetCtx.fairyActor = &this->actor; - play->actorCtx.targetCtx.reticleActor = &this->actor; + play->actorCtx.attention.fairyActor = &this->actor; + play->actorCtx.attention.reticleActor = &this->actor; Math_Vec3f_Copy(&this->actor.world.pos, &sIgosInstance->actor.world.pos); Math_Vec3s_Copy(&this->actor.world.rot, &sIgosInstance->actor.world.rot); Math_Vec3s_Copy(&this->actor.shape.rot, &sIgosInstance->actor.world.rot); diff --git a/src/overlays/actors/ovl_En_Tanron2/z_en_tanron2.c b/src/overlays/actors/ovl_En_Tanron2/z_en_tanron2.c index 17886bff3b..0ee72c9e23 100644 --- a/src/overlays/actors/ovl_En_Tanron2/z_en_tanron2.c +++ b/src/overlays/actors/ovl_En_Tanron2/z_en_tanron2.c @@ -431,8 +431,8 @@ void func_80BB7578(EnTanron2* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_IKURA_DAMAGE); if ((player->focusActor != NULL) && (&this->actor != player->focusActor)) { player->focusActor = &this->actor; - play->actorCtx.targetCtx.fairyActor = &this->actor; - play->actorCtx.targetCtx.reticleActor = &this->actor; + play->actorCtx.attention.fairyActor = &this->actor; + play->actorCtx.attention.reticleActor = &this->actor; } } else { this->unk_154 = 15; 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 9bc4733ba4..4efa389bf6 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -1110,7 +1110,7 @@ s32 func_80AEEA4C(EnTk* this, PlayState* play) { ret = 3; } else if (this->actor.xyzDistToPlayerSq < SQ(60.0f)) { ret = 0; - } else if (this->actor.isLockedOn || (play->actorCtx.targetCtx.arrowPointedActor == &this->actor) || + } else if (this->actor.isLockedOn || (play->actorCtx.attention.arrowPointedActor == &this->actor) || (this->actor.xyzDistToPlayerSq < SQ(80.0f))) { ret = 1; } else { diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 02a08520e7..40bd111cba 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -4682,7 +4682,7 @@ void Player_UpdateShapeYaw(Player* this, PlayState* play) { Actor* focusActor = this->focusActor; if ((focusActor != NULL) && - ((play->actorCtx.targetCtx.reticleSpinCounter != 0) || (this != GET_PLAYER(play))) && + ((play->actorCtx.attention.reticleSpinCounter != 0) || (this != GET_PLAYER(play))) && (focusActor->id != ACTOR_OBJ_NOZOKI)) { Math_ScaledStepToS(&this->actor.shape.rot.y, Math_Vec3f_Yaw(&this->actor.world.pos, &focusActor->focus.pos), 0xFA0); @@ -4795,14 +4795,14 @@ void func_80832888(Player* this, PlayState* play) { if (!(this->stateFlags1 & PLAYER_STATE1_2000000) && ((this->heldItemAction != PLAYER_IA_FISHING_ROD) || (this->unk_B28 == 0)) && CHECK_BTN_ALL(sPlayerControlInput->press.button, BTN_Z)) { - var_v1_2 = (this == GET_PLAYER(play)) ? play->actorCtx.targetCtx.fairyActor : &GET_PLAYER(play)->actor; + var_v1_2 = (this == GET_PLAYER(play)) ? play->actorCtx.attention.fairyActor : &GET_PLAYER(play)->actor; var_a1 = (gSaveContext.options.zTargetSetting != 0) || (this != GET_PLAYER(play)); this->stateFlags1 |= PLAYER_STATE1_8000; if ((this->currentMask != PLAYER_MASK_GIANT) && (var_v1_2 != NULL) && !(var_v1_2->flags & ACTOR_FLAG_LOCK_ON_DISABLED) && !(this->stateFlags3 & (PLAYER_STATE3_200 | PLAYER_STATE3_2000))) { if ((var_v1_2 == this->focusActor) && (this == GET_PLAYER(play))) { - var_v1_2 = play->actorCtx.targetCtx.arrowPointedActor; + var_v1_2 = play->actorCtx.attention.arrowPointedActor; } if ((var_v1_2 != NULL) && @@ -4826,7 +4826,7 @@ void func_80832888(Player* this, PlayState* play) { if (this->focusActor != NULL) { if ((this == GET_PLAYER(play)) && (this->focusActor != this->autoLockOnActor) && - Target_OutsideLeashRange(this->focusActor, this, ignoreLeash)) { + Attention_OutsideLeashRange(this->focusActor, this, ignoreLeash)) { Player_ReleaseLockOn(this); this->stateFlags1 |= PLAYER_STATE1_40000000; } else if (this->focusActor != NULL) { @@ -4964,7 +4964,7 @@ s32 Player_GetMovementSpeedAndYaw(Player* this, f32* outSpeedTarget, s16* outYaw *outYawTarget = this->actor.shape.rot.y; if (this->focusActor != NULL) { - if ((play->actorCtx.targetCtx.reticleSpinCounter != 0) && !(this->stateFlags2 & PLAYER_STATE2_40)) { + if ((play->actorCtx.attention.reticleSpinCounter != 0) && !(this->stateFlags2 & PLAYER_STATE2_40)) { *outYawTarget = Math_Vec3f_Yaw(&this->actor.world.pos, &this->focusActor->focus.pos); } } else if (func_80123434(this)) { @@ -11235,7 +11235,7 @@ void Player_SetDoAction(PlayState* play, Player* this) { (this->transformation == PLAYER_FORM_ZORA)) && ((this->heldItemAction >= PLAYER_IA_SWORD_KOKIRI) || ((this->stateFlags2 & PLAYER_STATE2_100000) && - (play->actorCtx.targetCtx.fairyActor == NULL)))) { + (play->actorCtx.attention.fairyActor == NULL)))) { doActionA = DO_ACTION_PUTAWAY; if (play->msgCtx.currentTextId == 0) {} //! FAKE @@ -11697,9 +11697,9 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) { Camera_ChangeMode(camera, camMode); } - if (play->actorCtx.targetCtx.bgmEnemy != NULL) { + if (play->actorCtx.attention.bgmEnemy != NULL) { seqMode = SEQ_MODE_ENEMY; - Audio_UpdateEnemyBgmVolume(sqrtf(play->actorCtx.targetCtx.bgmEnemy->xyzDistToPlayerSq)); + Audio_UpdateEnemyBgmVolume(sqrtf(play->actorCtx.attention.bgmEnemy->xyzDistToPlayerSq)); } Audio_SetSequenceMode(seqMode); diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 7b80b2fe2c..64c72b97b9 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -669,12 +669,12 @@ 0x800B4AEC:("func_800B4AEC",), 0x800B4B50:("func_800B4B50",), 0x800B4EDC:("Actor_GetProjectedPos",), - 0x800B4F40:("Target_SetReticlePos",), - 0x800B4F78:("Target_InitReticle",), - 0x800B5040:("Target_SetFairyState",), - 0x800B51A4:("Target_Init",), - 0x800B5208:("Target_Draw",), - 0x800B5814:("Target_Update",), + 0x800B4F40:("Attention_SetReticlePos",), + 0x800B4F78:("Attention_InitReticle",), + 0x800B5040:("Attention_SetFairyState",), + 0x800B51A4:("Attention_Init",), + 0x800B5208:("Attention_Draw",), + 0x800B5814:("Attention_Update",), 0x800B5BB0:("Flags_GetSwitch",), 0x800B5BF4:("Flags_SetSwitch",), 0x800B5C34:("Flags_UnsetSwitch",), @@ -766,9 +766,9 @@ 0x800B81E0:("Actor_GetFocus",), 0x800B8214:("Actor_GetWorld",), 0x800B8248:("Actor_GetWorldPosShapeRot",), - 0x800B82EC:("Target_GetAdjustedDistSq",), - 0x800B83BC:("Target_IsActorInRange",), - 0x800B83F8:("Target_OutsideLeashRange",), + 0x800B82EC:("Attention_GetAdjustedDistSq",), + 0x800B83BC:("Attention_IsActorInRange",), + 0x800B83F8:("Attention_OutsideLeashRange",), 0x800B84D0:("Actor_TalkOfferAccepted",), 0x800B8500:("Actor_OfferTalkExchange",), 0x800B85E0:("Actor_OfferTalkExchangeEquiCylinder",), @@ -840,9 +840,9 @@ 0x800BB140:("Actor_SpawnTransitionActors",), 0x800BB2D0:("Actor_SpawnEntry",), 0x800BB498:("Actor_Delete",), - 0x800BB59C:("Target_InTargetableScreenRegion",), - 0x800BB604:("Target_FindTargetableActorForCategory",), - 0x800BB8EC:("Target_GetTargetActor",), + 0x800BB59C:("Attention_InTargetableScreenRegion",), + 0x800BB604:("Attention_FindTargetableActorForCategory",), + 0x800BB8EC:("Attention_GetTargetActor",), 0x800BBA88:("Enemy_StartFinishingBlow",), 0x800BBAC0:("func_800BBAC0",), 0x800BBB74:("func_800BBB74",), diff --git a/tools/namefixer.py b/tools/namefixer.py index b5389b2725..769e209fba 100755 --- a/tools/namefixer.py +++ b/tools/namefixer.py @@ -1297,15 +1297,15 @@ wordReplace = { "play->actorCtx.unk3": "play->actorCtx.lensActive", "play->actorCtx.unk4": "play->actorCtx.lensMaskSize", - "play->actorCtx.targetContext": "play->actorCtx.targetCtx", - "play->actorCtx.targetCtx.unk0": "play->actorCtx.targetCtx.fairyPos", - "play->actorCtx.targetCtx.unk40": "play->actorCtx.targetCtx.fairyMoveProgressFactor", - "play->actorCtx.targetCtx.unk44": "play->actorCtx.targetCtx.lockOnRadius", - "play->actorCtx.targetCtx.unk48": "play->actorCtx.targetCtx.lockOnAlpha", - "play->actorCtx.targetCtx.unk4B": "play->actorCtx.targetCtx.rotation", - "play->actorCtx.targetCtx.unk4C": "play->actorCtx.targetCtx.lockOnIndex", - "play->actorCtx.targetCtx.unk50": "play->actorCtx.targetCtx.lockOnTriangleSets", - "play->actorCtx.targetCtx.unk8C": "play->actorCtx.targetCtx.nextTarget", + "play->actorCtx.targetContext": "play->actorCtx.attention", + "play->actorCtx.attention.unk0": "play->actorCtx.attention.fairyPos", + "play->actorCtx.attention.unk40": "play->actorCtx.attention.fairyMoveProgressFactor", + "play->actorCtx.attention.unk44": "play->actorCtx.attention.lockOnRadius", + "play->actorCtx.attention.unk48": "play->actorCtx.attention.lockOnAlpha", + "play->actorCtx.attention.unk4B": "play->actorCtx.attention.rotation", + "play->actorCtx.attention.unk4C": "play->actorCtx.attention.lockOnIndex", + "play->actorCtx.attention.unk50": "play->actorCtx.attention.lockOnTriangleSets", + "play->actorCtx.attention.unk8C": "play->actorCtx.attention.nextTarget", "play->doorCtx.transitionActorList": "play->transitionActors.list", "play->nextEntranceIndex": "play->nextEntrance", "play->sceneNum": "play->sceneId", diff --git a/tools/sizes/code_functions.csv b/tools/sizes/code_functions.csv index 527af4594d..ee16dd9e20 100644 --- a/tools/sizes/code_functions.csv +++ b/tools/sizes/code_functions.csv @@ -183,12 +183,12 @@ asm/non_matchings/code/z_actor/Actor_SetFeetPos.s,Actor_SetFeetPos,0x800B4A98,0x asm/non_matchings/code/z_actor/func_800B4AEC.s,func_800B4AEC,0x800B4AEC,0x19 asm/non_matchings/code/z_actor/func_800B4B50.s,func_800B4B50,0x800B4B50,0xE3 asm/non_matchings/code/z_actor/Actor_GetProjectedPos.s,Actor_GetProjectedPos,0x800B4EDC,0x19 -asm/non_matchings/code/z_actor/Target_SetReticlePos.s,Target_SetReticlePos,0x800B4F40,0xE -asm/non_matchings/code/z_actor/Target_InitReticle.s,Target_InitReticle,0x800B4F78,0x32 -asm/non_matchings/code/z_actor/Target_SetFairyState.s,Target_SetFairyState,0x800B5040,0x59 -asm/non_matchings/code/z_actor/Target_Init.s,Target_Init,0x800B51A4,0x19 -asm/non_matchings/code/z_actor/Target_Draw.s,Target_Draw,0x800B5208,0x183 -asm/non_matchings/code/z_actor/Target_Update.s,Target_Update,0x800B5814,0xE7 +asm/non_matchings/code/z_actor/Attention_SetReticlePos.s,Attention_SetReticlePos,0x800B4F40,0xE +asm/non_matchings/code/z_actor/Attention_InitReticle.s,Attention_InitReticle,0x800B4F78,0x32 +asm/non_matchings/code/z_actor/Attention_SetFairyState.s,Attention_SetFairyState,0x800B5040,0x59 +asm/non_matchings/code/z_actor/Attention_Init.s,Attention_Init,0x800B51A4,0x19 +asm/non_matchings/code/z_actor/Attention_Draw.s,Attention_Draw,0x800B5208,0x183 +asm/non_matchings/code/z_actor/Attention_Update.s,Attention_Update,0x800B5814,0xE7 asm/non_matchings/code/z_actor/Flags_GetSwitch.s,Flags_GetSwitch,0x800B5BB0,0x11 asm/non_matchings/code/z_actor/Flags_SetSwitch.s,Flags_SetSwitch,0x800B5BF4,0x10 asm/non_matchings/code/z_actor/Flags_UnsetSwitch.s,Flags_UnsetSwitch,0x800B5C34,0x11 @@ -280,9 +280,9 @@ asm/non_matchings/code/z_actor/func_800B8118.s,func_800B8118,0x800B8118,0x32 asm/non_matchings/code/z_actor/Actor_GetFocus.s,Actor_GetFocus,0x800B81E0,0xD asm/non_matchings/code/z_actor/Actor_GetWorld.s,Actor_GetWorld,0x800B8214,0xD asm/non_matchings/code/z_actor/Actor_GetWorldPosShapeRot.s,Actor_GetWorldPosShapeRot,0x800B8248,0x29 -asm/non_matchings/code/z_actor/Target_GetAdjustedDistSq.s,Target_GetAdjustedDistSq,0x800B82EC,0x34 -asm/non_matchings/code/z_actor/Target_IsActorInRange.s,Target_IsActorInRange,0x800B83BC,0xF -asm/non_matchings/code/z_actor/Target_OutsideLeashRange.s,Target_OutsideLeashRange,0x800B83F8,0x36 +asm/non_matchings/code/z_actor/Attention_GetAdjustedDistSq.s,Attention_GetAdjustedDistSq,0x800B82EC,0x34 +asm/non_matchings/code/z_actor/Attention_IsActorInRange.s,Attention_IsActorInRange,0x800B83BC,0xF +asm/non_matchings/code/z_actor/Attention_OutsideLeashRange.s,Attention_OutsideLeashRange,0x800B83F8,0x36 asm/non_matchings/code/z_actor/Actor_TalkOfferAccepted.s,Actor_TalkOfferAccepted,0x800B84D0,0xC asm/non_matchings/code/z_actor/Actor_OfferTalkExchange.s,Actor_OfferTalkExchange,0x800B8500,0x38 asm/non_matchings/code/z_actor/Actor_OfferTalkExchangeEquiCylinder.s,Actor_OfferTalkExchangeEquiCylinder,0x800B85E0,0xD @@ -354,9 +354,9 @@ asm/non_matchings/code/z_actor/Actor_SpawnAsChild.s,Actor_SpawnAsChild,0x800BB0C asm/non_matchings/code/z_actor/Actor_SpawnTransitionActors.s,Actor_SpawnTransitionActors,0x800BB140,0x64 asm/non_matchings/code/z_actor/Actor_SpawnEntry.s,Actor_SpawnEntry,0x800BB2D0,0x72 asm/non_matchings/code/z_actor/Actor_Delete.s,Actor_Delete,0x800BB498,0x41 -asm/non_matchings/code/z_actor/Target_InTargetableScreenRegion.s,Target_InTargetableScreenRegion,0x800BB59C,0x1A -asm/non_matchings/code/z_actor/Target_FindTargetableActorForCategory.s,Target_FindTargetableActorForCategory,0x800BB604,0xBA -asm/non_matchings/code/z_actor/Target_GetTargetActor.s,Target_GetTargetActor,0x800BB8EC,0x67 +asm/non_matchings/code/z_actor/Attention_InTargetableScreenRegion.s,Attention_InTargetableScreenRegion,0x800BB59C,0x1A +asm/non_matchings/code/z_actor/Attention_FindTargetableActorForCategory.s,Attention_FindTargetableActorForCategory,0x800BB604,0xBA +asm/non_matchings/code/z_actor/Attention_GetTargetActor.s,Attention_GetTargetActor,0x800BB8EC,0x67 asm/non_matchings/code/z_actor/Enemy_StartFinishingBlow.s,Enemy_StartFinishingBlow,0x800BBA88,0xE asm/non_matchings/code/z_actor/func_800BBAC0.s,func_800BBAC0,0x800BBAC0,0x2D asm/non_matchings/code/z_actor/func_800BBB74.s,func_800BBB74,0x800BBB74,0x2B