Update Actor Flags to decomp (#4822)
This commit is contained in:
@@ -62,7 +62,7 @@ void func_80043334(CollisionContext* colCtx, Actor* actor, s32 bgId) {
|
||||
if (dynaActor != NULL) {
|
||||
DynaPolyActor_SetActorOnTop(dynaActor);
|
||||
|
||||
if (CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_CAN_PRESS_SWITCH)) {
|
||||
if (CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_CAN_PRESS_SWITCHES)) {
|
||||
DynaPolyActor_SetSwitchPressed(dynaActor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -529,7 +529,7 @@ void func_8002C124(TargetContext* targetCtx, PlayState* play) {
|
||||
}
|
||||
|
||||
actor = targetCtx->unk_94;
|
||||
if ((actor != NULL) && !(actor->flags & ACTOR_FLAG_NO_LOCKON)) {
|
||||
if ((actor != NULL) && !(actor->flags & ACTOR_FLAG_LOCK_ON_DISABLED)) {
|
||||
FrameInterpolation_RecordOpenChild(actor, 1);
|
||||
NaviColor* naviColor = &sNaviColorList[actor->category];
|
||||
|
||||
@@ -624,7 +624,7 @@ void func_8002C7BC(TargetContext* targetCtx, Player* player, Actor* actorArg, Pl
|
||||
targetCtx->unk_48 = 0;
|
||||
}
|
||||
|
||||
lockOnSfxId = CHECK_FLAG_ALL(actorArg->flags, ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_HOSTILE) ? NA_SE_SY_LOCK_ON
|
||||
lockOnSfxId = CHECK_FLAG_ALL(actorArg->flags, ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) ? NA_SE_SY_LOCK_ON
|
||||
: NA_SE_SY_LOCK_ON_HUMAN;
|
||||
Sfx_PlaySfxCentered(lockOnSfxId);
|
||||
}
|
||||
@@ -1178,7 +1178,7 @@ void Actor_Kill(Actor* actor) {
|
||||
GameInteractor_ExecuteOnActorKill(actor);
|
||||
actor->draw = NULL;
|
||||
actor->update = NULL;
|
||||
actor->flags &= ~ACTOR_FLAG_TARGETABLE;
|
||||
actor->flags &= ~ACTOR_FLAG_ATTENTION_ENABLED;
|
||||
}
|
||||
|
||||
void Actor_SetWorldToHome(Actor* actor) {
|
||||
@@ -1854,7 +1854,7 @@ f32 func_8002EFC0(Actor* actor, Player* player, s16 arg2) {
|
||||
s16 yawTempAbs = ABS(yawTemp);
|
||||
|
||||
if (player->focusActor != NULL) {
|
||||
if ((yawTempAbs > 0x4000) || (actor->flags & ACTOR_FLAG_NO_LOCKON)) {
|
||||
if ((yawTempAbs > 0x4000) || (actor->flags & ACTOR_FLAG_LOCK_ON_DISABLED)) {
|
||||
return FLT_MAX;
|
||||
} else {
|
||||
f32 ret =
|
||||
@@ -1890,7 +1890,7 @@ u32 func_8002F090(Actor* actor, f32 arg1) {
|
||||
}
|
||||
|
||||
s32 func_8002F0C8(Actor* actor, Player* player, s32 flag) {
|
||||
if ((actor->update == NULL) || !(actor->flags & ACTOR_FLAG_TARGETABLE)) {
|
||||
if ((actor->update == NULL) || !(actor->flags & ACTOR_FLAG_ATTENTION_ENABLED)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1912,8 +1912,8 @@ s32 func_8002F0C8(Actor* actor, Player* player, s32 flag) {
|
||||
}
|
||||
|
||||
u32 Actor_ProcessTalkRequest(Actor* actor, PlayState* play) {
|
||||
if (actor->flags & ACTOR_FLAG_PLAYER_TALKED_TO) {
|
||||
actor->flags &= ~ACTOR_FLAG_PLAYER_TALKED_TO;
|
||||
if (actor->flags & ACTOR_FLAG_TALK) {
|
||||
actor->flags &= ~ACTOR_FLAG_TALK;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1924,7 +1924,7 @@ s32 func_8002F1C4(Actor* actor, PlayState* play, f32 arg2, f32 arg3, u32 exchang
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
// This is convoluted but it seems like it must be a single if statement to match
|
||||
if ((player->actor.flags & ACTOR_FLAG_PLAYER_TALKED_TO) || ((exchangeItemId != EXCH_ITEM_NONE) && Player_InCsMode(play)) ||
|
||||
if ((player->actor.flags & ACTOR_FLAG_TALK) || ((exchangeItemId != EXCH_ITEM_NONE) && Player_InCsMode(play)) ||
|
||||
(!actor->isTargeted &&
|
||||
((arg3 < fabsf(actor->yDistToPlayer)) || (player->talkActorDistance < actor->xzDistToPlayer) ||
|
||||
(arg2 < actor->xzDistToPlayer)))) {
|
||||
@@ -2235,30 +2235,30 @@ void func_8002F850(PlayState* play, Actor* actor) {
|
||||
|
||||
void func_8002F8F0(Actor* actor, u16 sfxId) {
|
||||
actor->sfx = sfxId;
|
||||
actor->flags |= ACTOR_FLAG_SFX_AT_POS;
|
||||
actor->flags &= ~(ACTOR_FLAG_SFX_AT_CENTER | ACTOR_FLAG_SFX_AT_CENTER2 | ACTOR_FLAG_SFX_AS_TIMER);
|
||||
actor->flags |= ACTOR_FLAG_SFX_ACTOR_POS_2;
|
||||
actor->flags &= ~(ACTOR_AUDIO_FLAG_SFX_CENTERED_1 | ACTOR_AUDIO_FLAG_SFX_CENTERED_2 | ACTOR_FLAG_SFX_TIMER);
|
||||
}
|
||||
|
||||
void func_8002F91C(Actor* actor, u16 sfxId) {
|
||||
actor->sfx = sfxId;
|
||||
actor->flags |= ACTOR_FLAG_SFX_AT_CENTER;
|
||||
actor->flags &= ~(ACTOR_FLAG_SFX_AT_POS | ACTOR_FLAG_SFX_AT_CENTER2 | ACTOR_FLAG_SFX_AS_TIMER);
|
||||
actor->flags |= ACTOR_AUDIO_FLAG_SFX_CENTERED_1;
|
||||
actor->flags &= ~(ACTOR_FLAG_SFX_ACTOR_POS_2 | ACTOR_AUDIO_FLAG_SFX_CENTERED_2 | ACTOR_FLAG_SFX_TIMER);
|
||||
}
|
||||
|
||||
void func_8002F948(Actor* actor, u16 sfxId) {
|
||||
actor->sfx = sfxId;
|
||||
actor->flags |= ACTOR_FLAG_SFX_AT_CENTER2;
|
||||
actor->flags &= ~(ACTOR_FLAG_SFX_AT_POS | ACTOR_FLAG_SFX_AT_CENTER | ACTOR_FLAG_SFX_AS_TIMER);
|
||||
actor->flags |= ACTOR_AUDIO_FLAG_SFX_CENTERED_2;
|
||||
actor->flags &= ~(ACTOR_FLAG_SFX_ACTOR_POS_2 | ACTOR_AUDIO_FLAG_SFX_CENTERED_1 | ACTOR_FLAG_SFX_TIMER);
|
||||
}
|
||||
|
||||
void func_8002F974(Actor* actor, u16 sfxId) {
|
||||
actor->flags &= ~(ACTOR_FLAG_SFX_AT_POS | ACTOR_FLAG_SFX_AT_CENTER | ACTOR_FLAG_SFX_AT_CENTER2 | ACTOR_FLAG_SFX_AS_TIMER);
|
||||
actor->flags &= ~(ACTOR_FLAG_SFX_ACTOR_POS_2 | ACTOR_AUDIO_FLAG_SFX_CENTERED_1 | ACTOR_AUDIO_FLAG_SFX_CENTERED_2 | ACTOR_FLAG_SFX_TIMER);
|
||||
actor->sfx = sfxId;
|
||||
}
|
||||
|
||||
void func_8002F994(Actor* actor, s32 arg1) {
|
||||
actor->flags |= ACTOR_FLAG_SFX_AS_TIMER;
|
||||
actor->flags &= ~(ACTOR_FLAG_SFX_AT_POS | ACTOR_FLAG_SFX_AT_CENTER | ACTOR_FLAG_SFX_AT_CENTER2);
|
||||
actor->flags |= ACTOR_FLAG_SFX_TIMER;
|
||||
actor->flags &= ~(ACTOR_FLAG_SFX_ACTOR_POS_2 | ACTOR_AUDIO_FLAG_SFX_CENTERED_1 | ACTOR_AUDIO_FLAG_SFX_CENTERED_2);
|
||||
if (arg1 < 40) {
|
||||
actor->sfx = NA_SE_PL_WALK_DIRT - SFX_FLAG;
|
||||
} else if (arg1 < 100) {
|
||||
@@ -2567,7 +2567,7 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) {
|
||||
sp80 = &D_80116068[0];
|
||||
|
||||
if (player->stateFlags2 & PLAYER_STATE2_OCARINA_PLAYING) {
|
||||
unkFlag = ACTOR_FLAG_NO_FREEZE_OCARINA;
|
||||
unkFlag = ACTOR_FLAG_UPDATE_DURING_OCARINA;
|
||||
}
|
||||
|
||||
if ((player->stateFlags1 & PLAYER_STATE1_TALKING) && ((player->actor.textId & 0xFF00) != 0x600)) {
|
||||
@@ -2622,9 +2622,9 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) {
|
||||
actor->xyzDistToPlayerSq = SQ(actor->xzDistToPlayer) + SQ(actor->yDistToPlayer);
|
||||
|
||||
actor->yawTowardsPlayer = Actor_WorldYawTowardActor(actor, &player->actor);
|
||||
actor->flags &= ~ACTOR_FLAG_PLAY_HIT_SFX;
|
||||
actor->flags &= ~ACTOR_FLAG_SFX_FOR_PLAYER_BODY_HIT;
|
||||
|
||||
if ((DECR(actor->freezeTimer) == 0) && (actor->flags & (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_ACTIVE))) {
|
||||
if ((DECR(actor->freezeTimer) == 0) && (actor->flags & (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_INSIDE_CULLING_VOLUME))) {
|
||||
if (actor == player->focusActor) {
|
||||
actor->isTargeted = true;
|
||||
} else {
|
||||
@@ -2766,13 +2766,13 @@ void Actor_Draw(PlayState* play, Actor* actor) {
|
||||
}
|
||||
|
||||
void func_80030ED8(Actor* actor) {
|
||||
if (actor->flags & ACTOR_FLAG_SFX_AT_POS) {
|
||||
if (actor->flags & ACTOR_FLAG_SFX_ACTOR_POS_2) {
|
||||
Audio_PlaySoundGeneral(actor->sfx, &actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
|
||||
} else if (actor->flags & ACTOR_FLAG_SFX_AT_CENTER) {
|
||||
} else if (actor->flags & ACTOR_AUDIO_FLAG_SFX_CENTERED_1) {
|
||||
Sfx_PlaySfxCentered(actor->sfx);
|
||||
} else if (actor->flags & ACTOR_FLAG_SFX_AT_CENTER2) {
|
||||
} else if (actor->flags & ACTOR_AUDIO_FLAG_SFX_CENTERED_2) {
|
||||
Sfx_PlaySfxCentered2(actor->sfx);
|
||||
} else if (actor->flags & ACTOR_FLAG_SFX_AS_TIMER) {
|
||||
} else if (actor->flags & ACTOR_FLAG_SFX_TIMER) {
|
||||
func_800F4C58(&gSfxDefaultPos, NA_SE_SY_TIMER - SFX_FLAG, (s8)(actor->sfx - 1));
|
||||
} else {
|
||||
Sfx_PlaySfxAtPos(&actor->projectedPos, actor->sfx);
|
||||
@@ -3032,15 +3032,15 @@ void func_800315AC(PlayState* play, ActorContext* actorCtx) {
|
||||
&shipShouldUpdate);
|
||||
|
||||
if (shipShouldUpdate) {
|
||||
actor->flags |= ACTOR_FLAG_ACTIVE;
|
||||
actor->flags |= ACTOR_FLAG_INSIDE_CULLING_VOLUME;
|
||||
} else {
|
||||
actor->flags &= ~ACTOR_FLAG_ACTIVE;
|
||||
actor->flags &= ~ACTOR_FLAG_INSIDE_CULLING_VOLUME;
|
||||
}
|
||||
} else {
|
||||
if (func_800314B0(play, actor)) {
|
||||
actor->flags |= ACTOR_FLAG_ACTIVE;
|
||||
actor->flags |= ACTOR_FLAG_INSIDE_CULLING_VOLUME;
|
||||
} else {
|
||||
actor->flags &= ~ACTOR_FLAG_ACTIVE;
|
||||
actor->flags &= ~ACTOR_FLAG_INSIDE_CULLING_VOLUME;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3049,9 +3049,9 @@ void func_800315AC(PlayState* play, ActorContext* actorCtx) {
|
||||
|
||||
if ((HREG(64) != 1) || ((HREG(65) != -1) && (HREG(65) != HREG(66))) || (HREG(71) == 0)) {
|
||||
if ((actor->init == NULL) && (actor->draw != NULL) &&
|
||||
((actor->flags & (ACTOR_FLAG_DRAW_WHILE_CULLED | ACTOR_FLAG_ACTIVE)) || shipShouldDraw)) {
|
||||
((actor->flags & (ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_INSIDE_CULLING_VOLUME)) || shipShouldDraw)) {
|
||||
// #endregion
|
||||
if ((actor->flags & ACTOR_FLAG_LENS) &&
|
||||
if ((actor->flags & ACTOR_FLAG_REACT_TO_LENS) &&
|
||||
((play->roomCtx.curRoom.lensMode == LENS_MODE_HIDE_ACTORS) ||
|
||||
play->actorCtx.lensActive || (actor->room != play->roomCtx.curRoom.num))) {
|
||||
assert(invisibleActorCounter < INVISIBLE_ACTOR_MAX);
|
||||
@@ -3499,11 +3499,11 @@ void func_800328D4(PlayState* play, ActorContext* actorCtx, Player* player, u32
|
||||
sp84 = player->focusActor;
|
||||
|
||||
while (actor != NULL) {
|
||||
if ((actor->update != NULL) && ((Player*)actor != player) && CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_TARGETABLE)) {
|
||||
if ((actor->update != NULL) && ((Player*)actor != player) && CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_ATTENTION_ENABLED)) {
|
||||
|
||||
// This block below is for determining the closest actor to player in determining the volume
|
||||
// used while playing enemy bgm music
|
||||
if ((actorCategory == ACTORCAT_ENEMY) && CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_HOSTILE) &&
|
||||
if ((actorCategory == ACTORCAT_ENEMY) && CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) &&
|
||||
(actor->xyzDistToPlayerSq < SQ(500.0f)) && (actor->xyzDistToPlayerSq < sbgmEnemyDistSq)) {
|
||||
actorCtx->targetCtx.bgmEnemy = actor;
|
||||
sbgmEnemyDistSq = actor->xyzDistToPlayerSq;
|
||||
@@ -4557,10 +4557,10 @@ s16 Actor_UpdateAlphaByDistance(Actor* actor, PlayState* play, s16 alpha, f32 ra
|
||||
}
|
||||
|
||||
if (radius < distance) {
|
||||
actor->flags &= ~ACTOR_FLAG_TARGETABLE;
|
||||
actor->flags &= ~ACTOR_FLAG_ATTENTION_ENABLED;
|
||||
Math_SmoothStepToS(&alpha, 0, 6, 0x14, 1);
|
||||
} else {
|
||||
actor->flags |= ACTOR_FLAG_TARGETABLE;
|
||||
actor->flags |= ACTOR_FLAG_ATTENTION_ENABLED;
|
||||
Math_SmoothStepToS(&alpha, 0xFF, 6, 0x14, 1);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
#include <objects/object_d_hsblock/object_d_hsblock.h>
|
||||
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void EnAObj_Init(Actor* thisx, PlayState* play);
|
||||
void EnAObj_Destroy(Actor* thisx, PlayState* play);
|
||||
@@ -142,7 +142,7 @@ void EnAObj_Init(Actor* thisx, PlayState* play) {
|
||||
break;
|
||||
case A_OBJ_UNKNOWN_6:
|
||||
// clang-format off
|
||||
thisx->flags |= ACTOR_FLAG_TARGETABLE; this->dyna.bgId = 5; this->focusYoffset = 10.0f;
|
||||
thisx->flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->dyna.bgId = 5; this->focusYoffset = 10.0f;
|
||||
// clang-format on
|
||||
thisx->gravity = -2.0f;
|
||||
EnAObj_SetupWaitTalk(this, thisx->params);
|
||||
@@ -156,7 +156,7 @@ void EnAObj_Init(Actor* thisx, PlayState* play) {
|
||||
case A_OBJ_SIGNPOST_ARROW:
|
||||
thisx->textId = (this->textId & 0xFF) | 0x300;
|
||||
// clang-format off
|
||||
thisx->flags |= ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_FRIENDLY; thisx->targetArrowOffset = 500.0f;
|
||||
thisx->flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; thisx->targetArrowOffset = 500.0f;
|
||||
// clang-format on
|
||||
this->focusYoffset = 45.0f;
|
||||
EnAObj_SetupWaitTalk(this, thisx->params);
|
||||
|
||||
@@ -1618,7 +1618,7 @@ EnItem00* Item_DropCollectible(PlayState* play, Vec3f* spawnPos, s16 params) {
|
||||
(spawnedActor->actor.params != ITEM00_HEART_CONTAINER)) {
|
||||
spawnedActor->actor.room = -1;
|
||||
}
|
||||
spawnedActor->actor.flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
|
||||
spawnedActor->actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1652,7 +1652,7 @@ EnItem00* Item_DropCollectible2(PlayState* play, Vec3f* spawnPos, s16 params) {
|
||||
spawnedActor->actor.speedXZ = 0.0f;
|
||||
spawnedActor->actor.gravity = param4000 ? 0.0f : -0.9f;
|
||||
spawnedActor->actor.world.rot.y = Rand_CenteredFloat(65536.0f);
|
||||
spawnedActor->actor.flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
|
||||
spawnedActor->actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1766,7 +1766,7 @@ void Item_DropCollectibleRandom(PlayState* play, Actor* fromActor, Vec3f* spawnP
|
||||
spawnedActor->actor.world.rot.y = Rand_ZeroOne() * 40000.0f;
|
||||
Actor_SetScale(&spawnedActor->actor, 0.0f);
|
||||
EnItem00_SetupAction(spawnedActor, func_8001E304);
|
||||
spawnedActor->actor.flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
|
||||
spawnedActor->actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
|
||||
if ((spawnedActor->actor.params != ITEM00_SMALL_KEY) &&
|
||||
(spawnedActor->actor.params != ITEM00_HEART_PIECE) &&
|
||||
(spawnedActor->actor.params != ITEM00_HEART_CONTAINER)) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "global.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED | ACTOR_FLAG_NO_FREEZE_OCARINA | ACTOR_FLAG_CAN_PRESS_SWITCH)
|
||||
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA | ACTOR_FLAG_CAN_PRESS_SWITCHES)
|
||||
|
||||
void (*sPlayerCallInitFunc)(Actor* thisx, PlayState* play);
|
||||
void (*sPlayerCallDestroyFunc)(Actor* thisx, PlayState* play);
|
||||
|
||||
@@ -1876,7 +1876,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
|
||||
Matrix_Get(&sp14C);
|
||||
Matrix_MtxFToYXZRotS(&sp14C, &spB8, 0);
|
||||
|
||||
if (hookedActor->flags & ACTOR_FLAG_PILLAR_PICKUP) {
|
||||
if (hookedActor->flags & ACTOR_FLAG_CARRY_X_ROT_INFLUENCE) {
|
||||
hookedActor->world.rot.x = hookedActor->shape.rot.x = spB8.x - this->unk_3BC.x;
|
||||
} else {
|
||||
hookedActor->world.rot.y = hookedActor->shape.rot.y = this->actor.shape.rot.y + this->unk_3BC.y;
|
||||
|
||||
Reference in New Issue
Block a user