sm64pc/src/game/behaviors/lll_floating_wood_piece.inc.c

41 lines
1.1 KiB
C
Raw Normal View History

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