Path: blob/master/src/game/behaviors/celebration_star.inc.c
7861 views
// celebration_star.c.inc12void bhv_celebration_star_init(void) {3o->oHomeX = gMarioObject->header.gfx.pos[0];4o->oPosY = gMarioObject->header.gfx.pos[1] + 30.0f;5o->oHomeZ = gMarioObject->header.gfx.pos[2];6o->oMoveAngleYaw = gMarioObject->header.gfx.angle[1] + 0x8000;7o->oCelebStarDiameterOfRotation = 100;8#if BUGFIX_STAR_BOWSER_KEY9if ((!configReplaceKeysWithStars) && (gCurrLevelNum == LEVEL_BOWSER_1 || gCurrLevelNum == LEVEL_BOWSER_2)) {10o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_BOWSER_KEY];11o->oFaceAnglePitch = 0;12o->oFaceAngleRoll = 49152;13cur_obj_scale(0.1f);14o->oCelebStarUnkF4 = 1;15} else {16o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_STAR];17o->oFaceAnglePitch = 0;18o->oFaceAngleRoll = 0;19cur_obj_scale(0.4f);20o->oCelebStarUnkF4 = 0;21}22#else23o->header.gfx.sharedChild = gLoadedGraphNodes[MODEL_STAR];24cur_obj_scale(0.4f);25o->oFaceAnglePitch = 0;26o->oFaceAngleRoll = 0;27#endif28}2930void celeb_star_act_spin_around_mario(void) {31o->oPosX = o->oHomeX + sins(o->oMoveAngleYaw) * (f32)(o->oCelebStarDiameterOfRotation / 2);32o->oPosZ = o->oHomeZ + coss(o->oMoveAngleYaw) * (f32)(o->oCelebStarDiameterOfRotation / 2);33o->oPosY += 5.0f;34o->oFaceAngleYaw += 0x1000;35o->oMoveAngleYaw += 0x2000;3637if (o->oTimer == 40)38o->oAction = CELEB_STAR_ACT_FACE_CAMERA;39if (o->oTimer < 35) {40spawn_object(o, MODEL_SPARKLES, bhvCelebrationStarSparkle);41o->oCelebStarDiameterOfRotation++;42} else43o->oCelebStarDiameterOfRotation -= 20;44}4546void celeb_star_act_face_camera(void) {4748if (o->oTimer < 10) {49#if BUGFIX_STAR_BOWSER_KEY50if (o->oCelebStarUnkF4 == 0) {51cur_obj_scale((f32) o->oTimer / 10.0);52} else {53cur_obj_scale((f32) o->oTimer / 30.0);54}55#else56cur_obj_scale((f32) o->oTimer / 10.0);57#endif58o->oFaceAngleYaw += 0x1000;59} else {60o->oFaceAngleYaw = gMarioObject->header.gfx.angle[1];61}6263if (o->oTimer == 59)64o->activeFlags = ACTIVE_FLAG_DEACTIVATED;65}6667void bhv_celebration_star_loop(void) {68switch (o->oAction) {69case CELEB_STAR_ACT_SPIN_AROUND_MARIO:70celeb_star_act_spin_around_mario();71break;7273case CELEB_STAR_ACT_FACE_CAMERA:74celeb_star_act_face_camera();75break;76}77}7879void bhv_celebration_star_sparkle_loop(void) {80o->oPosY -= 15.0f;8182if (o->oTimer == 12)83o->activeFlags = ACTIVE_FLAG_DEACTIVATED;84}8586void bhv_star_key_collection_puff_spawner_loop(void) {87spawn_mist_particles_variable(0, 10, 30.0f);88o->activeFlags = ACTIVE_FLAG_DEACTIVATED;89}909192