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

47 lines
1.4 KiB
C

/**
* Behavior for bhvHauntedBookshelf.
* This is the bookshelf that recedes after solving the puzzle of the haunted books.
* Its sole purpose is to recede when its action is set to 1 by a bhvHauntedBookshelfManager.
*/
/**
* Update function for bhvHauntedBookshelf.
*/
void bhv_haunted_bookshelf_loop(void) {
// oDistanceToMario is unused by this object.
// This may have been used for revealing the books when Mario comes near,
// but in the final game this is done by bhvHauntedBookshelfManager.
o->oDistanceToMario = dist_between_objects(o, gMarioObject);
o->oFaceAngleYaw = 0;
switch (o->oAction) {
case HAUNTED_BOOKSHELF_ACT_IDLE:
// ???
if (o->oTimer == 0) {
}
// This code never runs, since the action is set to 1 directly
// by bhvHauntedBookshelfManager. Maybe this was
// intended to be used to set the action instead?
if (o->oHauntedBookshelfShouldOpen != FALSE) {
o->oAction++;
}
break;
case HAUNTED_BOOKSHELF_ACT_RECEDE:
// Move the bookshelf and play the sound
o->oPosX += 5.0f;
cur_obj_play_sound_1(SOUND_ENV_ELEVATOR4_2);
// Delete the object after 102 frames
if (o->oTimer > 101) {
obj_mark_for_deletion(o);
}
break;
default:
break;
}
}