2019-08-25 00:46:40 -04:00
|
|
|
// bubble.c.inc
|
|
|
|
|
|
|
|
void bhv_object_bubble_init(void) {
|
|
|
|
o->oPosX += RandomFloat() * 30.0f;
|
|
|
|
o->oPosY += RandomFloat() * 30.0f;
|
|
|
|
o->oPosZ += RandomFloat() * 30.0f;
|
|
|
|
}
|
|
|
|
|
|
|
|
void bhv_object_bubble_loop(void) {
|
2020-03-01 22:42:52 -05:00
|
|
|
struct Object *bubbleSplash;
|
2019-08-25 00:46:40 -04:00
|
|
|
f32 waterY = find_water_level(o->oPosX, o->oPosZ);
|
|
|
|
f32 bubbleY = o->oPosY;
|
|
|
|
|
|
|
|
if (bubbleY > waterY) {
|
|
|
|
if (gFreeObjectList.next) {
|
2020-03-01 22:42:52 -05: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 00:46:40 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
o->activeFlags = 0;
|
|
|
|
}
|
|
|
|
}
|