mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-10-20 12:12:39 +00:00
36 lines
894 B
C
36 lines
894 B
C
|
|
/**
|
|
* Behavior for TTC spinner.
|
|
*/
|
|
|
|
/**
|
|
* Spinner speeds on each setting.
|
|
*/
|
|
static s16 sTTCSpinnerSpeeds[] = {
|
|
/* TTC_SPEED_SLOW */ 200,
|
|
/* TTC_SPEED_FAST */ 600,
|
|
/* TTC_SPEED_RANDOM */ 200,
|
|
/* TTC_SPEED_STOPPED */ 0,
|
|
};
|
|
|
|
/**
|
|
* Update function for bhvTTCSpinner.
|
|
*/
|
|
void bhv_ttc_spinner_update(void) {
|
|
o->oAngleVelPitch = sTTCSpinnerSpeeds[gTTCSpeedSetting];
|
|
|
|
if (gTTCSpeedSetting == TTC_SPEED_RANDOM) {
|
|
if (o->oTimer > o->oTTCChangeDirTimer) {
|
|
o->oTTCSpinnerDir = random_sign();
|
|
o->oTTCChangeDirTimer = random_mod_offset(30, 30, 4);
|
|
o->oTimer = 0;
|
|
} else if (o->oTimer > 5) {
|
|
o->oAngleVelPitch *= o->oTTCSpinnerDir;
|
|
} else {
|
|
// Stop for 5 frames after changing direction
|
|
o->oAngleVelPitch = 0;
|
|
}
|
|
}
|
|
|
|
o->oFaceAnglePitch += o->oAngleVelPitch;
|
|
}
|