Super Mario 64 Source
A Super Mario 64 decompilation, brought to you by a bunch of clever folks.
Functions | Variables
beta_boo_key.inc.c File Reference

Functions

void bhv_alpha_boo_key_loop (void)
 Behavior for bhvAlphaBooKey and bhvBetaBooKey. More...
 
static void beta_boo_key_dropped_loop (void)
 Continue to make the key fall, and handle collection. More...
 
static void beta_boo_key_drop (void)
 Drop the key. More...
 
static void beta_boo_key_inside_boo_loop (void)
 Update the key to be inside its parent boo, and handle the boo dying. More...
 
void bhv_beta_boo_key_loop (void)
 Update function for bhvBetaBooKey. More...
 

Variables

static void(* sBetaBooKeyActions [])(void)
 

Function Documentation

◆ beta_boo_key_drop()

static void beta_boo_key_drop ( void  )
static

Drop the key.

This function is run once, the frame after the boo dies; It immediately sets the action to BETA_BOO_KEY_ACT_DROPPED.

◆ beta_boo_key_dropped_loop()

static void beta_boo_key_dropped_loop ( void  )
static

Continue to make the key fall, and handle collection.

◆ beta_boo_key_inside_boo_loop()

static void beta_boo_key_inside_boo_loop ( void  )
static

Update the key to be inside its parent boo, and handle the boo dying.

◆ bhv_alpha_boo_key_loop()

void bhv_alpha_boo_key_loop ( void  )

Behavior for bhvAlphaBooKey and bhvBetaBooKey.

They were apparently intended to be a key that would be contained in boos and would fall out, like coins do. There is a model, MODEL_BETA_BOO_KEY, that is loaded in script_func_global_10, which contains boo-themed models used in BBH and the castle courtyard. It is used in a macro preset with bhvAlphaBooKey, which is also grouped near other boo/BBH-related macros. This is evidence that bhvAlphaBooKey was supposed to be a key. bhvBetaBooKey has code similar to bhvAlphaBooKey's for rotation and collection, and functions correctly when spawned as a child of a boo (it checks the death status of the boo to know when to drop, so this is almost definitely what was intended). It appears that bhvAlphaBooKey was abandoned for reasons unknown and replaced with bhvBetaBooKey. Update function for bhvAlphaBooKey. It rotates the key, and deletes it when collected. The code in this function is similar to that found in bhvBetaBooKey code, which implies that these are 2 versions of the same object. It is a less developed version of bhvBetaBooKey, hence the "alpha" moniker.

◆ bhv_beta_boo_key_loop()

void bhv_beta_boo_key_loop ( void  )

Update function for bhvBetaBooKey.

Variable Documentation

◆ sBetaBooKeyActions

void(* sBetaBooKeyActions[])(void)
static
Initial value:
static void beta_boo_key_dropped_loop(void)
Continue to make the key fall, and handle collection.
Definition: beta_boo_key.inc.c:52
static void beta_boo_key_drop(void)
Drop the key.
Definition: beta_boo_key.inc.c:110
static void beta_boo_key_inside_boo_loop(void)
Update the key to be inside its parent boo, and handle the boo dying.
Definition: beta_boo_key.inc.c:147