38 lines
1.0 KiB
C
38 lines
1.0 KiB
C
// lll_hexagonal_ring.c.inc
|
|
|
|
void bhv_lll_rotating_hexagonal_ring_loop(void) {
|
|
UNUSED s32 unused;
|
|
o->oCollisionDistance = 4000.0f;
|
|
o->oDrawingDistance = 8000.0f;
|
|
switch (o->oAction) {
|
|
case 0:
|
|
if (gMarioObject->platform == o)
|
|
o->oAction++;
|
|
o->oAngleVelYaw = 0x100;
|
|
break;
|
|
case 1:
|
|
o->oAngleVelYaw = 256.0f - sins(o->oTimer << 7) * 256.0f;
|
|
if (o->oTimer > 128)
|
|
o->oAction++;
|
|
break;
|
|
case 2:
|
|
if (gMarioObject->platform != o)
|
|
o->oAction++;
|
|
if (o->oTimer > 128)
|
|
o->oAction++;
|
|
o->oAngleVelYaw = 0;
|
|
func_802BBFDC();
|
|
break;
|
|
case 3:
|
|
o->oAngleVelYaw = sins(o->oTimer << 7) * 256.0f;
|
|
if (o->oTimer > 128)
|
|
o->oAction = 0;
|
|
break;
|
|
case 4:
|
|
o->oAction = 0;
|
|
break;
|
|
}
|
|
o->oAngleVelYaw = -o->oAngleVelYaw;
|
|
o->oMoveAngleYaw += o->oAngleVelYaw;
|
|
}
|