mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-04 06:54:33 +00:00
Document Culling (#2318)
* document culling * format * depth -> distance * format * var name * new graph link * rephrase actor flags * tharo's comments + some more tweaks * is this causing the problem? * change wording * cant scope the temp * format * dragorn review * bad merge * player -> camera in descriptions * more its * cadmic review * goddamn it why do i have that habit * projected
This commit is contained in:
parent
a897017af5
commit
016aef482b
371 changed files with 1015 additions and 850 deletions
|
@ -130,14 +130,25 @@ typedef struct ActorShape {
|
|||
// What actually matters is the presence or lack of `ACTOR_FLAG_HOSTILE`.
|
||||
#define ACTOR_FLAG_FRIENDLY (1 << 3)
|
||||
|
||||
//
|
||||
#define ACTOR_FLAG_4 (1 << 4)
|
||||
// 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)
|
||||
|
||||
//
|
||||
#define ACTOR_FLAG_5 (1 << 5)
|
||||
// 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)
|
||||
|
||||
//
|
||||
#define ACTOR_FLAG_6 (1 << 6)
|
||||
// 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)
|
||||
|
@ -277,9 +288,9 @@ typedef struct Actor {
|
|||
/* 0x0B4 */ ActorShape shape; // Variables related to the physical shape of the actor
|
||||
/* 0x0E4 */ Vec3f projectedPos; // Position of the actor in projected space
|
||||
/* 0x0F0 */ f32 projectedW; // w component of the projected actor position
|
||||
/* 0x0F4 */ f32 uncullZoneForward; // Amount to increase the uncull zone forward by (in projected space)
|
||||
/* 0x0F8 */ f32 uncullZoneScale; // Amount to increase the uncull zone scale by (in projected space)
|
||||
/* 0x0FC */ f32 uncullZoneDownward; // Amount to increase uncull zone downward by (in projected space)
|
||||
/* 0x0F4 */ f32 cullingVolumeDistance; // Forward distance of the culling volume (in projected space). See `Actor_CullingCheck` and `Actor_CullingVolumeTest` for more information.
|
||||
/* 0x0F8 */ f32 cullingVolumeScale; // Scale of the culling volume (in projected space). See `Actor_CullingCheck` and `Actor_CullingVolumeTest` for more information.
|
||||
/* 0x0FC */ f32 cullingVolumeDownward; // Downward height of the culling volume (in projected space). See `Actor_CullingCheck` and `Actor_CullingVolumeTest` for more information.
|
||||
/* 0x100 */ Vec3f prevPos; // World position from the previous update cycle
|
||||
/* 0x10C */ u8 isLockedOn; // Set to true if the actor is currently locked-on by Player
|
||||
/* 0x10D */ u8 attentionPriority; // Lower values have higher priority. Resets to 0 when lock-on is released.
|
||||
|
@ -886,7 +897,7 @@ s32 func_8002F9EC(struct PlayState* play, Actor* actor, struct CollisionPoly* po
|
|||
void Actor_DisableLens(struct PlayState* play);
|
||||
void Actor_InitContext(struct PlayState* play, ActorContext* actorCtx, struct ActorEntry* playerEntry);
|
||||
void Actor_UpdateAll(struct PlayState* play, ActorContext* actorCtx);
|
||||
s32 func_800314D4(struct PlayState* play, Actor* actor, Vec3f* arg2, f32 arg3);
|
||||
s32 Actor_CullingVolumeTest(struct PlayState* play, Actor* actor, Vec3f* projPos, f32 projW);
|
||||
void func_800315AC(struct PlayState* play, ActorContext* actorCtx);
|
||||
void Actor_KillAllWithMissingObject(struct PlayState* play, ActorContext* actorCtx);
|
||||
void func_80031B14(struct PlayState* play, ActorContext* actorCtx);
|
||||
|
|
|
@ -896,9 +896,9 @@ void Actor_Init(Actor* actor, PlayState* play) {
|
|||
actor->minVelocityY = -20.0f;
|
||||
actor->xyzDistToPlayerSq = MAXFLOAT;
|
||||
actor->naviEnemyId = NAVI_ENEMY_NONE;
|
||||
actor->uncullZoneForward = 1000.0f;
|
||||
actor->uncullZoneScale = 350.0f;
|
||||
actor->uncullZoneDownward = 700.0f;
|
||||
actor->cullingVolumeDistance = 1000.0f;
|
||||
actor->cullingVolumeScale = 350.0f;
|
||||
actor->cullingVolumeDownward = 700.0f;
|
||||
CollisionCheck_InitInfo(&actor->colChkInfo);
|
||||
actor->floorBgId = BGCHECK_SCENE;
|
||||
ActorShape_Init(&actor->shape, 0.0f, NULL, 0.0f);
|
||||
|
@ -2438,7 +2438,8 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) {
|
|||
actor->yawTowardsPlayer = Actor_WorldYawTowardActor(actor, &player->actor);
|
||||
actor->flags &= ~ACTOR_FLAG_SFX_FOR_PLAYER_BODY_HIT;
|
||||
|
||||
if ((DECR(actor->freezeTimer) == 0) && (actor->flags & (ACTOR_FLAG_4 | ACTOR_FLAG_6))) {
|
||||
if ((DECR(actor->freezeTimer) == 0) &&
|
||||
(actor->flags & (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_INSIDE_CULLING_VOLUME))) {
|
||||
if (actor == player->focusActor) {
|
||||
actor->isLockedOn = true;
|
||||
} else {
|
||||
|
@ -2708,19 +2709,92 @@ void Actor_DrawLensActors(PlayState* play, s32 numInvisibleActors, Actor** invis
|
|||
CLOSE_DISPS(gfxCtx, "../z_actor.c", 6284);
|
||||
}
|
||||
|
||||
s32 func_800314B0(PlayState* play, Actor* actor) {
|
||||
return func_800314D4(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_800314D4(PlayState* play, Actor* actor, Vec3f* arg2, f32 arg3) {
|
||||
f32 var;
|
||||
/**
|
||||
* 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 (fov, aspect, scale, znear, zfar).
|
||||
* The default parameters considered are (60 degrees, 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) * tan(0.5 * fov)
|
||||
* 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) * tan(0.5 * fov)
|
||||
* 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) {
|
||||
f32 invW;
|
||||
|
||||
if ((arg2->z > -actor->uncullZoneScale) && (arg2->z < (actor->uncullZoneForward + actor->uncullZoneScale))) {
|
||||
var = (arg3 < 1.0f) ? 1.0f : 1.0f / arg3;
|
||||
if ((projPos->z > -actor->cullingVolumeScale) &&
|
||||
(projPos->z < (actor->cullingVolumeDistance + actor->cullingVolumeScale))) {
|
||||
// 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 = (projW < 1.0f) ? 1.0f : 1.0f / projW;
|
||||
|
||||
if ((((fabsf(arg2->x) - actor->uncullZoneScale) * var) < 1.0f) &&
|
||||
(((arg2->y + actor->uncullZoneDownward) * var) > -1.0f) &&
|
||||
(((arg2->y - actor->uncullZoneScale) * var) < 1.0f)) {
|
||||
if ((((fabsf(projPos->x) - actor->cullingVolumeScale) * invW) < 1.0f) &&
|
||||
(((projPos->y + actor->cullingVolumeDownward) * invW) > -1.0f) &&
|
||||
(((projPos->y - actor->cullingVolumeScale) * invW) < 1.0f)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -2767,17 +2841,18 @@ void func_800315AC(PlayState* play, ActorContext* actorCtx) {
|
|||
}
|
||||
|
||||
if (!DEBUG_FEATURES || (HREG(64) != 1) || ((HREG(65) != -1) && (HREG(65) != HREG(66))) || (HREG(70) == 0)) {
|
||||
if (func_800314B0(play, actor)) {
|
||||
actor->flags |= ACTOR_FLAG_6;
|
||||
if (Actor_CullingCheck(play, actor)) {
|
||||
actor->flags |= ACTOR_FLAG_INSIDE_CULLING_VOLUME;
|
||||
} else {
|
||||
actor->flags &= ~ACTOR_FLAG_6;
|
||||
actor->flags &= ~ACTOR_FLAG_INSIDE_CULLING_VOLUME;
|
||||
}
|
||||
}
|
||||
|
||||
actor->isDrawn = false;
|
||||
|
||||
if (!DEBUG_FEATURES || (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->init == NULL) && (actor->draw != NULL) &&
|
||||
(actor->flags & (ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_INSIDE_CULLING_VOLUME))) {
|
||||
if ((actor->flags & ACTOR_FLAG_REACT_TO_LENS) &&
|
||||
((play->roomCtx.curRoom.lensMode == LENS_MODE_SHOW_ACTORS) || play->actorCtx.lensActive ||
|
||||
(actor->room != play->roomCtx.curRoom.num))) {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#include "assets/objects/gameplay_keep/gameplay_keep.h"
|
||||
#include "assets/objects/object_d_hsblock/object_d_hsblock.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void EnAObj_Init(Actor* thisx, PlayState* play);
|
||||
void EnAObj_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -114,8 +114,8 @@ void EnAObj_Init(Actor* thisx, PlayState* play) {
|
|||
this->dyna.bgId = BGACTOR_NEG_ONE;
|
||||
this->dyna.interactFlags = 0;
|
||||
this->dyna.transformFlags = 0;
|
||||
thisx->uncullZoneDownward = 1200.0f;
|
||||
thisx->uncullZoneScale = 200.0f;
|
||||
thisx->cullingVolumeDownward = 1200.0f;
|
||||
thisx->cullingVolumeScale = 200.0f;
|
||||
|
||||
switch (thisx->params) {
|
||||
case A_OBJ_BLOCK_LARGE:
|
||||
|
@ -288,8 +288,8 @@ void EnAObj_BoulderFragment(EnAObj* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void EnAObj_SetupBlock(EnAObj* this, s16 type) {
|
||||
this->dyna.actor.uncullZoneDownward = 1200.0f;
|
||||
this->dyna.actor.uncullZoneScale = 720.0f;
|
||||
this->dyna.actor.cullingVolumeDownward = 1200.0f;
|
||||
this->dyna.actor.cullingVolumeScale = 720.0f;
|
||||
EnAObj_SetupAction(this, EnAObj_Block);
|
||||
}
|
||||
|
||||
|
|
|
@ -980,7 +980,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_CULLING_DISABLED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1012,7 +1012,7 @@ EnItem00* Item_DropCollectible2(PlayState* play, Vec3f* spawnPos, s16 params) {
|
|||
spawnedActor->actor.speed = 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_CULLING_DISABLED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1126,7 +1126,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_CULLING_DISABLED;
|
||||
if ((spawnedActor->actor.params != ITEM00_SMALL_KEY) &&
|
||||
(spawnedActor->actor.params != ITEM00_HEART_PIECE) &&
|
||||
(spawnedActor->actor.params != ITEM00_HEART_CONTAINER)) {
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#include "global.h"
|
||||
|
||||
#define FLAGS \
|
||||
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5 | \
|
||||
ACTOR_FLAG_UPDATE_DURING_OCARINA | ACTOR_FLAG_CAN_PRESS_SWITCHES)
|
||||
#define FLAGS \
|
||||
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
|
||||
ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA | ACTOR_FLAG_CAN_PRESS_SWITCHES)
|
||||
|
||||
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
||||
"ntsc-1.2:128 pal-1.1:128"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "z_arms_hook.h"
|
||||
#include "assets/objects/object_link_boy/object_link_boy.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#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);
|
||||
|
|
|
@ -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_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);
|
||||
|
@ -33,7 +33,7 @@ ActorProfile Arrow_Fire_Profile = {
|
|||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 2000, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 2000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void ArrowFire_SetupAction(ArrowFire* this, ArrowFireActionFunc actionFunc) {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include "overlays/actors/ovl_En_Arrow/z_en_arrow.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | 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) {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include "overlays/actors/ovl_En_Arrow/z_en_arrow.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | 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);
|
||||
|
@ -34,7 +34,7 @@ ActorProfile Arrow_Light_Profile = {
|
|||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 2000, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 2000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void ArrowLight_SetupAction(ArrowLight* this, ArrowLightActionFunc actionFunc) {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "quake.h"
|
||||
#include "assets/objects/object_bdan_objects/object_bdan_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
typedef enum BgBdanObjectsPropertyGetter {
|
||||
JABU_OBJECTS_GET_PROP_CAM_SETTING_NORMAL0 = 0,
|
||||
|
@ -126,7 +126,7 @@ void BgBdanObjects_Init(Actor* thisx, PlayState* play) {
|
|||
this->var.switchFlag = PARAMS_GET_U(thisx->params, 8, 6);
|
||||
thisx->params &= 0xFF;
|
||||
if (thisx->params == JABU_OBJECTS_TYPE_WATERBOX_HEIGHT_CHANGER) {
|
||||
thisx->flags |= ACTOR_FLAG_4 | ACTOR_FLAG_5;
|
||||
thisx->flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED;
|
||||
play->colCtx.colHeader->waterBoxes[7].ySurface = thisx->world.pos.y;
|
||||
this->actionFunc = BgBdanObjects_WaitForSwitch;
|
||||
return;
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_bdan_switch.h"
|
||||
#include "assets/objects/object_bdan_objects/object_bdan_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgBdanSwitch_Init(Actor* thisx, PlayState* play);
|
||||
void BgBdanSwitch_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -82,9 +82,9 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 1400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1200, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1200, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
static Vec3f D_8086E0E0 = { 0.0f, 140.0f, 0.0f };
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#include "assets/objects/object_bowl/object_bowl.h"
|
||||
#include "terminal.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgBomGuard_Init(Actor* thisx, PlayState* play);
|
||||
void BgBomGuard_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -104,9 +104,9 @@ void BgBombwall_RotateVec(Vec3f* arg0, Vec3f* arg1, f32 arg2, f32 arg3) {
|
|||
}
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 1800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 300, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 300, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgBombwall_Init(Actor* thisx, PlayState* play) {
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include "quake.h"
|
||||
#include "terminal.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
void BgBowlWall_Init(Actor* thisx, PlayState* play);
|
||||
void BgBowlWall_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#include "assets/objects/object_bwall/object_bwall.h"
|
||||
#include "assets/objects/object_kingdodongo/object_kingdodongo.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
typedef struct BombableWallInfo {
|
||||
/* 0x00 */ CollisionHeader* colHeader;
|
||||
|
@ -67,9 +67,9 @@ static BombableWallInfo sBombableWallInfo[] = {
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
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),
|
||||
};
|
||||
|
||||
void BgBreakwall_SetupAction(BgBreakwall* this, BgBreakwallActionFunc actionFunc) {
|
||||
|
@ -207,7 +207,7 @@ void BgBreakwall_WaitForObject(BgBreakwall* this, PlayState* play) {
|
|||
|
||||
this->dyna.actor.objectSlot = this->requiredObjectSlot;
|
||||
Actor_SetObjectDependency(play, &this->dyna.actor);
|
||||
this->dyna.actor.flags &= ~ACTOR_FLAG_4;
|
||||
this->dyna.actor.flags &= ~ACTOR_FLAG_UPDATE_CULLING_DISABLED;
|
||||
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);
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_ddan_jd.h"
|
||||
#include "assets/objects/object_ddan_objects/object_ddan_objects.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
void BgDdanJd_Init(Actor* thisx, PlayState* play);
|
||||
void BgDdanJd_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_ddan_kd.h"
|
||||
#include "assets/objects/object_ddan_objects/object_ddan_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgDdanKd_Init(Actor* thisx, PlayState* play);
|
||||
void BgDdanKd_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -52,9 +52,9 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 32767, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 32767, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 32767, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeScale, 32767, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 32767, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDistance, 32767, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgDdanKd_SetupAction(BgDdanKd* this, BgDdanKdActionFunc actionFunc) {
|
||||
|
|
|
@ -102,9 +102,9 @@ void BgDodoago_SpawnSparkles(Vec3f* meanPos, PlayState* play) {
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 5000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 800, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 5000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 800, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgDodoago_Init(Actor* thisx, PlayState* play) {
|
||||
|
|
|
@ -13,9 +13,9 @@
|
|||
#include "assets/scenes/indoors/daiyousei_izumi/daiyousei_izumi_scene.h"
|
||||
|
||||
#if OOT_VERSION < NTSC_1_1
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
#else
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_UPDATE_DURING_OCARINA)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA)
|
||||
#endif
|
||||
|
||||
typedef enum BgDyYoseizoRewardType {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "overlays/actors/ovl_Boss_Ganon/z_boss_ganon.h"
|
||||
#include "terminal.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
typedef enum FlashState {
|
||||
/* 0x00 */ FLASH_NONE,
|
||||
|
|
|
@ -32,7 +32,7 @@ ActorProfile Bg_Gjyo_Bridge_Profile = {
|
|||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneScale, 800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 800, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_gnd_darkmeiro.h"
|
||||
#include "assets/objects/object_demo_kekkai/object_demo_kekkai.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
void BgGndDarkmeiro_Init(Actor* thisx, PlayState* play2);
|
||||
void BgGndDarkmeiro_Destroy(Actor* thisx, PlayState* play2);
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_gnd_firemeiro.h"
|
||||
#include "assets/objects/object_demo_kekkai/object_demo_kekkai.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
void BgGndFiremeiro_Init(Actor* thisx, PlayState* play);
|
||||
void BgGndFiremeiro_Destroy(Actor* thisx, PlayState* play2);
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_gnd_iceblock.h"
|
||||
#include "assets/objects/object_demo_kekkai/object_demo_kekkai.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
typedef enum BgGndIceblockAction {
|
||||
/* 0 */ GNDICE_IDLE,
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_gnd_nisekabe.h"
|
||||
#include "assets/objects/object_demo_kekkai/object_demo_kekkai.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgGndNisekabe_Init(Actor* thisx, PlayState* play);
|
||||
void BgGndNisekabe_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -30,7 +30,7 @@ void BgGndNisekabe_Init(Actor* thisx, PlayState* play) {
|
|||
BgGndNisekabe* this = (BgGndNisekabe*)thisx;
|
||||
|
||||
Actor_SetScale(&this->actor, 0.1);
|
||||
this->actor.uncullZoneForward = 3000.0;
|
||||
this->actor.cullingVolumeDistance = 3000.0;
|
||||
}
|
||||
|
||||
void BgGndNisekabe_Destroy(Actor* thisx, PlayState* play) {
|
||||
|
|
|
@ -53,9 +53,9 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgGndSoulmeiro_Init(Actor* thisx, PlayState* play) {
|
||||
|
|
|
@ -97,7 +97,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_CULLING_DISABLED;
|
||||
if (Flags_GetSwitch(play, this->switchFlag)) {
|
||||
this->vFlameScale = 350;
|
||||
}
|
||||
|
@ -124,7 +124,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_CULLING_DISABLED;
|
||||
Actor_SetFocus(thisx, 30.0f);
|
||||
this->actionFunc = BgHakaGate_GateWait;
|
||||
}
|
||||
|
@ -274,7 +274,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)) {
|
||||
Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_METALDOOR_STOP);
|
||||
this->dyna.actor.flags &= ~ACTOR_FLAG_4;
|
||||
this->dyna.actor.flags &= ~ACTOR_FLAG_UPDATE_CULLING_DISABLED;
|
||||
this->actionFunc = BgHakaGate_DoNothing;
|
||||
} else {
|
||||
Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_METALDOOR_SLIDE - SFX_FLAG);
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#include "overlays/actors/ovl_En_Rd/z_en_rd.h"
|
||||
#include "quake.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgHakaHuta_Init(Actor* thisx, PlayState* play);
|
||||
void BgHakaHuta_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "assets/objects/object_hakach_objects/object_hakach_objects.h"
|
||||
#include "assets/objects/object_haka_objects/object_haka_objects.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_REACT_TO_LENS)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_REACT_TO_LENS)
|
||||
|
||||
void BgHakaMegane_Init(Actor* thisx, PlayState* play);
|
||||
void BgHakaMegane_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -36,8 +36,8 @@ ActorProfile Bg_Haka_MeganeBG_Profile = {
|
|||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
|
@ -64,7 +64,7 @@ void BgHakaMeganeBG_Init(Actor* thisx, PlayState* play) {
|
|||
|
||||
if (thisx->params == 2) {
|
||||
DynaPolyActor_Init(&this->dyna, DYNA_TRANSFORM_POS | DYNA_TRANSFORM_ROT_Y);
|
||||
thisx->flags |= ACTOR_FLAG_4;
|
||||
thisx->flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
|
||||
CollisionHeader_GetVirtual(&object_haka_objects_Col_005334, &colHeader);
|
||||
this->actionFunc = func_8087E258;
|
||||
} else {
|
||||
|
@ -83,15 +83,15 @@ 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_CULLING_DISABLED;
|
||||
this->actionFunc = func_8087E288;
|
||||
}
|
||||
} else {
|
||||
CollisionHeader_GetVirtual(&object_haka_objects_Col_00A7F4, &colHeader);
|
||||
this->unk_16A = 80;
|
||||
this->actionFunc = func_8087E10C;
|
||||
thisx->uncullZoneScale = 3000.0f;
|
||||
thisx->uncullZoneDownward = 3000.0f;
|
||||
thisx->cullingVolumeScale = 3000.0f;
|
||||
thisx->cullingVolumeDownward = 3000.0f;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "assets/objects/object_haka_objects/object_haka_objects.h"
|
||||
#include "assets/objects/object_ice_objects/object_ice_objects.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_4)
|
||||
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_UPDATE_CULLING_DISABLED)
|
||||
|
||||
typedef enum SpinningScytheTrapMode {
|
||||
/* 0 */ SCYTHE_TRAP_SHADOW_TEMPLE,
|
||||
|
@ -121,7 +121,7 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
static CollisionCheckInfoInit sColChkInfoInit = { 0, 80, 130, MASS_IMMOVABLE };
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_4, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
@ -200,7 +200,7 @@ void BgHakaSgami_SetupSpin(BgHakaSgami* this, PlayState* play) {
|
|||
this->actor.objectSlot = this->requiredObjectSlot;
|
||||
this->actor.draw = BgHakaSgami_Draw;
|
||||
this->timer = SCYTHE_SPIN_TIME;
|
||||
this->actor.flags &= ~ACTOR_FLAG_4;
|
||||
this->actor.flags &= ~ACTOR_FLAG_UPDATE_CULLING_DISABLED;
|
||||
this->actionFunc = BgHakaSgami_Spin;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_haka_ship.h"
|
||||
#include "assets/objects/object_haka_objects/object_haka_objects.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
void BgHakaShip_Init(Actor* thisx, PlayState* play);
|
||||
void BgHakaShip_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -131,7 +131,7 @@ void BgHakaTrap_Init(Actor* thisx, PlayState* play) {
|
|||
this->actionFunc = func_80880484;
|
||||
} else {
|
||||
DynaPolyActor_Init(&this->dyna, DYNA_TRANSFORM_POS);
|
||||
thisx->flags |= ACTOR_FLAG_4;
|
||||
thisx->flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
|
||||
|
||||
if (thisx->params == HAKA_TRAP_SPIKED_BOX) {
|
||||
CollisionHeader_GetVirtual(&object_haka_objects_Col_009CD0, &colHeader);
|
||||
|
@ -177,7 +177,7 @@ void BgHakaTrap_Init(Actor* thisx, PlayState* play) {
|
|||
} else {
|
||||
this->timer = 40;
|
||||
this->actionFunc = func_808809B0;
|
||||
thisx->uncullZoneScale = 500.0f;
|
||||
thisx->cullingVolumeScale = 500.0f;
|
||||
}
|
||||
|
||||
CollisionCheck_SetInfo(&thisx->colChkInfo, NULL, &sColChkInfoInit);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "assets/objects/gameplay_keep/gameplay_keep.h"
|
||||
#include "assets/objects/object_haka_objects/object_haka_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgHakaTubo_Init(Actor* thisx, PlayState* play);
|
||||
void BgHakaTubo_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_haka_water.h"
|
||||
#include "assets/objects/object_hakach_objects/object_hakach_objects.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
void BgHakaWater_Init(Actor* thisx, PlayState* play);
|
||||
void BgHakaWater_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "assets/objects/object_hakach_objects/object_hakach_objects.h"
|
||||
#include "assets/objects/object_haka_objects/object_haka_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
typedef enum ShadowTempleAssetsType {
|
||||
/* 0x0 */ STA_GIANT_BIRD_STATUE,
|
||||
|
@ -96,9 +96,9 @@ void BgHakaZou_Init(Actor* thisx, PlayState* play) {
|
|||
DynaPolyActor_Init(&this->dyna, 0);
|
||||
|
||||
if (thisx->params == STA_GIANT_BIRD_STATUE) {
|
||||
thisx->uncullZoneForward = 2000.0f;
|
||||
thisx->uncullZoneScale = 3000.0f;
|
||||
thisx->uncullZoneDownward = 3000.0f;
|
||||
thisx->cullingVolumeDistance = 2000.0f;
|
||||
thisx->cullingVolumeScale = 3000.0f;
|
||||
thisx->cullingVolumeDownward = 3000.0f;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -176,7 +176,7 @@ void BgHakaZou_Wait(BgHakaZou* this, PlayState* play) {
|
|||
this->collider.dim.yShift = -30;
|
||||
this->collider.dim.pos.x -= 56;
|
||||
this->collider.dim.pos.z += 56;
|
||||
this->dyna.actor.uncullZoneScale = 1500.0f;
|
||||
this->dyna.actor.cullingVolumeScale = 1500.0f;
|
||||
} else if (this->dyna.actor.params == STA_BOMBABLE_SKULL_WALL) {
|
||||
CollisionHeader_GetVirtual(&object_haka_objects_Col_005E30, &colHeader);
|
||||
this->collider.dim.yShift = -50;
|
||||
|
|
|
@ -42,9 +42,9 @@ ActorProfile Bg_Heavy_Block_Profile = {
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F(scale, 1, ICHAIN_CONTINUE),
|
||||
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),
|
||||
};
|
||||
|
||||
void BgHeavyBlock_SetPieceRandRot(BgHeavyBlock* this, f32 scale) {
|
||||
|
@ -77,7 +77,8 @@ 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_CARRY_X_ROT_INFLUENCE;
|
||||
this->dyna.actor.flags |=
|
||||
ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_CARRY_X_ROT_INFLUENCE;
|
||||
DynaPolyActor_Init(&this->dyna, 0);
|
||||
CollisionHeader_GetVirtual(&gHeavyBlockCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
|
@ -101,7 +102,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_CULLING_DISABLED;
|
||||
this->unk_164.y = -50.0f;
|
||||
break;
|
||||
case HEAVYBLOCK_SMALL_PIECE:
|
||||
|
@ -109,7 +110,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_CULLING_DISABLED;
|
||||
this->unk_164.y = -20.0f;
|
||||
break;
|
||||
case HEAVYBLOCK_BREAKABLE:
|
||||
|
@ -471,7 +472,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_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED);
|
||||
this->actionFunc = BgHeavyBlock_DoNothing;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_hidan_curtain.h"
|
||||
#include "assets/objects/gameplay_keep/gameplay_keep.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgHidanCurtain_Init(Actor* thisx, PlayState* play);
|
||||
void BgHidanCurtain_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -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);
|
||||
|
||||
Player_SetCsActionWithHaltedActors(play, &this->dyna.actor, PLAYER_CSACTION_8);
|
||||
this->dyna.actor.flags |= ACTOR_FLAG_4;
|
||||
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
|
||||
this->actionFunc = BgHidanDalm_Shrink;
|
||||
this->dyna.actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND_TOUCH;
|
||||
this->dyna.actor.bgCheckFlags &= ~BGCHECKFLAG_WALL;
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_hidan_fslift.h"
|
||||
#include "assets/objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgHidanFslift_Init(Actor* thisx, PlayState* play);
|
||||
void BgHidanFslift_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -32,9 +32,9 @@ ActorProfile Bg_Hidan_Fslift_Profile = {
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 300, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 350, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 2000, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeScale, 300, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 350, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDistance, 2000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgHidanFslift_Init(Actor* thisx, PlayState* play) {
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#include "assets/objects/gameplay_keep/gameplay_keep.h"
|
||||
#include "assets/objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
typedef enum HidanFwbigMoveState {
|
||||
/* 0 */ FWBIG_MOVE,
|
||||
|
@ -64,7 +64,7 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeScale, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgHidanFwbig_Init(Actor* thisx, PlayState* play2) {
|
||||
|
@ -94,7 +94,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_CULLING_DISABLED;
|
||||
this->moveState = FWBIG_MOVE;
|
||||
this->actionFunc = BgHidanFwbig_WaitForPlayer;
|
||||
this->actor.world.pos.y = this->actor.home.pos.y - (2400.0f * this->actor.scale.y);
|
||||
|
|
|
@ -118,7 +118,7 @@ void BgHidanHrock_Init(Actor* thisx, PlayState* play) {
|
|||
this->actionFunc = func_808894A4;
|
||||
if (thisx->params == 0) {
|
||||
thisx->world.pos.y -= 2800.0f;
|
||||
thisx->uncullZoneForward = 3000.0f;
|
||||
thisx->cullingVolumeDistance = 3000.0f;
|
||||
} else if (thisx->params == 1) {
|
||||
thisx->world.pos.y -= 800.0f;
|
||||
} else if (thisx->params == 2) {
|
||||
|
@ -126,8 +126,8 @@ void BgHidanHrock_Init(Actor* thisx, PlayState* play) {
|
|||
}
|
||||
} else {
|
||||
if (thisx->params == 0) {
|
||||
thisx->flags |= ACTOR_FLAG_4 | ACTOR_FLAG_5;
|
||||
thisx->uncullZoneForward = 3000.0f;
|
||||
thisx->flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED;
|
||||
thisx->cullingVolumeDistance = 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_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED);
|
||||
Actor_PlaySfx(&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 & AC_HIT) {
|
||||
this->collider.base.acFlags &= ~AC_HIT;
|
||||
this->actionFunc = func_808894B0;
|
||||
this->dyna.actor.flags |= ACTOR_FLAG_4;
|
||||
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
|
||||
|
||||
if (this->dyna.actor.params == 0) {
|
||||
this->dyna.actor.room = -1;
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_hidan_kousi.h"
|
||||
#include "assets/objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgHidanKousi_Init(Actor* thisx, PlayState* play);
|
||||
void BgHidanKousi_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -106,9 +106,9 @@ void BgHidanKowarerukabe_OffsetActorYPos(BgHidanKowarerukabe* this) {
|
|||
}
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 2000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 2000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgHidanKowarerukabe_Init(Actor* thisx, PlayState* play) {
|
||||
|
|
|
@ -91,7 +91,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_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED;
|
||||
CollisionHeader_GetVirtual(&gFireTempleStoneBlock1Col, &colHeader);
|
||||
} else {
|
||||
CollisionHeader_GetVirtual(&gFireTempleStoneBlock2Col, &colHeader);
|
||||
|
@ -114,7 +114,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_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED;
|
||||
this->actionFunc = func_8088B990;
|
||||
}
|
||||
|
||||
|
@ -247,7 +247,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_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED);
|
||||
}
|
||||
|
||||
Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_BLOCK_BOUND);
|
||||
|
|
|
@ -110,8 +110,8 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 1500, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeScale, 400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1500, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
static void* sFireballsTexs[] = {
|
||||
|
|
|
@ -115,8 +115,8 @@ static CollisionCheckInfoInit sColChkInfoInit = { 1, 40, 240, MASS_IMMOVABLE };
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 1500, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeScale, 400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1500, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
static void* sFireballsTexs[] = {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_hidan_syoku.h"
|
||||
#include "assets/objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgHidanSyoku_Init(Actor* thisx, PlayState* play);
|
||||
void BgHidanSyoku_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -141,7 +141,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_CULLING_DISABLED;
|
||||
Player_SetCsActionWithHaltedActors(play, thisx, PLAYER_CSACTION_8);
|
||||
thisx->params = 1;
|
||||
this->actionFunc = BgIceObjects_Slide;
|
||||
|
@ -169,7 +169,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_CULLING_DISABLED;
|
||||
}
|
||||
thisx->params = 0;
|
||||
Player_SetCsActionWithHaltedActors(play, thisx, PLAYER_CSACTION_7);
|
||||
|
@ -206,7 +206,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_CULLING_DISABLED;
|
||||
Math_Vec3f_Copy(&this->targetPos, &thisx->home.pos);
|
||||
this->actionFunc = BgIceObjects_Idle;
|
||||
thisx->speed = 0.0f;
|
||||
|
|
|
@ -141,9 +141,9 @@ void BgIceShelter_RotateY(Vec3f* dest, Vec3f* src, s16 angle) {
|
|||
}
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 1200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgIceShelter_Init(Actor* thisx, PlayState* play) {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_ice_shutter.h"
|
||||
#include "assets/objects/object_ice_objects/object_ice_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgIceShutter_Init(Actor* thisx, PlayState* play);
|
||||
void BgIceShutter_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -53,7 +53,7 @@ ActorProfile Bg_Ice_Turara_Profile = {
|
|||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneScale, 600, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 600, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(gravity, -3, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(minVelocityY, -30, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_jya_1flift.h"
|
||||
#include "assets/objects/object_jya_obj/object_jya_obj.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgJya1flift_Init(Actor* thisx, PlayState* play);
|
||||
void BgJya1flift_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -61,9 +61,9 @@ static f32 sFinalPositions[] = { 443.0f, -50.0f };
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 1200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1200, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1200, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgJya1flift_InitDynapoly(BgJya1flift* this, PlayState* play, CollisionHeader* collision, s32 moveFlag) {
|
||||
|
|
|
@ -37,9 +37,9 @@ ActorProfile Bg_Jya_Amishutter_Profile = {
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgJyaAmishutter_InitDynaPoly(BgJyaAmishutter* this, PlayState* play, CollisionHeader* collision, s32 flag) {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_jya_bigmirror.h"
|
||||
#include "assets/objects/object_jya_obj/object_jya_obj.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
void BgJyaBigmirror_Init(Actor* thisx, PlayState* play);
|
||||
void BgJyaBigmirror_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -28,9 +28,9 @@ ActorProfile Bg_Jya_Block_Profile = {
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 333, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 1800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1500, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1500, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgJyaBlock_Init(Actor* thisx, PlayState* play) {
|
||||
|
|
|
@ -56,9 +56,9 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_3, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgJyaBombchuiwa_SetupCollider(BgJyaBombchuiwa* this, PlayState* play) {
|
||||
|
|
|
@ -57,9 +57,9 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgJyaBombiwa_SetupDynaPoly(BgJyaBombiwa* this, PlayState* play, CollisionHeader* collision, s32 flag) {
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include "assets/objects/object_jya_obj/object_jya_obj.h"
|
||||
#include "terminal.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgJyaCobra_Init(Actor* thisx, PlayState* play);
|
||||
void BgJyaCobra_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -94,9 +94,9 @@ static s32 D_80897518[] = { 0x80, 0xA0, 0xA0, 0x80 };
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
static Vec3s D_80897538 = { 0, -0x4000, 0 };
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "z_bg_jya_goroiwa.h"
|
||||
#include "assets/objects/object_goroiwa/object_goroiwa.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgJyaGoroiwa_Init(Actor* thisx, PlayState* play);
|
||||
void BgJyaGoroiwa_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -66,9 +66,9 @@ static CollisionCheckInfoInit sColChkInfoInit = { 1, 15, 0, MASS_HEAVY };
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgJyaGoroiwa_UpdateCollider(BgJyaGoroiwa* this) {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
|
||||
#include "assets/objects/object_jya_iron/object_jya_iron.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgJyaHaheniron_Init(Actor* thisx, PlayState* play);
|
||||
void BgJyaHaheniron_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -64,9 +64,9 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
static s16 sKakeraScales[] = { 5, 8, 11, 14, 17 };
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(minVelocityY, -15000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
|
||||
ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(minVelocityY, -15000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1000, ICHAIN_CONTINUE), ICHAIN_F32(cullingVolumeScale, 500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
static f32 D_80898794[] = { 0.13f, 0.1f, 0.1f };
|
||||
|
|
|
@ -72,9 +72,9 @@ static s16 D_80899530[] = { 48, 42, 36, 32, 28, 24, 20, 16 };
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
static CollisionHeader* sCollisionHeaders[] = { &gPillarCol, &gThroneCol };
|
||||
|
|
|
@ -35,9 +35,9 @@ ActorProfile Bg_Jya_Kanaami_Profile = {
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 700, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 700, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgJyaKanaami_InitDynaPoly(BgJyaKanaami* this, PlayState* play, CollisionHeader* collision, s32 flag) {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_jya_lift.h"
|
||||
#include "assets/objects/object_jya_obj/object_jya_obj.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgJyaLift_Init(Actor* thisx, PlayState* play);
|
||||
void BgJyaLift_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -36,9 +36,9 @@ ActorProfile Bg_Jya_Lift_Profile = {
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 1400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 1800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 2500, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 1800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 2500, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgJyaLift_InitDynapoly(BgJyaLift* this, PlayState* play, CollisionHeader* collisionHeader, s32 moveFlag) {
|
||||
|
|
|
@ -105,9 +105,9 @@ static Vec3f sVelocity = { 0.0f, 0.0f, 0.8f };
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 1200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1200, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1200, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgJyaMegami_InitDynaPoly(BgJyaMegami* this, PlayState* play, CollisionHeader* collision, s32 flag) {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "assets/objects/object_jya_obj/object_jya_obj.h"
|
||||
#include "terminal.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgJyaZurerukabe_Init(Actor* thisx, PlayState* play);
|
||||
void BgJyaZurerukabe_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -54,9 +54,9 @@ static s16 D_8089BA30[6] = {
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 1200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 1200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgJyaZurerukabe_InitDynaPoly(BgJyaZurerukabe* this, PlayState* play, CollisionHeader* collision, s32 flag) {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_menkuri_eye.h"
|
||||
#include "assets/objects/object_menkuri_objects/object_menkuri_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_5
|
||||
#define FLAGS ACTOR_FLAG_DRAW_CULLING_DISABLED
|
||||
|
||||
void BgMenkuriEye_Init(Actor* thisx, PlayState* play);
|
||||
void BgMenkuriEye_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_menkuri_kaiten.h"
|
||||
#include "assets/objects/object_menkuri_objects/object_menkuri_objects.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
void BgMenkuriKaiten_Init(Actor* thisx, PlayState* play);
|
||||
void BgMenkuriKaiten_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.h"
|
||||
#include "assets/objects/object_mizu_objects/object_mizu_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgMizuBwall_Init(Actor* thisx, PlayState* play);
|
||||
void BgMizuBwall_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -157,9 +157,9 @@ static CollisionHeader* sColHeaders[] = {
|
|||
};
|
||||
|
||||
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),
|
||||
};
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.h"
|
||||
#include "assets/objects/object_mizu_objects/object_mizu_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
#define MOVEBG_TYPE(params) PARAMS_GET_U((u16)(params), 12, 4)
|
||||
#define MOVEBG_FLAGS(params) PARAMS_GET_U((u16)(params), 0, 6)
|
||||
|
@ -62,9 +62,9 @@ static CollisionHeader* sColHeaders[] = {
|
|||
};
|
||||
|
||||
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),
|
||||
};
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "z_bg_mizu_shutter.h"
|
||||
#include "assets/objects/object_mizu_objects/object_mizu_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgMizuShutter_Init(Actor* thisx, PlayState* play);
|
||||
void BgMizuShutter_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -38,9 +38,9 @@ static Vec3f sDisplacements[] = {
|
|||
};
|
||||
|
||||
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),
|
||||
};
|
||||
|
||||
|
|
|
@ -29,8 +29,8 @@ ActorProfile Bg_Mizu_Uzu_Profile = {
|
|||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_mizu_water.h"
|
||||
#include "assets/objects/object_mizu_objects/object_mizu_objects.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
void BgMizuWater_Init(Actor* thisx, PlayState* play);
|
||||
void BgMizuWater_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include "assets/objects/object_mjin_flash/object_mjin_flash.h"
|
||||
#include "assets/objects/object_mjin_oka/object_mjin_oka.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgMjin_Init(Actor* thisx, PlayState* play);
|
||||
void BgMjin_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -40,9 +40,9 @@ extern UNK_TYPE D_06000000;
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_CONTINUE),
|
||||
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 s16 sObjectIds[] = { OBJECT_MJIN_FLASH, OBJECT_MJIN_DARK, OBJECT_MJIN_FLAME,
|
||||
|
@ -78,7 +78,7 @@ void func_808A0850(BgMjin* this, PlayState* play) {
|
|||
|
||||
if (Object_IsLoaded(&play->objectCtx, this->requiredObjectSlot)) {
|
||||
colHeader = NULL;
|
||||
this->dyna.actor.flags &= ~ACTOR_FLAG_4;
|
||||
this->dyna.actor.flags &= ~ACTOR_FLAG_UPDATE_CULLING_DISABLED;
|
||||
this->dyna.actor.objectSlot = this->requiredObjectSlot;
|
||||
Actor_SetObjectDependency(play, &this->dyna.actor);
|
||||
DynaPolyActor_Init(&this->dyna, 0);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "assets/objects/object_mori_objects/object_mori_objects.h"
|
||||
#include "quake.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgMoriBigst_Init(Actor* thisx, PlayState* play);
|
||||
void BgMoriBigst_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -41,8 +41,8 @@ ActorProfile Bg_Mori_Bigst_Profile = {
|
|||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 3000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 3000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 3000, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDistance, 3000, ICHAIN_CONTINUE), ICHAIN_F32(cullingVolumeScale, 3000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 3000, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32_DIV1000(minVelocityY, -12000, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "z_bg_mori_elevator.h"
|
||||
#include "assets/objects/object_mori_objects/object_mori_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgMoriElevator_Init(Actor* thisx, PlayState* play);
|
||||
void BgMoriElevator_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -32,9 +32,9 @@ ActorProfile Bg_Mori_Elevator_Profile = {
|
|||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 2000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 3000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDistance, 2000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 3000, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
|
|
|
@ -64,18 +64,18 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
};
|
||||
|
||||
static InitChainEntry sInitChainClasp[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_U8(attentionRangeType, ATTENTION_RANGE_3, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(lockOnArrowOffset, 40, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
static InitChainEntry sInitChainLadder[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_mori_hashira4.h"
|
||||
#include "assets/objects/object_mori_objects/object_mori_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgMoriHashira4_Init(Actor* thisx, PlayState* play);
|
||||
void BgMoriHashira4_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -34,9 +34,9 @@ ActorProfile Bg_Mori_Hashira4_Profile = {
|
|||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 700, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 700, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include "assets/objects/object_mori_hineri2a/object_mori_hineri2a.h"
|
||||
#include "assets/objects/object_mori_tex/object_mori_tex.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
void BgMoriHineri_Init(Actor* thisx, PlayState* play);
|
||||
void BgMoriHineri_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_mori_idomizu.h"
|
||||
#include "assets/objects/object_mori_objects/object_mori_objects.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
void BgMoriIdomizu_Init(Actor* thisx, PlayState* play);
|
||||
void BgMoriIdomizu_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -33,9 +33,9 @@ ActorProfile Bg_Mori_Kaitenkabe_Profile = {
|
|||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDistance, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "assets/objects/object_mori_objects/object_mori_objects.h"
|
||||
#include "quake.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
void BgMoriRakkatenjo_Init(Actor* thisx, PlayState* play);
|
||||
void BgMoriRakkatenjo_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -155,7 +155,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_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED;
|
||||
CollisionHeader_GetVirtual(&gPoSistersAmyBlockCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
if ((this->type == 0) && (this->index != 3)) {
|
||||
|
@ -308,7 +308,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_CULLING_DISABLED;
|
||||
this->dyna.actor.velocity.y = 0.0f;
|
||||
sBlocksAtRest++;
|
||||
if (this->type != 1) {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_relay_objects.h"
|
||||
#include "assets/objects/object_relay_objects/object_relay_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
typedef enum WindmillSetpiecesMode {
|
||||
/* 0 */ WINDMILL_ROTATING_GEAR,
|
||||
|
@ -62,7 +62,7 @@ void BgRelayObjects_Init(Actor* thisx, PlayState* play) {
|
|||
}
|
||||
Audio_PlayWindmillBgm();
|
||||
thisx->room = -1;
|
||||
thisx->flags |= ACTOR_FLAG_5;
|
||||
thisx->flags |= ACTOR_FLAG_DRAW_CULLING_DISABLED;
|
||||
if (D_808A9508 & 2) {
|
||||
thisx->params = 0xFF;
|
||||
Actor_Kill(thisx);
|
||||
|
@ -154,7 +154,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_CULLING_DISABLED;
|
||||
if (play->roomCtx.curRoom.num == 4) {
|
||||
gSaveContext.timerState = TIMER_STATE_UP_FREEZE;
|
||||
}
|
||||
|
|
|
@ -27,9 +27,9 @@ ActorProfile Bg_Spot00_Break_Profile = {
|
|||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneScale, 1200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 2000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 1200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDistance, 2000, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "assets/objects/object_spot00_objects/object_spot00_objects.h"
|
||||
#include "assets/objects/gameplay_keep/gameplay_keep.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
typedef enum DrawbridgeType {
|
||||
/* -1 */ DT_DRAWBRIDGE = -1,
|
||||
|
@ -40,9 +40,9 @@ ActorProfile Bg_Spot00_Hanebasi_Profile = {
|
|||
static f32 sTorchFlameScale = 0.0f;
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneScale, 550, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 2000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 5000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 550, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 2000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDistance, 5000, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_spot01_fusya.h"
|
||||
#include "assets/objects/object_spot01_objects/object_spot01_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgSpot01Fusya_Init(Actor* thisx, PlayState* play);
|
||||
void BgSpot01Fusya_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -30,9 +30,9 @@ ActorProfile Bg_Spot01_Fusya_Profile = {
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 12800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 1300, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1300, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 12800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 1300, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1300, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgSpot01Fusya_SetupAction(BgSpot01Fusya* this, BgSpot01FusyaActionFunc actionFunc) {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "assets/objects/object_spot01_objects/object_spot01_objects.h"
|
||||
#include "terminal.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgSpot01Idohashira_Init(Actor* thisx, PlayState* play);
|
||||
void BgSpot01Idohashira_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_spot01_idomizu.h"
|
||||
#include "assets/objects/object_spot01_objects/object_spot01_objects.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_5
|
||||
#define FLAGS ACTOR_FLAG_DRAW_CULLING_DISABLED
|
||||
|
||||
void BgSpot01Idomizu_Init(Actor* thisx, PlayState* play);
|
||||
void BgSpot01Idomizu_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_spot01_idosoko.h"
|
||||
#include "assets/objects/object_spot01_matoya/object_spot01_matoya.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgSpot01Idosoko_Init(Actor* thisx, PlayState* play);
|
||||
void BgSpot01Idosoko_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "assets/objects/object_spot01_matoya/object_spot01_matoya.h"
|
||||
#include "assets/objects/object_spot01_matoyab/object_spot01_matoyab.h"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
|
||||
|
||||
void BgSpot01Objects2_Init(Actor* thisx, PlayState* play);
|
||||
void BgSpot01Objects2_Destroy(Actor* thisx, PlayState* play);
|
||||
|
@ -31,9 +31,9 @@ ActorProfile Bg_Spot01_Objects2_Profile = {
|
|||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 12800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 2000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDistance, 12800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 2000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1500, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_spot02_objects.h"
|
||||
#include "assets/objects/object_spot02_objects/object_spot02_objects.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
void BgSpot02Objects_Init(Actor* thisx, PlayState* play);
|
||||
void BgSpot02Objects_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "z_bg_spot03_taki.h"
|
||||
#include "assets/objects/object_spot03_object/object_spot03_object.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
void BgSpot03Taki_Init(Actor* thisx, PlayState* play);
|
||||
void BgSpot03Taki_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -61,7 +61,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_CULLING_DISABLED;
|
||||
}
|
||||
}
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, thisx, colHeader);
|
||||
|
|
|
@ -148,7 +148,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_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED;
|
||||
|
||||
if (LINK_IS_ADULT && !GET_EVENTCHKINF(EVENTCHKINF_RESTORED_LAKE_HYLIA)) {
|
||||
if (!IS_CUTSCENE_LAYER) {
|
||||
|
@ -291,7 +291,7 @@ void BgSpot06Objects_LockWait(BgSpot06Objects* this, PlayState* play) {
|
|||
|
||||
if (this->collider.base.acFlags & AC_HIT) {
|
||||
this->timer = 130;
|
||||
this->dyna.actor.flags |= ACTOR_FLAG_4;
|
||||
this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED;
|
||||
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);
|
||||
|
@ -365,7 +365,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_CULLING_DISABLED;
|
||||
this->collider.elements[0].dim.worldSphere.radius = this->collider.elements[0].dim.modelSphere.radius * 2;
|
||||
this->actionFunc = BgSpot06Objects_LockFloat;
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "versions.h"
|
||||
#include "assets/objects/object_spot07_object/object_spot07_object.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
void BgSpot07Taki_Init(Actor* thisx, PlayState* play);
|
||||
void BgSpot07Taki_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
|
@ -88,9 +88,9 @@ static Vec3f D_808B08AC[] = {
|
|||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F(scale, 1, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 3200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 3200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void func_808B02D0(BgSpot08Bakudankabe* this, PlayState* play) {
|
||||
|
|
|
@ -278,9 +278,9 @@ void BgSpot08Iceblock_SpawnTwinFloe(BgSpot08Iceblock* this, PlayState* play) {
|
|||
}
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 3000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 2200, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 3000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 2200, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgSpot08Iceblock_Init(Actor* thisx, PlayState* play) {
|
||||
|
|
|
@ -41,15 +41,15 @@ static s32 (*D_808B1FA4[])(BgSpot09Obj* this, PlayState* play) = {
|
|||
};
|
||||
|
||||
static InitChainEntry sInitChain1[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 7200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 3000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 7200, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 7200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 3000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 7200, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
static InitChainEntry sInitChain2[] = {
|
||||
ICHAIN_F32(uncullZoneForward, 7200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1500, ICHAIN_STOP),
|
||||
ICHAIN_F32(cullingVolumeDistance, 7200, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeScale, 800, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(cullingVolumeDownward, 1500, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
static Gfx* sDLists[] = {
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#include "assets/objects/object_spot11_obj/object_spot11_obj.h"
|
||||
#include "assets/objects/gameplay_field_keep/gameplay_field_keep.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED)
|
||||
|
||||
void BgSpot11Bakudankabe_Init(Actor* thisx, PlayState* play);
|
||||
void BgSpot11Bakudankabe_Destroy(Actor* thisx, PlayState* play);
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue