Files
Quake_4_Alpha/q4xbase/scripts/maps/m06_mcc.script
T
2026-08-06 14:45:27 -07:00

1208 lines
35 KiB
Plaintext

//---------------------------------------------------------------------------------------
// m06_mcc.script for use with m06_mcc.map
//
// (C) Ritual Entertainment 2005
//---------------------------------------------------------------------------------------
#include "scripts/doom_defs.script"
namespace m06
{
// FOR THE LOVE OF GOD AND ALL THAT IS HOLY SET TO 0 FOR SHIP (or just cut entirely)
float CUT_THE_CRAP = 0;
float SKIP_SAVEGAMES = 0;
// NOW BACK TO YOUR REGULARLY SCHEDULED PROGRAMMING
float ALLOW_ONCLICK_CONVERSATION = 1;
float NUM_RUNNING_MARINES = 0;
float hadTrabConv = 0;
float hadShowConv = 0;
float hadEthanConv = 0;
float hadScottConv = 0;
void setupLockedDoors();
void mcc2Briefing();
// turret sequence added functions
void hallwayPA2();
//--------------------------------------------------------------------------
// FUNCTION DEFINITONS
// (here there be code)
//--------------------------------------------------------------------------
void landingSequence()
{
$mcc.playCycle( ANIMCHANNEL_ALL, "door_open_idle" );
sys.setCamera( $func_cameraview_intro_mcc );
sys.fadeIn( '0 0 0', 2 );
sys.wait( 5 );
sys.fadeOut( '0 0 0', 2 );
sys.wait( 2 );
sys.fadeIn( '0 0 0', 2 );
sys.setCamera( $introcamera_1 );
//sys.wait(5);
$darnell_intro.setMoveSpeed( AIMOVESPEED_WALK );
$mitchell_intro.setMoveSpeed( AIMOVESPEED_WALK );
$navajas_intro.setMoveSpeed( AIMOVESPEED_WALK );
$tak_intro.setMoveSpeed( AIMOVESPEED_WALK );
$dekard_intro.setMoveSpeed( AIMOVESPEED_WALK );
$env_dropship_1.playAnim( ANIMCHANNEL_ALL, "intro_idle" );
// $func_door_249.open();
// $func_door_250.open();
aiScriptedMove( $darnell_intro, $introwalk_2, 32, 0 );
aiScriptedMove( $mitchell_intro, $introwalk_1, 32, 0 );
aiScriptedMove( $navajas_intro, $introwalk_3, 32, 0 );
aiScriptedMove( $tak_intro, $introwalk_4, 32, 0 );
aiScriptedMove( $dekard_intro, $introwalk_5, 32, 0 );
sys.wait( 3 );
sys.setCamera( $introcamera_2 );
sys.wait( 2 );
sys.fadeOut( '0 0 0', 2 );
sys.wait( 2 );
$darnell_intro.remove();
$mitchell_intro.remove();
$navajas_intro.remove();
$tak_intro.remove();
$dekard_intro.remove();
thread mcc2Briefing();
}
/*------------------------------------------------------------------------------------------------------
MCC_2 CINEMATIC
------------------------------------------------------------------------------------------------------*/
void cin1Smoke()
{
sys.trigger($low_vent_steam_7);
sys.trigger($low_vent_steam_8);
sys.trigger($low_vent_steam_9);
sys.trigger($low_vent_steam_10);
}
void chairs2Idle()
{
$mcc2CortezChair.playAnim(ANIMCHANNEL_ALL, "mcc2_idle2");
$mcc2MorrisChair.playAnim(ANIMCHANNEL_ALL, "mcc2_idle1");
$mcc2KaneChair.playAnim(ANIMCHANNEL_ALL, "mcc2_idle6");
$mcc2RhodesChair.playAnim(ANIMCHANNEL_ALL, "mcc2_idle3");
$mcc2SledgeChair.playAnim(ANIMCHANNEL_ALL, "mcc2_idle4");
$mcc2StraussChair.playAnim(ANIMCHANNEL_ALL, "mcc2_idle5");
}
void showChairs2()
{
$mcc2CortezChair.show();
$mcc2MorrisChair.show();
$mcc2KaneChair.show();
$mcc2StraussChair.show();
$mcc2RhodesChair.show();
$mcc2SledgeChair.show();
}
void cortezIdle()
{
aiScriptedAnimLoop( $cin_mcc2_cortez, "mcc2_cin_idle_cortez", 0 );
$mcc2CortezChair.playAnim(ANIMCHANNEL_ALL, "mcc2_idle2");
}
void rhodesIdle()
{
aiScriptedAnimLoop( $cin_mcc2_rhodes, "mcc2_cin_idle_rhodes", 0 );
$mcc2RhodesChair.playAnim(ANIMCHANNEL_ALL, "mcc2_idle3");
}
void marines2Idle()
{
aiScriptedAnimLoop( $cin_mcc2_rhodes, "mcc2_cin_idle_rhodes", 0 );
aiScriptedAnimLoop( $cin_mcc2_cortez, "mcc2_cin_idle_cortez", 0 );
aiScriptedAnimLoop( $cin_mcc2_strauss, "mcc2_cin_idle_strauss", 0 );
aiScriptedAnimLoop( $cin_mcc2_morris, "mcc2_cin_idle_morris", 0 );
aiScriptedAnimLoop( $cin_mcc2_sledge, "mcc2_cin_idle_sledge", 0 );
aiScriptedAnim( $cin_mcc2_harper, "mcc2_cin_harper_talks", 4, 0 );
}
void rhodesLeans()
{
aiScriptedAnim($cin_mcc2_rhodes, "mcc2_cin_rhodes_leans", 0, 0);
$mcc2RhodesChair.playAnim(ANIMCHANNEL_ALL, "mcc2_rhodes_leans");
}
/*--------------------------------------------------------------
cinematic SETUP AND TEARDOWN
--------------------------------------------------------------*/
void removeMarines2()
{
$cin_mcc2_strauss.remove();
$cin_mcc2_rhodes.remove();
$cin_mcc2_cortez.remove();
$cin_mcc2_morris.remove();
$cin_mcc2_harper.remove();
$cin_mcc2_sledge.remove();
}
void postBriefingMarines2()
{
sys.trigger($STRAUSS2);
$STRAUSS2.setTalkState(TALK_OK);
$STRAUSS2.lookAt( $func_static_15625 );
thread chairs2Idle();
}
void postBriefingTarrant()
{
$tarrant.show();
$tarrant.setMoveSpeed( AIMOVESPEED_WALK );
aiScriptedMoveWait( $tarrant, $tar_tarrant_moveto, 4, 0 );
$tarrant.lookAt( $player1 );
//sys.println( "TARRANT SPEAKS" );
$tarrant.setTalkState( TALK_OK );
aiSpeakWait( $tarrant, "lipsync_1" );
}
void briefingFinished2()
{
sys.trigger($briefingLightOn);
sys.trigger( $item_objective_1 ); // trigger objective
sys.trigger( $target_objectivebeacon_1 ); // trigger arrow to sci-tech room
// trigger marines to spawn in.
thread postBriefingMarines2();
// move the player to the briefing room.
$player1.setWorldOrigin( $mcc1_briefingOver.getWorldOrigin());
thread removeMarines2();
sys.wait(2);
if ( !SKIP_SAVEGAMES )
{
sys.trigger( $func_savegame_1 );
}
thread hallwayPA2();
}
void briefingFinishedMusic()
{
sys.trigger( $musicSubtle );
$musicSubtle.fadeSound( SND_CHANNEL_ANY, 0, 5 );
$musicZak.fadeSound( SND_CHANNEL_ANY, -80, 2 );
sys.wait( 2 );
$musicZak.remove();
}
void mcc2Briefing()
{
thread cin1Smoke(); //off
thread showChairs2();
thread chairs2Idle();
thread marines2Idle();
$env_tactical_station_2.playAnim(ANIMCHANNEL_ALL, "off");
sys.trigger($corey_light_3674); // no idea
sys.trigger($corey_light_3675);
if ( !CUT_THE_CRAP )
{
sys.fadeIn('0 0 0', 2);
// CINEMATIC HERE
sys.setCamera( $introcam_strauss_3 );
aiSpeakWait( $cin_mcc2_harper, "lipsync_harp_falcsqcom" );
sys.setCamera( $introcam_strauss_1 );
//aiScriptedAnim( $cin_mcc2_strauss, "mcc2_cin_strauss_talks2", 4, 0 );
aiSpeakWait( $cin_mcc2_strauss, "lipsync_strauss_workingondata" );
aiSpeakWait( $cin_mcc2_strauss, "lipsync_strauss_somuchdat" );
aiSpeakWait( $cin_mcc2_strauss, "lipsync_strauss_thatsaid" );
sys.setCamera( $introcam_strauss_3 );
aiSpeakWait( $cin_mcc2_harper, "lipsync_harp_withinhr" );
aiSpeakWait( $cin_mcc2_harper, "lipsync_harp_anothrhin" );
aiSpeakWait( $cin_mcc2_harper, "lipsync_harp_accorddata" );
aiSpeakWait( $cin_mcc2_sledge, "lipsync_marks_commandfinordlong" );
sys.setCamera( $introcam_strauss_2 );
//aiScriptedAnim( $cin_mcc2_strauss, "mcc2_cin_strauss_talks2", 4, 0 );
aiSpeakWait( $cin_mcc2_strauss, "lipsync_strauss_likehelp" );
aiSpeakWait( $cin_mcc2_strauss, "lipsync_strauss_leftdecrypt" );
sys.setCamera( $introcam_strauss_4 );
//aiScriptedAnim( $cin_mcc2_strauss, "mcc2_cin_strauss_talks2", 4, 0 );
aiSpeakWait( $cin_mcc2_sledge, "lipsync_marks_dekgetsci" );
sys.fadeOut( '0 0 0', 2 );
sys.wait(2);
sys.firstPerson();
$player1.setViewAngles ( '0 0 0' );
}
thread briefingFinishedMusic();
thread briefingFinished2();
sys.fadeIn( '0 0 0', 2 );
thread cin1Smoke(); //on
}
/*------------------------------------------------------------------------------------------------------
MCC_2 CINEMATIC END
------------------------------------------------------------------------------------------------------*/
//--------------------------------------------------------------------------
// Locks all doors that get unlocked at a later time
//--------------------------------------------------------------------------
void setupLockedDoors()
{
$func_door_247.lock( 1 ); // back door to briefing room
}
//--------------------------------------------------------------------------
// random PA stuff
//--------------------------------------------------------------------------
void hallwayPA2()
{
while(1)
{
sys.wait( 10 + sys.random(5) );
sys.trigger($hallway2_pa_1);
sys.wait( 60 + sys.random(30) );
sys.trigger($hallway2_pa_2);
sys.wait( 60 + sys.random(30) );
sys.trigger($hallway2_pa_3);
sys.wait( 60 + sys.random(30) );
sys.trigger($hallway2_pa_4);
sys.wait( 60 + sys.random(30) );
}
}
//--------------------------------------------------------------------------
// some rhino squad guys enter
//--------------------------------------------------------------------------
void cortezEnters()
{
$CORTEZ2.setMoveSpeed( AIMOVESPEED_WALK );
aiScriptedMoveWait( $CORTEZ2, $tar_cortez_spot, 4, 0 );
aiScriptedFaceWait( $CORTEZ2, $env_tactical_station_2, 0 );
aiScriptedAnimWait( $CORTEZ2, "weaponless_idle3_start", 4, 0 );
aiScriptedAnimLoop( $CORTEZ2, "weaponless_idle3_loop", 4 );
}
void morrisEnters()
{
$MORRIS2.setMoveSpeed( AIMOVESPEED_WALK );
aiScriptedMoveWait( $MORRIS2, $tar_morris_spot, 4, 0 );
aiScriptedFaceWait( $MORRIS2, $func_static_15617, 0 );
$MORRIS2.lookAt( $func_static_15625 );
aiScriptedAnimWait( $MORRIS2, "weaponless_idle2_start", 4, 0 );
aiScriptedAnimLoop( $MORRIS2, "weaponless_idle2_loop", 4 );
}
void rhinoEnters()
{
thread cortezEnters();
thread morrisEnters();
}
//--------------------------------------------------------------------------
// briefing room guards
//--------------------------------------------------------------------------
void gravesAttention()
{
aiScriptedAnimWait( $GRAVES, "relax_idle_start", 4, 0 );
aiScriptedAnimWait( $GRAVES, "at_attention_start", 4, 0 );
aiScriptedAnimLoop( $GRAVES, "at_attention_idle", 0 );
$GRAVES.setTalkState(TALK_OK);
sys.wait( 20 + sys.random(5) );
aiScriptedAnimWait( $GRAVES, "at_attention_end", 4, 0 );
aiScriptedAnimLoop( $GRAVES, "relax_idle", 0 );
}
void bennetteAttention()
{
aiScriptedAnimWait( $BENNETTE, "relax_idle_start", 4, 0 );
aiScriptedAnimWait( $BENNETTE, "at_attention_start", 4, 0 );
$BENNETTE.setTalkState(TALK_OK);
aiScriptedAnimLoop( $BENNETTE, "at_attention_idle", 0 );
sys.wait( 20 + sys.random(5) );
aiScriptedAnimWait( $BENNETTE, "at_attention_end", 4, 0 );
aiScriptedAnimLoop( $BENNETTE, "relax_idle", 0 );
}
void mccAttention()
{
thread bennetteAttention();
thread gravesAttention();
}
void loopBennette()
{
aiScriptedAnimWait( $BENNETTE, "at_attention_end", 4, 0 );
aiScriptedAnimLoop( $BENNETTE, "relax_idle", 0 );
}
void loopGraves()
{
aiScriptedAnimWait( $GRAVES, "at_attention_end", 4, 0 );
aiScriptedAnimLoop( $GRAVES, "relax_idle", 0 );
sys.wait( 20 + sys.random(5) );
aiScriptedAnimWait( $GRAVES, "idle_checks_time", 4, 0 );
aiScriptedAnimLoop( $GRAVES, "relax_idle", 0 );
}
void mccRelax()
{
thread loopGraves();
sys.wait( .5 + sys.random(.25) );
thread loopBennette();
}
//--------------------------------------------------------------------------
// ancillary convs
//--------------------------------------------------------------------------
void trabboldConv()
{
if ( !hadTrabConv )
{
if ( ALLOW_ONCLICK_CONVERSATION )
{
ALLOW_ONCLICK_CONVERSATION = 0;
hadTrabConv = 1;
aiSpeakWait( $TRABBOLD, "lipsync_trab_didkain" );
$SHOWERS.lookAt( $TRABBOLD );
aiSpeakWait( $SHOWERS, "lipsync_shower_saveass" );
$TRABBOLD.lookAt( $SHOWERS );
aiSpeakWait( $TRABBOLD, "lipsync_trab_donttrus" );
$TRABBOLD.lookAt( $player1 );
$SHOWERS.lookAt( $player1 );
ALLOW_ONCLICK_CONVERSATION = 1;
sys.wait( 3 );
$TRABBOLD.lookAt( $null_entity );
$SHOWERS.lookAt( $null_entity );
}
}
}
void showersConv()
{
if ( !hadShowConv )
{
if ( ALLOW_ONCLICK_CONVERSATION )
{
ALLOW_ONCLICK_CONVERSATION = 0;
hadShowConv = 1;
aiSpeakWait( $SHOWERS, "lipsync_shower_wewaitkain" );
$TRABBOLD.lookAt( $SHOWERS );
aiSpeakWait( $TRABBOLD, "lipsync_trab_yeahwatchass" );
$SHOWERS.lookAt( $TRABBOLD );
aiSpeakWait( $SHOWERS, "lipsync_shower_notshitturn" );
$TRABBOLD.lookAt( $player1 );
$SHOWERS.lookAt( $player1 );
ALLOW_ONCLICK_CONVERSATION = 1;
sys.wait( 3 );
$TRABBOLD.lookAt( $null_entity );
$SHOWERS.lookAt( $null_entity );
}
}
}
//--------------------------------------------------------------------------
// Marines a'talkin
//--------------------------------------------------------------------------
void trabShowAncillary()
{
ALLOW_ONCLICK_CONVERSATION = 0;
$TRABBOLD.lookAt( $SHOWERS );
aiSpeakWait( $TRABBOLD, "lipsync_trab_said" );
$SHOWERS.lookAt( $TRABBOLD );
aiSpeakWait( $SHOWERS, "lipsync_shower_jacksoin" );
aiSpeakWait( $TRABBOLD, "lipsync_trab_jackson" );
aiSpeakWait( $SHOWERS, "lipsync_show_kain" );
ALLOW_ONCLICK_CONVERSATION = 1;
$TRABBOLD.lookAt( $null_entity );
$SHOWERS.lookAt( $null_entity );
}
void luchHoldorfAncillary()
{
$LUCH.lookAt( $HOLDORF );
aiSpeakWait( $LUCH, "lipsync_luch_conv1" );
$HOLDORF.lookAt( $LUCH );
aiSpeakWait( $HOLDORF, "lipsync_hold_conv2" );
aiSpeakWait( $LUCH, "lipsync_luch_conv3" );
aiSpeakWait( $HOLDORF, "lipsync_hold_conv4" );
aiSpeakWait( $LUCH, "lipsync_luch_conv5" );
$HOLDORF.lookAt( $null_entity );
$LUCH.lookAt( $null_entity );
$LUCH.setTalkState( TALK_OK );
$HOLDORF.setTalkState( TALK_OK );
}
void doctor1Ancillary()
{
aiSpeakWait( $DR_HINZMAN, "lipsync_doc_0_1" );
sys.wait( 1 );
aiSpeakWait( $DR_HINZMAN, "lipsync_doc_0_2" );
sys.wait( 2 );
aiSpeakWait( $DR_HINZMAN, "lipsync_doc_0_3" );
}
//--------------------------------------------------------------------------
// Meeting kane cinematic
//--------------------------------------------------------------------------
void yoshSpeak()
{
sys.wait(1);
aiSpeakWait( $YOSHIDA2, "lipsync_1" );
}
void spawnYoshida()
{
$yoshidaHelmet.show();
aiScriptedAnim( $YOSHIDA2, "af_pose", 4, 0 );
$yoshidaHelmet.bindToJoint($YOSHIDA2, "l_wrist", 1);
$YOSHIDA2.hideSurface("models/weapons/mp_guns/w_mg_lo");
}
void yoshidaMad()
{
$YOSHIDA2.lookAt( $null_entity );
sys.wait( 20 + sys.random(5) );
aiScriptedMoveWait( $YOSHIDA2, $yoshidaStop_1, 48, 1 );
aiScriptedAnimWait( $YOSHIDA2, "weaponless_idle5_start", 4, 1 );
aiScriptedAnimLoop( $YOSHIDA2, "weaponless_idle5_loop", 0 );
}
void spawnKane()
{
$kane.setMoveSpeed( AIMOVESPEED_WALK );
$startSLEDGE2.setMoveSpeed( AIMOVESPEED_WALK );
$dekard_kane_cine.lookAt( $YOSHIDA2 );
aiScriptedMove( $kane, $kaneStop, 48, 0 );
sys.setCamera( $func_cameraview_kane_1 );
sys.fadeIn( '0 0 0', 2 );
sys.wait(.5);
aiScriptedMove( $startSLEDGE2, $sledgeStop, 48, 0 );
aiScriptedMove( $dekard_kane_cine, $dekardStop, 8, 0 );
$YOSHIDA2.lookAt( $kane );
$YOSHIDA2.setMoveSpeed ( AIMOVESPEED_WALK );
thread yoshSpeak();
aiScriptedMoveWait( $YOSHIDA2, $yoshidaStop, 48, 1 );
sys.wait(2);
$YOSHIDA2.lookAt( $dekard_kane_cine );
sys.setCamera( $func_cameraview_kane_2 );
aiSpeakWait( $dekard_kane_cine, "lipsync1" );
aiSpeakWait( $YOSHIDA2, "lipsync_2" );
aiSpeakWait( $dekard_kane_cine, "lipsync2" );
aiSpeakWait( $dekard_kane_cine, "lipsync3" );
$med_door_west.lock( 1 );
$player1.setOrigin( $dekardStop.getOrigin() );
$dekard_kane_cine.remove();
$kane.remove();
$startSLEDGE2.remove();
sys.firstPerson();
$YOSHIDA2.setTalkState( TALK_OK );
$player1.setViewAngles ( '0 315 0' );
thread yoshidaMad();
$func_door_154.lock( 1 );
}
//--------------------------------------------------------------------------
// lolz secondary conversation (1)
//--------------------------------------------------------------------------
void allynWells()
{
aiSpeakWait( $DR_ALLYN2, "lipsync_doc_1" );
aiSpeakWait( $DR_WELLS2, "lipsync_doc_2" );
aiSpeakWait( $DR_ALLYN2, "lipsync_doc_3" );
aiSpeakWait( $DR_WELLS2, "lipsync_doc_4" );
}
//--------------------------------------------------------------------------
// lolz secondary conversation (2)
//--------------------------------------------------------------------------
void spawnLudwig()
{
while(1)
{
aiScriptedAnimWait( $DR_LUDWIG, "weaponless_idle6_start", 8, 0 );
aiScriptedAnimWait( $DR_LUDWIG, "weaponless_idle6_loop", 8, 0 );
aiScriptedAnimLoop( $DR_LUDWIG, "weaponless_idle6_loop", 0 );
sys.wait( 10 + sys.random(5) );
aiScriptedAnimWait( $DR_LUDWIG, "weaponless_idle6_end", 8, 0 );
aiScriptedAnimWait( $DR_LUDWIG, "weaponless_idle_1", 8, 0 );
aiScriptedAnimLoop( $DR_LUDWIG, "weaponless_idle_1", 0 );
sys.wait( 10 + sys.random(5) );
}
}
void spawnCoreman()
{
$drCoremanBoard.show();
aiScriptedAnim( $DR_COREMAN, "af_pose", 4, 0 );
$drCoremanBoard.bindToJoint($DR_COREMAN, "l_wrist", 1);
aiScriptedAnimLoop( $DR_COREMAN, "looking_down_gui_3", 0 );
}
void CoremanLudwig()
{
sys.println("m06::CoremanLudwig()");
aiSpeakWait( $DR_LUDWIG, "lipsync_luwg_quiteamaz" );
$DR_COREMAN.lookAt( $DR_LUDWIG );
aiSpeakWait( $DR_COREMAN, "lipsync_core_strggperf" );
$DR_LUDWIG.lookAt( $DR_COREMAN );
aiSpeakWait( $DR_LUDWIG, "lipsync_luwg_rigtest" );
$DR_COREMAN.lookAt( $null_entity );
aiSpeakWait( $DR_COREMAN, "lipsync_core_earlystrgg" );
$DR_LUDWIG.lookAt( $null_entity );
aiSpeakWait( $DR_LUDWIG, "lipsync_luwg_howover" );
aiSpeakWait( $DR_COREMAN, "lipsync_core_wonderwill" );
}
//--------------------------------------------------------------------------
// lolz general cloud walking by VIP what omg
//--------------------------------------------------------------------------
void generalCloudDlg()
{
sys.wait( 3 );
aiSpeakWait( $general, "lipsync_cloud_ground" );
sys.wait( 1.5 );
aiSpeak( $general, "lipsync_cloud_assault" );
}
void generalCloud()
{
$marineBlocker1.setMoveSpeed( AIMOVESPEED_WALK );
$marineBlocker2.setMoveSpeed( AIMOVESPEED_WALK );
$general.setMoveSpeed( AIMOVESPEED_WALK );
$general_convoy1.setMoveSpeed( AIMOVESPEED_WALK );
$general_convoy2.setMoveSpeed( AIMOVESPEED_WALK );
aiScriptedMove( $marineBlocker2, $medhall_blocker2stop, 4, 1 );
aiScriptedMove( $general, $tar_general_goto, 4, 0 );
aiScriptedMove( $general_convoy1, $tar_general_convoy1_goto, 4, 0 );
aiScriptedMove( $general_convoy2, $tar_general_convoy2_goto, 4, 0 );
thread generalCloudDlg();
sys.wait( .5 );
aiSpeak( $marineBlocker2, "lipsync_guard1_holdon" );
sys.wait( 2 );
aiScriptedAnim( $marineBlocker1, "idle_look_back_lt", 4, 0 );
aiScriptedWait( $general );
aiSpeak( $marineBlocker2, "lipsync_guard1_okmove" );
$general.remove();
$general_convoy1.remove();
$general_convoy2.remove();
$medhall_playerclip.hide();
aiScriptedMove( $marineBlocker1, $medhall_blocker1stop_1, 4, 1 );
sys.wait( .5 );
aiScriptedMoveWait( $marineBlocker2, $medhall_blocker2stop_1, 4, 1 );
aiScriptedFaceWait( $marineBlocker2, $medhall_blocker2stop, 1 );
}
//--------------------------------------------------------------------------
// lolz secondary conversation IN THE COMMAND CENTER
//--------------------------------------------------------------------------
void markswellChatter()
{
$markswell.setTalkState( TALK_WAIT );
$RED_SHIRT_13.setTalkState( TALK_WAIT );
$markswell.lookAt( $func_static_17176 );
aiSpeakWait( $markswell, "lipsync_marks_thiwasthear" );
aiSpeakWait( $RED_SHIRT_13, "lipsync_hughes_isposs" );
$markswell.lookAt( $null_entity );
$markswell.setTalkState( TALK_OK );
$RED_SHIRT_13.setTalkState( TALK_OK );
}
void rennerChatter()
{
$OFFICER_4.setTalkState( TALK_WAIT );
aiSpeakWait( $OFFICER_4, "lipsync_renner_whatpos" );
//radioChatterPlayWait( $func_radiochatter_0, "vo_marine_noideawe" );
sys.trigger( $talkRichards_1 );
sys.wait( 3.5 );
aiSpeakWait( $OFFICER_4, "lipsync_renner_yousigisnt" );
//radioChatterPlayWait( $func_radiochatter_0, "vo_marine_ifwemovedie" );
sys.trigger( $talkRichards_2 );
$OFFICER_4.setTalkState( TALK_OK );
}
void weldonChatter()
{
$OFFICER_2.setTalkState( TALK_WAIT ); // WELDON
$OFFICER_3.setTalkState( TALK_WAIT ); // MCNUTT
aiSpeakWait( $OFFICER_2, "lipsync_weldon_angry1" );
$OFFICER_3.lookAt( $OFFICER_2 );
aiSpeakWait( $OFFICER_3, "lipsync_mcnutt_angry2" );
aiSpeakWait( $OFFICER_2, "lipsync_weldon_angry3" );
aiSpeakWait( $OFFICER_3, "lipsync_mcnutt_angry4" );
$OFFICER_3.lookAt( $null_entity );
$OFFICER_2.setTalkState( TALK_OK ); // WELDON
$OFFICER_3.setTalkState( TALK_BUSY );
}
void officerChatter()
{
sys.wait( 2 );
thread markswellChatter();
sys.wait( 10 );
thread rennerChatter();
sys.wait( 14 );
thread weldonChatter();
}
//--------------------------------------------------------------------------
// HOLY SHIT RUN RUN RUN GO GO GO GO
//--------------------------------------------------------------------------
void removeMe( entity ent )
{
ent.remove();
NUM_RUNNING_MARINES--;
}
void generiMarineSpawned( entity ent )
{
NUM_RUNNING_MARINES++;
ent.setTalkState( TALK_NEVER );
aiScriptedMove( ent, $tar_marines_run_here_a, 48, 1 );
//sys.wait( 5 );
//ent.remove();
}
void runningMarines()
{
aiSpeak( $RED_SHIRT_3, "lipsync_richard_holdon" );
sys.trigger( $runningmarine_1 );
thread generiMarineSpawned( $runningmarine_1 );
sys.wait( .5 );
sys.trigger( $runningmarine_2 );
thread generiMarineSpawned( $runningmarine_2 );
sys.wait( .5 );
sys.trigger( $runningmarine_3 );
thread generiMarineSpawned( $runningmarine_3 );
aiSpeak( $runningmarine_3, "lipsync_runmarine_3" );
sys.wait( .5 );
sys.trigger( $runningmarine_4 );
thread generiMarineSpawned( $runningmarine_4 );
while ( NUM_RUNNING_MARINES >= 4 )
{
sys.waitFrame();
}
sys.trigger( $runningmarine_5 );
thread generiMarineSpawned( $runningmarine_5 );
while ( NUM_RUNNING_MARINES >= 4 )
{
sys.waitFrame();
}
sys.trigger( $runningmarine_6 );
thread generiMarineSpawned( $runningmarine_6 );
aiSpeak( $runningmarine_6, "lipsync_runmarine_1" );
while ( NUM_RUNNING_MARINES >= 4 )
{
sys.waitFrame();
}
sys.trigger( $runningmarine_7 );
thread generiMarineSpawned( $runningmarine_7 );
while ( NUM_RUNNING_MARINES >= 4 )
{
sys.waitFrame();
}
sys.trigger( $runningmarine_8 );
thread generiMarineSpawned( $runningmarine_8 );
aiSpeak( $runningmarine_8, "lipsync_runmarine_2" );
while ( NUM_RUNNING_MARINES >= 4 )
{
sys.waitFrame();
}
sys.trigger( $runningmarine_9 );
thread generiMarineSpawned( $runningmarine_9 );
while ( NUM_RUNNING_MARINES >= 4 )
{
sys.waitFrame();
}
sys.trigger( $runningmarine_10 );
thread generiMarineSpawned( $runningmarine_10 );
while ( NUM_RUNNING_MARINES >= 4 )
{
sys.waitFrame();
}
sys.trigger( $runningmarine_11 );
thread generiMarineSpawned( $runningmarine_11 );
while ( NUM_RUNNING_MARINES >= 4 )
{
sys.waitFrame();
}
sys.trigger( $runningmarine_12 );
thread generiMarineSpawned( $runningmarine_12 );
while ( NUM_RUNNING_MARINES >= 4 )
{
sys.waitFrame();
}
sys.trigger( $runningmarine_13 );
thread generiMarineSpawned( $runningmarine_13 );
while ( NUM_RUNNING_MARINES >= 4 )
{
sys.waitFrame();
}
sys.trigger( $runningmarine_14 );
thread generiMarineSpawned( $runningmarine_14 );
while ( NUM_RUNNING_MARINES >= 4 )
{
sys.waitFrame();
}
sys.trigger( $runningmarine_15 );
thread generiMarineSpawned( $runningmarine_15 );
while ( NUM_RUNNING_MARINES > 0 )
{
sys.waitFrame();
}
$trigger_multiple_3.remove();
$commhall_playerclip.hide();
$RED_SHIRT_3.setMoveSpeed( AIMOVESPEED_WALK );
aiSpeak( $RED_SHIRT_3, "lipsync_richard_goahead" );
aiScriptedAnimWait( $RED_SHIRT_3, "weaponless_idle3_end", 4, 0 );
aiScriptedMoveWait( $RED_SHIRT_3, $bloomStop, 8, 0 );
aiScriptedFaceWait( $RED_SHIRT_3, $func_static_15088, 0 );
aiScriptedAnimWait( $RED_SHIRT_3, "weaponless_idle6_start", 4, 0 );
aiScriptedAnimLoop( $RED_SHIRT_3, "weaponless_idle6_loop", 4 );
}
//--------------------------------------------------------------------------
// ancillary convs (post command center)
//--------------------------------------------------------------------------
void inglisConv()
{
if ( !hadScottConv )
{
if ( ALLOW_ONCLICK_CONVERSATION )
{
ALLOW_ONCLICK_CONVERSATION = 0;
hadScottConv = 1;
$INGLIS.lookAt( $player1 );
aiSpeakWait( $INGLIS, "lipsync_inglis_heywhy" );
$MCCAUGHEY.lookAt( $INGLIS );
aiSpeakWait( $MCCAUGHEY, "lipsync_mccaugh_shutinglis" );
$INGLIS.lookAt( $MCCAUGHEY );
aiSpeakWait( $INGLIS, "lipsync_inglis_reallysht" );
$INGLIS.lookAt( $player1 );
$MCCAUGHEY.lookAt( $player1 );
ALLOW_ONCLICK_CONVERSATION = 1;
sys.wait( 3 );
$INGLIS.lookAt( $null_entity );
$MCCAUGHEY.lookAt( $null_entity );
}
}
}
void ethanConv()
{
if ( !hadEthanConv )
{
if ( ALLOW_ONCLICK_CONVERSATION )
{
ALLOW_ONCLICK_CONVERSATION = 0;
hadEthanConv = 1;
aiSpeakWait( $MCCAUGHEY, "lipsync_mccaugh_falcsqisinall" );
$INGLIS.lookAt( $MCCAUGHEY );
aiSpeakWait( $INGLIS, "lipsync_inglis_whofalc" );
$MCCAUGHEY.lookAt( $INGLIS );
aiSpeakWait( $MCCAUGHEY, "lipsync_mccaugh_nevermind" );
$INGLIS.lookAt( $player1 );
$MCCAUGHEY.lookAt( $player1 );
ALLOW_ONCLICK_CONVERSATION = 1;
sys.wait( 3 );
$INGLIS.lookAt( $null_entity );
$MCCAUGHEY.lookAt( $null_entity );
}
}
}
//--------------------------------------------------------------------------
// More ancillary shit prior to the mess hall
//--------------------------------------------------------------------------
void frankMunro()
{
$FRANKLIN.setTalkState( TALK_WAIT );
$MUNRO.setTalkState( TALK_WAIT );
$FRANKLIN.lookAt( $MUNRO );
aiSpeakWait( $FRANKLIN, "lipsync_frank_conv1" );
aiSpeakWait( $MUNRO, "lipsync_munro_conv2" );
aiSpeakWait( $FRANKLIN, "lipsync_frank_conv3" );
aiSpeakWait( $MUNRO, "lipsync_munro_conv4" );
aiSpeakWait( $FRANKLIN, "lipsync_frank_conv5" );
$FRANKLIN.lookAt( $null_entity );
$FRANKLIN.setTalkState( TALK_OK );
$MUNRO.setTalkState( TALK_OK );
}
void squirrelTalks()
{
$RED_SHIRT_19.setTalkState( TALK_WAIT );
aiSpeakWait( $RED_SHIRT_19, "lipsync_brian_system" );
aiSpeakWait( $RED_SHIRT_20, "lipsync_fowler_hangon" );
aiSpeakWait( $RED_SHIRT_19, "lipsync_brian_coil" );
sys.wait( 1 );
aiSpeakWait( $RED_SHIRT_20, "lipsync_fowler_yes" );
aiSpeakWait( $RED_SHIRT_19, "lipsync_brian_lying" );
sys.wait( 2 );
aiSpeakWait( $RED_SHIRT_20, "lipsync_fowler_yes2" );
aiSpeakWait( $RED_SHIRT_19, "lipsync_brian_look" );
$RED_SHIRT_19.setTalkState( TALK_OK );
}
//--------------------------------------------------------------------------
// lolz blocking mess hall door
//--------------------------------------------------------------------------
void goAroundMess()
{
aiSpeakWait( $RED_SHIRT_18, "lipsync_garrett_door" );
}
void newslady()
{
sys.trigger( $newsLady1 );
sys.wait( 9 );
sys.trigger( $newsLady2 );
sys.wait( 15 );
sys.trigger( $newsLady3 );
}
//--------------------------------------------------------------------------
// Setting up anims for idle chars
//--------------------------------------------------------------------------
void spawnRs1() // guy in med halls walking to random gui
{
$RED_SHIRT_1.setTalkState( TALK_OK );
$RED_SHIRT_1.setMoveSpeed( AIMOVESPEED_WALK );
aiScriptedMoveWait( $RED_SHIRT_1, $medhall_stop, 4, 0 );
$RED_SHIRT_1.lookAt( $func_static_15848 );
aiScriptedAnimWait( $RED_SHIRT_1, "weaponless_idle3_start", 4, 0 );
aiScriptedAnimLoop( $RED_SHIRT_1, "weaponless_idle3_loop", 4 );
}
void spawnSteinberg()
{
//$STEINBERG.setTalkState ( TALK_WAIT );
while(1)
{
aiScriptedAnimWait($STEINBERG, "sitting_working_consoles_1", 4, 1);
aiScriptedAnimWait($STEINBERG, "sitting_working_consoles_1", 4, 1);
aiScriptedAnimWait($STEINBERG, "sitting_working_consoles_1", 4, 1);
aiScriptedAnimWait($STEINBERG, "sitting_working_consoles_1", 4, 1);
aiScriptedAnimWait($STEINBERG, "sitting_working_consoles_1", 4, 1);
aiScriptedAnimWait($STEINBERG, "sitting_working_consoles_2", 4, 1);
aiScriptedAnimWait($STEINBERG, "sitting_working_consoles_2", 4, 1);
aiScriptedAnimWait($STEINBERG, "sitting_working_consoles_1", 4, 1);
aiScriptedAnimWait($STEINBERG, "sitting_working_consoles_1", 4, 1);
}
}
void spawnRs2() // guy in engine room walking to console
{
$redShirt2Board_1.show();
aiScriptedAnim( $RED_SHIRT_2_2, "af_pose", 4, 0 );
$redShirt2Board_1.bindToJoint($RED_SHIRT_2_2, "l_wrist", 1);
$RED_SHIRT_2_2.setMoveSpeed( AIMOVESPEED_WALK );
aiScriptedMoveWait( $RED_SHIRT_2_2, $williamsStop_1, 4, 0 );
aiScriptedFaceWait( $RED_SHIRT_2_2, $williamsStopFace, 0 );
while(1)
{
aiScriptedAnimWait( $RED_SHIRT_2_2, "looking_down_gui_1", 4, 0 );
aiScriptedAnimWait( $RED_SHIRT_2_2, "looking_down_gui_1", 4, 0 );
aiScriptedAnimWait( $RED_SHIRT_2_2, "looking_down_gui_3", 4, 0 );
aiScriptedAnimWait( $RED_SHIRT_2_2, "looking_down_gui_1", 4, 0 );
aiScriptedAnimWait( $RED_SHIRT_2_2, "looking_down_gui_1", 4, 0 );
aiScriptedAnimWait( $RED_SHIRT_2_2, "looking_down_gui_2", 4, 0 );
}
}
void spawnRs3() // guy walking to elevator
{
aiScriptedAnimLoop( $RED_SHIRT_3, "weaponless_idle3_loop", 4 );
$RED_SHIRT_3.setTalkState( TALK_OK );
}
void spawnMilkenDearth() // two guys right outside briefing room
{
// $milkenBoard.show();
aiScriptedAnim( $SHOWERS, "af_pose", 4, 0 );
// $milkenBoard.bindToJoint($SHOWERS, "l_wrist", 1);
aiScriptedAnimLoop( $SHOWERS, "weaponless_idle_1", 0 );
$SHOWERS.setTalkState( TALK_OK );
$TRABBOLD.setTalkState( TALK_OK );
}
void spawnPatricks() // sitting hallway before pod control room
{
$PATRICKS.lookAt( $func_static_15061 );
$PATRICKS.setTalkState( TALK_OK );
}
void spawnAndrews() // sitting with patricks
{
aiScriptedAnimLoop( $ANDREWS, "sitting_working_consoles_1", 0 );
$ANDREWS.setTalkState( TALK_OK );
}
void guard1() // outside scitech hallway
{
$randomGuard1.setTalkState( TALK_OK );
while(1)
{
aiScriptedAnimLoop( $randomGuard1, "relax_idle", 0 );
sys.wait( 20 + sys.random(5) );
aiScriptedAnimWait( $randomGuard1, "idle_checks_time", 4, 0 );
aiScriptedAnimLoop( $randomGuard1, "relax_idle", 0 );
sys.wait( 20 + sys.random(5) );
aiScriptedAnimWait( $randomGuard1, "weapon_check_3", 4, 0 );
}
}
void spawnInglis()
{
$INGLIS.setTalkState( TALK_OK );
$MCCAUGHEY.setTalkState( TALK_OK );
aiScriptedAnimLoop( $INGLIS, "weaponless_idle4_loop", 4 );
}
void spawnRs7()
{
$RED_SHIRT_7.setTalkState( TALK_OK );
while(1)
{
aiScriptedAnimWait($RED_SHIRT_7, "weaponless_idle4_start", 4, 1);
$RED_SHIRT_7.lookAt($func_static_15035);
aiScriptedAnimLoop( $RED_SHIRT_7, "weaponless_idle4_loop", 0 );
sys.wait( 20 + sys.random(5) );
aiScriptedAnimWait($RED_SHIRT_7, "weaponless_idle4_end", 4, 1);
aiScriptedAnimWait($RED_SHIRT_7, "weaponless_idle3_start", 4, 1);
$RED_SHIRT_7.lookAt($func_static_15032);
aiScriptedAnimLoop( $RED_SHIRT_7, "weaponless_idle3_loop", 0 );
sys.wait( 20 + sys.random(5) );
aiScriptedAnimWait($RED_SHIRT_7, "weaponless_idle3_end", 4, 1);
}
}
void spawnRs17()
{
//$RED_SHIRT_17.setTalkState( TALK_WAIT );
$shirt17Mug.show();
aiScriptedAnim( $RED_SHIRT_17, "idle_drinking_1", 4, 0 );
$shirt17Mug.bindToJoint($RED_SHIRT_17, "l_wrist", 1);
aiScriptedAnimLoop( $RED_SHIRT_17, "idle_drinking_1", 0 );
}
void spawnOfficer2()
{
$officer2Board.show();
aiScriptedAnim( $OFFICER_2, "af_pose", 4, 0 );
$officer2Board.bindToJoint($OFFICER_2, "l_wrist", 1);
//$OFFICER_2.setTalkState(TALK_WAIT);
$OFFICER_2.setTalkState( TALK_OK );
while(1)
{
aiScriptedAnimWait( $OFFICER_2, "looking_down_gui_1", 0, 0 );
aiScriptedAnimWait( $OFFICER_2, "looking_down_gui_1", 0, 0 );
aiScriptedAnimWait( $OFFICER_2, "looking_down_gui_3", 0, 0 );
aiScriptedAnimWait( $OFFICER_2, "looking_down_gui_1", 0, 0 );
aiScriptedAnimWait( $OFFICER_2, "looking_down_gui_1", 0, 0 );
aiScriptedAnimWait( $OFFICER_2, "looking_down_gui_2", 0, 0 );
}
}
void spawnOfficer3()
{
//$OFFICER_3.setTalkState(TALK_WAIT);
while(1)
{
aiScriptedAnimWait( $OFFICER_3, "sarge_briefing_3", 4, 0 );
aiScriptedAnimWait( $OFFICER_3, "sarge_briefing_3", 4, 0 );
aiScriptedAnimWait( $OFFICER_3, "sarge_briefing_5", 4, 0 );
aiScriptedAnimWait( $OFFICER_3, "sarge_briefing_3", 4, 0 );
}
}
void spawnOfficer4()
{
//$OFFICER_4.setTalkState(TALK_WAIT);
$OFFICER_4.setTalkState( TALK_OK );
aiScriptedAnimLoop ( $OFFICER_4, "sitting_working_consoles_3", 0 );
}
void spawnRs6()
{
$RED_SHIRT_6.setTalkState( TALK_OK );
while(1)
{
aiScriptedAnimWait( $RED_SHIRT_6, "sitting_working_consoles_1", 4, 0 );
aiScriptedAnimWait( $RED_SHIRT_6, "sitting_working_consoles_3", 4, 0 );
aiScriptedAnimWait( $RED_SHIRT_6, "sitting_working_consoles_3", 4, 0 );
aiScriptedAnimWait( $RED_SHIRT_6, "sitting_working_consoles_2", 4, 0 );
}
}
void spawnRs13()
{
$RED_SHIRT_13.hideSurface("models/weapons/mp_guns/w_mg_lo");
while(1)
{
aiScriptedAnimWait($RED_SHIRT_13, "weaponless_idle6_start", 4, 1);
aiScriptedAnimLoop( $RED_SHIRT_13, "weaponless_idle6_loop", 0 );
sys.wait( 20 + sys.random(5) );
aiScriptedAnimWait($RED_SHIRT_13, "weaponless_idle6_end", 4, 1);
aiScriptedAnimWait($RED_SHIRT_13, "weaponless_idle4_start", 4, 1);
aiScriptedAnimLoop( $RED_SHIRT_13, "weaponless_idle4_loop", 0 );
sys.wait( 20 + sys.random(5) );
aiScriptedAnimWait($RED_SHIRT_13, "weaponless_idle4_end", 4, 1);
}
}
void spawnRs18()
{
$rs18Board.show();
aiScriptedAnim( $RED_SHIRT_18, "af_pose", 4, 0 );
$rs18Board.bindToJoint( $RED_SHIRT_18, "l_wrist", 1 );
aiScriptedAnimLoop( $RED_SHIRT_18, "onbackworking_Zack_work", 4 );
$RED_SHIRT_18.setTalkState( TALK_OK );
}
void spawnWells2()
{
$drWells2Board.show();
aiScriptedAnim( $DR_WELLS2, "af_pose", 4, 0 );
$drWells2Board.bindToJoint($DR_WELLS2, "l_wrist", 1);
aiScriptedAnimLoop( $DR_WELLS2, "looking_down_gui_1", 0 );
}
void spawnHinzman()
{
$drHinzmanBoard.show();
$DR_HINZMAN.becomeNonSolid();
aiScriptedAnim( $DR_HINZMAN, "af_pose", 4, 0 );
$drHinzmanBoard.bindToJoint($DR_HINZMAN, "l_wrist", 1);
aiScriptedAnimLoop( $DR_HINZMAN, "looking_down_gui_1", 0 );
}
void spawnWings()
{
$WINGS.disableBlinking();
$WINGS.disableEyeFocus();
$WINGS.setTalkState( TALK_OK );
aiScriptedAnimLoop( $WINGS, "sit_sleeping", 0 );
playHeadAnimLoop ( $WINGS, "sleep" );
}
void spawnRs19()
{
$rs19Board.show();
$RED_SHIRT_19.setTalkState( TALK_OK );
aiScriptedAnim( $RED_SHIRT_19, "af_pose", 4, 0 );
$rs19Board.bindToJoint($RED_SHIRT_19, "l_wrist", 1);
aiScriptedAnimLoop( $RED_SHIRT_19, "looking_down_gui_1", 0 );
$RED_SHIRT_19.setTalkState( TALK_OK );
}
void spawnMunro()
{
aiScriptedAnimLoop( $MUNRO, "sarge_briefing_5", 4 );
}
//--------------------------------------------------------------------------
// In the beginning...
//--------------------------------------------------------------------------
void main()
{
$player1.setHealth( 100 ); // give the player what he needs
$player1.refillAmmo();
// remove the players weapon
$player1.disableWeapon();
/////////////////////
// Q4X addition /////
/////////////////////
thread landingSequence();
sys.trigger($musicZak);
$musicZak.fadeSound( SND_CHANNEL_ANY, -80, .1 );
sys.wait(.1);
$musicZak.fadeSound( SND_CHANNEL_ANY, -6, 2 );
}
} // end namespace