intro_scene.inc.c (3369B)
1 // intro_scene.inc.c 2 3 void spawn_child_obj_relative(struct Object *parent, s16 xOffset, s16 yOffset, s16 zOffset, 4 s16 pitchOffset, s16 yawOffset, s16 rollOffset, 5 s16 forwardVel, s32 model, const BehaviorScript *behavior) { 6 struct Object *obj = spawn_object(parent, model, behavior); 7 8 obj->header.gfx.animInfo.animFrame = random_float() * 6.0f; 9 obj->oEndBirdUnk104 = sCutsceneVars[9].point[0]; 10 11 sCutsceneVars[9].point[0] += 1.0f; 12 13 obj->oPosX += xOffset; 14 obj->oPosY += yOffset; 15 16 if (gCutsceneTimer > 700) { 17 obj->oPosY += -150.0f; 18 } 19 20 obj->oPosZ += zOffset; 21 obj->oMoveAnglePitch += pitchOffset; 22 obj->oMoveAngleYaw += yawOffset; 23 obj->oMoveAngleRoll += rollOffset; 24 obj->oForwardVel = forwardVel; 25 } 26 27 void bhv_intro_scene_loop(void) { 28 UNUSED struct Object *obj; 29 30 if (gCutsceneObjSpawn != 0) { 31 o->oPosX = gCamera->pos[0]; 32 o->oPosY = gCamera->pos[1]; 33 o->oPosZ = gCamera->pos[2]; 34 35 o->oMoveAnglePitch = 0; 36 o->oMoveAngleYaw = 0; 37 38 switch (gCutsceneObjSpawn) { 39 case 6: 40 obj = spawn_object(o, MODEL_LAKITU, bhvBeginningLakitu); 41 break; 42 43 case 5: 44 obj = spawn_object(o, MODEL_PEACH, bhvBeginningPeach); 45 break; 46 47 case 7: 48 spawn_child_obj_relative( 49 o, 0, 205, 500, 0x1000, 0x6000, -0x1E00, 25, MODEL_BIRDS, bhvEndBirds1); 50 spawn_child_obj_relative( 51 o, 0, 205, 800, 0x1800, 0x6000, -0x1400, 35, MODEL_BIRDS, bhvEndBirds1); 52 spawn_child_obj_relative( 53 o, -100, 300, 500, 0x800, 0x6000, 0, 25, MODEL_BIRDS, bhvEndBirds1); 54 spawn_child_obj_relative( 55 o, 100, -200, 800, 0, 0x4000, 0x1400, 45, MODEL_BIRDS, bhvEndBirds1); 56 spawn_child_obj_relative( 57 o, -80, 300, 350, 0x1800, 0x5000, 0xA00, 35, MODEL_BIRDS, bhvEndBirds1); 58 spawn_child_obj_relative( 59 o, -300, 300, 500, 0x800, 0x6000, 0x2800, 25, MODEL_BIRDS, bhvEndBirds1); 60 spawn_child_obj_relative( 61 o, -400, -200, 800, 0, 0x4000, -0x1400, 45, MODEL_BIRDS, bhvEndBirds1); 62 break; 63 64 case 9: 65 spawn_child_obj_relative( 66 o, 50, 205, 500, 0x1000, 0x6000, 0, 35, MODEL_BIRDS, bhvEndBirds1); 67 spawn_child_obj_relative( 68 o, 0, 285, 800, 0x1800, 0x6000, 0, 35, MODEL_BIRDS, bhvEndBirds1); 69 break; 70 71 case 8: 72 spawn_child_obj_relative( 73 o, -100, -100, -700, 0, 0, -0xF00, 25, MODEL_BIRDS, bhvEndBirds2); 74 spawn_child_obj_relative( 75 o, -250, 255, -200, 0, 0, -0x1400, 25, MODEL_BIRDS, bhvEndBirds2); 76 spawn_child_obj_relative( 77 o, -100, 155, -600, 0, 0, -0x500, 35, MODEL_BIRDS, bhvEndBirds2); 78 spawn_child_obj_relative( 79 o, 250, 200, -1200, 0, 0, -0x700, 25, MODEL_BIRDS, bhvEndBirds2); 80 spawn_child_obj_relative( 81 o, -250, 255, -700, 0, 0, 0, 25, MODEL_BIRDS, bhvEndBirds2); 82 break; 83 } 84 85 gCutsceneObjSpawn = 0; 86 } 87 }