Path: blob/master/src/game/behaviors/bouncing_fireball.inc.c
7861 views
// bouncing_fireball.c.inc12void bhv_bouncing_fireball_flame_loop(void) {3o->activeFlags |= ACTIVE_FLAG_UNK10;4cur_obj_update_floor_and_walls();5switch (o->oAction) {6case 0:7if (o->oTimer == 0) {8o->oAnimState = random_float() * 10.0f;9o->oVelY = 30.0f;10}11if (o->oMoveFlags & OBJ_MOVE_LANDED)12o->oAction++;13break;14case 1:15if (o->oTimer == 0) {16o->oVelY = 50.0f;17o->oForwardVel = 30.0f;18}19if (o->oMoveFlags & (OBJ_MOVE_UNDERWATER_ON_GROUND | OBJ_MOVE_AT_WATER_SURFACE | OBJ_MOVE_ON_GROUND) && o->oTimer > 100)20obj_mark_for_deletion(o);21break;22}23if (o->oTimer > 300)24obj_mark_for_deletion(o);25cur_obj_move_standard(78);26o->oInteractStatus = 0;27}2829void bhv_bouncing_fireball_loop(void) {30struct Object *sp2C;31f32 sp28;32switch (o->oAction) {33case 0:34if (o->oDistanceToMario < 2000.0f)35o->oAction = 1;36break;37case 1:38sp2C = spawn_object(o, MODEL_RED_FLAME, bhvBouncingFireballFlame);39sp28 = (10 - o->oTimer) * 0.5;40obj_scale_xyz(sp2C, sp28, sp28, sp28);41if (o->oTimer == 0)42obj_become_tangible(sp2C);43if (o->oTimer > 10)44o->oAction++;45break;46case 2:47if (o->oTimer == 0)48o->oBouncingFireBallUnkF4 = random_float() * 100.0f;49if (o->oBouncingFireBallUnkF4 + 100 < o->oTimer)50o->oAction = 0;51break;52}53}545556