IL-GSC/IW/PC/ALL/2937.gsc
2023-10-27 03:49:01 -04:00

908 lines
16 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 2937.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 35
* Decompile Time: 20 ms
* Timestamp: 10/27/2023 12:24:57 AM
*******************************************************************/
//Function Number: 1
func_9766()
{
scripts\common\utility::flag_init("start_is_set");
setdvarifuninitialized("feedback",0);
scripts\sp\_utility::func_1749("no_game",::func_10CBC);
func_171D();
}
//Function Number: 2
func_57C6()
{
thread func_8960();
func_57A1();
}
//Function Number: 3
func_171D()
{
var_00 = getentarray("script_origin_start_nogame","classname");
if(!var_00.size)
{
return;
}
foreach(var_02 in var_00)
{
if(!isdefined(var_02.var_EECB))
{
continue;
}
scripts\sp\_utility::func_1749("no_game_" + var_02.var_EECB,::func_10CBC);
}
}
//Function Number: 4
func_57A1()
{
if(!func_9C4B())
{
return;
}
function_01C5("ufoHitsTriggers","1");
if(isdefined(level.var_4C63))
{
level [[ level.var_4C63 ]]();
}
lib_0B4A::func_12867();
lib_0A2F::func_96FD();
scripts\sp\_audio::func_9539();
scripts\sp\_global_fx::main();
func_57A2();
scripts\common\utility::func_227D(getentarray("truckjunk","targetname"),::delete);
scripts\common\utility::func_227D(getentarray("truckjunk","script_noteworthy"),::delete);
level waittill("eternity");
}
//Function Number: 5
func_57A2()
{
var_00 = getentarray("script_origin_start_nogame","classname");
if(!var_00.size)
{
return;
}
var_00 = sortbydistance(var_00,level.player.origin);
if(level.var_10CDA == "no_game")
{
level.player scripts\sp\_utility::func_11633(var_00[0]);
return;
}
var_01 = getsubstr(level.var_10CDA,8);
var_02 = 0;
foreach(var_04 in var_00)
{
if(!isdefined(var_04.var_EECB))
{
continue;
}
if(var_01 != var_04.var_EECB)
{
continue;
}
if(isdefined(var_04.var_287))
{
function_0237(var_04.var_287,0);
}
level.player scripts\sp\_utility::func_11633(var_04);
var_02 = 1;
break;
}
if(!var_02)
{
level.player scripts\sp\_utility::func_11633(var_00[0]);
}
}
//Function Number: 6
func_10CBC()
{
scripts\common\utility::func_227D(function_0072(),::delete);
scripts\common\utility::func_227D(function_00C8(),::delete);
var_00 = [];
var_00["trigger_multiple_createart_transient"] = ::scripts\sp\_trigger::func_1272E;
foreach(var_04, var_02 in var_00)
{
var_03 = getentarray(var_04,"classname");
scripts\common\utility::func_22A1(var_03,var_02);
}
}
//Function Number: 7
func_10CAD()
{
}
//Function Number: 8
func_7CA2()
{
var_00 = [];
for(var_01 = 0;var_01 < level.var_10C58.size;var_01++)
{
var_00[var_00.size] = level.var_10C58[var_01]["name"];
}
return var_00;
}
//Function Number: 9
func_56CC()
{
if(level.var_10C58.size <= 0)
{
return;
}
var_00 = func_7CA2();
var_00[var_00.size] = "default";
var_00[var_00.size] = "cancel";
var_01 = func_10C9D();
var_02 = func_4959("Selected Start:",-1);
var_02.color = (1,1,1);
var_03 = [];
for(var_04 = 0;var_04 < var_00.size;var_04++)
{
var_05 = var_00[var_04];
var_06 = "[" + var_00[var_04] + "]";
if(var_05 != "cancel" && var_05 != "default")
{
if(isdefined(level.var_10BA8[var_05]["start_loc_string"]))
{
var_06 = var_06 + " -> ";
var_06 = var_06 + level.var_10BA8[var_05]["start_loc_string"];
}
}
var_03[var_03.size] = var_06;
}
var_07 = var_00.size - 1;
var_08 = 0;
var_09 = 0;
var_0A = 0;
while(var_07 > 0)
{
if(var_00[var_07] == level.var_10CDA)
{
var_0A = 1;
break;
}
var_07--;
}
if(!var_0A)
{
var_07 = var_00.size - 1;
}
func_10C9E(var_01,var_03,var_07);
var_0B = var_07;
for(;;)
{
if(var_0B != var_07)
{
func_10C9E(var_01,var_03,var_07);
var_0B = var_07;
}
if(!var_08)
{
if(level.player buttonpressed("UPARROW") || level.player buttonpressed("DPAD_UP") || level.player buttonpressed("APAD_UP"))
{
var_08 = 1;
var_07--;
}
}
else if(!level.player buttonpressed("UPARROW") && !level.player buttonpressed("DPAD_UP") && !level.player buttonpressed("APAD_UP"))
{
var_08 = 0;
}
if(!var_09)
{
if(level.player buttonpressed("DOWNARROW") || level.player buttonpressed("DPAD_DOWN") || level.player buttonpressed("APAD_DOWN"))
{
var_09 = 1;
var_07++;
}
}
else if(!level.player buttonpressed("DOWNARROW") && !level.player buttonpressed("DPAD_DOWN") && !level.player buttonpressed("APAD_DOWN"))
{
var_09 = 0;
}
if(var_07 < 0)
{
var_07 = var_00.size - 1;
}
if(var_07 >= var_00.size)
{
var_07 = 0;
}
if(level.player buttonpressed("BUTTON_B"))
{
func_10C18(var_01,var_02);
break;
}
if(level.player buttonpressed("kp_enter") || level.player buttonpressed("BUTTON_A") || level.player buttonpressed("enter"))
{
if(var_00[var_07] == "cancel")
{
func_10C18(var_01,var_02);
break;
}
setdvar("start",var_00[var_07]);
map_restart();
}
wait(0.05);
}
}
//Function Number: 10
func_10C9D()
{
var_00 = [];
for(var_01 = 0;var_01 < 11;var_01++)
{
var_02 = func_4959("",var_01);
var_00[var_00.size] = var_02;
}
return var_00;
}
//Function Number: 11
func_10C9E(param_00,param_01,param_02)
{
for(var_03 = 0;var_03 < param_00.size;var_03++)
{
var_04 = var_03 + param_02 - 5;
if(isdefined(param_01[var_04]))
{
var_05 = param_01[var_04];
}
else
{
var_05 = "";
}
param_00[var_03] settext(var_05);
}
}
//Function Number: 12
func_10C18(param_00,param_01)
{
param_01 destroy();
for(var_02 = 0;var_02 < param_00.size;var_02++)
{
param_00[var_02] destroy();
}
}
//Function Number: 13
func_10C9F()
{
var_00 = [];
if(function_02B1())
{
var_00 = function_02B2();
}
else
{
if(level.var_10CDA != "default")
{
var_01 = level.var_10BA8[level.var_10CDA];
if(isdefined(var_01["transient"]))
{
var_02 = var_01["transient"];
if(isstring(var_02))
{
var_00 = [var_02];
}
else if(isarray(var_02))
{
var_00 = var_02;
}
}
}
foreach(var_04 in var_00)
{
if(!function_0302(var_04))
{
scripts\common\utility::func_66BD("add_start() list has a non SP level transient in it: " + var_04);
}
}
if(isdefined(level.var_D9E5["loaded_weapons"]))
{
foreach(var_07 in level.var_D9E5["loaded_weapons"])
{
if(lib_0A2F::func_9B49(var_07))
{
var_00[var_00.size] = "weapon_" + var_07 + "_tr";
continue;
}
if(lib_0A2F::func_9B44(var_07))
{
var_00[var_00.size] = var_07 + "_tr";
}
}
}
if(isdefined(level.var_D9E5["default_weapon_transients"]))
{
var_00 = scripts\common\utility::array_combine(var_00,level.var_D9E5["default_weapon_transients"]);
}
}
if(var_00.size > 0)
{
function_012E(var_00);
foreach(var_0A in var_00)
{
scripts\common\utility::flag_set(var_0A + "_loaded");
}
level notify("new_transient_loaded");
return;
}
function_02B0();
}
//Function Number: 14
func_8960()
{
level.var_10D36 = spawnstruct();
setdvarifuninitialized("start","");
if(getdvar("scr_generateClipModels") != "" && getdvar("scr_generateClipModels") != "0")
{
return;
}
if(!isdefined(level.var_10C58))
{
level.var_10C58 = [];
}
var_00 = tolower(getdvar("start"));
var_01 = func_7CA2();
if(isdefined(level.var_10CDA))
{
var_00 = level.var_10CDA;
}
if(getdvarint("feedback"))
{
var_00 = level.var_6BC2;
}
var_02 = 0;
for(var_03 = 0;var_03 < var_01.size;var_03++)
{
if(var_00 == var_01[var_03])
{
var_02 = var_03;
level.var_10CDA = var_01[var_03];
break;
}
}
if(isdefined(level.var_501A) && !isdefined(level.var_10CDA))
{
var_04 = level.player method_84C6("lastCompletedMission");
if(isdefined(var_04))
{
var_05 = strtok(var_04,"_");
if(isdefined(var_04) && var_05.size > 0)
{
if(var_05[0] == "sa" || var_05[0] == "ja")
{
foreach(var_08, var_07 in var_01)
{
if(level.var_501A == var_07)
{
var_02 = var_08;
level.var_10CDA = var_07;
break;
}
}
}
}
}
}
if(isdefined(level.var_5019) && !isdefined(level.var_10CDA))
{
foreach(var_08, var_07 in var_01)
{
if(level.var_5019 == var_07)
{
var_02 = var_08;
level.var_10CDA = var_07;
break;
}
}
}
if(!isdefined(level.var_10CDA))
{
if(isdefined(level.var_5018))
{
level.var_10CDA = "default";
}
else if(func_ABDA())
{
level.var_10CDA = level.var_10C58[0]["name"];
}
else
{
level.var_10CDA = "default";
}
}
lib_0B4A::func_12867();
lib_0A2F::func_96FD();
lib_0A2F::func_82FF();
lib_0A2F::func_8315();
func_10C9F();
waittillframeend;
scripts\common\utility::flag_set("start_is_set");
thread func_10CAD();
var_0A = level.var_10BA8[level.var_10CDA];
if(isdefined(var_0A) && isdefined(var_0A["start_in_jackal"]))
{
setomnvar("ui_active_hud","jackal");
function_01C5("spaceship_disableViewModelNotetracks",1);
}
else
{
setomnvar("ui_active_hud","infantry");
}
if(level.var_10CDA == "default")
{
if(isdefined(level.var_5018))
{
level thread [[ level.var_5018 ]]();
}
}
else
{
var_0A = level.var_10BA8[level.var_10CDA];
thread [[ var_0A["start_func"] ]]();
}
if(scripts\sp\_utility::func_9BB5())
{
var_0B = func_7CB8(var_01);
setdvar("start",var_0B);
}
waittillframeend;
if(function_02B1())
{
wait(0.1);
}
var_0C = [];
if(!scripts\sp\_utility::func_9BB5() && level.var_10CDA != "no_game")
{
var_0D = gettime();
for(var_03 = 0;var_03 < level.var_10C58.size;var_03++)
{
var_0A = level.var_10C58[var_03];
if(var_0A["name"] == level.var_10CDA)
{
break;
}
if(!isdefined(var_0A["catchup_function"]))
{
continue;
}
[[ var_0A["catchup_function"] ]]();
}
}
for(var_03 = var_02;var_03 < level.var_10C58.size;var_03++)
{
var_0A = level.var_10C58[var_03];
if(!isdefined(var_0A["logic_func"]))
{
continue;
}
if(func_1D3E(var_0A["logic_func"],var_0C))
{
continue;
}
if(getdvarint("feedback"))
{
func_6BBF(var_0A,var_03);
}
level.var_10D36 [[ var_0A["logic_func"] ]]();
var_0C[var_0C.size] = var_0A["logic_func"];
if(getdvarint("feedback"))
{
func_6BC1();
}
}
}
//Function Number: 15
func_1D3E(param_00,param_01)
{
foreach(var_03 in param_01)
{
if(var_03 == param_00)
{
return 1;
}
}
return 0;
}
//Function Number: 16
func_7CB8(param_00)
{
var_01 = " ** No starts have been set up for this map with scriptssputility::add_start().";
if(param_00.size)
{
var_01 = " ** ";
for(var_02 = param_00.size - 1;var_02 >= 0;var_02--)
{
var_01 = var_01 + param_00[var_02] + " ";
}
}
setdvar("start",var_01);
return var_01;
}
//Function Number: 17
func_4959(param_00,param_01)
{
var_02 = 1;
var_03 = (0.9,0.9,0.9);
if(param_01 != -1)
{
var_04 = 5;
if(param_01 != var_04)
{
var_02 = 1 - abs(var_04 - param_01) / var_04;
}
else
{
var_03 = (1,1,0);
}
}
if(var_02 == 0)
{
var_02 = 0.05;
}
var_05 = newhudelem();
var_05.alignx = "left";
var_05.aligny = "middle";
var_05.x = 80;
var_05.y = 80 + param_01 * 18;
var_05 settext(param_00);
var_05.alpha = 0;
var_05.foreground = 1;
var_05.color = var_03;
var_05.fontscale = 1.75;
var_05 fadeovertime(0.5);
var_05.alpha = var_02;
return var_05;
}
//Function Number: 18
func_9403(param_00)
{
var_01 = newhudelem();
var_01.alignx = "left";
var_01.aligny = "middle";
var_01.x = 10;
var_01.y = 400;
var_01 settext(param_00);
var_01.alpha = 0;
var_01.fontscale = 3;
wait(1);
var_01 fadeovertime(1);
var_01.alpha = 1;
wait(5);
var_01 fadeovertime(1);
var_01.alpha = 0;
wait(1);
var_01 destroy();
}
//Function Number: 19
func_7292()
{
level.var_72AD = 1;
}
//Function Number: 20
func_9BE4()
{
if(!func_ABDA())
{
return 1;
}
return level.var_10CDA == level.var_10C58[0]["name"];
}
//Function Number: 21
func_9B52(param_00)
{
var_01 = 0;
if(level.var_10CDA == param_00)
{
return 0;
}
for(var_02 = 0;var_02 < level.var_10C58.size;var_02++)
{
if(level.var_10C58[var_02]["name"] == param_00)
{
var_01 = 1;
continue;
}
if(level.var_10C58[var_02]["name"] == level.var_10CDA)
{
return var_01;
}
}
}
//Function Number: 22
func_48E4(param_00)
{
if(!getdvarint("feedback"))
{
return;
}
scripts\common\utility::flag_init("feedback_waiting_on_endFunc");
setdvarifuninitialized("feedback_index",0);
setdvarifuninitialized("setting_feedback_start",0);
if(!getdvarint("setting_feedback_start"))
{
setdvar("feedback_index",0);
}
setdvar("setting_feedback_start",0);
var_01 = [];
foreach(var_04, var_03 in param_00)
{
var_01[var_04] = tolower(var_03);
}
thread func_3D73(var_01);
level.var_6BC3 = var_01;
level.var_6BC2 = var_01[getdvarint("feedback_index")];
}
//Function Number: 23
func_48E1(param_00,param_01)
{
if(!getdvarint("feedback"))
{
return;
}
param_00 = tolower(param_00);
if(!isdefined(level.var_6BC0))
{
level.var_6BC0 = [];
}
level.var_6BC0[param_00] = "^3" + param_01;
}
//Function Number: 24
func_48E2(param_00,param_01,param_02)
{
if(!getdvarint("feedback"))
{
return;
}
param_00 = tolower(param_00);
scripts\common\utility::flag_init(param_00 + "_endFunc");
thread func_48E3(param_00,param_01,param_02);
}
//Function Number: 25
func_56B5(param_00)
{
if(!isdefined(level.var_6BC0))
{
return;
}
if(!isdefined(level.var_6BC0[param_00]))
{
return;
}
scripts\common\utility::func_136F7();
}
//Function Number: 26
func_48E3(param_00,param_01,param_02)
{
level waittill("load_finished");
if(isdefined(param_02))
{
[[ param_01 ]](param_02);
}
else
{
[[ param_01 ]]();
}
scripts\common\utility::flag_set(param_00 + "_endFunc");
}
//Function Number: 27
func_6BBF(param_00,param_01)
{
if(!isdefined(level.var_6BC3))
{
return;
}
var_02 = param_00["name"];
var_03 = getdvarint("feedback_index");
thread func_6BBE(var_02,var_03);
func_6BBD(var_02,var_03);
func_56B5(var_02);
}
//Function Number: 28
func_6BBE(param_00,param_01)
{
if(!isdefined(level.var_6BC3[param_01]))
{
return;
}
if(!scripts\common\utility::func_6E34(level.var_6BC3[param_01] + "_endFunc"))
{
return;
}
scripts\common\utility::flag_set("feedback_waiting_on_endFunc");
scripts\common\utility::flag_wait(level.var_6BC3[param_01] + "_endFunc");
scripts\common\utility::func_6E2A("feedback_waiting_on_endFunc");
func_6BBD(param_00,param_01 + 1);
}
//Function Number: 29
func_6BBD(param_00,param_01)
{
if(scripts\common\utility::flag("feedback_waiting_on_endFunc"))
{
return;
}
if(!isdefined(level.var_6BC3[param_01]))
{
function_0039("",0);
level waittill("forever");
}
if(level.var_6BC3[param_01] != param_00)
{
setdvar("start",level.var_6BC3[param_01]);
var_02 = scripts\sp\_hud_util::func_48B7("black",0);
var_02 fadeovertime(0.5);
var_02.alpha = 1;
wait(0.65);
setdvar("setting_feedback_start",1);
map_restart();
level waittill("forever");
}
}
//Function Number: 30
func_6BC1()
{
var_00 = getdvarint("feedback_index");
var_00++;
setdvar("feedback_index",var_00);
}
//Function Number: 31
func_3D73(param_00)
{
level waittill("load_finished");
var_01 = [];
foreach(var_03 in level.var_10BA8)
{
var_01[var_01.size] = var_03["name"];
}
foreach(var_06 in param_00)
{
}
}
//Function Number: 32
func_174B(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
var_07 = [];
var_07["name"] = param_00;
var_07["start_func"] = param_01;
var_07["start_loc_string"] = param_02;
var_07["logic_func"] = param_03;
var_07["transient"] = param_04;
var_07["catchup_function"] = param_05;
var_07["start_in_jackal"] = param_06;
return var_07;
}
//Function Number: 33
func_174A()
{
if(!isdefined(level.var_10C58))
{
level.var_10C58 = [];
}
}
//Function Number: 34
func_ABDA()
{
return level.var_10C58.size > 1;
}
//Function Number: 35
func_9C4B()
{
if(isdefined(level.var_10CDA))
{
return issubstr(level.var_10CDA,"no_game");
}
return getdvar("start") == "no_game";
}