Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MorsGames
GitHub Repository: MorsGames/sm64plus
Path: blob/master/src/game/behaviors/bowser_key.inc.c
7861 views
1
// bowser_key.c.inc
2
3
struct ObjectHitbox sBowserKeyHitbox = {
4
/* interactType: */ INTERACT_STAR_OR_KEY,
5
/* downOffset: */ 0,
6
/* damageOrCoinValue: */ 0,
7
/* health: */ 0,
8
/* numLootCoins: */ 0,
9
/* radius: */ 160,
10
/* height: */ 100,
11
/* hurtboxRadius: */ 160,
12
/* hurtboxHeight: */ 100,
13
};
14
15
void bhv_bowser_key_loop(void) {
16
cur_obj_scale(0.5f);
17
if (o->oAngleVelYaw > 0x400)
18
o->oAngleVelYaw -= 0x100;
19
o->oFaceAngleYaw += o->oAngleVelYaw;
20
o->oFaceAngleRoll = -0x4000;
21
o->oGraphYOffset = 165.0f;
22
if (o->oAction == 0) {
23
if (o->oTimer == 0)
24
o->oVelY = 70.0f;
25
spawn_sparkle_particles(3, 200, 80, -60);
26
spawn_object(o, MODEL_NONE, bhvSparkleSpawn);
27
cur_obj_update_floor_and_walls();
28
cur_obj_move_standard(78);
29
if (o->oMoveFlags & OBJ_MOVE_ON_GROUND)
30
o->oAction++;
31
else if (o->oMoveFlags & OBJ_MOVE_LANDED)
32
#ifndef VERSION_JP
33
cur_obj_play_sound_2(SOUND_GENERAL_UNKNOWN3_2);
34
#else
35
cur_obj_play_sound_2(SOUND_GENERAL_UNKNOWN3_LOWPRIO);
36
#endif
37
} else {
38
obj_set_hitbox(o, &sBowserKeyHitbox);
39
if (o->oInteractStatus & INT_STATUS_INTERACTED) {
40
mark_obj_for_deletion(o);
41
o->oInteractStatus = 0;
42
}
43
}
44
}
45
46