IL-GSC/WW2/PC/ALL/vehicle_scripts/_fighter_mp.gsc
2023-10-27 03:49:01 -04:00

574 lines
11 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: vehicle_scripts\_fighter_mp.gsc
* Game: Call of Duty: WWII
* Platform: PC
* Function Count: 24
* Decompile Time: 403 ms
* Timestamp: 10/27/2023 3:20:29 AM
*******************************************************************/
//Function Number: 1
func_00F9(param_00,param_01,param_02)
{
func_764D();
}
//Function Number: 2
func_764D()
{
level.var_611["p47_dmg_impact"] = loadfx("vfx/map/mp_raid_bomber/mp_raid_fighter_impacts_lrg");
level.var_611["p47_dmg_impact_notrail"] = loadfx("vfx/vehicle/fighter_dmg_impact_notrail");
level.var_611["p47_dmg_light"] = loadfx("vfx/vehicle/p47_dmg_light");
level.var_611["p47_dmg_heavy"] = loadfx("vfx/vehicle/p47_dmg_heavy");
level.var_611["p47_contrail"] = loadfx("vfx/vehicle/p47_contrail");
level.var_611["p47_wing_evap"] = loadfx("vfx/map/mp_raid_bomber/mp_raid_p47_wing_evap");
level.var_611["p47_exhaust"] = loadfx("vfx/vehicle/p47_exhaust");
level.var_611["bf109_wing_evap"] = loadfx("vfx/map/mp_raid_bomber/mp_raid_fighter_wing_evap");
level.var_611["bf109_exhaust"] = loadfx("vfx/vehicle/p47_exhaust");
level.var_611["bf109_contrail_ext_vel"] = loadfx("vfx/vehicle/p47_contrail_ext_vel");
if(getdvarint("fighter_firing_mode") == 1)
{
level.var_611["p47_muzzle01"] = loadfx("vfx/vehicle/p47_muzzle01");
level.var_611["p47_muzzle02"] = loadfx("vfx/vehicle/p47_muzzle02");
}
level.var_611["p47_death"] = loadfx("vfx/scorestreaks/ss_fighter_plane_death");
level.var_611["20mm_metal_impact_1"] = loadfx("vfx/weaponimpact/20mm_metal_impact_1");
level.var_611["p47_dmg_impact_ext_vel"] = loadfx("vfx/map/mp_raid_bomber/mp_raid_fighter_spark_impact_rnr");
level.var_611["p47_contrail_ext_vel"] = loadfx("vfx/vehicle/p47_contrail_ext_vel");
if(getdvarint("fighter_firing_mode") == 1)
{
level.var_611["p47_muzzle01_ext_vel"] = loadfx("vfx/vehicle/p47_muzzle01_ext_vel");
level.var_611["p47_muzzle02_ext_vel"] = loadfx("vfx/vehicle/p47_muzzle02_ext_vel");
}
}
//Function Number: 3
fighterinitmg(param_00)
{
var_01 = 0;
if(isdefined(self.var_81FD))
{
var_01 = self.var_81FD;
}
self.var_615C = [];
foreach(var_03 in param_00)
{
var_04 = self gettagangles(var_03.var_95A6);
var_05 = self gettagorigin(var_03.var_95A6);
var_06 = combineangles(var_04,(0,-1 * var_01,0));
var_07 = undefined;
if(isdefined(var_03.var_6A1B))
{
var_07 = var_05 + rotatevector(var_03.var_6A1B,var_04);
}
else
{
var_07 = var_05;
}
var_08 = spawnturret(var_03.var_231A,var_07,var_03.var_5135);
var_08.maxhealth = var_03.var_5135;
var_08.var_1D = var_06;
var_08 method_808C();
if(isdefined(var_03.var_6A1B))
{
var_08 linkto(self,var_03.var_95A6,var_03.var_6A1B,(0,-1 * var_01,0));
}
else
{
var_08 linkto(self,var_03.var_95A6,(0,0,0),(0,-1 * var_01,0));
}
var_08 setmodel(var_03.var_106);
var_08.var_5847 = 1;
var_08.var_6DB3 = self;
var_08 makeusable();
if(isdefined(var_03.var_FC))
{
var_08.var_FC = var_03.var_FC;
}
self.var_615C[self.var_615C.size] = var_08;
}
}
//Function Number: 4
buildfighterturret(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(level.var_A372))
{
level.var_A372 = [];
}
var_05 = level.var_A635;
var_06 = spawnstruct();
var_06.var_231A = param_00;
var_06.var_5135 = param_01;
var_06.var_95A6 = param_02;
var_06.var_106 = param_03;
if(isdefined(param_04) && param_04 == 1)
{
var_06.var_9B81 = 1;
}
else
{
var_06.var_9B81 = 0;
}
return var_06;
}
//Function Number: 5
func_8A4D(param_00)
{
var_01 = [];
var_02 = buildfighterturret("misc_turret",param_00,"TAG_TURRET_ATTACH_LEFT","usa_fighter_thunderbolt_turret",1);
var_01[var_01.size] = var_02;
var_02 = buildfighterturret("misc_turret",param_00,"TAG_TURRET_ATTACH_RIGHT","usa_fighter_thunderbolt_turret",1);
var_01[var_01.size] = var_02;
fighterinitmg(var_01);
}
//Function Number: 6
destroyturrets()
{
foreach(var_01 in self.var_615C)
{
var_01 makeunusable();
var_01 delete();
}
self.var_615C = undefined;
}
//Function Number: 7
deathcleanup()
{
func_36B3();
func_941A();
if(0)
{
func_93FF();
}
}
//Function Number: 8
func_51FB(param_00)
{
func_8A4D(param_00);
self.var_2A89 = "tag_trail_fx";
self.var_9BDD = "tag_trail_fx";
if(self method_8445("tag_trail_fx") < 0)
{
self.var_2A89 = "tag_origin";
}
if(self method_8445("tag_trail_fx") < 0)
{
self.var_9BDD = "tag_origin";
}
if(0)
{
thread func_721B();
}
thread func_3F3B();
thread func_3F5D();
thread fx_speed_handler();
thread func_6DB8();
}
//Function Number: 9
spawn_tag_origin_internal()
{
if(isdefined(level.var_5FEB))
{
var_00 = spawn("script_model",level.var_5FEB);
}
else
{
var_00 = spawn("script_model",(0,0,0));
}
var_00 setmodel("tag_origin");
if(isdefined(self.var_116))
{
var_00.var_116 = self.var_116;
}
if(isdefined(self.var_1D))
{
var_00.var_1D = self.var_1D;
}
return var_00;
}
//Function Number: 10
func_6DB8()
{
self endon("death");
var_00 = self method_8251();
if(!isdefined(var_00))
{
return;
}
if(!isdefined(self.var_29B1))
{
self.var_29B1 = [];
thread func_6DB7();
}
var_01 = 0;
var_02 = common_scripts\utility::func_44F5("20mm_metal_impact_1");
var_03 = -1;
var_04 = 3;
for(;;)
{
self waittill("damage",var_05,var_06,var_07,var_08,var_09);
if(!isdefined(var_08))
{
continue;
}
if(isdefined(var_06) && var_06 == self)
{
continue;
}
maps\mp\_audio_submixes::func_7FFA("raid_hit_air_dmg_plr",var_08,undefined,undefined,undefined,undefined,[var_00]);
var_0A = level.var_744A;
var_0A = common_scripts\utility::func_F93(var_0A,var_00);
if(var_0A.size > 0)
{
maps\mp\_audio_submixes::func_7FFA("raid_hit_air_dmg_npc",var_08,undefined,undefined,undefined,undefined,var_0A);
}
var_01 = 1;
var_02 = common_scripts\utility::func_44F5("20mm_metal_impact_1");
var_03 = 1.5;
var_04 = 9;
if(self.var_29B1.size < var_04)
{
var_0B = spawn_tag_origin_internal();
var_0B.var_3F2F = var_02;
var_0B.var_116 = var_08;
var_0B.var_1D = self gettagangles(self.var_9BDD);
var_0B linkto(self,self.var_9BDD);
self.var_29B1[self.var_29B1.size] = var_0B;
playfxontag(var_0B.var_3F2F,var_0B,"tag_origin");
if(var_03 > 0)
{
thread func_6DB9(var_03,var_0B);
}
}
}
}
//Function Number: 11
func_6DB7()
{
self waittill("death");
if(isdefined(self.var_29B1))
{
foreach(var_01 in self.var_29B1)
{
if(isdefined(var_01))
{
stopfxontag(var_01.var_3F2F,var_01,"tag_origin");
var_01 delete();
}
}
self.var_29B1 = undefined;
}
}
//Function Number: 12
func_6DB9(param_00,param_01)
{
wait(param_00);
if(isdefined(param_01) && isdefined(self) && isdefined(self.var_29B1))
{
stopfxontag(param_01.var_3F2F,param_01,"tag_origin");
self.var_29B1 = common_scripts\utility::func_F93(self.var_29B1,param_01);
}
if(isdefined(param_01))
{
param_01 delete();
}
}
//Function Number: 13
func_721B()
{
self endon("death");
self endon("stop_engineeffects");
common_scripts\utility::func_3799("engineeffects");
common_scripts\utility::func_379A("engineeffects");
var_00 = undefined;
if(self.var_1C8 == "usa_fighter_thunderbolt_player_mp")
{
var_00 = common_scripts\utility::func_44F5("p47_exhaust");
}
else if(self.var_1C8 == "ger_fighter_bf109_player_mp")
{
var_00 = common_scripts\utility::func_44F5("bf109_exhaust");
}
if(isdefined(var_00))
{
for(;;)
{
common_scripts\utility::func_379C("engineeffects");
playfxontag(var_00,self,self.var_9BDD);
common_scripts\utility::func_37A1("engineeffects");
stopfxontag(var_00,self,self.var_9BDD);
}
}
}
//Function Number: 14
func_93FF()
{
common_scripts\utility::func_3796("engineeffects");
}
//Function Number: 15
func_720A()
{
var_00 = undefined;
if(self.var_1C8 == "usa_fighter_thunderbolt_player_mp")
{
var_00 = common_scripts\utility::func_44F5("p47_contrail_ext_vel");
}
else if(self.var_1C8 == "ger_fighter_bf109_player_mp")
{
var_00 = common_scripts\utility::func_44F5("bf109_contrail_ext_vel");
}
if(isdefined(var_00))
{
playfxontag(var_00,self,self.var_9BDD);
}
}
//Function Number: 16
func_93FB()
{
var_00 = undefined;
if(self.var_1C8 == "usa_fighter_thunderbolt_player_mp")
{
var_00 = common_scripts\utility::func_44F5("p47_contrail_ext_vel");
}
else if(self.var_1C8 == "ger_fighter_bf109_player_mp")
{
var_00 = common_scripts\utility::func_44F5("bf109_contrail_ext_vel");
}
if(isdefined(var_00))
{
stopfxontag(var_00,self,self.var_9BDD);
}
}
//Function Number: 17
func_36B3()
{
self notify("end_contrails");
self endon("death");
func_93FB();
}
//Function Number: 18
func_74EE()
{
var_00 = undefined;
if(self.var_1C8 == "usa_fighter_thunderbolt_player_mp")
{
var_00 = common_scripts\utility::func_44F5("p47_wing_evap");
}
else if(self.var_1C8 == "ger_fighter_bf109_player_mp")
{
var_00 = common_scripts\utility::func_44F5("bf109_wing_evap");
}
if(isdefined(var_00))
{
playfxontag(var_00,self,self.var_9BDD);
}
}
//Function Number: 19
func_941A()
{
var_00 = undefined;
if(self.var_1C8 == "usa_fighter_thunderbolt_player_mp")
{
var_00 = common_scripts\utility::func_44F5("p47_wing_evap");
}
else if(self.var_1C8 == "ger_fighter_bf109_player_mp")
{
var_00 = common_scripts\utility::func_44F5("bf109_wing_evap");
}
if(isdefined(var_00))
{
stopfxontag(var_00,self,self.var_9BDD);
}
}
//Function Number: 20
func_36EF()
{
self notify("end_wing_evap");
self endon("death");
wait 0.05;
func_941A();
}
//Function Number: 21
func_3F3B()
{
level endon("death");
self endon("end_contrails");
self endon("death");
var_00 = 0;
var_01 = 15;
var_02 = 25;
while(isdefined(self))
{
var_03 = self.var_1D;
var_04 = var_03[0];
var_05 = var_03[2];
var_06 = 0;
if((var_05 > var_01 && var_05 < 360 - var_01) || var_05 < -1 * var_01 && var_05 > -1 * 360 - var_01)
{
var_06 = 1;
}
if((var_04 > var_02 && var_04 < 360 - var_02) || var_04 < -1 * var_02 && var_04 > -1 * 360 - var_02)
{
var_06 = 1;
}
if(var_06 && !var_00)
{
func_720A();
var_00 = 1;
continue;
}
if(!var_06 && var_00)
{
func_93FB();
var_00 = 0;
}
wait 0.05;
}
}
//Function Number: 22
fx_speed_handler()
{
level endon("death");
self endon("death");
var_00 = self method_8251();
if(!isdefined(var_00))
{
return;
}
if(isbot(var_00) || function_01EF(var_00))
{
return;
}
var_01 = 0;
while(isdefined(self))
{
var_02 = var_00 getnormalizedmovement()[0];
if(var_02 >= 0.5)
{
if(!var_01)
{
playfxontagforclients(level.var_611["mp_raid_bomber_speedup"],self,self.var_9BDD,var_00);
var_01 = 1;
}
continue;
}
if(var_01)
{
function_0294(level.var_611["mp_raid_bomber_speedup"],self,self.var_9BDD,var_00);
var_01 = 0;
}
wait 0.05;
}
}
//Function Number: 23
func_3F5D()
{
level endon("death");
self endon("end_wing_evap");
self endon("death");
var_00 = 0;
var_01 = 30;
var_02 = 40;
while(isdefined(self))
{
var_03 = self.var_1D;
var_04 = var_03[2];
var_05 = 0;
if((var_04 > var_01 && var_04 < 360 - var_01) || var_04 < -1 * var_01 && var_04 > -1 * 360 - var_01)
{
var_05 = 1;
}
if(var_05 && !var_00)
{
func_74EE();
var_00 = 1;
continue;
}
if(!var_05 && var_00)
{
func_941A();
var_00 = 0;
}
wait 0.05;
}
}
//Function Number: 24
func_996C()
{
self endon("death");
for(;;)
{
self waittill("veh_collision",var_00,var_01,var_02);
if(!isdefined(var_02) || !isplayer(var_02))
{
if(isdefined(self.var_6703) && !self.var_6703)
{
self notify("veh_collision_except_player");
}
continue;
}
var_03 = 0;
}
}