155 lines
9.0 KiB
Plaintext
155 lines
9.0 KiB
Plaintext
#include "in_g_cutscene"
|
|
|
|
void main()
|
|
{
|
|
// Find actors
|
|
object oPC = GetFirstPC();
|
|
object oGuard1 = GetObjectByTag("g_npc_guard1");
|
|
object oGuard2 = GetObjectByTag("g_npc_guard2");
|
|
object oCaptain = GetObjectByTag("g_npc_captain");
|
|
object oMan1 = GetObjectByTag("st_npc_townman1");
|
|
object oMan2 = GetObjectByTag("st_npc_townman2");
|
|
object oWoman = GetObjectByTag("st_npc_townwoman");
|
|
object oGawper1 = GetObjectByTag("st_npc_gawper1");
|
|
object oGawper2 = GetObjectByTag("st_npc_gawper2");
|
|
object oGawper3 = GetObjectByTag("st_npc_gawper3");
|
|
|
|
|
|
|
|
// Find waypoints
|
|
object oWPPC_1 = GetWaypointByTag("wp_in_pc_1");
|
|
object oWPPC_2 = GetWaypointByTag("wp_in_pc_2");
|
|
object oWPReturn = GetWaypointByTag("wp_ho_entry");
|
|
object oWPGuard1_1 = GetWaypointByTag("wp_in_guard1_1");
|
|
object oWPGuard1_2 = GetWaypointByTag("wp_in_guard1_2");
|
|
object oWPCaptain_1 = GetWaypointByTag("wp_in_captain_1");
|
|
|
|
|
|
|
|
// Start the cutscene
|
|
GestaltStartCutscene (oPC, "st_mv_intro");
|
|
|
|
// Clear any associates
|
|
GestaltClearAssociates (0.0, oPC, 63,1);
|
|
|
|
// Start Guard 1 warming his hands at the fire until captain gets there
|
|
GestaltAnimate (0.0, oGuard1, ANIMATION_LOOPING_GET_MID,11.0);
|
|
|
|
// Start Woman praying
|
|
GestaltAnimate (0.0, oWoman, ANIMATION_LOOPING_MEDITATE,10.0);
|
|
|
|
// Move player and guard captain to target waypoints at a walk in 13.0 seconds
|
|
GestaltActionMove (0.0, oPC, oWPPC_1,FALSE,0.0,13.0);
|
|
GestaltActionMove (0.0, oCaptain, oWPCaptain_1,FALSE,0.0,13.0);
|
|
|
|
// Set them to face in the same direction as their waypoint when they get there
|
|
GestaltActionFace (0.01, oPC, 0.0,1,oWPPC_1);
|
|
GestaltActionFace (0.01, oCaptain, 0.0,1,oWPCaptain_1);
|
|
|
|
// PC and Captain chat as they walk
|
|
GestaltSpeak (0.0, oCaptain, "I think the guard said he just saw Kumal outside!");
|
|
GestaltSpeak (3.0, oPC, "What's so important about this job Kumal has for me?");
|
|
GestaltSpeak (9.0, oCaptain, "A thief who stole a book just fenced it to Kumal. The note I gave you from Kumal tells more about it.");
|
|
|
|
// Guard 2 salutes as Captain walks past
|
|
GestaltAnimate (8.0, oGuard2, ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD);
|
|
|
|
// As the PC and Captain approach, woman starts wailing
|
|
GestaltPlaySound (10.1, oWoman, "as_pl_wailingf1");
|
|
GestaltAnimate (10.2, oWoman, ANIMATION_LOOPING_TALK_PLEADING,8.0);
|
|
|
|
// Guard 1 comes to salute captain and captain returns salute
|
|
GestaltActionMove (12.00, oGuard1, oWPGuard1_1);
|
|
GestaltActionFace (12.01, oGuard1, 0.0,1,oWPGuard1_1);
|
|
GestaltActionAnimate (12.02, oGuard1, ANIMATION_FIREFORGET_SALUTE);
|
|
GestaltActionAnimate (14.0, oCaptain, ANIMATION_FIREFORGET_SALUTE);
|
|
|
|
// Guard 1 reports in
|
|
GestaltSpeak (15.0, oCaptain, "Well, did you see Kumal outside?");
|
|
GestaltPlaySound (17.0, oGuard1, "as_pl_soldierm3");
|
|
GestaltSpeak (17.0, oGuard1, "Yes sir.. uh.. ma'am. Sure did, in alley out of the south entrance. Past that wailing woman.");
|
|
|
|
// Crowd gawps
|
|
GestaltAnimate (15.0, oGawper3, ANIMATION_LOOPING_LOOK_FAR,6.0);
|
|
GestaltAnimate (16.0, oGawper1, ANIMATION_LOOPING_LOOK_FAR,5.0);
|
|
|
|
// Gawper 1 calls to Gawper 2, who looks to see what's going on
|
|
GestaltFace (21.0, oGawper1, 0.0,2,oGawper2);
|
|
GestaltAnimate (22.0, oGawper1, ANIMATION_FIREFORGET_GREETING);
|
|
GestaltAnimate (23.0, oGawper2, ANIMATION_FIREFORGET_HEAD_TURN_LEFT);
|
|
GestaltAnimate (25.0, oGawper2, ANIMATION_LOOPING_LOOK_FAR,10.0);
|
|
GestaltFace (25.0, oGawper1, 0.0,2,oWPPC_2);
|
|
GestaltAnimate (28.0, oGawper3, ANIMATION_LOOPING_LOOK_FAR,4.0);
|
|
|
|
// Woman finishes moaning and goes back to praying and crying
|
|
GestaltPlaySound (22.3, oWoman, "as_pl_cryingf1");
|
|
GestaltPlaySound (28.0, oWoman, "as_pl_cryingf2");
|
|
GestaltAnimate (28.1, oWoman, ANIMATION_LOOPING_MEDITATE,55.0);
|
|
|
|
// Turn the PC to face the Captain and ask what's going on
|
|
GestaltActionFace (27.00, oPC, 0.0,2,oCaptain);
|
|
GestaltActionSpeak (27.01, oPC, "What's going on with that woman? She's causing quite a scene.",NORMAL,3.0);
|
|
|
|
// Captain dismisses Guard 1, who walks back to his fire
|
|
GestaltActionAnimate (28.0, oCaptain, ANIMATION_FIREFORGET_SALUTE);
|
|
GestaltActionAnimate (29.0, oGuard1, ANIMATION_FIREFORGET_SALUTE);
|
|
GestaltActionMove (30.00, oGuard1, oWPGuard1_2);
|
|
GestaltActionFace (30.01, oGuard1, 0.0,1,oWPGuard1_2);
|
|
|
|
// Captain turns to face the PC and explains what's going on
|
|
GestaltActionFace (29.5, oCaptain, 0.0,2,oPC);
|
|
GestaltActionSpeak (30.0, oCaptain, "Never mind her, are you ready?",NORMAL,24.0);
|
|
GestaltSpeak (42.0, oCaptain, "You need to get out there and do the job with Kumal.");
|
|
|
|
// Meanwhile in the background, the menfolk start talking
|
|
GestaltPlaySound (40.1, oMan2, "as_pl_wailingm1");
|
|
GestaltPlaySound (45.1, oMan1, "as_pl_wailingm4");
|
|
GestaltPlaySound (51.1, oMan2, "as_pl_wailingm3");
|
|
GestaltPlaySound (58.1, oMan1, "as_pl_cryingm3");
|
|
|
|
// Start Men playing talk animations as they come into view of camera
|
|
GestaltAnimate (75.0, oMan1, PLEADING,20.0);
|
|
GestaltAnimate (75.0, oMan2, NORMAL,20.0);
|
|
|
|
// PC twigs what's going on
|
|
GestaltSpeak (54.0, oPC, "Is that the Gray Mouser..? Sorry.. Yes, I will but.. It's not just that woman. There are other Lankhmarts here in a similar state. What's wrong with them?",NORMAL,6.0);
|
|
GestaltSpeak (60.0, oCaptain, "Something about people disappearing. The children, the elderly. These rabble come here to drink and moan together all the time.",NORMAL,8.0);
|
|
GestaltSpeak (68.0, oPC, "Does anyone know what happened to the missing people?",NORMAL,4.0);
|
|
GestaltSpeak (72.0, oCaptain, "Who knows? Now listen, are you going to do the job or not? I put my reputation on the line for you.",NORMAL,7.0);
|
|
GestaltSpeak (79.0, oPC, "Alright, I won't let you or your reputation down.",NORMAL,3.0);
|
|
GestaltSpeak (82.0, oCaptain, "Good. And when you're done, I SUPPOSE you can help these people too. Just please tell me how it went with Kumal. He seems very secretive about this job. Almost.. Afraid.",PLEADING,6.0);
|
|
GestaltSpeak (88.0, oPC, "Alright, I'll go see Kumal right now, then tell you how it went.",NORMAL,1.5);
|
|
|
|
// Woman gets up and begs for help
|
|
GestaltPlaySound (85.0, oWoman, "as_pl_ailingf3");
|
|
GestaltAnimate (85.1, oWoman, ANIMATION_LOOPING_TALK_PLEADING,8.0);
|
|
|
|
// Move the PC towards the sewer entrance
|
|
GestaltActionMove (90.0, oPC, oWPPC_2);
|
|
|
|
// Return their associates
|
|
GestaltReturnAssociates (95.00, oPC, 63,1,oWPReturn);
|
|
|
|
// End the cutscene and beam the PC to the waypoint with the tag "wp_ho_entry" in the holding area
|
|
GestaltStopCutscene (95.01, oPC, "wp_ho_entry");
|
|
|
|
// Camera movements
|
|
|
|
// Set initial position for camera, facing due north from 10.0m directly above the player
|
|
GestaltCameraSetup (0.0, oPC, 90.0,10.0,0.0);
|
|
|
|
// Use GestaltCameraSmooth function to move the camera over the rooftops and down towards the sewer as PC walks
|
|
// 090.0,10.0,00.0 - initial camera position
|
|
GestaltCameraSmooth (0.0, 0.0,0.0,0.0, 2.0,1.4,2.0, 5.0,40.0,oPC); // 095.0,13.0,05.0 - camera position after 005.0 seconds
|
|
GestaltCameraSmooth (5.0, 2.0,1.4,2.0, 4.0,0.0,2.0, 5.0,40.0,oPC); // 110.0,18.0,15.0 - camera position after 010.0 seconds
|
|
GestaltCameraSmooth (10.0, 4.0,0.0,2.0, 4.0,0.0,2.0, 10.0,40.0,oPC); // 150.0,18.0,35.0 - camera position after 020.0 seconds
|
|
GestaltCameraSmooth (20.0, 4.0,0.0,2.0, 4.0,-0.5,0.0, 10.0,40.0,oPC); // 190.0,15.5,45.0 - camera position after 030.0 seconds
|
|
GestaltCameraSmooth (30.0, 4.0,-0.5,0.0, 4.0,-0.3,0.0, 20.0,40.0,oPC); // 270.0,07.5,45.0 - camera position after 050.0 seconds
|
|
GestaltCameraSmooth (50.0, 4.0,-0.3,0.0, 3.0,0.0,0.0, 10.0,40.0,oPC); // 305.0,06.0,45.0 - camera position after 060.0 seconds
|
|
GestaltCameraSmooth (60.0, 3.0,0.0,0.0, 2.0,0.12,0.0, 30.0,40.0,oPC); // 020.0,07.8,45.0 - camera position after 090.0 seconds
|
|
GestaltCameraSmooth (90.0, 3.0,0.0,0.0, 2.0,0.12,0.0, 30.0,40.0,oPC); // 035.0,08.7,45.0 - camera position after 105.0 seconds
|
|
|
|
//GestaltCameraSmooth (90.0, 2.0,0.12,0.0, 0.0,0.0,0.0, 15.0,40.0,oPC); // 035.0,08.7,45.0 - camera position after 105.0 seconds
|
|
DestroyObject(OBJECT_SELF);
|
|
}
|