Document Culling (#1759)

* culling docs

* cleanup

* PR suggestions
This commit is contained in:
engineer124 2024-12-15 19:11:29 +11:00 committed by GitHub
parent 9e2ef99d2e
commit 6156df5fee
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
502 changed files with 1467 additions and 1227 deletions

View File

@ -131,9 +131,9 @@ typedef struct Actor {
/* 0x0BC */ ActorShape shape; // Variables related to the physical shape of the actor
/* 0x0EC */ Vec3f projectedPos; // Position of the actor in projected space
/* 0x0F8 */ f32 projectedW; // w component of the projected actor position
/* 0x0FC */ f32 uncullZoneForward; // Amount to increase the uncull zone forward by (in projected space)
/* 0x100 */ f32 uncullZoneScale; // Amount to increase the uncull zone scale by (in projected space)
/* 0x104 */ f32 uncullZoneDownward; // Amount to increase uncull zone downward by (in projected space)
/* 0x0FC */ f32 cullingVolumeDistance; // Forward distance of the culling volume (in projected space). See `Actor_CullingCheck` and `Actor_CullingVolumeTest` for more information.
/* 0x100 */ f32 cullingVolumeScale; // Scale of the culling volume (in projected space). See `Actor_CullingCheck` and `Actor_CullingVolumeTest` for more information.
/* 0x104 */ f32 cullingVolumeDownward; // Downward height of the culling volume (in projected space). See `Actor_CullingCheck` and `Actor_CullingVolumeTest` for more information.
/* 0x108 */ Vec3f prevPos; // World position from the previous update cycle
/* 0x114 */ u8 isLockedOn; // Set to true if the actor is currently being targeted by the player
/* 0x115 */ u8 targetPriority; // Lower values have higher priority. Resets to 0 when player stops targeting
@ -480,12 +480,25 @@ typedef enum DoorLockType {
// What actually matters is the presence or lack of `ACTOR_FLAG_HOSTILE`.
#define ACTOR_FLAG_FRIENDLY (1 << 3)
//
#define ACTOR_FLAG_10 (1 << 4)
//
#define ACTOR_FLAG_20 (1 << 5)
//
#define ACTOR_FLAG_40 (1 << 6)
// Culling of the actor's update process is disabled.
// In other words, the actor will keep updating even if the actor is outside its own culling volume.
// See `Actor_CullingCheck` for more information about culling.
// See `Actor_CullingVolumeTest` for more information on the test used to determine if an actor should be culled.
#define ACTOR_FLAG_UPDATE_CULLING_DISABLED (1 << 4)
// Culling of the actor's draw process is disabled.
// In other words, the actor will keep drawing even if the actor is outside its own culling volume.
// See `Actor_CullingCheck` for more information about culling.
// See `Actor_CullingVolumeTest` for more information on the test used to determine if an actor should be culled.
// (The original name for this flag is `NO_CULL_DRAW`, known from the Majora's Mask Debug ROM)
#define ACTOR_FLAG_DRAW_CULLING_DISABLED (1 << 5)
// Set if the actor is currently within the bounds of its culling volume.
// In most cases, this flag can be used to determine whether or not an actor is currently culled.
// However this flag still updates even if `ACTOR_FLAG_UPDATE_CULLING_DISABLED` or `ACTOR_FLAG_DRAW_CULLING_DISABLED`
// are set. Meaning, the flag can still have a value of "false" even if it is not actually culled.
// (The original name for this flag is `NO_CULL_FLAG`, known from the Majora's Mask Debug ROM)
#define ACTOR_FLAG_INSIDE_CULLING_VOLUME (1 << 6)
// hidden or revealed by Lens of Truth (depending on room lensMode)
#define ACTOR_FLAG_REACT_TO_LENS (1 << 7)

View File

@ -66,7 +66,7 @@ Actor* Actor_SpawnEntry(ActorContext* actorCtx, ActorEntry* actorEntry, PlayStat
Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play);
void Attention_FindActor(PlayState* play, ActorContext* actorCtx, Actor** attentionActorP, Actor** cameraDriftActorP,
Player* player);
s32 func_800BA2FC(PlayState* play, Actor* actor, Vec3f* projectedPos, f32 projectedW);
s32 Actor_CullingVolumeTest(PlayState* play, Actor* actor, Vec3f* projPos, f32 projW);
void Actor_AddToCategory(ActorContext* actorCtx, Actor* actor, u8 actorCategory);
Actor* Actor_RemoveFromCategory(PlayState* play, ActorContext* actorCtx, Actor* actorToRemove);
@ -1157,9 +1157,9 @@ void Actor_Init(Actor* actor, PlayState* play) {
actor->terminalVelocity = -20.0f;
actor->xyzDistToPlayerSq = FLT_MAX;
actor->uncullZoneForward = 1000.0f;
actor->uncullZoneScale = 350.0f;
actor->uncullZoneDownward = 700.0f;
actor->cullingVolumeDistance = 1000.0f;
actor->cullingVolumeScale = 350.0f;
actor->cullingVolumeDownward = 700.0f;
actor->hintId = TATL_HINT_ID_NONE;
@ -2680,7 +2680,7 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) {
if (play->unk_18844) {
params.unk_18 = ACTOR_FLAG_200000;
} else {
params.unk_18 = ACTOR_FLAG_200000 | ACTOR_FLAG_40 | ACTOR_FLAG_10;
params.unk_18 = ACTOR_FLAG_200000 | ACTOR_FLAG_INSIDE_CULLING_VOLUME | ACTOR_FLAG_UPDATE_CULLING_DISABLED;
}
Actor_SpawnSetupActors(play, actorCtx);
@ -3014,31 +3014,113 @@ void Actor_DrawLensActors(PlayState* play, s32 numLensActors, Actor** lensActors
CLOSE_DISPS(gfxCtx);
}
s32 func_800BA2D8(PlayState* play, Actor* actor) {
return func_800BA2FC(play, actor, &actor->projectedPos, actor->projectedW);
/**
* Checks if an actor should be culled or not, by seeing if it is contained within its own culling volume.
* For more details on the culling test, see `Actor_CullingVolumeTest`.
*
* Returns true if the actor is inside its culling volume. In other words, it should not cull.
*
* "Culling" in this context refers to the removal of something for the sake of improving performance.
* For actors, being culled means that their Update and Draw processes are halted.
* While halted, an Actor's update state is frozen and it will not draw, making it invisible.
*
* Actors that are within the bounds of their culling volume may update and draw, while actors that are
* out of bounds of its culling volume may be excluded from updating and drawing until they are within bounds.
*
* It is possible for actors to opt out of update culling or draw culling.
* This is set per-actor with `ACTOR_FLAG_UPDATE_CULLING_DISABLED` and `ACTOR_FLAG_DRAW_CULLING_DISABLED`.
*
* Note: Even if either `ACTOR_FLAG_UPDATE_CULLING_DISABLED` or `ACTOR_FLAG_DRAW_CULLING_DISABLED` are set, the actor
* will still undergo the culling test and set `ACTOR_FLAG_INSIDE_CULLING_VOLUME` accordingly.
* So, `ACTOR_FLAG_INSIDE_CULLING_VOLUME` cannot be used on it own to determine if an actor is actually culled.
* It simply says whether or not they are physically located within the bounds of the culling volume.
*/
s32 Actor_CullingCheck(PlayState* play, Actor* actor) {
return Actor_CullingVolumeTest(play, actor, &actor->projectedPos, actor->projectedW);
}
s32 func_800BA2FC(PlayState* play, Actor* actor, Vec3f* projectedPos, f32 projectedW) {
if ((-actor->uncullZoneScale < projectedPos->z) &&
(projectedPos->z < (actor->uncullZoneForward + actor->uncullZoneScale))) {
f32 phi_f12;
f32 phi_f2 = CLAMP_MIN(projectedW, 1.0f);
f32 phi_f14;
f32 phi_f16;
/**
* Tests if an actor is currently within the bounds of its own culling volume.
*
* The culling volume is a 3D shape composed of a frustum with a box attached to the end of it. The frustum sits at the
* camera's position and projects forward, encompassing the player's current view; the box extrudes behind the camera,
* allowing actors in the immediate vicinity behind and to the sides of the camera to be detected.
*
* This function returns true if the actor is within bounds, false if not.
* The comparison is done in projected space against the actor's projected position as the viewing frustum
* in world space transforms to a box in projected space, making the calculation easy.
*
* Every actor can set properties for their own culling volume, changing its dimensions to suit the needs of
* it and its environment. These properties are in units of projected space (i.e. compared to the actor's position
* after perspective projection is applied) are therefore not directly comparable to world units.
* These depend on the current view parameters (aspect, scale, znear, zfar).
* The default parameters considered are (4/3, 1.0, 10, 12800).
*
* cullingVolumeDistance: Configures how far forward the far plane of the frustum should extend.
* This along with cullingVolumeScale determines the maximum distance from
* the camera eye that the actor can be detected at. This quantity is related
* to world units by a factor of
* (znear - zfar) / ((znear + zfar) * scale).
* For default view parameters, increasing this property by 1 increases the
* distance by ~0.995 world units.
*
* cullingVolumeScale: Scales the entire culling volume in all directions except the downward
* direction. Both the frustum and the box will scale in size. This quantity is
* related to world units by different factors based on direction:
* - For the forward and backward directions, they are related in the same way
* as above. For default view parameters, increasing this property by 1 increases
* the forward and backward scales by ~0.995 world units.
* - For the sideways directions, the relation to world units is
* (aspect / scale) * sqrt(3)/3
* For default view parameters, increasing this property by 1 increases the
* sideways scales by ~0.77 world units.
* - For the upward direction, the relation to world units is
* (1 / scale) * sqrt(3)/3
* For default view parameters, increasing this property by 1 increases the
* scale by ~0.58 world units.
*
* cullingVolumeDownward: Sets the height of the culling volume in the downward direction. Increasing
* this value will make actors below the camera more easily detected. This
* quantity is related to world units by the same factor as the upward scale.
* For default view parameters, increasing this property by 1 increases the
* downward height by ~0.58 world units.
*
* This interactive 3D graph visualizes the shape of the culling volume and has sliders for the 3 properties mentioned
* above: https://www.desmos.com/3d/4ztkxqky2a.
*/
s32 Actor_CullingVolumeTest(PlayState* play, Actor* actor, Vec3f* projPos, f32 projW) {
if ((projPos->z > -actor->cullingVolumeScale) &&
(projPos->z < (actor->cullingVolumeDistance + actor->cullingVolumeScale))) {
f32 invW;
f32 cullingVolumeScaleX;
f32 cullingVolumeScaleY;
f32 cullingVolumeDownward;
// Clamping `projW` affects points behind the camera, so that the culling volume has
// a frustum shape in front of the camera and a box shape behind the camera.
invW = CLAMP_MIN(projW, 1.0f);
if (play->view.fovy != 60.0f) {
phi_f12 = actor->uncullZoneScale * play->projectionMtxFDiagonal.x * 0.76980036f; // sqrt(16/27)
// If the fov isn't 60 degrees, make the cull parameters behave as if it were 60 degrees.
// To do this, multiply by the ratios of the x and y diagonal elements of the projection matrix.
// The x diagonal element is cot(0.5 * fov) / aspect and the y diagonal element is just cot(0.5 * fov).
// When the fov is 60 degrees, cot(0.5 * 60 degrees) = sqrt(3) so the x element is 3sqrt(3)/4 and the y
// element is sqrt(3). The current diagonal element divided by (or multiplied by their inverse) gives
// the ratio.
phi_f14 = play->projectionMtxFDiagonal.y * 0.57735026f; // 1 / sqrt(3)
phi_f16 = actor->uncullZoneScale * phi_f14;
phi_f14 *= actor->uncullZoneDownward;
cullingVolumeScaleX = actor->cullingVolumeScale * play->projectionMtxFDiagonal.x *
0.76980036f; // sqrt(16/27) = aspect / cot(0.5 * f) = (4/3) / sqrt(3)
cullingVolumeDownward = play->projectionMtxFDiagonal.y * 0.57735026f; // 1 / sqrt(3) = 1 / cot(0.5 * f)
cullingVolumeScaleY = actor->cullingVolumeScale * cullingVolumeDownward;
cullingVolumeDownward *= actor->cullingVolumeDownward;
} else {
phi_f16 = phi_f12 = actor->uncullZoneScale;
phi_f14 = actor->uncullZoneDownward;
cullingVolumeScaleY = cullingVolumeScaleX = actor->cullingVolumeScale;
cullingVolumeDownward = actor->cullingVolumeDownward;
}
if (((fabsf(projectedPos->x) - phi_f12) < phi_f2) && ((-phi_f2 < (projectedPos->y + phi_f14))) &&
((projectedPos->y - phi_f16) < phi_f2)) {
if (((fabsf(projPos->x) - cullingVolumeScaleX) < invW) && ((-invW < (projPos->y + cullingVolumeDownward))) &&
((projPos->y - cullingVolumeScaleY) < invW)) {
return true;
}
}
@ -3060,7 +3142,7 @@ void Actor_DrawAll(PlayState* play, ActorContext* actorCtx) {
if (play->unk_18844) {
actorFlags = ACTOR_FLAG_200000;
} else {
actorFlags = ACTOR_FLAG_200000 | ACTOR_FLAG_40 | ACTOR_FLAG_20;
actorFlags = ACTOR_FLAG_200000 | ACTOR_FLAG_INSIDE_CULLING_VOLUME | ACTOR_FLAG_DRAW_CULLING_DISABLED;
}
OPEN_DISPS(play->state.gfxCtx);
@ -3081,10 +3163,10 @@ void Actor_DrawAll(PlayState* play, ActorContext* actorCtx) {
Actor_UpdateFlaggedAudio(actor);
}
if (func_800BA2D8(play, actor)) {
actor->flags |= ACTOR_FLAG_40;
if (Actor_CullingCheck(play, actor)) {
actor->flags |= ACTOR_FLAG_INSIDE_CULLING_VOLUME;
} else {
actor->flags &= ~ACTOR_FLAG_40;
actor->flags &= ~ACTOR_FLAG_INSIDE_CULLING_VOLUME;
}
actor->isDrawn = false;

View File

@ -1429,7 +1429,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);
spawnedActor->actionFunc = func_800A6780;
spawnedActor->actor.flags |= ACTOR_FLAG_10;
spawnedActor->actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
if ((spawnedActor->actor.params != ITEM00_SMALL_KEY) &&
(spawnedActor->actor.params != ITEM00_HEART_PIECE) &&
(spawnedActor->actor.params != ITEM00_HEART_CONTAINER)) {

View File

@ -1,9 +1,10 @@
#include "global.h"
#include "kaleido_manager.h"
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_200000 | \
ACTOR_FLAG_UPDATE_DURING_OCARINA | ACTOR_FLAG_CAN_PRESS_SWITCHES | ACTOR_FLAG_MINIMAP_ICON_ENABLED)
#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)
ActorFunc sPlayerCallInitFunc;
ActorFunc sPlayerCallDestroyFunc;

View File

@ -8,7 +8,7 @@
#include "assets/objects/gameplay_keep/gameplay_keep.h"
#include "assets/objects/object_link_child/object_link_child.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void ArmsHook_Init(Actor* thisx, PlayState* play);
void ArmsHook_Destroy(Actor* thisx, PlayState* play);

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_10 | ACTOR_FLAG_UPDATE_DURING_OCARINA)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA)
void ArrowFire_Init(Actor* thisx, PlayState* play);
void ArrowFire_Destroy(Actor* thisx, PlayState* play);
@ -52,7 +52,7 @@ static ColliderQuadInit sQuadInit = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 2000, ICHAIN_STOP),
ICHAIN_F32(cullingVolumeDistance, 2000, ICHAIN_STOP),
};
static s32 sBssPad;

View File

@ -7,7 +7,7 @@
#include "z_arrow_ice.h"
#include "overlays/actors/ovl_En_Arrow/z_en_arrow.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_UPDATE_DURING_OCARINA)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA)
void ArrowIce_Init(Actor* thisx, PlayState* play);
void ArrowIce_Destroy(Actor* thisx, PlayState* play);
@ -34,7 +34,7 @@ ActorProfile Arrow_Ice_Profile = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 2000, ICHAIN_STOP),
ICHAIN_F32(cullingVolumeDistance, 2000, ICHAIN_STOP),
};
void ArrowIce_SetupAction(ArrowIce* this, ArrowIceActionFunc actionFunc) {

View File

@ -7,7 +7,7 @@
#include "z_arrow_light.h"
#include "overlays/actors/ovl_En_Arrow/z_en_arrow.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_UPDATE_DURING_OCARINA)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA)
void ArrowLight_Init(Actor* thisx, PlayState* play);
void ArrowLight_Destroy(Actor* thisx, PlayState* play);
@ -32,7 +32,7 @@ ActorProfile Arrow_Light_Profile = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 2000, ICHAIN_STOP),
ICHAIN_F32(cullingVolumeDistance, 2000, ICHAIN_STOP),
};
static s32 sBssPad;

View File

@ -15,7 +15,7 @@
#include "assets/objects/object_kaizoku_obj/object_kaizoku_obj.h"
#include "assets/objects/object_spot11_obj/object_spot11_obj.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void BgBreakwall_Init(Actor* thisx, PlayState* play);
void BgBreakwall_Update(Actor* thisx, PlayState* play);
@ -93,9 +93,9 @@ BgBreakwallStruct D_808B8140[] = {
static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F(scale, 1, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 800, ICHAIN_STOP),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 400, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 800, ICHAIN_STOP),
};
Color_RGBA8 D_808B82F0[] = {
@ -246,7 +246,7 @@ void func_808B76CC(BgBreakwall* this, PlayState* play) {
if (((BGBREAKWALL_GET_F(&this->dyna.actor)) != BGBREAKWALL_F_7) &&
((BGBREAKWALL_GET_F(&this->dyna.actor)) != BGBREAKWALL_F_9) &&
((BGBREAKWALL_GET_F(&this->dyna.actor)) != BGBREAKWALL_F_11)) {
this->dyna.actor.flags &= ~ACTOR_FLAG_10;
this->dyna.actor.flags &= ~ACTOR_FLAG_UPDATE_CULLING_DISABLED;
}
Actor_SetObjectDependency(play, &this->dyna.actor);

View File

@ -7,7 +7,7 @@
#include "z_bg_crace_movebg.h"
#include "overlays/actors/ovl_En_Dno/z_en_dno.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgCraceMovebg_Init(Actor* thisx, PlayState* play);
void BgCraceMovebg_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_ctower_gear.h"
#include "assets/objects/object_ctower_rot/object_ctower_rot.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgCtowerGear_Init(Actor* thisx, PlayState* play);
void BgCtowerGear_Destroy(Actor* thisx, PlayState* play);
@ -43,28 +43,28 @@ static Vec3f sEnterSplashOffsets[] = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 400, ICHAIN_STOP),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 400, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 400, ICHAIN_STOP),
};
static InitChainEntry sInitChainCenterCog[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 1500, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 2000, ICHAIN_STOP),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 1500, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 2000, ICHAIN_STOP),
};
static InitChainEntry sInitChainOrgan[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 420, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 570, ICHAIN_STOP),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 420, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 570, ICHAIN_STOP),
};
static Gfx* sDLists[] = { gClockTowerCeilingCogDL, gClockTowerCenterCogDL, gClockTowerWaterWheelDL };
void BgCtowerGear_Splash(BgCtowerGear* this, PlayState* play) {
s32 i;
s32 flag40 = this->dyna.actor.flags & ACTOR_FLAG_40;
s32 flag40 = this->dyna.actor.flags & ACTOR_FLAG_INSIDE_CULLING_VOLUME;
Vec3f splashSpawnPos;
Vec3f splashOffset;
s32 pad;

View File

@ -7,7 +7,7 @@
#include "z_bg_ctower_rot.h"
#include "assets/objects/object_ctower_rot/object_ctower_rot.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void BgCtowerRot_Init(Actor* thisx, PlayState* play);
void BgCtowerRot_Destroy(Actor* thisx, PlayState* play);

View File

@ -8,7 +8,7 @@
#include "assets/objects/object_d_lift/object_d_lift.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
#define DANPEI_MOVEBG_FLAG_4 (1 << 2)
#define DANPEI_MOVEBG_FLAG_8 (1 << 3)
@ -46,9 +46,9 @@ static Gfx* D_80AF7534[] = { gDampeGraveBrownElevatorDL };
static CollisionHeader* D_80AF7538[] = { &gDampeGraveBrownElevatorCol };
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneScale, 1500, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 1100, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 1500, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 1100, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 1000, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};

View File

@ -100,7 +100,7 @@ s8 D_80B83A94[] = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
@ -309,8 +309,8 @@ void BgDblueBalance_Init(Actor* thisx, PlayState* play) {
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
this->dyna.actor.flags = sTypeInfo[sp2C].unk_08;
this->dyna.actor.uncullZoneScale = sTypeInfo[sp2C].unk_0C;
this->dyna.actor.uncullZoneDownward = sTypeInfo[sp2C].unk_10;
this->dyna.actor.cullingVolumeScale = sTypeInfo[sp2C].unk_0C;
this->dyna.actor.cullingVolumeDownward = sTypeInfo[sp2C].unk_10;
this->dyna.actor.update = sTypeInfo[sp2C].update;
this->dyna.actor.draw = sTypeInfo[sp2C].draw;
@ -694,7 +694,7 @@ void func_80B83758(Actor* thisx, PlayState* play) {
temp_f0, 0x20);
}
if (this->dyna.actor.flags & ACTOR_FLAG_40) {
if (this->dyna.actor.flags & ACTOR_FLAG_INSIDE_CULLING_VOLUME) {
ptr2 = &sTypeInfo[BGDBLUEBALANCE_GET_300(&this->dyna.actor)];
Gfx_DrawDListOpa(play, ptr2->opaDList);

View File

@ -7,7 +7,7 @@
#include "z_bg_dblue_elevator.h"
#include "assets/objects/object_dblue_object/object_dblue_object.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgDblueElevator_SpawnRipplesAndSplashes(BgDblueElevator* this, PlayState* play);
void BgDblueElevator_CheckWaterBoxInfo(BgDblueElevator* this, PlayState* play2);
@ -51,9 +51,9 @@ static s8 sLargeRipplesLives[] = { 0, 2, 4 };
static s8 sSmallRipplesLives[] = { 0, 1, 2, 3, 4, 5 };
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 250, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 250, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 250, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 250, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
@ -292,7 +292,7 @@ void BgDblueElevator_Move(BgDblueElevator* this, PlayState* play) {
if (!ptr->isHorizontal) {
this->dyna.actor.world.pos.y = this->posOffset + this->dyna.actor.home.pos.y;
if (CHECK_FLAG_ALL(this->dyna.actor.flags, ACTOR_FLAG_40) && (this->isWithinWaterBoxXZ)) {
if (CHECK_FLAG_ALL(this->dyna.actor.flags, ACTOR_FLAG_INSIDE_CULLING_VOLUME) && (this->isWithinWaterBoxXZ)) {
if (this->direction > 0) {
nearWaterSurfaceCheck = ((this->dyna.actor.world.pos.y + -10.0f) - this->waterSurfacePosY) *
((this->dyna.actor.prevPos.y + -10.0f) - this->waterSurfacePosY);

View File

@ -8,7 +8,7 @@
#include "assets/objects/object_dblue_object/object_dblue_object.h"
#include "overlays/actors/ovl_Obj_Hunsui/z_obj_hunsui.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void BgDblueMovebg_Init(Actor* thisx, PlayState* play);
void BgDblueMovebg_Destroy(Actor* thisx, PlayState* play);
@ -97,9 +97,9 @@ s16 D_80A2B96C[] = { 0, 0x16C, -0x16C, 0 };
static s16 sCsIdList[] = { CS_ID_NONE, CS_ID_NONE };
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneScale, 1500, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 1100, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 1500, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 1100, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 1000, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
@ -263,7 +263,7 @@ void BgDblueMovebg_Init(Actor* thisx, PlayState* play) {
Math_Vec3f_Sum(&this->unk_190, &this->dyna.actor.world.pos, &this->unk_190);
Math_Vec3f_Sum(&this->unk_19C, &this->dyna.actor.world.pos, &this->unk_19C);
D_80A2BBF0 = this;
this->dyna.actor.flags |= ACTOR_FLAG_20;
this->dyna.actor.flags |= ACTOR_FLAG_DRAW_CULLING_DISABLED;
this->actionFunc = func_80A2AED0;
break;
@ -274,7 +274,7 @@ void BgDblueMovebg_Init(Actor* thisx, PlayState* play) {
case 11:
this->unk_1CC = D_80A2B96C[func_80A29A80(play, this->switchFlag, this->unk_1BC)];
D_80A2BBF0 = this;
this->dyna.actor.flags |= ACTOR_FLAG_20;
this->dyna.actor.flags |= ACTOR_FLAG_DRAW_CULLING_DISABLED;
this->dyna.actor.update = Actor_Noop;
this->dyna.actor.draw = func_80A2B274;
break;
@ -769,7 +769,7 @@ void BgDblueMovebg_Draw(Actor* thisx, PlayState* play2) {
OPEN_DISPS(play->state.gfxCtx);
if ((this->unk_160 == 9) || (this->unk_160 == 8) || (this->dyna.actor.flags & ACTOR_FLAG_40)) {
if ((this->unk_160 == 9) || (this->unk_160 == 8) || (this->dyna.actor.flags & ACTOR_FLAG_INSIDE_CULLING_VOLUME)) {
if (this->texAnim != NULL) {
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(this->texAnim));
}

View File

@ -7,7 +7,7 @@
#include "z_bg_dblue_waterfall.h"
#include "assets/objects/object_dblue_object/object_dblue_object.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgDblueWaterfall_Init(Actor* thisx, PlayState* play);
void BgDblueWaterfall_Destroy(Actor* thisx, PlayState* play);
@ -321,9 +321,9 @@ void func_80B84610(BgDblueWaterfall* this, PlayState* play) {
}
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 1500, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 1500, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 1500, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 1500, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};

View File

@ -104,9 +104,9 @@ void BgDkjailIvy_IvyCutEffects(BgDkjailIvy* this, PlayState* play) {
}
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 200, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 200, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 200, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 200, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
@ -144,7 +144,7 @@ void BgDkjailIvy_SetupWaitForCut(BgDkjailIvy* this) {
void BgDkjailIvy_WaitForCut(BgDkjailIvy* this, PlayState* play) {
if (this->collider.base.acFlags & AC_HIT) {
this->collider.base.acFlags &= ~AC_HIT;
this->dyna.actor.flags |= ACTOR_FLAG_10;
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
CutsceneManager_Queue(this->dyna.actor.csId);
BgDkjailIvy_SetupCutscene(this);
} else {

View File

@ -7,7 +7,7 @@
#include "z_bg_dy_yoseizo.h"
#include "overlays/actors/ovl_Demo_Effect/z_demo_effect.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_UPDATE_DURING_OCARINA)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA)
void BgDyYoseizo_Init(Actor* thisx, PlayState* play);
void BgDyYoseizo_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_f40_block.h"
#include "assets/objects/object_f40_obj/object_f40_obj.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgF40Block_Init(Actor* thisx, PlayState* play);
void BgF40Block_Destroy(Actor* thisx, PlayState* play);
@ -42,9 +42,9 @@ static Vec3f D_80BC4620[] = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 400, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 400, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 400, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};

View File

@ -7,7 +7,7 @@
#include "z_bg_f40_flift.h"
#include "assets/objects/object_f40_obj/object_f40_obj.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgF40Flift_Init(Actor* thisx, PlayState* play);
void BgF40Flift_Destroy(Actor* thisx, PlayState* play);
@ -30,8 +30,8 @@ ActorProfile Bg_F40_Flift_Profile = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 5000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 400, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 5000, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};

View File

@ -8,7 +8,7 @@
#include "z64rumble.h"
#include "assets/objects/object_f40_switch/object_f40_switch.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgF40Switch_Init(Actor* thisx, PlayState* play);
void BgF40Switch_Destroy(Actor* thisx, PlayState* play);
@ -97,9 +97,9 @@ void BgF40Switch_CheckAll(BgF40Switch* this, PlayState* play) {
}
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 200, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 200, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 200, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 200, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 123, ICHAIN_STOP),
};

View File

@ -7,7 +7,7 @@
#include "z_bg_f40_swlift.h"
#include "assets/objects/object_f40_obj/object_f40_obj.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgF40Swlift_Init(Actor* thisx, PlayState* play);
void BgF40Swlift_Destroy(Actor* thisx, PlayState* play);
@ -30,8 +30,8 @@ ActorProfile Bg_F40_Swlift_Profile = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneScale, 550, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 5000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 550, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 5000, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};

View File

@ -72,7 +72,7 @@ void BgFireWall_Init(Actor* thisx, PlayState* play) {
this->unk_158 = 0.1f;
this->unk_160 = 300.0f;
this->texIndex = Rand_S16Offset(0, ARRAY_COUNT(sFlameTextures) - 1);
this->actor.flags |= ACTOR_FLAG_10;
this->actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
this->collider.dim.pos.y = this->actor.world.pos.y;
this->actionFunc = func_809AC638;
}

View File

@ -7,7 +7,7 @@
#include "z_bg_fu_kaiten.h"
#include "assets/objects/object_fu_kaiten/object_fu_kaiten.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void BgFuKaiten_Init(Actor* thisx, PlayState* play);
void BgFuKaiten_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_fu_mizu.h"
#include "assets/objects/object_fu_kaiten/object_fu_kaiten.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void BgFuMizu_Init(Actor* thisx, PlayState* play);
void BgFuMizu_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_goron_oyu.h"
#include "assets/objects/object_oyu/object_oyu.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void BgGoronOyu_Init(Actor* thisx, PlayState* play);
void BgGoronOyu_Destroy(Actor* thisx, PlayState* play);

View File

@ -57,9 +57,9 @@ static ColliderCylinderInit sCylinderInit = {
static s16 sRockScales[4] = { 24, 15, 10, 5 };
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 500, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 500, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 500, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
@ -189,7 +189,7 @@ void func_80BD6274(BgHakaBombwall* this, PlayState* play) {
}
void BgHakaBombwall_SetupPlayCutscene(BgHakaBombwall* this) {
this->dyna.actor.flags |= ACTOR_FLAG_10;
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
CutsceneManager_Queue(this->dyna.actor.csId);
this->actionFunc = BgHakaBombwall_PlayCutscene;
}

View File

@ -7,7 +7,7 @@
#include "z_bg_haka_curtain.h"
#include "assets/objects/object_haka_obj/object_haka_obj.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgHakaCurtain_Init(Actor* thisx, PlayState* play);
void BgHakaCurtain_Destroy(Actor* thisx, PlayState* play);
@ -37,9 +37,9 @@ ActorProfile Bg_Haka_Curtain_Profile = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 700, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 600, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 700, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 600, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};

View File

@ -115,7 +115,7 @@ s32 D_80ABD020[] = { -73, -40, -8, 24, 57 };
Vec3f D_80ABD034 = { 0.0f, 3.0f, 0.0f };
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
@ -328,8 +328,8 @@ void BgHakuginBombwall_Init(Actor* thisx, PlayState* play) {
Collider_UpdateCylinder(&this->dyna.actor, &this->collider);
Actor_SetFocus(&this->dyna.actor, ptr->unk_08);
this->dyna.actor.uncullZoneScale = ptr->unk_0C;
this->dyna.actor.uncullZoneDownward = ptr->unk_10;
this->dyna.actor.cullingVolumeScale = ptr->unk_0C;
this->dyna.actor.cullingVolumeDownward = ptr->unk_10;
this->actionFunc = func_80ABCCE4;
}
@ -379,7 +379,7 @@ void func_80ABCCE4(BgHakuginBombwall* this, PlayState* play) {
BgHakuginBombwallStruct* ptr = &D_80ABCFC0[BGHAKUGIN_BOMBWALL_100(&this->dyna.actor)];
if (ptr->unk_20(this, play)) {
this->dyna.actor.flags |= ACTOR_FLAG_10;
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
CutsceneManager_Queue(this->dyna.actor.csId);
this->actionFunc = func_80ABCD98;
} else {

View File

@ -7,7 +7,7 @@
#include "z_bg_hakugin_elvpole.h"
#include "assets/objects/object_hakugin_obj/object_hakugin_obj.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgHakuginElvpole_Init(Actor* thisx, PlayState* play);
void BgHakuginElvpole_Destroy(Actor* thisx, PlayState* play);

View File

@ -9,7 +9,7 @@
#include "z64rumble.h"
#include "assets/objects/object_hakugin_obj/object_hakugin_obj.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void BgHakuginPost_Init(Actor* thisx, PlayState* play);
void BgHakuginPost_Destroy(Actor* thisx, PlayState* play);

View File

@ -9,7 +9,7 @@
#include "z64rumble.h"
#include "assets/objects/object_goronswitch/object_goronswitch.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgHakuginSwitch_Init(Actor* thisx, PlayState* play);
void BgHakuginSwitch_Destroy(Actor* thisx, PlayState* play);
@ -87,16 +87,16 @@ BgHakuginSwitchStruct D_80B1688C[] = {
};
static InitChainEntry sInitChain1[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 150, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 130, ICHAIN_STOP),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 150, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 130, ICHAIN_STOP),
};
static InitChainEntry sInitChain2[] = {
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 260, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 360, ICHAIN_STOP),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 260, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 360, ICHAIN_STOP),
};
void func_80B15790(BgHakuginSwitch* this, u16 sfxId) {

View File

@ -7,7 +7,7 @@
#include "z_bg_icefloe.h"
#include "assets/objects/object_icefloe/object_icefloe.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgIcefloe_Init(Actor* thisx, PlayState* play);
void BgIcefloe_Destroy(Actor* thisx, PlayState* play);

View File

@ -53,7 +53,7 @@ ActorProfile Bg_Icicle_Profile = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneScale, 1500, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 1500, ICHAIN_CONTINUE),
ICHAIN_F32(gravity, -3, ICHAIN_CONTINUE),
ICHAIN_F32(terminalVelocity, -30, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),

View File

@ -7,7 +7,7 @@
#include "z_bg_ikana_block.h"
#include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgIkanaBlock_Init(Actor* thisx, PlayState* play);
void BgIkanaBlock_Destroy(Actor* thisx, PlayState* play);
@ -36,9 +36,9 @@ ActorProfile Bg_Ikana_Block_Profile = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 250, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 250, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 250, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 250, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};

View File

@ -83,9 +83,9 @@ s16 D_80BD52C8[] = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 500, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 500, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 500, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
};
@ -316,7 +316,7 @@ void func_80BD4F9C(BgIkanaBombwall* this, PlayState* play) {
}
void func_80BD4FF8(BgIkanaBombwall* this) {
this->dyna.actor.flags |= ACTOR_FLAG_10;
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
CutsceneManager_Queue(this->dyna.actor.csId);
this->actionFunc = func_80BD503C;
}

View File

@ -8,7 +8,7 @@
#include "z64quake.h"
#include "assets/objects/object_ikana_obj/object_ikana_obj.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgIkanaDharma_Init(Actor* thisx, PlayState* play2);
void BgIkanaDharma_Destroy(Actor* thisx, PlayState* play);
@ -55,9 +55,9 @@ static ColliderCylinderInit sCylinderInit = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 320, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 320, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 320, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 320, ICHAIN_CONTINUE),
ICHAIN_F32_DIV1000(gravity, -1100, ICHAIN_STOP),
};
@ -158,8 +158,8 @@ void BgIkanaDharma_WaitForHit(BgIkanaDharma* this, PlayState* play) {
this->dyna.actor.speed = 20.0f;
Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_DARUMA_VANISH);
BgIkanaDharma_SetupStartCutscene(this);
} else if (CHECK_FLAG_ALL(this->dyna.actor.flags, ACTOR_FLAG_40) && (sFirstHitBgIkanaDharma == NULL) &&
(this->dyna.actor.xzDistToPlayer < 420.0f)) {
} else if (CHECK_FLAG_ALL(this->dyna.actor.flags, ACTOR_FLAG_INSIDE_CULLING_VOLUME) &&
(sFirstHitBgIkanaDharma == NULL) && (this->dyna.actor.xzDistToPlayer < 420.0f)) {
tempAngle1 = BINANG_SUB(this->dyna.actor.yawTowardsPlayer, player->actor.shape.rot.y);
tempAngle1 = ABS_ALT(tempAngle1);

View File

@ -12,7 +12,7 @@
#include "z_bg_ikana_mirror.h"
#include "assets/objects/object_ikana_obj/object_ikana_obj.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgIkanaMirror_Init(Actor* thisx, PlayState* play2);
void BgIkanaMirror_Destroy(Actor* thisx, PlayState* play);
@ -193,9 +193,9 @@ static ColliderQuadInit sLightRaysCollidersInit[] = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 220, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 200, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 220, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 200, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
@ -325,7 +325,7 @@ void BgIkanaMirror_Wait(BgIkanaMirror* this, PlayState* play) {
}
void BgIkanaMirror_SetupEmitLight(BgIkanaMirror* this) {
this->dyna.actor.flags |= ACTOR_FLAG_20;
this->dyna.actor.flags |= ACTOR_FLAG_DRAW_CULLING_DISABLED;
this->actionFunc = BgIkanaMirror_EmitLight;
}
@ -362,7 +362,7 @@ void BgIkanaMirror_EmitLight(BgIkanaMirror* this, PlayState* play) {
}
} else {
this->dyna.actor.flags &= ~ACTOR_FLAG_20;
this->dyna.actor.flags &= ~ACTOR_FLAG_DRAW_CULLING_DISABLED;
BgIkanaMirror_SetupWait(this);
}
}

View File

@ -52,9 +52,9 @@ static ColliderCylinderInit sCylinderInit = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 1000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
@ -85,7 +85,7 @@ void BgIkanaRay_Destroy(Actor* thisx, PlayState* play) {
void BgIkanaRay_SetDeactivated(BgIkanaRay* this) {
this->actor.draw = NULL;
this->actor.flags |= ACTOR_FLAG_10;
this->actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
this->actionFunc = BgIkanaRay_UpdateCheckForActivation;
}
@ -97,7 +97,7 @@ void BgIkanaRay_UpdateCheckForActivation(BgIkanaRay* this, PlayState* play) {
void BgIkanaRay_SetActivated(BgIkanaRay* this) {
this->actor.draw = BgIkanaRay_Draw;
this->actor.flags &= ~ACTOR_FLAG_10;
this->actor.flags &= ~ACTOR_FLAG_UPDATE_CULLING_DISABLED;
this->actionFunc = BgIkanaRay_UpdateActivated;
}

View File

@ -11,7 +11,7 @@
#include "overlays/actors/ovl_En_Water_Effect/z_en_water_effect.h"
#include "assets/objects/object_ikana_obj/object_ikana_obj.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void BgIkanaRotaryroom_Init(Actor* thisx, PlayState* play);
void BgIkanaRotaryroom_Destroy(Actor* thisx, PlayState* play);

View File

@ -8,7 +8,7 @@
#include "z64quake.h"
#include "assets/objects/object_ikana_obj/object_ikana_obj.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgIkanaShutter_Init(Actor* thisx, PlayState* play);
void BgIkanaShutter_Destroy(Actor* thisx, PlayState* play);
@ -47,9 +47,9 @@ ActorProfile Bg_Ikana_Shutter_Profile = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 500, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 500, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 500, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};

View File

@ -9,7 +9,7 @@
#include "z64rumble.h"
#include "assets/objects/object_ikninside_obj/object_ikninside_obj.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void BgIkninSusceil_Init(Actor* thisx, PlayState* play);
void BgIkninSusceil_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_ikninside.h"
#include "assets/objects/object_ikninside_obj/object_ikninside_obj.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgIkninside_Init(Actor* thisx, PlayState* play);
void BgIkninside_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_iknv_doukutu.h"
#include "assets/objects/object_iknv_obj/object_iknv_obj.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void BgIknvDoukutu_Init(Actor* thisx, PlayState* play);
void BgIknvDoukutu_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_iknv_obj.h"
#include "assets/objects/object_iknv_obj/object_iknv_obj.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgIknvObj_Init(Actor* thisx, PlayState* play);
void BgIknvObj_Destroy(Actor* thisx, PlayState* play);
@ -63,7 +63,7 @@ void BgIknvObj_Init(Actor* thisx, PlayState* play) {
this->dList = object_iknv_obj_DL_013058;
this->actionFunc = BgIknvObj_UpdateWaterwheel;
this->dyna.actor.flags |= ACTOR_FLAG_100000;
this->dyna.actor.flags |= ACTOR_FLAG_10;
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
break;
case IKNV_OBJ_RAISED_DOOR:

View File

@ -7,7 +7,7 @@
#include "z_bg_ingate.h"
#include "assets/objects/object_sichitai_obj/object_sichitai_obj.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void BgIngate_Init(Actor* thisx, PlayState* play2);
void BgIngate_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_bg_inibs_movebg.h"
#include "assets/objects/object_inibs_object/object_inibs_object.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void BgInibsMovebg_Init(Actor* thisx, PlayState* play);
void BgInibsMovebg_Destroy(Actor* thisx, PlayState* play);

View File

@ -27,9 +27,9 @@ ActorProfile Bg_Keikoku_Spr_Profile = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 3000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 200, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 400, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 3000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 200, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 400, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 20, ICHAIN_STOP),
};

View File

@ -6,7 +6,7 @@
#include "z_bg_kin2_bombwall.h"
#include "assets/objects/object_kin2_obj/object_kin2_obj.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_UCODE_POINT_LIGHT_ENABLED)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_UCODE_POINT_LIGHT_ENABLED)
void BgKin2Bombwall_Init(Actor* thisx, PlayState* play);
void BgKin2Bombwall_Destroy(Actor* thisx, PlayState* play);
@ -129,9 +129,9 @@ void BgKin2Bombwall_SpawnEffects(BgKin2Bombwall* this, PlayState* play) {
}
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 200, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 300, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 200, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 300, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
};

View File

@ -7,7 +7,7 @@
#include "z_bg_kin2_fence.h"
#include "assets/objects/object_kin2_obj/object_kin2_obj.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgKin2Fence_Init(Actor* thisx, PlayState* play);
void BgKin2Fence_Destroy(Actor* thisx, PlayState* play);
@ -132,9 +132,9 @@ void BgKin2Fence_SpawnEyeSparkles(BgKin2Fence* this, PlayState* play, s32 mask)
}
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 2000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 100, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 100, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 2000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 100, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 100, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};

View File

@ -78,9 +78,12 @@ static ColliderTrisInit sTrisInit = {
static Vec3f sDustBasePos = { 0.0f, 23.0f, 0.0f };
static InitChainEntry sInitChain[] = {
ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(terminalVelocity, -20000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 100, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 100, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_CONTINUE),
ICHAIN_F32_DIV1000(terminalVelocity, -20000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 100, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 100, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
bool BgKin2Picture_IsSkulltulaCollected(PlayState* play, s32 skulltulaParams) {

View File

@ -46,7 +46,7 @@ f32 D_80B70770[] = { 10.0f, 15.0f };
u8 D_80B70778[] = { 0x0F, 0x0A };
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_STOP),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_STOP),
};
CollisionHeader* D_80B70780[] = { &gOceanSpiderHouseChestOfDrawersCol, &gOceanSpiderHouseBookshelfCol };
@ -195,12 +195,12 @@ void BgKin2Shelf_Init(Actor* thisx, PlayState* play) {
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
if (sp24 == 0) {
this->dyna.actor.uncullZoneScale = 150.0f;
this->dyna.actor.uncullZoneDownward = 140.0f;
this->dyna.actor.cullingVolumeScale = 150.0f;
this->dyna.actor.cullingVolumeDownward = 140.0f;
Actor_SetScale(&this->dyna.actor, 0.1f);
} else {
this->dyna.actor.uncullZoneScale = 250.0f;
this->dyna.actor.uncullZoneDownward = 300.0f;
this->dyna.actor.cullingVolumeScale = 250.0f;
this->dyna.actor.cullingVolumeDownward = 300.0f;
Actor_SetScale(&this->dyna.actor, 1.0f);
this->dyna.actor.flags |= ACTOR_FLAG_UCODE_POINT_LIGHT_ENABLED;
}

View File

@ -7,7 +7,7 @@
#include "z_bg_ladder.h"
#include "assets/objects/object_ladder/object_ladder.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgLadder_Init(Actor* thisx, PlayState* play);
void BgLadder_Destroy(Actor* thisx, PlayState* play);
@ -68,7 +68,7 @@ void BgLadder_Init(Actor* thisx, PlayState* play) {
if (Flags_GetSwitch(play, this->switchFlag)) {
// If the flag is set, then the ladder draws immediately
this->alpha = 255;
this->dyna.actor.flags &= ~ACTOR_FLAG_10; // always update = off
this->dyna.actor.flags &= ~ACTOR_FLAG_UPDATE_CULLING_DISABLED; // always update = off
this->action = BgLadder_DoNothing;
} else {
// Otherwise, the ladder doesn't draw; wait for the flag to be set
@ -112,7 +112,7 @@ void BgLadder_FadeIn(BgLadder* this, PlayState* play) {
this->alpha = 255;
CutsceneManager_Stop(this->dyna.actor.csId);
DynaPoly_EnableCollision(play, &play->colCtx.dyna, this->dyna.bgId);
this->dyna.actor.flags &= ~ACTOR_FLAG_10; // always update = off
this->dyna.actor.flags &= ~ACTOR_FLAG_UPDATE_CULLING_DISABLED; // always update = off
this->action = BgLadder_DoNothing;
}
}

View File

@ -33,7 +33,7 @@ void BgLbfshot_Init(Actor* thisx, PlayState* play) {
BgLbfshot* this = (BgLbfshot*)thisx;
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
this->dyna.actor.uncullZoneForward = 4000.0f;
this->dyna.actor.cullingVolumeDistance = 4000.0f;
DynaPolyActor_Init(&this->dyna, DYNA_TRANSFORM_POS);
DynaPolyActor_LoadMesh(play, &this->dyna, &object_lbfshot_Colheader_0014D8);
}

View File

@ -85,7 +85,7 @@ void func_80AD68DC(BgLotus* this, PlayState* play) {
}
if (gSaveContext.save.playerForm != PLAYER_FORM_DEKU) {
this->unk166 = 40;
this->dyna.actor.flags |= ACTOR_FLAG_10;
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
this->actionFunc = func_80AD6A88;
return;
}
@ -135,7 +135,7 @@ void func_80AD6B68(BgLotus* this, PlayState* play) {
} else {
this->dyna.actor.world.pos.y = this->unk160;
}
this->dyna.actor.flags &= ~ACTOR_FLAG_10;
this->dyna.actor.flags &= ~ACTOR_FLAG_UPDATE_CULLING_DISABLED;
this->unk168 = 0x60;
this->actionFunc = func_80AD68DC;
this->dyna.actor.world.pos.x = this->dyna.actor.home.pos.x;

View File

@ -7,7 +7,7 @@
#include "z_bg_market_step.h"
#include "assets/objects/object_market_obj/object_market_obj.h"
#define FLAGS (ACTOR_FLAG_20 | ACTOR_FLAG_UCODE_POINT_LIGHT_ENABLED)
#define FLAGS (ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_UCODE_POINT_LIGHT_ENABLED)
void BgMarketStep_Init(Actor* thisx, PlayState* play);
void BgMarketStep_Draw(Actor* thisx, PlayState* play);
@ -25,9 +25,9 @@ ActorProfile Bg_Market_Step_Profile = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 1, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 1, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 1, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 1, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 1, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 1, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
};

View File

@ -27,9 +27,9 @@ ActorProfile Bg_Mbar_Chair_Profile = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 2000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 60, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 80, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 2000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 60, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 80, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};

View File

@ -8,7 +8,7 @@
#include "assets/objects/object_numa_obj/object_numa_obj.h"
#include "assets/objects/object_syokudai/object_syokudai.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER)
void BgNumaHana_Init(Actor* thisx, PlayState* play);
void BgNumaHana_Destroy(Actor* thisx, PlayState* play);
@ -68,9 +68,9 @@ static s16 sInitialAnglePerPetal[] = { 0x0000, 0x2AAA, 0x5555, 0x8000, 0xAAAA, 0
static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 800, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 600, ICHAIN_STOP),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 800, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 600, ICHAIN_STOP),
};
/**

View File

@ -9,7 +9,7 @@
#include "z64quake.h"
#include "z64rumble.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgOpenShutter_Init(Actor* thisx, PlayState* play);
void BgOpenShutter_Destroy(Actor* thisx, PlayState* play);
@ -38,9 +38,9 @@ ActorProfile Bg_Open_Shutter_Profile = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 350, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 350, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 350, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 350, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};

View File

@ -7,7 +7,7 @@
#include "z_bg_open_spot.h"
#include "assets/objects/object_open_obj/object_open_obj.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgOpenSpot_Init(Actor* thisx, PlayState* play);
void BgOpenSpot_Destroy(Actor* thisx, PlayState* play);
@ -27,9 +27,9 @@ ActorProfile Bg_Open_Spot_Profile = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 560, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 800, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 560, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 800, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};

View File

@ -15,7 +15,7 @@
#include "overlays/actors/ovl_En_Ot/z_en_ot.h"
#include "assets/objects/object_sinkai_kabe/object_sinkai_kabe.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void BgSinkaiKabe_Init(Actor* thisx, PlayState* play);
void BgSinkaiKabe_Destroy(Actor* thisx, PlayState* play);

View File

@ -137,7 +137,7 @@ Color_RGBA8 D_809CF208 = { 255, 255, 150, 170 };
Color_RGBA8 D_809CF20C = { 255, 0, 0, 0 };
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 1500, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDistance, 1500, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};

View File

@ -7,7 +7,7 @@
#include "z_bg_tobira01.h"
#include "assets/objects/object_spot11_obj/object_spot11_obj.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void BgTobira01_Init(Actor* thisx, PlayState* play);
void BgTobira01_Destroy(Actor* thisx, PlayState* play);

View File

@ -29,8 +29,8 @@ ActorProfile Bg_Umajump_Profile = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneScale, 1200, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 300, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 1200, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 300, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
@ -95,7 +95,7 @@ void BgUmajump_Init(Actor* thisx, PlayState* play) {
!CHECK_QUEST_ITEM(QUEST_SONG_EPONA) && (thisx->csId != CS_ID_NONE)) {
this->actionFunc = BgUmajump_CheckDistance;
thisx->update = func_8091A5A0;
thisx->flags |= ACTOR_FLAG_10;
thisx->flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
this->horse = SubS_FindActor(play, this->horse, ACTORCAT_BG, ACTOR_EN_HORSE);
} else {
thisx->update = Actor_Noop;

View File

@ -35,7 +35,9 @@
#include "overlays/actors/ovl_En_Tanron1/z_en_tanron1.h"
#include "overlays/actors/ovl_Item_B_Heart/z_item_b_heart.h"
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
ACTOR_FLAG_DRAW_CULLING_DISABLED)
#define ODOLWA_EFFECT_COUNT 100

View File

@ -14,7 +14,9 @@
#include "overlays/actors/ovl_Item_B_Heart/z_item_b_heart.h"
#include "assets/objects/gameplay_keep/gameplay_keep.h"
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
ACTOR_FLAG_DRAW_CULLING_DISABLED)
void Boss02_Init(Actor* thisx, PlayState* play);
void Boss02_Destroy(Actor* thisx, PlayState* play);

View File

@ -57,7 +57,9 @@
#include "assets/objects/gameplay_keep/gameplay_keep.h"
#include "assets/objects/object_water_effect/object_water_effect.h"
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
ACTOR_FLAG_DRAW_CULLING_DISABLED)
#define WORK_TIMER_UNK0_A 0 // used in func_809E34B8
#define WORK_TIMER_CURRENT_ACTION 0

View File

@ -9,7 +9,9 @@
#include "attributes.h"
#include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h"
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
ACTOR_FLAG_DRAW_CULLING_DISABLED)
void Boss04_Init(Actor* thisx, PlayState* play2);
void Boss04_Destroy(Actor* thisx, PlayState* play);

View File

@ -428,7 +428,7 @@ void Boss05_Init(Actor* thisx, PlayState* play) {
ActorShape_Init(&this->dyna.actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
this->dyna.actor.colChkInfo.damageTable = &sWalkingHeadDamageTable;
this->dyna.actor.flags |= ACTOR_FLAG_10 | ACTOR_FLAG_20;
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED;
} else if (BIO_BABA_GET_TYPE(&this->dyna.actor) >= BIO_BABA_TYPE_FRAGMENT_BASE) {
SkelAnime_InitFlex(play, &this->headSkelAnime, &gBioDekuBabaHeadSkel, &gBioDekuBabaHeadChompAnim,
this->headJointTable, this->headMorphTable, BIO_DEKU_BABA_HEAD_LIMB_MAX);

View File

@ -12,7 +12,9 @@
#include "assets/objects/gameplay_keep/gameplay_keep.h"
#include "assets/objects/object_knight/object_knight.h"
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
ACTOR_FLAG_DRAW_CULLING_DISABLED)
void Boss06_Init(Actor* thisx, PlayState* play);
void Boss06_Destroy(Actor* thisx, PlayState* play);

View File

@ -27,7 +27,9 @@
#include "overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.h"
#include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h"
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
ACTOR_FLAG_DRAW_CULLING_DISABLED)
#define MAJORA_TENTACLE_COUNT 25
#define MAJORA_WHIP_LENGTH 44

View File

@ -20,7 +20,9 @@
#include "assets/objects/gameplay_keep/gameplay_keep.h"
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
ACTOR_FLAG_DRAW_CULLING_DISABLED)
#define GOHT_LIMB_DRAW_FLAG(limbIndex) (1 << ((limbIndex)-1))

View File

@ -9,7 +9,7 @@
#include "assets/objects/gameplay_keep/gameplay_keep.h"
#include "assets/objects/object_efc_tw/object_efc_tw.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DemoEffect_Init(Actor* thisx, PlayState* play);
void DemoEffect_Destroy(Actor* thisx, PlayState* play);

View File

@ -6,7 +6,7 @@
#include "z_demo_getitem.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DemoGetitem_Init(Actor* thisx, PlayState* play);
void DemoGetitem_Destroy(Actor* thisx, PlayState* play);

View File

@ -8,7 +8,7 @@
#include "assets/objects/gameplay_keep/gameplay_keep.h"
#include "assets/objects/object_bubble/object_bubble.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DemoKankyo_Init(Actor* thisx, PlayState* play);
void DemoKankyo_Destroy(Actor* thisx, PlayState* play);

View File

@ -6,7 +6,7 @@
#include "z_demo_moonend.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DemoMoonend_Init(Actor* thisx, PlayState* play);
void DemoMoonend_Destroy(Actor* thisx, PlayState* play);

View File

@ -6,7 +6,7 @@
#include "z_demo_shd.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DemoShd_Init(Actor* thisx, PlayState* play);
void DemoShd_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_demo_syoten.h"
#include "assets/objects/object_syoten/object_syoten.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DemoSyoten_Init(Actor* thisx, PlayState* play);
void DemoSyoten_Destroy(Actor* thisx, PlayState* play);

View File

@ -8,7 +8,7 @@
#include "overlays/actors/ovl_En_Box/z_en_box.h"
#include "assets/objects/object_box/object_box.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void DemoTreLgt_Init(Actor* thisx, PlayState* play);
void DemoTreLgt_Destroy(Actor* thisx, PlayState* play);

View File

@ -6,7 +6,9 @@
#include "z_dm_bal.h"
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_10 | ACTOR_FLAG_UPDATE_DURING_OCARINA)
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
ACTOR_FLAG_UPDATE_DURING_OCARINA)
void DmBal_Init(Actor* thisx, PlayState* play);
void DmBal_Destroy(Actor* thisx, PlayState* play);
@ -69,7 +71,7 @@ void DmBal_Init(Actor* thisx, PlayState* play) {
DmBal* this = (DmBal*)thisx;
this->actor.attentionRangeType = ATTENTION_RANGE_1;
this->actor.uncullZoneForward = 3000.0f;
this->actor.cullingVolumeDistance = 3000.0f;
Actor_SetScale(&this->actor, 0.02f);
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 36.0f);
SkelAnime_InitFlex(play, &this->skelAnime, &gTingleSkel, &gTingleFloatIdleAnim, this->jointTable, this->morphTable,

View File

@ -8,7 +8,7 @@
#include "assets/objects/gameplay_keep/gameplay_keep.h"
#include "assets/objects/object_delf/object_delf.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DmChar00_Init(Actor* thisx, PlayState* play);
void DmChar00_Destroy(Actor* thisx, PlayState* play);

View File

@ -8,7 +8,7 @@
#include "assets/objects/object_mtoride/object_mtoride.h"
#include "overlays/actors/ovl_Obj_Etcetera/z_obj_etcetera.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_UPDATE_DURING_OCARINA)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA)
void DmChar01_Init(Actor* thisx, PlayState* play);
void DmChar01_Destroy(Actor* thisx, PlayState* play);
@ -46,7 +46,7 @@ ActorProfile Dm_Char01_Profile = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneScale, 300, ICHAIN_STOP),
ICHAIN_F32(cullingVolumeScale, 300, ICHAIN_STOP),
};
s16 D_80AAAAB4 = false;

View File

@ -7,7 +7,7 @@
#include "z_dm_char02.h"
#include "assets/objects/object_stk2/object_stk2.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DmChar02_Init(Actor* thisx, PlayState* play);
void DmChar02_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_dm_char03.h"
#include "assets/objects/object_osn/object_osn.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DmChar03_Init(Actor* thisx, PlayState* play);
void DmChar03_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_dm_char04.h"
#include "assets/objects/gameplay_keep/gameplay_keep.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DmChar04_Init(Actor* thisx, PlayState* play);
void DmChar04_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_dm_char05.h"
#include "assets/objects/object_dmask/object_dmask.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DmChar05_Init(Actor* thisx, PlayState* play);
void DmChar05_Destroy(Actor* thisx, PlayState* play);

View File

@ -6,7 +6,7 @@
#include "z_dm_char06.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DmChar06_Init(Actor* thisx, PlayState* play);
void DmChar06_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_dm_char07.h"
#include "assets/objects/object_milkbar/object_milkbar.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DmChar07_Init(Actor* thisx, PlayState* play);
void DmChar07_Destroy(Actor* thisx, PlayState* play);

View File

@ -71,9 +71,9 @@ static AnimationInfo sAnimationInfo[TURTLE_ANIM_MAX] = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 4000, ICHAIN_STOP),
ICHAIN_F32(cullingVolumeDistance, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeScale, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(cullingVolumeDownward, 4000, ICHAIN_STOP),
};
void DmChar08_UpdateEyes(DmChar08* this) {

View File

@ -6,7 +6,7 @@
#include "z_dm_char09.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DmChar09_Init(Actor* thisx, PlayState* play);
void DmChar09_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_dm_hina.h"
#include "assets/objects/gameplay_keep/gameplay_keep.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DmHina_Init(Actor* thisx, PlayState* play);
void DmHina_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_dm_opstage.h"
#include "assets/objects/object_keikoku_demo/object_keikoku_demo.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DmOpstage_Init(Actor* thisx, PlayState* play);
void DmOpstage_Destroy(Actor* thisx, PlayState* play);
@ -29,7 +29,7 @@ ActorProfile Dm_Opstage_Profile = {
};
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneScale, 300, ICHAIN_STOP),
ICHAIN_F32(cullingVolumeScale, 300, ICHAIN_STOP),
};
void DmOpstage_SetupAction(DmOpstage* this, DmOpstageActionFunc actionFunc) {

View File

@ -6,7 +6,7 @@
#include "z_dm_ravine.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DmRavine_Init(Actor* thisx, PlayState* play);
void DmRavine_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_dm_sa.h"
#include "assets/objects/object_stk/object_stk.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DmSa_Init(Actor* thisx, PlayState* play);
void DmSa_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_dm_statue.h"
#include "assets/objects/object_smtower/object_smtower.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_CAN_PRESS_SWITCHES)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_CAN_PRESS_SWITCHES)
void DmStatue_Init(Actor* thisx, PlayState* play);
void DmStatue_Destroy(Actor* thisx, PlayState* play);

View File

@ -12,7 +12,7 @@
#include "assets/objects/object_stk2/object_stk2.h"
#include "assets/objects/object_stk3/object_stk3.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_UPDATE_DURING_OCARINA)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA)
void DmStk_Init(Actor* thisx, PlayState* play);
void DmStk_Destroy(Actor* thisx, PlayState* play);

View File

@ -6,7 +6,7 @@
#include "z_dm_tag.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void DmTag_Init(Actor* thisx, PlayState* play);
void DmTag_Destroy(Actor* thisx, PlayState* play);

View File

@ -7,7 +7,7 @@
#include "z_dm_tsg.h"
#include "assets/objects/object_open_obj/object_open_obj.h"
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
void DmTsg_Init(Actor* thisx, PlayState* play);
void DmTsg_Destroy(Actor* thisx, PlayState* play);

View File

@ -6,7 +6,7 @@
#include "z_dm_zl.h"
#define FLAGS (ACTOR_FLAG_10)
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED)
void DmZl_Init(Actor* thisx, PlayState* play);
void DmZl_Destroy(Actor* thisx, PlayState* play);

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