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

651 lines
15 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 3386.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 21
* Decompile Time: 19 ms
* Timestamp: 10/27/2023 12:26:53 AM
*******************************************************************/
//Function Number: 1
func_94F0()
{
scripts\common\utility::flag_init("arcade_race_pregame");
scripts\common\utility::flag_init("afterlife_race_pregame");
var_00 = scripts\common\utility::getstructarray("game_race","script_noteworthy");
var_01 = 2;
var_02 = 3;
foreach(var_04 in var_00)
{
var_04 thread func_9701(var_00);
}
level thread func_5555(var_01,var_02);
level.var_DBB4 = ["iw7_horseracepistol_zm_blue","iw7_horseracepistol_zm_yellow","iw7_horseracepistol_zm_red","iw7_horseracepistol_zm_green"];
}
//Function Number: 2
func_9701(param_00)
{
var_01 = getentarray(self.target,"targetname");
foreach(var_03 in var_01)
{
if(isdefined(var_03.script_noteworthy) && var_03.script_noteworthy == "horse")
{
self.var_9098 = var_03;
continue;
}
if(var_03.classname == "script_model")
{
self.var_870F = var_03;
continue;
}
if(var_03.classname == "trigger_damage")
{
self.var_325F = var_03;
continue;
}
if(scripts\common\utility::string_starts_with(var_03.classname,"scriptable"))
{
self.var_7542 = var_03;
}
}
self.var_9098.var_C38F = self.var_9098.origin;
self.var_870F.var_C38F = self.var_870F.origin;
self.var_870F.var_C378 = self.var_870F.angles;
if(scripts\cp\_interaction::func_9A3A(self) && !isdefined(level.var_DBB8))
{
thread func_DBB7(param_00);
}
}
//Function Number: 3
func_DBB7(param_00)
{
level.var_DBB8 = 1;
for(;;)
{
var_01 = level scripts\common\utility::waittill_any_return_no_endon_death_3("power_on",self.var_D71C + " power_on","power_off");
if(var_01 != "power_off")
{
setomnvar("zombie_arcade_race_power",1);
foreach(var_03 in param_00)
{
var_03.var_D776 = 1;
}
var_05 = getent("arcade_zz_neon_light","targetname");
var_05 setmodel("zmb_theater_sign_05");
continue;
}
setomnvar("zombie_arcade_race_power",0);
foreach(var_03 in param_00)
{
var_03.var_D776 = 0;
}
}
}
//Function Number: 4
func_13003(param_00,param_01)
{
if(param_01 getstance() != "stand")
{
param_01 scripts\cp\_interaction::func_9A3C(param_00,&"COOP_INTERACTIONS_MUST_BE_STANDING");
return;
}
param_01 notify("cancel_sentry");
param_01 notify("cancel_medusa");
param_01 notify("cancel_trap");
param_01 notify("cancel_boombox");
param_01 notify("cancel_revocator");
param_01 notify("cancel_ims");
param_01 notify("cancel_gascan");
scripts\cp\_interaction::remove_from_current_interaction_list(param_00);
if(!scripts\common\utility::istrue(param_01.in_afterlife_arcade))
{
while(param_01 getcurrentprimaryweapon() == "none" || param_01 method_81C2())
{
wait(0.1);
}
}
param_01 notify("cancel_sentry");
param_01 notify("cancel_medusa");
param_01 notify("cancel_trap");
param_01 notify("cancel_boombox");
param_01 notify("cancel_revocator");
param_01 notify("cancel_ims");
param_01 notify("cancel_gascan");
level.var_13BD4 = level.wave_num;
param_01 playlocalsound("arcade_insert_coin_02");
scripts\common\utility::func_5127(0.2,::scripts\common\utility::play_sound_in_space,"arcade_horserace_gunshot",param_01.origin);
if(param_00.var_EE04 == "arcade")
{
if(!scripts\common\utility::flag("arcade_race_pregame"))
{
scripts\common\utility::flag_set("arcade_race_pregame");
level notify("race_used");
level thread func_DBB2("arcade",param_00);
}
level thread func_D24B(param_01,param_00,"arcade");
scripts\cp\zombies\zombie_analytics::func_AF8C("game_race",param_01);
return;
}
if(param_00.var_EE04 == "afterlife")
{
if(!scripts\common\utility::flag("afterlife_race_pregame"))
{
scripts\common\utility::flag_set("afterlife_race_pregame");
level thread func_DBB2("afterlife",param_00);
}
level thread func_D24B(param_01,param_00,"afterlife");
scripts\cp\zombies\zombie_analytics::func_AF8C("game_race",param_01);
}
}
//Function Number: 5
func_E1F4(param_00,param_01)
{
var_02 = scripts\common\utility::getstructarray("game_race","script_noteworthy");
var_03 = [];
foreach(var_05 in var_02)
{
if(var_05.var_EE04 == param_00)
{
var_03[var_03.size] = var_05;
}
}
foreach(var_05 in var_03)
{
if(param_00 == "afterlife")
{
var_05.var_9098 moveto(var_05.var_9098.var_C38F + (-0.25,0,0),1);
continue;
}
var_05.var_9098 moveto(var_05.var_9098.var_C38F + (0,0.25,0),1);
}
if(param_01.origin != param_01.var_C38F)
{
thread scripts\common\utility::play_sound_in_space("arcade_horserace_reset",param_01.origin);
}
param_01 moveto(param_01.var_C38F,1);
}
//Function Number: 6
func_DBB2(param_00,param_01)
{
var_02 = getentarray("pace_horse","script_noteworthy");
var_03 = scripts\common\utility::getclosest(param_01.origin,var_02,500);
if(!isdefined(var_03.var_C38F))
{
var_03.var_C38F = var_03.origin;
}
level thread func_E1F4(param_00,var_03);
wait(1);
level thread func_E1EE(param_00);
for(var_04 = 3;var_04 > 0;var_04--)
{
setomnvar("zombie_" + param_00 + "_race_countdown",var_04);
wait(1);
}
setomnvar("zombie_" + param_00 + "_race_countdown",-1);
var_05 = scripts\common\utility::getstructarray("game_race","script_noteworthy");
foreach(var_07 in var_05)
{
if(var_07.var_EE04 != param_00)
{
continue;
}
scripts\cp\_interaction::remove_from_current_interaction_list(var_07);
}
thread func_FBEB(param_01);
level notify(param_00 + "race_starting");
switch(var_03.var_EE79)
{
case "x":
var_03 movex(120,10);
break;
case "-x":
var_03 movex(-120,10);
break;
case "y":
var_03 movey(120,10);
break;
case "-y":
var_03 movey(-120,10);
break;
}
wait(1);
setomnvar("zombie_" + param_00 + "_race_countdown",0);
wait(9.1);
level notify(param_00 + "_pace_horse_finished");
scripts\common\utility::func_6E2A(param_00 + "_race_pregame");
thread func_FBEA(param_01);
wait(3);
var_05 = scripts\common\utility::getstructarray("game_race","script_noteworthy");
foreach(var_07 in var_05)
{
if(var_07.var_EE04 != param_00)
{
continue;
}
var_07.var_870F show();
scripts\cp\_interaction::add_to_current_interaction_list(var_07);
}
}
//Function Number: 7
func_E1EE(param_00)
{
var_01 = scripts\common\utility::getstructarray("game_race","script_noteworthy");
var_02 = [];
foreach(var_04 in var_01)
{
if(var_04.var_EE04 == param_00)
{
var_02[var_02.size] = var_04;
}
}
foreach(var_04 in var_02)
{
var_04.var_7542 setscriptablepartstate("game_light","off");
var_04.var_7542 setscriptablepartstate("light_fx","off");
scripts\common\utility::func_136F7();
}
}
//Function Number: 8
func_D24B(param_00,param_01,param_02)
{
var_03 = undefined;
param_00.var_D7AB = param_00 scripts\cp\zombies\arcade_game_utility::func_EB76(param_00);
param_00 setclientomnvar("zombie_arcade_game_time",1);
param_00 setclientomnvar("zombie_zz_widget",1);
scripts\common\utility::func_136F7();
param_01.var_278 = 0;
param_01.var_870F hide();
var_04 = strtok(param_01.var_870F.model,"_");
var_05 = var_04[var_04.size - 1];
foreach(var_07 in level.var_DBB4)
{
var_08 = strtok(var_07,"_");
if(var_08[var_08.size - 1] == var_05)
{
var_03 = var_07;
break;
}
}
param_00 scripts\cp\zombies\arcade_game_utility::func_11447();
param_00 giveweapon(var_03);
param_00 switchtoweapon(var_03);
param_00 scripts\common\utility::func_1C76(0);
param_00 scripts\common\utility::func_1C6E(0);
param_00 thread func_DBB5(param_00,param_01,var_03,::func_E219);
param_00 thread func_DBB6(param_00,param_01,var_03,::func_E219);
param_00 scripts\cp\_utility::func_1C5D(0);
param_00 thread func_DBB1(param_01,param_00,param_02,var_03);
param_00 thread func_D2D9(param_01,param_02,var_03);
param_00 thread func_D047(param_01,param_02,var_03);
}
//Function Number: 9
func_D2D9(param_00,param_01,param_02)
{
self endon("too_far_from_game");
level waittill(param_01 + "race_starting");
param_00.var_325F setcandamage(1);
param_00.var_325F.health = 999999;
var_03 = gettime();
self.var_4B87 = param_00;
level endon(param_01 + "_pace_horse_finished");
if(isdefined(level.start_zombie_zoom_func))
{
param_00 thread [[ level.start_zombie_zoom_func ]](param_00,self);
}
for(;;)
{
param_00.var_325F waittill("damage",var_04,var_05);
param_00.var_325F.health = 999999;
if(var_05 != self)
{
continue;
}
var_06 = var_05 getcurrentweapon();
if(var_06 != param_02)
{
continue;
}
switch(param_00.var_9098.var_EE79)
{
case "x":
param_00.var_9098 movex(2.2,0.1);
break;
case "-x":
param_00.var_9098 movex(-2.2,0.1);
break;
case "y":
param_00.var_9098 movey(2.2,0.1);
break;
case "-y":
param_00.var_9098 movey(-2.2,0.1);
break;
}
if(distance2d(param_00.var_9098.var_C38F,param_00.var_9098.origin) + 2 >= 120)
{
param_00.var_7542 setscriptablepartstate("game_light","on");
param_00.var_7542 setscriptablepartstate("light_fx","on");
var_07 = param_01 == "afterlife";
if(!var_07)
{
level notify("update_arcade_game_performance","zombie_zoom",gettime() - var_03);
}
func_830E(self,var_07,100);
return;
}
}
}
//Function Number: 10
func_D047(param_00,param_01,param_02)
{
self endon("arcade_game_over_for_player");
self endon("last_stand");
self endon("spawned");
self endon("disconnect");
level waittill(param_01 + "_pace_horse_finished");
if(!scripts\cp\_utility::func_213E())
{
scripts\cp\_utility::func_1C5D(1);
}
self setclientomnvar("zombie_arcade_game_time",-1);
self setclientomnvar("zombie_zz_widget",0);
self takeweapon(param_02);
if(!scripts\common\utility::func_9FBE())
{
scripts\common\utility::func_1C6E(1);
}
scripts\common\utility::func_1C76(1);
scripts\cp\zombies\arcade_game_utility::func_82F5(self);
scripts\cp\zombies\arcade_game_utility::func_E2CB();
self notify("arcade_game_over_for_player");
}
//Function Number: 11
func_DBB1(param_00,param_01,param_02,param_03)
{
level endon(param_02 + "_pace_horse_finished");
param_01 endon("arcade_game_over_for_player");
param_01 endon("disconnect");
for(;;)
{
param_01 setweaponammoclip(param_03,10);
wait(0.1);
}
}
//Function Number: 12
func_E219(param_00,param_01)
{
param_01 setclientomnvar("zombie_arcade_game_time",-1);
param_01 setclientomnvar("zombie_zz_widget",0);
wait(3);
if(!param_01 scripts\cp\_utility::func_213E())
{
param_01 scripts\cp\_utility::func_1C5D(1);
}
}
//Function Number: 13
func_FF2B(param_00,param_01)
{
if(param_01 && !scripts\common\utility::istrue(param_00.in_afterlife_arcade))
{
return 0;
}
return 1;
}
//Function Number: 14
func_830E(param_00,param_01,param_02)
{
if(param_01)
{
if(scripts\common\utility::istrue(param_00.in_afterlife_arcade))
{
scripts\cp\zombies\zombie_analytics::func_AF6E(1,param_00,level.var_13BD4,self.var_4B87.name,1,param_02,param_00.pers["timesPerWave"].var_11930[level.var_13BD4][self.var_4B87.name]);
param_00 scripts\cp\zombies\zombie_afterlife_arcade::func_8334(param_00,param_02);
return;
}
return;
}
scripts\cp\zombies\zombie_analytics::func_AF6E(1,param_00,level.var_13BD4,self.var_4B87.name,0,param_02,param_00.pers["timesPerWave"].var_11930[level.var_13BD4][self.var_4B87.name]);
param_00 scripts\cp\zombies\arcade_game_utility::func_8317(param_00,param_02);
}
//Function Number: 15
func_7A4F(param_00)
{
return "Shoot the center of the target!";
}
//Function Number: 16
func_DBB3(param_00,param_01)
{
if(param_00.var_E1B9 && !param_00.var_D776)
{
if(isdefined(level.needspowerstring))
{
return level.needspowerstring;
}
else
{
return &"COOP_INTERACTIONS_REQUIRES_POWER";
}
}
if(param_00.var_EE04 == "afterlife")
{
param_00.cost = 0;
return &"COOP_INTERACTIONS_PLAY_GAME";
}
if(scripts\common\utility::istrue(param_00.out_of_order))
{
return &"CP_ZMB_INTERACTIONS_MACHINE_OUT_OF_ORDER";
}
return level.interaction_hintstrings[param_00.script_noteworthy];
}
//Function Number: 17
func_FBEB(param_00)
{
var_01 = scripts\common\utility::getstructarray("zombiezoom_sound","targetname");
if(var_01.size > 0)
{
var_02 = scripts\common\utility::getclosest(param_00.origin,var_01);
if(param_00.var_EE04 == "arcade" && !isdefined(level.var_2118))
{
level.var_2118 = spawn("script_origin",var_02.origin);
}
else if(param_00.var_EE04 != "arcade" && !isdefined(level.var_18E6))
{
level.var_18E6 = spawn("script_origin",var_02.origin);
}
playsoundatpos(var_02.origin,"arcade_horserace_bell_start");
wait(0.2);
playsoundatpos(var_02.origin,"mus_arcade_horserace_bugle");
wait(0.1);
}
if(param_00.var_EE04 == "arcade")
{
level.var_2118 playloopsound("arcade_horserace_crowd_lp");
return;
}
level.var_18E6 playloopsound("arcade_horserace_crowd_lp");
}
//Function Number: 18
func_FBEA(param_00)
{
if(param_00.var_EE04 == "arcade")
{
level.var_2118 stoploopsound();
}
else
{
level.var_18E6 stoploopsound();
}
thread scripts\common\utility::play_sound_in_space("arcade_horserace_bell_end",param_00.origin);
}
//Function Number: 19
func_DBB5(param_00,param_01,param_02,param_03)
{
param_00 endon("arcade_game_over_for_player");
var_04 = param_00 scripts\common\utility::func_13734("disconnect","last_stand","spawned");
if(var_04 == "disconnect")
{
param_01.var_163D = undefined;
}
else
{
[[ param_03 ]](param_01,param_00);
param_00 takeweapon(param_02);
param_00 scripts\common\utility::func_1C76(1);
if(!param_00 scripts\common\utility::func_9FBE())
{
param_00 scripts\common\utility::func_1C6E(1);
}
}
param_00 notify("arcade_game_over_for_player");
}
//Function Number: 20
func_DBB6(param_00,param_01,param_02,param_03,param_04)
{
param_00 endon("arcade_game_over_for_player");
param_00 endon("last_stand");
param_00 endon("disconnect");
param_00 endon("spawned");
var_05 = 576;
for(;;)
{
wait(0.1);
if(distancesquared(param_00.origin,param_01.origin) > var_05)
{
param_00 playlocalsound("purchase_deny");
wait(1);
if(distancesquared(param_00.origin,param_01.origin) > var_05)
{
if(isdefined(param_02))
{
param_00 takeweapon(param_02);
}
[[ param_03 ]](param_01,param_00);
param_01.var_163D = undefined;
param_00 scripts\common\utility::func_1C76(1);
if(!param_00 scripts\common\utility::func_9FBE())
{
param_00 scripts\common\utility::func_1C6E(1);
}
param_00 scripts\cp\zombies\arcade_game_utility::func_82F5(param_00);
param_00 scripts\cp\zombies\arcade_game_utility::func_E2CB();
param_00 notify("too_far_from_game");
param_00 notify("arcade_game_over_for_player");
}
}
}
}
//Function Number: 21
func_5555(param_00,param_01)
{
level.var_2119 = 0;
var_02 = randomintrange(param_00,param_01);
for(;;)
{
level waittill("race_used");
level.var_2119++;
if(level.var_2119 == var_02)
{
var_02 = randomintrange(param_00,param_01);
var_03 = scripts\common\utility::getstructarray("game_race","script_noteworthy");
foreach(var_05 in var_03)
{
if(var_05.var_EE04 != "arcade")
{
continue;
}
var_05.out_of_order = 1;
}
level scripts\common\utility::waittill_any_3("regular_wave_starting","event_wave_starting");
level.var_2119 = 0;
foreach(var_05 in var_03)
{
if(var_05.var_EE04 != "arcade")
{
continue;
}
foreach(var_09 in level.players)
{
if(isdefined(var_09.var_A8D3) && var_09.var_A8D3 == var_05)
{
var_09 thread scripts\cp\_interaction::func_DE6E();
}
}
var_05.out_of_order = 0;
}
}
}
}