mirror of https://github.com/zeldaret/mm.git
Target -> Attention (System Rename) (#1716)
* attention * revert flags, too large of a diff * more revert
This commit is contained in:
parent
1ddc836c8e
commit
6a0bb0345d
|
@ -287,7 +287,7 @@ typedef struct LockOnReticle {
|
||||||
/* 0x10 */ Color_RGBA8 color;
|
/* 0x10 */ Color_RGBA8 color;
|
||||||
} LockOnReticle; // size = 0x14
|
} LockOnReticle; // size = 0x14
|
||||||
|
|
||||||
typedef struct TargetContext {
|
typedef struct Attention {
|
||||||
/* 0x00 */ Vec3f fairyPos; // Used by Tatl to indicate a targetable actor or general hint
|
/* 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
|
/* 0x0C */ Vec3f reticlePos; // Main reticle pos which each `LockOnReticle` instance can reference
|
||||||
/* 0x18 */ Color_RGBAf fairyInnerColor;
|
/* 0x18 */ Color_RGBAf fairyInnerColor;
|
||||||
|
@ -304,7 +304,7 @@ typedef struct TargetContext {
|
||||||
/* 0x8C */ Actor* forcedTargetActor; // Never set to non-NULL
|
/* 0x8C */ Actor* forcedTargetActor; // Never set to non-NULL
|
||||||
/* 0x90 */ Actor* bgmEnemy;
|
/* 0x90 */ Actor* bgmEnemy;
|
||||||
/* 0x94 */ Actor* arrowPointedActor;
|
/* 0x94 */ Actor* arrowPointedActor;
|
||||||
} TargetContext; // size = 0x98
|
} Attention; // size = 0x98
|
||||||
|
|
||||||
typedef enum TargetMode {
|
typedef enum TargetMode {
|
||||||
/* 0 */ TARGET_MODE_0,
|
/* 0 */ TARGET_MODE_0,
|
||||||
|
@ -407,7 +407,7 @@ typedef struct ActorContext {
|
||||||
/* 0x00F */ u8 numLensActors;
|
/* 0x00F */ u8 numLensActors;
|
||||||
/* 0x010 */ ActorListEntry actorLists[ACTORCAT_MAX];
|
/* 0x010 */ ActorListEntry actorLists[ACTORCAT_MAX];
|
||||||
/* 0x0A0 */ Actor* lensActors[LENS_ACTOR_MAX]; // Draws up to LENS_ACTOR_MAX number of invisible actors
|
/* 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;
|
/* 0x1B8 */ ActorContextSceneFlags sceneFlags;
|
||||||
/* 0x1E4 */ TitleCardContext titleCtxt;
|
/* 0x1E4 */ TitleCardContext titleCtxt;
|
||||||
/* 0x1F4 */ PlayerImpact playerImpact;
|
/* 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 func_800B4B50(Actor* actor, struct Lights* mapper, struct PlayState* play);
|
||||||
void Actor_GetProjectedPos(struct PlayState* play, Vec3f* worldPos, Vec3f* projectedPos, f32* invW);
|
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);
|
s32 Flags_GetSwitch(struct PlayState* play, s32 flag);
|
||||||
void Flags_SetSwitch(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_GetWorld(Actor* actor);
|
||||||
PosRot Actor_GetWorldPosShapeRot(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_TalkOfferAccepted(Actor* actor, struct GameState* gameState);
|
||||||
s32 Actor_OfferTalk(Actor* actor, struct PlayState* play, f32 radius);
|
s32 Actor_OfferTalk(Actor* actor, struct PlayState* play, f32 radius);
|
||||||
s32 Actor_OfferTalkNearColChkInfoCylinder(Actor* actor, struct PlayState* play);
|
s32 Actor_OfferTalkNearColChkInfoCylinder(Actor* actor, struct PlayState* play);
|
||||||
|
|
|
@ -63,7 +63,8 @@ struct Actor* D_801ED920; // 2 funcs. 1 out of z_actor
|
||||||
void Actor_KillAllOnHalfDayChange(PlayState* play, ActorContext* actorCtx);
|
void Actor_KillAllOnHalfDayChange(PlayState* play, ActorContext* actorCtx);
|
||||||
Actor* Actor_SpawnEntry(ActorContext* actorCtx, ActorEntry* actorEntry, PlayState* play);
|
Actor* Actor_SpawnEntry(ActorContext* actorCtx, ActorEntry* actorEntry, PlayState* play);
|
||||||
Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, 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);
|
s32 func_800BA2FC(PlayState* play, Actor* actor, Vec3f* projectedPos, f32 projectedW);
|
||||||
void Actor_AddToCategory(ActorContext* actorCtx, Actor* actor, u8 actorCategory);
|
void Actor_AddToCategory(ActorContext* actorCtx, Actor* actor, u8 actorCategory);
|
||||||
Actor* Actor_RemoveFromCategory(PlayState* play, ActorContext* actorCtx, Actor* actorToRemove);
|
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);
|
*invW = (*invW < 1.0f) ? 1.0f : (1.0f / *invW);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Target_SetReticlePos(TargetContext* targetCtx, s32 reticleNum, f32 x, f32 y, f32 z) {
|
void Attention_SetReticlePos(Attention* attention, s32 reticleNum, f32 x, f32 y, f32 z) {
|
||||||
targetCtx->lockOnReticles[reticleNum].pos.x = x;
|
attention->lockOnReticles[reticleNum].pos.x = x;
|
||||||
targetCtx->lockOnReticles[reticleNum].pos.y = y;
|
attention->lockOnReticles[reticleNum].pos.y = y;
|
||||||
targetCtx->lockOnReticles[reticleNum].pos.z = z;
|
attention->lockOnReticles[reticleNum].pos.z = z;
|
||||||
|
|
||||||
targetCtx->lockOnReticles[reticleNum].radius = targetCtx->reticleRadius;
|
attention->lockOnReticles[reticleNum].radius = attention->reticleRadius;
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -456,19 +457,19 @@ TatlColor sTatlColorList[] = {
|
||||||
{ { 0, 255, 0, 255 }, { 0, 255, 0, 0 } }, // ACTORCAT_MAX
|
{ { 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;
|
TatlColor* tatlColorEntry;
|
||||||
s32 i;
|
s32 i;
|
||||||
LockOnReticle* reticle;
|
LockOnReticle* reticle;
|
||||||
|
|
||||||
Math_Vec3f_Copy(&targetCtx->reticlePos, &play->view.eye);
|
Math_Vec3f_Copy(&attention->reticlePos, &play->view.eye);
|
||||||
targetCtx->reticleFadeAlphaControl = 256;
|
attention->reticleFadeAlphaControl = 256;
|
||||||
tatlColorEntry = &sTatlColorList[actorCategory];
|
tatlColorEntry = &sTatlColorList[actorCategory];
|
||||||
targetCtx->reticleRadius = 500.0f;
|
attention->reticleRadius = 500.0f;
|
||||||
|
|
||||||
reticle = targetCtx->lockOnReticles;
|
reticle = attention->lockOnReticles;
|
||||||
for (i = 0; i < ARRAY_COUNT(targetCtx->lockOnReticles); i++, reticle++) {
|
for (i = 0; i < ARRAY_COUNT(attention->lockOnReticles); i++, reticle++) {
|
||||||
Target_SetReticlePos(targetCtx, i, 0.0f, 0.0f, 0.0f);
|
Attention_SetReticlePos(attention, i, 0.0f, 0.0f, 0.0f);
|
||||||
|
|
||||||
reticle->color.r = tatlColorEntry->inner.r;
|
reticle->color.r = tatlColorEntry->inner.r;
|
||||||
reticle->color.g = tatlColorEntry->inner.g;
|
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) {
|
void Attention_SetFairyState(Attention* attention, Actor* actor, ActorType type, PlayState* play) {
|
||||||
targetCtx->fairyPos.x = actor->focus.pos.x;
|
attention->fairyPos.x = actor->focus.pos.x;
|
||||||
targetCtx->fairyPos.y = actor->focus.pos.y + (actor->targetArrowOffset * actor->scale.y);
|
attention->fairyPos.y = actor->focus.pos.y + (actor->targetArrowOffset * actor->scale.y);
|
||||||
targetCtx->fairyPos.z = actor->focus.pos.z;
|
attention->fairyPos.z = actor->focus.pos.z;
|
||||||
|
|
||||||
targetCtx->fairyInnerColor.r = sTatlColorList[type].inner.r;
|
attention->fairyInnerColor.r = sTatlColorList[type].inner.r;
|
||||||
targetCtx->fairyInnerColor.g = sTatlColorList[type].inner.g;
|
attention->fairyInnerColor.g = sTatlColorList[type].inner.g;
|
||||||
targetCtx->fairyInnerColor.b = sTatlColorList[type].inner.b;
|
attention->fairyInnerColor.b = sTatlColorList[type].inner.b;
|
||||||
targetCtx->fairyInnerColor.a = sTatlColorList[type].inner.a;
|
attention->fairyInnerColor.a = sTatlColorList[type].inner.a;
|
||||||
targetCtx->fairyOuterColor.r = sTatlColorList[type].outer.r;
|
attention->fairyOuterColor.r = sTatlColorList[type].outer.r;
|
||||||
targetCtx->fairyOuterColor.g = sTatlColorList[type].outer.g;
|
attention->fairyOuterColor.g = sTatlColorList[type].outer.g;
|
||||||
targetCtx->fairyOuterColor.b = sTatlColorList[type].outer.b;
|
attention->fairyOuterColor.b = sTatlColorList[type].outer.b;
|
||||||
targetCtx->fairyOuterColor.a = sTatlColorList[type].outer.a;
|
attention->fairyOuterColor.a = sTatlColorList[type].outer.a;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Target_Init(TargetContext* targetCtx, Actor* actor, PlayState* play) {
|
void Attention_Init(Attention* attention, Actor* actor, PlayState* play) {
|
||||||
targetCtx->bgmEnemy = NULL;
|
attention->bgmEnemy = NULL;
|
||||||
targetCtx->forcedTargetActor = NULL;
|
attention->forcedTargetActor = NULL;
|
||||||
targetCtx->reticleActor = NULL;
|
attention->reticleActor = NULL;
|
||||||
targetCtx->fairyActor = NULL;
|
attention->fairyActor = NULL;
|
||||||
targetCtx->reticleSpinCounter = 0;
|
attention->reticleSpinCounter = 0;
|
||||||
targetCtx->curReticle = 0;
|
attention->curReticle = 0;
|
||||||
targetCtx->fairyMoveProgressFactor = 0.0f;
|
attention->fairyMoveProgressFactor = 0.0f;
|
||||||
Target_SetFairyState(targetCtx, actor, actor->category, play);
|
Attention_SetFairyState(attention, actor, actor->category, play);
|
||||||
Target_InitReticle(targetCtx, 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);
|
Player* player = GET_PLAYER(play);
|
||||||
Actor* actor;
|
Actor* actor;
|
||||||
|
|
||||||
|
@ -512,11 +513,11 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
actor = targetCtx->reticleActor;
|
actor = attention->reticleActor;
|
||||||
|
|
||||||
OPEN_DISPS(play->state.gfxCtx);
|
OPEN_DISPS(play->state.gfxCtx);
|
||||||
|
|
||||||
if (targetCtx->reticleFadeAlphaControl != 0) {
|
if (attention->reticleFadeAlphaControl != 0) {
|
||||||
LockOnReticle* reticle;
|
LockOnReticle* reticle;
|
||||||
s16 alpha = 255;
|
s16 alpha = 255;
|
||||||
f32 projectdPosScale = 1.0f;
|
f32 projectdPosScale = 1.0f;
|
||||||
|
@ -527,32 +528,32 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) {
|
||||||
s32 curReticle;
|
s32 curReticle;
|
||||||
f32 lockOnScaleX;
|
f32 lockOnScaleX;
|
||||||
|
|
||||||
if (targetCtx->reticleSpinCounter != 0) {
|
if (attention->reticleSpinCounter != 0) {
|
||||||
// Reticle is spinning so it is active, only need to draw one
|
// Reticle is spinning so it is active, only need to draw one
|
||||||
numReticles = 1;
|
numReticles = 1;
|
||||||
} else {
|
} else {
|
||||||
// Use multiple reticles for the motion blur effect from the reticle
|
// Use multiple reticles for the motion blur effect from the reticle
|
||||||
// quickly zooming in on an actor from off screen
|
// quickly zooming in on an actor from off screen
|
||||||
numReticles = ARRAY_COUNT(targetCtx->lockOnReticles);
|
numReticles = ARRAY_COUNT(attention->lockOnReticles);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor != NULL) {
|
if (actor != NULL) {
|
||||||
Math_Vec3f_Copy(&targetCtx->reticlePos, &actor->focus.pos);
|
Math_Vec3f_Copy(&attention->reticlePos, &actor->focus.pos);
|
||||||
projectdPosScale = (500.0f - targetCtx->reticleRadius) / 420.0f;
|
projectdPosScale = (500.0f - attention->reticleRadius) / 420.0f;
|
||||||
} else {
|
} else {
|
||||||
// Not locked on, start fading out
|
// Not locked on, start fading out
|
||||||
targetCtx->reticleFadeAlphaControl -= 120;
|
attention->reticleFadeAlphaControl -= 120;
|
||||||
|
|
||||||
if (targetCtx->reticleFadeAlphaControl < 0) {
|
if (attention->reticleFadeAlphaControl < 0) {
|
||||||
targetCtx->reticleFadeAlphaControl = 0;
|
attention->reticleFadeAlphaControl = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// `reticleFadeAlphaControl` is only used as an alpha when fading out.
|
// `reticleFadeAlphaControl` is only used as an alpha when fading out.
|
||||||
// Otherwise it defaults to 255, set above.
|
// 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 = ((SCREEN_WIDTH / 2) * (projectedPos.x * invW)) * projectdPosScale;
|
||||||
projectedPos.x = CLAMP(projectedPos.x, -SCREEN_WIDTH, SCREEN_WIDTH);
|
projectedPos.x = CLAMP(projectedPos.x, -SCREEN_WIDTH, SCREEN_WIDTH);
|
||||||
|
@ -562,20 +563,20 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) {
|
||||||
|
|
||||||
projectedPos.z *= projectdPosScale;
|
projectedPos.z *= projectdPosScale;
|
||||||
|
|
||||||
targetCtx->curReticle--;
|
attention->curReticle--;
|
||||||
|
|
||||||
if (targetCtx->curReticle < 0) {
|
if (attention->curReticle < 0) {
|
||||||
targetCtx->curReticle = ARRAY_COUNT(targetCtx->lockOnReticles) - 1;
|
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)) {
|
if (!(player->stateFlags1 & PLAYER_STATE1_40) || (actor != player->focusActor)) {
|
||||||
OVERLAY_DISP = Gfx_SetupDL(OVERLAY_DISP, SETUPDL_57);
|
OVERLAY_DISP = Gfx_SetupDL(OVERLAY_DISP, SETUPDL_57);
|
||||||
|
|
||||||
for (i = 0, curReticle = targetCtx->curReticle; i < numReticles;
|
for (i = 0, curReticle = attention->curReticle; i < numReticles;
|
||||||
i++, curReticle = (curReticle + 1) % ARRAY_COUNT(targetCtx->lockOnReticles)) {
|
i++, curReticle = (curReticle + 1) % ARRAY_COUNT(attention->lockOnReticles)) {
|
||||||
reticle = &targetCtx->lockOnReticles[curReticle];
|
reticle = &attention->lockOnReticles[curReticle];
|
||||||
|
|
||||||
if (reticle->radius < 500.0f) {
|
if (reticle->radius < 500.0f) {
|
||||||
s32 triangleIndex;
|
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,
|
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, reticle->color.r, reticle->color.g, reticle->color.b,
|
||||||
(u8)alpha);
|
(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
|
// Draw the 4 triangles that make up the reticle
|
||||||
for (triangleIndex = 0; triangleIndex < 4; triangleIndex++) {
|
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) {
|
if (alpha < 0) {
|
||||||
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)) {
|
if ((actor != NULL) && !(actor->flags & ACTOR_FLAG_LOCK_ON_DISABLED)) {
|
||||||
TatlColor* color = &sTatlColorList[actor->category];
|
TatlColor* color = &sTatlColorList[actor->category];
|
||||||
|
@ -634,7 +635,7 @@ void Target_Draw(TargetContext* targetCtx, PlayState* play) {
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
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;
|
s32 pad;
|
||||||
Actor* actor = NULL;
|
Actor* actor = NULL;
|
||||||
s32 category;
|
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
|
// If currently not locked on to an actor and not pressing down on the analog stick then try to find a targetable
|
||||||
// actor
|
// actor
|
||||||
if ((player->focusActor != NULL) && (player->unk_AE3[player->unk_ADE] == 2)) {
|
if ((player->focusActor != NULL) && (player->unk_AE3[player->unk_ADE] == 2)) {
|
||||||
targetCtx->arrowPointedActor = NULL;
|
attention->arrowPointedActor = NULL;
|
||||||
} else {
|
} else {
|
||||||
Target_GetTargetActor(play, &play->actorCtx, &actor, &D_801ED920, player);
|
Attention_GetTargetActor(play, &play->actorCtx, &actor, &D_801ED920, player);
|
||||||
targetCtx->arrowPointedActor = actor;
|
attention->arrowPointedActor = actor;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (targetCtx->forcedTargetActor != NULL) {
|
if (attention->forcedTargetActor != NULL) {
|
||||||
actor = targetCtx->forcedTargetActor;
|
actor = attention->forcedTargetActor;
|
||||||
targetCtx->forcedTargetActor = NULL;
|
attention->forcedTargetActor = NULL;
|
||||||
} else if (playerFocusActor != NULL) {
|
} else if (playerFocusActor != NULL) {
|
||||||
actor = playerFocusActor;
|
actor = playerFocusActor;
|
||||||
}
|
}
|
||||||
|
@ -663,30 +664,30 @@ void Target_Update(TargetContext* targetCtx, Player* player, Actor* playerFocusA
|
||||||
category = player->actor.category;
|
category = player->actor.category;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((actor != targetCtx->fairyActor) || (category != targetCtx->fairyActorCategory)) {
|
if ((actor != attention->fairyActor) || (category != attention->fairyActorCategory)) {
|
||||||
targetCtx->fairyActor = actor;
|
attention->fairyActor = actor;
|
||||||
targetCtx->fairyActorCategory = category;
|
attention->fairyActorCategory = category;
|
||||||
targetCtx->fairyMoveProgressFactor = 1.0f;
|
attention->fairyMoveProgressFactor = 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor == NULL) {
|
if (actor == NULL) {
|
||||||
actor = &player->actor;
|
actor = &player->actor;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Math_StepToF(&targetCtx->fairyMoveProgressFactor, 0.0f, 0.25f)) {
|
if (!Math_StepToF(&attention->fairyMoveProgressFactor, 0.0f, 0.25f)) {
|
||||||
f32 fairyMoveScale = 0.25f / targetCtx->fairyMoveProgressFactor;
|
f32 fairyMoveScale = 0.25f / attention->fairyMoveProgressFactor;
|
||||||
f32 x = actor->focus.pos.x - targetCtx->fairyPos.x;
|
f32 x = actor->focus.pos.x - attention->fairyPos.x;
|
||||||
f32 y = (actor->focus.pos.y + (actor->targetArrowOffset * actor->scale.y)) - targetCtx->fairyPos.y;
|
f32 y = (actor->focus.pos.y + (actor->targetArrowOffset * actor->scale.y)) - attention->fairyPos.y;
|
||||||
f32 z = actor->focus.pos.z - targetCtx->fairyPos.z;
|
f32 z = actor->focus.pos.z - attention->fairyPos.z;
|
||||||
|
|
||||||
targetCtx->fairyPos.x += x * fairyMoveScale;
|
attention->fairyPos.x += x * fairyMoveScale;
|
||||||
targetCtx->fairyPos.y += y * fairyMoveScale;
|
attention->fairyPos.y += y * fairyMoveScale;
|
||||||
targetCtx->fairyPos.z += z * fairyMoveScale;
|
attention->fairyPos.z += z * fairyMoveScale;
|
||||||
} else {
|
} 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);
|
Actor_GetProjectedPos(play, &playerFocusActor->focus.pos, &projectedPos, &invW);
|
||||||
if ((projectedPos.z <= 0.0f) || (fabsf(projectedPos.x * invW) >= 1.0f) ||
|
if ((projectedPos.z <= 0.0f) || (fabsf(projectedPos.x * invW) >= 1.0f) ||
|
||||||
(fabsf(projectedPos.y * 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 != NULL) {
|
||||||
if (playerFocusActor != targetCtx->reticleActor) {
|
if (playerFocusActor != attention->reticleActor) {
|
||||||
s32 sfxId;
|
s32 sfxId;
|
||||||
|
|
||||||
// Lock On entries need to be re-initialized when changing the targeted actor
|
// 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) {
|
if (playerFocusActor->id == ACTOR_EN_BOOM) {
|
||||||
// Avoid drawing the lock on triangles on a zora boomerang
|
// 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)
|
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);
|
Audio_PlaySfx(sfxId);
|
||||||
}
|
}
|
||||||
|
|
||||||
targetCtx->reticlePos.x = playerFocusActor->world.pos.x;
|
attention->reticlePos.x = playerFocusActor->world.pos.x;
|
||||||
targetCtx->reticlePos.y =
|
attention->reticlePos.y =
|
||||||
playerFocusActor->world.pos.y - (playerFocusActor->shape.yOffset * playerFocusActor->scale.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) {
|
if (attention->reticleSpinCounter == 0) {
|
||||||
f32 lockOnStep = (500.0f - targetCtx->reticleRadius) * 3.0f;
|
f32 lockOnStep = (500.0f - attention->reticleRadius) * 3.0f;
|
||||||
|
|
||||||
lockOnStep = CLAMP(lockOnStep, 30.0f, 100.0f);
|
lockOnStep = CLAMP(lockOnStep, 30.0f, 100.0f);
|
||||||
|
|
||||||
if (Math_StepToF(&targetCtx->reticleRadius, 80.0f, lockOnStep)) {
|
if (Math_StepToF(&attention->reticleRadius, 80.0f, lockOnStep)) {
|
||||||
targetCtx->reticleSpinCounter++;
|
attention->reticleSpinCounter++;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 0x80 is or'd to avoid getting this value be set to zero
|
// 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)
|
// This rotation value gets multiplied by 0x200, which multiplied by 0x80 gives a full turn (0x10000)
|
||||||
targetCtx->reticleSpinCounter = (targetCtx->reticleSpinCounter + 3) | 0x80;
|
attention->reticleSpinCounter = (attention->reticleSpinCounter + 3) | 0x80;
|
||||||
targetCtx->reticleRadius = 120.0f;
|
attention->reticleRadius = 120.0f;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
targetCtx->reticleActor = NULL;
|
attention->reticleActor = NULL;
|
||||||
Math_StepToF(&targetCtx->reticleRadius, 500.0f, 80.0f);
|
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,
|
* 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.
|
* 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;
|
f32 adjDistSq;
|
||||||
s16 yawDiff;
|
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
|
* 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;
|
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.
|
* 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) ||
|
if ((actor->update == NULL) || !(actor->flags & ACTOR_FLAG_TARGETABLE) ||
|
||||||
(actor->flags & ACTOR_FLAG_LOCK_ON_DISABLED)) {
|
(actor->flags & ACTOR_FLAG_LOCK_ON_DISABLED)) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -1931,7 +1932,7 @@ s32 Target_OutsideLeashRange(Actor* actor, Player* player, s32 ignoreLeash) {
|
||||||
distSq = actor->xyzDistToPlayerSq;
|
distSq = actor->xyzDistToPlayerSq;
|
||||||
}
|
}
|
||||||
|
|
||||||
return !Target_IsActorInRange(actor, gTargetRanges[actor->targetMode].leashScale * distSq);
|
return !Attention_IsActorInRange(actor, gTargetRanges[actor->targetMode].leashScale * distSq);
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -2457,7 +2458,7 @@ void Actor_InitContext(PlayState* play, ActorContext* actorCtx, ActorEntry* acto
|
||||||
actorCtx->absoluteSpace = NULL;
|
actorCtx->absoluteSpace = NULL;
|
||||||
|
|
||||||
Actor_SpawnEntry(actorCtx, actorEntry, play);
|
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);
|
Actor_InitHalfDaysBit(actorCtx);
|
||||||
Fault_AddClient(&sActorFaultClient, (void*)Actor_PrintLists, actorCtx, NULL);
|
Fault_AddClient(&sActorFaultClient, (void*)Actor_PrintLists, actorCtx, NULL);
|
||||||
Player_SpawnHorse(play, (Player*)actorCtx->actorLists[ACTORCAT_PLAYER].first);
|
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)) {
|
if ((actor == NULL) || (player->unk_738 < 5)) {
|
||||||
actor = NULL;
|
actor = NULL;
|
||||||
if (actorCtx->targetCtx.reticleSpinCounter != 0) {
|
if (actorCtx->attention.reticleSpinCounter != 0) {
|
||||||
actorCtx->targetCtx.reticleSpinCounter = 0;
|
actorCtx->attention.reticleSpinCounter = 0;
|
||||||
Audio_PlaySfx(NA_SE_SY_LOCK_OFF);
|
Audio_PlaySfx(NA_SE_SY_LOCK_OFF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(player->stateFlags1 & PLAYER_STATE1_2)) {
|
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);
|
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);
|
Camera_ChangeMode(Play_GetCamera(play, Play_GetActiveCamId(play)), CAM_MODE_NORMAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor == actorCtx->targetCtx.fairyActor) {
|
if (actor == actorCtx->attention.fairyActor) {
|
||||||
actorCtx->targetCtx.fairyActor = NULL;
|
actorCtx->attention.fairyActor = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor == actorCtx->targetCtx.forcedTargetActor) {
|
if (actor == actorCtx->attention.forcedTargetActor) {
|
||||||
actorCtx->targetCtx.forcedTargetActor = NULL;
|
actorCtx->attention.forcedTargetActor = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor == actorCtx->targetCtx.bgmEnemy) {
|
if (actor == actorCtx->attention.bgmEnemy) {
|
||||||
actorCtx->targetCtx.bgmEnemy = NULL;
|
actorCtx->attention.bgmEnemy = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
AudioSfx_StopByPos(&actor->projectedPos);
|
AudioSfx_StopByPos(&actor->projectedPos);
|
||||||
|
@ -3517,7 +3518,7 @@ Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play) {
|
||||||
return newHead;
|
return newHead;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Target_InTargetableScreenRegion(PlayState* play, Actor* actor) {
|
bool Attention_InTargetableScreenRegion(PlayState* play, Actor* actor) {
|
||||||
s16 screenPosX;
|
s16 screenPosX;
|
||||||
s16 screenPosY;
|
s16 screenPosY;
|
||||||
|
|
||||||
|
@ -3552,12 +3553,12 @@ bool Target_InTargetableScreenRegion(PlayState* play, Actor* actor) {
|
||||||
* - Must not be blocked by a surface (?)
|
* - 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
|
* 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
|
* 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.
|
* 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,
|
void Attention_FindTargetableActorForCategory(PlayState* play, ActorContext* actorCtx, Player* player,
|
||||||
ActorType actorCategory) {
|
ActorType actorCategory) {
|
||||||
f32 distSq;
|
f32 distSq;
|
||||||
Actor* actor = actorCtx->actorLists[actorCategory].first;
|
Actor* actor = actorCtx->actorLists[actorCategory].first;
|
||||||
|
@ -3579,7 +3580,7 @@ void Target_FindTargetableActorForCategory(PlayState* play, ActorContext* actorC
|
||||||
if ((actorCategory == ACTORCAT_ENEMY) &&
|
if ((actorCategory == ACTORCAT_ENEMY) &&
|
||||||
CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_HOSTILE)) {
|
CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_HOSTILE)) {
|
||||||
if ((actor->xyzDistToPlayerSq < SQ(500.0f)) && (actor->xyzDistToPlayerSq < sBgmEnemyDistSq)) {
|
if ((actor->xyzDistToPlayerSq < SQ(500.0f)) && (actor->xyzDistToPlayerSq < sBgmEnemyDistSq)) {
|
||||||
actorCtx->targetCtx.bgmEnemy = actor;
|
actorCtx->attention.bgmEnemy = actor;
|
||||||
sBgmEnemyDistSq = actor->xyzDistToPlayerSq;
|
sBgmEnemyDistSq = actor->xyzDistToPlayerSq;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3589,7 +3590,7 @@ void Target_FindTargetableActorForCategory(PlayState* play, ActorContext* actorC
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
distSq = Target_GetAdjustedDistSq(actor, player, sTargetPlayerRotY);
|
distSq = Attention_GetAdjustedDistSq(actor, player, sTargetPlayerRotY);
|
||||||
|
|
||||||
isNearestTargetableActor = (actor->flags & ACTOR_FLAG_TARGETABLE) && (distSq < sTargetableNearestActorDistSq);
|
isNearestTargetableActor = (actor->flags & ACTOR_FLAG_TARGETABLE) && (distSq < sTargetableNearestActorDistSq);
|
||||||
phi_s2_2 = (actor->flags & ACTOR_FLAG_40000000) && (distSq < D_801ED8D0);
|
phi_s2_2 = (actor->flags & ACTOR_FLAG_40000000) && (distSq < D_801ED8D0);
|
||||||
|
@ -3598,7 +3599,7 @@ void Target_FindTargetableActorForCategory(PlayState* play, ActorContext* actorC
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Target_IsActorInRange(actor, distSq) && Target_InTargetableScreenRegion(play, actor)) {
|
if (Attention_IsActorInRange(actor, distSq) && Attention_InTargetableScreenRegion(play, actor)) {
|
||||||
CollisionPoly* poly;
|
CollisionPoly* poly;
|
||||||
s32 bgId;
|
s32 bgId;
|
||||||
Vec3f posResult;
|
Vec3f posResult;
|
||||||
|
@ -3641,12 +3642,13 @@ u8 sTargetableActorCategories[] = {
|
||||||
/**
|
/**
|
||||||
* Search for the nearest targetable actor.
|
* 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
|
* The actor found is stored in the targetableP parameter. It may be NULL if no actor that fulfills the criteria is
|
||||||
* found.
|
* 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;
|
u8* actorCategories;
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
|
@ -3654,21 +3656,21 @@ void Target_GetTargetActor(PlayState* play, ActorContext* actorCtx, Actor** targ
|
||||||
sTargetableNearestActorDistSq = D_801ED8D0 = sBgmEnemyDistSq = FLT_MAX;
|
sTargetableNearestActorDistSq = D_801ED8D0 = sBgmEnemyDistSq = FLT_MAX;
|
||||||
sTargetablePrioritizedPriority = D_801ED8D8 = INT32_MAX;
|
sTargetablePrioritizedPriority = D_801ED8D8 = INT32_MAX;
|
||||||
|
|
||||||
actorCtx->targetCtx.bgmEnemy = NULL;
|
actorCtx->attention.bgmEnemy = NULL;
|
||||||
sTargetPlayerRotY = player->actor.shape.rot.y;
|
sTargetPlayerRotY = player->actor.shape.rot.y;
|
||||||
|
|
||||||
actorCategories = sTargetableActorCategories;
|
actorCategories = sTargetableActorCategories;
|
||||||
|
|
||||||
// Try to search for a targetable actor that's a Boss, Enemy or Bg first
|
// Try to search for a targetable actor that's a Boss, Enemy or Bg first
|
||||||
for (i = 0; i < 3; i++) {
|
for (i = 0; i < 3; i++) {
|
||||||
Target_FindTargetableActorForCategory(play, actorCtx, player, *actorCategories);
|
Attention_FindTargetableActorForCategory(play, actorCtx, player, *actorCategories);
|
||||||
actorCategories++;
|
actorCategories++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If no actor in the above categories was found then try to search for one in every other category
|
// If no actor in the above categories was found then try to search for one in every other category
|
||||||
if (sTargetableNearestActor == NULL) {
|
if (sTargetableNearestActor == NULL) {
|
||||||
for (; i < ARRAY_COUNT(sTargetableActorCategories); i++) {
|
for (; i < ARRAY_COUNT(sTargetableActorCategories); i++) {
|
||||||
Target_FindTargetableActorForCategory(play, actorCtx, player, *actorCategories);
|
Attention_FindTargetableActorForCategory(play, actorCtx, player, *actorCategories);
|
||||||
actorCategories++;
|
actorCategories++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6580,7 +6580,7 @@ void Interface_Draw(PlayState* play) {
|
||||||
Map_DrawMinimap(play);
|
Map_DrawMinimap(play);
|
||||||
|
|
||||||
if ((R_PAUSE_BG_PRERENDER_STATE != 2) && (R_PAUSE_BG_PRERENDER_STATE != 3)) {
|
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);
|
Gfx_SetupDL39_Overlay(play->state.gfxCtx);
|
||||||
|
|
|
@ -797,8 +797,8 @@ void Boss05_LilyPadWithHead_Move(Boss05* this, PlayState* play) {
|
||||||
|
|
||||||
if (player2->focusActor == &this->dyna.actor) {
|
if (player2->focusActor == &this->dyna.actor) {
|
||||||
player2->focusActor = &child->dyna.actor;
|
player2->focusActor = &child->dyna.actor;
|
||||||
play->actorCtx.targetCtx.fairyActor = &child->dyna.actor;
|
play->actorCtx.attention.fairyActor = &child->dyna.actor;
|
||||||
play->actorCtx.targetCtx.reticleActor = &child->dyna.actor;
|
play->actorCtx.attention.reticleActor = &child->dyna.actor;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < BIO_DEKU_BABA_LILY_PAD_LIMB_MAX; i++) {
|
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) {
|
if (player->focusActor == &this->dyna.actor) {
|
||||||
player->focusActor = &walkingHead->dyna.actor;
|
player->focusActor = &walkingHead->dyna.actor;
|
||||||
play->actorCtx.targetCtx.fairyActor = &walkingHead->dyna.actor;
|
play->actorCtx.attention.fairyActor = &walkingHead->dyna.actor;
|
||||||
play->actorCtx.targetCtx.reticleActor = &walkingHead->dyna.actor;
|
play->actorCtx.attention.reticleActor = &walkingHead->dyna.actor;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < BIO_DEKU_BABA_HEAD_LIMB_MAX; i++) {
|
for (i = 0; i < BIO_DEKU_BABA_HEAD_LIMB_MAX; i++) {
|
||||||
|
|
|
@ -972,11 +972,11 @@ void func_8088E850(EnElf* this, PlayState* play) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
targetFairyActor = play->actorCtx.targetCtx.fairyActor;
|
targetFairyActor = play->actorCtx.attention.fairyActor;
|
||||||
if ((player->stateFlags1 & PLAYER_STATE1_40) && (player->talkActor != NULL)) {
|
if ((player->stateFlags1 & PLAYER_STATE1_40) && (player->talkActor != NULL)) {
|
||||||
Math_Vec3f_Copy(&nextPos, &player->talkActor->focus.pos);
|
Math_Vec3f_Copy(&nextPos, &player->talkActor->focus.pos);
|
||||||
} else {
|
} 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;
|
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) {
|
void func_8088EFA4(EnElf* this, PlayState* play) {
|
||||||
Actor* targetFairyActor = play->actorCtx.targetCtx.fairyActor;
|
Actor* targetFairyActor = play->actorCtx.attention.fairyActor;
|
||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
f32 transitionRate;
|
f32 transitionRate;
|
||||||
|
|
||||||
|
@ -1066,7 +1066,7 @@ void func_8088EFA4(EnElf* this, PlayState* play) {
|
||||||
this->outerColor.b = 80.0f;
|
this->outerColor.b = 80.0f;
|
||||||
this->outerColor.a = 0.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_268 = 0;
|
||||||
this->unk_238 = 1.0f;
|
this->unk_238 = 1.0f;
|
||||||
if (!this->unk_269) {
|
if (!this->unk_269) {
|
||||||
|
@ -1074,18 +1074,18 @@ void func_8088EFA4(EnElf* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
} else if (this->unk_268 == 0) {
|
} else if (this->unk_268 == 0) {
|
||||||
if ((targetFairyActor == NULL) ||
|
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;
|
this->unk_268 = 1;
|
||||||
}
|
}
|
||||||
} else if (this->unk_238 != 0.0f) {
|
} else if (this->unk_238 != 0.0f) {
|
||||||
if (Math_StepToF(&this->unk_238, 0.0f, 0.25f)) {
|
if (Math_StepToF(&this->unk_238, 0.0f, 0.25f)) {
|
||||||
this->innerColor = play->actorCtx.targetCtx.fairyInnerColor;
|
this->innerColor = play->actorCtx.attention.fairyInnerColor;
|
||||||
this->outerColor = play->actorCtx.targetCtx.fairyOuterColor;
|
this->outerColor = play->actorCtx.attention.fairyOuterColor;
|
||||||
} else {
|
} else {
|
||||||
transitionRate = 0.25f / this->unk_238;
|
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);
|
transitionRate);
|
||||||
func_8088EF18(&this->outerColor, &play->actorCtx.targetCtx.fairyOuterColor, &this->outerColor,
|
func_8088EF18(&this->outerColor, &play->actorCtx.attention.fairyOuterColor, &this->outerColor,
|
||||||
transitionRate);
|
transitionRate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1138,7 +1138,7 @@ void func_8088F214(EnElf* this, PlayState* play) {
|
||||||
sp34 = 1;
|
sp34 = 1;
|
||||||
Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_BELL_ANGER - SFX_FLAG);
|
Actor_PlaySfx_Flagged(&this->actor, NA_SE_EV_BELL_ANGER - SFX_FLAG);
|
||||||
} else {
|
} else {
|
||||||
targetFairyActor = play->actorCtx.targetCtx.fairyActor;
|
targetFairyActor = play->actorCtx.attention.fairyActor;
|
||||||
if (player->stateFlags1 & PLAYER_STATE1_400) {
|
if (player->stateFlags1 & PLAYER_STATE1_400) {
|
||||||
sp34 = 10;
|
sp34 = 10;
|
||||||
this->unk_25C = 100;
|
this->unk_25C = 100;
|
||||||
|
@ -1282,7 +1282,7 @@ void func_8088FA38(EnElf* this, PlayState* play) {
|
||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
|
|
||||||
if (this->fairyFlags & 0x10) {
|
if (this->fairyFlags & 0x10) {
|
||||||
refPos = play->actorCtx.targetCtx.fairyPos;
|
refPos = play->actorCtx.attention.fairyPos;
|
||||||
|
|
||||||
if (this->unk_234 != NULL) {
|
if (this->unk_234 != NULL) {
|
||||||
refPos = this->unk_234->world.pos;
|
refPos = this->unk_234->world.pos;
|
||||||
|
|
|
@ -2179,8 +2179,8 @@ void EnKnight_FlyingHeadDone(EnKnight* this, PlayState* play) {
|
||||||
sIgosHeadInstance = NULL;
|
sIgosHeadInstance = NULL;
|
||||||
this->actor.flags |= ACTOR_FLAG_TARGETABLE;
|
this->actor.flags |= ACTOR_FLAG_TARGETABLE;
|
||||||
player->focusActor = &this->actor;
|
player->focusActor = &this->actor;
|
||||||
play->actorCtx.targetCtx.fairyActor = &this->actor;
|
play->actorCtx.attention.fairyActor = &this->actor;
|
||||||
play->actorCtx.targetCtx.reticleActor = &this->actor;
|
play->actorCtx.attention.reticleActor = &this->actor;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->timers[0] == 15) {
|
if (this->timers[0] == 15) {
|
||||||
|
@ -3257,8 +3257,8 @@ void EnKnight_FlyingHead(EnKnight* this, PlayState* play) {
|
||||||
this->timers[0] = 20;
|
this->timers[0] = 20;
|
||||||
sIgosInstance->actor.flags &= ~ACTOR_FLAG_TARGETABLE;
|
sIgosInstance->actor.flags &= ~ACTOR_FLAG_TARGETABLE;
|
||||||
player->focusActor = &this->actor;
|
player->focusActor = &this->actor;
|
||||||
play->actorCtx.targetCtx.fairyActor = &this->actor;
|
play->actorCtx.attention.fairyActor = &this->actor;
|
||||||
play->actorCtx.targetCtx.reticleActor = &this->actor;
|
play->actorCtx.attention.reticleActor = &this->actor;
|
||||||
Math_Vec3f_Copy(&this->actor.world.pos, &sIgosInstance->actor.world.pos);
|
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.world.rot, &sIgosInstance->actor.world.rot);
|
||||||
Math_Vec3s_Copy(&this->actor.shape.rot, &sIgosInstance->actor.world.rot);
|
Math_Vec3s_Copy(&this->actor.shape.rot, &sIgosInstance->actor.world.rot);
|
||||||
|
|
|
@ -431,8 +431,8 @@ void func_80BB7578(EnTanron2* this, PlayState* play) {
|
||||||
Actor_PlaySfx(&this->actor, NA_SE_EN_IKURA_DAMAGE);
|
Actor_PlaySfx(&this->actor, NA_SE_EN_IKURA_DAMAGE);
|
||||||
if ((player->focusActor != NULL) && (&this->actor != player->focusActor)) {
|
if ((player->focusActor != NULL) && (&this->actor != player->focusActor)) {
|
||||||
player->focusActor = &this->actor;
|
player->focusActor = &this->actor;
|
||||||
play->actorCtx.targetCtx.fairyActor = &this->actor;
|
play->actorCtx.attention.fairyActor = &this->actor;
|
||||||
play->actorCtx.targetCtx.reticleActor = &this->actor;
|
play->actorCtx.attention.reticleActor = &this->actor;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this->unk_154 = 15;
|
this->unk_154 = 15;
|
||||||
|
|
|
@ -1110,7 +1110,7 @@ s32 func_80AEEA4C(EnTk* this, PlayState* play) {
|
||||||
ret = 3;
|
ret = 3;
|
||||||
} else if (this->actor.xyzDistToPlayerSq < SQ(60.0f)) {
|
} else if (this->actor.xyzDistToPlayerSq < SQ(60.0f)) {
|
||||||
ret = 0;
|
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))) {
|
(this->actor.xyzDistToPlayerSq < SQ(80.0f))) {
|
||||||
ret = 1;
|
ret = 1;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -4682,7 +4682,7 @@ void Player_UpdateShapeYaw(Player* this, PlayState* play) {
|
||||||
Actor* focusActor = this->focusActor;
|
Actor* focusActor = this->focusActor;
|
||||||
|
|
||||||
if ((focusActor != NULL) &&
|
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)) {
|
(focusActor->id != ACTOR_OBJ_NOZOKI)) {
|
||||||
Math_ScaledStepToS(&this->actor.shape.rot.y, Math_Vec3f_Yaw(&this->actor.world.pos, &focusActor->focus.pos),
|
Math_ScaledStepToS(&this->actor.shape.rot.y, Math_Vec3f_Yaw(&this->actor.world.pos, &focusActor->focus.pos),
|
||||||
0xFA0);
|
0xFA0);
|
||||||
|
@ -4795,14 +4795,14 @@ void func_80832888(Player* this, PlayState* play) {
|
||||||
if (!(this->stateFlags1 & PLAYER_STATE1_2000000) &&
|
if (!(this->stateFlags1 & PLAYER_STATE1_2000000) &&
|
||||||
((this->heldItemAction != PLAYER_IA_FISHING_ROD) || (this->unk_B28 == 0)) &&
|
((this->heldItemAction != PLAYER_IA_FISHING_ROD) || (this->unk_B28 == 0)) &&
|
||||||
CHECK_BTN_ALL(sPlayerControlInput->press.button, BTN_Z)) {
|
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));
|
var_a1 = (gSaveContext.options.zTargetSetting != 0) || (this != GET_PLAYER(play));
|
||||||
this->stateFlags1 |= PLAYER_STATE1_8000;
|
this->stateFlags1 |= PLAYER_STATE1_8000;
|
||||||
if ((this->currentMask != PLAYER_MASK_GIANT) && (var_v1_2 != NULL) &&
|
if ((this->currentMask != PLAYER_MASK_GIANT) && (var_v1_2 != NULL) &&
|
||||||
!(var_v1_2->flags & ACTOR_FLAG_LOCK_ON_DISABLED) &&
|
!(var_v1_2->flags & ACTOR_FLAG_LOCK_ON_DISABLED) &&
|
||||||
!(this->stateFlags3 & (PLAYER_STATE3_200 | PLAYER_STATE3_2000))) {
|
!(this->stateFlags3 & (PLAYER_STATE3_200 | PLAYER_STATE3_2000))) {
|
||||||
if ((var_v1_2 == this->focusActor) && (this == GET_PLAYER(play))) {
|
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) &&
|
if ((var_v1_2 != NULL) &&
|
||||||
|
@ -4826,7 +4826,7 @@ void func_80832888(Player* this, PlayState* play) {
|
||||||
|
|
||||||
if (this->focusActor != NULL) {
|
if (this->focusActor != NULL) {
|
||||||
if ((this == GET_PLAYER(play)) && (this->focusActor != this->autoLockOnActor) &&
|
if ((this == GET_PLAYER(play)) && (this->focusActor != this->autoLockOnActor) &&
|
||||||
Target_OutsideLeashRange(this->focusActor, this, ignoreLeash)) {
|
Attention_OutsideLeashRange(this->focusActor, this, ignoreLeash)) {
|
||||||
Player_ReleaseLockOn(this);
|
Player_ReleaseLockOn(this);
|
||||||
this->stateFlags1 |= PLAYER_STATE1_40000000;
|
this->stateFlags1 |= PLAYER_STATE1_40000000;
|
||||||
} else if (this->focusActor != NULL) {
|
} else if (this->focusActor != NULL) {
|
||||||
|
@ -4964,7 +4964,7 @@ s32 Player_GetMovementSpeedAndYaw(Player* this, f32* outSpeedTarget, s16* outYaw
|
||||||
*outYawTarget = this->actor.shape.rot.y;
|
*outYawTarget = this->actor.shape.rot.y;
|
||||||
|
|
||||||
if (this->focusActor != NULL) {
|
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);
|
*outYawTarget = Math_Vec3f_Yaw(&this->actor.world.pos, &this->focusActor->focus.pos);
|
||||||
}
|
}
|
||||||
} else if (func_80123434(this)) {
|
} else if (func_80123434(this)) {
|
||||||
|
@ -11235,7 +11235,7 @@ void Player_SetDoAction(PlayState* play, Player* this) {
|
||||||
(this->transformation == PLAYER_FORM_ZORA)) &&
|
(this->transformation == PLAYER_FORM_ZORA)) &&
|
||||||
((this->heldItemAction >= PLAYER_IA_SWORD_KOKIRI) ||
|
((this->heldItemAction >= PLAYER_IA_SWORD_KOKIRI) ||
|
||||||
((this->stateFlags2 & PLAYER_STATE2_100000) &&
|
((this->stateFlags2 & PLAYER_STATE2_100000) &&
|
||||||
(play->actorCtx.targetCtx.fairyActor == NULL)))) {
|
(play->actorCtx.attention.fairyActor == NULL)))) {
|
||||||
doActionA = DO_ACTION_PUTAWAY;
|
doActionA = DO_ACTION_PUTAWAY;
|
||||||
|
|
||||||
if (play->msgCtx.currentTextId == 0) {} //! FAKE
|
if (play->msgCtx.currentTextId == 0) {} //! FAKE
|
||||||
|
@ -11697,9 +11697,9 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) {
|
||||||
Camera_ChangeMode(camera, camMode);
|
Camera_ChangeMode(camera, camMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (play->actorCtx.targetCtx.bgmEnemy != NULL) {
|
if (play->actorCtx.attention.bgmEnemy != NULL) {
|
||||||
seqMode = SEQ_MODE_ENEMY;
|
seqMode = SEQ_MODE_ENEMY;
|
||||||
Audio_UpdateEnemyBgmVolume(sqrtf(play->actorCtx.targetCtx.bgmEnemy->xyzDistToPlayerSq));
|
Audio_UpdateEnemyBgmVolume(sqrtf(play->actorCtx.attention.bgmEnemy->xyzDistToPlayerSq));
|
||||||
}
|
}
|
||||||
|
|
||||||
Audio_SetSequenceMode(seqMode);
|
Audio_SetSequenceMode(seqMode);
|
||||||
|
|
|
@ -669,12 +669,12 @@
|
||||||
0x800B4AEC:("func_800B4AEC",),
|
0x800B4AEC:("func_800B4AEC",),
|
||||||
0x800B4B50:("func_800B4B50",),
|
0x800B4B50:("func_800B4B50",),
|
||||||
0x800B4EDC:("Actor_GetProjectedPos",),
|
0x800B4EDC:("Actor_GetProjectedPos",),
|
||||||
0x800B4F40:("Target_SetReticlePos",),
|
0x800B4F40:("Attention_SetReticlePos",),
|
||||||
0x800B4F78:("Target_InitReticle",),
|
0x800B4F78:("Attention_InitReticle",),
|
||||||
0x800B5040:("Target_SetFairyState",),
|
0x800B5040:("Attention_SetFairyState",),
|
||||||
0x800B51A4:("Target_Init",),
|
0x800B51A4:("Attention_Init",),
|
||||||
0x800B5208:("Target_Draw",),
|
0x800B5208:("Attention_Draw",),
|
||||||
0x800B5814:("Target_Update",),
|
0x800B5814:("Attention_Update",),
|
||||||
0x800B5BB0:("Flags_GetSwitch",),
|
0x800B5BB0:("Flags_GetSwitch",),
|
||||||
0x800B5BF4:("Flags_SetSwitch",),
|
0x800B5BF4:("Flags_SetSwitch",),
|
||||||
0x800B5C34:("Flags_UnsetSwitch",),
|
0x800B5C34:("Flags_UnsetSwitch",),
|
||||||
|
@ -766,9 +766,9 @@
|
||||||
0x800B81E0:("Actor_GetFocus",),
|
0x800B81E0:("Actor_GetFocus",),
|
||||||
0x800B8214:("Actor_GetWorld",),
|
0x800B8214:("Actor_GetWorld",),
|
||||||
0x800B8248:("Actor_GetWorldPosShapeRot",),
|
0x800B8248:("Actor_GetWorldPosShapeRot",),
|
||||||
0x800B82EC:("Target_GetAdjustedDistSq",),
|
0x800B82EC:("Attention_GetAdjustedDistSq",),
|
||||||
0x800B83BC:("Target_IsActorInRange",),
|
0x800B83BC:("Attention_IsActorInRange",),
|
||||||
0x800B83F8:("Target_OutsideLeashRange",),
|
0x800B83F8:("Attention_OutsideLeashRange",),
|
||||||
0x800B84D0:("Actor_TalkOfferAccepted",),
|
0x800B84D0:("Actor_TalkOfferAccepted",),
|
||||||
0x800B8500:("Actor_OfferTalkExchange",),
|
0x800B8500:("Actor_OfferTalkExchange",),
|
||||||
0x800B85E0:("Actor_OfferTalkExchangeEquiCylinder",),
|
0x800B85E0:("Actor_OfferTalkExchangeEquiCylinder",),
|
||||||
|
@ -840,9 +840,9 @@
|
||||||
0x800BB140:("Actor_SpawnTransitionActors",),
|
0x800BB140:("Actor_SpawnTransitionActors",),
|
||||||
0x800BB2D0:("Actor_SpawnEntry",),
|
0x800BB2D0:("Actor_SpawnEntry",),
|
||||||
0x800BB498:("Actor_Delete",),
|
0x800BB498:("Actor_Delete",),
|
||||||
0x800BB59C:("Target_InTargetableScreenRegion",),
|
0x800BB59C:("Attention_InTargetableScreenRegion",),
|
||||||
0x800BB604:("Target_FindTargetableActorForCategory",),
|
0x800BB604:("Attention_FindTargetableActorForCategory",),
|
||||||
0x800BB8EC:("Target_GetTargetActor",),
|
0x800BB8EC:("Attention_GetTargetActor",),
|
||||||
0x800BBA88:("Enemy_StartFinishingBlow",),
|
0x800BBA88:("Enemy_StartFinishingBlow",),
|
||||||
0x800BBAC0:("func_800BBAC0",),
|
0x800BBAC0:("func_800BBAC0",),
|
||||||
0x800BBB74:("func_800BBB74",),
|
0x800BBB74:("func_800BBB74",),
|
||||||
|
|
|
@ -1297,15 +1297,15 @@ wordReplace = {
|
||||||
|
|
||||||
"play->actorCtx.unk3": "play->actorCtx.lensActive",
|
"play->actorCtx.unk3": "play->actorCtx.lensActive",
|
||||||
"play->actorCtx.unk4": "play->actorCtx.lensMaskSize",
|
"play->actorCtx.unk4": "play->actorCtx.lensMaskSize",
|
||||||
"play->actorCtx.targetContext": "play->actorCtx.targetCtx",
|
"play->actorCtx.targetContext": "play->actorCtx.attention",
|
||||||
"play->actorCtx.targetCtx.unk0": "play->actorCtx.targetCtx.fairyPos",
|
"play->actorCtx.attention.unk0": "play->actorCtx.attention.fairyPos",
|
||||||
"play->actorCtx.targetCtx.unk40": "play->actorCtx.targetCtx.fairyMoveProgressFactor",
|
"play->actorCtx.attention.unk40": "play->actorCtx.attention.fairyMoveProgressFactor",
|
||||||
"play->actorCtx.targetCtx.unk44": "play->actorCtx.targetCtx.lockOnRadius",
|
"play->actorCtx.attention.unk44": "play->actorCtx.attention.lockOnRadius",
|
||||||
"play->actorCtx.targetCtx.unk48": "play->actorCtx.targetCtx.lockOnAlpha",
|
"play->actorCtx.attention.unk48": "play->actorCtx.attention.lockOnAlpha",
|
||||||
"play->actorCtx.targetCtx.unk4B": "play->actorCtx.targetCtx.rotation",
|
"play->actorCtx.attention.unk4B": "play->actorCtx.attention.rotation",
|
||||||
"play->actorCtx.targetCtx.unk4C": "play->actorCtx.targetCtx.lockOnIndex",
|
"play->actorCtx.attention.unk4C": "play->actorCtx.attention.lockOnIndex",
|
||||||
"play->actorCtx.targetCtx.unk50": "play->actorCtx.targetCtx.lockOnTriangleSets",
|
"play->actorCtx.attention.unk50": "play->actorCtx.attention.lockOnTriangleSets",
|
||||||
"play->actorCtx.targetCtx.unk8C": "play->actorCtx.targetCtx.nextTarget",
|
"play->actorCtx.attention.unk8C": "play->actorCtx.attention.nextTarget",
|
||||||
"play->doorCtx.transitionActorList": "play->transitionActors.list",
|
"play->doorCtx.transitionActorList": "play->transitionActors.list",
|
||||||
"play->nextEntranceIndex": "play->nextEntrance",
|
"play->nextEntranceIndex": "play->nextEntrance",
|
||||||
"play->sceneNum": "play->sceneId",
|
"play->sceneNum": "play->sceneId",
|
||||||
|
|
|
@ -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_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/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/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/Attention_SetReticlePos.s,Attention_SetReticlePos,0x800B4F40,0xE
|
||||||
asm/non_matchings/code/z_actor/Target_InitReticle.s,Target_InitReticle,0x800B4F78,0x32
|
asm/non_matchings/code/z_actor/Attention_InitReticle.s,Attention_InitReticle,0x800B4F78,0x32
|
||||||
asm/non_matchings/code/z_actor/Target_SetFairyState.s,Target_SetFairyState,0x800B5040,0x59
|
asm/non_matchings/code/z_actor/Attention_SetFairyState.s,Attention_SetFairyState,0x800B5040,0x59
|
||||||
asm/non_matchings/code/z_actor/Target_Init.s,Target_Init,0x800B51A4,0x19
|
asm/non_matchings/code/z_actor/Attention_Init.s,Attention_Init,0x800B51A4,0x19
|
||||||
asm/non_matchings/code/z_actor/Target_Draw.s,Target_Draw,0x800B5208,0x183
|
asm/non_matchings/code/z_actor/Attention_Draw.s,Attention_Draw,0x800B5208,0x183
|
||||||
asm/non_matchings/code/z_actor/Target_Update.s,Target_Update,0x800B5814,0xE7
|
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_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_SetSwitch.s,Flags_SetSwitch,0x800B5BF4,0x10
|
||||||
asm/non_matchings/code/z_actor/Flags_UnsetSwitch.s,Flags_UnsetSwitch,0x800B5C34,0x11
|
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_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_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/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/Attention_GetAdjustedDistSq.s,Attention_GetAdjustedDistSq,0x800B82EC,0x34
|
||||||
asm/non_matchings/code/z_actor/Target_IsActorInRange.s,Target_IsActorInRange,0x800B83BC,0xF
|
asm/non_matchings/code/z_actor/Attention_IsActorInRange.s,Attention_IsActorInRange,0x800B83BC,0xF
|
||||||
asm/non_matchings/code/z_actor/Target_OutsideLeashRange.s,Target_OutsideLeashRange,0x800B83F8,0x36
|
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_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_OfferTalkExchange.s,Actor_OfferTalkExchange,0x800B8500,0x38
|
||||||
asm/non_matchings/code/z_actor/Actor_OfferTalkExchangeEquiCylinder.s,Actor_OfferTalkExchangeEquiCylinder,0x800B85E0,0xD
|
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_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_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/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/Attention_InTargetableScreenRegion.s,Attention_InTargetableScreenRegion,0x800BB59C,0x1A
|
||||||
asm/non_matchings/code/z_actor/Target_FindTargetableActorForCategory.s,Target_FindTargetableActorForCategory,0x800BB604,0xBA
|
asm/non_matchings/code/z_actor/Attention_FindTargetableActorForCategory.s,Attention_FindTargetableActorForCategory,0x800BB604,0xBA
|
||||||
asm/non_matchings/code/z_actor/Target_GetTargetActor.s,Target_GetTargetActor,0x800BB8EC,0x67
|
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/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_800BBAC0.s,func_800BBAC0,0x800BBAC0,0x2D
|
||||||
asm/non_matchings/code/z_actor/func_800BBB74.s,func_800BBB74,0x800BBB74,0x2B
|
asm/non_matchings/code/z_actor/func_800BBB74.s,func_800BBB74,0x800BBB74,0x2B
|
||||||
|
|
|
Loading…
Reference in New Issue