Path: blob/master/src/game/behaviors/animated_floor_switch.inc.c
7861 views
// animated_floor_switch.inc.c12struct Struct80331A54 {3const void *unk00;4s16 unk04;5};67struct Struct80331A54 D_80331A54[][5] = {8{9{ bits_seg7_collision_0701B734, MODEL_BITS_STAIRCASE_FRAME4 },10{ bits_seg7_collision_0701B59C, MODEL_BITS_STAIRCASE_FRAME3 },11{ bits_seg7_collision_0701B404, MODEL_BITS_STAIRCASE_FRAME2 },12{ bits_seg7_collision_0701B26C, MODEL_BITS_STAIRCASE_FRAME1 },13{ bits_seg7_collision_0701B0D4, MODEL_BITS_STAIRCASE },14},15{16{ bitdw_seg7_collision_0700FD9C, MODEL_BITDW_STAIRCASE },17{ bitdw_seg7_collision_0700FC7C, MODEL_BITDW_STAIRCASE_FRAME1 },18{ bitdw_seg7_collision_0700FB5C, MODEL_BITDW_STAIRCASE_FRAME2 },19{ bitdw_seg7_collision_0700FA3C, MODEL_BITDW_STAIRCASE_FRAME3 },20{ bitdw_seg7_collision_0700F91C, MODEL_BITDW_STAIRCASE_FRAME4 },21},22{23{ rr_seg7_collision_0702A6B4, MODEL_RR_TRICKY_TRIANGLES_FRAME4 },24{ rr_seg7_collision_0702A32C, MODEL_RR_TRICKY_TRIANGLES_FRAME3 },25{ rr_seg7_collision_07029FA4, MODEL_RR_TRICKY_TRIANGLES_FRAME2 },26{ rr_seg7_collision_07029C1C, MODEL_RR_TRICKY_TRIANGLES_FRAME1 },27{ rr_seg7_collision_07029924, MODEL_RR_TRICKY_TRIANGLES },28},29};3031s16 D_80331ACC[] = { 250, 200, 200 };3233void bhv_animates_on_floor_switch_press_init(void) {34o->parentObj = cur_obj_nearest_object_with_behavior(bhvFloorSwitchAnimatesObject);35}3637void bhv_animates_on_floor_switch_press_loop(void) {38if (o->oFloorSwitchPressAnimationUnk100 != 0) {39if (o->parentObj->oAction != 2) {40o->oFloorSwitchPressAnimationUnk100 = 0;41}4243if (o->oFloorSwitchPressAnimationUnkFC != 0) {44o->oFloorSwitchPressAnimationUnkF4 = D_80331ACC[o->oBehParams2ndByte];45} else {46o->oFloorSwitchPressAnimationUnkF4 = 0;47}48} else if (o->parentObj->oAction == 2) {49o->oFloorSwitchPressAnimationUnkFC ^= 1;50o->oFloorSwitchPressAnimationUnk100 = 1;51}5253if (o->oFloorSwitchPressAnimationUnkF4 != 0) {54if (o->oFloorSwitchPressAnimationUnkF4 < 60) {55cur_obj_play_sound_1(SOUND_GENERAL2_SWITCH_TICK_SLOW);56} else {57cur_obj_play_sound_1(SOUND_GENERAL2_SWITCH_TICK_FAST);58}5960if (--o->oFloorSwitchPressAnimationUnkF4 == 0) {61o->oFloorSwitchPressAnimationUnkFC = 0;62}6364if (o->oFloorSwitchPressAnimationUnkF8 < 9) {65o->oFloorSwitchPressAnimationUnkF8 += 1;66}67} else if ((o->oFloorSwitchPressAnimationUnkF8 -= 2) < 0) {68o->oFloorSwitchPressAnimationUnkF8 = 0;69o->oFloorSwitchPressAnimationUnkFC = 1;70}7172o->collisionData = segmented_to_virtual(73D_80331A54[o->oBehParams2ndByte][o->oFloorSwitchPressAnimationUnkF8 / 2].unk00);7475cur_obj_set_model(D_80331A54[o->oBehParams2ndByte][o->oFloorSwitchPressAnimationUnkF8 / 2].unk04);76}777879