1
Fork 0
sm64/src/game/behaviors/lll_floating_wood_piece.inc.c

35 lines
1 KiB
C
Raw Normal View History

2019-08-25 00:46:40 -04:00
// lll_floating_wood_piece.c.inc
void bhv_lll_wood_piece_loop(void) {
if (o->oTimer == 0)
o->oPosY -= 100.0f;
2020-06-02 12:44:34 -04:00
o->oPosY += sins(o->oLllWoodPieceOscillationTimer) * 3.0f;
o->oLllWoodPieceOscillationTimer += 0x400;
2019-08-25 00:46:40 -04:00
if (o->parentObj->oAction == 2)
2020-03-01 22:42:52 -05:00
obj_mark_for_deletion(o);
2019-08-25 00:46:40 -04:00
}
void bhv_lll_floating_wood_bridge_loop(void) {
struct Object *sp3C;
s32 i;
switch (o->oAction) {
case 0:
if (o->oDistanceToMario < 2500.0f) {
for (i = 1; i < 4; i++) {
sp3C = spawn_object_relative(0, (i - 2) * 300, 0, 0, o, MODEL_LLL_WOOD_BRIDGE,
bhvLllWoodPiece);
2020-06-02 12:44:34 -04:00
sp3C->oLllWoodPieceOscillationTimer = i * 4096;
2019-08-25 00:46:40 -04:00
}
o->oAction = 1;
}
break;
case 1:
if (o->oDistanceToMario > 2600.0f)
o->oAction = 2;
break;
case 2:
o->oAction = 0;
break;
}
}