Document Update Actor Flags (#1762)

* name flags, TODO: comments

* comments

* improve comments

* small cleanup

* cleanup comment
This commit is contained in:
engineer124 2024-12-18 08:18:56 +11:00 committed by GitHub
parent 971d95b550
commit a6675d7327
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
39 changed files with 119 additions and 107 deletions

View File

@ -553,10 +553,15 @@ typedef enum DoorLockType {
// When chosen as the next lock-on actor, this flag is unset.
#define ACTOR_FLAG_FOCUS_ACTOR_REFINDABLE (1 << 19)
//
#define ACTOR_FLAG_100000 (1 << 20)
//
#define ACTOR_FLAG_200000 (1 << 21)
// Actor can update even if Player is currently in one of the `sCategoryFreezeMasks` states.
// Typically an actor will halt while the player is in one of the `sCategoryFreezeMasks` states (depending on category).
// This flag allows a given actor to be an exception.
#define ACTOR_FLAG_FREEZE_EXCEPTION (1 << 20)
// Actor can update even if the Song of Soaring Cutscene or the Song of Time Cutscene is playing.
// Typically an actor will halt while the Song of Soaring Cutscene or the Song of Time Cutscene is playing.
// This flag allows a given actor to be an exception.
#define ACTOR_FLAG_UPDATE_DURING_SOARING_AND_SOT_CS (1 << 21)
// Specifies whether the actor can (not) use fake point lights, in the event that ucode point lights are not compatible with its display lists.
// In F3DZEX2 versions that predate MM, microcode point lights didn't exist so `PointLight_t` could not be used.

View File

@ -85,7 +85,7 @@ typedef struct PlayState {
/* 0x187FC */ MtxF billboardMtxF;
/* 0x1883C */ Mtx* billboardMtx;
/* 0x18840 */ u32 gameplayFrames;
/* 0x18844 */ u8 unk_18844; // bool
/* 0x18844 */ u8 soaringCsOrSoTCsPlaying; // Either the Song of Soaring Cutscene or the Song of Time Cutscene is playing.
/* 0x18845 */ u8 haltAllActors;
/* 0x18846 */ s16 numSetupActors;
/* 0x18848 */ RoomList roomList;

View File

@ -2556,9 +2556,8 @@ typedef struct {
/* 0x0C */ u32 canFreezeCategory;
/* 0x10 */ Actor* talkActor;
/* 0x14 */ Player* player;
/* 0x18 */ u32 unk_18; // Bitmask of actor flags. The actor will only have main called if it has at least 1
// flag set that matches this bitmask
} UpdateActor_Params; // size = 0x1C
/* 0x18 */ u32 updateActorFlagsMask; // Actor will update only if at least 1 actor flag is set in this bitmask
} UpdateActor_Params; // size = 0x1C
Actor* Actor_UpdateActor(UpdateActor_Params* params) {
PlayState* play = params->play;
@ -2591,7 +2590,7 @@ Actor* Actor_UpdateActor(UpdateActor_Params* params) {
Actor_Kill(actor);
} else if (((params->freezeExceptionFlag != 0) && !(actor->flags & params->freezeExceptionFlag)) ||
(((!params->freezeExceptionFlag) != 0) &&
(!(actor->flags & ACTOR_FLAG_100000) ||
(!(actor->flags & ACTOR_FLAG_FREEZE_EXCEPTION) ||
((actor->category == ACTORCAT_EXPLOSIVES) && (params->player->stateFlags1 & PLAYER_STATE1_200))) &&
params->canFreezeCategory && (actor != params->talkActor) && (actor != params->player->heldActor) &&
(actor->parent != &params->player->actor))) {
@ -2605,7 +2604,7 @@ Actor* Actor_UpdateActor(UpdateActor_Params* params) {
actor->yawTowardsPlayer = Actor_WorldYawTowardActor(actor, &params->player->actor);
actor->flags &= ~ACTOR_FLAG_SFX_FOR_PLAYER_BODY_HIT;
if ((DECR(actor->freezeTimer) == 0) && (actor->flags & params->unk_18)) {
if ((DECR(actor->freezeTimer) == 0) && (actor->flags & params->updateActorFlagsMask)) {
if (actor == params->player->focusActor) {
actor->isLockedOn = true;
} else {
@ -2677,10 +2676,11 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) {
params.player = player;
params.play = play;
if (play->unk_18844) {
params.unk_18 = ACTOR_FLAG_200000;
if (play->soaringCsOrSoTCsPlaying) {
params.updateActorFlagsMask = ACTOR_FLAG_UPDATE_DURING_SOARING_AND_SOT_CS;
} else {
params.unk_18 = ACTOR_FLAG_200000 | ACTOR_FLAG_INSIDE_CULLING_VOLUME | ACTOR_FLAG_UPDATE_CULLING_DISABLED;
params.updateActorFlagsMask = ACTOR_FLAG_UPDATE_DURING_SOARING_AND_SOT_CS | ACTOR_FLAG_INSIDE_CULLING_VOLUME |
ACTOR_FLAG_UPDATE_CULLING_DISABLED;
}
Actor_SpawnSetupActors(play, actorCtx);
@ -3136,13 +3136,14 @@ void Actor_DrawAll(PlayState* play, ActorContext* actorCtx) {
Gfx* sp58;
ActorListEntry* actorEntry;
Actor* actor;
s32 actorFlags;
s32 drawActorFlagsMask;
s32 category;
if (play->unk_18844) {
actorFlags = ACTOR_FLAG_200000;
if (play->soaringCsOrSoTCsPlaying) {
drawActorFlagsMask = ACTOR_FLAG_UPDATE_DURING_SOARING_AND_SOT_CS;
} else {
actorFlags = ACTOR_FLAG_200000 | ACTOR_FLAG_INSIDE_CULLING_VOLUME | ACTOR_FLAG_DRAW_CULLING_DISABLED;
drawActorFlagsMask = ACTOR_FLAG_UPDATE_DURING_SOARING_AND_SOT_CS | ACTOR_FLAG_INSIDE_CULLING_VOLUME |
ACTOR_FLAG_DRAW_CULLING_DISABLED;
}
OPEN_DISPS(play->state.gfxCtx);
@ -3170,7 +3171,7 @@ void Actor_DrawAll(PlayState* play, ActorContext* actorCtx) {
}
actor->isDrawn = false;
if ((actor->init == NULL) && (actor->draw != NULL) && (actor->flags & actorFlags)) {
if ((actor->init == NULL) && (actor->draw != NULL) && (actor->flags & drawActorFlagsMask)) {
if ((actor->flags & ACTOR_FLAG_REACT_TO_LENS) &&
((play->roomCtx.curRoom.lensMode == LENS_MODE_SHOW_ACTORS) ||
(play->actorCtx.lensMaskSize == LENS_MASK_ACTIVE_SIZE) ||
@ -3212,7 +3213,7 @@ void Actor_DrawAll(PlayState* play, ActorContext* actorCtx) {
gSPBranchList(ref2, &tmp2[1]);
POLY_XLU_DISP = &tmp2[1];
if (!play->unk_18844) {
if (!play->soaringCsOrSoTCsPlaying) {
Lights_DrawGlow(play);
}

View File

@ -215,7 +215,7 @@ void CutsceneManager_End(void) {
switch (sCutsceneMgr.startMethod) {
case CS_START_2:
sCutsceneMgr.targetActor->flags &= ~ACTOR_FLAG_100000;
sCutsceneMgr.targetActor->flags &= ~ACTOR_FLAG_FREEZE_EXCEPTION;
FALLTHROUGH;
case CS_START_1:
Player_SetCsActionWithHaltedActors(sCutsceneMgr.play, NULL, PLAYER_CSACTION_END);
@ -359,7 +359,7 @@ s16 CutsceneManager_StartWithPlayerCs(s16 csId, Actor* actor) {
}
/**
* Start an actor cutscene, activate Player Cutscene Action "Wait", turn on ACTOR_FLAG_100000
* Start an actor cutscene, activate Player Cutscene Action "Wait", turn on ACTOR_FLAG_FREEZE_EXCEPTION
*/
s16 CutsceneManager_StartWithPlayerCsAndSetFlag(s16 csId, Actor* actor) {
s16 startCsId = CutsceneManager_Start(csId, actor);
@ -370,7 +370,7 @@ s16 CutsceneManager_StartWithPlayerCsAndSetFlag(s16 csId, Actor* actor) {
CutsceneManager_Stop(sCutsceneMgr.csId);
}
if (actor != NULL) {
actor->flags |= ACTOR_FLAG_100000;
actor->flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
sCutsceneMgr.startMethod = CS_START_2;
} else {
sCutsceneMgr.startMethod = CS_START_1;

View File

@ -1277,7 +1277,7 @@ void Play_DrawMain(PlayState* this) {
goto PostWorldDraw;
}
if (!this->unk_18844) {
if (!this->soaringCsOrSoTCsPlaying) {
if (1) {
if (((u32)this->skyboxId != SKYBOX_NONE) && !this->envCtx.skyboxDisabled) {
if ((this->skyboxId == SKYBOX_NORMAL_SKY) || (this->skyboxId == SKYBOX_3)) {
@ -2270,7 +2270,7 @@ void Play_Init(GameState* thisx) {
this->worldCoverAlpha = 0;
this->bgCoverAlpha = 0;
this->haltAllActors = false;
this->unk_18844 = false;
this->soaringCsOrSoTCsPlaying = false;
if (gSaveContext.gameMode != GAMEMODE_TITLE_SCREEN) {
if (gSaveContext.nextTransitionType == TRANS_NEXT_TYPE_DEFAULT) {

View File

@ -3,8 +3,8 @@
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_200000 | ACTOR_FLAG_UPDATE_DURING_OCARINA | \
ACTOR_FLAG_CAN_PRESS_SWITCHES | ACTOR_FLAG_MINIMAP_ICON_ENABLED)
ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_SOARING_AND_SOT_CS | \
ACTOR_FLAG_UPDATE_DURING_OCARINA | ACTOR_FLAG_CAN_PRESS_SWITCHES | ACTOR_FLAG_MINIMAP_ICON_ENABLED)
ActorFunc sPlayerCallInitFunc;
ActorFunc sPlayerCallDestroyFunc;

View File

@ -1961,7 +1961,7 @@ void Player_AdjustSingleLeg(PlayState* play, Player* player, SkelAnime* skelAnim
f32 sp7C;
if ((player->stateFlags3 & PLAYER_STATE3_1) || !(player->actor.scale.y >= 0.0f) ||
(player->stateFlags1 & PLAYER_STATE1_DEAD) || play->unk_18844) {
(player->stateFlags1 & PLAYER_STATE1_DEAD) || play->soaringCsOrSoTCsPlaying) {
return;
}

View File

@ -62,7 +62,7 @@ void BgIknvObj_Init(Actor* thisx, PlayState* play) {
case IKNV_OBJ_WATERWHEEL:
this->dList = object_iknv_obj_DL_013058;
this->actionFunc = BgIknvObj_UpdateWaterwheel;
this->dyna.actor.flags |= ACTOR_FLAG_100000;
this->dyna.actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
break;

View File

@ -170,7 +170,7 @@ void EnBom_Init(Actor* thisx, PlayState* play) {
this->collider2.elements[0].dim.worldSphere.center.y = this->actor.world.pos.y;
this->collider2.elements[0].dim.worldSphere.center.z = this->actor.world.pos.z;
this->actor.flags |= ACTOR_FLAG_100000;
this->actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
if (Actor_HasParent(&this->actor, play)) {
this->actionFunc = EnBom_WaitForRelease;
@ -301,11 +301,11 @@ void EnBom_Move(EnBom* this, PlayState* play) {
}
void EnBom_WaitForRelease(EnBom* this, PlayState* play) {
// if parent is NULL bomb has been released
// if parent pointer is NULL, the bomb has been released
if (Actor_HasNoParent(&this->actor, play)) {
this->actionFunc = EnBom_Move;
this->actor.room = play->roomCtx.curRoom.num;
this->actor.flags &= ~ACTOR_FLAG_100000;
this->actor.flags &= ~ACTOR_FLAG_FREEZE_EXCEPTION;
this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND;
Math_Vec3s_ToVec3f(&this->actor.prevPos, &this->actor.home.rot);
if (this->isPowderKeg) {
@ -555,7 +555,7 @@ void EnBom_Update(Actor* thisx, PlayState* play) {
Camera_AddQuake(&play->mainCamera, 2, 11, 8);
thisx->params = BOMB_TYPE_EXPLOSION;
this->timer = 10;
thisx->flags |= (ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_100000);
thisx->flags |= (ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_FREEZE_EXCEPTION);
this->actionFunc = EnBom_Explode;
if (this->isPowderKeg) {
gSaveContext.powderKegTimer = 0;

View File

@ -94,7 +94,7 @@ void func_80C05B3C(EnBombal* this, PlayState* play) {
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_75_40) && !CHECK_WEEKEVENTREG(WEEKEVENTREG_73_10) &&
!CHECK_WEEKEVENTREG(WEEKEVENTREG_85_02)) {
player->stateFlags1 |= ACTOR_FLAG_DRAW_CULLING_DISABLED;
this->actor.flags |= ACTOR_FLAG_100000;
this->actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
}
this->actionFunc = func_80C05C44;
}

View File

@ -9,7 +9,7 @@
#include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h"
#include "assets/objects/gameplay_keep/gameplay_keep.h"
#define FLAGS (ACTOR_FLAG_100000)
#define FLAGS (ACTOR_FLAG_FREEZE_EXCEPTION)
void EnColMan_Init(Actor* thisx, PlayState* play);
void EnColMan_Destroy(Actor* thisx, PlayState* play);

View File

@ -318,7 +318,7 @@ void EnDinofos_Init(Actor* thisx, PlayState* play) {
if (this->actor.csId == CS_ID_NONE) {
EnDinofos_SetupIdle(this);
} else {
this->actor.flags |= ACTOR_FLAG_100000;
this->actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
this->actor.gravity = 0.0f;
this->actor.velocity.y = 0.0f;
sCsId = thisx->csId;
@ -613,7 +613,7 @@ void EnDinofos_IntroCutsceneYell(EnDinofos* this, PlayState* play) {
if (SkelAnime_Update(&this->skelAnime)) {
EnDinofos_EndCutscene(this, play);
this->actor.flags &= ~ACTOR_FLAG_100000;
this->actor.flags &= ~ACTOR_FLAG_FREEZE_EXCEPTION;
this->actor.csId = CS_ID_NONE;
EnDinofos_SetupIdle(this);
}

View File

@ -629,7 +629,7 @@ void EnDragon_Attack(EnDragon* this, PlayState* play) {
player->av2.actionVar2 = 100;
}
this->actor.flags &= ~ACTOR_FLAG_100000;
this->actor.flags &= ~ACTOR_FLAG_FREEZE_EXCEPTION;
if ((this->state != DEEP_PYTHON_ATTACK_STATE_START) && (curFrame >= this->animEndFrame)) {
this->timer = 3;
@ -752,7 +752,7 @@ void EnDragon_UpdateDamage(EnDragon* this, PlayState* play) {
Actor_PlaySfx(&this->actor, NA_SE_EN_UTSUBO_DEAD);
this->actor.flags |= ACTOR_FLAG_LOCK_ON_DISABLED;
this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED;
this->actor.flags |= ACTOR_FLAG_100000;
this->actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
this->action = DEEP_PYTHON_ACTION_SETUP_DEAD;
this->actionFunc = EnDragon_SetupDead;
}
@ -765,7 +765,7 @@ void EnDragon_UpdateDamage(EnDragon* this, PlayState* play) {
(playerImpactType == PLAYER_IMPACT_ZORA_BARRIER))) {
this->actor.speed = 0.0f;
this->action = DEEP_PYTHON_ACTION_GRAB;
this->actor.flags |= ACTOR_FLAG_100000;
this->actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
this->actionFunc = EnDragon_SetupGrab;
}
}

View File

@ -1063,7 +1063,7 @@ void EnEgol_Damaged(EnEgol* this, PlayState* play) {
Actor_PlaySfx(&this->actor, NA_SE_EN_EYEGOLE_DEAD);
this->actor.flags |= ACTOR_FLAG_LOCK_ON_DISABLED;
this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED;
this->actor.flags |= ACTOR_FLAG_100000;
this->actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
this->actionFunc = EnEgol_StartDeathCutscene;
}
}

View File

@ -9,7 +9,7 @@
#include "overlays/actors/ovl_En_Wallmas/z_en_wallmas.h"
#include "overlays/actors/ovl_En_Pr2/z_en_pr2.h"
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_100000 | ACTOR_FLAG_LOCK_ON_DISABLED)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_FREEZE_EXCEPTION | ACTOR_FLAG_LOCK_ON_DISABLED)
void EnEncount1_Init(Actor* thisx, PlayState* play);
void EnEncount1_Update(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,8 @@
#include "z_en_guard_nuts.h"
#include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h"
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_100000 | ACTOR_FLAG_MINIMAP_ICON_ENABLED)
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_FREEZE_EXCEPTION | ACTOR_FLAG_MINIMAP_ICON_ENABLED)
void EnGuardNuts_Init(Actor* thisx, PlayState* play);
void EnGuardNuts_Destroy(Actor* thisx, PlayState* play);

View File

@ -6,9 +6,9 @@
#include "z_en_hg.h"
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_100000 | \
ACTOR_FLAG_UPDATE_DURING_OCARINA)
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
ACTOR_FLAG_FREEZE_EXCEPTION | ACTOR_FLAG_UPDATE_DURING_OCARINA)
void EnHg_Init(Actor* thisx, PlayState* play);
void EnHg_Destroy(Actor* thisx, PlayState* play);

View File

@ -347,7 +347,7 @@ void EnJso_SetupIntroCutscene(EnJso* this) {
this->csId = parent->csId;
this->swordState = EN_JSO_SWORD_STATE_NONE_DRAWN;
this->action = EN_JSO_ACTION_INTRO_CUTSCENE;
this->actor.flags |= ACTOR_FLAG_100000;
this->actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
this->actionFunc = EnJso_IntroCutscene;
}
@ -582,7 +582,7 @@ void EnJso_IntroCutscene(EnJso* this, PlayState* play) {
this->robeRightRot.y = this->robeRightRot.z = 0;
this->cutsceneState = EN_JSO_INTRO_CS_STATE_DONE_OR_STARTED;
this->subCamId = SUB_CAM_ID_DONE;
this->actor.flags &= ~ACTOR_FLAG_100000;
this->actor.flags &= ~ACTOR_FLAG_FREEZE_EXCEPTION;
this->actor.flags &= ~ACTOR_FLAG_LOCK_ON_DISABLED;
this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED;
this->actor.world.rot.y = this->actor.yawTowardsPlayer;
@ -1166,7 +1166,7 @@ void EnJso_SetupFallDownAndTalk(EnJso* this, PlayState* play) {
this->actor.flags |= (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY);
Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_NPC);
this->actor.flags &= ~ACTOR_FLAG_LOCK_ON_DISABLED;
this->actor.flags &= ~ACTOR_FLAG_100000;
this->actor.flags &= ~ACTOR_FLAG_FREEZE_EXCEPTION;
this->action = EN_JSO_ACTION_FALL_DOWN_AND_TALK;
this->actionFunc = EnJso_FallDownAndTalk;
}

View File

@ -14,7 +14,7 @@
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_100000 | ACTOR_FLAG_MINIMAP_ICON_ENABLED)
ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_FREEZE_EXCEPTION | ACTOR_FLAG_MINIMAP_ICON_ENABLED)
void EnJso2_Init(Actor* thisx, PlayState* play);
void EnJso2_Destroy(Actor* thisx, PlayState* play);
@ -732,7 +732,7 @@ void EnJso2_IntroCutscene(EnJso2* this, PlayState* play) {
if (curFrame >= this->animEndFrame) {
CutsceneManager_Stop(this->actor.csId);
this->subCamId = SUB_CAM_ID_DONE;
this->actor.flags &= ~ACTOR_FLAG_100000;
this->actor.flags &= ~ACTOR_FLAG_FREEZE_EXCEPTION;
this->actor.gravity = -3.0f;
this->actor.flags &= ~ACTOR_FLAG_LOCK_ON_DISABLED;
this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED;
@ -751,7 +751,7 @@ void EnJso2_IntroCutscene(EnJso2* this, PlayState* play) {
void EnJso2_SetupAppear(EnJso2* this) {
this->swordState = EN_JSO2_SWORD_STATE_NONE_DRAWN;
this->bodyCollider.base.acFlags |= AC_HARD;
this->actor.flags &= ~ACTOR_FLAG_100000;
this->actor.flags &= ~ACTOR_FLAG_FREEZE_EXCEPTION;
EnJso2_ChangeAnim(this, EN_JSO2_ANIM_APPEAR_AND_DRAW_SWORDS);
this->actionFunc = EnJso2_Appear;
}
@ -1333,7 +1333,7 @@ void EnJso2_SetupDeathCutscene(EnJso2* this) {
this->cutsceneState = EN_JSO2_DEATH_CS_STATE_STARTED;
this->cutsceneTimer = 0;
this->subCamId = SUB_CAM_ID_DONE;
this->actor.flags |= ACTOR_FLAG_100000;
this->actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
this->timer = 30;
this->action = EN_JSO2_ACTION_BLOW_UP;
this->actionFunc = EnJso2_DeathCutscene;

View File

@ -9,8 +9,9 @@
#include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h"
#include "overlays/effects/ovl_Effect_Ss_Hitmark/z_eff_ss_hitmark.h"
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_100000)
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
ACTOR_FLAG_FREEZE_EXCEPTION)
void EnKaizoku_Init(Actor* thisx, PlayState* play);
void EnKaizoku_Destroy(Actor* thisx, PlayState* play);
@ -614,7 +615,7 @@ void func_80B85FA8(EnKaizoku* this, PlayState* play) {
CutsceneManager_Stop(this->csId);
this->unk_59C = 0;
this->subCamId = SUB_CAM_ID_DONE;
this->picto.actor.flags &= ~ACTOR_FLAG_100000;
this->picto.actor.flags &= ~ACTOR_FLAG_FREEZE_EXCEPTION;
this->picto.actor.flags &= ~ACTOR_FLAG_LOCK_ON_DISABLED;
this->picto.actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED;
func_80B872A4(this);
@ -1670,7 +1671,7 @@ void func_80B894C0(EnKaizoku* this, PlayState* play) {
void func_80B8960C(EnKaizoku* this, PlayState* play) {
Vec3f sp24;
this->picto.actor.flags |= ACTOR_FLAG_100000;
this->picto.actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
Matrix_RotateYS(this->picto.actor.yawTowardsPlayer, MTXMODE_NEW);
Matrix_MultVecZ(-10.0f, &sp24);
Math_Vec3f_Copy(&this->unk_3C4, &sp24);
@ -1778,7 +1779,7 @@ void func_80B89A08(EnKaizoku* this, PlayState* play) {
if ((gSaveContext.save.saveInfo.playerData.health <= 0x10) && (this->action != KAIZOKU_ACTION_16)) {
this->unk_2D0 = 2;
this->subCamId = SUB_CAM_ID_DONE;
this->picto.actor.flags |= ACTOR_FLAG_100000;
this->picto.actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
if (!CutsceneManager_IsNext(this->csId)) {
CutsceneManager_Queue(this->csId);
@ -1796,7 +1797,7 @@ void func_80B89A08(EnKaizoku* this, PlayState* play) {
Health_ChangeBy(play, 0x10);
this->unk_2D0 = 2;
this->subCamId = SUB_CAM_ID_DONE;
this->picto.actor.flags |= ACTOR_FLAG_100000;
this->picto.actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
if (!CutsceneManager_IsNext(this->csId)) {
CutsceneManager_Queue(this->csId);

View File

@ -8,8 +8,9 @@
#include "attributes.h"
#include "overlays/actors/ovl_En_Ma_Yts/z_en_ma_yts.h"
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_100000 | ACTOR_FLAG_UPDATE_DURING_OCARINA)
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_FREEZE_EXCEPTION | \
ACTOR_FLAG_UPDATE_DURING_OCARINA)
void EnMaYto_Init(Actor* thisx, PlayState* play);
void EnMaYto_Destroy(Actor* thisx, PlayState* play);

View File

@ -6,8 +6,9 @@
#include "z_en_ma_yts.h"
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_100000 | ACTOR_FLAG_UPDATE_DURING_OCARINA)
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_FREEZE_EXCEPTION | \
ACTOR_FLAG_UPDATE_DURING_OCARINA)
void EnMaYts_Init(Actor* thisx, PlayState* play);
void EnMaYts_Destroy(Actor* thisx, PlayState* play);

View File

@ -584,7 +584,7 @@ void EnPamera_Draw(Actor* thisx, PlayState* play) {
void func_80BD9840(EnPamera* this, PlayState* play) {
this->actor.update = func_80BDA344;
this->actor.flags |= ACTOR_FLAG_UPDATE_DURING_OCARINA;
this->actor.flags |= ACTOR_FLAG_100000;
this->actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_75_20) || CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_STONE_TOWER_TEMPLE)) {
func_80BD9E60(this);
func_80BD9938(this);

View File

@ -13,7 +13,7 @@
#include "assets/objects/object_bal/object_bal.h"
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_100000 | ACTOR_FLAG_UPDATE_DURING_OCARINA)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_FREEZE_EXCEPTION | ACTOR_FLAG_UPDATE_DURING_OCARINA)
void EnPaper_Init(Actor* thisx, PlayState* play);
void EnPaper_Destroy(Actor* thisx, PlayState* play);

View File

@ -6,9 +6,9 @@
#include "z_en_po_composer.h"
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_100000 | \
ACTOR_FLAG_UPDATE_DURING_OCARINA)
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
ACTOR_FLAG_FREEZE_EXCEPTION | ACTOR_FLAG_UPDATE_DURING_OCARINA)
void EnPoComposer_Init(Actor* thisx, PlayState* play);
void EnPoComposer_Destroy(Actor* thisx, PlayState* play);

View File

@ -8,8 +8,8 @@
#include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h"
#include "overlays/actors/ovl_En_Ma4/z_en_ma4.h"
#define FLAGS \
(ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_100000 | \
#define FLAGS \
(ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_FREEZE_EXCEPTION | \
ACTOR_FLAG_MINIMAP_ICON_ENABLED)
void EnPoFusen_Init(Actor* thisx, PlayState* play);

View File

@ -314,7 +314,7 @@ void EnRailSkb_Init(Actor* thisx, PlayState* play) {
}
if ((play->sceneId == SCENE_BOTI) && (gSaveContext.sceneLayer == 1) && (play->csCtx.scriptIndex == 0)) {
this->actor.flags |= ACTOR_FLAG_100000;
this->actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
}
func_80B70FA0(this);
@ -847,7 +847,7 @@ void func_80B72190(EnRailSkb* this, PlayState* play) {
void func_80B723F8(EnRailSkb* this) {
this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE);
this->actor.flags |= (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY);
this->actor.flags |= ACTOR_FLAG_100000;
this->actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
this->actor.hintId = TATL_HINT_ID_NONE;
this->actor.textId = 0;
}
@ -948,14 +948,14 @@ void func_80B72880(EnRailSkb* this, PlayState* play) {
if (Player_GetMask(play) == PLAYER_MASK_CAPTAIN) {
this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE);
this->actor.flags |= (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY);
this->actor.flags |= ACTOR_FLAG_100000;
this->actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
this->actor.hintId = TATL_HINT_ID_NONE;
this->actor.textId = 0;
func_80B71650(this);
}
} else if (Player_GetMask(play) != PLAYER_MASK_CAPTAIN) {
this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY);
this->actor.flags &= ~ACTOR_FLAG_100000;
this->actor.flags &= ~ACTOR_FLAG_FREEZE_EXCEPTION;
this->actor.flags |= (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE);
this->actor.hintId = TATL_HINT_ID_STALCHILD;
this->actor.textId = 0;

View File

@ -1111,7 +1111,7 @@ void EnRailgibud_InitCutsceneGibdo(EnRailgibud* this, PlayState* play) {
EnRailgibud_InitCueType(this);
this->cueId = 99;
this->actor.flags |= ACTOR_FLAG_100000;
this->actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
this->actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 28.0f);

View File

@ -247,7 +247,7 @@ void EnSkb_Init(Actor* thisx, PlayState* play) {
this->actor.floorHeight = this->actor.world.pos.y;
if ((play->sceneId == SCENE_BOTI) && (gSaveContext.sceneLayer == 1) && (play->csCtx.scriptIndex == 0)) {
this->actor.flags |= ACTOR_FLAG_100000;
this->actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
}
switch (this->unk_3D6) {
@ -264,7 +264,7 @@ void EnSkb_Init(Actor* thisx, PlayState* play) {
break;
default:
this->actor.flags &= ~ACTOR_FLAG_100000;
this->actor.flags &= ~ACTOR_FLAG_FREEZE_EXCEPTION;
this->actor.hintId = TATL_HINT_ID_STALCHILD;
func_8099495C(this, play);
break;

View File

@ -835,7 +835,7 @@ void EnTalkGibud_Talk(EnTalkGibud* this, PlayState* play) {
}
player->stateFlags1 |= PLAYER_STATE1_20;
player->stateFlags1 |= PLAYER_STATE1_20000000;
this->actor.flags |= ACTOR_FLAG_100000;
this->actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
EnTalkGibud_SetupDisappear(this);
} else {
EnTalkGibud_SetupPassiveIdle(this);

View File

@ -11,7 +11,7 @@
#include "overlays/gamestates/ovl_daytelop/z_daytelop.h"
#include "overlays/actors/ovl_En_Horse/z_en_horse.h"
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_100000)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_FREEZE_EXCEPTION)
void EnTest4_Init(Actor* thisx, PlayState* play);
void EnTest4_Destroy(Actor* thisx, PlayState* play);

View File

@ -12,9 +12,9 @@
#include "assets/objects/gameplay_keep/gameplay_keep.h"
#define FLAGS \
(ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_200000 | \
ACTOR_FLAG_UPDATE_DURING_OCARINA)
#define FLAGS \
(ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | \
ACTOR_FLAG_UPDATE_DURING_SOARING_AND_SOT_CS | ACTOR_FLAG_UPDATE_DURING_OCARINA)
void EnTest6_Init(Actor* thisx, PlayState* play2);
void EnTest6_Destroy(Actor* thisx, PlayState* play2);
@ -452,7 +452,7 @@ void EnTest6_StopInvertedSoTCutscene(EnTest6* this, PlayState* play) {
Player* player = GET_PLAYER(play);
player->actor.freezeTimer = 0;
play->unk_18844 = false;
play->soaringCsOrSoTCsPlaying = false;
CutsceneManager_Stop(play->playerCsIds[PLAYER_CS_ID_SONG_WARP]);
Player_SetCsActionWithHaltedActors(play, NULL, PLAYER_CSACTION_END);
EnTest6_DisableMotionBlur();
@ -534,7 +534,7 @@ void EnTest6_InvertedSoTCutscene(EnTest6* this, PlayState* play) {
Distortion_Request(DISTORTION_TYPE_SONG_OF_TIME);
Distortion_SetDuration(80);
play->unk_18844 = true;
play->soaringCsOrSoTCsPlaying = true;
this->cueId = SOTCS_CUEID_INV_CLOCKS;
}
break;
@ -596,7 +596,7 @@ void EnTest6_InvertedSoTCutscene(EnTest6* this, PlayState* play) {
this->speed = 0.1f;
EnTest6_DisableMotionBlur();
Distortion_RemoveRequest(DISTORTION_TYPE_SONG_OF_TIME);
play->unk_18844 = false;
play->soaringCsOrSoTCsPlaying = false;
if (this->invSoTParticles != NULL) {
ZeldaArena_Free(this->invSoTParticles);
}
@ -706,7 +706,7 @@ void EnTest6_StopDoubleSoTCutscene(EnTest6* this, PlayState* play) {
Player* player = GET_PLAYER(play);
player->actor.freezeTimer = 0;
play->unk_18844 = false;
play->soaringCsOrSoTCsPlaying = false;
CutsceneManager_Stop(play->playerCsIds[PLAYER_CS_ID_SONG_WARP]);
Player_SetCsActionWithHaltedActors(play, NULL, PLAYER_CSACTION_END);
EnTest6_DisableMotionBlur();
@ -757,7 +757,7 @@ void EnTest6_DoubleSoTCutscene(EnTest6* this, PlayState* play) {
Environment_LerpDiffuseColor(play, &sDoubleSoTCsDiffuseColor, 1.0f);
Environment_LerpFogColor(play, &sDoubleSoTCsFogColor, 1.0f);
Environment_LerpFog(play, sDoubleSoTCsFogNear, sDoubleSoTCsZFar, 1.0f);
play->unk_18844 = true;
play->soaringCsOrSoTCsPlaying = true;
}
if (this->timer == 15) {
@ -765,7 +765,7 @@ void EnTest6_DoubleSoTCutscene(EnTest6* this, PlayState* play) {
Environment_LerpDiffuseColor(play, &sDoubleSoTCsDiffuseColor, 0.0f);
Environment_LerpFogColor(play, &sDoubleSoTCsFogColor, 0.0f);
Environment_LerpFog(play, sDoubleSoTCsFogNear, sDoubleSoTCsZFar, 0.0f);
play->unk_18844 = false;
play->soaringCsOrSoTCsPlaying = false;
}
if (this->screenFillAlpha >= 20) {
@ -773,7 +773,7 @@ void EnTest6_DoubleSoTCutscene(EnTest6* this, PlayState* play) {
Environment_LerpDiffuseColor(play, &sDoubleSoTCsDiffuseColor, this->doubleSoTEnvLerp);
Environment_LerpFogColor(play, &sDoubleSoTCsFogColor, this->doubleSoTEnvLerp);
Environment_LerpFog(play, sDoubleSoTCsFogNear, sDoubleSoTCsZFar, this->doubleSoTEnvLerp);
play->unk_18844 = false;
play->soaringCsOrSoTCsPlaying = false;
}
Actor_PlaySfx_Flagged2(&player->actor, NA_SE_PL_FLYING_AIR - SFX_FLAG);

View File

@ -8,9 +8,9 @@
#include "z_en_test7.h"
#include "assets/objects/gameplay_keep/gameplay_keep.h"
#define FLAGS \
(ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_100000 | ACTOR_FLAG_200000 | \
ACTOR_FLAG_UPDATE_DURING_OCARINA)
#define FLAGS \
(ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_FREEZE_EXCEPTION | \
ACTOR_FLAG_UPDATE_DURING_SOARING_AND_SOT_CS | ACTOR_FLAG_UPDATE_DURING_OCARINA)
void EnTest7_Init(Actor* thisx, PlayState* play2);
void EnTest7_Destroy(Actor* thisx, PlayState* play);
@ -425,7 +425,7 @@ void EnTest7_StartWarpCs(EnTest7* this, PlayState* play) {
} else {
CutsceneManager_Start(play->playerCsIds[PLAYER_CS_ID_SONG_WARP], NULL);
EnTest7_SetupAction(this, EnTest7_WarpCsPart1);
play->unk_18844 = true;
play->soaringCsOrSoTCsPlaying = true;
}
}
@ -592,7 +592,7 @@ void EnTest7_WarpCsPart5(EnTest7* this, PlayState* play) {
R_PLAY_FILL_SCREEN_G = 255;
R_PLAY_FILL_SCREEN_B = 255;
R_PLAY_FILL_SCREEN_ALPHA = 255;
play->unk_18844 = false;
play->soaringCsOrSoTCsPlaying = false;
this->flags &= ~OWL_WARP_FLAGS_DRAW_LENS_FLARE;
EnTest7_SetupAction(this, EnTest7_WarpCsPart6);
Play_DisableMotionBlur();

View File

@ -6,7 +6,9 @@
#include "z_en_viewer.h"
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_200000)
#define FLAGS \
(ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | \
ACTOR_FLAG_UPDATE_DURING_SOARING_AND_SOT_CS)
void EnViewer_Init(Actor* thisx, PlayState* play);
void EnViewer_Destroy(Actor* thisx, PlayState* play);

View File

@ -9,10 +9,10 @@
#include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h"
#include "overlays/actors/ovl_En_Wiz_Brock/z_en_wiz_brock.h"
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_IGNORE_QUAKE | ACTOR_FLAG_100000 | ACTOR_FLAG_LOCK_ON_DISABLED | \
ACTOR_FLAG_MINIMAP_ICON_ENABLED)
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_IGNORE_QUAKE | ACTOR_FLAG_FREEZE_EXCEPTION | \
ACTOR_FLAG_LOCK_ON_DISABLED | ACTOR_FLAG_MINIMAP_ICON_ENABLED)
void EnWiz_Init(Actor* thisx, PlayState* play);
void EnWiz_Destroy(Actor* thisx, PlayState* play);
@ -336,7 +336,7 @@ void EnWiz_Init(Actor* thisx, PlayState* play) {
if ((this->type == EN_WIZ_TYPE_FIRE) || (this->type == EN_WIZ_TYPE_FIRE_NO_BGM)) {
this->actor.colChkInfo.damageTable = &sFireWizrobeDamageTable;
this->actor.colChkInfo.health = 8;
this->actor.flags &= ~ACTOR_FLAG_100000;
this->actor.flags &= ~ACTOR_FLAG_FREEZE_EXCEPTION;
} else {
this->actor.colChkInfo.damageTable = &sIceWizrobeDamageTable;
this->actor.colChkInfo.health = 6;
@ -676,7 +676,7 @@ void EnWiz_StartIntroCutscene(EnWiz* this, PlayState* play) {
if (CutsceneManager_IsNext(this->actor.csId)) {
CutsceneManager_StartWithPlayerCsAndSetFlag(this->actor.csId, &this->actor);
this->subCamId = CutsceneManager_GetCurrentSubCamId(this->actor.csId);
this->actor.flags |= ACTOR_FLAG_100000;
this->actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
EnWiz_SetupAppear(this, play);
} else {
CutsceneManager_Queue(this->actor.csId);
@ -840,7 +840,7 @@ void EnWiz_SetupSecondPhaseCutscene(EnWiz* this, PlayState* play) {
} else {
CutsceneManager_StartWithPlayerCsAndSetFlag(secondPhaseCsId, &this->actor);
this->subCamId = CutsceneManager_GetCurrentSubCamId(secondPhaseCsId);
this->actor.flags |= ACTOR_FLAG_100000;
this->actor.flags |= ACTOR_FLAG_FREEZE_EXCEPTION;
EnWiz_ChangeAnim(this, EN_WIZ_ANIM_DANCE, false);
this->action = EN_WIZ_ACTION_RUN_BETWEEN_PLATFORMS;
this->nextPlatformIndex = 1;
@ -891,7 +891,7 @@ void EnWiz_SecondPhaseCutscene(EnWiz* this, PlayState* play) {
this->fightState = EN_WIZ_FIGHT_STATE_SECOND_PHASE_GHOSTS_COPY_WIZROBE;
this->timer = 0;
CutsceneManager_Stop(CutsceneManager_GetAdditionalCsId(this->actor.csId));
this->actor.flags &= ~ACTOR_FLAG_100000;
this->actor.flags &= ~ACTOR_FLAG_FREEZE_EXCEPTION;
EnWiz_SetupDisappear(this);
return;
}
@ -1043,7 +1043,7 @@ void EnWiz_Disappear(EnWiz* this, PlayState* play) {
if ((this->introCutsceneState == EN_WIZ_INTRO_CS_DISAPPEAR) && (this->introCutsceneTimer == 0)) {
this->introCutsceneState = EN_WIZ_INTRO_CS_END;
CutsceneManager_Stop(this->actor.csId);
this->actor.flags &= ~ACTOR_FLAG_100000;
this->actor.flags &= ~ACTOR_FLAG_FREEZE_EXCEPTION;
}
if (this->introCutsceneState != EN_WIZ_INTRO_CS_DISAPPEAR) {

View File

@ -7,7 +7,7 @@
#include "z_obj_hgdoor.h"
#include "assets/objects/object_hgdoor/object_hgdoor.h"
#define FLAGS (ACTOR_FLAG_100000)
#define FLAGS (ACTOR_FLAG_FREEZE_EXCEPTION)
void ObjHgdoor_Init(Actor* thisx, PlayState* play);
void ObjHgdoor_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_obj_moon_stone.h"
#include "assets/objects/object_gi_reserve00/object_gi_reserve00.h"
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_100000)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_FREEZE_EXCEPTION)
void ObjMoonStone_Init(Actor* thisx, PlayState* play);
void ObjMoonStone_Destroy(Actor* thisx, PlayState* play);

View File

@ -6,7 +6,7 @@
#include "z_obj_wturn.h"
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_100000 | ACTOR_FLAG_UPDATE_DURING_OCARINA)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_FREEZE_EXCEPTION | ACTOR_FLAG_UPDATE_DURING_OCARINA)
void ObjWturn_Init(Actor* thisx, PlayState* play);
void ObjWturn_Update(Actor* thisx, PlayState* play);

View File

@ -12535,7 +12535,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) {
func_808484F0(this);
}
if ((play->unk_18844 == 0) && !(this->skelAnime.moveFlags & ANIM_FLAG_80)) {
if (!play->soaringCsOrSoTCsPlaying && !(this->skelAnime.moveFlags & ANIM_FLAG_80)) {
if (!(this->stateFlags1 & PLAYER_STATE1_2) && (this->actor.parent == NULL)) {
func_80844784(play, this);
}