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

39 lines
1012 B
C

// koopa_shell_underwater.c.inc
struct ObjectHitbox sKoopaShellUnderwaterHitbox = {
/* interactType: */ INTERACT_GRABBABLE,
/* downOffset: */ 0,
/* damageOrCoinValue: */ 0,
/* health: */ 1,
/* numLootCoins: */ 0,
/* radius: */ 80,
/* height: */ 50,
/* hurtboxRadius: */ 0,
/* hurtboxHeight: */ 0,
};
void set_koopa_shell_underwater_hitbox(void) {
obj_set_hitbox(o, &sKoopaShellUnderwaterHitbox);
}
void bhv_koopa_shell_underwater_loop(void) {
switch (o->oHeldState) {
case HELD_FREE:
set_koopa_shell_underwater_hitbox();
break;
case HELD_HELD:
cur_obj_unrender_and_reset_state(-1, 0);
break;
case HELD_THROWN:
case HELD_DROPPED:
obj_mark_for_deletion(o);
spawn_mist_particles();
break;
}
if (o->oInteractStatus & INT_STATUS_STOP_RIDING) {
obj_mark_for_deletion(o);
spawn_mist_particles();
}
o->oInteractStatus = 0;
}