Fix some drawing distance issues caused by AUTO_COLLISION_DISTANCE

This commit is contained in:
Arceveti
2021-12-17 13:56:33 -08:00
parent 10dfcd9433
commit 5d46bb1f8e
2 changed files with 11 additions and 8 deletions

View File

@@ -851,6 +851,7 @@ const BehaviorScript bhvExitPodiumWarp[] = {
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
SET_INT(oInteractType, INTERACT_WARP),
DROP_TO_FLOOR(),
SET_FLOAT(oDrawingDistance, 8000),
SET_FLOAT(oCollisionDistance, 8000),
LOAD_COLLISION_DATA(ttm_seg7_collision_podium_warp),
SET_INT(oIntangibleTimer, 0),
@@ -1468,7 +1469,7 @@ const BehaviorScript bhvBitfsTiltingInvertedPyramid[] = {
const BehaviorScript bhvSquishablePlatform[] = {
BEGIN(OBJ_LIST_SURFACE),
OR_LONG(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)),
OR_LONG(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_DONT_CALC_COLL_DIST | OBJ_FLAG_UCODE_LARGE)),
LOAD_COLLISION_DATA(bitfs_seg7_collision_squishable_platform),
SET_FLOAT(oCollisionDistance, 10000),
CALL_NATIVE(bhv_platform_normals_init),
@@ -2232,7 +2233,7 @@ const BehaviorScript bhvWaterLevelPillar[] = {
const BehaviorScript bhvDddWarp[] = {
BEGIN(OBJ_LIST_SURFACE),
OR_INT(oFlags, (OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
SET_FLOAT(oCollisionDistance, 30000),
BEGIN_LOOP(),
CALL_NATIVE(bhv_ddd_warp_loop),
@@ -2661,7 +2662,7 @@ const BehaviorScript bhvBowserSubDoor[] = {
BEGIN(OBJ_LIST_SURFACE),
OR_LONG(oFlags, (OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)),
LOAD_COLLISION_DATA(ddd_seg7_collision_bowser_sub_door),
SET_FLOAT(oDrawingDistance, 20000),
SET_FLOAT(oDrawingDistance, 20000),
SET_FLOAT(oCollisionDistance, 20000),
BEGIN_LOOP(),
CALL_NATIVE(bhv_bowsers_sub_loop),
@@ -2672,7 +2673,7 @@ const BehaviorScript bhvBowserSubDoor[] = {
const BehaviorScript bhvBowsersSub[] = {
BEGIN(OBJ_LIST_SURFACE),
OR_LONG(oFlags, (OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)),
SET_FLOAT(oDrawingDistance, 20000),
SET_FLOAT(oDrawingDistance, 20000),
SET_FLOAT(oCollisionDistance, 20000),
LOAD_COLLISION_DATA(ddd_seg7_collision_submarine),
BEGIN_LOOP(),
@@ -2721,6 +2722,7 @@ const BehaviorScript bhvInSunkenShip3[] = {
OR_LONG(oFlags, (OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)),
LOAD_COLLISION_DATA(jrb_seg7_collision_in_sunken_ship_3),
SET_HOME(),
SET_FLOAT(oDrawingDistance, 4000),
SET_FLOAT(oCollisionDistance, 4000),
BEGIN_LOOP(),
CALL_NATIVE(bhv_ship_part_3_loop),
@@ -2766,6 +2768,7 @@ const BehaviorScript bhvInSunkenShip2[] = {
LOAD_COLLISION_DATA(jrb_seg7_collision_in_sunken_ship_2),
// Sunken ship - common:
OR_LONG(oFlags, (OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)),
SET_FLOAT(oDrawingDistance, 4000),
SET_FLOAT(oCollisionDistance, 4000),
CALL(bhvSunkenShipSetRotation),
BEGIN_LOOP(),
@@ -4327,6 +4330,7 @@ const BehaviorScript bhvPyramidElevator[] = {
OR_LONG(oFlags, (OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)),
LOAD_COLLISION_DATA(ssl_seg7_collision_pyramid_elevator),
SET_HOME(),
SET_FLOAT(oDrawingDistance, 20000),
SET_FLOAT(oCollisionDistance, 20000),
CALL_NATIVE(bhv_pyramid_elevator_init),
BEGIN_LOOP(),
@@ -4349,6 +4353,7 @@ const BehaviorScript bhvPyramidTop[] = {
OR_LONG(oFlags, (OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)),
LOAD_COLLISION_DATA(ssl_seg7_collision_pyramid_top),
SET_HOME(),
SET_FLOAT(oDrawingDistance, 20000),
SET_FLOAT(oCollisionDistance, 20000),
CALL_NATIVE(bhv_pyramid_top_init),
BEGIN_LOOP(),
@@ -4478,7 +4483,7 @@ const BehaviorScript bhvBigBoulder[] = {
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
SET_FLOAT(oGraphYOffset, 180),
CALL_NATIVE(bhv_big_boulder_init),
SET_FLOAT(oCollisionDistance, 20000),
SET_FLOAT(oDrawingDistance, 20000),
BEGIN_LOOP(),
SET_INT(oIntangibleTimer, 0),
CALL_NATIVE(bhv_big_boulder_loop),
@@ -5574,6 +5579,7 @@ const BehaviorScript bhvOctagonalPlatformRotating[] = {
const BehaviorScript bhvAnimatesOnFloorSwitchPress[] = {
BEGIN(OBJ_LIST_SURFACE),
OR_LONG(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)),
SET_FLOAT(oDrawingDistance, 8000),
SET_FLOAT(oCollisionDistance, 8000),
CALL_NATIVE(bhv_animates_on_floor_switch_press_init),
BEGIN_LOOP(),

View File

@@ -3,9 +3,6 @@
void bhv_squishable_platform_loop(void) {
o->header.gfx.scale[1] = (sins(o->oBitfsPlatformTimer) + 1.0f) * 0.3f + 0.4f;
o->oBitfsPlatformTimer += 0x80;
#ifdef AUTO_COLLISION_DISTANCE
o->oFlags &= ~OBJ_FLAG_DONT_CALC_COLL_DIST;
#endif
}
void bhv_bitfs_sinking_platform_loop(void) {