Name a bunch of stuff

This commit is contained in:
Arceveti
2021-09-13 19:57:26 -07:00
parent 0ffdab82ce
commit 423e42d697
101 changed files with 1165 additions and 1332 deletions

View File

@@ -504,14 +504,14 @@ void geo_layout_cmd_node_translation(void) {
void geo_layout_cmd_node_rotation(void) {
struct GraphNodeRotation *graphNode;
Vec3s sp2c;
Vec3s angle;
s16 drawingLayer = 0;
s16 params = cur_geo_cmd_u8(0x01);
s16 *cmdPos = (s16 *) gGeoLayoutCommand;
void *displayList = NULL;
cmdPos = read_vec3s_angle(sp2c, &cmdPos[1]);
cmdPos = read_vec3s_angle(angle, &cmdPos[1]);
if (params & 0x80) {
displayList = *(void **) &cmdPos[0];
@@ -519,7 +519,7 @@ void geo_layout_cmd_node_rotation(void) {
cmdPos += 2 << CMD_SIZE_SHIFT;
}
graphNode = init_graph_node_rotation(gGraphNodePool, NULL, drawingLayer, displayList, sp2c);
graphNode = init_graph_node_rotation(gGraphNodePool, NULL, drawingLayer, displayList, angle);
register_scene_graph_node(&graphNode->node);

View File

@@ -154,25 +154,25 @@ struct ObjectWarpNode *area_get_warp_node(u8 id) {
}
struct ObjectWarpNode *area_get_warp_node_from_params(struct Object *o) {
u8 sp1F = (o->oBehParams & 0x00FF0000) >> 16;
u8 id = (o->oBehParams & 0x00FF0000) >> 16;
return area_get_warp_node(sp1F);
return area_get_warp_node(id);
}
void load_obj_warp_nodes(void) {
struct ObjectWarpNode *sp24;
struct Object *sp20 = (struct Object *) gObjParentGraphNode.children;
struct ObjectWarpNode *warpNode;
struct Object *children = (struct Object *) gObjParentGraphNode.children;
do {
struct Object *sp1C = sp20;
struct Object *obj = children;
if (sp1C->activeFlags != ACTIVE_FLAG_DEACTIVATED && get_mario_spawn_type(sp1C) != 0) {
sp24 = area_get_warp_node_from_params(sp1C);
if (sp24 != NULL) {
sp24->object = sp1C;
if (obj->activeFlags != ACTIVE_FLAG_DEACTIVATED && get_mario_spawn_type(obj) != 0) {
warpNode = area_get_warp_node_from_params(obj);
if (warpNode != NULL) {
warpNode->object = obj;
}
}
} while ((sp20 = (struct Object *) sp20->header.gfx.node.next)
} while ((children = (struct Object *) children->header.gfx.node.next)
!= (struct Object *) gObjParentGraphNode.children);
}

View File

@@ -55,7 +55,7 @@ struct WFRotatingPlatformData {
s16 collisionDistance;
};
struct Struct8032F34C {
struct TumblingBridgeParams {
s16 numBridgeSections;
s16 bridgeRelativeStartingXorZ;
s16 platformWidth;
@@ -63,18 +63,18 @@ struct Struct8032F34C {
const void *segAddr;
};
struct Struct802C0DF0 {
u8 unk0;
struct ExclamationBoxContents {
u8 id;
u8 unk1;
u8 unk2;
u8 behParams;
ModelID model;
const BehaviorScript *behavior;
};
struct Struct8032F754 {
s32 unk0;
Vec3f unk1;
f32 unk2;
struct CheckerBoardPlatformInitPosition {
s32 relPosZ;
Vec3f scale;
f32 radius;
};
struct OpenableGrill {
@@ -159,15 +159,15 @@ void spawn_mist_particles_variable(s32 count, s32 offsetY, f32 size) {
// not sure what this is doing here. not in a behavior file.
Gfx *geo_move_mario_part_from_parent(s32 run, UNUSED struct GraphNode *node, Mat4 mtx) {
Mat4 sp20;
struct Object *sp1C;
Mat4 mtx2;
struct Object *obj;
if (run == TRUE) {
sp1C = (struct Object *) gCurGraphNodeObject;
if (sp1C == gMarioObject && sp1C->prevObj != NULL) {
create_transformation_from_matrices(sp20, mtx, *gCurGraphNodeCamera->matrixPtr);
obj_update_pos_from_parent_transformation(sp20, sp1C->prevObj);
obj_set_gfx_pos_from_pos(sp1C->prevObj);
obj = (struct Object *) gCurGraphNodeObject;
if (obj == gMarioObject && obj->prevObj != NULL) {
create_transformation_from_matrices(mtx2, mtx, *gCurGraphNodeCamera->matrixPtr);
obj_update_pos_from_parent_transformation(mtx2, obj->prevObj);
obj_set_gfx_pos_from_pos(obj->prevObj);
}
}
return NULL;
@@ -232,15 +232,15 @@ void vec3f_copy_2(Vec3f dest, Vec3f src) {
#include "behaviors/piranha_plant.inc.c"
#include "behaviors/bowser_puzzle_piece.inc.c"
s32 set_obj_anim_with_accel_and_sound(s16 a0, s16 a1, s32 a2) {
f32 sp1C;
if ((sp1C = o->header.gfx.animInfo.animAccel / (f32) 0x10000) == 0)
sp1C = 1.0f;
if (cur_obj_check_anim_frame_in_range(a0, sp1C) || cur_obj_check_anim_frame_in_range(a1, sp1C)) {
cur_obj_play_sound_2(a2);
return 1;
s32 set_obj_anim_with_accel_and_sound(s16 frame1, s16 frame2, s32 sound) {
f32 range;
if ((range = o->header.gfx.animInfo.animAccel / (f32) 0x10000) == 0)
range = 1.0f;
if (cur_obj_check_anim_frame_in_range(frame1, range) || cur_obj_check_anim_frame_in_range(frame2, range)) {
cur_obj_play_sound_2(sound);
return TRUE;
}
return 0;
return FALSE;
}
#include "behaviors/tuxie.inc.c"

View File

@@ -51,7 +51,7 @@ void bhv_fish_group_loop(void);
void bhv_cannon_base_loop(void);
void bhv_cannon_barrel_loop(void);
void bhv_cannon_base_unused_loop(void);
void common_anchor_mario_behavior(f32 sp28, f32 sp2C, s32 sp30);
void common_anchor_mario_behavior(f32 forwardVel, f32 yVel, s32 flag);
void bhv_chuckya_loop(void);
void bhv_chuckya_anchor_mario_loop(void);
void bhv_rotating_platform_loop(void);
@@ -104,7 +104,7 @@ void bhv_beta_moving_flames_loop(void);
void bhv_rr_rotating_bridge_platform_loop(void);
void bhv_flamethrower_loop(void);
void bhv_flamethrower_flame_loop(void);
void bhv_bouncing_fireball_loop(void);
void bhv_bouncing_fireball_spawner_loop(void);
void bhv_bouncing_fireball_flame_loop(void);
void bhv_bowser_shock_wave_loop(void);
void bhv_flame_mario_loop(void);

View File

@@ -1,11 +1,11 @@
// animated_floor_switch.inc.c
struct Struct80331A54 {
const void *unk00;
s16 unk04;
struct FloorSwitchTriggeredAnimationFrame {
const void *collisionDataPtr;
s16 model;
};
struct Struct80331A54 D_80331A54[][5] = {
struct FloorSwitchTriggeredAnimationFrame sFloorSwitchTriggeredAnimationFrames[][5] = {
{
{ bits_seg7_collision_0701B734, MODEL_BITS_STAIRCASE_FRAME4 },
{ bits_seg7_collision_0701B59C, MODEL_BITS_STAIRCASE_FRAME3 },
@@ -71,7 +71,7 @@ void bhv_animates_on_floor_switch_press_loop(void) {
}
o->collisionData = segmented_to_virtual(
D_80331A54[o->oBehParams2ndByte][o->oFloorSwitchPressAnimationUnkF8 / 2].unk00);
sFloorSwitchTriggeredAnimationFrames[o->oBehParams2ndByte][o->oFloorSwitchPressAnimationUnkF8 / 2].collisionDataPtr);
cur_obj_set_model(D_80331A54[o->oBehParams2ndByte][o->oFloorSwitchPressAnimationUnkF8 / 2].unk04);
cur_obj_set_model(sFloorSwitchTriggeredAnimationFrames[o->oBehParams2ndByte][o->oFloorSwitchPressAnimationUnkF8 / 2].model);
}

View File

@@ -65,11 +65,8 @@ void bobomb_check_interactions(void) {
}
void bobomb_act_patrol(void) {
UNUSED s8 filler[4];
UNUSED s16 sp22;
s16 collisionFlags;
sp22 = o->header.gfx.animInfo.animFrame;
o->oForwardVel = 5.0;
collisionFlags = object_step();
@@ -82,15 +79,14 @@ void bobomb_act_patrol(void) {
}
void bobomb_act_chase_mario(void) {
UNUSED u8 filler[4];
s16 sp1a, collisionFlags;
s16 animFrame, collisionFlags;
sp1a = ++o->header.gfx.animInfo.animFrame;
animFrame = ++o->header.gfx.animInfo.animFrame;
o->oForwardVel = 20.0;
collisionFlags = object_step();
if (sp1a == 5 || sp1a == 16)
if (animFrame == 5 || animFrame == 16)
cur_obj_play_sound_2(SOUND_OBJ_BOBOMB_WALK);
obj_turn_toward_object(o, gMarioObject, 16, 0x800);
@@ -284,8 +280,7 @@ void bhv_bobomb_buddy_init(void) {
}
void bobomb_buddy_act_idle(void) {
UNUSED u8 filler[4];
s16 sp1a = o->header.gfx.animInfo.animFrame;
s16 animFrame = o->header.gfx.animInfo.animFrame;
UNUSED s16 collisionFlags = 0;
o->oBobombBuddyPosXCopy = o->oPosX;
@@ -294,7 +289,7 @@ void bobomb_buddy_act_idle(void) {
collisionFlags = object_step();
if ((sp1a == 5) || (sp1a == 16))
if ((animFrame == 5) || (animFrame == 16))
cur_obj_play_sound_2(SOUND_OBJ_BOBOMB_WALK);
if (o->oDistanceToMario < 1000.0f)
@@ -382,8 +377,8 @@ void bobomb_buddy_act_talk(void) {
}
void bobomb_buddy_act_turn_to_talk(void) {
s16 sp1e = o->header.gfx.animInfo.animFrame;
if ((sp1e == 5) || (sp1e == 16))
s16 animFrame = o->header.gfx.animInfo.animFrame;
if ((animFrame == 5) || (animFrame == 16))
cur_obj_play_sound_2(SOUND_OBJ_BOBOMB_WALK);
o->oMoveAngleYaw = approach_s16_symmetric(o->oMoveAngleYaw, o->oAngleToMario, 0x1000);

View File

@@ -335,30 +335,30 @@ static s32 boo_get_attack_status(void) {
}
// boo idle/chasing movement?
static void boo_chase_mario(f32 a0, s16 a1, f32 a2) {
f32 sp1C;
s16 sp1A;
static void boo_chase_mario(f32 minDY, s16 yawIncrement, f32 mul) {
f32 dy;
s16 targetYaw;
if (boo_vanish_or_appear()) {
o->oInteractType = 0x8000;
if (cur_obj_lateral_dist_from_mario_to_home() > 1500.0f) {
sp1A = cur_obj_angle_to_home();
targetYaw = cur_obj_angle_to_home();
} else {
sp1A = o->oAngleToMario;
targetYaw = o->oAngleToMario;
}
cur_obj_rotate_yaw_toward(sp1A, a1);
cur_obj_rotate_yaw_toward(targetYaw, yawIncrement);
o->oVelY = 0.0f;
if (mario_is_in_air_action() == 0) {
sp1C = o->oPosY - gMarioObject->oPosY;
if (a0 < sp1C && sp1C < 500.0f) {
dy = o->oPosY - gMarioObject->oPosY;
if (minDY < dy && dy < 500.0f) {
o->oVelY = increment_velocity_toward_range(o->oPosY, gMarioObject->oPosY + 50.0f, 10.f, 2.0f);
}
}
cur_obj_set_vel_from_mario_vel(10.0f - o->oBooNegatedAggressiveness, a2);
cur_obj_set_vel_from_mario_vel(10.0f - o->oBooNegatedAggressiveness, mul);
if (o->oForwardVel != 0.0f) {
boo_oscillate(FALSE);
@@ -539,18 +539,18 @@ static void big_boo_act_0(void) {
static void big_boo_act_1(void) {
s32 attackStatus;
s16 sp22;
f32 sp1C;
s16 yawIncrement;
f32 mul;
if (o->oHealth == 3) {
sp22 = 0x180; sp1C = 0.5f;
yawIncrement = 0x180; mul = 0.5f;
} else if (o->oHealth == 2) {
sp22 = 0x240; sp1C = 0.6f;
yawIncrement = 0x240; mul = 0.6f;
} else {
sp22 = 0x300; sp1C = 0.8f;
yawIncrement = 0x300; mul = 0.8f;
}
boo_chase_mario(-100.0f, sp22, sp1C);
boo_chase_mario(-100.0f, yawIncrement, mul);
attackStatus = boo_get_attack_status();

View File

@@ -44,7 +44,7 @@ void bhv_big_boulder_loop(void) {
}
void bhv_big_boulder_generator_loop(void) {
struct Object *sp1C;
struct Object *boulderObj;
if (o->oTimer >= 256) {
o->oTimer = 0;
}
@@ -54,13 +54,13 @@ void bhv_big_boulder_generator_loop(void) {
if (is_point_within_radius_of_mario(o->oPosX, o->oPosY, o->oPosZ, 6000)) {
if ((o->oTimer & 0x3F) == 0) {
sp1C = spawn_object(o, MODEL_HMC_ROLLING_ROCK, bhvBigBoulder);
sp1C->oMoveAngleYaw = random_float() * 4096.0f;
boulderObj = spawn_object(o, MODEL_HMC_ROLLING_ROCK, bhvBigBoulder);
boulderObj->oMoveAngleYaw = random_float() * 4096.0f;
}
} else {
if ((o->oTimer & 0x7F) == 0) {
sp1C = spawn_object(o, MODEL_HMC_ROLLING_ROCK, bhvBigBoulder);
sp1C->oMoveAngleYaw = random_float() * 4096.0f;
boulderObj = spawn_object(o, MODEL_HMC_ROLLING_ROCK, bhvBigBoulder);
boulderObj->oMoveAngleYaw = random_float() * 4096.0f;
}
}
}

View File

@@ -27,20 +27,20 @@ void bhv_bouncing_fireball_flame_loop(void) {
o->oInteractStatus = 0;
}
void bhv_bouncing_fireball_loop(void) {
struct Object *sp2C;
f32 sp28;
void bhv_bouncing_fireball_spawner_loop(void) {
struct Object *flameObj;
f32 scale;
switch (o->oAction) {
case 0:
if (o->oDistanceToMario < 2000.0f)
o->oAction = 1;
break;
case 1:
sp2C = spawn_object(o, MODEL_RED_FLAME, bhvBouncingFireballFlame);
sp28 = (10 - o->oTimer) * 0.5;
obj_scale_xyz(sp2C, sp28, sp28, sp28);
flameObj = spawn_object(o, MODEL_RED_FLAME, bhvBouncingFireballFlame);
scale = (10 - o->oTimer) * 0.5;
obj_scale_xyz(flameObj, scale, scale, scale);
if (o->oTimer == 0)
obj_become_tangible(sp2C);
obj_become_tangible(flameObj);
if (o->oTimer > 10)
o->oAction++;
break;

View File

@@ -78,16 +78,16 @@ void bowling_ball_set_waypoints(void) {
void bhv_bowling_ball_roll_loop(void) {
s16 collisionFlags;
s32 sp18;
s32 pathResult;
#ifdef AVOID_UB
sp18 = 0;
pathResult = 0;
#endif
bowling_ball_set_waypoints();
collisionFlags = object_step();
//! Uninitialzed parameter, but the parameter is unused in the called function
sp18 = cur_obj_follow_path(sp18);
pathResult = cur_obj_follow_path(pathResult);
o->oBowlingBallTargetYaw = o->oPathedTargetYaw;
o->oMoveAngleYaw = approach_s16_symmetric(o->oMoveAngleYaw, o->oBowlingBallTargetYaw, 0x400);
@@ -97,7 +97,7 @@ void bhv_bowling_ball_roll_loop(void) {
bowling_ball_set_hitbox();
if (sp18 == -1) {
if (pathResult == -1) {
if (is_point_within_radius_of_mario(o->oPosX, o->oPosY, o->oPosZ, 7000)) {
spawn_mist_particles();
spawn_mist_particles_variable(0, 0, 92.0f);
@@ -111,15 +111,15 @@ void bhv_bowling_ball_roll_loop(void) {
}
void bhv_bowling_ball_initializeLoop(void) {
s32 sp1c;
s32 pathResult;
#ifdef AVOID_UB
sp1c = 0;
pathResult = 0;
#endif
bowling_ball_set_waypoints();
//! Uninitialzed parameter, but the parameter is unused in the called function
sp1c = cur_obj_follow_path(sp1c);
pathResult = cur_obj_follow_path(pathResult);
o->oMoveAngleYaw = o->oPathedTargetYaw;

View File

@@ -1,10 +1,10 @@
// bowser_key_cutscene.inc.c
Gfx *geo_scale_bowser_key(s32 run, struct GraphNode *node, UNUSED f32 mtx[4][4]) {
struct Object *sp4;
Gfx *geo_scale_bowser_key(s32 run, struct GraphNode *node, UNUSED Mat4 mtx) {
struct Object *nodeObj;
if (run == TRUE) {
sp4 = (struct Object *) gCurGraphNodeObject;
((struct GraphNodeScale *) node->next)->scale = sp4->oBowserKeyScale;
nodeObj = (struct Object *) gCurGraphNodeObject;
((struct GraphNodeScale *) node->next)->scale = nodeObj->oBowserKeyScale;
}
return 0;
}

View File

@@ -119,7 +119,7 @@ void bhv_lll_bowser_puzzle_spawn_pieces(f32 pieceWidth) {
*/
void bhv_lll_bowser_puzzle_loop(void) {
s32 i;
UNUSED struct Object *sp28;
UNUSED struct Object *coinObj;
switch (o->oAction) {
case BOWSER_PUZZLE_ACT_SPAWN_PIECES:
bhv_lll_bowser_puzzle_spawn_pieces(480.0f);
@@ -129,7 +129,7 @@ void bhv_lll_bowser_puzzle_loop(void) {
if (o->oBowserPuzzleCompletionFlags == 3 && o->oDistanceToMario < 1000.0f) {
// Spawn 5 coins.
for (i = 0; i < 5; i++)
sp28 = spawn_object(o, MODEL_YELLOW_COIN, bhvSingleCoinGetsSpawned);
coinObj = spawn_object(o, MODEL_YELLOW_COIN, bhvSingleCoinGetsSpawned);
// Reset completion flags (even though they never get checked again).
o->oBowserPuzzleCompletionFlags = 0;
@@ -219,13 +219,9 @@ void bhv_lll_bowser_puzzle_piece_move(f32 xOffset, f32 zOffset, s32 duration, UN
}
void bhv_lll_bowser_puzzle_piece_idle(void) {
UNUSED s32 sp4;
// For the first 24 frames, do nothing.
if (o->oTimer < 24)
sp4 = 0;
else
// Then advance to the next action.
// Then advance to the next action.
if (o->oTimer >= 24)
o->oBowserPuzzlePieceContinuePerformingAction = 0;
}

View File

@@ -23,9 +23,9 @@ void bhv_breakable_box_small_init(void) {
}
void small_breakable_box_spawn_dust(void) {
struct Object *sp24 = spawn_object(o, MODEL_SMOKE, bhvSmoke);
sp24->oPosX += (s32)(random_float() * 80.0f) - 40;
sp24->oPosZ += (s32)(random_float() * 80.0f) - 40;
struct Object *smokeObj = spawn_object(o, MODEL_SMOKE, bhvSmoke);
smokeObj->oPosX += (s32)(random_float() * 80.0f) - 40;
smokeObj->oPosZ += (s32)(random_float() * 80.0f) - 40;
}
void small_breakable_box_act_move(void) {

View File

@@ -13,13 +13,11 @@ static struct ObjectHitbox sBubbaHitbox = {
};
void bubba_act_0(void) {
f32 sp24;
sp24 = cur_obj_lateral_dist_to_home();
f32 lateralDistToHome = cur_obj_lateral_dist_to_home();
treat_far_home_as_mario(2000.0f);
o->oAnimState = 0;
o->oBubbaUnk1AC = obj_get_pitch_to_home(sp24);
o->oBubbaUnk1AC = obj_get_pitch_to_home(lateralDistToHome);
approach_f32_ptr(&o->oBubbaUnkF4, 5.0f, 0.5f);
@@ -57,8 +55,8 @@ void bubba_act_1(void) {
} else if (o->oBubbaUnk100 < 15) {
o->oAnimState = 1;
} else if (o->oBubbaUnk100 == 20) {
s16 val06 = 10000 - (s16)(20.0f * (find_water_level(o->oPosX, o->oPosZ) - o->oPosY));
o->oBubbaUnk1AC -= val06;
s16 targetPitch = 10000 - (s16)(20.0f * (find_water_level(o->oPosX, o->oPosZ) - o->oPosY));
o->oBubbaUnk1AC -= targetPitch;
o->oMoveAnglePitch = o->oBubbaUnk1AC;
o->oBubbaUnkF4 = 40.0f;
obj_compute_vel_from_move_pitch(o->oBubbaUnkF4);
@@ -72,12 +70,12 @@ void bubba_act_1(void) {
}
} else {
if (abs_angle_diff(gMarioObject->oFaceAngleYaw, o->oAngleToMario) < 0x3000) {
s16 val04 = 0x4000 - atan2s(800.0f, o->oDistanceToMario - 800.0f);
s16 targetDYaw = 0x4000 - atan2s(800.0f, o->oDistanceToMario - 800.0f);
if ((s16)(o->oMoveAngleYaw - o->oAngleToMario) < 0) {
val04 = -val04;
targetDYaw = -targetDYaw;
}
o->oBubbaUnk1AE = o->oAngleToMario + val04;
o->oBubbaUnk1AE = o->oAngleToMario + targetDYaw;
} else {
o->oBubbaUnk1AE = o->oAngleToMario;
}
@@ -96,8 +94,6 @@ void bubba_act_1(void) {
}
void bhv_bubba_loop(void) {
UNUSED s32 unused;
o->oInteractionSubtype &= ~INT_SUBTYPE_EATS_MARIO;
o->oBubbaUnk104 = obj_turn_pitch_toward_mario(120.0f, 0);
@@ -135,9 +131,9 @@ void bhv_bubba_loop(void) {
} else {
approach_f32_ptr(&o->oBubbaUnk108, 0.0f, 4.0f);
if ((o->oBubbaUnk10C -= o->oBubbaUnk108) > 1.0f) {
s16 sp36 = random_u16();
s16 rand = random_u16();
o->oBubbaUnk10C -= 1.0f;
spawn_object_relative(0, 150.0f * coss(sp36), 0x64, 150.0f * sins(sp36), o,
spawn_object_relative(0, 150.0f * coss(rand), 0x64, 150.0f * sins(rand), o,
MODEL_WHITE_PARTICLE_SMALL, bhvSmallParticleSnow);
}
}

View File

@@ -21,8 +21,8 @@ void bullet_bill_act_0(void) {
}
void bullet_bill_act_1(void) {
s16 sp1E = abs_angle_diff(o->oAngleToMario, o->oMoveAngleYaw);
if (sp1E < 0x2000 && 400.0f < o->oDistanceToMario && o->oDistanceToMario < 1500.0f)
s16 dYaw = abs_angle_diff(o->oAngleToMario, o->oMoveAngleYaw);
if (dYaw < 0x2000 && 400.0f < o->oDistanceToMario && o->oDistanceToMario < 1500.0f)
o->oAction = 2;
}

View File

@@ -143,10 +143,10 @@ void bully_backup_check(s16 collisionFlags) {
}
void bully_play_stomping_sound(void) {
s16 sp26 = o->header.gfx.animInfo.animFrame;
s16 animFrame = o->header.gfx.animInfo.animFrame;
switch (o->oAction) {
case BULLY_ACT_PATROL:
if (sp26 == 0 || sp26 == 12) {
if (animFrame == 0 || animFrame == 12) {
if (o->oBehParams2ndByte == BULLY_BP_SIZE_SMALL)
cur_obj_play_sound_2(SOUND_OBJ_BULLY_WALK);
else
@@ -156,7 +156,7 @@ void bully_play_stomping_sound(void) {
case BULLY_ACT_CHASE_MARIO:
case BULLY_ACT_BACK_UP:
if (sp26 == 0 || sp26 == 5) {
if (animFrame == 0 || animFrame == 5) {
if (o->oBehParams2ndByte == BULLY_BP_SIZE_SMALL)
cur_obj_play_sound_2(SOUND_OBJ_BULLY_WALK);
else
@@ -264,14 +264,9 @@ void bhv_bully_loop(void) {
set_object_visibility(o, 3000);
}
// sp38 = arg0
// sp3c = arg1
// sp40 = arg2
// sp44 = arg3
void big_bully_spawn_minion(s32 arg0, s32 arg1, s32 arg2, s16 arg3) {
void big_bully_spawn_minion(s32 x, s32 y, s32 z, s16 ry) {
struct Object *bully =
spawn_object_abs_with_rot(o, 0, MODEL_BULLY, bhvSmallBully, arg0, arg1, arg2, 0, arg3, 00);
spawn_object_abs_with_rot(o, 0, MODEL_BULLY, bhvSmallBully, x, y, z, 0, ry, 0);
bully->oBullySubtype = BULLY_STYPE_MINION;
bully->oBehParams2ndByte = BULLY_BP_SIZE_SMALL;
}

View File

@@ -10,8 +10,6 @@ void bhv_butterfly_init(void) {
o->oHomeZ = o->oPosZ;
}
// sp28 = speed
void butterfly_step(s32 speed) {
struct FloorGeometry *sp24;
s16 yaw = o->oMoveAngleYaw;

View File

@@ -26,7 +26,7 @@ void cap_switch_act_1(void) {
}
void cap_switch_act_2(void) {
s32 sp1C;
s32 response;
if (o->oTimer < 5) {
cur_obj_scale_over_time(2, 4, 0.5f, 0.1f);
if (o->oTimer == 4) {
@@ -41,9 +41,9 @@ void cap_switch_act_2(void) {
//! Neither of these flags are defined in this function so they do nothing.
// On an extra note, there's a specific check for this cutscene and
// there's no dialog defined since the cutscene itself calls the dialog.
sp1C = cur_obj_update_dialog_with_cutscene(MARIO_DIALOG_LOOK_FRONT,
response = cur_obj_update_dialog_with_cutscene(MARIO_DIALOG_LOOK_FRONT,
(DIALOG_FLAG_TEXT_RESPONSE | DIALOG_FLAG_UNK_CAPSWITCH), CUTSCENE_CAP_SWITCH_PRESS, 0);
if (sp1C)
if (response)
o->oAction = 3;
}
}

View File

@@ -7,10 +7,10 @@ void bhv_floor_trap_in_castle_loop(void) {
}
void bhv_castle_floor_trap_init(void) {
struct Object *sp2C;
sp2C = spawn_object_relative(0, -358, 0, 0, o, MODEL_CASTLE_BOWSER_TRAP, bhvFloorTrapInCastle);
sp2C = spawn_object_relative(0, 358, 0, 0, o, MODEL_CASTLE_BOWSER_TRAP, bhvFloorTrapInCastle);
sp2C->oMoveAngleYaw += 0x8000;
struct Object *floorTrapObj;
floorTrapObj = spawn_object_relative(0, -358, 0, 0, o, MODEL_CASTLE_BOWSER_TRAP, bhvFloorTrapInCastle);
floorTrapObj = spawn_object_relative(0, 358, 0, 0, o, MODEL_CASTLE_BOWSER_TRAP, bhvFloorTrapInCastle);
floorTrapObj->oMoveAngleYaw += 0x8000;
}
void bhv_castle_floor_trap_open_detect(void) {

View File

@@ -1,46 +1,46 @@
// checkerboard_platform.c.inc
struct Struct8032F754 D_8032F754[] = { { 145, { 0.7f, 1.5f, 0.7f }, 7.0f },
{ 235, { 1.2f, 2.0f, 1.2f }, 11.6f } };
struct CheckerBoardPlatformInitPosition sCheckerBoardPlatformInitPositions[] = { { 145, { 0.7f, 1.5f, 0.7f }, 7.0f },
{ 235, { 1.2f, 2.0f, 1.2f }, 11.6f } };
void bhv_checkerboard_elevator_group_init(void) {
s32 sp3C;
s32 sp38;
s32 sp34;
s32 relativePosY;
s32 relativePosZ;
s32 type;
s32 i;
struct Object *sp2C;
struct Object *platformObj;
if (o->oBehParams2ndByte == 0)
o->oBehParams2ndByte = 65;
sp3C = o->oBehParams2ndByte * 10;
sp34 = (o->oBehParams >> 24) & 0XFF;
relativePosY = o->oBehParams2ndByte * 10;
type = (o->oBehParams >> 24) & 0XFF;
for (i = 0; i < 2; i++) {
if (i == 0)
sp38 = -D_8032F754[sp34].unk0;
relativePosZ = -sCheckerBoardPlatformInitPositions[type].relPosZ;
else
sp38 = D_8032F754[sp34].unk0;
relativePosZ = sCheckerBoardPlatformInitPositions[type].relPosZ;
sp2C = spawn_object_relative(i, 0, i * sp3C, sp38, o, MODEL_CHECKERBOARD_PLATFORM,
platformObj = spawn_object_relative(i, 0, i * relativePosY, relativePosZ, o, MODEL_CHECKERBOARD_PLATFORM,
bhvCheckerboardPlatformSub);
sp2C->oCheckerBoardPlatformUnk1AC = D_8032F754[sp34].unk2;
vec3f_copy_2(sp2C->header.gfx.scale, D_8032F754[sp34].unk1);
platformObj->oCheckerBoardPlatformUnk1AC = sCheckerBoardPlatformInitPositions[type].radius;
vec3f_copy_2(platformObj->header.gfx.scale, sCheckerBoardPlatformInitPositions[type].scale);
}
}
void checkerboard_plat_act_move_y(UNUSED s32 unused, f32 vel, s32 a2) {
void checkerboard_plat_act_move_y(UNUSED s32 unused, f32 vel, s32 time) {
o->oMoveAnglePitch = 0;
o->oAngleVelPitch = 0;
o->oForwardVel = 0.0f;
o->oVelY = vel;
if (o->oTimer > a2)
if (o->oTimer > time)
o->oAction++;
}
void checkerboard_plat_act_rotate(s32 a0, s16 a1) {
void checkerboard_plat_act_rotate(s32 nextAction, s16 pitch) {
o->oVelY = 0.0f;
o->oAngleVelPitch = a1;
if (o->oTimer + 1 == 0x8000 / absi(a1))
o->oAction = a0;
o->oCheckerBoardPlatformUnkF8 = a0;
o->oAngleVelPitch = pitch;
if (o->oTimer + 1 == 0x8000 / absi(pitch))
o->oAction = nextAction;
o->oCheckerBoardPlatformUnkF8 = nextAction;
}
void bhv_checkerboard_platform_init(void) {
@@ -48,7 +48,7 @@ void bhv_checkerboard_platform_init(void) {
}
void bhv_checkerboard_platform_loop(void) {
f32 sp24 = o->oCheckerBoardPlatformUnk1AC;
f32 radius = o->oCheckerBoardPlatformUnk1AC;
o->oCheckerBoardPlatformUnkF8 = 0;
if (o->oDistanceToMario < 1000.0f)
cur_obj_play_sound_1(SOUND_ENV_ELEVATOR4);
@@ -76,8 +76,8 @@ void bhv_checkerboard_platform_loop(void) {
o->oFaceAnglePitch += absi(o->oAngleVelPitch);
o->oFaceAngleYaw = o->oMoveAngleYaw;
if (o->oMoveAnglePitch != 0) {
o->oForwardVel = signum_positive(o->oAngleVelPitch) * sins(o->oMoveAnglePitch) * sp24;
o->oVelY = signum_positive(o->oAngleVelPitch) * coss(o->oMoveAnglePitch) * sp24;
o->oForwardVel = signum_positive(o->oAngleVelPitch) * sins(o->oMoveAnglePitch) * radius;
o->oVelY = signum_positive(o->oAngleVelPitch) * coss(o->oMoveAnglePitch) * radius;
}
if (o->oCheckerBoardPlatformUnkF8 == 1) {
o->oAngleVelPitch = 0;

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