IW4-Dump-Files/maps/_introscreen.gsc

1411 lines
38 KiB
Plaintext
Raw Normal View History

2017-07-08 11:47:21 -07: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 "roadkill":
// "Team Player"
PreCacheString( &"ROADKILL_LINE_1" );
// Day 1 - 16:08:[{FAKE_INTRO_SECONDS:32}]
PreCacheString( &"ROADKILL_LINE_2" );
// PFC Joseph Allen
PreCacheString( &"ROADKILL_LINE_3" );
// 1st Bn., 75th Ranger Regiment
PreCacheString( &"ROADKILL_LINE_4" );
// The Red Zone, Afghanistan
PreCacheString( &"ROADKILL_LINE_5" );
introscreen_delay();
break;
case "airport":
// "No Russian"
PreCacheString( &"AIRPORT_LINE1" );
// Day 3, 08:40:[{FAKE_INTRO_SECONDS:32}]
PreCacheString( &"AIRPORT_LINE2" );
// PFC Joseph Allen a.k.a. Alexei Borodin
PreCacheString( &"AIRPORT_LINE3" );
// Zakhaev International Airport
PreCacheString( &"AIRPORT_LINE4" );
// Moscow, Russia
PreCacheString( &"AIRPORT_LINE5" );
introscreen_delay();
break;
case "invasion":
// "Wolverines!"
PreCacheString( &"INVASION_LINE1" );
// Day 4 - 17:45:[{FAKE_INTRO_SECONDS:32}]
PreCacheString( &"INVASION_LINE2" );
// Pvt. James Ramirez
PreCacheString( &"INVASION_LINE3" );
// 1st Bn., 75th Ranger Regiment
PreCacheString( &"INVASION_LINE4" );
// Wolverines!""
// Day 4 - 17:45:[{FAKE_INTRO_SECONDS:32}]
// Pvt. James Ramirez
// 1st Bn., 75th Ranger Regiment
// Northeastern Virginia, U.S.A.
//introscreen_delay(&"INVASION_LINE1", &"INVASION_LINE2", &"INVASION_LINE3", &"INVASION_LINE4", 2, 2, .5);
break;
case "oilrig":
// "The Only Easy Day...Was Yesterday"
PreCacheString( &"OILRIG_INTROSCREEN_LINE_1" );
// Day 5 - 05:47:[{FAKE_INTRO_SECONDS:12}]
PreCacheString( &"OILRIG_INTROSCREEN_LINE_2" );
// Sgt. Gary 'Roach' Sanderson
PreCacheString( &"OILRIG_INTROSCREEN_LINE_3" );
// Task Force 141
PreCacheString( &"OILRIG_INTROSCREEN_LINE_4" );
// Vikhorevka 36 Oil Platform, Russia
PreCacheString( &"OILRIG_INTROSCREEN_LINE_5" );
introscreen_delay();
break;
case "gulag":
// "The Gulag"
PreCacheString( &"GULAG_INTROSCREEN_1" );
// Day 5 - 07:42:[{FAKE_INTRO_SECONDS:17}]
PreCacheString( &"GULAG_INTROSCREEN_2" );
// Sgt. Gary 'Roach' Sanderson
PreCacheString( &"GULAG_INTROSCREEN_3" );
// Task Force 141
PreCacheString( &"GULAG_INTROSCREEN_4" );
// 40 miles east of Petropavlovsk, Russia
PreCacheString( &"GULAG_INTROSCREEN_5" );
introscreen_delay();
break;
case "dcburning":
// "Of Their Own Accord"
PreCacheString( &"DCBURNING_INTROSCREEN_1" );
// Day 5 - 18:34:[{FAKE_INTRO_SECONDS:33}]
PreCacheString( &"DCBURNING_INTROSCREEN_2" );
// Pvt. James Ramirez
PreCacheString( &"DCBURNING_INTROSCREEN_3" );
// 1st Bn., 75th Ranger Regiment
PreCacheString( &"DCBURNING_INTROSCREEN_4" );
// Washington, D.C., U.S.A.
PreCacheString( &"DCBURNING_INTROSCREEN_5" );
introscreen_delay();
break;
case "trainer":
// "S.S.D.D."
PreCacheString( &"TRAINER_INTROSCREEN_LINE_1" );
//Day 1 - 15:30:[{FAKE_INTRO_SECONDS:25}]
PreCacheString( &"TRAINER_INTROSCREEN_LINE_2" );
// PFC Joseph Allen
PreCacheString( &"TRAINER_INTROSCREEN_LINE_3" );
// 1st Bn., 75th Ranger Regiment
PreCacheString( &"TRAINER_INTROSCREEN_LINE_4" );
// Fire Base Phoenix, Afghanistan
PreCacheString( &"TRAINER_INTROSCREEN_LINE_5" );
introscreen_delay();
break;
case "dcemp":
// "Second Sun"
PreCacheString( &"DCEMP_INTROSCREEN_1" );
// Day 5 - 18:57:[{FAKE_INTRO_SECONDS:17}]
PreCacheString( &"DCEMP_INTROSCREEN_2" );
// Pvt. James Ramirez
PreCacheString( &"DCEMP_INTROSCREEN_3" );
// 75th Ranger Regiment
PreCacheString( &"DCEMP_INTROSCREEN_4" );
// Washington, D.C.
PreCacheString( &"DCEMP_INTROSCREEN_5" );
introscreen_delay();
break;
case "dc_whitehouse":
// 'Whiskey Hotel'
PreCacheString( &"DC_WHITEHOUSE_INTROSCREEN_1" );
// Day 5, 19:31:[{FAKE_INTRO_SECONDS:22}] hrs
PreCacheString( &"DC_WHITEHOUSE_INTROSCREEN_2" );
// Pvt. James Ramirez
PreCacheString( &"DC_WHITEHOUSE_INTROSCREEN_3" );
// 75th Ranger Regiment
PreCacheString( &"DC_WHITEHOUSE_INTROSCREEN_4" );
// Washington, D.C.
PreCacheString( &"DC_WHITEHOUSE_INTROSCREEN_5" );
introscreen_delay();
break;
case "killhouse":
// string not found for KILLHOUSE_INTROSCREEN_LINE_1
PreCacheString( &"KILLHOUSE_INTROSCREEN_LINE_1" );
// string not found for KILLHOUSE_INTROSCREEN_LINE_2
PreCacheString( &"KILLHOUSE_INTROSCREEN_LINE_2" );// not used
// string not found for KILLHOUSE_INTROSCREEN_LINE_3
PreCacheString( &"KILLHOUSE_INTROSCREEN_LINE_3" );
// string not found for KILLHOUSE_INTROSCREEN_LINE_4
PreCacheString( &"KILLHOUSE_INTROSCREEN_LINE_4" );
// string not found for KILLHOUSE_INTROSCREEN_LINE_5
PreCacheString( &"KILLHOUSE_INTROSCREEN_LINE_5" );
// string not found for KILLHOUSE_INTROSCREEN_LINE_1
// string not found for KILLHOUSE_INTROSCREEN_LINE_3
// string not found for KILLHOUSE_INTROSCREEN_LINE_4
// string not found for KILLHOUSE_INTROSCREEN_LINE_5
introscreen_delay( &"KILLHOUSE_INTROSCREEN_LINE_1", &"KILLHOUSE_INTROSCREEN_LINE_3", &"KILLHOUSE_INTROSCREEN_LINE_4", &"KILLHOUSE_INTROSCREEN_LINE_5" );
break;
case "favela":
// "Takedown"
PreCacheString( &"FAVELA_INTROSCREEN_LINE_1" );
// Day 4 - 15:08:[{FAKE_INTRO_SECONDS:16}]
PreCacheString( &"FAVELA_INTROSCREEN_LINE_2" );
// Sgt. Gary 'Roach' Sanderson
PreCacheString( &"FAVELA_INTROSCREEN_LINE_3" );
// Task Force 141
PreCacheString( &"FAVELA_INTROSCREEN_LINE_4" );
// Rio de Janeiro, Brazil
PreCacheString( &"FAVELA_INTROSCREEN_LINE_5" );
introscreen_delay();
break;
case "arcadia":
// 'Exodus'
PreCacheString( &"ARCADIA_INTROSCREEN_LINE_1" );
// Day 04 - 17:36:[{FAKE_INTRO_SECONDS:28}]
PreCacheString( &"ARCADIA_INTROSCREEN_LINE_2" );
// Pvt. James Ramirez
PreCacheString( &"ARCADIA_INTROSCREEN_LINE_3" );
// 1st Bn., 75th Ranger Regiment
PreCacheString( &"ARCADIA_INTROSCREEN_LINE_4" );
// Northeastern Virginia, U.S.A.
PreCacheString( &"ARCADIA_INTROSCREEN_LINE_5" );
introscreen_delay();
break;
case "favela_escape":
// 'The Hornet's Nest'
PreCacheString( &"FAVELA_ESCAPE_INTROSCREEN_LINE_1" );
// Day 4 - 04:19:[{FAKE_INTRO_SECONDS:40}]
PreCacheString( &"FAVELA_ESCAPE_INTROSCREEN_LINE_2" );
// Sgt. Gary 'Roach' Sanderson
PreCacheString( &"FAVELA_ESCAPE_INTROSCREEN_LINE_3" );
// Task Force 141
PreCacheString( &"FAVELA_ESCAPE_INTROSCREEN_LINE_4" );
// Rio de Janeiro, 1700 F.S.L.
PreCacheString( &"FAVELA_ESCAPE_INTROSCREEN_LINE_5" );
introscreen_delay();
break;
case "estate":
// "Loose Ends"
PreCacheString( &"ESTATE_INTROSCREEN_LINE_1" );
// Day 6 - [{FAKE_INTRO_TIME:15:36:07}]
PreCacheString( &"ESTATE_INTROSCREEN_LINE_2" );
// Sgt. Gary Roach" Sanderson"
PreCacheString( &"ESTATE_INTROSCREEN_LINE_3" );
// Task Force 141
PreCacheString( &"ESTATE_INTROSCREEN_LINE_4" );
// Georgian-Russian Border
PreCacheString( &"ESTATE_INTROSCREEN_LINE_5" );
introscreen_delay();
break;
case "boneyard":
// "The Enemy of My Enemy"
PreCacheString( &"BONEYARD_INTROSCREEN_LINE_1" );
// Day 6 - [{FAKE_INTRO_TIME:16:03:21}]
PreCacheString( &"BONEYARD_INTROSCREEN_LINE_2" );
// Cpt. 'Soap' MacTavish
PreCacheString( &"BONEYARD_INTROSCREEN_LINE_3" );
// 160 miles SW of Kandahar, Afghanistan
PreCacheString( &"BONEYARD_INTROSCREEN_LINE_4" );
// U.S. Ordnance and Vehicle Disposal Yard 437
PreCacheString( &"BONEYARD_INTROSCREEN_LINE_5" );
introscreen_delay();
break;
case "af_caves":
// "Just Like Old Times"
PreCacheString( &"AF_CAVES_LINE1" ); // "Just Like Old Times"
// Day 7 - 16:40:[{FAKE_INTRO_SECONDS:22}]
PreCacheString( &"AF_CAVES_LINE2" ); // Day 7 <20> 16:40:xx
// 'Soap' MacTavish
PreCacheString( &"AF_CAVES_LINE3" ); // 'Soap' MacTavish
// Site Hotel Bravo, Afghanistan
PreCacheString( &"AF_CAVES_LINE4" ); // Site Hotel Bravo, Afghanistan
introscreen_delay();
break;
case "af_chase":
// "You Can't Win A War With A Bullet"
PreCacheString( &"AF_CHASE_INTROSCREEN_LINE1" );
// Day 7 - 18:10:[{FAKE_INTRO_SECONDS:22}]
PreCacheString( &"AF_CHASE_INTROSCREEN_LINE2" );
// 'Soap' MacTavish
PreCacheString( &"AF_CHASE_INTROSCREEN_LINE3" );
// Site Hotel Bravo, Afghanistan
PreCacheString( &"AF_CHASE_INTROSCREEN_LINE4" );
//introscreen_delay();
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;
}
}
contingency_black_screen_intro()
{
SetSavedDvar( "hud_drawhud", "0" );
level.player FreezeControls( true );
//thread maps\_introscreen::introscreen_generic_black_fade_in( 3.5, 1 );
thread maps\_introscreen::introscreen_generic_black_fade_in( 5.3, 1 );
lines = [];
// Contingency""
lines[ lines.size ] = &"CONTINGENCY_LINE1";
// Day 4 - 16:35:[{FAKE_INTRO_SECONDS:32}]
lines[ "date" ] = &"CONTINGENCY_LINE2";
// Sgt. Gary 'Roach' Sanderson
lines[ lines.size ] = &"CONTINGENCY_LINE3";
// Task Force 141
lines[ lines.size ] = &"CONTINGENCY_LINE4";
// Eastern Russia
lines[ lines.size ] = &"CONTINGENCY_LINE5";
maps\_introscreen::introscreen_feed_lines( lines );
wait 5;
level.player FreezeControls( false );
setSavedDvar( "hud_drawhud", "1" );
}
contingency_intro_text()
{
wait .2;
lines = [];
// Contingency""
lines[ lines.size ] = &"CONTINGENCY_LINE1";
// Day 4 - 16:35:[{FAKE_INTRO_SECONDS:32}]
lines[ "date" ] = &"CONTINGENCY_LINE2";
// Sgt. Gary 'Roach' Sanderson
lines[ lines.size ] = &"CONTINGENCY_LINE3";
// Task Force 141
lines[ lines.size ] = &"CONTINGENCY_LINE4";
// Eastern Russia
lines[ lines.size ] = &"CONTINGENCY_LINE5";
maps\_introscreen::introscreen_feed_lines( lines );
}
cliffhanger_intro_text()
{
wait 17;
lines = [];
// Cliffhanger""
lines[ lines.size ] = &"CLIFFHANGER_LINE1";
// Day 2 - 7:35:[{FAKE_INTRO_SECONDS:32}]
lines[ "date" ] = &"CLIFFHANGER_LINE2";
// Sgt. Gary Roach" Sanderson"
lines[ lines.size ] = &"CLIFFHANGER_LINE3";
// Task Force 141
lines[ lines.size ] = &"CLIFFHANGER_LINE4";
// Tian Shan Range, Kazakhstan
lines[ lines.size ] = &"CLIFFHANGER_LINE5";
maps\_introscreen::introscreen_feed_lines( lines );
}
introscreen_feed_lines( lines )
{
keys = GetArrayKeys( lines );
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, fade_in_time )
{
introscreen_generic_fade_in( "black", time, fade_time, fade_in_time );
}
introscreen_generic_white_fade_in( time, fade_time, fade_in_time )
{
introscreen_generic_fade_in( "white", time, fade_time, fade_in_time );
}
introscreen_generic_fade_in( shader, pause_time, fade_out_time, fade_in_time )
{
if ( !isdefined( fade_out_time ) )
fade_out_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 );
if ( IsDefined( fade_in_time ) && fade_in_time > 0 )
{
introblack.alpha = 0;
introblack FadeOverTime( fade_in_time );
introblack.alpha = 1;
wait( fade_in_time );
}
wait pause_time;
// Fade out black
if ( fade_out_time > 0 )
introblack FadeOverTime( fade_out_time );
introblack.alpha = 0;
wait fade_out_time;
SetSavedDvar( "com_cinematicEndInWhite", 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 = !is_default_start();
if ( GetDebugDvar( "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;
}
switch ( level.script )
{
case "airport":
airport_intro();
return;
case "favela":
favela_intro();
return;
case "favela_escape":
favela_escape_intro();
return;
case "arcadia":
arcadia_intro();
return;
case "oilrig":
oilrig_intro();
return;
case "dcburning":
dcburning_intro();
return;
case "trainer":
trainer_intro();
return;
case "dcemp":
dcemp_intro();
return;
case "dc_whitehouse":
dc_whitehouse_intro();
return;
case "gulag":
flag_set( "introscreen_complete" );// Notify when complete
return;
case "af_caves":
af_caves_intro();
return;
case "roadkill":
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" );
}
favela_intro()
{
level.player FreezeControls( true );
// string not found for AUTOSAVE_LEVELSTART
SaveGame( "levelstart", &"AUTOSAVE_LEVELSTART", "whatever", true );
thread introscreen_generic_black_fade_in( 5.0 );
lines = [];
// 'Takedown'
lines[ lines.size ] = &"FAVELA_INTROSCREEN_LINE_1"; // 'Takedown'
// Day 4 - 14:30:[{FAKE_INTRO_SECONDS:16}]
lines[ "date" ] = &"FAVELA_INTROSCREEN_LINE_2"; // Day 4 - 14:30:[ {FAKE_INTRO_SECONDS:16} ]
// Sgt. Gary 'Roach' Sanderson
lines[ lines.size ] = &"FAVELA_INTROSCREEN_LINE_3"; // Sgt. Gary 'Roach' Sanderson
// Task Force 141
lines[ lines.size ] = &"FAVELA_INTROSCREEN_LINE_4"; // Task Force 141
// Rio de Janeiro, Brazil
lines[ lines.size ] = &"FAVELA_INTROSCREEN_LINE_5"; // Rio de Janeiro, Brazil
introscreen_feed_lines( lines );
wait( 5.0 );
level notify( "introscreen_complete" );
level.player FreezeControls( false );
}
favela_escape_intro()
{
level.player FreezeControls( true );
// string not found for AUTOSAVE_LEVELSTART
SaveGame( "levelstart", &"AUTOSAVE_LEVELSTART", "whatever", true );
blacktime = 6;
thread introscreen_generic_black_fade_in( blacktime );
thread flag_set_delayed( "introscreen_start_dialogue", 1.0 );
lines = [];
// 'The Hornet's Nest'
lines[ lines.size ] = &"FAVELA_ESCAPE_INTROSCREEN_LINE_1";// 'The Hornet's Nest'
// Day 4 - 04:19:[{FAKE_INTRO_SECONDS:40}]
lines[ "date" ] = &"FAVELA_ESCAPE_INTROSCREEN_LINE_2";// Day 4 - 04:19:[ {FAKE_INTRO_SECONDS:40} ]
// Sgt. Gary 'Roach' Sanderson
lines[ lines.size ] = &"FAVELA_ESCAPE_INTROSCREEN_LINE_3";// Sgt. Gary 'Roach' Sanderson
// Task Force 141
lines[ lines.size ] = &"FAVELA_ESCAPE_INTROSCREEN_LINE_4";// Task Force 141
// Rio de Janeiro, 1700 F.S.L.
lines[ lines.size ] = &"FAVELA_ESCAPE_INTROSCREEN_LINE_5";// Rio de Janeiro, 7000 F.S.L.
introscreen_feed_lines( lines );
wait( blacktime );
level notify( "introscreen_complete" );
level.player FreezeControls( false );
}
arcadia_intro()
{
level.player FreezeControls( true );
// string not found for AUTOSAVE_LEVELSTART
SaveGame( "levelstart", &"AUTOSAVE_LEVELSTART", "whatever", true );
thread introscreen_generic_black_fade_in( 5.0 );
lines = [];
// 'Exodus'
lines[ lines.size ] = &"ARCADIA_INTROSCREEN_LINE_1"; // 'Contraflow'
// Day 04 - 17:36:[{FAKE_INTRO_SECONDS:28}]
lines[ "date" ] = &"ARCADIA_INTROSCREEN_LINE_2"; // DC Invasion D + 1 - 15:22:[ {FAKE_INTRO_SECONDS:02} ]
// Pvt. James Ramirez
lines[ lines.size ] = &"ARCADIA_INTROSCREEN_LINE_3"; // PFC James Patterson
// 1st Bn., 75th Ranger Regiment
lines[ lines.size ] = &"ARCADIA_INTROSCREEN_LINE_4"; // U.S. Army 3rd Infantry Regiment
// Northeastern Virginia, U.S.A.
lines[ lines.size ] = &"ARCADIA_INTROSCREEN_LINE_5"; // Washington DC Suburbs
introscreen_feed_lines( lines );
wait( 5.0 );
level notify( "introscreen_complete" );
level.player FreezeControls( false );
}
boneyard_intro()
{
lines = [];
// 'The Enemy of My Enemy'
lines[ lines.size ] = &"BONEYARD_INTROSCREEN_LINE_1"; // "The Enemy Of My Enemy"
// Day 6 - 17:30:[{FAKE_INTRO_SECONDS:21}]
lines[ "date" ] = &"BONEYARD_INTROSCREEN_LINE_2"; // Day 6 - 17:30:[ {FAKE_INTRO_SECONDS:41} ]
// Cpt. 'Soap' MacTavish
lines[ lines.size ] = &"BONEYARD_INTROSCREEN_LINE_3"; // Cpt. 'Soap' MacTavish
// 160 miles SW of Kandahar, Afghanistan
lines[ lines.size ] = &"BONEYARD_INTROSCREEN_LINE_4"; // 160 miles SW of Kandahar, Afghanistan
// U.S. Vehicle Disposal Yard 437
lines[ lines.size ] = &"BONEYARD_INTROSCREEN_LINE_5"; // U.S. Vehicle Disposal Yard 437
introscreen_feed_lines( lines );
level notify( "introscreen_complete" );
}
estate_intro()
{
lines = [];
// 'Loose Ends'
lines[ lines.size ] = &"ESTATE_INTROSCREEN_LINE_1"; // 'Loose Ends'
// Day 6 - 14:45:[{FAKE_INTRO_SECONDS:07}]
lines[ "date" ] = &"ESTATE_INTROSCREEN_LINE_2"; // Day 6 - 14:30:[ {FAKE_INTRO_SECONDS:07} ]
// Sgt. Gary Roach" Sanderson"
lines[ lines.size ] = &"ESTATE_INTROSCREEN_LINE_3"; // Sgt. Gary 'Roach' Sanderson
// Task Force 141
lines[ lines.size ] = &"ESTATE_INTROSCREEN_LINE_4"; // Task Force 141
// Georgian-Russian Border
lines[ lines.size ] = &"ESTATE_INTROSCREEN_LINE_5"; // Georgian - Russian Border
introscreen_feed_lines( lines );
level notify( "introscreen_complete" );
}
airport_intro()
{
level.player FreezeControls( true );
// string not found for AUTOSAVE_LEVELSTART
SaveGame( "levelstart", &"AUTOSAVE_LEVELSTART", "whatever", true );
time = 21 + 5.5;
// thread introscreen_generic_black_fade_in( time );
lines = [];
// No Russian""
lines[ lines.size ] = &"AIRPORT_LINE1";
// Day 3, 08:40:[{FAKE_INTRO_SECONDS:32}]
lines[ "date" ] = &"AIRPORT_LINE2";
// PFC Joseph Allen a.k.a. Alexei Borodin
lines[ lines.size ] = &"AIRPORT_LINE3";
// Terminal 3, Domodedovo Int'l Airport
lines[ lines.size ] = &"AIRPORT_LINE4";
// Moscow, Russia
lines[ lines.size ] = &"AIRPORT_LINE5";
delayThread( 10.25 + 5.5, ::introscreen_feed_lines, lines );
wait( time );
wait 1;
if ( !flag( "do_not_save" ) )
thread autosave_now_silent();
level notify( "introscreen_complete" );
level.player FreezeControls( false );
}
oilrig_intro_dvars()
{
//wait( 0.05 );
SetSavedDvar( "ui_hidemap", 1 );
SetSavedDvar( "hud_showStance", "0" );
SetSavedDvar( "compass", "0" );
//SetDvar( "old_compass", "0" );
SetSavedDvar( "ammoCounterHide", "1" );
SetSavedDvar( "g_friendlyNameDist", 0 );
//SetSavedDvar( "hud_showTextNoAmmo", "0" );
}
oilrig_intro()
{
if ( !level.underwater )
return;
thread oilrig_intro_dvars();
level.player FreezeControls( true );
flag_wait( "open_dds_door" );
wait( 2 );
level.player FreezeControls( false );
}
oilrig_intro2()
{
lines = [];
// The Only Easy Day...Was Yesterday
lines[ lines.size ] = &"OILRIG_INTROSCREEN_LINE_1";
// LANG_ENGLISH Day 3 - [{FAKE_INTRO_TIME:06:58:21}] hrs"
lines[ lines.size ] = &"OILRIG_INTROSCREEN_LINE_2";
// Sgt. Gary 'Roach' Sanderson
lines[ lines.size ] = &"OILRIG_INTROSCREEN_LINE_3";
// Task Force 141
lines[ lines.size ] = &"OILRIG_INTROSCREEN_LINE_4";
// Vikhorevka 36 Oil Platform
lines[ lines.size ] = &"OILRIG_INTROSCREEN_LINE_5";
introscreen_feed_lines( lines );
}
char_museum_intro()
{
lines = [];
lines[ lines.size ] = &"CHAR_MUSEUM_LINE1";
lines[ lines.size ] = &"CHAR_MUSEUM_LINE3";
lines[ lines.size ] = &"CHAR_MUSEUM_LINE4";
introscreen_feed_lines( lines );
}
estate_intro2()
{
lines = [];
// 'Loose Ends'
lines[ lines.size ] = &"ESTATE_INTROSCREEN_LINE_1"; // "'Loose Ends'"
// Day 6 - 14:45:[{FAKE_INTRO_SECONDS:07}]
lines[ "date" ] = &"ESTATE_INTROSCREEN_LINE_2"; // "Day 06 <20> 14:05:[{FAKE_INTRO_SECONDS:07}]"
// Sgt. Gary Roach" Sanderson"
lines[ lines.size ] = &"ESTATE_INTROSCREEN_LINE_3"; // "Sgt. Gary 'Roach' Sanderson"
// Task Force 141
lines[ lines.size ] = &"ESTATE_INTROSCREEN_LINE_4"; // "Task Force 141"
// Georgian-Russian Border
lines[ lines.size ] = &"ESTATE_INTROSCREEN_LINE_5"; // "Georgian-Russian Border"
introscreen_feed_lines( lines );
}
dcburning_intro()
{
level.player DisableWeapons();
thread dcburningIntroDvars();
level.mortar_min_dist = 1;
level.player FreezeControls( true );
//cinematicingamesync( "scoutsniper_fade" );
// Start
introblack = NewHudElem();
introblack.x = 0;
introblack.y = 0;
introblack.horzAlign = "fullscreen";
introblack.vertAlign = "fullscreen";
introblack.foreground = true;
introblack SetShader( "black", 640, 480 );
wait 4.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( &"DCBURNING_MAIN_TITLE" );
// 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 3;
// Fade out black
level notify( "black_fading" );
level.mortar_min_dist = undefined;
introblack FadeOverTime( 1.5 );
introblack.alpha = 0;
wait( 1.5 );
flag_set( "introscreen_complete" );
// Do final notify when player controls have been restored
level notify( "introscreen_complete" );
level.player FreezeControls( false );
level.player EnableWeapons();
wait( .5 );
SetSavedDvar( "compass", 1 );
SetSavedDvar( "ammoCounterHide", "0" );
SetSavedDvar( "hud_showStance", 1 );
flag_wait( "player_exiting_start_trench" );
lines = [];
// 'Of Their Own Accord'
lines[ lines.size ] = &"DCBURNING_INTROSCREEN_1";
// LANG_ENGLISH Day 5 - [{FAKE_INTRO_TIME:18:12:09}] hrs"
lines[ lines.size ] = &"DCBURNING_INTROSCREEN_2";
// Pvt. James Ramirez
lines[ lines.size ] = &"DCBURNING_INTROSCREEN_3";
// 75th Ranger Regiment
lines[ lines.size ] = &"DCBURNING_INTROSCREEN_4";
// Washington, D.C.
lines[ lines.size ] = &"DCBURNING_INTROSCREEN_5";
introscreen_feed_lines( lines );
}
dcemp_intro()
{
flag_wait( "player_crash_done" );
lines = [];
// 'Second Sun'
lines[ lines.size ] = &"DCEMP_INTROSCREEN_1";
// Day 5, 19:02:[{FAKE_INTRO_SECONDS:38}] hrs
lines[ lines.size ] = &"DCEMP_INTROSCREEN_2";
// Pvt. James Ramirez
lines[ lines.size ] = &"DCEMP_INTROSCREEN_3";
// 75th Ranger Regiment
lines[ lines.size ] = &"DCEMP_INTROSCREEN_4";
// Washington, D.C.
lines[ lines.size ] = &"DCEMP_INTROSCREEN_5";
wait 1;
maps\_introscreen::introscreen_feed_lines( lines );
flag_set( "introscreen_complete" );
}
dc_whitehouse_intro()
{
level.player DisableWeapons();
level.player FreezeControls( true );
// string not found for AUTOSAVE_LEVELSTART
SaveGame( "levelstart", &"AUTOSAVE_LEVELSTART", "whatever", true );
thread introscreen_generic_black_fade_in( 5.0 );
lines = [];
// 'Whiskey Hotel'
lines[ lines.size ] = &"DC_WHITEHOUSE_INTROSCREEN_1";
// Day 5, 19:31:[{FAKE_INTRO_SECONDS:22}] hrs
lines[ "date" ] = &"DC_WHITEHOUSE_INTROSCREEN_2";
// Pvt. James Ramirez
lines[ lines.size ] = &"DC_WHITEHOUSE_INTROSCREEN_3";
// 75th Ranger Regiment
lines[ lines.size ] = &"DC_WHITEHOUSE_INTROSCREEN_4";
// Washington, D.C.
lines[ lines.size ] = &"DC_WHITEHOUSE_INTROSCREEN_5";
introscreen_feed_lines( lines );
wait( 5.0 );
level notify( "introscreen_complete" );
level.player FreezeControls( false );
level.player EnableWeapons();
}
dcburningIntroDvars()
{
wait( 0.05 );
SetSavedDvar( "compass", 0 );
SetSavedDvar( "ammoCounterHide", "1" );
SetSavedDvar( "hud_showStance", 0 );
}
trainerIntroDvars()
{
//wait( 0.05 );
SetSavedDvar( "compass", 0 );
SetSavedDvar( "ammoCounterHide", "1" );
SetSavedDvar( "hud_showStance", 0 );
}
trainer_intro()
{
thread trainerIntroDvars();
level.player FreezeControls( true );
// Start
introblack = NewHudElem();
introblack.x = 0;
introblack.y = 0;
introblack.horzAlign = "fullscreen";
introblack.vertAlign = "fullscreen";
introblack.foreground = true;
introblack SetShader( "black", 640, 480 );
lines = [];
// "S.S.D.D."
lines[ lines.size ] = &"TRAINER_INTROSCREEN_LINE_1";
// Day 1 - 15:30:[{FAKE_INTRO_SECONDS:25}]
lines[ lines.size ] = &"TRAINER_INTROSCREEN_LINE_2";
// PFC Joseph Allen
lines[ lines.size ] = &"TRAINER_INTROSCREEN_LINE_3";
// 1st Bn., 75th Ranger Regiment
lines[ lines.size ] = &"TRAINER_INTROSCREEN_LINE_4";
// Fire Base Phoenix, Afghanistan
lines[ lines.size ] = &"TRAINER_INTROSCREEN_LINE_5";
introscreen_feed_lines( lines );
wait( 10 );
// Fade out black
level notify( "black_fading" );
introblack FadeOverTime( 2 );
introblack.alpha = 0;
flag_set( "start_anims" );
wait( 2 );
flag_set( "introscreen_complete" );
// 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 );
}
af_caves_intro()
{
SetSavedDvar( "compass", 0 );
level.introblack = NewHudElem();
level.introblack.x = 0;
level.introblack.y = 0;
level.introblack.horzAlign = "fullscreen";
level.introblack.vertAlign = "fullscreen";
level.introblack.foreground = false;
level.introblack SetShader( "black", 640, 480 );
wait( 0.05 );
flag_set( "intro_dialogue_start" );
flag_wait( "intro_fade_in" );
fadeTime = 3;
level.introblack FadeOverTime( fadeTime );
level.introblack.alpha = 0;
wait( fadeTime );
level.introblack Destroy();
SetSavedDvar( "compass", 1 );
flag_set( "intro_faded_in" );
thread autosave_by_name( "intro" );
flag_wait( "introscreen_feed_lines" );
lines = [];
// Just Like Old Times""
lines[ lines.size ] = &"AF_CAVES_LINE1";// "Just Like Old Times"
// Day 7 - 16:40:[{FAKE_INTRO_SECONDS:22}]
lines[ "date" ] = &"AF_CAVES_LINE2";// Day 7 <20> 16:40:
// 'Soap' MacTavish
lines[ lines.size ] = &"AF_CAVES_LINE3";// 'Soap' MacTavish
// Site Hotel Bravo, Afghanistan
lines[ lines.size ] = &"AF_CAVES_LINE4";// Site Hotel Bravo, Afghanistan
level thread maps\_introscreen::introscreen_feed_lines( lines );
}
af_chase_intro()
{
lines = [];
// "You Can't Win A War With A Bullet"
lines[ lines.size ] = &"AF_CHASE_INTROSCREEN_LINE1";
// Day 7 - 18:10:[{FAKE_INTRO_SECONDS:22}]
lines[ "date" ] = &"AF_CHASE_INTROSCREEN_LINE2";
// 'Soap' MacTavish
lines[ lines.size ] = &"AF_CHASE_INTROSCREEN_LINE3";
// Site Hotel Bravo, Afghanistan
lines[ lines.size ] = &"AF_CHASE_INTROSCREEN_LINE4";
introscreen_feed_lines( lines );
thread autosave_by_name( "intro" );
}
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" );
}
feedline_delay()
{
wait( 2 );
}
flying_intro()
{
flying_levels = [];
flying_levels[ "killhouse" ] = true;
flying_levels[ "cliffhanger" ] = true;
//flying_levels[ "favela_escape" ] = true;
flying_levels[ "estate" ] = true;
if ( !getdvarint( "newintro" ) )
flying_levels[ "roadkill" ] = true;
flying_levels[ "boneyard" ] = true;
override_angles = IsDefined( level.customIntroAngles );
if ( !isdefined( flying_levels[ level.script ] ) )
return false;
if ( !isdefined( level.dontReviveHud ) )
thread revive_ammo_counter();
thread bog_intro_sound();
thread weapon_pullout();
level.player FreezeControls( true );
feedline_delay_func = ::feedline_delay;
zoomHeight = 16000;
slamzoom = true;
/#
if ( GetDvar( "slamzoom" ) != "" )
slamzoom = false;
#/
extra_delay = 0;
special_save = false;
if ( slamzoom )
{
lines = [];
switch( level.script )
{
case "killhouse":
special_save = true;
//thread introscreen_generic_black_fade_in( 0.7, 0.20 );
CinematicInGameSync( "killhouse_fade" );
lines = [];
// string not found for KILLHOUSE_INTROSCREEN_LINE_1
lines[ lines.size ] = &"KILLHOUSE_INTROSCREEN_LINE_1";
// string not found for KILLHOUSE_INTROSCREEN_LINE_2
// lines[ "date" ] = &"KILLHOUSE_INTROSCREEN_LINE_2";
// string not found for KILLHOUSE_INTROSCREEN_LINE_3
lines[ lines.size ] = &"KILLHOUSE_INTROSCREEN_LINE_3";
// string not found for KILLHOUSE_INTROSCREEN_LINE_4
lines[ lines.size ] = &"KILLHOUSE_INTROSCREEN_LINE_4";
// string not found for KILLHOUSE_INTROSCREEN_LINE_5
lines[ lines.size ] = &"KILLHOUSE_INTROSCREEN_LINE_5";
break;
case "estate":
//thread introscreen_generic_black_fade_in( 0.05 );
cinematicingamesync( "estate_fade" );
lines = [];
// 'Loose Ends'
//lines[ lines.size ] = &"ESTATE_INTROSCREEN_LINE_1";
// Day 6 - 14:45:[{FAKE_INTRO_SECONDS:07}]
//lines[ lines.size ] = &"ESTATE_INTROSCREEN_LINE_2";
// Sgt. Gary Roach" Sanderson"
//lines[ lines.size ] = &"ESTATE_INTROSCREEN_LINE_3";
// Task Force 141
//lines[ lines.size ] = &"ESTATE_INTROSCREEN_LINE_4";
// Georgian-Russian Border
//lines[ lines.size ] = &"ESTATE_INTROSCREEN_LINE_5";
zoomHeight = 3500;// 2632
SetSavedDvar( "sm_sunSampleSizeNear", 0.6 );// air
delayThread( 0.5, ::ramp_out_sunsample_over_time, 0.9 );
break;
case "boneyard":
// thread introscreen_generic_black_fade_in( 0.05 );
cinematicingamesync( "boneyard_fade" );
lines = [];
SetSavedDvar( "sm_sunSampleSizeNear", 0.6 );// air
delayThread( 0.5, ::ramp_out_sunsample_over_time, 0.9 );
zoomHeight = 4000;
break;
case "roadkill":
thread introscreen_generic_black_fade_in( 0.05 );
lines = [];
// Team Player
lines[ lines.size ] = &"ROADKILL_LINE_1";
// Day 1 - 16:08:[{FAKE_INTRO_SECONDS:07}]
lines[ lines.size ] = &"ROADKILL_LINE_2";
// PFC Joseph Allen
lines[ lines.size ] = &"ROADKILL_LINE_3";
// 3rd Bn, 75th Ranger Regiment
lines[ lines.size ] = &"ROADKILL_LINE_4";
// The Red Zone, Afghanistan
lines[ lines.size ] = &"ROADKILL_LINE_5";
feedline_delay = 21;
feedline_delay_func = level.roadkill_feedline_delay;
SetSavedDvar( "sm_sunSampleSizeNear", 2.0 );// air
delayThread( 0.6, ::ramp_out_sunsample_over_time, 1.4 );
break;
}
add_func( feedline_delay_func );
add_func( ::introscreen_feed_lines, lines );
thread do_funcs();
}
origin = level.player.origin;
level.player PlayerSetStreamOrigin( origin );
level.player.origin = origin + ( 0, 0, zoomHeight );
ent = Spawn( "script_model", ( 69, 69, 69 ) );
ent.origin = level.player.origin;
ent SetModel( "tag_origin" );
if ( override_angles )
{
ent.angles = ( 0, level.customIntroAngles[ 1 ], 0 );
}
else
{
ent.angles = level.player.angles;
}
level.player PlayerLinkTo( ent, undefined, 1, 0, 0, 0, 0 );
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 );
if ( override_angles )
{
ent RotateTo( level.customIntroAngles, 0.5, 0.3, 0.2 );
}
else
{
ent RotateTo( ( ent.angles[ 0 ] - 89, ent.angles[ 1 ], 0 ), 0.5, 0.3, 0.2 );
}
if ( !special_save )
// string not found for AUTOSAVE_LEVELSTART
SaveGame( "levelstart", &"AUTOSAVE_LEVELSTART", "whatever", true );
wait( 0.5 );
flag_set( "pullup_weapon" );
wait( 0.2 );
level.player Unlink();
level.player FreezeControls( false );
level.player PlayerClearStreamOrigin();
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;
}
weapon_pullout()
{
weap = level.player GetWeaponsListAll()[ 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" );
}
ramp_out_sunsample_over_time( time, base_sample_size )
{
sample_size = GetDvarFloat( "sm_sunSampleSizeNear" );
if ( !isdefined( base_sample_size ) )
base_sample_size = 0.25;
range = sample_size - base_sample_size;// min sample size is 0.25
frames = time * 20;
for ( i = 0; i <= frames; i++ )
{
dif = i / frames;
dif = 1 - dif;
current_range = dif * range;
current_sample_size = base_sample_size + current_range;
SetSavedDvar( "sm_sunSampleSizeNear", current_sample_size );
wait( 0.05 );
}
}