You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
Name object fields
This commit is contained in:
@@ -508,8 +508,8 @@ const BehaviorScript bhvBetaChestLid[] = {
|
||||
const BehaviorScript bhvBubbleParticleSpawner[] = {
|
||||
BEGIN(OBJ_LIST_DEFAULT),
|
||||
DISABLE_RENDERING(),
|
||||
SET_RANDOM_INT(oWaterObjUnkF4, /*Minimum*/ 2, /*Range*/ 9),
|
||||
DELAY_VAR(oWaterObjUnkF4),
|
||||
SET_RANDOM_INT(oWaterObjScaleXAngle, /*Minimum*/ 2, /*Range*/ 9),
|
||||
DELAY_VAR(oWaterObjScaleXAngle),
|
||||
SPAWN_CHILD(/*Model*/ MODEL_BUBBLE, /*Behavior*/ bhvSmallWaterWave),
|
||||
PARENT_BIT_CLEAR(oActiveParticleFlags, ACTIVE_PARTICLE_BUBBLE),
|
||||
DEACTIVATE(),
|
||||
@@ -520,12 +520,12 @@ const BehaviorScript bhvBubbleMaybe[] = {
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
BILLBOARD(),
|
||||
CALL_NATIVE(bhv_bubble_wave_init),
|
||||
SET_RANDOM_FLOAT(oWaterObjUnkF4, /*Minimum*/ -75, /*Range*/ 150),
|
||||
SET_RANDOM_FLOAT(oWaterObjUnkF8, /*Minimum*/ -75, /*Range*/ 150),
|
||||
SET_RANDOM_FLOAT(oWaterObjUnkFC, /*Minimum*/ -75, /*Range*/ 150),
|
||||
SUM_FLOAT(/*Dest*/ oPosX, /*Value 1*/ oPosX, /*Value 2*/ oWaterObjUnkF4),
|
||||
SUM_FLOAT(/*Dest*/ oPosZ, /*Value 1*/ oPosZ, /*Value 2*/ oWaterObjUnkF8),
|
||||
SUM_FLOAT(/*Dest*/ oPosY, /*Value 1*/ oPosY, /*Value 2*/ oWaterObjUnkFC),
|
||||
SET_RANDOM_FLOAT(oWaterObjScaleXAngle, /*Minimum*/ -75, /*Range*/ 150),
|
||||
SET_RANDOM_FLOAT(oWaterObjScaleYAngle, /*Minimum*/ -75, /*Range*/ 150),
|
||||
SET_RANDOM_FLOAT(oWaterObjScaleXAngleVel, /*Minimum*/ -75, /*Range*/ 150),
|
||||
SUM_FLOAT(/*Dest*/ oPosX, /*Value 1*/ oPosX, /*Value 2*/ oWaterObjScaleXAngle),
|
||||
SUM_FLOAT(/*Dest*/ oPosZ, /*Value 1*/ oPosZ, /*Value 2*/ oWaterObjScaleYAngle),
|
||||
SUM_FLOAT(/*Dest*/ oPosY, /*Value 1*/ oPosY, /*Value 2*/ oWaterObjScaleXAngleVel),
|
||||
SET_INT(oAnimState, -1),
|
||||
BEGIN_REPEAT(60),
|
||||
ADD_INT(oAnimState, 1),
|
||||
@@ -539,12 +539,12 @@ const BehaviorScript bhvSmallWaterWave[] = {
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
BILLBOARD(),
|
||||
CALL_NATIVE(bhv_bubble_wave_init),
|
||||
SET_RANDOM_FLOAT(oWaterObjUnkF4, /*Minimum*/ -50, /*Range*/ 100),
|
||||
SET_RANDOM_FLOAT(oWaterObjUnkF8, /*Minimum*/ -50, /*Range*/ 100),
|
||||
SUM_FLOAT(/*Dest*/ oPosX, /*Value 1*/ oPosX, /*Value 2*/ oWaterObjUnkF4),
|
||||
SUM_FLOAT(/*Dest*/ oPosZ, /*Value 1*/ oPosZ, /*Value 2*/ oWaterObjUnkF8),
|
||||
SET_RANDOM_FLOAT(oWaterObjUnkFC, /*Minimum*/ 0, /*Range*/ 50),
|
||||
SUM_FLOAT(/*Dest*/ oPosY, /*Value 1*/ oPosY, /*Value 2*/ oWaterObjUnkFC),
|
||||
SET_RANDOM_FLOAT(oWaterObjScaleXAngle, /*Minimum*/ -50, /*Range*/ 100),
|
||||
SET_RANDOM_FLOAT(oWaterObjScaleYAngle, /*Minimum*/ -50, /*Range*/ 100),
|
||||
SUM_FLOAT(/*Dest*/ oPosX, /*Value 1*/ oPosX, /*Value 2*/ oWaterObjScaleXAngle),
|
||||
SUM_FLOAT(/*Dest*/ oPosZ, /*Value 1*/ oPosZ, /*Value 2*/ oWaterObjScaleYAngle),
|
||||
SET_RANDOM_FLOAT(oWaterObjScaleXAngleVel, /*Minimum*/ 0, /*Range*/ 50),
|
||||
SUM_FLOAT(/*Dest*/ oPosY, /*Value 1*/ oPosY, /*Value 2*/ oWaterObjScaleXAngleVel),
|
||||
SET_INT(oAnimState, -1),
|
||||
CALL(bhvSmallWaterWave398),
|
||||
BEGIN_REPEAT(60),
|
||||
@@ -557,10 +557,10 @@ const BehaviorScript bhvSmallWaterWave[] = {
|
||||
const BehaviorScript bhvSmallWaterWave398[] = {
|
||||
ADD_INT(oAnimState, 1),
|
||||
ADD_FLOAT(oPosY, 7),
|
||||
SET_RANDOM_FLOAT(oWaterObjUnkF4, /*Minimum*/ -2, /*Range*/ 5),
|
||||
SET_RANDOM_FLOAT(oWaterObjUnkF8, /*Minimum*/ -2, /*Range*/ 5),
|
||||
SUM_FLOAT(/*Dest*/ oPosX, /*Value 1*/ oPosX, /*Value 2*/ oWaterObjUnkF4),
|
||||
SUM_FLOAT(/*Dest*/ oPosZ, /*Value 1*/ oPosZ, /*Value 2*/ oWaterObjUnkF8),
|
||||
SET_RANDOM_FLOAT(oWaterObjScaleXAngle, /*Minimum*/ -2, /*Range*/ 5),
|
||||
SET_RANDOM_FLOAT(oWaterObjScaleYAngle, /*Minimum*/ -2, /*Range*/ 5),
|
||||
SUM_FLOAT(/*Dest*/ oPosX, /*Value 1*/ oPosX, /*Value 2*/ oWaterObjScaleXAngle),
|
||||
SUM_FLOAT(/*Dest*/ oPosZ, /*Value 1*/ oPosZ, /*Value 2*/ oWaterObjScaleYAngle),
|
||||
RETURN(),
|
||||
};
|
||||
|
||||
@@ -782,7 +782,7 @@ const BehaviorScript bhvWfRotatingWoodenPlatform[] = {
|
||||
|
||||
const BehaviorScript bhvKoopaShellUnderwater[] = {
|
||||
BEGIN(OBJ_LIST_GENACTOR),
|
||||
OR_INT(oFlags, (OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
|
||||
OR_LONG(oFlags, (OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_SILHOUETTE)),
|
||||
BEGIN_LOOP(),
|
||||
CALL_NATIVE(bhv_koopa_shell_underwater_loop),
|
||||
END_LOOP(),
|
||||
@@ -871,7 +871,7 @@ const BehaviorScript bhvMrIBlueCoin[] = {
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
BILLBOARD(),
|
||||
SET_INT(oIntangibleTimer, 0),
|
||||
SET_FLOAT(oMrIUnk110, 20),
|
||||
SET_FLOAT(oMrIBlinking, 20),
|
||||
SET_INT(oAnimState, -1),
|
||||
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ -70, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
|
||||
CALL_NATIVE(bhv_coin_init),
|
||||
@@ -2371,7 +2371,7 @@ const BehaviorScript bhvLllTiltingInvertedPyramid[] = {
|
||||
|
||||
const BehaviorScript bhvKoopaShell[] = {
|
||||
BEGIN(OBJ_LIST_LEVEL),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
OR_LONG(oFlags, (OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_SILHOUETTE)), //! Silhouette doesn't show up in-game
|
||||
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
|
||||
BEGIN_LOOP(),
|
||||
CALL_NATIVE(bhv_koopa_shell_loop),
|
||||
@@ -2547,7 +2547,7 @@ const BehaviorScript bhvWdwExpressElevatorPlatform[] = {
|
||||
|
||||
const BehaviorScript bhvChirpChirp[] = {
|
||||
BEGIN(OBJ_LIST_DEFAULT),
|
||||
SET_INT(oBirdChirpChirpUnkF4, 1),
|
||||
SET_INT(oCheepCheepSpawnerSpawnAmount, 1),
|
||||
GOTO(bhvChirpChirpUnused),
|
||||
};
|
||||
|
||||
@@ -4787,7 +4787,7 @@ const BehaviorScript bhvWdwSquareFloatingPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_LONG(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)),
|
||||
LOAD_COLLISION_DATA(wdw_seg7_collision_square_floating_platform),
|
||||
SET_FLOAT(oFloatingPlatformUnkFC, 64),
|
||||
SET_FLOAT(oFloatingPlatformHeightOffset, 64),
|
||||
SET_HOME(),
|
||||
BEGIN_LOOP(),
|
||||
CALL_NATIVE(bhv_floating_platform_loop),
|
||||
@@ -4799,7 +4799,7 @@ const BehaviorScript bhvWdwRectangularFloatingPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_LONG(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)),
|
||||
LOAD_COLLISION_DATA(wdw_seg7_collision_rect_floating_platform),
|
||||
SET_FLOAT(oFloatingPlatformUnkFC, 64),
|
||||
SET_FLOAT(oFloatingPlatformHeightOffset, 64),
|
||||
SET_HOME(),
|
||||
BEGIN_LOOP(),
|
||||
CALL_NATIVE(bhv_floating_platform_loop),
|
||||
@@ -4811,7 +4811,7 @@ const BehaviorScript bhvJrbFloatingPlatform[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_LONG(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)),
|
||||
LOAD_COLLISION_DATA(jrb_seg7_collision_floating_platform),
|
||||
SET_FLOAT(oFloatingPlatformUnkFC, 64),
|
||||
SET_FLOAT(oFloatingPlatformHeightOffset, 64),
|
||||
SET_HOME(),
|
||||
BEGIN_LOOP(),
|
||||
CALL_NATIVE(bhv_floating_platform_loop),
|
||||
@@ -4823,7 +4823,6 @@ const BehaviorScript bhvArrowLift[] = {
|
||||
BEGIN(OBJ_LIST_SURFACE),
|
||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||
LOAD_COLLISION_DATA(wdw_seg7_collision_arrow_lift),
|
||||
SET_INT_RAND_RSHIFT(oArrowLiftUnk100, /*Minimum*/ 1, /*Right shift*/ 32),
|
||||
SET_HOME(),
|
||||
BEGIN_LOOP(),
|
||||
CALL_NATIVE(bhv_arrow_lift_loop),
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -36,42 +36,42 @@ void bhv_animates_on_floor_switch_press_init(void) {
|
||||
}
|
||||
|
||||
void bhv_animates_on_floor_switch_press_loop(void) {
|
||||
if (o->oFloorSwitchPressAnimationUnk100 != 0) {
|
||||
if (o->oFloorSwitchPressAnimationSwitchNotTicking != 0) {
|
||||
if (o->parentObj->oAction != 2) {
|
||||
o->oFloorSwitchPressAnimationUnk100 = 0;
|
||||
o->oFloorSwitchPressAnimationSwitchNotTicking = 0;
|
||||
}
|
||||
|
||||
if (o->oFloorSwitchPressAnimationUnkFC != 0) {
|
||||
o->oFloorSwitchPressAnimationUnkF4 = sAnimatesOnFloorSwitchPressTimers[o->oBehParams2ndByte];
|
||||
if (o->oFloorSwitchPressAnimationDoResetTime != 0) {
|
||||
o->oFloorSwitchPressAnimationTickTimer = sAnimatesOnFloorSwitchPressTimers[o->oBehParams2ndByte];
|
||||
} else {
|
||||
o->oFloorSwitchPressAnimationUnkF4 = 0;
|
||||
o->oFloorSwitchPressAnimationTickTimer = 0;
|
||||
}
|
||||
} else if (o->parentObj->oAction == 2) {
|
||||
o->oFloorSwitchPressAnimationUnkFC ^= 1;
|
||||
o->oFloorSwitchPressAnimationUnk100 = 1;
|
||||
o->oFloorSwitchPressAnimationDoResetTime ^= 1;
|
||||
o->oFloorSwitchPressAnimationSwitchNotTicking = 1;
|
||||
}
|
||||
|
||||
if (o->oFloorSwitchPressAnimationUnkF4 != 0) {
|
||||
if (o->oFloorSwitchPressAnimationUnkF4 < 60) {
|
||||
if (o->oFloorSwitchPressAnimationTickTimer != 0) {
|
||||
if (o->oFloorSwitchPressAnimationTickTimer < 60) {
|
||||
cur_obj_play_sound_1(SOUND_GENERAL2_SWITCH_TICK_SLOW);
|
||||
} else {
|
||||
cur_obj_play_sound_1(SOUND_GENERAL2_SWITCH_TICK_FAST);
|
||||
}
|
||||
|
||||
if (--o->oFloorSwitchPressAnimationUnkF4 == 0) {
|
||||
o->oFloorSwitchPressAnimationUnkFC = 0;
|
||||
if (--o->oFloorSwitchPressAnimationTickTimer == 0) {
|
||||
o->oFloorSwitchPressAnimationDoResetTime = 0;
|
||||
}
|
||||
|
||||
if (o->oFloorSwitchPressAnimationUnkF8 < 9) {
|
||||
o->oFloorSwitchPressAnimationUnkF8 += 1;
|
||||
if (o->oFloorSwitchPressAnimationDoubleFrame < 9) {
|
||||
o->oFloorSwitchPressAnimationDoubleFrame += 1;
|
||||
}
|
||||
} else if ((o->oFloorSwitchPressAnimationUnkF8 -= 2) < 0) {
|
||||
o->oFloorSwitchPressAnimationUnkF8 = 0;
|
||||
o->oFloorSwitchPressAnimationUnkFC = 1;
|
||||
} else if ((o->oFloorSwitchPressAnimationDoubleFrame -= 2) < 0) {
|
||||
o->oFloorSwitchPressAnimationDoubleFrame = 0;
|
||||
o->oFloorSwitchPressAnimationDoResetTime = 1;
|
||||
}
|
||||
|
||||
o->collisionData = segmented_to_virtual(
|
||||
sFloorSwitchTriggeredAnimationFrames[o->oBehParams2ndByte][o->oFloorSwitchPressAnimationUnkF8 / 2].collisionDataPtr);
|
||||
sFloorSwitchTriggeredAnimationFrames[o->oBehParams2ndByte][o->oFloorSwitchPressAnimationDoubleFrame / 2].collisionDataPtr);
|
||||
|
||||
cur_obj_set_model(sFloorSwitchTriggeredAnimationFrames[o->oBehParams2ndByte][o->oFloorSwitchPressAnimationUnkF8 / 2].model);
|
||||
cur_obj_set_model(sFloorSwitchTriggeredAnimationFrames[o->oBehParams2ndByte][o->oFloorSwitchPressAnimationDoubleFrame / 2].model);
|
||||
}
|
||||
|
||||
@@ -46,8 +46,8 @@ void bhv_bouncing_fireball_spawner_loop(void) {
|
||||
break;
|
||||
case 2:
|
||||
if (o->oTimer == 0)
|
||||
o->oBouncingFireBallUnkF4 = random_float() * 100.0f;
|
||||
if (o->oBouncingFireBallUnkF4 + 100 < o->oTimer)
|
||||
o->oBouncingFireBallSpawnerRandomCooldown = random_float() * 100.0f;
|
||||
if (o->oBouncingFireBallSpawnerRandomCooldown + 100 < o->oTimer)
|
||||
o->oAction = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
// TODO: Rename these. These have nothing to do with birds.
|
||||
void bub_spawner_act_0(void) {
|
||||
s32 i;
|
||||
s32 sp18 = o->oBirdChirpChirpUnkF4;
|
||||
s32 sp18 = o->oCheepCheepSpawnerSpawnAmount;
|
||||
if (o->oDistanceToMario < 1500.0f) {
|
||||
for (i = 0; i < sp18; i++)
|
||||
spawn_object(o, MODEL_BUB, bhvBub);
|
||||
@@ -37,16 +37,16 @@ void bhv_bub_spawner_loop(void) {
|
||||
|
||||
void bub_move_vertically(s32 a0) {
|
||||
f32 sp1C = o->parentObj->oPosY;
|
||||
if (sp1C - 100.0f - o->oCheepCheepUnk104 < o->oPosY
|
||||
&& o->oPosY < sp1C + 1000.0f + o->oCheepCheepUnk104)
|
||||
o->oPosY = approach_f32_symmetric(o->oPosY, o->oCheepCheepUnkF8, a0);
|
||||
if (sp1C - 100.0f - o->oCheepCheepMaxYOffset < o->oPosY
|
||||
&& o->oPosY < sp1C + 1000.0f + o->oCheepCheepMaxYOffset)
|
||||
o->oPosY = approach_f32_symmetric(o->oPosY, o->oCheepCheepTargetY, a0);
|
||||
else {
|
||||
}
|
||||
}
|
||||
|
||||
void bub_act_0(void) {
|
||||
o->oCheepCheepUnkFC = random_float() * 100.0f;
|
||||
o->oCheepCheepUnk104 = random_float() * 300.0f;
|
||||
o->oCheepCheepTargetYOffset = random_float() * 100.0f;
|
||||
o->oCheepCheepMaxYOffset = random_float() * 300.0f;
|
||||
o->oAction = 1;
|
||||
}
|
||||
|
||||
@@ -54,10 +54,10 @@ void bub_act_1(void) {
|
||||
f32 dy;
|
||||
if (o->oTimer == 0) {
|
||||
o->oForwardVel = random_float() * 2 + 2;
|
||||
o->oCheepCheepUnk108 = random_float();
|
||||
o->oCheepCheepRandomSwimAway = random_float();
|
||||
}
|
||||
dy = o->oPosY - gMarioObject->oPosY;
|
||||
if (o->oPosY < o->oCheepCheepUnkF4 - 50.0f) {
|
||||
if (o->oPosY < o->oCheepCheepWaterLevel - 50.0f) {
|
||||
if (dy < 0.0f)
|
||||
dy = 0.0f - dy;
|
||||
if (dy < 500.0f)
|
||||
@@ -65,7 +65,7 @@ void bub_act_1(void) {
|
||||
else
|
||||
bub_move_vertically(4);
|
||||
} else {
|
||||
o->oPosY = o->oCheepCheepUnkF4 - 50.0f;
|
||||
o->oPosY = o->oCheepCheepWaterLevel - 50.0f;
|
||||
if (dy > 300.0f)
|
||||
o->oPosY = o->oPosY - 1.0f;
|
||||
}
|
||||
@@ -73,7 +73,7 @@ void bub_act_1(void) {
|
||||
o->oAngleToMario = cur_obj_angle_to_home();
|
||||
cur_obj_rotate_yaw_toward(o->oAngleToMario, 0x100);
|
||||
if (o->oDistanceToMario < 200.0f)
|
||||
if (o->oCheepCheepUnk108 < 0.5)
|
||||
if (o->oCheepCheepRandomSwimAway < 0.5)
|
||||
o->oAction = 2;
|
||||
if (o->oInteractStatus & INT_STATUS_INTERACTED)
|
||||
o->oAction = 2;
|
||||
@@ -91,7 +91,7 @@ void bub_act_2(void) {
|
||||
if (o->oForwardVel == 0.0f)
|
||||
o->oForwardVel = 6.0f;
|
||||
dy = o->oPosY - gMarioObject->oPosY;
|
||||
if (o->oPosY < o->oCheepCheepUnkF4 - 50.0f) {
|
||||
if (o->oPosY < o->oCheepCheepWaterLevel - 50.0f) {
|
||||
if (dy < 0.0f)
|
||||
dy = 0.0f - dy;
|
||||
if (dy < 500.0f)
|
||||
@@ -99,7 +99,7 @@ void bub_act_2(void) {
|
||||
else
|
||||
bub_move_vertically(4);
|
||||
} else {
|
||||
o->oPosY = o->oCheepCheepUnkF4 - 50.0f;
|
||||
o->oPosY = o->oCheepCheepWaterLevel - 50.0f;
|
||||
if (dy > 300.0f)
|
||||
o->oPosY -= 1.0f;
|
||||
}
|
||||
@@ -113,8 +113,8 @@ void bub_act_2(void) {
|
||||
void (*sCheepCheepActions[])(void) = { bub_act_0, bub_act_1, bub_act_2 };
|
||||
|
||||
void bhv_bub_loop(void) {
|
||||
o->oCheepCheepUnkF4 = find_water_level(o->oPosX, o->oPosZ);
|
||||
o->oCheepCheepUnkF8 = gMarioObject->oPosY + o->oCheepCheepUnkFC;
|
||||
o->oCheepCheepWaterLevel = find_water_level(o->oPosX, o->oPosZ);
|
||||
o->oCheepCheepTargetY = gMarioObject->oPosY + o->oCheepCheepTargetYOffset;
|
||||
o->oWallHitboxRadius = 30.0f;
|
||||
cur_obj_update_floor_and_walls();
|
||||
cur_obj_call_action_function(sCheepCheepActions);
|
||||
|
||||
@@ -17,29 +17,29 @@ void bubba_act_0(void) {
|
||||
treat_far_home_as_mario(2000.0f);
|
||||
o->oAnimState = 0;
|
||||
|
||||
o->oBubbaUnk1AC = obj_get_pitch_to_home(lateralDistToHome);
|
||||
o->oBubbaTargetPitch = obj_get_pitch_to_home(lateralDistToHome);
|
||||
|
||||
approach_f32_ptr(&o->oBubbaUnkF4, 5.0f, 0.5f);
|
||||
approach_f32_ptr(&o->oBubbaMovePitch, 5.0f, 0.5f);
|
||||
|
||||
if (o->oBubbaUnkFC != 0) {
|
||||
if (abs_angle_diff(o->oMoveAngleYaw, o->oBubbaUnk1AE) < 800) {
|
||||
o->oBubbaUnkFC = 0;
|
||||
if (o->oBubbaHitWall != 0) {
|
||||
if (abs_angle_diff(o->oMoveAngleYaw, o->oBubbaTargetYaw) < 800) {
|
||||
o->oBubbaHitWall = 0;
|
||||
}
|
||||
} else {
|
||||
if (o->oDistanceToMario >= 25000.0f) {
|
||||
o->oBubbaUnk1AE = o->oAngleToMario;
|
||||
o->oBubbaUnkF8 = random_linear_offset(20, 30);
|
||||
o->oBubbaTargetYaw = o->oAngleToMario;
|
||||
o->oBubbaRandomTimer = random_linear_offset(20, 30);
|
||||
}
|
||||
|
||||
if ((o->oBubbaUnkFC = o->oMoveFlags & OBJ_MOVE_HIT_WALL) != 0) {
|
||||
o->oBubbaUnk1AE = cur_obj_reflect_move_angle_off_wall();
|
||||
if ((o->oBubbaHitWall = o->oMoveFlags & OBJ_MOVE_HIT_WALL) != 0) {
|
||||
o->oBubbaTargetYaw = cur_obj_reflect_move_angle_off_wall();
|
||||
} else if (o->oTimer > 30 && o->oDistanceToMario < 2000.0f) {
|
||||
o->oAction = 1;
|
||||
} else if (o->oBubbaUnkF8 != 0) {
|
||||
o->oBubbaUnkF8 -= 1;
|
||||
} else if (o->oBubbaRandomTimer != 0) {
|
||||
o->oBubbaRandomTimer -= 1;
|
||||
} else {
|
||||
o->oBubbaUnk1AE = obj_random_fixed_turn(0x2000);
|
||||
o->oBubbaUnkF8 = random_linear_offset(100, 100);
|
||||
o->oBubbaTargetYaw = obj_random_fixed_turn(0x2000);
|
||||
o->oBubbaRandomTimer = random_linear_offset(100, 100);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -48,25 +48,25 @@ void bubba_act_1(void) {
|
||||
treat_far_home_as_mario(2500.0f);
|
||||
if (o->oDistanceToMario > 2500.0f) {
|
||||
o->oAction = 0;
|
||||
} else if (o->oBubbaUnk100 != 0) {
|
||||
if (--o->oBubbaUnk100 == 0) {
|
||||
} else if (o->oBubbaLungeTimer != 0) {
|
||||
if (--o->oBubbaLungeTimer == 0) {
|
||||
cur_obj_play_sound_2(SOUND_OBJ_BUBBA_CHOMP);
|
||||
o->oAction = 0;
|
||||
} else if (o->oBubbaUnk100 < 15) {
|
||||
} else if (o->oBubbaLungeTimer < 15) {
|
||||
o->oAnimState = 1;
|
||||
} else if (o->oBubbaUnk100 == 20) {
|
||||
} else if (o->oBubbaLungeTimer == 20) {
|
||||
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);
|
||||
o->oBubbaTargetPitch -= targetPitch;
|
||||
o->oMoveAnglePitch = o->oBubbaTargetPitch;
|
||||
o->oBubbaMovePitch = 40.0f;
|
||||
obj_compute_vel_from_move_pitch(o->oBubbaMovePitch);
|
||||
o->oAnimState = 0;
|
||||
} else {
|
||||
o->oBubbaUnk1AE = o->oAngleToMario;
|
||||
o->oBubbaUnk1AC = o->oBubbaUnk104;
|
||||
o->oBubbaTargetYaw = o->oAngleToMario;
|
||||
o->oBubbaTargetPitch = o->oBubbaNextTargetPitchTowardMario;
|
||||
|
||||
cur_obj_rotate_yaw_toward(o->oBubbaUnk1AE, 400);
|
||||
obj_move_pitch_approach(o->oBubbaUnk1AC, 400);
|
||||
cur_obj_rotate_yaw_toward(o->oBubbaTargetYaw, 400);
|
||||
obj_move_pitch_approach(o->oBubbaTargetPitch, 400);
|
||||
}
|
||||
} else {
|
||||
if (abs_angle_diff(gMarioObject->oFaceAngleYaw, o->oAngleToMario) < 0x3000) {
|
||||
@@ -75,30 +75,30 @@ void bubba_act_1(void) {
|
||||
targetDYaw = -targetDYaw;
|
||||
}
|
||||
|
||||
o->oBubbaUnk1AE = o->oAngleToMario + targetDYaw;
|
||||
o->oBubbaTargetYaw = o->oAngleToMario + targetDYaw;
|
||||
} else {
|
||||
o->oBubbaUnk1AE = o->oAngleToMario;
|
||||
o->oBubbaTargetYaw = o->oAngleToMario;
|
||||
}
|
||||
|
||||
o->oBubbaUnk1AC = o->oBubbaUnk104;
|
||||
o->oBubbaTargetPitch = o->oBubbaNextTargetPitchTowardMario;
|
||||
|
||||
if (obj_is_near_to_and_facing_mario(500.0f, 3000)
|
||||
&& abs_angle_diff(o->oBubbaUnk1AC, o->oMoveAnglePitch) < 3000) {
|
||||
o->oBubbaUnk100 = 30;
|
||||
o->oBubbaUnkF4 = 0;
|
||||
&& abs_angle_diff(o->oBubbaTargetPitch, o->oMoveAnglePitch) < 3000) {
|
||||
o->oBubbaLungeTimer = 30;
|
||||
o->oBubbaMovePitch = 0;
|
||||
o->oAnimState = 1;
|
||||
} else {
|
||||
approach_f32_ptr(&o->oBubbaUnkF4, 20.0f, 0.5f);
|
||||
approach_f32_ptr(&o->oBubbaMovePitch, 20.0f, 0.5f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void bhv_bubba_loop(void) {
|
||||
o->oInteractionSubtype &= ~INT_SUBTYPE_EATS_MARIO;
|
||||
o->oBubbaUnk104 = obj_turn_pitch_toward_mario(120.0f, 0);
|
||||
o->oBubbaNextTargetPitchTowardMario = obj_turn_pitch_toward_mario(120.0f, 0);
|
||||
|
||||
if (abs_angle_diff(o->oAngleToMario, o->oMoveAngleYaw) < 0x1000
|
||||
&& abs_angle_diff(o->oBubbaUnk104 + 0x800, o->oMoveAnglePitch) < 0x2000) {
|
||||
&& abs_angle_diff(o->oBubbaNextTargetPitchTowardMario + 0x800, o->oMoveAnglePitch) < 0x2000) {
|
||||
if (o->oAnimState != 0 && o->oDistanceToMario < 250.0f) {
|
||||
o->oInteractionSubtype |= INT_SUBTYPE_EATS_MARIO;
|
||||
}
|
||||
@@ -126,26 +126,26 @@ void bhv_bubba_loop(void) {
|
||||
obj_scale(splashObj, 3.0f);
|
||||
}
|
||||
|
||||
o->oBubbaUnk108 = o->oVelY;
|
||||
o->oBubbaUnk10C = 0.0f;
|
||||
o->oBubbaAirVelY = o->oVelY;
|
||||
o->oBubbaJumpHeight = 0.0f;
|
||||
} else {
|
||||
approach_f32_ptr(&o->oBubbaUnk108, 0.0f, 4.0f);
|
||||
if ((o->oBubbaUnk10C -= o->oBubbaUnk108) > 1.0f) {
|
||||
approach_f32_ptr(&o->oBubbaAirVelY, 0.0f, 4.0f);
|
||||
if ((o->oBubbaJumpHeight -= o->oBubbaAirVelY) > 1.0f) {
|
||||
s16 rand = random_u16();
|
||||
o->oBubbaUnk10C -= 1.0f;
|
||||
o->oBubbaJumpHeight -= 1.0f;
|
||||
spawn_object_relative(0, 150.0f * coss(rand), 0x64, 150.0f * sins(rand), o,
|
||||
MODEL_WHITE_PARTICLE_SMALL, bhvSmallParticleSnow);
|
||||
}
|
||||
}
|
||||
|
||||
obj_smooth_turn(&o->oBubbaUnk1B0, &o->oMoveAnglePitch, o->oBubbaUnk1AC, 0.05f, 10, 50, 2000);
|
||||
obj_smooth_turn(&o->oBubbaUnk1B2, &o->oMoveAngleYaw, o->oBubbaUnk1AE, 0.05f, 10, 50, 2000);
|
||||
obj_compute_vel_from_move_pitch(o->oBubbaUnkF4);
|
||||
obj_smooth_turn(&o->oBubbaPitchVel, &o->oMoveAnglePitch, o->oBubbaTargetPitch, 0.05f, 10, 50, 2000);
|
||||
obj_smooth_turn(&o->oBubbaYawVel, &o->oMoveAngleYaw, o->oBubbaTargetYaw, 0.05f, 10, 50, 2000);
|
||||
obj_compute_vel_from_move_pitch(o->oBubbaMovePitch);
|
||||
} else {
|
||||
o->oBubbaUnkF4 = sqrtf(o->oForwardVel * o->oForwardVel + o->oVelY * o->oVelY);
|
||||
o->oBubbaMovePitch = sqrtf(o->oForwardVel * o->oForwardVel + o->oVelY * o->oVelY);
|
||||
o->oMoveAnglePitch = obj_get_pitch_from_vel();
|
||||
obj_face_pitch_approach(o->oMoveAnglePitch, 400);
|
||||
o->oBubbaUnk1B0 = 0;
|
||||
o->oBubbaPitchVel = 0;
|
||||
}
|
||||
|
||||
obj_face_pitch_approach(o->oMoveAnglePitch, 400);
|
||||
|
||||
@@ -103,9 +103,9 @@ static void camera_lakitu_intro_act_show_dialog(void) {
|
||||
approach_f32_ptr(&o->oCameraLakituCircleRadius, 200.0f, 50.0f);
|
||||
if (o->oDistanceToMario < 1000.0f) {
|
||||
#ifndef VERSION_JP
|
||||
if (!o->oCameraLakituUnk104) {
|
||||
if (!o->oCameraLakituIntroMusicPlayed) {
|
||||
play_music(SEQ_PLAYER_LEVEL, SEQUENCE_ARGS(15, SEQ_EVENT_CUTSCENE_LAKITU), 0);
|
||||
o->oCameraLakituUnk104 = TRUE;
|
||||
o->oCameraLakituIntroMusicPlayed = TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -12,8 +12,8 @@ void opened_cannon_act_0(void) {
|
||||
o->oPosZ = o->oHomeZ;
|
||||
o->oMoveAnglePitch = 0;
|
||||
o->oMoveAngleYaw = (s16)(o->oBehParams2ndByte << 8);
|
||||
o->oCannonUnkF4 = 0;
|
||||
o->oCannonUnk10C = 0;
|
||||
o->oCannonAngle = 0;
|
||||
o->oCannonIsActive = 0;
|
||||
cur_obj_enable_rendering();
|
||||
cur_obj_become_tangible();
|
||||
}
|
||||
@@ -25,14 +25,14 @@ void opened_cannon_act_0(void) {
|
||||
& INT_STATUS_TOUCHED_BOB_OMB))) // bob-omb explodes when it gets into a cannon
|
||||
{
|
||||
o->oAction = 4;
|
||||
o->oCannonUnk10C = 1;
|
||||
o->oCannonUnkF8 = 1;
|
||||
o->oCannonIsActive = 1;
|
||||
o->oCannonTimeSinceActivated = 1;
|
||||
} else
|
||||
o->oInteractStatus = 0;
|
||||
} else {
|
||||
cur_obj_become_intangible();
|
||||
cur_obj_disable_rendering();
|
||||
o->oCannonUnk10C = 0;
|
||||
o->oCannonIsActive = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,11 +60,11 @@ void opened_cannon_act_6(void) {
|
||||
} else {
|
||||
if (o->oTimer < 22) {
|
||||
o->oMoveAngleYaw =
|
||||
sins(o->oCannonUnkF4) * 0x4000 + ((s16)(o->oBehParams2ndByte << 8));
|
||||
o->oCannonUnkF4 += 0x400;
|
||||
sins(o->oCannonAngle) * 0x4000 + ((s16)(o->oBehParams2ndByte << 8));
|
||||
o->oCannonAngle += 0x400;
|
||||
} else if (o->oTimer < 26) {
|
||||
} else {
|
||||
o->oCannonUnkF4 = 0;
|
||||
o->oCannonAngle = 0;
|
||||
o->oAction = 5;
|
||||
}
|
||||
}
|
||||
@@ -77,8 +77,8 @@ void opened_cannon_act_5(void) {
|
||||
if (o->oTimer < 4) {
|
||||
} else {
|
||||
if (o->oTimer < 20) {
|
||||
o->oCannonUnkF4 += 0x400;
|
||||
o->oMoveAnglePitch = sins(o->oCannonUnkF4) * 0x2000;
|
||||
o->oCannonAngle += 0x400;
|
||||
o->oMoveAnglePitch = sins(o->oCannonAngle) * 0x2000;
|
||||
} else if (o->oTimer < 25) {
|
||||
} else
|
||||
o->oAction = 1;
|
||||
@@ -89,7 +89,7 @@ void opened_cannon_act_1(void) {
|
||||
UNUSED s32 unused;
|
||||
cur_obj_become_intangible();
|
||||
cur_obj_disable_rendering();
|
||||
o->oCannonUnk10C = 0;
|
||||
o->oCannonIsActive = 0;
|
||||
gMarioShotFromCannon = 1;
|
||||
}
|
||||
|
||||
@@ -109,8 +109,8 @@ void (*sOpenedCannonActions[])(void) = { opened_cannon_act_0, opened_cannon_act_
|
||||
|
||||
void bhv_cannon_base_loop(void) {
|
||||
cur_obj_call_action_function(sOpenedCannonActions);
|
||||
if (o->oCannonUnkF8)
|
||||
o->oCannonUnkF8++;
|
||||
if (o->oCannonTimeSinceActivated)
|
||||
o->oCannonTimeSinceActivated++;
|
||||
o->oInteractStatus = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -109,11 +109,11 @@ void bhv_wing_cap_init(void) {
|
||||
}
|
||||
|
||||
void cap_scale_vertically(void) {
|
||||
o->oCapUnkF8 += 0x2000;
|
||||
o->header.gfx.scale[1] = coss(o->oCapUnkF8) * 0.3 + 0.7;
|
||||
if (o->oCapUnkF8 == 0x10000) {
|
||||
o->oCapUnkF8 = 0;
|
||||
o->oCapUnkF4 = 2;
|
||||
o->oCapScaleAngle += 0x2000;
|
||||
o->header.gfx.scale[1] = coss(o->oCapScaleAngle) * 0.3 + 0.7;
|
||||
if (o->oCapScaleAngle == 0x10000) {
|
||||
o->oCapScaleAngle = 0;
|
||||
o->oCapDoScaleVertically = 2;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,12 +125,12 @@ void wing_vanish_cap_act_0(void) {
|
||||
if (collisionFlags & OBJ_COL_FLAG_GROUNDED) {
|
||||
cap_check_quicksand();
|
||||
if (o->oVelY != 0.0f) {
|
||||
o->oCapUnkF4 = 1;
|
||||
o->oCapDoScaleVertically = 1;
|
||||
o->oVelY = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
if (o->oCapUnkF4 == 1)
|
||||
if (o->oCapDoScaleVertically == 1)
|
||||
cap_scale_vertically();
|
||||
}
|
||||
|
||||
@@ -229,13 +229,13 @@ void normal_cap_act_0(void) {
|
||||
cap_check_quicksand();
|
||||
|
||||
if (o->oVelY != 0.0f) {
|
||||
o->oCapUnkF4 = 1;
|
||||
o->oCapDoScaleVertically = 1;
|
||||
o->oVelY = 0.0f;
|
||||
o->oFaceAnglePitch = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (o->oCapUnkF4 == 1)
|
||||
if (o->oCapDoScaleVertically == 1)
|
||||
cap_scale_vertically();
|
||||
}
|
||||
|
||||
|
||||
@@ -12,13 +12,13 @@ void bhv_celebration_star_init(void) {
|
||||
o->oFaceAnglePitch = 0;
|
||||
o->oFaceAngleRoll = 49152;
|
||||
cur_obj_scale(0.1f);
|
||||
o->oCelebStarUnkF4 = 1;
|
||||
o->oCelebStarIsBowserKey = 1;
|
||||
} else {
|
||||
o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_STAR];
|
||||
o->oFaceAnglePitch = 0;
|
||||
o->oFaceAngleRoll = 0;
|
||||
cur_obj_scale(0.4f);
|
||||
o->oCelebStarUnkF4 = 0;
|
||||
o->oCelebStarIsBowserKey = 0;
|
||||
}
|
||||
#else
|
||||
o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_STAR];
|
||||
@@ -48,7 +48,7 @@ void celeb_star_act_face_camera(void) {
|
||||
|
||||
if (o->oTimer < 10) {
|
||||
#if BUGFIX_STAR_BOWSER_KEY
|
||||
if (o->oCelebStarUnkF4 == 0) {
|
||||
if (o->oCelebStarIsBowserKey == 0) {
|
||||
cur_obj_scale((f32) o->oTimer / 10.0);
|
||||
} else {
|
||||
cur_obj_scale((f32) o->oTimer / 30.0);
|
||||
|
||||
@@ -214,7 +214,7 @@ static void chain_chomp_sub_act_lunge(void) {
|
||||
|
||||
if (o->oChainChompRestrictedByChain == TRUE) {
|
||||
o->oForwardVel = o->oVelY = 0.0f;
|
||||
o->oChainChompUnk104 = 30.0f;
|
||||
o->oChainChompSignedMaxDistBetweenChainParts = 30.0f;
|
||||
}
|
||||
|
||||
// TODO: What is this
|
||||
@@ -230,15 +230,15 @@ static void chain_chomp_sub_act_lunge(void) {
|
||||
cur_obj_rotate_yaw_toward(atan2s(o->oChainChompSegments[0].posZ, o->oChainChompSegments[0].posX),
|
||||
0x1000);
|
||||
|
||||
if (o->oChainChompUnk104 != 0.0f) {
|
||||
approach_f32_ptr(&o->oChainChompUnk104, 0.0f, 0.8f);
|
||||
if (o->oChainChompSignedMaxDistBetweenChainParts != 0.0f) {
|
||||
approach_f32_ptr(&o->oChainChompSignedMaxDistBetweenChainParts, 0.0f, 0.8f);
|
||||
} else {
|
||||
o->oSubAction = CHAIN_CHOMP_SUB_ACT_TURN;
|
||||
}
|
||||
|
||||
o->oChainChompMaxDistBetweenChainParts = o->oChainChompUnk104;
|
||||
o->oChainChompMaxDistBetweenChainParts = o->oChainChompSignedMaxDistBetweenChainParts;
|
||||
if (gGlobalTimer % 2 != 0) {
|
||||
o->oChainChompMaxDistBetweenChainParts = -o->oChainChompUnk104;
|
||||
o->oChainChompMaxDistBetweenChainParts = -o->oChainChompSignedMaxDistBetweenChainParts;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ void bhv_checkerboard_elevator_group_init(void) {
|
||||
|
||||
platformObj = spawn_object_relative(i, 0, i * relativePosY, relativePosZ, o, MODEL_CHECKERBOARD_PLATFORM,
|
||||
bhvCheckerboardPlatformSub);
|
||||
platformObj->oCheckerBoardPlatformUnk1AC = sCheckerBoardPlatformInitPositions[type].radius;
|
||||
platformObj->oCheckerBoardPlatformRadius = sCheckerBoardPlatformInitPositions[type].radius;
|
||||
vec3f_copy_2(platformObj->header.gfx.scale, sCheckerBoardPlatformInitPositions[type].scale);
|
||||
}
|
||||
}
|
||||
@@ -40,16 +40,16 @@ void checkerboard_plat_act_rotate(s32 nextAction, s16 pitch) {
|
||||
o->oAngleVelPitch = pitch;
|
||||
if (o->oTimer + 1 == 0x8000 / absi(pitch))
|
||||
o->oAction = nextAction;
|
||||
o->oCheckerBoardPlatformUnkF8 = nextAction;
|
||||
o->oCheckerBoardPlatformRotateAction = nextAction;
|
||||
}
|
||||
|
||||
void bhv_checkerboard_platform_init(void) {
|
||||
o->oCheckerBoardPlatformUnkFC = o->parentObj->oBehParams2ndByte;
|
||||
o->oCheckerBoardPlatformHeight = o->parentObj->oBehParams2ndByte;
|
||||
}
|
||||
|
||||
void bhv_checkerboard_platform_loop(void) {
|
||||
f32 radius = o->oCheckerBoardPlatformUnk1AC;
|
||||
o->oCheckerBoardPlatformUnkF8 = 0;
|
||||
f32 radius = o->oCheckerBoardPlatformRadius;
|
||||
o->oCheckerBoardPlatformRotateAction = 0;
|
||||
if (o->oDistanceToMario < 1000.0f)
|
||||
cur_obj_play_sound_1(SOUND_ENV_ELEVATOR4);
|
||||
switch (o->oAction) {
|
||||
@@ -60,13 +60,13 @@ void bhv_checkerboard_platform_loop(void) {
|
||||
o->oAction = 3;
|
||||
break;
|
||||
case 1:
|
||||
checkerboard_plat_act_move_y(2, 10.0f, o->oCheckerBoardPlatformUnkFC);
|
||||
checkerboard_plat_act_move_y(2, 10.0f, o->oCheckerBoardPlatformHeight);
|
||||
break;
|
||||
case 2:
|
||||
checkerboard_plat_act_rotate(3, 512);
|
||||
break;
|
||||
case 3:
|
||||
checkerboard_plat_act_move_y(4, -10.0f, o->oCheckerBoardPlatformUnkFC);
|
||||
checkerboard_plat_act_move_y(4, -10.0f, o->oCheckerBoardPlatformHeight);
|
||||
break;
|
||||
case 4:
|
||||
checkerboard_plat_act_rotate(1, -512);
|
||||
@@ -79,7 +79,7 @@ void bhv_checkerboard_platform_loop(void) {
|
||||
o->oForwardVel = signum_positive(o->oAngleVelPitch) * sins(o->oMoveAnglePitch) * radius;
|
||||
o->oVelY = signum_positive(o->oAngleVelPitch) * coss(o->oMoveAnglePitch) * radius;
|
||||
}
|
||||
if (o->oCheckerBoardPlatformUnkF8 == 1) {
|
||||
if (o->oCheckerBoardPlatformRotateAction == 1) {
|
||||
o->oAngleVelPitch = 0;
|
||||
o->oFaceAnglePitch &= ~0x7FFF;
|
||||
cur_obj_move_using_fvel_and_gravity();
|
||||
|
||||
@@ -13,7 +13,7 @@ struct UnusedChuckyaData sUnusedChuckyaData[] = { { 2, 0.f, 1.f },
|
||||
{ 8, 10.f, 1.f }};
|
||||
|
||||
void common_anchor_mario_behavior(f32 forwardVel, f32 yVel, s32 flag) {
|
||||
switch (o->parentObj->oChuckyaUnk88) {
|
||||
switch (o->parentObj->oCommonAnchorAction) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
@@ -23,14 +23,14 @@ void common_anchor_mario_behavior(f32 forwardVel, f32 yVel, s32 flag) {
|
||||
gMarioObject->oInteractStatus |= (flag + INT_STATUS_MARIO_UNK2);
|
||||
gMarioStates[0].forwardVel = forwardVel;
|
||||
gMarioStates[0].vel[1] = yVel;
|
||||
o->parentObj->oChuckyaUnk88 = 0;
|
||||
o->parentObj->oCommonAnchorAction = 0;
|
||||
break;
|
||||
case 3:
|
||||
gMarioObject->oInteractStatus |=
|
||||
(INT_STATUS_MARIO_UNK2 + INT_STATUS_MARIO_UNK6); // loads 2 interactions at once?
|
||||
gMarioStates[0].forwardVel = 10.0f;
|
||||
gMarioStates[0].vel[1] = 10.0f;
|
||||
o->parentObj->oChuckyaUnk88 = 0;
|
||||
o->parentObj->oCommonAnchorAction = 0;
|
||||
break;
|
||||
}
|
||||
o->oMoveAngleYaw = o->parentObj->oMoveAngleYaw;
|
||||
@@ -44,7 +44,7 @@ void bhv_chuckya_anchor_mario_loop(void) {
|
||||
|
||||
s32 unknown_chuckya_function(s32 sp20, f32 sp24, f32 sp28, s32 sp2C) {
|
||||
s32 sp1C = 0;
|
||||
if (o->oChuckyaUnkF8 != 4) {
|
||||
if (o->oChuckyaUnused != 4) {
|
||||
if (sp24 < cur_obj_lateral_dist_from_mario_to_home()) {
|
||||
if (cur_obj_lateral_dist_to_home() < 200.0f)
|
||||
sp1C = 0;
|
||||
@@ -60,7 +60,7 @@ s32 unknown_chuckya_function(s32 sp20, f32 sp24, f32 sp28, s32 sp2C) {
|
||||
sp1C = 3;
|
||||
if (sp20 && update_angle_from_move_flags(&o->oAngleToMario)) {
|
||||
sp1C = 4;
|
||||
o->oChuckyaUnkF8 = 4;
|
||||
o->oChuckyaUnused = 4;
|
||||
}
|
||||
} else
|
||||
sp1C = 4;
|
||||
@@ -85,14 +85,14 @@ s32 approach_forward_vel(f32 *arr, f32 target, f32 inc) {
|
||||
void chuckya_act_0(void) {
|
||||
s32 initialSubAction;
|
||||
if (o->oTimer == 0)
|
||||
o->oChuckyaUnkFC = 0;
|
||||
o->oChuckyaSubActionTimer = 0;
|
||||
o->oAngleToMario = obj_angle_to_object(o, gMarioObject);
|
||||
switch (initialSubAction = o->oSubAction) {
|
||||
case 0:
|
||||
o->oForwardVel = 0;
|
||||
if (cur_obj_lateral_dist_from_mario_to_home() < 2000.0f) {
|
||||
cur_obj_rotate_yaw_toward(o->oAngleToMario, 0x400);
|
||||
if (o->oChuckyaUnkFC > 40
|
||||
if (o->oChuckyaSubActionTimer > 40
|
||||
|| abs_angle_diff(o->oMoveAngleYaw, o->oAngleToMario) < 0x1000)
|
||||
o->oSubAction = 1;
|
||||
} else
|
||||
@@ -107,7 +107,7 @@ void chuckya_act_0(void) {
|
||||
break;
|
||||
case 2:
|
||||
approach_forward_vel(&o->oForwardVel, 0, 4.0f);
|
||||
if (o->oChuckyaUnkFC > 48)
|
||||
if (o->oChuckyaSubActionTimer > 48)
|
||||
o->oSubAction = 0;
|
||||
break;
|
||||
case 3:
|
||||
@@ -123,9 +123,9 @@ void chuckya_act_0(void) {
|
||||
break;
|
||||
}
|
||||
if (o->oSubAction != initialSubAction)
|
||||
o->oChuckyaUnkFC = 0;
|
||||
o->oChuckyaSubActionTimer = 0;
|
||||
else
|
||||
o->oChuckyaUnkFC++;
|
||||
o->oChuckyaSubActionTimer++;
|
||||
cur_obj_init_animation_with_sound(4);
|
||||
if (o->oForwardVel > 1.0f)
|
||||
cur_obj_play_sound_1(SOUND_AIR_CHUCKYA_MOVE);
|
||||
@@ -136,22 +136,22 @@ void chuckya_act_1(void) {
|
||||
if (o->oSubAction == 0) {
|
||||
if (cur_obj_init_animation_and_check_if_near_end(0))
|
||||
o->oSubAction++;
|
||||
o->oChuckyaUnkFC = random_float() * 30.0f + 10.0f;
|
||||
o->oChuckyaUnk100 = 0;
|
||||
o->oChuckyaSubActionTimer = random_float() * 30.0f + 10.0f;
|
||||
o->oChuckyaNumPlayerEscapeActions = 0;
|
||||
o->oForwardVel = 0.0f;
|
||||
} else {
|
||||
if (o->oSubAction == 1) {
|
||||
o->oChuckyaUnk100 += player_performed_grab_escape_action();
|
||||
print_debug_bottom_up("%d", o->oChuckyaUnk100);
|
||||
if (o->oChuckyaUnk100 > 10) {
|
||||
o->oChuckyaUnk88 = 3;
|
||||
o->oChuckyaNumPlayerEscapeActions += player_performed_grab_escape_action();
|
||||
print_debug_bottom_up("%d", o->oChuckyaNumPlayerEscapeActions);
|
||||
if (o->oChuckyaNumPlayerEscapeActions > 10) {
|
||||
o->oCommonAnchorAction = 3;
|
||||
o->oAction = 3;
|
||||
o->oInteractStatus &= ~(INT_STATUS_GRABBED_MARIO);
|
||||
} else {
|
||||
cur_obj_init_animation_with_sound(1);
|
||||
o->oMoveAngleYaw += INT_STATUS_GRABBED_MARIO;
|
||||
if (o->oChuckyaUnkFC-- < 0)
|
||||
if (check_if_moving_over_floor(50.0f, 150.0f) || o->oChuckyaUnkFC < -16) {
|
||||
if (o->oChuckyaSubActionTimer-- < 0)
|
||||
if (check_if_moving_over_floor(50.0f, 150.0f) || o->oChuckyaSubActionTimer < -16) {
|
||||
o->oSubAction++;
|
||||
}
|
||||
}
|
||||
@@ -159,7 +159,7 @@ void chuckya_act_1(void) {
|
||||
cur_obj_init_animation_with_sound(3);
|
||||
if (cur_obj_check_anim_frame(18)) {
|
||||
cur_obj_play_sound_2(SOUND_OBJ_UNKNOWN4);
|
||||
o->oChuckyaUnk88 = 2;
|
||||
o->oCommonAnchorAction = 2;
|
||||
o->oAction = 3;
|
||||
o->oInteractStatus &= ~(INT_STATUS_GRABBED_MARIO);
|
||||
}
|
||||
@@ -191,7 +191,7 @@ void chuckya_move(void) {
|
||||
cur_obj_move_standard(-30);
|
||||
if (o->oInteractStatus & INT_STATUS_GRABBED_MARIO) {
|
||||
o->oAction = 1;
|
||||
o->oChuckyaUnk88 = 1;
|
||||
o->oCommonAnchorAction = 1;
|
||||
cur_obj_play_sound_2(SOUND_OBJ_UNKNOWN3);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,13 +18,13 @@ void clam_act_0(void) {
|
||||
spawn_mist_from_global();
|
||||
cur_obj_become_tangible();
|
||||
|
||||
o->oClamUnkF4 = 10;
|
||||
o->oClamShakeTimer = 10;
|
||||
o->oTimer = 0;
|
||||
} else if (o->oTimer > 150 && o->oDistanceToMario < 500.0f) {
|
||||
cur_obj_play_sound_2(SOUND_GENERAL_CLAM_SHELL2);
|
||||
o->oAction = 1;
|
||||
} else if (o->oClamUnkF4 != 0) {
|
||||
o->oClamUnkF4 -= 1;
|
||||
} else if (o->oClamShakeTimer != 0) {
|
||||
o->oClamShakeTimer -= 1;
|
||||
cur_obj_shake_y(3.0f);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ void bhv_temp_coin_loop(void) {
|
||||
}
|
||||
|
||||
void bhv_coin_init(void) {
|
||||
o->oVelY = random_float() * 10.0f + 30 + o->oCoinUnk110;
|
||||
o->oVelY = random_float() * 10.0f + 30 + o->oCoinBaseYVel;
|
||||
o->oForwardVel = random_float() * 10.0f;
|
||||
o->oMoveAngleYaw = random_u16();
|
||||
cur_obj_set_behavior(bhvYellowCoin);
|
||||
@@ -94,9 +94,9 @@ void bhv_coin_loop(void) {
|
||||
}
|
||||
#ifndef VERSION_JP
|
||||
if (o->oMoveFlags & OBJ_MOVE_BOUNCE) {
|
||||
if (o->oCoinUnk1B0 < 5)
|
||||
if (o->oCoinBounceTimer < 5)
|
||||
cur_obj_play_sound_2(SOUND_GENERAL_COIN_DROP);
|
||||
o->oCoinUnk1B0++;
|
||||
o->oCoinBounceTimer++;
|
||||
}
|
||||
#else
|
||||
if (o->oMoveFlags & OBJ_MOVE_BOUNCE)
|
||||
@@ -112,7 +112,7 @@ void bhv_coin_formation_spawn_loop(void) {
|
||||
cur_obj_set_behavior(bhvYellowCoin);
|
||||
obj_set_hitbox(o, &sYellowCoinHitbox);
|
||||
bhv_init_room();
|
||||
if (o->oCoinUnkF8) {
|
||||
if (o->oCoinSnapToGround) {
|
||||
o->oPosY += 300.0f;
|
||||
cur_obj_update_floor_height();
|
||||
if (o->oPosY < o->oFloorHeight || o->oFloorHeight < FLOOR_LOWER_LIMIT_MISC)
|
||||
@@ -126,7 +126,7 @@ void bhv_coin_formation_spawn_loop(void) {
|
||||
}
|
||||
} else {
|
||||
if (bhv_coin_sparkles_init())
|
||||
o->parentObj->oCoinUnkF4 |= (1 << o->oBehParams2ndByte);
|
||||
o->parentObj->oCoinRespawnBits |= (1 << o->oBehParams2ndByte);
|
||||
o->oAnimState++;
|
||||
}
|
||||
if (o->parentObj->oAction == 2)
|
||||
@@ -170,12 +170,12 @@ void spawn_coin_in_formation(s32 index, s32 shape) {
|
||||
if (spawnCoin) {
|
||||
newCoin = spawn_object_relative(index, pos[0], pos[1], pos[2], o, MODEL_YELLOW_COIN,
|
||||
bhvCoinFormationSpawn);
|
||||
newCoin->oCoinUnkF8 = snapToGround;
|
||||
newCoin->oCoinSnapToGround = snapToGround;
|
||||
}
|
||||
}
|
||||
|
||||
void bhv_coin_formation_init(void) {
|
||||
o->oCoinUnkF4 = (o->oBehParams >> 8) & 0xFF;
|
||||
o->oCoinRespawnBits = (o->oBehParams >> 8) & 0xFF;
|
||||
}
|
||||
|
||||
void bhv_coin_formation_loop(void) {
|
||||
@@ -184,7 +184,7 @@ void bhv_coin_formation_loop(void) {
|
||||
case 0:
|
||||
if (o->oDistanceToMario < 2000.0f) {
|
||||
for (bitIndex = 0; bitIndex < 8; bitIndex++) {
|
||||
if (!(o->oCoinUnkF4 & (1 << bitIndex)))
|
||||
if (!(o->oCoinRespawnBits & (1 << bitIndex)))
|
||||
spawn_coin_in_formation(bitIndex, o->oBehParams2ndByte);
|
||||
}
|
||||
o->oAction++;
|
||||
@@ -200,7 +200,7 @@ void bhv_coin_formation_loop(void) {
|
||||
}
|
||||
|
||||
// Casting to u8 doesn't seem to match
|
||||
set_object_respawn_info_bits(o, o->oCoinUnkF4 & 0xFF);
|
||||
set_object_respawn_info_bits(o, o->oCoinRespawnBits & 0xFF);
|
||||
}
|
||||
|
||||
void coin_inside_boo_act_1(void) {
|
||||
|
||||
@@ -10,14 +10,14 @@ void bhv_punch_tiny_triangle_loop(void) {
|
||||
s16 yaw;
|
||||
if (o->oTimer == 0) {
|
||||
yaw = o->oMoveAngleYaw;
|
||||
o->oCollisionParticleUnkF4 = 1.28f;
|
||||
o->oCollisionParticleScale = 1.28f;
|
||||
cur_obj_set_pos_relative(gMarioObject, 0.0f, 60.0f, 100.0f);
|
||||
o->oMoveAngleYaw = yaw;
|
||||
}
|
||||
cur_obj_move_using_fvel_and_gravity();
|
||||
o->oAnimState = 5;
|
||||
cur_obj_scale(o->oCollisionParticleUnkF4);
|
||||
o->oCollisionParticleUnkF4 -= 0.2f;
|
||||
cur_obj_scale(o->oCollisionParticleScale);
|
||||
o->oCollisionParticleScale -= 0.2f;
|
||||
if (gDebugInfo[4][0] + 6 < o->oTimer)
|
||||
obj_mark_for_deletion(o);
|
||||
}
|
||||
@@ -38,14 +38,14 @@ void bhv_wall_tiny_star_particle_loop(void) {
|
||||
s16 yaw;
|
||||
if (o->oTimer == 0) {
|
||||
yaw = o->oMoveAngleYaw;
|
||||
o->oCollisionParticleUnkF4 = 0.28f;
|
||||
o->oCollisionParticleScale = 0.28f;
|
||||
cur_obj_set_pos_relative(gMarioObject, 0.0f, 30.0f, 110.0f);
|
||||
o->oMoveAngleYaw = yaw;
|
||||
}
|
||||
cur_obj_move_using_fvel_and_gravity();
|
||||
o->oAnimState = 4;
|
||||
cur_obj_scale(o->oCollisionParticleUnkF4);
|
||||
o->oCollisionParticleUnkF4 -= 0.015f;
|
||||
cur_obj_scale(o->oCollisionParticleScale);
|
||||
o->oCollisionParticleScale -= 0.015f;
|
||||
}
|
||||
|
||||
void bhv_tiny_star_particles_init(void) {
|
||||
@@ -62,15 +62,15 @@ void bhv_tiny_star_particles_init(void) {
|
||||
|
||||
void bhv_pound_tiny_star_particle_loop(void) {
|
||||
if (o->oTimer == 0) {
|
||||
o->oCollisionParticleUnkF4 = 0.28f;
|
||||
o->oCollisionParticleScale = 0.28f;
|
||||
o->oForwardVel = 25.0f;
|
||||
o->oPosY -= 20.0f;
|
||||
o->oVelY = 14.0f;
|
||||
}
|
||||
cur_obj_move_using_fvel_and_gravity();
|
||||
o->oAnimState = 4;
|
||||
cur_obj_scale(o->oCollisionParticleUnkF4);
|
||||
o->oCollisionParticleUnkF4 -= 0.015f;
|
||||
cur_obj_scale(o->oCollisionParticleScale);
|
||||
o->oCollisionParticleScale -= 0.015f;
|
||||
}
|
||||
|
||||
void bhv_pound_tiny_star_particle_init(void) {
|
||||
|
||||
@@ -70,11 +70,11 @@ void bhv_controllable_platform_init(void) {
|
||||
|
||||
sControllablePlatformDirectionState = 0;
|
||||
|
||||
o->oControllablePlatformUnkFC = o->oPosY;
|
||||
o->oControllablePlatformInitPosY = o->oPosY;
|
||||
}
|
||||
|
||||
void controllable_platform_hit_wall(s8 nextDirection) {
|
||||
o->oControllablePlatformUnkF8 = nextDirection;
|
||||
o->oControllablePlatformWallHitDirection = nextDirection;
|
||||
o->oTimer = 0;
|
||||
sControllablePlatformDirectionState = 5;
|
||||
|
||||
@@ -111,25 +111,25 @@ void controllable_platform_check_walls(s8 nextDirection, s8 wallDisplacement[3],
|
||||
|
||||
if (!is_point_within_radius_of_mario(o->oPosX, o->oPosY, o->oPosZ, 400)) {
|
||||
sControllablePlatformDirectionState = 6;
|
||||
o->oControllablePlatformUnk100 = 1;
|
||||
o->oControllablePlatformIsFarFromMario = 1;
|
||||
o->oTimer = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void controllable_platform_shake_on_wall_hit(void) {
|
||||
if (o->oControllablePlatformUnkF8 == 1 || o->oControllablePlatformUnkF8 == 2) {
|
||||
if (o->oControllablePlatformWallHitDirection == 1 || o->oControllablePlatformWallHitDirection == 2) {
|
||||
o->oFaceAnglePitch = sins(o->oTimer * 0x1000) * 182.04444 * 10.0;
|
||||
o->oPosY = o->oControllablePlatformUnkFC + sins(o->oTimer * 0x2000) * 20.0f;
|
||||
o->oPosY = o->oControllablePlatformInitPosY + sins(o->oTimer * 0x2000) * 20.0f;
|
||||
} else {
|
||||
o->oFaceAngleRoll = sins(o->oTimer * 0x1000) * 182.04444 * 10.0;
|
||||
o->oPosY = o->oControllablePlatformUnkFC + sins(o->oTimer * 0x2000) * 20.0f;
|
||||
o->oPosY = o->oControllablePlatformInitPosY + sins(o->oTimer * 0x2000) * 20.0f;
|
||||
}
|
||||
|
||||
if (o->oTimer == 32) {
|
||||
sControllablePlatformDirectionState = o->oControllablePlatformUnkF8;
|
||||
sControllablePlatformDirectionState = o->oControllablePlatformWallHitDirection;
|
||||
o->oFaceAnglePitch = 0;
|
||||
o->oFaceAngleRoll = 0;
|
||||
o->oPosY = o->oControllablePlatformUnkFC;
|
||||
o->oPosY = o->oControllablePlatformInitPosY;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -163,7 +163,7 @@ void bhv_controllable_platform_loop(void) {
|
||||
case 0:
|
||||
o->oFaceAnglePitch /= 2;
|
||||
o->oFaceAngleRoll /= 2;
|
||||
if (o->oControllablePlatformUnk100 == 1 && o->oTimer > 30) {
|
||||
if (o->oControllablePlatformIsFarFromMario == 1 && o->oTimer > 30) {
|
||||
sControllablePlatformDirectionState = 6;
|
||||
o->oTimer = 0;
|
||||
}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
// cruiser.c.inc
|
||||
|
||||
void bhv_rr_cruiser_wing_init(void) {
|
||||
o->oRRCruiserWingUnkF4 = o->oFaceAngleYaw;
|
||||
o->oRRCruiserWingUnkF8 = o->oFaceAnglePitch;
|
||||
o->oRRCruiserWingInitYaw = o->oFaceAngleYaw;
|
||||
o->oRRCruiserWingInitPitch = o->oFaceAnglePitch;
|
||||
}
|
||||
|
||||
void bhv_rr_cruiser_wing_loop(void) {
|
||||
if (o->oBehParams2ndByte == 0) {
|
||||
o->oFaceAngleYaw = o->oRRCruiserWingUnkF4 + sins(o->oTimer * 0x400) * 8192.0f;
|
||||
o->oFaceAnglePitch = o->oRRCruiserWingUnkF8 + coss(o->oTimer * 0x400) * 2048.0f;
|
||||
o->oFaceAngleYaw = o->oRRCruiserWingInitYaw + sins(o->oTimer * 0x400) * 8192.0f;
|
||||
o->oFaceAnglePitch = o->oRRCruiserWingInitPitch + coss(o->oTimer * 0x400) * 2048.0f;
|
||||
} else {
|
||||
o->oFaceAngleYaw = o->oRRCruiserWingUnkF4 - sins(o->oTimer * 0x400) * 8192.0f;
|
||||
o->oFaceAnglePitch = o->oRRCruiserWingUnkF8 + coss(o->oTimer * 0x400) * 2048.0f;
|
||||
o->oFaceAngleYaw = o->oRRCruiserWingInitYaw - sins(o->oTimer * 0x400) * 8192.0f;
|
||||
o->oFaceAnglePitch = o->oRRCruiserWingInitPitch + coss(o->oTimer * 0x400) * 2048.0f;
|
||||
}
|
||||
#ifndef VERSION_JP
|
||||
if (o->oTimer == 64) {
|
||||
|
||||
@@ -86,45 +86,45 @@ void bhv_door_init(void) {
|
||||
struct Surface *floor;
|
||||
find_floor(x, o->oPosY, z, &floor);
|
||||
if (floor != NULL) {
|
||||
o->oDoorUnkF8 = floor->room;
|
||||
o->oDoorSelfRoom = floor->room;
|
||||
}
|
||||
|
||||
x = o->oPosX + sins(o->oMoveAngleYaw) * 200.0f;
|
||||
z = o->oPosZ + coss(o->oMoveAngleYaw) * 200.0f;
|
||||
find_floor(x, o->oPosY, z, &floor);
|
||||
if (floor != NULL) {
|
||||
o->oDoorUnkFC = floor->room;
|
||||
o->oDoorForwardRoom = floor->room;
|
||||
}
|
||||
|
||||
x = o->oPosX + sins(o->oMoveAngleYaw) * -200.0f;
|
||||
z = o->oPosZ + coss(o->oMoveAngleYaw) * -200.0f;
|
||||
find_floor(x, o->oPosY, z, &floor);
|
||||
if (floor != NULL) {
|
||||
o->oDoorUnk100 = floor->room;
|
||||
o->oDoorBackwardRoom = floor->room;
|
||||
}
|
||||
|
||||
if (o->oDoorUnkF8 > 0 && o->oDoorUnkF8 < 60) {
|
||||
gDoorAdjacentRooms[o->oDoorUnkF8][0] = o->oDoorUnkFC;
|
||||
gDoorAdjacentRooms[o->oDoorUnkF8][1] = o->oDoorUnk100;
|
||||
if (o->oDoorSelfRoom > 0 && o->oDoorSelfRoom < 60) {
|
||||
gDoorAdjacentRooms[o->oDoorSelfRoom][0] = o->oDoorForwardRoom;
|
||||
gDoorAdjacentRooms[o->oDoorSelfRoom][1] = o->oDoorBackwardRoom;
|
||||
}
|
||||
}
|
||||
|
||||
void bhv_star_door_loop_2(void) {
|
||||
s32 doorIsRendering = FALSE;
|
||||
if (gMarioCurrentRoom != 0) {
|
||||
if (o->oDoorUnkF8 == gMarioCurrentRoom)
|
||||
if (o->oDoorSelfRoom == gMarioCurrentRoom)
|
||||
doorIsRendering = TRUE;
|
||||
else if (gMarioCurrentRoom == o->oDoorUnkFC)
|
||||
else if (gMarioCurrentRoom == o->oDoorForwardRoom)
|
||||
doorIsRendering = TRUE;
|
||||
else if (gMarioCurrentRoom == o->oDoorUnk100)
|
||||
else if (gMarioCurrentRoom == o->oDoorBackwardRoom)
|
||||
doorIsRendering = TRUE;
|
||||
else if (gDoorAdjacentRooms[gMarioCurrentRoom][0] == o->oDoorUnkFC)
|
||||
else if (gDoorAdjacentRooms[gMarioCurrentRoom][0] == o->oDoorForwardRoom)
|
||||
doorIsRendering = TRUE;
|
||||
else if (gDoorAdjacentRooms[gMarioCurrentRoom][0] == o->oDoorUnk100)
|
||||
else if (gDoorAdjacentRooms[gMarioCurrentRoom][0] == o->oDoorBackwardRoom)
|
||||
doorIsRendering = TRUE;
|
||||
else if (gDoorAdjacentRooms[gMarioCurrentRoom][1] == o->oDoorUnkFC)
|
||||
else if (gDoorAdjacentRooms[gMarioCurrentRoom][1] == o->oDoorForwardRoom)
|
||||
doorIsRendering = TRUE;
|
||||
else if (gDoorAdjacentRooms[gMarioCurrentRoom][1] == o->oDoorUnk100)
|
||||
else if (gDoorAdjacentRooms[gMarioCurrentRoom][1] == o->oDoorBackwardRoom)
|
||||
doorIsRendering = TRUE;
|
||||
} else
|
||||
doorIsRendering = TRUE;
|
||||
@@ -134,5 +134,5 @@ void bhv_star_door_loop_2(void) {
|
||||
} else {
|
||||
o->header.gfx.node.flags &= ~GRAPH_RENDER_ACTIVE;
|
||||
}
|
||||
o->oDoorUnk88 = doorIsRendering;
|
||||
o->oDoorIsRendering = doorIsRendering;
|
||||
}
|
||||
|
||||
@@ -15,19 +15,19 @@ void elevator_starting_shake(void) {
|
||||
|
||||
void elevator_act_0(void) {
|
||||
o->oVelY = 0;
|
||||
if (o->oElevatorUnk100 == 2) {
|
||||
if (o->oElevatorType == 2) {
|
||||
if (gMarioObject->platform == o) {
|
||||
if (o->oPosY > o->oElevatorUnkFC)
|
||||
if (o->oPosY > o->oElevatorMidY)
|
||||
o->oAction = 2;
|
||||
else
|
||||
o->oAction = 1;
|
||||
}
|
||||
} else if (gMarioObject->oPosY > o->oElevatorUnkFC || o->oElevatorUnk100 == 1) {
|
||||
o->oPosY = o->oElevatorUnkF8;
|
||||
} else if (gMarioObject->oPosY > o->oElevatorMidY || o->oElevatorType == 1) {
|
||||
o->oPosY = o->oElevatorMaxY;
|
||||
if (gMarioObject->platform == o)
|
||||
o->oAction = 2;
|
||||
} else {
|
||||
o->oPosY = o->oElevatorUnkF4;
|
||||
o->oPosY = o->oElevatorMinY;
|
||||
if (gMarioObject->platform == o)
|
||||
o->oAction = 1;
|
||||
}
|
||||
@@ -39,11 +39,11 @@ void elevator_act_1(void) {
|
||||
elevator_starting_shake();
|
||||
approach_f32_signed(&o->oVelY, 10.0f, 2.0f);
|
||||
o->oPosY += o->oVelY;
|
||||
if (o->oPosY > o->oElevatorUnkF8) {
|
||||
o->oPosY = o->oElevatorUnkF8;
|
||||
if (o->oElevatorUnk100 == 2 || o->oElevatorUnk100 == 1)
|
||||
if (o->oPosY > o->oElevatorMaxY) {
|
||||
o->oPosY = o->oElevatorMaxY;
|
||||
if (o->oElevatorType == 2 || o->oElevatorType == 1)
|
||||
o->oAction = 3;
|
||||
else if (gMarioObject->oPosY < o->oElevatorUnkFC)
|
||||
else if (gMarioObject->oPosY < o->oElevatorMidY)
|
||||
o->oAction = 2;
|
||||
else
|
||||
o->oAction = 3;
|
||||
@@ -57,13 +57,13 @@ void elevator_act_2(void) // Pretty similar code to action 1
|
||||
elevator_starting_shake();
|
||||
approach_f32_signed(&o->oVelY, -10.0f, -2.0f);
|
||||
o->oPosY += o->oVelY;
|
||||
if (o->oPosY < o->oElevatorUnkF4) {
|
||||
o->oPosY = o->oElevatorUnkF4;
|
||||
if (o->oElevatorUnk100 == 1)
|
||||
if (o->oPosY < o->oElevatorMinY) {
|
||||
o->oPosY = o->oElevatorMinY;
|
||||
if (o->oElevatorType == 1)
|
||||
o->oAction = 4;
|
||||
else if (o->oElevatorUnk100 == 2)
|
||||
else if (o->oElevatorType == 2)
|
||||
o->oAction = 3;
|
||||
else if (gMarioObject->oPosY > o->oElevatorUnkFC)
|
||||
else if (gMarioObject->oPosY > o->oElevatorMidY)
|
||||
o->oAction = 1;
|
||||
else
|
||||
o->oAction = 3;
|
||||
@@ -94,15 +94,15 @@ void elevator_act_3(void) // nearly identical to action 2
|
||||
void bhv_elevator_init(void) {
|
||||
s32 index = sElevatorHeights[o->oBehParams2ndByte * 3 + 2];
|
||||
if (index == 0) {
|
||||
o->oElevatorUnkF4 = sElevatorHeights[o->oBehParams2ndByte * 3];
|
||||
o->oElevatorUnkF8 = o->oHomeY;
|
||||
o->oElevatorUnkFC = (o->oElevatorUnkF4 + o->oElevatorUnkF8) / 2;
|
||||
o->oElevatorUnk100 = cur_obj_has_behavior(bhvRrElevatorPlatform);
|
||||
o->oElevatorMinY = sElevatorHeights[o->oBehParams2ndByte * 3];
|
||||
o->oElevatorMaxY = o->oHomeY;
|
||||
o->oElevatorMidY = (o->oElevatorMinY + o->oElevatorMaxY) / 2;
|
||||
o->oElevatorType = cur_obj_has_behavior(bhvRrElevatorPlatform);
|
||||
} else {
|
||||
o->oElevatorUnkF4 = sElevatorHeights[o->oBehParams2ndByte * 3];
|
||||
o->oElevatorUnkF8 = sElevatorHeights[o->oBehParams2ndByte * 3 + 1];
|
||||
o->oElevatorUnkFC = (o->oElevatorUnkF4 + o->oElevatorUnkF8) / 2;
|
||||
o->oElevatorUnk100 = 2;
|
||||
o->oElevatorMinY = sElevatorHeights[o->oBehParams2ndByte * 3];
|
||||
o->oElevatorMaxY = sElevatorHeights[o->oBehParams2ndByte * 3 + 1];
|
||||
o->oElevatorMidY = (o->oElevatorMinY + o->oElevatorMaxY) / 2;
|
||||
o->oElevatorType = 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user