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

624 lines
18 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 3005.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 15
* Decompile Time: 13 ms
* Timestamp: 10/27/2023 12:26:02 AM
*******************************************************************/
//Function Number: 1
main(param_00,param_01,param_02)
{
lib_0B95::func_31C5("dropship",param_00,param_01,param_02);
lib_0B95::func_31A6(::func_966B);
lib_0B95::func_31A3(3000,2800,3100);
lib_0B95::func_31C4("axis");
if(issubstr(param_02,"_space"))
{
lib_0B95::func_3175(::func_F8A2,::func_F5FC);
}
else
{
lib_0B95::func_3175(::func_F8A1,::func_F5FC);
}
lib_0B95::func_31CC(::func_12BBD);
lib_0B95::func_3184("vfx/iw7/core/vehicle/dropship/vfx_dropship_death_01.vfx",undefined,"dropship_helicopter_crash",undefined,undefined,undefined,-1,undefined,"stop_crash_loop_sound",10,5);
lib_0B95::func_31B7("vfx/iw7/core/vehicle/dropship/vfx_dropship_death_01.vfx","tag_body","dropship_helicopter_crash",undefined,undefined,undefined,undefined,1,undefined,0);
var_03 = "vfx/code/tread/heli_dust_default.vfx";
lib_0B95::func_31C6(param_02,"default",var_03,0);
lib_0B95::func_31B8("light_1s",0.12,0.15,3000,0.05,0.05);
if(issubstr(param_02,"plane"))
{
lib_0B95::func_319F();
}
else
{
lib_0B95::func_31A0();
}
if(!issubstr(param_02,"cheap"))
{
lib_0B95::func_31C8("sdf_dropship_turret_energy","tag_chin_turret","veh_mil_air_ca_dropship_turret",undefined,"auto_nonai",0,20,-14,undefined);
lib_0B95::func_31C8("sdf_mg_turret","tag_turret_attach_back","weapon_railgun_turret",undefined,"auto_nonai",0,0,0,undefined,"back");
lib_0B95::func_31C8("sdf_mg_turret","tag_turret_attach_le","weapon_railgun_turret",undefined,"auto_nonai",0,0,0,undefined,"left");
lib_0B95::func_31C8("sdf_mg_turret","tag_turret_attach_ri","weapon_railgun_turret",undefined,"auto_nonai",0,0,0,undefined,"right");
precachemodel("veh_mil_air_ca_dropship_dst_rr");
precachemodel("veh_mil_air_ca_dropship_dst_fr");
precachemodel("veh_mil_air_ca_dropship_personnel");
precachemodel("veh_mil_air_ca_dropship_mount");
precacheturret("sdf_mg_turret");
}
lib_0BBE::func_774E(param_02);
level.var_7649["engine_damage_feedback"] = loadfx("vfx/iw7/levels/pearl_harbor/dropship_down/vfx_ph_dropship_shoot_engine_impact_amped.vfx");
level.var_7649["enemy_dropship_engine_death"] = loadfx("vfx/iw7/levels/pearl_harbor/dropship_down/vfx_ph_dropship_shoot_engine_explode.vfx");
level.var_7649["enemy_dropship_engine_damaged"] = loadfx("vfx/iw7/levels/pearl_harbor/dropship_down/vfx_ph_dropship_shoot_engine_flaming.vfx");
}
//Function Number: 2
func_966B()
{
self.var_12BBF = 150;
self.var_12BC1 = 450 + self.var_12BBF;
self.var_5F80 = 1;
if(issubstr(self.classname,"cheap"))
{
var_00 = ["tag_front_thruster_1_le","tag_front_thruster_2_le","tag_front_thruster_1_ri","tag_front_thruster_2_ri"];
var_01 = ["tag_back_thruster_1_le","tag_back_thruster_2_le","tag_back_thruster_1_ri","tag_back_thruster_2_ri"];
var_02 = ["tag_back_thruster_3_le","tag_back_thruster_4_le","tag_back_thruster_3_ri","tag_back_thruster_4_ri"];
var_03 = scripts\common\utility::array_combine(var_00,var_01);
var_03 = scripts\common\utility::array_combine(var_03,var_02);
thread lib_0BBE::func_774B(var_03);
return;
}
var_00 = ["tag_front_thruster_1_le","tag_front_thruster_2_le","tag_front_thruster_1_ri","tag_front_thruster_2_ri"];
lib_0BBE::func_FA5F("side_front",var_03);
var_01 = ["tag_back_thruster_1_le","tag_back_thruster_2_le","tag_back_thruster_1_ri","tag_back_thruster_2_ri"];
lib_0BBE::func_FA5F("side_back",var_03);
var_02 = ["tag_back_thruster_3_le","tag_back_thruster_4_le","tag_back_thruster_3_ri","tag_back_thruster_4_ri"];
lib_0BBE::func_FA5F("back",var_03,10);
thread lib_0BBE::func_774D();
var_04 = self.var_EEDE;
if(var_04 == "axis")
{
thread lib_0BBE::func_774C();
}
thread lib_0BBE::func_5EC8(%vh_dropship_sdf_thrusters_up,%vh_dropship_sdf_thrusters_down);
if(!issubstr(self.classname,"c6"))
{
self attach("veh_mil_air_ca_dropship_personnel","tag_connect");
}
thread func_3E7A();
thread func_101B3();
}
//Function Number: 3
func_3E7A()
{
self endon("death");
if(!isdefined(self.var_EEF8))
{
self.var_EEF8 = 0;
}
wait(0.05);
self.var_B6BD[0] method_82FB(65);
self.var_B6BD[0] method_8330(65);
self.var_B6BD[0] method_8353(65);
self.var_B6BD[0] method_82B6(65);
self.var_B6BD[0].var_ED26 = 0.75;
self.var_B6BD[0].var_ED25 = 1.5;
self.var_B6BD[0].var_ED50 = 0.25;
self.var_B6BD[0].var_ED4F = 0.75;
self.var_B6BD[0].var_ED24 = 0.12;
self.var_B6BD[0] notify("stop_burst_fire_unmanned");
self.var_B6BD[0] thread scripts\sp\_mgturret::func_32B7();
}
//Function Number: 4
func_101B3()
{
wait(0.05);
foreach(var_01 in self.var_B6BD)
{
if(!isdefined(var_01.var_DE46))
{
continue;
}
var_02 = undefined;
switch(var_01.var_DE46)
{
case "back":
var_02 = "back";
break;
case "left":
var_02 = "le";
break;
case "right":
var_02 = "ri";
break;
}
var_02 = "tag_turret_mount_" + var_02;
var_03 = spawn("script_model",self gettagorigin(var_02));
var_03 linkto(self,var_02,(0,0,0),(0,0,0));
var_03 setmodel("veh_mil_air_ca_dropship_mount");
}
}
//Function Number: 5
func_5DB9(param_00)
{
var_01 = undefined;
switch(param_00)
{
case "right":
var_01 = %vh_ca_dropship_side_door_r_open;
break;
case "left":
var_01 = %vh_ca_dropship_side_door_l_open;
break;
case "back":
var_01 = %vh_dropship_sdf_rear_doors_open;
break;
}
self method_82A2(var_01);
}
//Function Number: 6
func_5DB7(param_00)
{
var_01 = undefined;
var_02 = undefined;
switch(param_00)
{
case "right":
var_01 = %vh_ca_dropship_side_door_r_open;
var_02 = %vh_ca_dropship_side_door_r_close;
break;
case "left":
var_01 = %vh_ca_dropship_side_door_l_open;
var_02 = %vh_ca_dropship_side_door_l_close;
break;
case "back":
var_01 = %vh_dropship_sdf_rear_doors_open;
var_02 = %vh_dropship_sdf_rear_doors_close;
break;
}
self method_806F(var_01,0.05);
self method_82A2(var_02);
}
//Function Number: 7
func_F8A1()
{
var_00 = [];
for(var_01 = 0;var_01 < 17;var_01++)
{
var_00[var_01] = spawnstruct();
var_00[var_01].var_10220 = "tag_detach";
var_00[var_01].var_803A = "stand";
var_00[var_01].var_DC19 = 1;
}
var_00[0].var_92CC = %vh_org_dropship_sdf_idle_pilot;
var_00[1].var_92CC = %vh_org_dropship_sdf_idle_copilot;
var_00[2].var_92CC = %vh_org_dropship_sdf_unload_guy1_idle;
var_00[3].var_92CC = %vh_org_dropship_sdf_unload_guy2_idle;
var_00[4].var_92CC = %vh_org_dropship_sdf_unload_guy3_idle;
var_00[5].var_92CC = %vh_org_dropship_sdf_unload_guy4_idle;
var_00[6].var_92CC = %vh_org_dropship_sdf_unload_guy5_idle;
var_00[7].var_92CC = %vh_org_dropship_sdf_unload_guy6_idle;
var_00[8].var_92CC = %vh_org_dropship_sdf_unload_guy7_idle;
var_00[9].var_92CC = %vh_org_dropship_sdf_unload_guy8_idle;
var_00[10].var_92CC = %vh_org_dropship_sdf_unload_guy9_idle;
var_00[11].var_92CC = %vh_org_dropship_sdf_unload_guy10_idle;
var_00[12].var_92CC = %vh_org_dropship_sdf_unload_guy11_idle;
var_00[13].var_92CC = %vh_org_dropship_sdf_unload_guy12_idle;
var_00[2].var_8028 = %vh_org_dropship_sdf_unload_jump_guy1;
var_00[3].var_8028 = %vh_org_dropship_sdf_unload_jump_guy2;
var_00[4].var_8028 = %vh_org_dropship_sdf_unload_jump_guy3;
var_00[5].var_8028 = %vh_org_dropship_sdf_unload_jump_guy4;
var_00[6].var_8028 = %vh_org_dropship_sdf_unload_jump_guy5;
var_00[7].var_8028 = %vh_org_dropship_sdf_unload_jump_guy6;
var_00[8].var_8028 = %vh_org_dropship_sdf_unload_jump_guy7;
var_00[9].var_8028 = %vh_org_dropship_sdf_unload_jump_guy8;
var_00[2].var_802D = %vh_org_dropship_sdf_unload_jump_loop_guy1;
var_00[3].var_802D = %vh_org_dropship_sdf_unload_jump_loop_guy2;
var_00[4].var_802D = %vh_org_dropship_sdf_unload_jump_loop_guy3;
var_00[5].var_802D = %vh_org_dropship_sdf_unload_jump_loop_guy4;
var_00[6].var_802D = %vh_org_dropship_sdf_unload_jump_loop_guy5;
var_00[7].var_802D = %vh_org_dropship_sdf_unload_jump_loop_guy6;
var_00[8].var_802D = %vh_org_dropship_sdf_unload_jump_loop_guy7;
var_00[9].var_802D = %vh_org_dropship_sdf_unload_jump_loop_guy8;
var_00[2].var_802C = %vh_org_dropship_sdf_unload_land_guy1;
var_00[3].var_802C = %vh_org_dropship_sdf_unload_land_guy2;
var_00[4].var_802C = %vh_org_dropship_sdf_unload_land_guy3;
var_00[5].var_802C = %vh_org_dropship_sdf_unload_land_guy4;
var_00[6].var_802C = %vh_org_dropship_sdf_unload_land_guy5;
var_00[7].var_802C = %vh_org_dropship_sdf_unload_land_guy6;
var_00[8].var_802C = %vh_org_dropship_sdf_unload_land_guy7;
var_00[9].var_802C = %vh_org_dropship_sdf_unload_land_guy8;
var_00[14].var_B6BD = 1;
var_00[15].var_B6BD = 2;
var_00[16].var_B6BD = 3;
return var_00;
}
//Function Number: 8
func_F8A2()
{
var_00 = [];
for(var_01 = 0;var_01 < 15;var_01++)
{
var_00[var_01] = spawnstruct();
var_00[var_01].var_10220 = "tag_detach";
var_00[var_01].var_803A = "stand";
var_00[var_01].var_DC19 = 1;
}
var_00[0].var_92CC = %vh_org_dropship_sdf_idle_pilot;
var_00[1].var_92CC = %vh_org_dropship_sdf_idle_copilot;
var_00[2].var_92CC = %vh_zg_org_dropship_sdf_unload_guy1_idle;
var_00[3].var_92CC = %vh_zg_org_dropship_sdf_unload_guy2_idle;
var_00[4].var_92CC = %vh_zg_org_dropship_sdf_unload_guy3_idle;
var_00[5].var_92CC = %vh_zg_org_dropship_sdf_unload_guy4_idle;
var_00[6].var_92CC = %vh_zg_org_dropship_sdf_unload_guy5_idle;
var_00[7].var_92CC = %vh_zg_org_dropship_sdf_unload_guy6_idle;
var_00[8].var_92CC = %vh_zg_org_dropship_sdf_unload_guy7_idle;
var_00[9].var_92CC = %vh_zg_org_dropship_sdf_unload_guy8_idle;
var_00[10].var_92CC = %vh_zg_org_dropship_sdf_unload_guy9_idle;
var_00[11].var_92CC = %vh_zg_org_dropship_sdf_unload_guy10_idle;
var_00[12].var_92CC = %vh_zg_org_dropship_sdf_unload_guy11_idle;
var_00[13].var_92CC = %vh_zg_org_dropship_sdf_unload_guy12_idle;
var_00[2].var_8028 = %vh_zg_org_dropship_sdf_unload_guy1;
var_00[3].var_8028 = %vh_zg_org_dropship_sdf_unload_guy2;
var_00[4].var_8028 = %vh_zg_org_dropship_sdf_unload_guy3;
var_00[5].var_8028 = %vh_zg_org_dropship_sdf_unload_guy4;
var_00[6].var_8028 = %vh_zg_org_dropship_sdf_unload_guy5;
var_00[7].var_8028 = %vh_zg_org_dropship_sdf_unload_guy6;
var_00[8].var_8028 = %vh_zg_org_dropship_sdf_unload_guy7;
var_00[9].var_8028 = %vh_zg_org_dropship_sdf_unload_guy8;
var_00[10].var_8028 = %vh_zg_org_dropship_sdf_unload_guy9;
var_00[11].var_8028 = %vh_zg_org_dropship_sdf_unload_guy10;
var_00[12].var_8028 = %vh_zg_org_dropship_sdf_unload_guy11;
var_00[13].var_8028 = %vh_zg_org_dropship_sdf_unload_guy12;
return var_00;
}
//Function Number: 9
func_F5FC(param_00)
{
param_00[2].var_131E6 = %vh_ca_dropship_side_door_l_open;
param_00[2].var_131E7 = 0;
param_00[6].var_131E6 = %vh_ca_dropship_side_door_r_open;
param_00[6].var_131E7 = 0;
param_00[10].var_131E6 = %vh_dropship_sdf_rear_doors_open;
param_00[10].var_131E7 = 0;
return param_00;
}
//Function Number: 10
func_12BBD()
{
var_00 = [];
var_01 = "left";
var_00[var_01] = [];
var_00[var_01][var_00[var_01].size] = 2;
var_00[var_01][var_00[var_01].size] = 3;
var_00[var_01][var_00[var_01].size] = 4;
var_00[var_01][var_00[var_01].size] = 5;
var_01 = "right";
var_00[var_01] = [];
var_00[var_01][var_00[var_01].size] = 6;
var_00[var_01][var_00[var_01].size] = 7;
var_00[var_01][var_00[var_01].size] = 8;
var_00[var_01][var_00[var_01].size] = 9;
var_01 = "back";
var_00[var_01] = [];
var_00[var_01][var_00[var_01].size] = 10;
var_00[var_01][var_00[var_01].size] = 11;
var_00[var_01][var_00[var_01].size] = 12;
var_00[var_01][var_00[var_01].size] = 13;
var_01 = "all";
var_00[var_01] = [];
var_00[var_01][var_00[var_01].size] = 2;
var_00[var_01][var_00[var_01].size] = 3;
var_00[var_01][var_00[var_01].size] = 4;
var_00[var_01][var_00[var_01].size] = 5;
var_00[var_01][var_00[var_01].size] = 6;
var_00[var_01][var_00[var_01].size] = 7;
var_00[var_01][var_00[var_01].size] = 8;
var_00[var_01][var_00[var_01].size] = 9;
var_00[var_01][var_00[var_01].size] = 10;
var_00[var_01][var_00[var_01].size] = 11;
var_00[var_01][var_00[var_01].size] = 12;
var_00[var_01][var_00[var_01].size] = 13;
var_00["default"] = var_00["all"];
return var_00;
}
//Function Number: 11
func_5DCE(param_00)
{
self endon("death");
self endon("stop_engine_damage_manager");
scripts\sp\_utility::func_65E0("thruster_near_death");
scripts\sp\_vehicle::func_8441();
var_01 = ["j_wing_front_le","j_wing_mid_le","j_wing_front_ri","j_wing_mid_ri"];
self.var_65CD = [];
foreach(var_03 in var_01)
{
self.var_65CD[var_03] = spawnstruct();
self.var_65CD[var_03].maxhealth = 1500;
self.var_65CD[var_03].health = self.var_65CD[var_03].maxhealth;
self.var_65CD[var_03].var_9BB8 = 0;
self.var_65CD[var_03].var_5762 = level.var_7649["enemy_dropship_engine_damaged"];
self.var_65CD[var_03].var_4E26 = level.var_7649["enemy_dropship_engine_death"];
self.var_65CD[var_03].var_5290 = "frag_grenade_explode";
if(isdefined(param_00))
{
self.var_65CD[var_03].var_4E40 = param_00;
}
switch(var_03)
{
case "j_wing_mid_ri":
self.var_65CD[var_03].var_2C40 = "veh_mil_air_ca_dropship_dst_rr";
self.var_65CD[var_03].var_2C41 = "j_wing_mid_RI";
self.var_65CD[var_03].var_11867 = ["tag_back_thruster_1_ri","tag_back_thruster_2_ri"];
break;
case "j_wing_front_ri":
self.var_65CD[var_03].var_2C40 = "veh_mil_air_ca_dropship_dst_fr";
self.var_65CD[var_03].var_2C41 = "j_wing_front_RI";
self.var_65CD[var_03].var_11867 = ["tag_front_thruster_1_ri","tag_front_thruster_2_ri"];
break;
default:
break;
}
}
for(;;)
{
self waittill("damage",var_05,var_06,var_07,var_08,var_07,var_07,var_07,var_09,var_07,var_0A);
if((isdefined(var_06) && isplayer(var_06)) || isdefined(var_06) && isdefined(level.var_A351) && var_06 == level.var_A351)
{
func_D973(var_09,var_05,var_08);
}
}
}
//Function Number: 12
func_D973(param_00,param_01,param_02)
{
if(isdefined(level.var_5D81) && isdefined(level.var_5D81.var_24C0))
{
level.var_5D81.var_24C0 = level.var_5D81.var_24C0 - 0.15;
}
if(isdefined(param_00) && !isdefined(self.var_65CD[param_00]))
{
return;
}
if(!isdefined(param_00) && !isdefined(param_01))
{
return;
}
thread scripts\sp\_damagefeedback::func_B9C6();
if(isdefined(param_02))
{
playfx(level.var_7649["engine_damage_feedback"],param_02);
}
self.var_65CD[param_00].health = self.var_65CD[param_00].health - param_01;
if(getdvarint("debug_engine_dmg"))
{
}
if(self.var_65CD[param_00].health < 1)
{
if(getdvarint("debug_engine_dmg"))
{
}
func_A5DA(param_00);
return;
}
if(self.var_65CD[param_00].health <= self.var_65CD[param_00].maxhealth * 0.75 && !isdefined(self.var_65CD[param_00].var_9DA7))
{
if(getdvarint("debug_engine_dmg"))
{
}
self.var_65CD[param_00].var_9DA7 = 1;
playfxontag(level.var_7649["enemy_dropship_engine_damaged"],self,param_00);
if(isdefined(self.var_65CD[param_00].var_11867))
{
lib_0BBE::func_A61E(self.var_65CD[param_00].var_11867);
return;
}
return;
}
if(self.var_65CD[param_00].health <= self.var_65CD[param_00].maxhealth * 0.25 && !scripts\sp\_utility::func_65DB("thruster_near_death"))
{
scripts\sp\_utility::func_65E1("thruster_near_death");
return;
}
}
//Function Number: 13
func_A5DA(param_00)
{
if(self.var_65CD[param_00].var_9BB8)
{
return;
}
self.var_65CD[param_00].var_9BB8 = 1;
if(isdefined(self.var_65CD[param_00].var_2C40) && isdefined(self.var_65CD[param_00].var_2C41))
{
self.var_65CD[param_00].var_9BB8 = 1;
var_01 = spawn("script_model",self gettagorigin(self.var_65CD[param_00].var_2C41));
var_01 linkto(self,self.var_65CD[param_00].var_2C41,(0,0,0),(0,0,0));
var_01 setmodel(self.var_65CD[param_00].var_2C40);
thread scripts\common\utility::func_5179(var_01);
}
playfxontag(level.var_7649["enemy_dropship_engine_death"],self,param_00);
if(isdefined(self.var_65CD[param_00].var_5290))
{
function_0178(self.var_65CD[param_00].var_5290,self gettagorigin(param_00));
}
if(!isdefined(self.var_65CD[param_00].var_4E40))
{
return;
}
var_02 = 0;
if(isdefined(self.var_B73F))
{
var_03 = 0;
foreach(var_05 in self.var_65CD)
{
if(var_05.var_9BB8)
{
var_03++;
}
}
if(var_03 >= self.var_B73F)
{
var_02 = 1;
}
else
{
thread func_101AF();
}
}
else
{
var_02 = 1;
}
if(var_02)
{
self thread [[ self.var_65CD[param_00].var_4E40 ]]();
}
}
//Function Number: 14
func_CD70(param_00,param_01,param_02)
{
self notify("custom_death_begin");
self.var_1FEB = scripts\common\utility::spawn_tag_origin();
self linkto(self.var_1FEB);
var_03 = undefined;
if(isstring(param_01))
{
var_03 = getanimlength(level.var_EC85[self.var_1FBB][param_01]);
self.var_1FEB thread lib_0B06::func_1F35(self,param_01);
}
else
{
var_03 = getanimlength(param_01);
self method_8018("single anim",self.origin,self.angles,param_01);
}
if(!isdefined(param_02))
{
param_02 = var_03;
}
if(getdvarint("debug_engine_dmg"))
{
thread scripts\sp\_utility::func_5B51(param_00.origin,self,1,0,0,var_03);
}
self.var_1FEB moveto(param_00.origin,param_02);
self.var_1FEB rotateto(param_00.angles,param_02);
wait(var_03);
self.var_1FEB delete();
self notify("custom_death_end");
}
//Function Number: 15
func_101AF()
{
if(isdefined(self.var_9BC0))
{
return;
}
self.var_9BC0 = 1;
var_00 = 200;
var_01 = self.angles;
var_01 = (0,var_01[1],0);
var_02 = anglestoright(var_01);
var_03 = var_02 * var_00;
var_04 = self.origin + var_03;
var_05 = undefined;
if(!isdefined(self.var_A8AC))
{
if(randomint(100) < 50)
{
self.var_A8AC = "left";
}
else
{
self.var_A8AC = "right";
}
}
if(bullettracepassed(self.origin,var_04,0,self) && self.var_A8AC == "left")
{
self.var_A8AC = "right";
var_05 = var_04;
}
else
{
var_03 = var_03 * -1;
var_04 = self.origin + var_03;
if(bullettracepassed(self.origin,var_04,0,self))
{
self.var_A8AC = "left";
var_05 = var_04;
}
}
if(!isdefined(var_05))
{
self.var_9BC0 = undefined;
return;
}
var_06 = self.origin;
self method_8362(var_05 + (0,0,100));
self method_83E5(60,50,10);
wait(3);
self method_8362(var_06,1);
self method_83E5(50,25,25);
self.var_9BC0 = undefined;
}