Files
IL-GSC/MW3/PC/SP/maps/_introscreen.gsc
InfinityLoader d559c1d414 Added MW3 Scripts
2023-10-27 03:47:01 -04:00

750 lines
16 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_introscreen.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 31
* Decompile Time: 481 ms
* Timestamp: 10/27/2023 2:22:56 AM
*******************************************************************/
//Function Number: 1
main()
{
common_scripts\utility::flag_init("pullup_weapon");
common_scripts\utility::flag_init("introscreen_complete");
common_scripts\utility::flag_init("safe_for_objectives");
common_scripts\utility::flag_init("introscreen_complete");
maps\_utility::delaythread(10,::common_scripts\utility::flag_set,"safe_for_objectives");
level.linefeed_delay = 16;
precacheshader("black");
precacheshader("white");
if(getdvar("introscreen") == "")
{
setdvar("introscreen","1");
}
if(isdefined(level.credits_active))
{
return;
}
main_old_maps();
switch(get_introscreen_levelname())
{
case "london":
precachestring(&"LONDON_INTROSCREEN_LINE_1");
precachestring(&"LONDON_INTROSCREEN_LINE_2");
precachestring(&"LONDON_INTROSCREEN_LINE_3");
precachestring(&"LONDON_INTROSCREEN_LINE_4");
precachestring(&"LONDON_INTROSCREEN_LINE_5");
introscreen_delay();
break;
case "castle":
precachestring(&"CASTLE_INTROSCREEN_LINE_1");
precachestring(&"CASTLE_INTROSCREEN_LINE_2");
precachestring(&"CASTLE_INTROSCREEN_LINE_3");
precachestring(&"CASTLE_INTROSCREEN_LINE_4");
precachestring(&"CASTLE_INTROSCREEN_LINE_5");
introscreen_delay();
break;
case "prague":
precachestring(&"PRAGUE_INTROSCREEN_LINE_1");
precachestring(&"PRAGUE_INTROSCREEN_LINE_2");
precachestring(&"PRAGUE_INTROSCREEN_LINE_3");
precachestring(&"PRAGUE_INTROSCREEN_LINE_4");
precachestring(&"PRAGUE_INTROSCREEN_LINE_5");
introscreen_delay();
break;
case "prague_escape":
precachestring(&"PRAGUE_ESCAPE_INTROSCREEN_LINE_1");
precachestring(&"PRAGUE_ESCAPE_INTROSCREEN_LINE_2");
precachestring(&"PRAGUE_ESCAPE_INTROSCREEN_LINE_3");
precachestring(&"PRAGUE_ESCAPE_INTROSCREEN_LINE_4");
precachestring(&"PRAGUE_ESCAPE_INTROSCREEN_LINE_5");
introscreen_delay();
break;
case "payback":
precachestring(&"PAYBACK_INTROSCREEN_LINE_1");
precachestring(&"PAYBACK_INTROSCREEN_LINE_2");
precachestring(&"PAYBACK_INTROSCREEN_LINE_3");
precachestring(&"PAYBACK_INTROSCREEN_LINE_4");
precachestring(&"PAYBACK_INTROSCREEN_LINE_5");
introscreen_delay();
break;
case "example":
break;
case "hamburg":
precachestring(&"TANKCOMMANDER_INTROSCREEN_LINE_1");
precachestring(&"TANKCOMMANDER_INTROSCREEN_LINE_2");
precachestring(&"TANKCOMMANDER_INTROSCREEN_LINE_3");
precachestring(&"TANKCOMMANDER_INTROSCREEN_LINE_4");
introscreen_delay();
break;
case "rescue_2":
precachestring(&"RESCUE_2_INTROSCREEN_LINE_1");
precachestring(&"RESCUE_2_INTROSCREEN_LINE_2");
precachestring(&"RESCUE_2_INTROSCREEN_LINE_3");
precachestring(&"RESCUE_2_INTROSCREEN_LINE_4");
introscreen_delay();
break;
default:
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");
wait 0.05;
common_scripts\utility::flag_set("introscreen_complete");
break;
}
}
//Function Number: 2
introscreen_feed_lines(param_00)
{
var_01 = getarraykeys(param_00);
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
var_03 = var_01[var_02];
var_04 = 1;
var_05 = var_02 * var_04 + 1;
maps\_utility::delaythread(var_05,::introscreen_corner_line,param_00[var_03],param_00.size - var_02 - 1,var_04,var_03);
}
}
//Function Number: 3
introscreen_generic_black_fade_in(param_00,param_01,param_02)
{
introscreen_generic_fade_in("black",param_00,param_01,param_02);
}
//Function Number: 4
introscreen_generic_white_fade_in(param_00,param_01,param_02)
{
introscreen_generic_fade_in("white",param_00,param_01,param_02);
}
//Function Number: 5
introscreen_generic_fade_in(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_02))
{
param_02 = 1.5;
}
var_04 = newhudelem();
var_04.x = 0;
var_04.y = 0;
var_04.horzalign = "fullscreen";
var_04.vertalign = "fullscreen";
var_04.foreground = 1;
var_04 setshader(param_00,640,480);
if(isdefined(param_03) && param_03 > 0)
{
var_04.alpha = 0;
var_04 fadeovertime(param_03);
var_04.alpha = 1;
wait param_03;
}
wait param_01;
if(param_02 > 0)
{
var_04 fadeovertime(param_02);
}
var_04.alpha = 0;
wait param_02;
setsaveddvar("com_cinematicEndInWhite",0);
}
//Function Number: 6
introscreen_create_line(param_00)
{
var_01 = level.introstring.size;
var_02 = var_01 * 30;
if(level.console)
{
var_02 = var_02 - 60;
}
level.introstring[var_01] = newhudelem();
level.introstring[var_01].x = 0;
level.introstring[var_01].y = var_02;
level.introstring[var_01].alignx = "center";
level.introstring[var_01].aligny = "middle";
level.introstring[var_01].horzalign = "center";
level.introstring[var_01].vertalign = "middle";
level.introstring[var_01].sort = 1;
level.introstring[var_01].foreground = 1;
level.introstring[var_01].fontscale = 1.75;
level.introstring[var_01] settext(param_00);
level.introstring[var_01].alpha = 0;
level.introstring[var_01] fadeovertime(1.2);
level.introstring[var_01].alpha = 1;
}
//Function Number: 7
introscreen_fadeouttext()
{
for(var_00 = 0;var_00 < level.introstring.size;var_00++)
{
level.introstring[var_00] fadeovertime(1.5);
level.introstring[var_00].alpha = 0;
}
wait 1.5;
for(var_00 = 0;var_00 < level.introstring.size;var_00++)
{
level.introstring[var_00] destroy();
}
}
//Function Number: 8
introscreen_delay(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
waittillframeend;
waittillframeend;
if(slamzoom_intro())
{
return;
}
if(introscreen_old_maps())
{
return;
}
switch(get_introscreen_levelname())
{
case "london":
london_intro();
break;
case "castle":
castle_intro();
break;
case "prague":
prague_intro();
break;
case "prague_escape":
prague_escape_intro();
break;
case "payback":
payback_intro();
break;
case "rescue_2":
rescue_2_intro();
break;
case "hamburg":
hamburg_intro();
break;
}
level.introblack = newhudelem();
level.introblack.x = 0;
level.introblack.y = 0;
level.introblack.horzalign = "fullscreen";
level.introblack.vertalign = "fullscreen";
level.introblack.foreground = 1;
level.introblack setshader("black",640,480);
level.player freezecontrols(1);
wait 0.05;
level.introstring = [];
if(isdefined(param_00))
{
introscreen_create_line(param_00);
}
if(isdefined(param_04))
{
wait param_04;
}
else
{
wait 2;
}
if(isdefined(param_01))
{
introscreen_create_line(param_01);
}
if(isdefined(param_02))
{
introscreen_create_line(param_02);
}
if(isdefined(param_03))
{
if(isdefined(param_05))
{
wait param_05;
}
else
{
wait 2;
}
}
if(isdefined(param_03))
{
introscreen_create_line(param_03);
}
level notify("finished final intro screen fadein");
if(isdefined(param_06))
{
wait param_06;
}
else
{
wait 3;
}
level.introblack fadeovertime(1.5);
level.introblack.alpha = 0;
level notify("starting final intro screen fadeout");
level.player freezecontrols(0);
level notify("controls_active");
introscreen_fadeouttext();
common_scripts\utility::flag_set("introscreen_complete");
}
//Function Number: 9
_cornerlinethread(param_00,param_01,param_02,param_03)
{
level notify("new_introscreen_element");
if(!isdefined(level.intro_offset))
{
level.intro_offset = 0;
}
else
{
level.intro_offset++;
}
var_04 = _cornerlinethread_height();
var_05 = newhudelem();
var_05.x = 20;
var_05.y = var_04;
var_05.alignx = "left";
var_05.aligny = "bottom";
var_05.horzalign = "left";
var_05.vertalign = "bottom";
var_05.sort = 1;
var_05.foreground = 1;
var_05 settext(param_00);
var_05.alpha = 0;
var_05 fadeovertime(0.2);
var_05.alpha = 1;
var_05.hidewheninmenu = 1;
var_05.fontscale = 2;
var_05.color = (0.8,1,0.8);
var_05.font = "objective";
var_05.glowcolor = (0.3,0.6,0.3);
var_05.glowalpha = 1;
var_06 = int(param_01 * param_02 * 1000 + 4000);
var_05 setpulsefx(30,var_06,700);
thread hudelem_destroy(var_05);
if(!isdefined(param_03))
{
return;
}
if(!isstring(param_03))
{
return;
}
if(param_03 != "date")
{
}
}
//Function Number: 10
_cornerlinethread_height()
{
return level.intro_offset * 20 - 82;
}
//Function Number: 11
introscreen_corner_line(param_00,param_01,param_02,param_03)
{
thread _cornerlinethread(param_00,param_01,param_02,param_03);
}
//Function Number: 12
hudelem_destroy(param_00)
{
wait level.linefeed_delay;
param_00 notify("destroying");
level.intro_offset = undefined;
var_01 = 0.5;
param_00 fadeovertime(var_01);
param_00.alpha = 0;
wait var_01;
param_00 notify("destroy");
param_00 destroy();
}
//Function Number: 13
castle_intro()
{
level.player freezecontrols(1);
savegame("levelstart",&"AUTOSAVE_LEVELSTART","whatever",1);
thread introscreen_generic_black_fade_in(5);
var_00 = [];
introscreen_feed_lines(var_7B);
wait 5;
common_scripts\utility::flag_set("introscreen_complete");
level.player freezecontrols(0);
}
//Function Number: 14
london_intro()
{
level.player freezecontrols(1);
savegame("levelstart",&"AUTOSAVE_LEVELSTART","whatever",1);
thread introscreen_generic_black_fade_in(5);
var_00 = [];
introscreen_feed_lines(var_7B);
wait 5;
common_scripts\utility::flag_set("introscreen_complete");
level.player freezecontrols(0);
}
//Function Number: 15
hamburg_intro()
{
savegame("levelstart",&"AUTOSAVE_LEVELSTART","whatever",1);
thread introscreen_generic_black_fade_in(3.5);
var_00 = [];
introscreen_feed_lines(var_7B);
wait 3;
common_scripts\utility::flag_set("introscreen_complete");
}
//Function Number: 16
prague_intro()
{
level.player freezecontrols(1);
common_scripts\utility::flag_wait("fade_up");
thread introscreen_generic_black_fade_in(4,5);
var_00 = [];
level.player common_scripts\utility::delaycall(4,::freezecontrols,0);
common_scripts\utility::flag_wait("city_reveal");
maps\_utility::delaythread(9.25,::introscreen_feed_lines,var_7B);
}
//Function Number: 17
prague_escape_intro()
{
level.player freezecontrols(1);
thread introscreen_generic_black_fade_in(8,0.5);
var_00 = [];
introscreen_feed_lines(var_7B);
wait 8;
common_scripts\utility::flag_set("introscreen_complete");
level.player freezecontrols(0);
}
//Function Number: 18
payback_intro()
{
level.player freezecontrols(1);
savegame("levelstart",&"AUTOSAVE_LEVELSTART","whatever",1);
level notify("introscreen_prime_audio");
level notify("introscreen_fade_start");
wait 2;
level.player freezecontrols(0);
var_00 = 9;
var_01 = 30;
var_02 = 10;
level.hudtimestamp = var_00 * 60 * 60 + var_01 * 60 + var_02;
level.hudtimestampstarttime = gettime();
var_03 = [];
introscreen_feed_lines(var_7B);
wait 2;
}
//Function Number: 19
feedline_delay()
{
wait 2;
}
//Function Number: 20
slamzoom_intro()
{
var_00 = [];
if(!getdvarint("newintro"))
{
}
var_01 = isdefined(level.customintroangles);
if(!isdefined(var_7B[get_introscreen_levelname()]))
{
return 0;
}
if(!isdefined(level.dontrevivehud))
{
thread revive_ammo_counter();
}
thread hide_hud();
thread weapon_pullout();
level.player freezecontrols(1);
var_02 = ::feedline_delay;
var_03 = 16000;
var_04 = 1;
var_05 = 0;
var_06 = 0;
if(var_04)
{
var_07 = [];
switch(get_introscreen_levelname())
{
case "london":
cinematicingamesync("estate_fade");
var_07 = [];
var_03 = 4000;
setsaveddvar("sm_sunSampleSizeNear",0.6);
maps\_utility::delaythread(0.5,::ramp_out_sunsample_over_time,0.9);
break;
var_7B[var_07.size]
&"LONDON_INTROSCREEN_LINE_4"
var_7B[var_07.size]
&"LONDON_INTROSCREEN_LINE_3"
var_7B[var_07.size]
&"LONDON_INTROSCREEN_LINE_2"
var_7B[var_07.size]
&"LONDON_INTROSCREEN_LINE_1"
break;
}
maps\_utility::add_func(var_02);
maps\_utility::add_func(::introscreen_feed_lines,var_07);
thread maps\_utility::do_funcs();
}
var_08 = level.player.origin;
level.player playersetstreamorigin(var_08);
level.player.origin = var_08 + (0,0,var_03);
var_09 = spawn("script_model",(69,69,69));
var_09.origin = level.player.origin;
var_09 setmodel("tag_origin");
if(var_01)
{
var_09.angles = (0,level.customintroangles[1],0);
}
else
{
var_09.angles = level.player.angles;
}
level.player playerlinkto(var_09,undefined,1,0,0,0,0);
var_09.angles = (var_09.angles[0] + 89,var_09.angles[1],0);
wait var_05;
var_09 moveto(var_08 + (0,0,0),2,0,2);
wait 1;
wait 0.5;
if(var_01)
{
var_09 rotateto(level.customintroangles,0.5,0.3,0.2);
}
else
{
var_09 rotateto((var_09.angles[0] - 89,var_09.angles[1],0),0.5,0.3,0.2);
}
if(!var_06)
{
savegame("levelstart",&"AUTOSAVE_LEVELSTART","whatever",1);
}
wait 0.5;
common_scripts\utility::flag_set("pullup_weapon");
wait 0.2;
level.player unlink();
level.player freezecontrols(0);
level.player playerclearstreamorigin();
thread common_scripts\utility::play_sound_in_space("ui_screen_trans_in",level.player.origin);
wait 0.2;
thread common_scripts\utility::play_sound_in_space("ui_screen_trans_out",level.player.origin);
wait 0.2;
common_scripts\utility::flag_set("introscreen_complete");
wait 2;
var_09 delete();
return 1;
}
//Function Number: 21
hide_hud()
{
wait 0.05;
setsaveddvar("compass",0);
setsaveddvar("ammoCounterHide","1");
setsaveddvar("hud_showstance","0");
setsaveddvar("actionSlotsHide","1");
}
//Function Number: 22
weapon_pullout()
{
var_00 = level.player getweaponslistall()[0];
level.player disableweapons();
common_scripts\utility::flag_wait("pullup_weapon");
level.player enableweapons();
}
//Function Number: 23
revive_ammo_counter()
{
common_scripts\utility::flag_wait("safe_for_objectives");
if(!isdefined(level.nocompass))
{
setsaveddvar("compass",1);
}
setsaveddvar("ammoCounterHide","0");
setsaveddvar("actionSlotsHide","0");
setsaveddvar("hud_showstance","1");
}
//Function Number: 24
ramp_out_sunsample_over_time(param_00,param_01)
{
var_02 = getdvarfloat("sm_sunSampleSizeNear");
if(!isdefined(param_01))
{
param_01 = 0.25;
}
var_03 = var_02 - param_01;
var_04 = param_00 * 20;
for(var_05 = 0;var_05 <= var_04;var_05++)
{
var_06 = var_05 / var_04;
var_06 = 1 - var_06;
var_07 = var_06 * var_03;
var_08 = param_01 + var_07;
setsaveddvar("sm_sunSampleSizeNear",var_08);
wait 0.05;
}
}
//Function Number: 25
get_introscreen_levelname()
{
if(isdefined(level.introscreen_levelname))
{
return level.introscreen_levelname;
}
return level.script;
}
//Function Number: 26
main_old_maps()
{
switch(get_introscreen_levelname())
{
case "dcburning":
precachestring(&"DCBURNING_INTROSCREEN_1");
precachestring(&"DCBURNING_INTROSCREEN_2");
precachestring(&"DCBURNING_INTROSCREEN_3");
precachestring(&"DCBURNING_INTROSCREEN_4");
precachestring(&"DCBURNING_INTROSCREEN_5");
introscreen_delay();
break;
}
}
//Function Number: 27
cliffhanger_intro_text()
{
wait 17;
var_00 = [];
introscreen_feed_lines(var_7B);
}
//Function Number: 28
dcburning_intro()
{
level.player disableweapons();
thread dcburningintrodvars();
level.mortar_min_dist = 1;
level.player freezecontrols(1);
var_00 = newhudelem();
var_00.x = 0;
var_00.y = 0;
var_00.horzalign = "fullscreen";
var_00.vertalign = "fullscreen";
var_00.foreground = 1;
var_00 setshader("black",640,480);
wait 4.25;
wait 3;
level notify("black_fading");
level.mortar_min_dist = undefined;
var_00 fadeovertime(1.5);
var_00.alpha = 0;
wait 1.5;
common_scripts\utility::flag_set("introscreen_complete");
level notify("introscreen_complete");
level.player freezecontrols(0);
level.player enableweapons();
wait 0.5;
setsaveddvar("compass",1);
setsaveddvar("ammoCounterHide","0");
setsaveddvar("hud_showStance",1);
common_scripts\utility::flag_wait("player_exiting_start_trench");
var_01 = [];
introscreen_feed_lines(var_7B);
}
//Function Number: 29
dcburningintrodvars()
{
wait 0.05;
setsaveddvar("compass",0);
setsaveddvar("ammoCounterHide","1");
setsaveddvar("hud_showStance",0);
}
//Function Number: 30
rescue_2_intro()
{
var_00 = [];
thread introscreen_generic_black_fade_in(5.4,8);
introscreen_feed_lines(var_7B);
}
//Function Number: 31
introscreen_old_maps()
{
switch(get_introscreen_levelname())
{
case "dcburning":
dcburning_intro();
return 1;
}
return 0;
}