Misc gMarioState/gMarioObject cleanup

This commit is contained in:
MysterD 2020-10-10 16:12:29 -07:00
parent 30ac923861
commit fa2606fecb
8 changed files with 28 additions and 13 deletions

View File

@ -77,7 +77,7 @@ void bhv_blue_coin_switch_loop(void) {
// If Mario is on the switch and has ground-pounded,
// recede and get ready to start ticking.
if (gMarioObject->platform == o) {
if (gMarioStates->action == ACT_GROUND_POUND_LAND) {
if (gMarioStates[0].action == ACT_GROUND_POUND_LAND) {
// Set to BLUE_COIN_SWITCH_ACT_RECEDING
o->oAction++;

View File

@ -6,7 +6,7 @@ void bhv_wf_breakable_wall_loop(void) {
network_init_object_field(o, &o->oBreakableWallForce);
}
if (o->oBreakableWallForce || gMarioStates->action == ACT_SHOT_FROM_CANNON) {
if (o->oBreakableWallForce || gMarioStates[0].action == ACT_SHOT_FROM_CANNON) {
cur_obj_become_tangible();
if (o->oBreakableWallForce || obj_check_if_collided_with_object(o, gMarioObject)) {
if (!o->oBreakableWallForce) {

View File

@ -19,8 +19,8 @@ void bhv_castle_floor_trap_init(void) {
}
void bhv_castle_floor_trap_open_detect(void) {
if (gMarioStates->action == ACT_SPECIAL_EXIT_AIRBORNE
|| gMarioStates->action == ACT_SPECIAL_DEATH_EXIT)
if (gMarioStates[0].action == ACT_SPECIAL_EXIT_AIRBORNE
|| gMarioStates[0].action == ACT_SPECIAL_DEATH_EXIT)
o->oAction = 4; // rotates trapdoor so it looks always open
else {
o->oAngleVelRoll = 0x400;

View File

@ -4,6 +4,6 @@ void bhv_pole_base_loop(void) {
if (o->oPosY - 10.0f < gMarioObject->oPosY
&& gMarioObject->oPosY < o->oPosY + o->hitboxHeight + 30.0f)
if (o->oTimer > 10)
if (!(gMarioStates->action & MARIO_PUNCHING))
if (!(gMarioStates[0].action & MARIO_PUNCHING))
cur_obj_push_mario_away(70.0f);
}

View File

@ -31,7 +31,7 @@ void bhv_purple_switch_loop(void) {
case PURPLE_SWITCH_IDLE:
cur_obj_set_model(MODEL_PURPLE_SWITCH);
cur_obj_scale(1.5f);
if (gMarioObject->platform == o && !(gMarioStates->action & MARIO_UNKNOWN_13)) {
if (gMarioObject->platform == o && !(gMarioStates[0].action & MARIO_UNKNOWN_13)) {
if (lateral_dist_between_objects(o, gMarioObject) < 127.5) {
o->oAction = PURPLE_SWITCH_PRESSED;
network_send_object(o);

View File

@ -3,13 +3,21 @@
void bhv_water_mist_spawn_loop(void) {
clear_particle_flags(0x20000);
spawn_object(o, MODEL_MIST, bhvWaterMist);
if (o->parentObj == NULL || o->parentObj->behavior != bhvMario) {
obj_mark_for_deletion(o);
return;
}
spawn_object(o->parentObj, MODEL_MIST, bhvWaterMist);
}
void bhv_water_mist_loop(void) {
if (o->parentObj == NULL || o->parentObj->behavior != bhvMario) {
obj_mark_for_deletion(o);
return;
}
f32 sp1C;
if (o->oTimer == 0) {
o->oMoveAngleYaw = gMarioObject->oMoveAngleYaw;
o->oMoveAngleYaw = o->parentObj->oMoveAngleYaw;
obj_translate_xz_random(o, 10.0f);
}
cur_obj_move_using_fvel_and_gravity();

View File

@ -84,10 +84,15 @@ void bhv_water_droplet_loop(void) {
}
void bhv_idle_water_wave_loop(void) {
obj_copy_pos(o, gMarioObject);
o->oPosY = gMarioStates->waterLevel + 5;
if (!(gMarioObject->oMarioParticleFlags & ACTIVE_PARTICLE_IDLE_WATER_WAVE)) {
gMarioObject->oActiveParticleFlags &= (u16)~ACTIVE_PARTICLE_IDLE_WATER_WAVE;
if (o->parentObj == NULL || o->parentObj->behavior != bhvMario) {
obj_mark_for_deletion(o);
return;
}
obj_copy_pos(o, o->parentObj);
u8 index = o->parentObj->oBehParams - 1;
o->oPosY = gMarioStates[index].waterLevel + 5;
if (!(o->parentObj->oMarioParticleFlags & ACTIVE_PARTICLE_IDLE_WATER_WAVE)) {
o->parentObj->oActiveParticleFlags &= (u16)~ACTIVE_PARTICLE_IDLE_WATER_WAVE;
o->activeFlags = ACTIVE_FLAG_DEACTIVATED;
}
}

View File

@ -665,7 +665,9 @@ static void obj_set_knockback_action(s32 attackType) {
}
o->oFlags &= ~OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW;
o->oMoveAngleYaw = obj_angle_to_object(gMarioObject, o);
struct Object* player = nearest_player_to_object(o);
o->oMoveAngleYaw = obj_angle_to_object(player, o);
}
static void obj_set_squished_action(void) {