Some optimizations + cleanup

This commit is contained in:
Arceveti
2021-09-28 21:13:26 -07:00
parent 868dd8f97b
commit 28e8d99707
22 changed files with 339 additions and 619 deletions

View File

@@ -13,11 +13,6 @@
s16 identityMtx[4][4] = { { 1, 0, 0, 0 }, { 0, 1, 0, 0 }, { 0, 0, 1, 0 }, { 0, 0, 0, 1 } };
s16 zeroMtx[4][4] = { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } };
Vec3f gVec3fZero = { 0.0f, 0.0f, 0.0f };
Vec3s gVec3sZero = { 0, 0, 0 };
Vec3f gVec3fOne = { 1.0f, 1.0f, 1.0f };
UNUSED Vec3s gVec3sOne = { 1, 1, 1 };
/**
* Initialize a geo node with a given type. Sets all links such that there
* are no siblings, parent or children for this node.

View File

@@ -376,11 +376,6 @@ extern struct GraphNode *gCurGraphNodeList[];
extern s16 gCurGraphNodeIndex;
extern Vec3f gVec3fZero;
extern Vec3s gVec3sZero;
extern Vec3f gVec3fOne;
extern Vec3s gVec3sOne;
void init_scene_graph_node_links(struct GraphNode *graphNode, s32 type);
struct GraphNodeRoot *init_graph_node_root(struct AllocOnlyPool *pool, struct GraphNodeRoot *graphNode,

View File

@@ -12,8 +12,40 @@
#include "config.h"
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wreturn-local-addr"
Vec3f gVec3fX = { 1.0f, 0.0f, 0.0f };
Vec3f gVec3fY = { 0.0f, 1.0f, 0.0f };
Vec3f gVec3fZ = { 0.0f, 0.0f, 1.0f };
Vec3f gVec3fNX = { -1.0f, 0.0f, 0.0f };
Vec3f gVec3fNY = { 0.0f, -1.0f, 0.0f };
Vec3f gVec3fNZ = { 0.0f, 0.0f, -1.0f };
Vec3f gVec3fZero = { 0.0f, 0.0f, 0.0f };
Vec3f gVec3fOne = { 1.0f, 1.0f, 1.0f };
Vec3s gVec3sZero = { 0, 0, 0 };
Vec3i gVec3iZero = { 0, 0, 0 };
Vec3s gVec3sOne = { 1, 1, 1 };
/// From Wiseguy
static inline s32 roundf(f32 in) {
f32 tmp;
s32 out;
__asm__("round.w.s %0,%1" : "=f" (tmp) : "f" (in));
__asm__("mfc1 %0,%1" : "=r" (out) : "f" (tmp));
return out;
}
// static inline float absf(float in) {
// f32 out;
// __asm__("abs.s %0,%1" : "=f" (out) : "f" (in));
// return out;
// }
f32 absf(f32 x) {
if (x >= 0) {
return x;
} else {
return -x;
}
}
/// Returns the lowest of three values.
s32 min_3i(s32 a0, s32 a1, s32 a2) { if (a1 < a0) a0 = a1; if (a2 < a0) a0 = a2; return a0; }
@@ -112,7 +144,7 @@ void vec3f_cross(Vec3f dest, Vec3f a, Vec3f b) {
/// Scale vector 'dest' so it has length 1
void vec3f_normalize(Vec3f dest) {
f32 mag = sqrtf(sqr(dest[0]) + sqr(dest[1]) + sqr(dest[2]));
if (mag > __FLT_EPSILON__) {
if (mag > NEAR_ZERO) {
register f32 invsqrt = 1.0f / mag;
vec3_mul_val(dest, invsqrt);
} else {
@@ -125,7 +157,7 @@ void vec3f_normalize(Vec3f dest) {
/// Scale vector 'dest' so it has length -1
void vec3f_normalize_negative(Vec3f dest) {
f32 mag = sqrtf(sqr(dest[0]) + sqr(dest[1]) + sqr(dest[2]));
if (mag > __FLT_EPSILON__) {
if (mag > NEAR_ZERO) {
register f32 invsqrt = -1.0f / mag;
vec3_mul_val(dest, invsqrt);
} else {
@@ -135,7 +167,6 @@ void vec3f_normalize_negative(Vec3f dest) {
}
}
#pragma GCC diagnostic pop
struct CopyMe {
f32 x; f32 y; f32 z; f32 w;
f32 x1; f32 y1; f32 z1; f32 w1;
@@ -173,33 +204,31 @@ void mtxf_translate(Mat4 dest, Vec3f b) {
void mtxf_rot_trans_mul(Vec3s rot, Vec3f trans, Mat4 dest, Mat4 src) {
register f32 sx = sins(rot[0]);
register f32 cx = coss(rot[0]);
register f32 sy = sins(rot[1]);
register f32 cy = coss(rot[1]);
register f32 sz = sins(rot[2]);
register f32 cz = coss(rot[2]);
register Vec3f entry;
entry[0] = cy * cz;
entry[1] = cy * sz;
entry[0] = (cy * cz);
entry[1] = (cy * sz);
entry[2] = -sy;
dest[0][0] = entry[0] * src[0][0] + entry[1] * src[1][0] + entry[2] * src[2][0];
dest[0][1] = entry[0] * src[0][1] + entry[1] * src[1][1] + entry[2] * src[2][1];
dest[0][2] = entry[0] * src[0][2] + entry[1] * src[1][2] + entry[2] * src[2][2];
entry[1] = sx * sy;
entry[1] = (sx * sy);
entry[0] = (entry[1] * cz) - (cx * sz);
entry[1] = (entry[1] * sz) + (cx * cz);
entry[2] = sx * cy;
entry[2] = (sx * cy);
dest[1][0] = entry[0] * src[0][0] + entry[1] * src[1][0] + entry[2] * src[2][0];
dest[1][1] = entry[0] * src[0][1] + entry[1] * src[1][1] + entry[2] * src[2][1];
dest[1][2] = entry[0] * src[0][2] + entry[1] * src[1][2] + entry[2] * src[2][2];
entry[1] = cx * sy;
entry[1] = (cx * sy);
entry[0] = (entry[1] * cz) + (sx * sz);
entry[1] = (entry[1] * sz) - (sx * cz);
entry[2] = cx * cy;
entry[2] = (cx * cy);
dest[2][0] = entry[0] * src[0][0] + entry[1] * src[1][0] + entry[2] * src[2][0];
dest[2][1] = entry[0] * src[0][1] + entry[1] * src[1][1] + entry[2] * src[2][1];
dest[2][2] = entry[0] * src[0][2] + entry[1] * src[1][2] + entry[2] * src[2][2];
@@ -223,7 +252,7 @@ void mtxf_lookat(Mat4 mtx, Vec3f from, Vec3f to, s32 roll) {
register f32 dx = (to[0] - from[0]);
register f32 dz = (to[2] - from[2]);
register f32 invLength = sqrtf(sqr(dx) + sqr(dz));
invLength = -(1.0f / MAX(invLength, __FLT_EPSILON__));
invLength = -(1.0f / MAX(invLength, NEAR_ZERO));
dx *= invLength;
dz *= invLength;
f32 sr = sins(roll);
@@ -256,30 +285,26 @@ void mtxf_lookat(Mat4 mtx, Vec3f from, Vec3f to, s32 roll) {
* axis, and then translates.
*/
void mtxf_rotate_zxy_and_translate(Mat4 dest, Vec3f translate, Vec3s rotate) {
register f32 sx = sins(rotate[0]);
register f32 cx = coss(rotate[0]);
register f32 sy = sins(rotate[1]);
register f32 cy = coss(rotate[1]);
register f32 sz = sins(rotate[2]);
register f32 cz = coss(rotate[2]);
dest[0][0] = cy * cz + sx * sy * sz;
dest[1][0] = -cy * sz + sx * sy * cz;
dest[2][0] = cx * sy;
dest[3][0] = translate[0];
dest[0][1] = cx * sz;
dest[1][1] = cx * cz;
register f32 sx = sins(rotate[0]);
register f32 cx = coss(rotate[0]);
register f32 sy = sins(rotate[1]);
register f32 cy = coss(rotate[1]);
register f32 sz = sins(rotate[2]);
register f32 cz = coss(rotate[2]);
register f32 cycz = (cy * cz);
register f32 cysz = (cy * sz);
register f32 sycz = (sy * cz);
register f32 sysz = (sy * sz);
dest[0][0] = ((sx * sysz) + cycz);
dest[1][0] = ((sx * sycz) - cysz);
dest[2][0] = (cx * sy);
dest[0][1] = (cx * sz);
dest[1][1] = (cx * cz);
dest[2][1] = -sx;
dest[3][1] = translate[1];
dest[0][2] = -sy * cz + sx * cy * sz;
dest[1][2] = sy * sz + sx * cy * cz;
dest[0][2] = ((sx * cysz) - sycz);
dest[1][2] = ((sx * cycz) + sysz);
dest[2][2] = cx * cy;
dest[3][2] = translate[2];
vec3_copy(dest[3], translate);
dest[0][3] = dest[1][3] = dest[2][3] = 0.;
((u32 *) dest)[15] = 0x3F800000;
}
@@ -289,33 +314,29 @@ void mtxf_rotate_zxy_and_translate(Mat4 dest, Vec3f translate, Vec3s rotate) {
* axis, and then translates.
*/
void mtxf_rotate_xyz_and_translate(Mat4 dest, Vec3f b, Vec3s c) {
register f32 sx = sins(c[0]);
register f32 cx = coss(c[0]);
register f32 sy = sins(c[1]);
register f32 cy = coss(c[1]);
register f32 sz = sins(c[2]);
register f32 cz = coss(c[2]);
dest[0][0] = cy * cz;
dest[0][1] = cy * sz;
register f32 sx = sins(c[0]);
register f32 cx = coss(c[0]);
register f32 sy = sins(c[1]);
register f32 cy = coss(c[1]);
register f32 sz = sins(c[2]);
register f32 cz = coss(c[2]);
register f32 cxsz = (cx * sz);
register f32 cxcz = (cx * cz);
register f32 sxsz = (sx * sz);
register f32 sxcz = (sx * cz);
dest[0][0] = (cy * cz);
dest[0][1] = (cy * sz);
dest[0][2] = -sy;
dest[1][0] = ((sxcz * sy) - cxsz);
dest[1][1] = ((sxsz * sy) + cxcz);
dest[1][2] = (sx * cy);
dest[2][0] = ((cxcz * sy) + sxsz);
dest[2][1] = ((cxsz * sy) - sxcz);
dest[2][2] = (cx * cy);
dest[0][3] = 0;
dest[1][0] = sx * sy * cz - cx * sz;
dest[1][1] = sx * sy * sz + cx * cz;
dest[1][2] = sx * cy;
dest[1][3] = 0;
dest[2][0] = cx * sy * cz + sx * sz;
dest[2][1] = cx * sy * sz - sx * cz;
dest[2][2] = cx * cy;
dest[2][3] = 0;
dest[3][0] = b[0];
dest[3][1] = b[1];
dest[3][2] = b[2];
vec3_copy(dest[3], b);
((u32 *) dest)[15] = 0x3F800000;
}
@@ -333,10 +354,17 @@ void mtxf_billboard(Mat4 dest, Mat4 mtx, Vec3f position, s32 angle) {
*temp = 0;
temp++;
}
dest[0][0] = coss(angle);
dest[0][1] = sins(angle);
dest[1][0] = -dest[0][1];
dest[1][1] = dest[0][0];
if (angle == 0x0) {
dest[0][0] = 1;
dest[0][1] = 0;
dest[1][0] = 0;
dest[1][1] = 1;
} else {
dest[0][0] = coss(angle);
dest[0][1] = sins(angle);
dest[1][0] = -dest[0][1];
dest[1][1] = dest[0][0];
}
((u32 *) dest)[10] = 0x3F800000;
dest[2][3] = 0;
((u32 *) dest)[15] = 0x3F800000;
@@ -344,7 +372,7 @@ void mtxf_billboard(Mat4 dest, Mat4 mtx, Vec3f position, s32 angle) {
temp = (f32 *)dest;
temp2 = (f32 *)mtx;
for (i = 0; i < 3; i++) {
temp[12] = temp2[0] * position[0] + temp2[4] * position[1] + temp2[8] * position[2] + temp2[12];
temp[12] = (temp2[0] * position[0]) + (temp2[4] * position[1]) + (temp2[8] * position[2]) + temp2[12];
temp++;
temp2++;
}

View File

@@ -5,9 +5,20 @@
#include "types.h"
#define NEAR_ZERO 0.00001f
#define NEARER_ZERO 0.000001f
#define NEAR_ONE 0.99999f
#define NEAR_ZERO __FLT_EPSILON__
#define NEAR_ONE (1.0f - __FLT_EPSILON__)
extern Vec3f gVec3fX;
extern Vec3f gVec3fY;
extern Vec3f gVec3fZ;
extern Vec3f gVec3fNX;
extern Vec3f gVec3fNY;
extern Vec3f gVec3fNZ;
extern Vec3f gVec3fZero;
extern Vec3s gVec3sZero;
extern Vec3i gVec3iZero;
extern Vec3f gVec3fOne;
extern Vec3s gVec3sOne;
/**
* Converts an angle in degrees to sm64's s16 angle units. For example, DEGREES(90) == 0x4000
@@ -433,6 +444,7 @@ extern f32 gSineTable[];
} \
}
f32 absf(f32 x);
s32 min_3i(s32 a0, s32 a1, s32 a2);
f32 min_3f(f32 a0, f32 a1, f32 a2);
s32 max_3i(s32 a0, s32 a1, s32 a2);

File diff suppressed because it is too large Load Diff

View File

@@ -29,7 +29,7 @@ void bhv_bbh_tilting_trap_platform_loop(void) {
// the platform more dangerous. This code will not work correctly
// without the oAction changes above, since oTimer will not ever
// reset to 0 without them.
if ((absi(o->oFaceAnglePitch) < 3000) || (o->oTimer >= 16)) {
if ((ABSI(o->oFaceAnglePitch) < 3000) || (o->oTimer >= 16)) {
// Make the platform return to the horizontal at a speed of
// 200 angle units/frame, and clamp it to 0 if it's within 200 units of 0.
o->oAngleVelPitch = 0;

View File

@@ -854,6 +854,17 @@ void bhv_boo_in_castle_loop(void) {
cur_obj_move_using_fvel_and_gravity();
}
static s8 sBbhStairJiggleOffsets[] = { -8, 8, -4, 4 };
s32 jiggle_bbh_stair(s32 index) {
if (index >= 4 || index < 0) {
return TRUE;
}
o->oPosY += sBbhStairJiggleOffsets[index];
return FALSE;
}
void bhv_boo_staircase(void) {
f32 targetY = 0.0f;

View File

@@ -508,10 +508,9 @@ void bhv_wooden_post_update(void) {
if (o->oDistanceToMario > 400.0f) {
o->oTimer = o->oWoodenPostTotalMarioAngle = 0;
} else {
// When mario runs around the post 3 times within 200 frames, spawn
// coins
// When mario runs around the post 3 times within 200 frames, spawn coins
o->oWoodenPostTotalMarioAngle += (s16)(o->oAngleToMario - o->oWoodenPostPrevAngleToMario);
if (absi(o->oWoodenPostTotalMarioAngle) > 0x30000 && o->oTimer < 200) {
if (ABSI(o->oWoodenPostTotalMarioAngle) > 0x30000 && o->oTimer < 200) {
obj_spawn_loot_yellow_coins(o, 5, 20.0f);
set_object_respawn_info_bits(o, 1);
}

View File

@@ -38,8 +38,9 @@ void checkerboard_plat_act_move_y(UNUSED s32 unused, f32 vel, s32 time) {
void checkerboard_plat_act_rotate(s32 nextAction, s16 pitch) {
o->oVelY = 0.0f;
o->oAngleVelPitch = pitch;
if (o->oTimer + 1 == 0x8000 / absi(pitch))
if (o->oTimer + 1 == 0x8000 / ABSI(pitch)) {
o->oAction = nextAction;
}
o->oCheckerBoardPlatformRotateAction = nextAction;
}
@@ -72,12 +73,13 @@ void bhv_checkerboard_platform_loop(void) {
checkerboard_plat_act_rotate(1, -512);
break;
}
o->oMoveAnglePitch += absi(o->oAngleVelPitch);
o->oFaceAnglePitch += absi(o->oAngleVelPitch);
o->oMoveAnglePitch += ABSI(o->oAngleVelPitch);
o->oFaceAnglePitch += ABSI(o->oAngleVelPitch);
o->oFaceAngleYaw = o->oMoveAngleYaw;
if (o->oMoveAnglePitch != 0) {
o->oForwardVel = signum_positive(o->oAngleVelPitch) * sins(o->oMoveAnglePitch) * radius;
o->oVelY = signum_positive(o->oAngleVelPitch) * coss(o->oMoveAnglePitch) * radius;
f32 mul = (o->oAngleVelPitch >= 0) ? 1.0f : -1.0f;
o->oForwardVel = mul * sins(o->oMoveAnglePitch) * radius;
o->oVelY = mul * coss(o->oMoveAnglePitch) * radius;
}
if (o->oCheckerBoardPlatformRotateAction == 1) {
o->oAngleVelPitch = 0;

View File

@@ -101,7 +101,7 @@ void coffin_act_idle(void) {
// It also checks in the case Mario is squished, so he doesn't get permanently squished.
if (o->oTimer > 60
&& (o->oDistanceToMario > 100.0f || gMarioState->action == ACT_SQUISHED)) {
if (gMarioObject->oPosY - o->oPosY < 200.0f && absf(distForwards) < 140.0f) {
if (gMarioObject->oPosY - o->oPosY < 200.0f && ABSF(distForwards) < 140.0f) {
if (distSideways < 150.0f && distSideways > -450.0f) {
cur_obj_play_sound_2(SOUND_GENERAL_BUTTON_PRESS_2_LOWPRIO);
o->oAction = COFFIN_ACT_STAND_UP;

View File

@@ -65,12 +65,13 @@ void bhv_jrb_sliding_box_loop(void) {
o->oJrbSlidingBoxAdditiveZ = sins(o->oJrbSlidingBoxAngle) * 20.0f;
o->oJrbSlidingBoxAngle += 0x100;
o->oParentRelativePosZ += o->oJrbSlidingBoxAdditiveZ;
if (gMarioObject->oPosY > 1000.0f)
if (absf(o->oJrbSlidingBoxAdditiveZ) > 3.0f)
cur_obj_play_sound_1(SOUND_AIR_ROUGH_SLIDE);
if ((gMarioObject->oPosY > 1000.0f) && (ABSF(o->oJrbSlidingBoxAdditiveZ) > 3.0f)) {
cur_obj_play_sound_1(SOUND_AIR_ROUGH_SLIDE);
}
obj_set_hitbox(o, &sSkullSlidingBoxHitbox);
if (!(o->oJrbSlidingBoxAngle & 0x7FFF))
if (!(o->oJrbSlidingBoxAngle & 0x7FFF)) {
cur_obj_become_tangible();
}
if (obj_check_if_collided_with_object(o, gMarioObject)) {
o->oInteractStatus = 0;
cur_obj_become_intangible();

View File

@@ -104,9 +104,9 @@ static void klepto_change_target(void) {
dx = gMarioObject->oPosX - sKleptoTargetPositions[i][0];
dz = gMarioObject->oPosZ - sKleptoTargetPositions[i][2];
targetDist = sqrtf(sqr(dx) + sqr(dz));
if (targetDist < minTargetDist) {
minTargetDist = targetDist;
targetDist = (sqr(dx) + sqr(dz));
if (targetDist < sqr(minTargetDist)) {
minTargetDist = sqrtf(targetDist);
newTarget = i;
}
}
@@ -114,7 +114,7 @@ static void klepto_change_target(void) {
newTarget = random_u16() % 3;
}
o->oKleptoHomeYOffset = 400 * absi(newTarget - o->oKleptoTargetNumber);
o->oKleptoHomeYOffset = 400 * ABSI(newTarget - o->oKleptoTargetNumber);
o->oKleptoTargetNumber = newTarget;
o->oHomeX = sKleptoTargetPositions[o->oKleptoTargetNumber][0];

View File

@@ -182,7 +182,7 @@ static void mr_blizzard_act_rotate(void) {
// If Dizziness is not 0 and Mr. Blizzard's FaceRollAngle has a magnitude greater than
// 67.5 degrees move to death action, delete the snowball, and make Mr. Blizzard intangible.
if (o->oMrBlizzardDizziness != 0.0f) {
if (absi(o->oFaceAngleRoll) > 0x3000) {
if (ABSI(o->oFaceAngleRoll) > 0x3000) {
o->oAction = MR_BLIZZARD_ACT_DEATH;
o->prevObj = o->oMrBlizzardHeldObj = NULL;
cur_obj_become_intangible();

View File

@@ -31,7 +31,7 @@ void bhv_seesaw_platform_init(void) {
void bhv_seesaw_platform_update(void) {
o->oFaceAnglePitch += (s32) o->oSeesawPlatformPitchVel;
if (absf(o->oSeesawPlatformPitchVel) > 10.0f) {
if (ABSF(o->oSeesawPlatformPitchVel) > 10.0f) {
cur_obj_play_sound_1(SOUND_ENV_BOAT_ROCKING1);
}

View File

@@ -20,9 +20,9 @@ void bhv_sl_snowman_wind_loop(void) {
// Mario has come close, begin dialog.
} else if (o->oSubAction == SL_SNOWMAN_WIND_ACT_TALKING) {
if (cur_obj_update_dialog(MARIO_DIALOG_LOOK_UP, DIALOG_FLAG_TEXT_DEFAULT, DIALOG_153, 0))
if (cur_obj_update_dialog(MARIO_DIALOG_LOOK_UP, DIALOG_FLAG_TEXT_DEFAULT, DIALOG_153, 0)) {
o->oSubAction++;
}
// Blowing, spawn wind particles (SL_SNOWMAN_WIND_ACT_BLOWING)
} else if (o->oDistanceToMario < 1500.0f && absf(gMarioObject->oPosY - o->oHomeY) < 500.0f) {
// Point towards Mario, but only within 0x1500 angle units of the original angle.

View File

@@ -343,7 +343,7 @@ s32 update_hang_moving(struct MarioState *m) {
// Reduce Mario's forward speed by the turn amount, so Mario won't move off sideward from the intended angle when turning around.
m->forwardVel *= ((coss(dYaw) + 1.0f) / 2.0f); // 1.0f is turning forwards, 0.0f is turning backwards
// Increase turn speed if forwardVel is lower and intendedMag is higher
turnRange *= (2.0f - (ABSF(m->forwardVel) / MAX(m->intendedMag, __FLT_EPSILON__))); // 1.0f front, 2.0f back
turnRange *= (2.0f - (ABSF(m->forwardVel) / MAX(m->intendedMag, NEAR_ZERO))); // 1.0f front, 2.0f back
}
m->faceAngle[1] = approach_angle(m->faceAngle[1], m->intendedYaw, turnRange);
#else

View File

@@ -468,7 +468,7 @@ void update_walking_speed(struct MarioState *m) {
// Reduce Mario's forward speed by the turn amount, so Mario won't move off sideward from the intended angle when turning around.
m->forwardVel *= ((coss(dYaw) + 1.0f) / 2.0f); // 1.0f is turning forwards, 0.0f is turning backwards
// Increase turn speed if forwardVel is lower and intendedMag is higher
turnRange *= (2.0f - (ABSF(m->forwardVel) / MAX(m->intendedMag, __FLT_EPSILON__))); // 1.0f front, 2.0f back
turnRange *= (2.0f - (ABSF(m->forwardVel) / MAX(m->intendedMag, NEAR_ZERO))); // 1.0f front, 2.0f back
}
m->faceAngle[1] = approach_angle(m->faceAngle[1], m->intendedYaw, turnRange);
#elif GROUND_TURN_MODE == 2 // similar to mode 1, but a bit further from vanilla, and allows instant turnaround if Mario is moving slower than a certain threshold.

View File

@@ -386,10 +386,9 @@ static s32 obj_smooth_turn(s16 *angleVel, s32 *angle, s16 targetAngle, f32 targe
s16 currentSpeed;
s16 currentAngle = (s16)(*angle);
*angleVel =
approach_s16_symmetric(*angleVel, (targetAngle - currentAngle) * targetSpeedProportion, accel);
*angleVel = approach_s16_symmetric(*angleVel, (targetAngle - currentAngle) * targetSpeedProportion, accel);
currentSpeed = absi(*angleVel);
currentSpeed = ABSI(*angleVel);
clamp_s16(&currentSpeed, minSpeed, maxSpeed);
*angle = approach_angle(*angle, targetAngle, currentSpeed);

File diff suppressed because it is too large Load Diff

View File

@@ -219,9 +219,6 @@ struct GraphNode_802A45E4 {
};
void obj_set_hitbox(struct Object *obj, struct ObjectHitbox *hitbox);
s32 signum_positive(s32 x);
f32 absf(f32 x);
s32 absi(s32 a0);
s32 cur_obj_wait_then_blink(s32 timeUntilBlinking, s32 numBlinks);
s32 cur_obj_is_mario_ground_pounding_platform(void);
void spawn_mist_particles(void);
@@ -233,7 +230,6 @@ s32 cur_obj_progress_direction_table(void);
void cur_obj_scale_over_time(s32 axis, s32 times, f32 start, f32 end);
void cur_obj_set_pos_to_home_with_debug(void);
s32 cur_obj_is_mario_on_platform(void);
s32 jiggle_bbh_stair(s32 timer);
void cur_obj_call_action_function(void (*actionFunctions[])(void));
void spawn_base_star_with_no_lvl_exit(void);
s32 cur_obj_mario_far_away(void);

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