Docs: Update Player/Actor Flags (#2765)

* Actor Flags update

* player state1 flags; cleanup; prep for state2 and state3

* Player state2

* player state3

* Rename flags in Player tab
This commit is contained in:
Ralphie Morell 2023-05-30 15:05:04 -04:00 committed by GitHub
parent f544aba647
commit 71662c56b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
382 changed files with 1767 additions and 1684 deletions

View File

@ -103,34 +103,34 @@ typedef struct {
/* 0x18 */ Vec3f feetPos[2]; // Update by using `Actor_SetFeetPos` in PostLimbDraw
} ActorShape; // size = 0x30
#define ACTOR_FLAG_0 (1 << 0)
#define ACTOR_FLAG_2 (1 << 2)
#define ACTOR_FLAG_3 (1 << 3)
#define ACTOR_FLAG_4 (1 << 4)
#define ACTOR_FLAG_5 (1 << 5)
#define ACTOR_FLAG_6 (1 << 6)
#define ACTOR_FLAG_7 (1 << 7)
#define ACTOR_FLAG_8 (1 << 8)
#define ACTOR_FLAG_9 (1 << 9)
#define ACTOR_FLAG_10 (1 << 10)
#define ACTOR_FLAG_TARGETABLE (1 << 0)
#define ACTOR_FLAG_HOSTILE (1 << 2)
#define ACTOR_FLAG_FRIENDLY (1 << 3)
#define ACTOR_FLAG_UPDATE_WHILE_CULLED (1 << 4)
#define ACTOR_FLAG_DRAW_WHILE_CULLED (1 << 5)
#define ACTOR_FLAG_ACTIVE (1 << 6)
#define ACTOR_FLAG_LENS (1 << 7)
#define ACTOR_FLAG_PLAYER_TALKED_TO (1 << 8)
#define ACTOR_FLAG_HOOKSHOT_DRAGS (1 << 9)
#define ACTOR_FLAG_DRAGGED_BY_HOOKSHOT (1 << 10)
#define ACTOR_FLAG_ENKUSA_CUT (1 << 11)
#define ACTOR_FLAG_12 (1 << 12)
#define ACTOR_FLAG_13 (1 << 13)
#define ACTOR_FLAG_14 (1 << 14)
#define ACTOR_FLAG_15 (1 << 15)
#define ACTOR_FLAG_16 (1 << 16)
#define ACTOR_FLAG_17 (1 << 17)
#define ACTOR_FLAG_18 (1 << 18)
#define ACTOR_FLAG_19 (1 << 19)
#define ACTOR_FLAG_20 (1 << 20)
#define ACTOR_FLAG_21 (1 << 21)
#define ACTOR_FLAG_22 (1 << 22)
#define ACTOR_FLAG_23 (1 << 23)
#define ACTOR_FLAG_24 (1 << 24)
#define ACTOR_FLAG_25 (1 << 25)
#define ACTOR_FLAG_26 (1 << 26)
#define ACTOR_FLAG_27 (1 << 27)
#define ACTOR_FLAG_28 (1 << 28)
#define ACTOR_FLAG_IGNORE_QUAKE (1 << 12)
#define ACTOR_FLAG_HOOKSHOT_ATTACHED (1 << 13)
#define ACTOR_FLAG_ARROW_DRAGGABLE (1 << 14)
#define ACTOR_FLAG_DRAGGED_BY_ARROW (1 << 15)
#define ACTOR_FLAG_WILL_TALK (1 << 16)
#define ACTOR_FLAG_PILLAR_PICKUP (1 << 17)
#define ACTOR_FLAG_NAVI_HAS_INFO (1 << 18)
#define ACTOR_FLAG_SFX_AT_POS (1 << 19)
#define ACTOR_FLAG_SFX_AT_CENTER (1 << 20)
#define ACTOR_FLAG_SFX_AT_CENTER2 (1 << 21)
#define ACTOR_FLAG_IGNORE_POINTLIGHTS (1 << 22)
#define ACTOR_FLAG_ALWAYS_THROWN (1 << 23)
#define ACTOR_FLAG_PLAY_HIT_SFX (1 << 24)
#define ACTOR_FLAG_NO_FREEZE_OCARINA (1 << 25)
#define ACTOR_FLAG_CAN_PRESS_SWITCH (1 << 26)
#define ACTOR_FLAG_NO_LOCKON (1 << 27)
#define ACTOR_FLAG_SFX_AS_TIMER (1 << 28)
typedef struct Actor {
/* 0x000 */ s16 id; // Actor ID

View File

@ -415,80 +415,80 @@ typedef struct {
} PendingFlag; // size = 0x06
// #endregion
#define PLAYER_STATE1_0 (1 << 0)
#define PLAYER_STATE1_LOADING (1 << 0) //Transitioning to a new scene
#define PLAYER_STATE1_SWINGING_BOTTLE (1 << 1)
#define PLAYER_STATE1_2 (1 << 2)
#define PLAYER_STATE1_3 (1 << 3)
#define PLAYER_STATE1_4 (1 << 4)
#define PLAYER_STATE1_5 (1 << 5)
#define PLAYER_STATE1_6 (1 << 6)
#define PLAYER_STATE1_7 (1 << 7)
#define PLAYER_STATE1_8 (1 << 8)
#define PLAYER_STATE1_9 (1 << 9)
#define PLAYER_STATE1_10 (1 << 10)
#define PLAYER_STATE1_11 (1 << 11)
#define PLAYER_STATE1_12 (1 << 12)
#define PLAYER_STATE1_13 (1 << 13)
#define PLAYER_STATE1_14 (1 << 14)
#define PLAYER_STATE1_15 (1 << 15)
#define PLAYER_STATE1_16 (1 << 16)
#define PLAYER_STATE1_17 (1 << 17)
#define PLAYER_STATE1_18 (1 << 18)
#define PLAYER_STATE1_19 (1 << 19)
#define PLAYER_STATE1_20 (1 << 20)
#define PLAYER_STATE1_21 (1 << 21)
#define PLAYER_STATE1_22 (1 << 22)
#define PLAYER_STATE1_23 (1 << 23)
#define PLAYER_STATE1_24 (1 << 24)
#define PLAYER_STATE1_25 (1 << 25)
#define PLAYER_STATE1_26 (1 << 26)
#define PLAYER_STATE1_27 (1 << 27)
#define PLAYER_STATE1_28 (1 << 28)
#define PLAYER_STATE1_29 (1 << 29)
#define PLAYER_STATE1_30 (1 << 30)
#define PLAYER_STATE1_31 (1 << 31)
#define PLAYER_STATE1_HOOKSHOT_FALLING (1 << 2)
#define PLAYER_STATE1_ITEM_IN_HAND (1 << 3)
#define PLAYER_STATE1_ENEMY_TARGET (1 << 4)
#define PLAYER_STATE1_INPUT_DISABLED (1 << 5)
#define PLAYER_STATE1_TEXT_ON_SCREEN (1 << 6)
#define PLAYER_STATE1_DEAD (1 << 7)
#define PLAYER_STATE1_START_PUTAWAY (1 << 8)
#define PLAYER_STATE1_READY_TO_FIRE (1 << 9)
#define PLAYER_STATE1_GETTING_ITEM (1 << 10)
#define PLAYER_STATE1_ITEM_OVER_HEAD (1 << 11)
#define PLAYER_STATE1_CHARGING_SPIN_ATTACK (1 << 12)
#define PLAYER_STATE1_HANGING_OFF_LEDGE (1 << 13)
#define PLAYER_STATE1_CLIMBING_LEDGE (1 << 14)
#define PLAYER_STATE1_TARGETING (1 << 15)
#define PLAYER_STATE1_TARGET_LOCKED (1 << 16)
#define PLAYER_STATE1_TARGET_NOTHING (1 << 17)
#define PLAYER_STATE1_JUMPING (1 << 18)
#define PLAYER_STATE1_FREEFALL (1 << 19)
#define PLAYER_STATE1_FIRST_PERSON (1 << 20)
#define PLAYER_STATE1_CLIMBING_LADDER (1 << 21)
#define PLAYER_STATE1_SHIELDING (1 << 22)
#define PLAYER_STATE1_ON_HORSE (1 << 23)
#define PLAYER_STATE1_BOOMERANG_IN_HAND (1 << 24)
#define PLAYER_STATE1_THREW_BOOMERANG (1 << 25)
#define PLAYER_STATE1_DAMAGED (1 << 26)
#define PLAYER_STATE1_IN_WATER (1 << 27)
#define PLAYER_STATE1_IN_ITEM_CS (1 << 28)
#define PLAYER_STATE1_IN_CUTSCENE (1 << 29)
#define PLAYER_STATE1_30 (1 << 30) //Unknown, potentially target related?
#define PLAYER_STATE1_FLOOR_DISABLED (1 << 31) //Used for grottos
#define PLAYER_STATE2_0 (1 << 0)
#define PLAYER_STATE2_1 (1 << 1)
#define PLAYER_STATE2_2 (1 << 2)
#define PLAYER_STATE2_3 (1 << 3)
#define PLAYER_STATE2_4 (1 << 4)
#define PLAYER_STATE2_5 (1 << 5)
#define PLAYER_STATE2_6 (1 << 6)
#define PLAYER_STATE2_7 (1 << 7)
#define PLAYER_STATE2_8 (1 << 8)
#define PLAYER_STATE2_9 (1 << 9)
#define PLAYER_STATE2_10 (1 << 10)
#define PLAYER_STATE2_11 (1 << 11)
#define PLAYER_STATE2_12 (1 << 12)
#define PLAYER_STATE2_13 (1 << 13)
#define PLAYER_STATE2_14 (1 << 14)
#define PLAYER_STATE2_15 (1 << 15)
#define PLAYER_STATE2_DO_ACTION_GRAB (1 << 0)
#define PLAYER_STATE2_SPEAK_OR_CHECK (1 << 1)
#define PLAYER_STATE2_DO_ACTION_CLIMB (1 << 2)
#define PLAYER_STATE2_FOOTSTEP (1 << 3)
#define PLAYER_STATE2_MOVING_DYNAPOLY (1 << 4)
#define PLAYER_STATE2_DISABLE_ROTATION_Z_TARGET (1 << 5)
#define PLAYER_STATE2_DISABLE_ROTATION_ALWAYS (1 << 6)
#define PLAYER_STATE2_GRABBED_BY_ENEMY (1 << 7)
#define PLAYER_STATE2_GRABBING_DYNAPOLY (1 << 8)
#define PLAYER_STATE2_SPAWN_DUST (1 << 9)
#define PLAYER_STATE2_UNDERWATER (1 << 10)
#define PLAYER_STATE2_DIVING (1 << 11)
#define PLAYER_STATE2_STATIONARY_LADDER (1 << 12)
#define PLAYER_STATE2_SWITCH_TARGETING (1 << 13)
#define PLAYER_STATE2_FROZEN (1 << 14)
#define PLAYER_STATE2_PAUSE_MOST_UPDATING (1 << 15)
#define PLAYER_STATE2_DO_ACTION_ENTER (1 << 16) // Turns on the "Enter On A" DoAction
#define PLAYER_STATE2_17 (1 << 17)
#define PLAYER_STATE2_SPIN_ATTACKING (1 << 17) //w/o magic
#define PLAYER_STATE2_CRAWLING (1 << 18) // Crawling through a crawlspace
#define PLAYER_STATE2_19 (1 << 19)
#define PLAYER_STATE2_20 (1 << 20)
#define PLAYER_STATE2_21 (1 << 21)
#define PLAYER_STATE2_22 (1 << 22)
#define PLAYER_STATE2_23 (1 << 23)
#define PLAYER_STATE2_24 (1 << 24)
#define PLAYER_STATE2_25 (1 << 25)
#define PLAYER_STATE2_26 (1 << 26)
#define PLAYER_STATE2_27 (1 << 27)
#define PLAYER_STATE2_28 (1 << 28)
#define PLAYER_STATE2_29 (1 << 29)
#define PLAYER_STATE2_30 (1 << 30)
#define PLAYER_STATE2_31 (1 << 31)
#define PLAYER_STATE2_HOPPING (1 << 19) //Sidehop/backflip
#define PLAYER_STATE2_NAVI_OUT (1 << 20)
#define PLAYER_STATE2_NAVI_ALERT (1 << 21)
#define PLAYER_STATE2_DO_ACTION_DOWN (1 << 22)
#define PLAYER_STATE2_NEAR_OCARINA_ACTOR (1 << 23)
#define PLAYER_STATE2_ATTEMPT_PLAY_FOR_ACTOR (1 << 24)
#define PLAYER_STATE2_PLAY_FOR_ACTOR (1 << 25)
#define PLAYER_STATE2_REFLECTION (1 << 26) //Handles Dark Link's Reflection
#define PLAYER_STATE2_OCARINA_PLAYING (1 << 27)
#define PLAYER_STATE2_IDLING (1 << 28)
#define PLAYER_STATE2_DISABLE_DRAW (1 << 29)
#define PLAYER_STATE2_SWORD_LUNGE (1 << 30)
#define PLAYER_STATE2_FORCED_VOID_OUT (1 << 31)
#define PLAYER_STATE3_0 (1 << 0)
#define PLAYER_STATE3_1 (1 << 1)
#define PLAYER_STATE3_2 (1 << 2)
#define PLAYER_STATE3_3 (1 << 3)
#define PLAYER_STATE3_4 (1 << 4)
#define PLAYER_STATE3_5 (1 << 5)
#define PLAYER_STATE3_IGNORE_CEILING_FLOOR_WATER (1 << 0)
#define PLAYER_STATE3_MIDAIR (1 << 1)
#define PLAYER_STATE3_PAUSE_ACTION_FUNC (1 << 2)
#define PLAYER_STATE3_FINISHED_ATTACKING (1 << 3)
#define PLAYER_STATE3_CHECK_FLOOR_WATER_COLLISION (1 << 4)
#define PLAYER_STATE3_FORCE_PULL_OCARINA (1 << 5)
#define PLAYER_STATE3_RESTORE_NAYRUS_LOVE (1 << 6) // Set by ocarina effects actors when destroyed to signal Nayru's Love may be restored (see `ACTOROVL_ALLOC_ABSOLUTE`)
#define PLAYER_STATE3_7 (1 << 7)
#define PLAYER_STATE3_HOOKSHOT_TRAVELLING (1 << 7) //Travelling to target
typedef void (*PlayerFunc674)(struct Player*, struct PlayState*);
typedef s32 (*PlayerFunc82C)(struct Player*, struct PlayState*);

View File

@ -1708,14 +1708,16 @@ void DrawPlayerTab() {
ImGui::Text("Player State");
uint8_t bit[32] = {};
uint32_t flags[3] = { player->stateFlags1, player->stateFlags2, player->stateFlags3 };
std::vector<std::vector<std::string>> flag_strs = { state1, state2, state3 };
for (int j = 0; j <= 2; j++) {
DrawGroupWithBorder([&]() {
ImGui::Text("State Flags %d", j + 1);
std::vector<std::string> state = flag_strs[j];
for (int i = 0; i <= 31; i++) {
bit[i] = ((flags[j] >> i) & 1);
if (bit[i] != 0) {
ImGui::Text("Flag %d", i);
ImGui::Text("%s", state[i].c_str());
}
}
});

View File

@ -503,3 +503,84 @@ const std::vector<FlagTable> flagTables = {
{ RAND_INF_GREG_FOUND, "RAND_INF_GREG_FOUND" },
} },
};
const std::vector<std::string> state1 = {
"Loading",
"Swinging Bottle",
"Falling from Hookshot",
"Hookshot/Bow in Hand",
"Targeting Enemy",
"Input Disabled",
"Text on Screen",
"Death",
"Starting to put away",
"Ready to Fire",
"Get Item",
"Item over Head",
"Charging Spin Attack",
"Hanging off Ledge",
"Climbing Ledge",
"Targeting",
"Target Locked",
"Targeting Nothing",
"Jumping Forward",
"In Freefall",
"In First-Person View",
"Climbing Ladder",
"Shielding",
"On Horse",
"Boomerang in Hand",
"Boomerang Thrown",
"Damaged",
"In Water",
"In Item Cutscene",
"In Cutscene",
"30", //Unknown
"Floor collision disabled"
};
const std::vector<std::string> state2 = {
"Grab",
"Speak/Check",
"Climb",
"Footstep",
"Moving Dynapoly",
"Disabled Rotation on Z target",
"Disabled Rotation",
"Grabbed by Enemy",
"Grabbing Dynapoly",
"Spawning Dust",
"Underwater",
"Diving",
"Stationary on Ladder",
"Switch Targeting",
"Frozen",
"Pause Most Updating",
"Enter",
"Spin Attack w/o Magic",
"Crawling",
"Hopping",
"Navi Out",
"Navi Alert",
"Down",
"Near Ocarina Actor",
"Attempt playing for Oca. Actor",
"Playing for Oca. Actor",
"Reflection",
"Ocarina Playing",
"Idling",
"Disabled draw func",
"Sword Lunge",
"Void out"
};
const std::vector<std::string> state3 = {
"Ignore ceiling for Floor and Water",
"Midair",
"Pause Action Func",
"Finished Attacking",
"Check Floor Water Collision",
"Force Pull Ocarina",
"Restore Nayru's Love",
"Travelling to Hook Target"
};

View File

@ -518,7 +518,7 @@ void Entrance_HandleEponaState(void) {
Player* player = GET_PLAYER(gPlayState);
//If Link is riding Epona but he's about to go through an entrance where she can't spawn,
//unset the Epona flag to avoid Master glitch, and restore temp B.
if (Randomizer_GetSettingValue(RSK_SHUFFLE_OVERWORLD_ENTRANCES) && (player->stateFlags1 & PLAYER_STATE1_23)) {
if (Randomizer_GetSettingValue(RSK_SHUFFLE_OVERWORLD_ENTRANCES) && (player->stateFlags1 & PLAYER_STATE1_ON_HORSE)) {
// Allow Master glitch to be performed on the Thieves Hideout entrance
if (entrance == Entrance_GetOverride(0x0496)) { // Gerudo Fortress -> Theives Hideout
return;
@ -563,7 +563,7 @@ void Entrance_HandleEponaState(void) {
// Update Link's status to no longer be riding epona so that the next time link
// enters an epona supported area, he isn't automatically placed on epona
player->stateFlags1 &= ~PLAYER_STATE1_23;
player->stateFlags1 &= ~PLAYER_STATE1_ON_HORSE;
player->actor.parent = NULL;
AREG(6) = 0;
gSaveContext.equips.buttonItems[0] = gSaveContext.buttonStatus[0]; //"temp B"

View File

@ -62,7 +62,7 @@ void func_80043334(CollisionContext* colCtx, Actor* actor, s32 bgId) {
if (dynaActor != NULL) {
func_800434A8(dynaActor);
if (CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_26)) {
if (CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_CAN_PRESS_SWITCH)) {
func_80043538(dynaActor);
}
}

View File

@ -525,7 +525,7 @@ void func_8002C124(TargetContext* targetCtx, PlayState* play) {
}
actor = targetCtx->unk_94;
if ((actor != NULL) && !(actor->flags & ACTOR_FLAG_27)) {
if ((actor != NULL) && !(actor->flags & ACTOR_FLAG_NO_LOCKON)) {
FrameInterpolation_RecordOpenChild(actor, 1);
NaviColor* naviColor = &sNaviColorList[actor->category];
@ -620,7 +620,7 @@ void func_8002C7BC(TargetContext* targetCtx, Player* player, Actor* actorArg, Pl
targetCtx->unk_48 = 0;
}
lockOnSfxId = CHECK_FLAG_ALL(actorArg->flags, ACTOR_FLAG_0 | ACTOR_FLAG_2) ? NA_SE_SY_LOCK_ON
lockOnSfxId = CHECK_FLAG_ALL(actorArg->flags, ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_HOSTILE) ? NA_SE_SY_LOCK_ON
: NA_SE_SY_LOCK_ON_HUMAN;
func_80078884(lockOnSfxId);
}
@ -1147,7 +1147,7 @@ s32 func_8002D53C(PlayState* play, TitleCardContext* titleCtx) {
void Actor_Kill(Actor* actor) {
actor->draw = NULL;
actor->update = NULL;
actor->flags &= ~ACTOR_FLAG_0;
actor->flags &= ~ACTOR_FLAG_TARGETABLE;
}
void Actor_SetWorldToHome(Actor* actor) {
@ -1393,8 +1393,8 @@ void func_8002DE04(PlayState* play, Actor* actorA, Actor* actorB) {
hookshot->grabbedDistDiff.x = 0.0f;
hookshot->grabbedDistDiff.y = 0.0f;
hookshot->grabbedDistDiff.z = 0.0f;
actorB->flags |= ACTOR_FLAG_13;
actorA->flags &= ~ACTOR_FLAG_13;
actorB->flags |= ACTOR_FLAG_HOOKSHOT_ATTACHED;
actorA->flags &= ~ACTOR_FLAG_HOOKSHOT_ATTACHED;
}
void func_8002DE74(PlayState* play, Player* player) {
@ -1829,7 +1829,7 @@ f32 func_8002EFC0(Actor* actor, Player* player, s16 arg2) {
s16 yawTempAbs = ABS(yawTemp);
if (player->unk_664 != NULL) {
if ((yawTempAbs > 0x4000) || (actor->flags & ACTOR_FLAG_27)) {
if ((yawTempAbs > 0x4000) || (actor->flags & ACTOR_FLAG_NO_LOCKON)) {
return FLT_MAX;
} else {
f32 ret =
@ -1865,7 +1865,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_0)) {
if ((actor->update == NULL) || !(actor->flags & ACTOR_FLAG_TARGETABLE)) {
return true;
}
@ -1887,8 +1887,8 @@ s32 func_8002F0C8(Actor* actor, Player* player, s32 flag) {
}
u32 Actor_ProcessTalkRequest(Actor* actor, PlayState* play) {
if (actor->flags & ACTOR_FLAG_8) {
actor->flags &= ~ACTOR_FLAG_8;
if (actor->flags & ACTOR_FLAG_PLAYER_TALKED_TO) {
actor->flags &= ~ACTOR_FLAG_PLAYER_TALKED_TO;
return true;
}
@ -1899,7 +1899,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_8) || ((exchangeItemId != EXCH_ITEM_NONE) && Player_InCsMode(play)) ||
if ((player->actor.flags & ACTOR_FLAG_PLAYER_TALKED_TO) || ((exchangeItemId != EXCH_ITEM_NONE) && Player_InCsMode(play)) ||
(!actor->isTargeted &&
((arg3 < fabsf(actor->yDistToPlayer)) || (player->targetActorDistance < actor->xzDistToPlayer) ||
(arg2 < actor->xzDistToPlayer)))) {
@ -2201,30 +2201,30 @@ void func_8002F850(PlayState* play, Actor* actor) {
void func_8002F8F0(Actor* actor, u16 sfxId) {
actor->sfx = sfxId;
actor->flags |= ACTOR_FLAG_19;
actor->flags &= ~(ACTOR_FLAG_20 | ACTOR_FLAG_21 | ACTOR_FLAG_28);
actor->flags |= ACTOR_FLAG_SFX_AT_POS;
actor->flags &= ~(ACTOR_FLAG_SFX_AT_CENTER | ACTOR_FLAG_SFX_AT_CENTER2 | ACTOR_FLAG_SFX_AS_TIMER);
}
void func_8002F91C(Actor* actor, u16 sfxId) {
actor->sfx = sfxId;
actor->flags |= ACTOR_FLAG_20;
actor->flags &= ~(ACTOR_FLAG_19 | ACTOR_FLAG_21 | ACTOR_FLAG_28);
actor->flags |= ACTOR_FLAG_SFX_AT_CENTER;
actor->flags &= ~(ACTOR_FLAG_SFX_AT_POS | ACTOR_FLAG_SFX_AT_CENTER2 | ACTOR_FLAG_SFX_AS_TIMER);
}
void func_8002F948(Actor* actor, u16 sfxId) {
actor->sfx = sfxId;
actor->flags |= ACTOR_FLAG_21;
actor->flags &= ~(ACTOR_FLAG_19 | ACTOR_FLAG_20 | ACTOR_FLAG_28);
actor->flags |= ACTOR_FLAG_SFX_AT_CENTER2;
actor->flags &= ~(ACTOR_FLAG_SFX_AT_POS | ACTOR_FLAG_SFX_AT_CENTER | ACTOR_FLAG_SFX_AS_TIMER);
}
void func_8002F974(Actor* actor, u16 sfxId) {
actor->flags &= ~(ACTOR_FLAG_19 | ACTOR_FLAG_20 | ACTOR_FLAG_21 | ACTOR_FLAG_28);
actor->flags &= ~(ACTOR_FLAG_SFX_AT_POS | ACTOR_FLAG_SFX_AT_CENTER | ACTOR_FLAG_SFX_AT_CENTER2 | ACTOR_FLAG_SFX_AS_TIMER);
actor->sfx = sfxId;
}
void func_8002F994(Actor* actor, s32 arg1) {
actor->flags |= ACTOR_FLAG_28;
actor->flags &= ~(ACTOR_FLAG_19 | ACTOR_FLAG_20 | ACTOR_FLAG_21);
actor->flags |= ACTOR_FLAG_SFX_AS_TIMER;
actor->flags &= ~(ACTOR_FLAG_SFX_AT_POS | ACTOR_FLAG_SFX_AT_CENTER | ACTOR_FLAG_SFX_AT_CENTER2);
if (arg1 < 40) {
actor->sfx = NA_SE_PL_WALK_DIRT - SFX_FLAG;
} else if (arg1 < 100) {
@ -2523,7 +2523,7 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) {
sp80 = &D_80116068[0];
if (player->stateFlags2 & 0x8000000) {
unkFlag = ACTOR_FLAG_25;
unkFlag = ACTOR_FLAG_NO_FREEZE_OCARINA;
}
if ((player->stateFlags1 & 0x40) && ((player->actor.textId & 0xFF00) != 0x600)) {
@ -2571,9 +2571,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_24;
actor->flags &= ~ACTOR_FLAG_PLAY_HIT_SFX;
if ((DECR(actor->freezeTimer) == 0) && (actor->flags & (ACTOR_FLAG_4 | ACTOR_FLAG_6))) {
if ((DECR(actor->freezeTimer) == 0) && (actor->flags & (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_ACTIVE))) {
if (actor == player->unk_664) {
actor->isTargeted = true;
} else {
@ -2657,11 +2657,11 @@ void Actor_Draw(PlayState* play, Actor* actor) {
lights = LightContext_NewLights(&play->lightCtx, play->state.gfxCtx);
Lights_BindAll(lights, play->lightCtx.listHead, (actor->flags & ACTOR_FLAG_22) ? NULL : &actor->world.pos);
Lights_BindAll(lights, play->lightCtx.listHead, (actor->flags & ACTOR_FLAG_IGNORE_POINTLIGHTS) ? NULL : &actor->world.pos);
Lights_Draw(lights, play->state.gfxCtx);
FrameInterpolation_RecordActorPosRotMatrix();
if (actor->flags & ACTOR_FLAG_12) {
if (actor->flags & ACTOR_FLAG_IGNORE_QUAKE) {
Matrix_SetTranslateRotateYXZ(
actor->world.pos.x + play->mainCamera.skyboxOffset.x,
actor->world.pos.y + (f32)((actor->shape.yOffset * actor->scale.y) + play->mainCamera.skyboxOffset.y),
@ -2716,13 +2716,13 @@ void Actor_Draw(PlayState* play, Actor* actor) {
}
void func_80030ED8(Actor* actor) {
if (actor->flags & ACTOR_FLAG_19) {
if (actor->flags & ACTOR_FLAG_SFX_AT_POS) {
Audio_PlaySoundGeneral(actor->sfx, &actor->projectedPos, 4, &D_801333E0, &D_801333E0, &D_801333E8);
} else if (actor->flags & ACTOR_FLAG_20) {
} else if (actor->flags & ACTOR_FLAG_SFX_AT_CENTER) {
func_80078884(actor->sfx);
} else if (actor->flags & ACTOR_FLAG_21) {
} else if (actor->flags & ACTOR_FLAG_SFX_AT_CENTER2) {
func_800788CC(actor->sfx);
} else if (actor->flags & ACTOR_FLAG_28) {
} else if (actor->flags & ACTOR_FLAG_SFX_AS_TIMER) {
func_800F4C58(&D_801333D4, NA_SE_SY_TIMER - SFX_FLAG, (s8)(actor->sfx - 1));
} else {
func_80078914(&actor->projectedPos, actor->sfx);
@ -2908,17 +2908,17 @@ void func_800315AC(PlayState* play, ActorContext* actorCtx) {
if ((HREG(64) != 1) || ((HREG(65) != -1) && (HREG(65) != HREG(66))) || (HREG(70) == 0)) {
if (func_800314B0(play, actor)) {
actor->flags |= ACTOR_FLAG_6;
actor->flags |= ACTOR_FLAG_ACTIVE;
} else {
actor->flags &= ~ACTOR_FLAG_6;
actor->flags &= ~ACTOR_FLAG_ACTIVE;
}
}
actor->isDrawn = false;
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_5 | ACTOR_FLAG_6))) {
if ((actor->flags & ACTOR_FLAG_7) &&
if ((actor->init == NULL) && (actor->draw != NULL) && (actor->flags & (ACTOR_FLAG_DRAW_WHILE_CULLED | ACTOR_FLAG_ACTIVE))) {
if ((actor->flags & ACTOR_FLAG_LENS) &&
((play->roomCtx.curRoom.lensMode == LENS_MODE_HIDE_ACTORS) ||
play->actorCtx.lensActive || (actor->room != play->roomCtx.curRoom.num))) {
ASSERT(invisibleActorCounter < INVISIBLE_ACTOR_MAX);
@ -3458,11 +3458,11 @@ void func_800328D4(PlayState* play, ActorContext* actorCtx, Player* player, u32
sp84 = player->unk_664;
while (actor != NULL) {
if ((actor->update != NULL) && ((Player*)actor != player) && CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_0)) {
if ((actor->update != NULL) && ((Player*)actor != player) && CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_TARGETABLE)) {
// 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_0 | ACTOR_FLAG_2) &&
if ((actorCategory == ACTORCAT_ENEMY) && CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_HOSTILE) &&
(actor->xyzDistToPlayerSq < SQ(500.0f)) && (actor->xyzDistToPlayerSq < sbgmEnemyDistSq)) {
actorCtx->targetCtx.bgmEnemy = actor;
sbgmEnemyDistSq = actor->xyzDistToPlayerSq;
@ -4510,10 +4510,10 @@ s16 func_80034DD4(Actor* actor, PlayState* play, s16 arg2, f32 arg3) {
}
if (arg3 < var) {
actor->flags &= ~ACTOR_FLAG_0;
actor->flags &= ~ACTOR_FLAG_TARGETABLE;
Math_SmoothStepToS(&arg2, 0, 6, 0x14, 1);
} else {
actor->flags |= ACTOR_FLAG_0;
actor->flags |= ACTOR_FLAG_TARGETABLE;
Math_SmoothStepToS(&arg2, 0xFF, 6, 0x14, 1);
}

View File

@ -3,7 +3,7 @@
#include "objects/gameplay_keep/gameplay_keep.h"
#include <objects/object_d_hsblock/object_d_hsblock.h>
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
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_0; this->dyna.bgId = 5; this->focusYoffset = 10.0f;
thisx->flags |= ACTOR_FLAG_TARGETABLE; 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_0 | ACTOR_FLAG_3; thisx->targetArrowOffset = 500.0f;
thisx->flags |= ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_FRIENDLY; thisx->targetArrowOffset = 500.0f;
// clang-format on
this->focusYoffset = 45.0f;
EnAObj_SetupWaitTalk(this, thisx->params);

View File

@ -1642,7 +1642,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_4;
spawnedActor->actor.flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
}
}
}
@ -1676,7 +1676,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_4;
spawnedActor->actor.flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
}
}
}
@ -1790,7 +1790,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_4;
spawnedActor->actor.flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
if ((spawnedActor->actor.params != ITEM00_SMALL_KEY) &&
(spawnedActor->actor.params != ITEM00_HEART_PIECE) &&
(spawnedActor->actor.params != ITEM00_HEART_CONTAINER)) {

View File

@ -1,6 +1,6 @@
#include "global.h"
#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_25 | ACTOR_FLAG_26)
#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)
void (*sPlayerCallInitFunc)(Actor* thisx, PlayState* play);
void (*sPlayerCallDestroyFunc)(Actor* thisx, PlayState* play);

View File

@ -1490,7 +1490,7 @@ void func_80090D20(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void
Matrix_Get(&sp14C);
Matrix_MtxFToYXZRotS(&sp14C, &spB8, 0);
if (hookedActor->flags & ACTOR_FLAG_17) {
if (hookedActor->flags & ACTOR_FLAG_PILLAR_PICKUP) {
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;

View File

@ -1,7 +1,7 @@
#include "z_arms_hook.h"
#include "objects/object_link_boy/object_link_boy.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void ArmsHook_Init(Actor* thisx, PlayState* play);
void ArmsHook_Destroy(Actor* thisx, PlayState* play);
@ -76,7 +76,7 @@ void ArmsHook_Destroy(Actor* thisx, PlayState* play) {
ArmsHook* this = (ArmsHook*)thisx;
if (this->grabbed != NULL) {
this->grabbed->flags &= ~ACTOR_FLAG_13;
this->grabbed->flags &= ~ACTOR_FLAG_HOOKSHOT_ATTACHED;
}
Collider_DestroyQuad(play, &this->collider);
}
@ -112,7 +112,7 @@ s32 ArmsHook_AttachToPlayer(ArmsHook* this, Player* player) {
void ArmsHook_DetachHookFromActor(ArmsHook* this) {
if (this->grabbed != NULL) {
this->grabbed->flags &= ~ACTOR_FLAG_13;
this->grabbed->flags &= ~ACTOR_FLAG_HOOKSHOT_ATTACHED;
this->grabbed = NULL;
}
}
@ -121,7 +121,7 @@ s32 ArmsHook_CheckForCancel(ArmsHook* this) {
Player* player = (Player*)this->actor.parent;
if (Player_HoldsHookshot(player)) {
if ((player->itemAction != player->heldItemAction) || (player->actor.flags & ACTOR_FLAG_8) ||
if ((player->itemAction != player->heldItemAction) || (player->actor.flags & ACTOR_FLAG_PLAYER_TALKED_TO) ||
((player->stateFlags1 & 0x4000080))) {
this->timer = 0;
ArmsHook_DetachHookFromActor(this);
@ -133,7 +133,7 @@ s32 ArmsHook_CheckForCancel(ArmsHook* this) {
}
void ArmsHook_AttachHookToActor(ArmsHook* this, Actor* actor) {
actor->flags |= ACTOR_FLAG_13;
actor->flags |= ACTOR_FLAG_HOOKSHOT_ATTACHED;
this->grabbed = actor;
Math_Vec3f_Diff(&actor->world.pos, &this->actor.world.pos, &this->grabbedDistDiff);
}
@ -172,10 +172,10 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) {
if ((this->timer != 0) && (this->collider.base.atFlags & AT_HIT) &&
(this->collider.info.atHitInfo->elemType != ELEMTYPE_UNK4)) {
touchedActor = this->collider.base.at;
if ((touchedActor->update != NULL) && (touchedActor->flags & (ACTOR_FLAG_9 | ACTOR_FLAG_10))) {
if ((touchedActor->update != NULL) && (touchedActor->flags & (ACTOR_FLAG_HOOKSHOT_DRAGS | ACTOR_FLAG_DRAGGED_BY_HOOKSHOT))) {
if (this->collider.info.atHitInfo->bumperFlags & BUMP_HOOKABLE) {
ArmsHook_AttachHookToActor(this, touchedActor);
if (CHECK_FLAG_ALL(touchedActor->flags, ACTOR_FLAG_10)) {
if (CHECK_FLAG_ALL(touchedActor->flags, ACTOR_FLAG_DRAGGED_BY_HOOKSHOT)) {
func_80865044(this);
}
}
@ -186,7 +186,7 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) {
} else if (DECR(this->timer) == 0) {
grabbed = this->grabbed;
if (grabbed != NULL) {
if ((grabbed->update == NULL) || !CHECK_FLAG_ALL(grabbed->flags, ACTOR_FLAG_13)) {
if ((grabbed->update == NULL) || !CHECK_FLAG_ALL(grabbed->flags, ACTOR_FLAG_HOOKSHOT_ATTACHED)) {
grabbed = NULL;
this->grabbed = NULL;
} else if (this->actor.child != NULL) {

View File

@ -7,7 +7,7 @@
#include "z_arrow_fire.h"
#include "overlays/actors/ovl_En_Arrow/z_en_arrow.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_25)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_NO_FREEZE_OCARINA)
void ArrowFire_Init(Actor* thisx, PlayState* play);
void ArrowFire_Destroy(Actor* thisx, PlayState* play);

View File

@ -8,7 +8,7 @@
#include "overlays/actors/ovl_En_Arrow/z_en_arrow.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_25)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_NO_FREEZE_OCARINA)
void ArrowIce_Init(Actor* thisx, PlayState* play);
void ArrowIce_Destroy(Actor* thisx, PlayState* play);

View File

@ -8,7 +8,7 @@
#include "overlays/actors/ovl_En_Arrow/z_en_arrow.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_25)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_NO_FREEZE_OCARINA)
void ArrowLight_Init(Actor* thisx, PlayState* play);
void ArrowLight_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_bdan_objects.h"
#include "objects/object_bdan_objects/object_bdan_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgBdanObjects_Init(Actor* thisx, PlayState* play);
void BgBdanObjects_Destroy(Actor* thisx, PlayState* play);
@ -115,7 +115,7 @@ void BgBdanObjects_Init(Actor* thisx, PlayState* play) {
this->switchFlag = (thisx->params >> 8) & 0x3F;
thisx->params &= 0xFF;
if (thisx->params == 2) {
thisx->flags |= ACTOR_FLAG_4 | ACTOR_FLAG_5;
thisx->flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED;
play->colCtx.colHeader->waterBoxes[7].ySurface = thisx->world.pos.y;
this->actionFunc = func_8086C9A8;
return;

View File

@ -7,7 +7,7 @@
#include "z_bg_bdan_switch.h"
#include "objects/object_bdan_objects/object_bdan_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgBdanSwitch_Init(Actor* thisx, PlayState* play);
void BgBdanSwitch_Destroy(Actor* thisx, PlayState* play);
@ -161,7 +161,7 @@ void BgBdanSwitch_Init(Actor* thisx, PlayState* play) {
case YELLOW_TALL_1:
case YELLOW_TALL_2:
BgBdanSwitch_InitCollision(this, play);
this->dyna.actor.flags |= ACTOR_FLAG_0;
this->dyna.actor.flags |= ACTOR_FLAG_TARGETABLE;
this->dyna.actor.targetMode = 4;
break;
}

View File

@ -9,7 +9,7 @@
#include "objects/object_bowl/object_bowl.h"
#include "vt.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgBomGuard_Init(Actor* thisx, PlayState* play);
void BgBomGuard_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_bombwall.h"
#include "objects/gameplay_field_keep/gameplay_field_keep.h"
#define FLAGS ACTOR_FLAG_22
#define FLAGS ACTOR_FLAG_IGNORE_POINTLIGHTS
void BgBombwall_Init(Actor* thisx, PlayState* play);
void BgBombwall_Destroy(Actor* thisx, PlayState* play);

View File

@ -10,7 +10,7 @@
#include "objects/object_bowl/object_bowl.h"
#include "vt.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgBowlWall_Init(Actor* thisx, PlayState* play);
void BgBowlWall_Destroy(Actor* thisx, PlayState* play);

View File

@ -9,7 +9,7 @@
#include "objects/object_bwall/object_bwall.h"
#include "objects/object_kingdodongo/object_kingdodongo.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
typedef struct {
/* 0x00 */ CollisionHeader* colHeader;
@ -242,7 +242,7 @@ void BgBreakwall_WaitForObject(BgBreakwall* this, PlayState* play) {
this->dyna.actor.objBankIndex = this->bankIndex;
Actor_SetObjectDependency(play, &this->dyna.actor);
this->dyna.actor.flags &= ~ACTOR_FLAG_4;
this->dyna.actor.flags &= ~ACTOR_FLAG_UPDATE_WHILE_CULLED;
this->dyna.actor.draw = BgBreakwall_Draw;
CollisionHeader_GetVirtual(sBombableWallInfo[wallType].colHeader, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);

View File

@ -7,7 +7,7 @@
#include "z_bg_ddan_jd.h"
#include "objects/object_ddan_objects/object_ddan_objects.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgDdanJd_Init(Actor* thisx, PlayState* play);
void BgDdanJd_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_ddan_kd.h"
#include "objects/object_ddan_objects/object_ddan_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgDdanKd_Init(Actor* thisx, PlayState* play);
void BgDdanKd_Destroy(Actor* thisx, PlayState* play);

View File

@ -12,7 +12,7 @@
#include "scenes/indoors/daiyousei_izumi/daiyousei_izumi_scene.h"
#include "soh/frame_interpolation.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_25)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED | ACTOR_FLAG_NO_FREEZE_OCARINA)
typedef enum {
/* 0 */ FAIRY_UPGRADE_MAGIC,

View File

@ -10,7 +10,7 @@
#include "soh/frame_interpolation.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
typedef enum {
/* 0x00 */ FLASH_NONE,

View File

@ -7,7 +7,7 @@
#include "z_bg_gnd_darkmeiro.h"
#include "objects/object_demo_kekkai/object_demo_kekkai.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgGndDarkmeiro_Init(Actor* thisx, PlayState* play);
void BgGndDarkmeiro_Destroy(Actor* thisx, PlayState* play);
@ -56,7 +56,7 @@ void BgGndDarkmeiro_Init(Actor* thisx, PlayState* play2) {
switch (this->dyna.actor.params & 0xFF) {
case DARKMEIRO_INVISIBLE_PATH:
this->dyna.actor.draw = BgGndDarkmeiro_DrawInvisiblePath;
this->dyna.actor.flags |= ACTOR_FLAG_7;
this->dyna.actor.flags |= ACTOR_FLAG_LENS;
break;
case DARKMEIRO_CLEAR_BLOCK:
CollisionHeader_GetVirtual(&gClearBlockCol, &colHeader);

View File

@ -7,7 +7,7 @@
#include "z_bg_gnd_firemeiro.h"
#include "objects/object_demo_kekkai/object_demo_kekkai.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgGndFiremeiro_Init(Actor* thisx, PlayState* play);
void BgGndFiremeiro_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_gnd_iceblock.h"
#include "objects/object_demo_kekkai/object_demo_kekkai.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
typedef enum {
/* 0 */ GNDICE_IDLE,

View File

@ -7,7 +7,7 @@
#include "z_bg_gnd_nisekabe.h"
#include "objects/object_demo_kekkai/object_demo_kekkai.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgGndNisekabe_Init(Actor* thisx, PlayState* play);
void BgGndNisekabe_Destroy(Actor* thisx, PlayState* play);
@ -41,9 +41,9 @@ void BgGndNisekabe_Update(Actor* thisx, PlayState* play) {
BgGndNisekabe* this = (BgGndNisekabe*)thisx;
if (play->actorCtx.lensActive) {
this->actor.flags |= ACTOR_FLAG_7;
this->actor.flags |= ACTOR_FLAG_LENS;
} else {
this->actor.flags &= ~ACTOR_FLAG_7;
this->actor.flags &= ~ACTOR_FLAG_LENS;
}
}
@ -56,7 +56,7 @@ void BgGndNisekabe_Draw(Actor* thisx, PlayState* play) {
BgGndNisekabe* this = (BgGndNisekabe*)thisx;
u32 index = this->actor.params & 0xFF;
if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_7)) {
if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_LENS)) {
Gfx_DrawDListXlu(play, dLists[index]);
} else {
Gfx_DrawDListOpa(play, dLists[index]);

View File

@ -99,7 +99,7 @@ void BgHakaGate_Init(Actor* thisx, PlayState* play) {
this->actionFunc = BgHakaGate_FalseSkull;
}
this->vScrollTimer = Rand_ZeroOne() * 20.0f;
thisx->flags |= ACTOR_FLAG_4;
thisx->flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
if (Flags_GetSwitch(play, this->switchFlag)) {
this->vFlameScale = 350;
}
@ -126,7 +126,7 @@ void BgHakaGate_Init(Actor* thisx, PlayState* play) {
this->actionFunc = BgHakaGate_DoNothing;
thisx->world.pos.y += 80.0f;
} else {
thisx->flags |= ACTOR_FLAG_4;
thisx->flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
Actor_SetFocus(thisx, 30.0f);
this->actionFunc = BgHakaGate_GateWait;
}
@ -276,7 +276,7 @@ void BgHakaGate_GateWait(BgHakaGate* this, PlayState* play) {
void BgHakaGate_GateOpen(BgHakaGate* this, PlayState* play) {
if (Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y + 80.0f, 1.0f)) {
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_METALDOOR_STOP);
this->dyna.actor.flags &= ~ACTOR_FLAG_4;
this->dyna.actor.flags &= ~ACTOR_FLAG_UPDATE_WHILE_CULLED;
this->actionFunc = BgHakaGate_DoNothing;
} else {
func_8002F974(&this->dyna.actor, NA_SE_EV_METALDOOR_SLIDE - SFX_FLAG);
@ -294,9 +294,9 @@ void BgHakaGate_FalseSkull(BgHakaGate* this, PlayState* play) {
Math_StepToS(&this->vFlameScale, 350, 20);
}
if (play->actorCtx.lensActive) {
this->dyna.actor.flags |= ACTOR_FLAG_7;
this->dyna.actor.flags |= ACTOR_FLAG_LENS;
} else {
this->dyna.actor.flags &= ~ACTOR_FLAG_7;
this->dyna.actor.flags &= ~ACTOR_FLAG_LENS;
}
}
@ -345,7 +345,7 @@ void BgHakaGate_Draw(Actor* thisx, PlayState* play) {
BgHakaGate* this = (BgHakaGate*)thisx;
MtxF currentMtxF;
if (CHECK_FLAG_ALL(thisx->flags, ACTOR_FLAG_7)) {
if (CHECK_FLAG_ALL(thisx->flags, ACTOR_FLAG_LENS)) {
Gfx_DrawDListXlu(play, object_haka_objects_DL_00F1B0);
} else {
Gfx_SetupDL_25Opa(play->state.gfxCtx);

View File

@ -7,7 +7,7 @@
#include "z_bg_haka_huta.h"
#include "objects/object_hakach_objects/object_hakach_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgHakaHuta_Init(Actor* thisx, PlayState* play);
void BgHakaHuta_Destroy(Actor* thisx, PlayState* play);

View File

@ -8,7 +8,7 @@
#include "objects/object_hakach_objects/object_hakach_objects.h"
#include "objects/object_haka_objects/object_haka_objects.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_7)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED | ACTOR_FLAG_LENS)
void BgHakaMegane_Init(Actor* thisx, PlayState* play);
void BgHakaMegane_Destroy(Actor* thisx, PlayState* play);
@ -110,10 +110,10 @@ void func_8087DBF0(BgHakaMegane* this, PlayState* play) {
Actor* thisx = &this->dyna.actor;
if (play->actorCtx.lensActive) {
thisx->flags |= ACTOR_FLAG_7;
thisx->flags |= ACTOR_FLAG_LENS;
func_8003EBF8(play, &play->colCtx.dyna, this->dyna.bgId);
} else {
thisx->flags &= ~ACTOR_FLAG_7;
thisx->flags &= ~ACTOR_FLAG_LENS;
func_8003EC50(play, &play->colCtx.dyna, this->dyna.bgId);
}
}
@ -130,7 +130,7 @@ void BgHakaMegane_Update(Actor* thisx, PlayState* play) {
void BgHakaMegane_Draw(Actor* thisx, PlayState* play) {
BgHakaMegane* this = (BgHakaMegane*)thisx;
if (CHECK_FLAG_ALL(thisx->flags, ACTOR_FLAG_7)) {
if (CHECK_FLAG_ALL(thisx->flags, ACTOR_FLAG_LENS)) {
Gfx_DrawDListXlu(play, sDLists[thisx->params]);
} else {
Gfx_DrawDListOpa(play, sDLists[thisx->params]);

View File

@ -65,7 +65,7 @@ void BgHakaMeganeBG_Init(Actor* thisx, PlayState* play) {
if (thisx->params == 2) {
DynaPolyActor_Init(&this->dyna, DPM_UNK3);
thisx->flags |= ACTOR_FLAG_4;
thisx->flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
CollisionHeader_GetVirtual(&object_haka_objects_Col_005334, &colHeader);
this->actionFunc = func_8087E258;
} else {
@ -73,7 +73,7 @@ void BgHakaMeganeBG_Init(Actor* thisx, PlayState* play) {
if (thisx->params == 0) {
CollisionHeader_GetVirtual(&object_haka_objects_Col_009168, &colHeader);
thisx->flags |= ACTOR_FLAG_7;
thisx->flags |= ACTOR_FLAG_LENS;
this->unk_16A = 20;
this->actionFunc = func_8087DFF8;
} else if (thisx->params == 3) {
@ -84,7 +84,7 @@ void BgHakaMeganeBG_Init(Actor* thisx, PlayState* play) {
this->actionFunc = func_8087E34C;
thisx->world.pos.y = thisx->home.pos.y;
} else {
thisx->flags |= ACTOR_FLAG_4;
thisx->flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
this->actionFunc = func_8087E288;
}
} else {

View File

@ -8,7 +8,7 @@
#include "objects/object_haka_objects/object_haka_objects.h"
#include "objects/object_ice_objects/object_ice_objects.h"
#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_4)
#define FLAGS (ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_UPDATE_WHILE_CULLED)
typedef enum {
/* 0 */ SCYTHE_TRAP_SHADOW_TEMPLE,
@ -143,7 +143,7 @@ void BgHakaSgami_Init(Actor* thisx, PlayState* play) {
thisx->params = (thisx->params >> 8) & 0xFF;
if (this->unk_151 != 0) {
thisx->flags |= ACTOR_FLAG_7;
thisx->flags |= ACTOR_FLAG_LENS;
}
Collider_InitTris(play, colliderScythe);
@ -171,7 +171,7 @@ void BgHakaSgami_Init(Actor* thisx, PlayState* play) {
if (thisx->params == SCYTHE_TRAP_SHADOW_TEMPLE) {
this->requiredObjBankIndex = Object_GetIndex(&play->objectCtx, OBJECT_HAKA_OBJECTS);
thisx->flags &= ~ACTOR_FLAG_0;
thisx->flags &= ~ACTOR_FLAG_TARGETABLE;
} else {
this->requiredObjBankIndex = Object_GetIndex(&play->objectCtx, OBJECT_ICE_OBJECTS);
this->colliderScytheCenter.dim.radius = 30;
@ -201,7 +201,7 @@ void BgHakaSgami_SetupSpin(BgHakaSgami* this, PlayState* play) {
this->actor.objBankIndex = this->requiredObjBankIndex;
this->actor.draw = BgHakaSgami_Draw;
this->timer = SCYTHE_SPIN_TIME;
this->actor.flags &= ~ACTOR_FLAG_4;
this->actor.flags &= ~ACTOR_FLAG_UPDATE_WHILE_CULLED;
this->actionFunc = BgHakaSgami_Spin;
}
}

View File

@ -7,7 +7,7 @@
#include "z_bg_haka_ship.h"
#include "objects/object_haka_objects/object_haka_objects.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgHakaShip_Init(Actor* thisx, PlayState* play);
void BgHakaShip_Destroy(Actor* thisx, PlayState* play);

View File

@ -133,7 +133,7 @@ void BgHakaTrap_Init(Actor* thisx, PlayState* play) {
this->actionFunc = func_80880484;
} else {
DynaPolyActor_Init(&this->dyna, DPM_PLAYER);
thisx->flags |= ACTOR_FLAG_4;
thisx->flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
if (thisx->params == HAKA_TRAP_SPIKED_BOX) {
CollisionHeader_GetVirtual(&object_haka_objects_Col_009CD0, &colHeader);

View File

@ -8,7 +8,7 @@
#include "objects/gameplay_keep/gameplay_keep.h"
#include "objects/object_haka_objects/object_haka_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgHakaTubo_Init(Actor* thisx, PlayState* play);
void BgHakaTubo_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_haka_water.h"
#include "objects/object_hakach_objects/object_hakach_objects.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgHakaWater_Init(Actor* thisx, PlayState* play);
void BgHakaWater_Destroy(Actor* thisx, PlayState* play);

View File

@ -8,7 +8,7 @@
#include "objects/object_hakach_objects/object_hakach_objects.h"
#include "objects/object_haka_objects/object_haka_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
typedef enum {
/* 0x0 */ STA_GIANT_BIRD_STATUE,

View File

@ -76,7 +76,7 @@ void BgHeavyBlock_InitPiece(BgHeavyBlock* this, f32 scale) {
void BgHeavyBlock_SetupDynapoly(BgHeavyBlock* this, PlayState* play) {
s32 pad[2];
CollisionHeader* colHeader = NULL;
this->dyna.actor.flags |= ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_17;
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED | ACTOR_FLAG_PILLAR_PICKUP;
DynaPolyActor_Init(&this->dyna, DPM_UNK);
CollisionHeader_GetVirtual(&gHeavyBlockCol, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);
@ -100,7 +100,7 @@ void BgHeavyBlock_Init(Actor* thisx, PlayState* play) {
this->actionFunc = BgHeavyBlock_MovePiece;
BgHeavyBlock_InitPiece(this, 1.0f);
this->timer = 120;
thisx->flags |= ACTOR_FLAG_4;
thisx->flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
this->unk_164.y = -50.0f;
break;
case HEAVYBLOCK_SMALL_PIECE:
@ -108,7 +108,7 @@ void BgHeavyBlock_Init(Actor* thisx, PlayState* play) {
this->actionFunc = BgHeavyBlock_MovePiece;
BgHeavyBlock_InitPiece(this, 2.0f);
this->timer = 120;
thisx->flags |= ACTOR_FLAG_4;
thisx->flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
this->unk_164.y = -20.0f;
break;
case HEAVYBLOCK_BREAKABLE:
@ -478,7 +478,7 @@ void BgHeavyBlock_Land(BgHeavyBlock* this, PlayState* play) {
break;
}
} else {
this->dyna.actor.flags &= ~(ACTOR_FLAG_4 | ACTOR_FLAG_5);
this->dyna.actor.flags &= ~(ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED);
this->actionFunc = BgHeavyBlock_DoNothing;
}
}

View File

@ -7,7 +7,7 @@
#include "z_bg_hidan_curtain.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgHidanCurtain_Init(Actor* thisx, PlayState* play);
void BgHidanCurtain_Destroy(Actor* thisx, PlayState* play);

View File

@ -139,7 +139,7 @@ void BgHidanDalm_Wait(BgHidanDalm* this, PlayState* play) {
this->dyna.actor.world.pos.z += 32.5f * Math_CosS(this->dyna.actor.world.rot.y);
func_8002DF54(play, &this->dyna.actor, 8);
this->dyna.actor.flags |= ACTOR_FLAG_4;
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
this->actionFunc = BgHidanDalm_Shrink;
this->dyna.actor.bgCheckFlags &= ~2;
this->dyna.actor.bgCheckFlags &= ~8;

View File

@ -7,7 +7,7 @@
#include "z_bg_hidan_fslift.h"
#include "objects/object_hidan_objects/object_hidan_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgHidanFslift_Init(Actor* thisx, PlayState* play);
void BgHidanFslift_Destroy(Actor* thisx, PlayState* play);

View File

@ -9,7 +9,7 @@
#include "objects/gameplay_keep/gameplay_keep.h"
#include "objects/object_hidan_objects/object_hidan_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
typedef enum {
/* 0 */ FWBIG_MOVE,
@ -95,7 +95,7 @@ void BgHidanFwbig_Init(Actor* thisx, PlayState* play2) {
BgHidanFwbig_UpdatePosition(this);
Actor_SetScale(&this->actor, 0.15f);
this->collider.dim.height = 230;
this->actor.flags |= ACTOR_FLAG_4;
this->actor.flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
this->moveState = FWBIG_MOVE;
this->actionFunc = BgHidanFwbig_WaitForPlayer;
this->actor.world.pos.y = this->actor.home.pos.y - (2400.0f * this->actor.scale.y);

View File

@ -126,7 +126,7 @@ void BgHidanHrock_Init(Actor* thisx, PlayState* play) {
}
} else {
if (thisx->params == 0) {
thisx->flags |= ACTOR_FLAG_4 | ACTOR_FLAG_5;
thisx->flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED;
thisx->uncullZoneForward = 3000.0f;
}
this->actionFunc = func_808896B8;
@ -185,7 +185,7 @@ void func_8088960C(BgHidanHrock* this, PlayState* play) {
this->dyna.actor.velocity.y++;
if (Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y, this->dyna.actor.velocity.y)) {
this->dyna.actor.flags &= ~(ACTOR_FLAG_4 | ACTOR_FLAG_5);
this->dyna.actor.flags &= ~(ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED);
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_BLOCK_BOUND);
if (this->dyna.actor.params == 0) {
@ -204,7 +204,7 @@ void func_808896B8(BgHidanHrock* this, PlayState* play) {
if (this->collider.base.acFlags & 2) {
this->collider.base.acFlags &= ~2;
this->actionFunc = func_808894B0;
this->dyna.actor.flags |= ACTOR_FLAG_4;
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
if (this->dyna.actor.params == 0) {
this->dyna.actor.room = -1;

View File

@ -7,7 +7,7 @@
#include "z_bg_hidan_kousi.h"
#include "objects/object_hidan_objects/object_hidan_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgHidanKousi_Init(Actor* thisx, PlayState* play);
void BgHidanKousi_Destroy(Actor* thisx, PlayState* play);

View File

@ -93,7 +93,7 @@ void BgHidanRock_Init(Actor* thisx, PlayState* play) {
} else {
this->actionFunc = func_8088B268;
}
thisx->flags |= ACTOR_FLAG_4 | ACTOR_FLAG_5;
thisx->flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED;
CollisionHeader_GetVirtual(&gFireTempleStoneBlock1Col, &colHeader);
} else {
CollisionHeader_GetVirtual(&gFireTempleStoneBlock2Col, &colHeader);
@ -116,7 +116,7 @@ void BgHidanRock_Destroy(Actor* thisx, PlayState* play) {
}
void func_8088B24C(BgHidanRock* this) {
this->dyna.actor.flags |= ACTOR_FLAG_4 | ACTOR_FLAG_5;
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED;
this->actionFunc = func_8088B990;
}
@ -250,7 +250,7 @@ void func_8088B79C(BgHidanRock* this, PlayState* play) {
} else {
this->dyna.actor.world.pos.y = this->dyna.actor.home.pos.y - 15.0f;
this->actionFunc = func_8088B90C;
this->dyna.actor.flags &= ~(ACTOR_FLAG_4 | ACTOR_FLAG_5);
this->dyna.actor.flags &= ~(ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED);
}
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_BLOCK_BOUND);

View File

@ -7,7 +7,7 @@
#include "z_bg_hidan_syoku.h"
#include "objects/object_hidan_objects/object_hidan_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgHidanSyoku_Init(Actor* thisx, PlayState* play);
void BgHidanSyoku_Destroy(Actor* thisx, PlayState* play);

View File

@ -142,7 +142,7 @@ void BgIceObjects_Idle(BgIceObjects* this, PlayState* play) {
if ((this->dyna.unk_150 > 0.0f) && !Player_InCsMode(play)) {
BgIceObjects_SetNextTarget(this, play);
if (Actor_WorldDistXZToPoint(thisx, &this->targetPos) > 1.0f) {
thisx->flags |= ACTOR_FLAG_4;
thisx->flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
func_8002DF54(play, thisx, 8);
thisx->params = 1;
this->actionFunc = BgIceObjects_Slide;
@ -170,7 +170,7 @@ void BgIceObjects_Slide(BgIceObjects* this, PlayState* play) {
this->targetPos.x = thisx->world.pos.x;
this->targetPos.z = thisx->world.pos.z;
if (thisx->velocity.y <= 0.0f) {
thisx->flags &= ~ACTOR_FLAG_4;
thisx->flags &= ~ACTOR_FLAG_UPDATE_WHILE_CULLED;
}
thisx->params = 0;
func_8002DF54(play, thisx, 7);
@ -207,7 +207,7 @@ void BgIceObjects_Reset(BgIceObjects* this, PlayState* play) {
this->dyna.unk_150 = 0.0f;
}
if (Math_StepToF(&thisx->world.pos.y, thisx->home.pos.y, 1.0f)) {
thisx->flags &= ~ACTOR_FLAG_4;
thisx->flags &= ~ACTOR_FLAG_UPDATE_WHILE_CULLED;
Math_Vec3f_Copy(&this->targetPos, &thisx->home.pos);
this->actionFunc = BgIceObjects_Idle;
thisx->speedXZ = 0.0f;

View File

@ -7,7 +7,7 @@
#include "z_bg_ice_shutter.h"
#include "objects/object_ice_objects/object_ice_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgIceShutter_Init(Actor* thisx, PlayState* play);
void BgIceShutter_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_jya_1flift.h"
#include "objects/object_jya_obj/object_jya_obj.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgJya1flift_Init(Actor* thisx, PlayState* play);
void BgJya1flift_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_jya_bigmirror.h"
#include "objects/object_jya_obj/object_jya_obj.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgJyaBigmirror_Init(Actor* thisx, PlayState* play);
void BgJyaBigmirror_Destroy(Actor* thisx, PlayState* play);

View File

@ -1,7 +1,7 @@
#include "z_bg_jya_bombchuiwa.h"
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "objects/object_jya_obj/object_jya_obj.h"
#define FLAGS ACTOR_FLAG_0
#define FLAGS ACTOR_FLAG_TARGETABLE
void BgJyaBombchuiwa_Init(Actor* thisx, PlayState* play);
void BgJyaBombchuiwa_Destroy(Actor* thisx, PlayState* play);
@ -163,7 +163,7 @@ void BgJyaBombchuiwa_CleanUpAfterExplosion(BgJyaBombchuiwa* this, PlayState* pla
BgJyaBombchuiwa_SetDrawFlags(this, 4);
this->lightRayIntensity = 0.3f;
this->timer = 0;
this->actor.flags &= ~ACTOR_FLAG_0;
this->actor.flags &= ~ACTOR_FLAG_TARGETABLE;
}
void func_808949B8(BgJyaBombchuiwa* this, PlayState* play) {

View File

@ -7,7 +7,7 @@
#include "objects/object_jya_obj/object_jya_obj.h"
#include "vt.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgJyaCobra_Init(Actor* thisx, PlayState* play);
void BgJyaCobra_Destroy(Actor* thisx, PlayState* play);
@ -452,7 +452,7 @@ void func_80896950(BgJyaCobra* this, PlayState* play) {
if (fabsf(this->dyna.unk_150) > 0.001f) {
this->dyna.unk_150 = 0.0f;
player->stateFlags2 &= ~PLAYER_STATE2_4;
player->stateFlags2 &= ~PLAYER_STATE2_MOVING_DYNAPOLY;
}
}
@ -494,7 +494,7 @@ void func_80896ABC(BgJyaCobra* this, PlayState* play) {
if (Math_ScaledStepToS(&this->unk_170, this->unk_16A * 0x2000, this->unk_16E)) {
this->unk_16C = (this->unk_16C + this->unk_16A) & 7;
player->stateFlags2 &= ~PLAYER_STATE2_4;
player->stateFlags2 &= ~PLAYER_STATE2_MOVING_DYNAPOLY;
this->dyna.unk_150 = 0.0f;
func_80896918(this, play);
} else {
@ -502,7 +502,7 @@ void func_80896ABC(BgJyaCobra* this, PlayState* play) {
(this->unk_16C * 0x2000) + this->dyna.actor.home.rot.y + this->unk_170;
}
if (player->stateFlags2 & PLAYER_STATE2_4) {
if (player->stateFlags2 & PLAYER_STATE2_MOVING_DYNAPOLY) {
if (this->unk_172) {
func_80895BEC(this, play);
}

View File

@ -8,7 +8,7 @@
#include "z_bg_jya_goroiwa.h"
#include "objects/object_goroiwa/object_goroiwa.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgJyaGoroiwa_Init(Actor* thisx, PlayState* play);
void BgJyaGoroiwa_Destroy(Actor* thisx, PlayState* play);

View File

@ -8,7 +8,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "objects/object_jya_iron/object_jya_iron.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgJyaHaheniron_Init(Actor* thisx, PlayState* play);
void BgJyaHaheniron_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_jya_lift.h"
#include "objects/object_jya_obj/object_jya_obj.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgJyaLift_Init(Actor* thisx, PlayState* play);
void BgJyaLift_Destroy(Actor* thisx, PlayState* play);

View File

@ -8,7 +8,7 @@
#include "objects/object_jya_obj/object_jya_obj.h"
#include "vt.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgJyaZurerukabe_Init(Actor* thisx, PlayState* play);
void BgJyaZurerukabe_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_menkuri_eye.h"
#include "objects/object_menkuri_objects/object_menkuri_objects.h"
#define FLAGS ACTOR_FLAG_5
#define FLAGS ACTOR_FLAG_DRAW_WHILE_CULLED
void BgMenkuriEye_Init(Actor* thisx, PlayState* play);
void BgMenkuriEye_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_menkuri_kaiten.h"
#include "objects/object_menkuri_objects/object_menkuri_objects.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgMenkuriKaiten_Init(Actor* thisx, PlayState* play);
void BgMenkuriKaiten_Destroy(Actor* thisx, PlayState* play);

View File

@ -42,9 +42,9 @@ void BgMenkuriNisekabe_Update(Actor* thisx, PlayState* play) {
BgMenkuriNisekabe* this = (BgMenkuriNisekabe*)thisx;
if (play->actorCtx.lensActive) {
this->actor.flags |= ACTOR_FLAG_7;
this->actor.flags |= ACTOR_FLAG_LENS;
} else {
this->actor.flags &= ~ACTOR_FLAG_7;
this->actor.flags &= ~ACTOR_FLAG_LENS;
}
}
@ -52,7 +52,7 @@ void BgMenkuriNisekabe_Draw(Actor* thisx, PlayState* play) {
BgMenkuriNisekabe* this = (BgMenkuriNisekabe*)thisx;
u32 index = this->actor.params & 0xFF;
if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_7)) {
if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_LENS)) {
Gfx_DrawDListXlu(play, sDLists[index]);
} else {
Gfx_DrawDListOpa(play, sDLists[index]);

View File

@ -8,7 +8,7 @@
#include "overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.h"
#include "objects/object_mizu_objects/object_mizu_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgMizuBwall_Init(Actor* thisx, PlayState* play);
void BgMizuBwall_Destroy(Actor* thisx, PlayState* play);

View File

@ -8,7 +8,7 @@
#include "overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.h"
#include "objects/object_mizu_objects/object_mizu_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
#define MOVEBG_TYPE(params) (((u16)(params) >> 0xC) & 0xF)
#define MOVEBG_FLAGS(params) ((u16)(params)&0x3F)
@ -311,7 +311,7 @@ void func_8089E318(BgMizuMovebg* this, PlayState* play) {
this->dyna.actor.child->world.pos.x = this->dyna.actor.world.pos.x + sp28.x;
this->dyna.actor.child->world.pos.y = this->dyna.actor.world.pos.y + sp28.y;
this->dyna.actor.child->world.pos.z = this->dyna.actor.world.pos.z + sp28.z;
this->dyna.actor.child->flags &= ~ACTOR_FLAG_0;
this->dyna.actor.child->flags &= ~ACTOR_FLAG_TARGETABLE;
}
break;
}

View File

@ -1,7 +1,7 @@
#include "z_bg_mizu_shutter.h"
#include "objects/object_mizu_objects/object_mizu_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
#define SIZE_PARAM (((u16)this->dyna.actor.params >> 0xC) & 0xF)
#define TIMER_PARAM (((u16)this->dyna.actor.params >> 6) & 0x3F)

View File

@ -7,7 +7,7 @@
#include "z_bg_mizu_water.h"
#include "objects/object_mizu_objects/object_mizu_objects.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgMizuWater_Init(Actor* thisx, PlayState* play);
void BgMizuWater_Destroy(Actor* thisx, PlayState* play);

View File

@ -14,7 +14,7 @@
#include "objects/object_mjin_flash/object_mjin_flash.h"
#include "objects/object_mjin_oka/object_mjin_oka.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgMjin_Init(Actor* thisx, PlayState* play);
void BgMjin_Destroy(Actor* thisx, PlayState* play);
@ -82,7 +82,7 @@ void func_808A0850(BgMjin* this, PlayState* play) {
if (Object_IsLoaded(&play->objectCtx, this->objBankIndex)) {
colHeader = NULL;
this->dyna.actor.flags &= ~ACTOR_FLAG_4;
this->dyna.actor.flags &= ~ACTOR_FLAG_UPDATE_WHILE_CULLED;
this->dyna.actor.objBankIndex = this->objBankIndex;
Actor_SetObjectDependency(play, &this->dyna.actor);
DynaPolyActor_Init(&this->dyna, 0);

View File

@ -7,7 +7,7 @@
#include "z_bg_mori_bigst.h"
#include "objects/object_mori_objects/object_mori_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgMoriBigst_Init(Actor* thisx, PlayState* play);
void BgMoriBigst_Destroy(Actor* thisx, PlayState* play);

View File

@ -1,7 +1,7 @@
#include "z_bg_mori_elevator.h"
#include "objects/object_mori_objects/object_mori_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgMoriElevator_Init(Actor* thisx, PlayState* play);
void BgMoriElevator_Destroy(Actor* thisx, PlayState* play);

View File

@ -135,7 +135,7 @@ s32 BgMoriHashigo_SpawnLadder(BgMoriHashigo* this, PlayState* play) {
s32 BgMoriHashigo_InitClasp(BgMoriHashigo* this, PlayState* play) {
Actor_ProcessInitChain(&this->dyna.actor, sInitChainClasp);
this->dyna.actor.flags |= ACTOR_FLAG_0;
this->dyna.actor.flags |= ACTOR_FLAG_TARGETABLE;
Actor_SetFocus(&this->dyna.actor, 55.0f);
BgMoriHashigo_InitCollider(this, play);
if ((this->dyna.actor.params == HASHIGO_CLASP) && !BgMoriHashigo_SpawnLadder(this, play)) {

View File

@ -7,7 +7,7 @@
#include "z_bg_mori_hashira4.h"
#include "objects/object_mori_objects/object_mori_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgMoriHashira4_Init(Actor* thisx, PlayState* play);
void BgMoriHashira4_Destroy(Actor* thisx, PlayState* play);

View File

@ -13,7 +13,7 @@
#include "objects/object_mori_hineri2a/object_mori_hineri2a.h"
#include "objects/object_mori_tex/object_mori_tex.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgMoriHineri_Init(Actor* thisx, PlayState* play);
void BgMoriHineri_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_mori_idomizu.h"
#include "objects/object_mori_objects/object_mori_objects.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgMoriIdomizu_Init(Actor* thisx, PlayState* play);
void BgMoriIdomizu_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_mori_rakkatenjo.h"
#include "objects/object_mori_objects/object_mori_objects.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgMoriRakkatenjo_Init(Actor* thisx, PlayState* play);
void BgMoriRakkatenjo_Destroy(Actor* thisx, PlayState* play);

View File

@ -156,7 +156,7 @@ void BgPoEvent_InitBlocks(BgPoEvent* this, PlayState* play) {
CollisionHeader* colHeader = NULL;
s32 bgId;
this->dyna.actor.flags |= ACTOR_FLAG_4 | ACTOR_FLAG_5;
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED;
CollisionHeader_GetVirtual(&gPoSistersAmyBlockCol, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);
if ((this->type == 0) && (this->index != 3)) {
@ -309,7 +309,7 @@ void BgPoEvent_BlockFall(BgPoEvent* this, PlayState* play) {
this->dyna.actor.velocity.y++;
if (Math_StepToF(&this->dyna.actor.world.pos.y, 433.0f, this->dyna.actor.velocity.y)) {
this->dyna.actor.flags &= ~ACTOR_FLAG_5;
this->dyna.actor.flags &= ~ACTOR_FLAG_DRAW_WHILE_CULLED;
this->dyna.actor.velocity.y = 0.0f;
sBgPoEventBlocksAtRest++;
if (this->type != 1) {

View File

@ -7,7 +7,7 @@
#include "z_bg_relay_objects.h"
#include "objects/object_relay_objects/object_relay_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
typedef enum {
/* 0 */ WINDMILL_ROTATING_GEAR,
@ -64,7 +64,7 @@ void BgRelayObjects_Init(Actor* thisx, PlayState* play) {
}
func_800F5718();
thisx->room = -1;
thisx->flags |= ACTOR_FLAG_5;
thisx->flags |= ACTOR_FLAG_DRAW_WHILE_CULLED;
if (D_808A9508 & 2) {
thisx->params = 0xFF;
Actor_Kill(thisx);
@ -156,7 +156,7 @@ void func_808A9234(BgRelayObjects* this, PlayState* play) {
return;
}
Flags_UnsetSwitch(play, this->switchFlag);
this->dyna.actor.flags &= ~ACTOR_FLAG_4;
this->dyna.actor.flags &= ~ACTOR_FLAG_UPDATE_WHILE_CULLED;
if (play->roomCtx.curRoom.num == 4) {
gSaveContext.timer1State = 0xF;
}

View File

@ -9,7 +9,7 @@
#include "objects/gameplay_keep/gameplay_keep.h"
#include "soh/frame_interpolation.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
typedef enum {
/* -1 */ DT_DRAWBRIDGE = -1,

View File

@ -7,7 +7,7 @@
#include "z_bg_spot01_fusya.h"
#include "objects/object_spot01_objects/object_spot01_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgSpot01Fusya_Init(Actor* thisx, PlayState* play);
void BgSpot01Fusya_Destroy(Actor* thisx, PlayState* play);

View File

@ -8,7 +8,7 @@
#include "objects/object_spot01_objects/object_spot01_objects.h"
#include "vt.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgSpot01Idohashira_Init(Actor* thisx, PlayState* play);
void BgSpot01Idohashira_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_spot01_idomizu.h"
#include "objects/object_spot01_objects/object_spot01_objects.h"
#define FLAGS ACTOR_FLAG_5
#define FLAGS ACTOR_FLAG_DRAW_WHILE_CULLED
void BgSpot01Idomizu_Init(Actor* thisx, PlayState* play);
void BgSpot01Idomizu_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_spot01_idosoko.h"
#include "objects/object_spot01_matoya/object_spot01_matoya.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgSpot01Idosoko_Init(Actor* thisx, PlayState* play);
void BgSpot01Idosoko_Destroy(Actor* thisx, PlayState* play);

View File

@ -8,7 +8,7 @@
#include "objects/object_spot01_matoya/object_spot01_matoya.h"
#include "objects/object_spot01_matoyab/object_spot01_matoyab.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgSpot01Objects2_Init(Actor* thisx, PlayState* play);
void BgSpot01Objects2_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_spot02_objects.h"
#include "objects/object_spot02_objects/object_spot02_objects.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgSpot02Objects_Init(Actor* thisx, PlayState* play);
void BgSpot02Objects_Destroy(Actor* thisx, PlayState* play);
@ -75,7 +75,7 @@ void BgSpot02Objects_Init(Actor* thisx, PlayState* play) {
} else if (thisx->params == 1) {
this->actionFunc = func_808AC8FC;
CollisionHeader_GetVirtual(&object_spot02_objects_Col_0128D8, &colHeader);
thisx->flags |= ACTOR_FLAG_22;
thisx->flags |= ACTOR_FLAG_IGNORE_POINTLIGHTS;
} else {
if (play->sceneNum == SCENE_SPOT02) {
this->actionFunc = func_808AC908;

View File

@ -7,7 +7,7 @@
#include "z_bg_spot03_taki.h"
#include "objects/object_spot03_object/object_spot03_object.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgSpot03Taki_Init(Actor* thisx, PlayState* play);
void BgSpot03Taki_Destroy(Actor* thisx, PlayState* play);

View File

@ -62,7 +62,7 @@ void BgSpot05Soko_Init(Actor* thisx, PlayState* play) {
Actor_Kill(thisx);
} else {
this->actionFunc = func_808AE5B4;
thisx->flags |= ACTOR_FLAG_4;
thisx->flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
}
}
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, thisx, colHeader);

View File

@ -8,7 +8,7 @@
#include "objects/object_spot06_objects/object_spot06_objects.h"
#include "soh/Enhancements/custom-message/CustomMessageTypes.h"
#define FLAGS ACTOR_FLAG_9
#define FLAGS ACTOR_FLAG_HOOKSHOT_DRAGS
typedef enum {
/* 0x0 */ LHO_WATER_TEMPLE_ENTRACE_GATE,
@ -152,7 +152,7 @@ void BgSpot06Objects_Init(Actor* thisx, PlayState* play) {
break;
case LHO_WATER_PLANE:
Actor_ProcessInitChain(thisx, sInitChainWaterPlane);
thisx->flags = ACTOR_FLAG_4 | ACTOR_FLAG_5;
thisx->flags = ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED;
if (LINK_IS_ADULT && !(Flags_GetEventChkInf(EVENTCHKINF_RAISED_LAKE_HYLIA_WATER))) {
if (gSaveContext.sceneSetupIndex < 4) {
@ -320,7 +320,7 @@ void BgSpot06Objects_LockWait(BgSpot06Objects* this, PlayState* play) {
if (this->collider.base.acFlags & 2) {
this->timer = 130;
this->dyna.actor.flags |= ACTOR_FLAG_4;
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
sin = Math_SinS(this->dyna.actor.world.rot.y);
cos = Math_CosS(this->dyna.actor.world.rot.y);
this->dyna.actor.world.pos.x += (3.0f * sin);
@ -363,7 +363,7 @@ void BgSpot06Objects_LockPullOutward(BgSpot06Objects* this, PlayState* play) {
if (this->timer == 0) {
this->dyna.actor.velocity.y = 0.5f;
this->dyna.actor.flags &= ~ACTOR_FLAG_13;
this->dyna.actor.flags &= ~ACTOR_FLAG_HOOKSHOT_ATTACHED;
this->actionFunc = BgSpot06Objects_LockSwimToSurface;
}
@ -393,7 +393,7 @@ void BgSpot06Objects_LockSwimToSurface(BgSpot06Objects* this, PlayState* play) {
this->dyna.actor.world.pos.z - (Math_CosS(this->dyna.actor.shape.rot.y) * 16.0f);
this->dyna.actor.world.pos.y = -1993.0f;
this->timer = 32;
this->dyna.actor.flags &= ~ACTOR_FLAG_4;
this->dyna.actor.flags &= ~ACTOR_FLAG_UPDATE_WHILE_CULLED;
this->collider.elements[0].dim.worldSphere.radius = this->collider.elements[0].dim.modelSphere.radius * 2;
this->actionFunc = BgSpot06Objects_LockFloat;
}

View File

@ -7,7 +7,7 @@
#include "z_bg_spot07_taki.h"
#include "objects/object_spot07_object/object_spot07_object.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgSpot07Taki_Init(Actor* thisx, PlayState* play);
void BgSpot07Taki_Destroy(Actor* thisx, PlayState* play);

View File

@ -9,7 +9,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "objects/gameplay_field_keep/gameplay_field_keep.h"
#define FLAGS ACTOR_FLAG_22
#define FLAGS ACTOR_FLAG_IGNORE_POINTLIGHTS
void BgSpot08Bakudankabe_Init(Actor* thisx, PlayState* play);
void BgSpot08Bakudankabe_Destroy(Actor* thisx, PlayState* play);

View File

@ -9,7 +9,7 @@
#include "objects/object_spot11_obj/object_spot11_obj.h"
#include "objects/gameplay_field_keep/gameplay_field_keep.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgSpot11Bakudankabe_Init(Actor* thisx, PlayState* play);
void BgSpot11Bakudankabe_Destroy(Actor* thisx, PlayState* play);

View File

@ -8,7 +8,7 @@
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
#include "objects/object_spot11_obj/object_spot11_obj.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgSpot11Oasis_Init(Actor* thisx, PlayState* play);
void BgSpot11Oasis_Update(Actor* thisx, PlayState* play);

View File

@ -4,7 +4,7 @@
#include "overlays/actors/ovl_En_Bombf/z_en_bombf.h"
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgSpot16Bombstone_Init(Actor* thisx, PlayState* play);
void BgSpot16Bombstone_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_spot17_funen.h"
#include "objects/object_spot17_obj/object_spot17_obj.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgSpot17Funen_Init(Actor* thisx, PlayState* play);
void BgSpot17Funen_Destroy(Actor* thisx, PlayState* play);

View File

@ -2,7 +2,7 @@
#include "objects/object_spot18_obj/object_spot18_obj.h"
#include "vt.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgSpot18Basket_Init(Actor* thisx, PlayState* play);
void BgSpot18Basket_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_spot18_shutter.h"
#include "objects/object_spot18_obj/object_spot18_obj.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgSpot18Shutter_Init(Actor* thisx, PlayState* play);
void BgSpot18Shutter_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_sst_floor.h"
#include "objects/object_sst/object_sst.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgSstFloor_Init(BgSstFloor* this, PlayState* play);
void BgSstFloor_Destroy(BgSstFloor* this, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_toki_hikari.h"
#include "objects/object_toki_objects/object_toki_objects.h"
#define FLAGS ACTOR_FLAG_5
#define FLAGS ACTOR_FLAG_DRAW_WHILE_CULLED
void BgTokiHikari_Init(Actor* thisx, PlayState* play);
void BgTokiHikari_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_toki_swd.h"
#include "objects/object_toki_objects/object_toki_objects.h"
#define FLAGS ACTOR_FLAG_4
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
void BgTokiSwd_Init(Actor* thisx, PlayState* play);
void BgTokiSwd_Destroy(Actor* thisx, PlayState* play);

View File

@ -8,7 +8,7 @@
#include "objects/object_spot04_objects/object_spot04_objects.h"
#include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgTreemouth_Init(Actor* thisx, PlayState* play);
void BgTreemouth_Destroy(Actor* thisx, PlayState* play);
@ -147,9 +147,9 @@ void func_808BC8B8(BgTreemouth* this, PlayState* play) {
if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0xC)) {
if (Actor_IsFacingAndNearPlayer(&this->dyna.actor, 1658.0f, 0x7530)) {
this->dyna.actor.flags |= ACTOR_FLAG_0;
this->dyna.actor.flags |= ACTOR_FLAG_TARGETABLE;
if (this->dyna.actor.isTargeted) {
this->dyna.actor.flags &= ~ACTOR_FLAG_0;
this->dyna.actor.flags &= ~ACTOR_FLAG_TARGETABLE;
play->csCtx.segment = D_808BD2A0;
gSaveContext.cutsceneTrigger = 1;
BgTreemouth_SetupAction(this, func_808BC9EC);

View File

@ -46,7 +46,7 @@ void BgUmaJump_Init(Actor* thisx, PlayState* play) {
Actor_Kill(&this->dyna.actor);
return;
}
this->dyna.actor.flags |= ACTOR_FLAG_4 | ACTOR_FLAG_5;
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED;
}
}

View File

@ -7,7 +7,7 @@
#include "z_bg_ydan_hasi.h"
#include "objects/object_ydan_objects/object_ydan_objects.h"
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED)
void BgYdanHasi_Init(Actor* thisx, PlayState* play);
void BgYdanHasi_Destroy(Actor* thisx, PlayState* play);

View File

@ -297,7 +297,7 @@ void BgYdanSp_FloorWebIdle(BgYdanSp* this, PlayState* play) {
if (this->dyna.actor.xzDistToPlayer < 80.0f) {
this->unk_16C = 200.0f;
this->dyna.actor.room = -1;
this->dyna.actor.flags |= ACTOR_FLAG_4;
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
this->timer = 40;
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_WEB_BROKEN);
this->actionFunc = BgYdanSp_FloorWebBreaking;

Some files were not shown because too many files have changed in this diff Show More