cod4-sdk/raw/maps/_introscreen.gsc

1154 lines
33 KiB
Text
Raw Normal View History

2008-01-19 00:00:00 +00:00
#include common_scripts\utility;
#include maps\_utility;
main()
{
flag_init( "pullup_weapon" );
flag_init( "introscreen_complete" );
flag_init( "safe_for_objectives" );
flag_init( "introscreen_complete" );
delaythread( 10, ::flag_set, "safe_for_objectives" );
level.linefeed_delay = 16;
precacheshader("black");
precacheshader("white");
if (getDvar("introscreen") == "")
setDvar("introscreen", "1");
//String1 = Title of the level
//String2 = Place, Country or just Country
//String3 = Month Day, Year
//String4 = Optional additional detailed information
//Pausetime1 = length of pause in seconds after title of level
//Pausetime2 = length of pause in seconds after Month Day, Year
//Pausetime3 = length of pause in seconds before the level fades in
if ( isdefined( level.credits_active ) )
return;
switch ( level.script )
{
case "ac130":
precacheString( &"AC130_INTROSCREEN_LINE_1" );
precacheString( &"AC130_INTROSCREEN_LINE_2" );
precacheString( &"AC130_INTROSCREEN_LINE_3" );
precacheString( &"AC130_INTROSCREEN_LINE_4" );
precacheString( &"AC130_INTROSCREEN_LINE_5" );
introscreen_delay(&"AC130_INTROSCREEN_LINE_1", &"AC130_INTROSCREEN_LINE_2", &"AC130_INTROSCREEN_LINE_3", &"AC130_INTROSCREEN_LINE_4", 0.2, 0.2, 0.2);
break;
case "aftermath":
precacheString(&"INTROSCREEN_TITLE");
precacheString(&"INTROSCREEN_PLACE");
precacheString(&"INTROSCREEN_DATE");
precacheString(&"INTROSCREEN_INFO");
introscreen_delay(&"INTROSCREEN_TITLE", &"INTROSCREEN_PLACE", &"INTROSCREEN_DATE", &"INTROSCREEN_INFO", 0.2, 0.2, 0.2);
break;
case "ambush":
precacheString(&"INTROSCREEN_TITLE");
precacheString(&"INTROSCREEN_PLACE");
precacheString(&"INTROSCREEN_DATE");
precacheString(&"INTROSCREEN_INFO");
introscreen_delay(&"INTROSCREEN_TITLE", &"INTROSCREEN_PLACE", &"INTROSCREEN_DATE", &"INTROSCREEN_INFO", 0.2, 0.2, 0.2);
break;
case "blackout":
precacheString(&"BLACKOUT_INTRO_1");
precacheString(&"BLACKOUT_INTRO_2");
precacheString(&"BLACKOUT_INTRO_3");
precacheString(&"BLACKOUT_INTRO_4");
precacheString(&"BLACKOUT_INTRO_5");
precacheString(&"INTROSCREEN_INFO");
introscreen_delay(&"INTROSCREEN_TITLE", &"INTROSCREEN_PLACE", &"INTROSCREEN_DATE", &"INTROSCREEN_INFO", 0.2, 0.2, 0.2);
break;
case "bog_a":
precacheString(&"INTROSCREEN_TITLE");
precacheString(&"INTROSCREEN_PLACE");
precacheString(&"INTROSCREEN_DATE");
precacheString(&"INTROSCREEN_INFO");
introscreen_delay(&"INTROSCREEN_TITLE", &"INTROSCREEN_PLACE", &"INTROSCREEN_DATE", &"INTROSCREEN_INFO", 0.2, 0.2, 0.2);
break;
case "bog_b":
precacheString( &"BOG_B_INTROSCREEN_LINE_1" );
precacheString( &"BOG_B_INTROSCREEN_LINE_2" );
precacheString( &"BOG_B_INTROSCREEN_LINE_3" );
precacheString( &"BOG_B_INTROSCREEN_LINE_4" );
introscreen_delay(&"BOG_B_INTROSCREEN_LINE_1", &"BOG_B_INTROSCREEN_LINE_2", &"BOG_B_INTROSCREEN_LINE_3", &"BOG_B_INTROSCREEN_LINE_4", 0.2, 0.2, 0.2);
break;
case "hunted":
precacheString( &"HUNTED_INTROSCREEN_LINE_1" );
precacheString( &"HUNTED_INTROSCREEN_LINE_2" );
precacheString( &"HUNTED_INTROSCREEN_LINE_3" );
precacheString( &"HUNTED_INTROSCREEN_LINE_4" );
precacheString( &"HUNTED_INTROSCREEN_LINE_5" );
introscreen_delay(&"HUNTED_INTROSCREEN_LINE_1", &"HUNTED_INTROSCREEN_LINE_2", &"HUNTED_INTROSCREEN_LINE_3", &"HUNTED_INTROSCREEN_LINE_4", 0.2, 0.2, 0.2);
break;
case "village_assault":
precacheString( &"VILLAGE_ASSAULT_INTROSCREEN_LINE_1" );
precacheString( &"VILLAGE_ASSAULT_INTROSCREEN_LINE_2" );
precacheString( &"VILLAGE_ASSAULT_INTROSCREEN_LINE_3" );
precacheString( &"VILLAGE_ASSAULT_INTROSCREEN_LINE_4" );
precacheString( &"VILLAGE_ASSAULT_INTROSCREEN_LINE_5" );
introscreen_delay(&"VILLAGE_ASSAULT_INTROSCREEN_LINE_1", &"VILLAGE_ASSAULT_INTROSCREEN_LINE_2", &"VILLAGE_ASSAULT_INTROSCREEN_LINE_3", &"VILLAGE_ASSAULT_INTROSCREEN_LINE_4", 0.2, 0.2, 0.2);
break;
case "village_defend":
precacheString( &"VILLAGE_DEFEND_INTRO_1" );
precacheString( &"VILLAGE_DEFEND_INTRO_2" );
precacheString( &"VILLAGE_DEFEND_INTRO_3" );
precacheString( &"VILLAGE_DEFEND_INTRO_4" );
precacheString( &"VILLAGE_DEFEND_INTRO_5" );
precacheString( &"VILLAGE_DEFEND_PRESENT_DAY" );
introscreen_delay(&"VILLAGE_DEFEND_INTRO_1", &"VILLAGE_DEFEND_INTRO_1", &"VILLAGE_DEFEND_INTRO_1", &"VILLAGE_DEFEND_INTRO_1", 0.2, 0.2, 0.2);
break;
case "cargoship":
precacheString(&"CARGOSHIP_LINE1");
precacheString(&"CARGOSHIP_LINE2");
precacheString(&"CARGOSHIP_LINE3");
precacheString(&"CARGOSHIP_LINE4");
precacheString(&"CARGOSHIP_LINE5");
introscreen_delay(&"CARGOSHIP_LINE1", &"CARGOSHIP_LINE2", &"CARGOSHIP_LINE3", &"CARGOSHIP_LINE4", 2, 3, 3);
break;
case "launchfacility_a":
precacheString(&"LAUNCHFACILITY_A_INTROSCREEN_LINE_1");
precacheString(&"LAUNCHFACILITY_A_INTROSCREEN_LINE_2");
precacheString(&"LAUNCHFACILITY_A_INTROSCREEN_LINE_3");
precacheString(&"LAUNCHFACILITY_A_INTROSCREEN_LINE_4");
precacheString(&"LAUNCHFACILITY_A_INTROSCREEN_LINE_5");
introscreen_delay(&"LAUNCHFACILITY_A_INTROSCREEN_LINE_5", &"LAUNCHFACILITY_A_INTROSCREEN_LINE_5", &"LAUNCHFACILITY_A_INTROSCREEN_LINE_5", &"LAUNCHFACILITY_A_INTROSCREEN_LINE_5", 2, 3, 3);
break;
case "launchfacility_b":
precacheString(&"LAUNCHFACILITY_B_INTROSCREEN_LINE_1");
precacheString(&"LAUNCHFACILITY_B_INTROSCREEN_LINE_2");
precacheString(&"LAUNCHFACILITY_B_INTROSCREEN_LINE_3");
precacheString(&"LAUNCHFACILITY_B_INTROSCREEN_LINE_4");
precacheString(&"LAUNCHFACILITY_B_INTROSCREEN_LINE_5");
introscreen_delay(&"INTROSCREEN_TITLE", &"INTROSCREEN_PLACE", &"INTROSCREEN_DATE", &"INTROSCREEN_INFO", 2, 3, 3);
break;
case "airlift":
precacheString(&"AIRLIFT_INTROSCREEN_LINE_1");
precacheString(&"AIRLIFT_INTROSCREEN_LINE_2");
precacheString(&"AIRLIFT_INTROSCREEN_LINE_3");
precacheString(&"AIRLIFT_INTROSCREEN_LINE_4");
introscreen_delay(&"AIRLIFT_INTROSCREEN_LINE_1", &"AIRLIFT_INTROSCREEN_LINE_2", &"AIRLIFT_INTROSCREEN_LINE_2", &"AIRLIFT_INTROSCREEN_LINE_4", 2, 3, 3);
break;
case "jeepride":
precacheString(&"JEEPRIDE_INTROSCREEN_LINE1");
precacheString(&"JEEPRIDE_INTROSCREEN_LINE2");
precacheString(&"JEEPRIDE_INTROSCREEN_LINE3");
precacheString(&"JEEPRIDE_INTROSCREEN_LINE4");
precacheString(&"JEEPRIDE_INTROSCREEN_LINE5");
introscreen_delay(&"JEEPRIDE_INTROSCREEN_LINE1", &"JEEPRIDE_INTROSCREEN_LINE2", &"JEEPRIDE_INTROSCREEN_LINE3", &"JEEPRIDE_INTROSCREEN_LINE4", 0.2, 0.2, 0.2);
break;
case "icbm":
precachestring( &"ICBM_INTROSCREEN_LINE_1" );
precachestring( &"ICBM_INTROSCREEN_LINE_2" );
precachestring( &"ICBM_INTROSCREEN_LINE_3" );
precachestring( &"ICBM_INTROSCREEN_LINE_4" );
precachestring( &"ICBM_INTROSCREEN_LINE_5" );
introscreen_delay(&"ICBM_INTROSCREEN_LINE_1", &"ICBM_INTROSCREEN_LINE_2", &"ICBM_INTROSCREEN_LINE_3", &"ICBM_INTROSCREEN_LINE_4", &"ICBM_INTROSCREEN_LINE_5");
break;
case "scoutsniper":
precacheString(&"SCOUTSNIPER_INTRO_1");
precacheString(&"SCOUTSNIPER_INTRO_2");
precacheString(&"SCOUTSNIPER_INTRO_3");
precacheString(&"SCOUTSNIPER_INTRO_4");
precacheString(&"SCOUTSNIPER_15_YEARS_AGO");
introscreen_delay(&"SCOUTSNIPER_INTRO_1", &"SCOUTSNIPER_INTRO_1", &"SCOUTSNIPER_INTRO_1", &"SCOUTSNIPER_INTRO_1", 3, 3);
break;
case "killhouse":
precachestring( &"KILLHOUSE_INTROSCREEN_LINE_1" );
precachestring( &"KILLHOUSE_INTROSCREEN_LINE_2" );//not used
precachestring( &"KILLHOUSE_INTROSCREEN_LINE_3" );
precachestring( &"KILLHOUSE_INTROSCREEN_LINE_4" );
precachestring( &"KILLHOUSE_INTROSCREEN_LINE_5" );
introscreen_delay(&"KILLHOUSE_INTROSCREEN_LINE_1", &"KILLHOUSE_INTROSCREEN_LINE_3", &"KILLHOUSE_INTROSCREEN_LINE_4", &"KILLHOUSE_INTROSCREEN_LINE_5");
break;
case "example":
/*
precacheString(&"INTROSCREEN_EXAMPLE_TITLE");
precacheString(&"INTROSCREEN_EXAMPLE_PLACE");
precacheString(&"INTROSCREEN_EXAMPLE_DATE");
precacheString(&"INTROSCREEN_EXAMPLE_INFO");
introscreen_delay(&"INTROSCREEN_EXAMPLE_TITLE", &"INTROSCREEN_EXAMPLE_PLACE", &"INTROSCREEN_EXAMPLE_DATE", &"INTROSCREEN_EXAMPLE_INFO");
*/
break;
case "bridge":
thread flying_intro();
break;
default:
// Shouldn't do a notify without a wait statement before it, or bad things can happen when loading a save game.
wait 0.05;
level notify("finished final intro screen fadein");
wait 0.05;
level notify("starting final intro screen fadeout");
wait 0.05;
level notify("controls_active"); // Notify when player controls have been restored
wait 0.05;
flag_set("introscreen_complete"); // Do final notify when player controls have been restored
break;
}
}
introscreen_feed_lines( lines )
{
//get array keys returns the keys in reverse order
keys = getarraykeys( lines );
keys = maps\_utility::array_reverse( keys );
for ( i=0; i < keys.size; i++ )
{
key = keys[ i ];
interval = 1;
time = ( i * interval ) + 1;
delayThread( time, ::introscreen_corner_line, lines[ key ], ( lines.size - i - 1 ), interval, key );
}
}
introscreen_generic_black_fade_in( time, fade_time )
{
introscreen_generic_fade_in( "black", time, fade_time );
}
introscreen_generic_white_fade_in( time, fade_time )
{
introscreen_generic_fade_in( "white", time, fade_time );
}
introscreen_generic_fade_in( shader, time, fade_time )
{
if ( !isdefined( fade_time ) )
fade_time = 1.5;
introblack = newHudElem();
introblack.x = 0;
introblack.y = 0;
introblack.horzAlign = "fullscreen";
introblack.vertAlign = "fullscreen";
introblack.foreground = true;
introblack setShader(shader, 640, 480);
wait time;
// Fade out black
introblack fadeOverTime(1.5);
introblack.alpha = 0;
}
introscreen_create_line(string)
{
index = level.introstring.size;
yPos = (index * 30);
if (level.console)
yPos -= 60;
level.introstring[index] = newHudElem();
level.introstring[index].x = 0;
level.introstring[index].y = yPos;
level.introstring[index].alignX = "center";
level.introstring[index].alignY = "middle";
level.introstring[index].horzAlign= "center";
level.introstring[index].vertAlign = "middle";
level.introstring[index].sort = 1; // force to draw after the background
level.introstring[index].foreground = true;
level.introstring[index].fontScale = 1.75;
level.introstring[index] setText(string);
level.introstring[index].alpha = 0;
level.introstring[index] fadeOverTime(1.2);
level.introstring[index].alpha = 1;
}
introscreen_fadeOutText()
{
for(i = 0; i < level.introstring.size; i++)
{
level.introstring[i] fadeOverTime(1.5);
level.introstring[i].alpha = 0;
}
wait 1.5;
for(i = 0; i < level.introstring.size; i++)
level.introstring[i] destroy();
}
introscreen_delay(string1, string2, string3, string4, pausetime1, pausetime2, timebeforefade)
{
//Chaotically wait until the frame ends twice because handle_starts waits for one frame end so that script gets to init vars
//and this needs to wait for handle_starts to finish so that the level.start_point gets set.
waittillframeend;
waittillframeend;
/#
skipIntro = level.start_point != "default";
if ( getdvar( "introscreen" ) == "0" )
skipIntro = true;
if ( skipIntro )
{
waittillframeend;
level notify("finished final intro screen fadein");
waittillframeend;
level notify ("starting final intro screen fadeout");
waittillframeend;
level notify("controls_active"); // Notify when player controls have been restored
waittillframeend;
flag_set("introscreen_complete"); // Do final notify when player controls have been restored
flag_set( "pullup_weapon" );
return;
}
#/
if ( flying_intro() )
{
return;
}
if ( level.script == "ac130" )
{
ac130_intro();
return;
}
if ( level.script == "hunted" )
{
hunted_intro();
return;
}
if ( level.script == "ambush" )
{
ambush_intro();
return;
}
if ( level.script == "aftermath" )
{
aftermath_intro();
return;
}
if ( level.script == "cargoship" )
{
cargoship_intro();
return;
}
if ( level.script == "launchfacility_b" )
{
launchfacility_b_intro();
return;
}
if ( level.script == "airlift" )
{
airlift_intro();
return;
}
if ( level.script == "village_defend" )
{
village_defend_intro();
return;
}
if ( level.script == "scoutsniper" )
{
scoutsniper_intro();
return;
}
if ( level.script == "jeepride" )
{
jeepride_intro();
return;
}
level.introblack = newHudElem();
level.introblack.x = 0;
level.introblack.y = 0;
level.introblack.horzAlign = "fullscreen";
level.introblack.vertAlign = "fullscreen";
level.introblack.foreground = true;
level.introblack setShader("black", 640, 480);
level.player freezeControls(true);
wait .05;
level.introstring = [];
//Title of level
if(isdefined(string1))
introscreen_create_line(string1);
if(isdefined(pausetime1))
{
wait pausetime1;
}
else
{
wait 2;
}
//City, Country, Date
if(isdefined(string2))
introscreen_create_line(string2);
if(isdefined(string3))
introscreen_create_line(string3);
//Optional Detailed Statement
if(isdefined(string4))
{
if(isdefined(pausetime2))
{
wait pausetime2;
}
else
{
wait 2;
}
}
if(isdefined(string4))
introscreen_create_line(string4);
//if(isdefined(string5))
//introscreen_create_line(string5);
level notify("finished final intro screen fadein");
if(isdefined(timebeforefade))
{
wait timebeforefade;
}
else
{
wait 3;
}
// Fade out black
level.introblack fadeOverTime(1.5);
level.introblack.alpha = 0;
level notify ("starting final intro screen fadeout");
// Restore player controls part way through the fade in
level.player freezeControls(false);
level notify("controls_active"); // Notify when player controls have been restored
// Fade out text
introscreen_fadeOutText();
flag_set("introscreen_complete"); // Notify when complete
}
_CornerLineThread( string, size, interval, index_key )
{
level notify("new_introscreen_element");
if( !isdefined( level.intro_offset ) )
level.intro_offset = 0;
else
level.intro_offset++;
y = _CornerLineThread_height();
hudelem = newHudElem();
hudelem.x = 20;
hudelem.y = y;
hudelem.alignX = "left";
hudelem.alignY = "bottom";
hudelem.horzAlign= "left";
hudelem.vertAlign = "bottom";
hudelem.sort = 1; // force to draw after the background
hudelem.foreground = true;
hudelem setText( string );
hudelem.alpha = 0;
hudelem fadeOverTime( 0.2 );
hudelem.alpha = 1;
hudelem.hidewheninmenu = true;
hudelem.fontScale = 2.0; //was 1.6 and 2.4, larger font change
hudelem.color = (0.8, 1.0, 0.8);
hudelem.font = "objective";
hudelem.glowColor = (0.3, 0.6, 0.3);
hudelem.glowAlpha = 1;
duration = int((size * interval * 1000) + 4000);
hudelem SetPulseFX( 30, duration, 700 );//something, decay start, decay duration
thread hudelem_destroy( hudelem );
if( !isdefined( index_key ) )
return;
if( !isstring( index_key ) )
return;
if( index_key != "date" )
return;
}
_CornerLineThread_height()
{
//return ( ( ( pos ) * 19 ) - 10 );
return ( ( ( level.intro_offset ) * 20 ) - 82 ); //was 19 and 22 larger font change
}
introscreen_corner_line( string, size, interval, index_key )
{
thread _CornerLineThread( string, size, interval, index_key );
}
hudelem_destroy( hudelem )
{
wait( level.linefeed_delay );
hudelem notify( "destroying" );
level.intro_offset = undefined;
time = .5;
hudelem fadeOverTime( time );
hudelem.alpha = 0;
wait time;
hudelem notify( "destroy" );
hudelem destroy();
}
cargoship_intro_dvars()
{
wait( 0.05 );
setsaveddvar( "compass", 0 );
SetSavedDvar( "ammoCounterHide", "1" );
SetSavedDvar( "hud_showStance", 0 );
setSavedDvar( "hud_drawhud", "0" );
}
cargoship_intro()
{
thread cargoship_intro_dvars();
level.player freezeControls(true);
cinematicingamesync("cargoship_fade");
wait .4;
level notify( "intro_movie_done" );
saveGame( "levelstart", &"AUTOSAVE_LEVELSTART", "whatever", true );
introscreen_generic_white_fade_in( 1.75 );
lines = [];
lines[ lines.size ] = &"CARGOSHIP_LINE1";
lines[ "date" ] = &"CARGOSHIP_LINE2";
lines[ lines.size ] = &"CARGOSHIP_LINE3";
lines[ lines.size ] = &"CARGOSHIP_LINE4";
lines[ lines.size ] = &"CARGOSHIP_LINE5";
introscreen_feed_lines( lines );
wait( 1 );
// Do final notify when player controls have been restored
level.player freezeControls( false );
level notify("introscreen_complete");
level.player freezeControls( false );
}
jeepride_intro()
{
level.player freezeControls(true);
cinematicingamesync("jeepride_fade");
lines = [];
lines[ lines.size ] = &"JEEPRIDE_INTROSCREEN_LINE1";
lines[ "date" ] = &"JEEPRIDE_INTROSCREEN_LINE2";
lines[ lines.size ] = &"JEEPRIDE_INTROSCREEN_LINE3";
lines[ lines.size ] = &"JEEPRIDE_INTROSCREEN_LINE4";
lines[ lines.size ] = &"JEEPRIDE_INTROSCREEN_LINE5";
introscreen_feed_lines( lines );
// introscreen_generic_black_fade_in( 2 );
level notify("introscreen_complete");
level.player freezeControls( false );
}
airlift_intro_dvars()
{
wait( 0.05 );
setsaveddvar( "compass", 0 );
SetSavedDvar( "ammoCounterHide", "1" );
}
airlift_intro()
{
thread airlift_intro_dvars();
level.player freezeControls(true);
cinematicingamesync("airlift_fade");
lines = [];
lines[ lines.size ] = &"AIRLIFT_INTROSCREEN_LINE_1"; //"Shock and Awe"
lines[ "date" ] = &"AIRLIFT_INTROSCREEN_LINE_2"; //"Day 03 <20> 18:00:[{FAKE_INTRO_SECONDS:02}]"
lines[ lines.size ] = &"AIRLIFT_INTROSCREEN_LINE_3"; //"Sgt. Paul Jackson"
lines[ lines.size ] = &"AIRLIFT_INTROSCREEN_LINE_4"; //"1st Bn, 7th Marine Regiment"
introscreen_feed_lines( lines );
wait 2;
saveGame( "levelstart", &"AUTOSAVE_LEVELSTART", "whatever", true );
level notify( "introscreen_black" );
introblack = newHudElem();
introblack.x = 0;
introblack.y = 0;
introblack.horzAlign = "fullscreen";
introblack.vertAlign = "fullscreen";
introblack.sort = 1000;
introblack setShader("white", 640, 480);
wait 1;
// Fade out black
introblack fadeOverTime(1.5);
introblack.alpha = 0;
wait( 1 );
level notify( "introscreen_complete" );
thread autosave_now( undefined, true );
level.player freezeControls( false );
}
village_defend_intro_dvars()
{
wait( 0.05 );
setsaveddvar( "compass", 0 );
SetSavedDvar( "ammoCounterHide", "1" );
}
village_defend_intro()
{
thread village_defend_intro_dvars();
level.player freezeControls(true);
//cinematicingamesync( "village_defend_fade" );
introblack = newHudElem();
introblack.x = 0;
introblack.y = 0;
introblack.horzAlign = "fullscreen";
introblack.vertAlign = "fullscreen";
introblack.foreground = true;
introblack setShader("black", 640, 480);
wait .25;
introtime = newHudElem();
introtime.x = 0;
introtime.y = 0;
introtime.alignX = "center";
introtime.alignY = "middle";
introtime.horzAlign = "center";
introtime.vertAlign = "middle";
introtime.sort = 1;
introtime.foreground = true;
introtime setText( &"VILLAGE_DEFEND_PRESENT_DAY" );
introtime.fontScale = 1.6;
introtime.color = (0.8, 1.0, 0.8);
introtime.font = "objective";
introtime.glowColor = (0.3, 0.6, 0.3);
introtime.glowAlpha = 1;
introtime SetPulseFX( 30, 8000, 700 );//something, decay start, decay duration
wait 8.8;
lines = [];
lines[ lines.size ] = &"VILLAGE_DEFEND_INTRO_1";
lines[ "date" ] = &"VILLAGE_DEFEND_INTRO_2";
lines[ lines.size ] = &"VILLAGE_DEFEND_INTRO_3";
lines[ lines.size ] = &"VILLAGE_DEFEND_INTRO_4";
lines[ lines.size ] = &"VILLAGE_DEFEND_INTRO_5";
introscreen_feed_lines( lines );
//introscreen_generic_black_fade_in( 3 );
wait 10;
// Fade out black
introblack fadeOverTime(1.5);
introblack.alpha = 0;
setsaveddvar( "compass", 1 );
SetSavedDvar( "ammoCounterHide", "0" );
SetSavedDvar( "hud_showStance", 1 );
wait( 1 );
// Do final notify when player controls have been restored
level.player freezeControls( false );
level notify("introscreen_complete");
level.player freezeControls( false );
}
scoutsniper_intro()
{
thread scoutsniperIntroDvars();
thread scoutsniperIntroPlayer();
cinematicingamesync("scoutsniper_fade");
wait 4;
set_vision_set( "grayscale" );
saveGame( "levelstart", &"AUTOSAVE_LEVELSTART", "whatever", true );
introblack = newHudElem();
introblack.x = 0;
introblack.y = 0;
introblack.horzAlign = "fullscreen";
introblack.vertAlign = "fullscreen";
introblack.foreground = true;
introblack setShader("black", 640, 480);
wait .25;
introtime = newHudElem();
introtime.x = 0;
introtime.y = 0;
introtime.alignX = "center";
introtime.alignY = "middle";
introtime.horzAlign = "center";
introtime.vertAlign = "middle";
introtime.sort = 1;
introtime.foreground = true;
introtime setText( &"SCOUTSNIPER_15_YEARS_AGO" );
introtime.fontScale = 1.6;
introtime.color = (0.8, 1.0, 0.8);
introtime.font = "objective";
introtime.glowColor = (0.3, 0.6, 0.3);
introtime.glowAlpha = 1;
introtime SetPulseFX( 30, 2000, 700 );//something, decay start, decay duration
wait 2;
lines = [];
lines[ lines.size ] = &"SCOUTSNIPER_INTRO_1";
lines[ lines.size ] = &"SCOUTSNIPER_INTRO_2";
lines[ lines.size ] = &"SCOUTSNIPER_INTRO_3";
lines[ lines.size ] = &"SCOUTSNIPER_INTRO_4";
introscreen_feed_lines( lines );
wait 1;
// Fade out black
introblack fadeOverTime(1.5);
introblack.alpha = 0;
wait 5.5;
set_vision_set( "scoutsniper", 2 );
wait( 7.0 );
// Do final notify when player controls have been restored
level notify("introscreen_complete");
level.player freezeControls( false );
wait( .5 );
setsaveddvar( "compass", 1 );
SetSavedDvar( "ammoCounterHide", "0" );
SetSavedDvar( "hud_showStance", 1 );
}
scoutsniperIntroPlayer()
{
ang = level.player getplayerangles();
wait 1;
level.player setstance("crouch");
level.player freezeControls(true);
level.player setplayerangles(ang);
}
scoutsniperIntroDvars()
{
wait( 0.05 );
setsaveddvar( "compass", 0 );
SetSavedDvar( "ammoCounterHide", "1" );
SetSavedDvar( "hud_showStance", 0 );
}
bog_intro_sound()
{
wait( 0.05 );
//level.player playsound( "ui_camera_whoosh_in" );
setsaveddvar( "compass", 0 );
SetSavedDvar( "ammoCounterHide", "1" );
SetSavedDvar( "hud_showstance", "0" );
SetSavedDvar( "actionSlotsHide", "1" );
}
flying_intro()
{
flying_levels = [];
flying_levels[ "bog_a" ] = true;
flying_levels[ "bog_b" ] = true;
flying_levels[ "blackout" ] = true;
flying_levels[ "killhouse" ] = true;
flying_levels[ "icbm" ] = true;
flying_levels[ "launchfacility_a" ] = true;
flying_levels[ "village_assault" ] = true;
//flying_levels[ "village_defend" ] = true;
if ( !isdefined( level.dontReviveHud ) )
thread revive_ammo_counter();
if ( !isdefined( flying_levels[ level.script ] ) )
return false;
thread bog_intro_sound();
thread weapon_pullout();
level.player freezeControls( true );
zoomHeight = 16000;
slamzoom = true;
/#
if ( getdvar( "slamzoom" ) != "" )
slamzoom = false;
#/
extra_delay = 0;
special_save = false;
if ( slamzoom )
{
lines = [];
if ( level.script == "bog_a" )
{
cinematicingamesync("bog_a_fade");
lines[ lines.size ] = &"BOG_A_INTRO_1";
lines[ "date" ] = &"BOG_A_INTRO_2";
lines[ lines.size ] = &"BOG_A_SGT_PAUL_JACKSON";
lines[ lines.size ] = &"BOG_A_1ST_FORCE_RECON_CO_USMC";
}
else if ( level.script == "bog_b" )
{
extra_delay = 2.0;
// thread introscreen_generic_black_fade_in( 0.7, 0.20 );
cinematicingamesync("bog_b_fade");
lines[ lines.size ] = &"BOG_B_INTROSCREEN_LINE_1"; //"War Pig"
lines[ "date" ] = &"BOG_B_INTROSCREEN_LINE_2"; //"Day 3 <20> 1630 hrs"
lines[ lines.size ] = &"BOG_B_INTROSCREEN_LINE_3"; //"Sgt. Paul Jackson"
lines[ lines.size ] = &"BOG_B_INTROSCREEN_LINE_4"; //"1st Bn, 7th Marine Regiment"
zoomHeight = 6500;
}
else if ( level.script == "blackout" )
{
// thread introscreen_generic_black_fade_in( 0.7, 0.20 );
cinematicingamesync( "blackout_fade" );
lines[ lines.size ] = &"BLACKOUT_INTRO_1";
lines[ "date" ] = &"BLACKOUT_INTRO_2";
lines[ lines.size ] = &"BLACKOUT_INTRO_3";
lines[ lines.size ] = &"BLACKOUT_INTRO_4";
lines[ lines.size ] = &"BLACKOUT_INTRO_5";
// lines[ lines.size ] = "Sgt. John 'Soap' MacTavish";
// lines[ lines.size ] = "22nd SAS Regiment";
zoomHeight = 4000;
}
else if ( level.script == "killhouse" )
{
special_save = true;
//thread introscreen_generic_black_fade_in( 0.7, 0.20 );
cinematicingamesync("killhouse_fade");
lines = [];
lines[ lines.size ] = &"KILLHOUSE_INTROSCREEN_LINE_1";
// lines[ "date" ] = &"KILLHOUSE_INTROSCREEN_LINE_2";
// lines[ "date" ] = "Day 1 - 6:30:[{FAKE_INTRO_SECONDS:09}]";
lines[ lines.size ] = &"KILLHOUSE_INTROSCREEN_LINE_3";
lines[ lines.size ] = &"KILLHOUSE_INTROSCREEN_LINE_4";
lines[ lines.size ] = &"KILLHOUSE_INTROSCREEN_LINE_5";
}
else if ( level.script == "icbm" )
{
extra_delay = .6;
//thread introscreen_generic_black_fade_in( 0.7, 0.20 );
cinematicingamesync("icbm_fade");
lines = [];
lines[ lines.size ] = &"ICBM_INTROSCREEN_LINE_1";
lines[ "date" ] = &"ICBM_INTROSCREEN_LINE_2";
//lines[ "date" ] = "Day 6 - 6:19:[{FAKE_INTRO_SECONDS:32}]";
lines[ lines.size ] = &"ICBM_INTROSCREEN_LINE_3";
lines[ lines.size ] = &"ICBM_INTROSCREEN_LINE_4";
lines[ lines.size ] = &"ICBM_INTROSCREEN_LINE_5";
}
else if ( level.script == "launchfacility_a" )
{
//thread introscreen_generic_black_fade_in( 0.7, 0.20 );
cinematicingamesync("launchfacility_a_fade");
lines = [];
lines[ lines.size ] = &"LAUNCHFACILITY_A_INTROSCREEN_LINE_1";
lines[ "date" ] = &"LAUNCHFACILITY_A_INTROSCREEN_LINE_2";
//lines[ "date" ] = "Day 6 - 6:19:[{FAKE_INTRO_SECONDS:32}]";
lines[ lines.size ] = &"LAUNCHFACILITY_A_INTROSCREEN_LINE_3";
lines[ lines.size ] = &"LAUNCHFACILITY_A_INTROSCREEN_LINE_4";
lines[ lines.size ] = &"LAUNCHFACILITY_A_INTROSCREEN_LINE_5";
}
else if ( level.script == "village_assault" )
{
//thread introscreen_generic_black_fade_in( 0.05 );
cinematicingamesync( "village_assault_fade" );
lines = [];
lines[ lines.size ] = &"VILLAGE_ASSAULT_INTROSCREEN_LINE_1";
lines[ "date" ] = &"VILLAGE_ASSAULT_INTROSCREEN_LINE_2";
lines[ lines.size ] = &"VILLAGE_ASSAULT_INTROSCREEN_LINE_3";
lines[ lines.size ] = &"VILLAGE_ASSAULT_INTROSCREEN_LINE_4";
lines[ lines.size ] = &"VILLAGE_ASSAULT_INTROSCREEN_LINE_5";
}
/*
else if ( level.script == "village_defend" )
{
//thread introscreen_generic_black_fade_in( 0.05 );
cinematicingamesync( "village_defend_fade" );
lines = [];
lines[ lines.size ] = &"VILLAGE_DEFEND_INTRO_1";
lines[ "date" ] = &"VILLAGE_DEFEND_INTRO_2";
lines[ lines.size ] = &"VILLAGE_DEFEND_INTRO_3";
lines[ lines.size ] = &"VILLAGE_DEFEND_INTRO_4";
lines[ lines.size ] = &"VILLAGE_DEFEND_INTRO_5";
}
*/
introscreen_feed_lines( lines );
}
origin = level.player.origin;
level.player.origin = origin + ( 0, 0, zoomHeight );
ent = spawn( "script_model", (69,69,69) );
ent.origin = level.player.origin;
ent setmodel( "tag_origin" );
ent.angles = level.player.angles;
level.player linkto( ent );
ent.angles = ( ent.angles[ 0 ] + 89, ent.angles[ 1 ], 0 );
wait( extra_delay );
ent moveto ( origin + (0,0,0), 2, 0, 2 );
wait ( 1.00 );
wait( 0.5 );
ent rotateto( ( ent.angles[ 0 ] - 89, ent.angles[ 1 ], 0 ), 0.5, 0.3, 0.2 );
if ( !special_save )
saveGame( "levelstart", &"AUTOSAVE_LEVELSTART", "whatever", true );
wait ( 0.5 );
flag_set( "pullup_weapon" );
wait( 0.2 );
level.player unlink();
level.player freezeControls( false );
thread play_sound_in_space( "ui_screen_trans_in", level.player.origin );
wait( 0.2 );
thread play_sound_in_space( "ui_screen_trans_out", level.player.origin );
wait( 0.2 );
// Do final notify when player controls have been restored
flag_set( "introscreen_complete" );
wait( 2 );
ent delete();
return true;
}
ac130_intro()
{
level.player freezeControls(true);
lines = [];
lines[ lines.size ] = &"AC130_INTROSCREEN_LINE_1"; // 'Death from Above'
lines[ "date" ] = &"AC130_INTROSCREEN_LINE_2"; // Day 2 - 0420 hrs
lines[ lines.size ] = &"AC130_INTROSCREEN_LINE_3"; // Western Russia
lines[ lines.size ] = &"AC130_INTROSCREEN_LINE_4"; // Thermal Imaging TV Operator
lines[ lines.size ] = &"AC130_INTROSCREEN_LINE_5"; // AC-130H Spectre Gunship
introscreen_feed_lines( lines );
level notify( "introscreen_black" );
saveGame( "levelstart", &"AUTOSAVE_LEVELSTART", "whatever", true );
introblack = newHudElem();
introblack.x = 0;
introblack.y = 0;
introblack.horzAlign = "fullscreen";
introblack.vertAlign = "fullscreen";
introblack.sort = 1000;
introblack setShader("black", 640, 480);
wait 4.0;
level notify( "introscreen_almost_complete" );
wait 1.5;
// Fade out black
introblack fadeOverTime(1.5);
introblack.alpha = 0;
wait( 1 );
level.player freezeControls( false );
SetSavedDvar( "hud_showStance", 0 );
level notify( "introscreen_complete" );
level.player freezeControls( false );
}
aftermath_intro()
{
cinematicingamesync("black");
level notify( "introscreen_complete" );
}
hunted_intro_dvars()
{
wait( 0.05 );
setsaveddvar( "compass", 0 );
SetSavedDvar( "ammoCounterHide", "1" );
}
hunted_intro()
{
thread hunted_intro_dvars();
level.player freezeControls(true);
lines = [];
lines[ lines.size ] = &"HUNTED_INTROSCREEN_LINE_1";
lines[ "date" ] = &"HUNTED_INTROSCREEN_LINE_2";
lines[ lines.size ] = &"HUNTED_INTROSCREEN_LINE_3";
lines[ lines.size ] = &"HUNTED_INTROSCREEN_LINE_4";
lines[ lines.size ] = &"HUNTED_INTROSCREEN_LINE_5";
introscreen_feed_lines( lines );
cinematicingamesync( "hunted_fade" );
wait 1;
saveGame( "levelstart", &"AUTOSAVE_LEVELSTART", "whatever", true );
introscreen_generic_white_fade_in( 2 );
saveGame( "levelstart", &"AUTOSAVE_LEVELSTART", "whatever", true );
wait( 1 );
// Do final notify when player controls have been restored
level.player freezeControls( false );
level notify("introscreen_complete");
level.player freezeControls( false );
}
launchfacility_b_intro_dvars()
{
wait( 0.05 );
setsaveddvar( "compass", 0 );
SetSavedDvar( "ammoCounterHide", "1" );
SetSavedDvar( "actionSlotsHide", "1" );
SetSavedDvar( "hud_showstance", "0" );
thread revive_ammo_counter();
}
launchfacility_b_intro()
{
thread launchfacility_b_intro_dvars();
level.player freezeControls(true);
lines = [];
lines[ lines.size ] = &"LAUNCHFACILITY_B_INTROSCREEN_LINE_1";
lines[ "date" ] = &"LAUNCHFACILITY_B_INTROSCREEN_LINE_2";
lines[ lines.size ] = &"LAUNCHFACILITY_B_INTROSCREEN_LINE_3";
lines[ lines.size ] = &"LAUNCHFACILITY_B_INTROSCREEN_LINE_4";
lines[ lines.size ] = &"LAUNCHFACILITY_B_INTROSCREEN_LINE_5";
introscreen_feed_lines( lines );
//introscreen_generic_black_fade_in( 3 );
introscreen_generic_white_fade_in( 1 );
wait( 1 );
// Do final notify when player controls have been restored
level.player freezeControls( false );
level notify("introscreen_complete");
level.player freezeControls( false );
}
ambush_intro_dvars()
{
wait( 0.05 );
setsaveddvar( "compass", 0 );
SetSavedDvar( "ammoCounterHide", "1" );
}
ambush_intro()
{
thread ambush_intro_dvars();
level.player freezeControls(true);
lines = [];
lines[ lines.size ] = &"AMBUSH_INTROSCREEN_LINE_1";
lines[ "date" ] = &"AMBUSH_INTROSCREEN_LINE_2";
lines[ lines.size ] = &"AMBUSH_INTROSCREEN_LINE_3";
lines[ lines.size ] = &"AMBUSH_INTROSCREEN_LINE_4";
lines[ lines.size ] = &"AMBUSH_INTROSCREEN_LINE_5";
introscreen_feed_lines( lines );
cinematicingamesync( "ambush_fade" );
wait 2;
saveGame( "levelstart", &"AUTOSAVE_LEVELSTART", "whatever", true );
introscreen_generic_white_fade_in( 2 );
thread autosave_now( "start", true );
setsaveddvar( "compass", 1 );
SetSavedDvar( "ammoCounterHide", "0" );
SetSavedDvar( "hud_showStance", 1 );
wait( 1 );
// Do final notify when player controls have been restored
level.player freezeControls( false );
level notify("introscreen_complete");
level.player freezeControls( false );
}
weapon_pullout()
{
weap = level.player getweaponslist()[ 0 ];
level.player DisableWeapons();
flag_wait( "pullup_weapon" );
level.player EnableWeapons();
// level.player switchToWeapon( weap );
}
revive_ammo_counter()
{
flag_wait( "safe_for_objectives" );
if( !isdefined( level.nocompass ) )
setsaveddvar( "compass", 1 );
SetSavedDvar( "ammoCounterHide", "0" );
SetSavedDvar( "actionSlotsHide", "0" );
SetSavedDvar( "hud_showstance", "1" );
}