Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MorsGames
GitHub Repository: MorsGames/sm64plus
Path: blob/master/src/game/behaviors/bubble.inc.c
7861 views
1
// bubble.c.inc
2
3
void bhv_object_bubble_init(void) {
4
o->oPosX += random_float() * 30.0f;
5
o->oPosY += random_float() * 30.0f;
6
o->oPosZ += random_float() * 30.0f;
7
}
8
9
void bhv_object_bubble_loop(void) {
10
struct Object *bubbleSplash;
11
f32 waterY = find_water_level(o->oPosX, o->oPosZ);
12
f32 bubbleY = o->oPosY;
13
14
if (bubbleY > waterY) {
15
if (
16
#ifdef USE_SYSTEM_MALLOC
17
TRUE
18
#else
19
gFreeObjectList.next != NULL
20
#endif
21
) {
22
bubbleSplash = spawn_object_at_origin(o, 0, MODEL_SMALL_WATER_SPLASH, bhvBubbleSplash);
23
bubbleSplash->oPosX = o->oPosX;
24
bubbleSplash->oPosY = bubbleY + 5.0f;
25
bubbleSplash->oPosZ = o->oPosZ;
26
}
27
28
o->activeFlags = ACTIVE_FLAG_DEACTIVATED;
29
}
30
}
31
32