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

25 lines
678 B
C
Raw Permalink Normal View History

2019-08-25 04:46:40 +00:00
// bubble.c.inc
void bhv_object_bubble_init(void) {
2020-04-03 18:57:26 +00:00
o->oPosX += random_float() * 30.0f;
o->oPosY += random_float() * 30.0f;
o->oPosZ += random_float() * 30.0f;
2019-08-25 04:46:40 +00:00
}
void bhv_object_bubble_loop(void) {
2020-03-02 03:42:52 +00:00
struct Object *bubbleSplash;
2019-08-25 04:46:40 +00:00
f32 waterY = find_water_level(o->oPosX, o->oPosZ);
f32 bubbleY = o->oPosY;
if (bubbleY > waterY) {
if (gFreeObjectList.next) {
2020-03-02 03:42:52 +00:00
bubbleSplash = spawn_object_at_origin(o, 0, MODEL_SMALL_WATER_SPLASH, bhvBubbleSplash);
bubbleSplash->oPosX = o->oPosX;
bubbleSplash->oPosY = bubbleY + 5.0f;
bubbleSplash->oPosZ = o->oPosZ;
2019-08-25 04:46:40 +00:00
}
o->activeFlags = 0;
}
}