Files
IL-GSC/IW/PC/ALL/scripts/sp/_anim.gsc
2023-10-27 03:49:01 -04:00

1015 lines
19 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\sp\_anim.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 22
* Decompile Time: 771 ms
* Timestamp: 10/27/2023 12:23:47 AM
*******************************************************************/
//Function Number: 1
func_C0E1(param_00,param_01,param_02,param_03,param_04,param_05)
{
param_00 endon("stop_sequencing_notetracks");
param_00 endon("death");
if(isdefined(param_02))
{
var_06 = param_02;
}
else
{
var_06 = self;
}
var_07 = undefined;
if(isdefined(param_04))
{
var_07 = param_04;
}
else
{
var_07 = param_00.var_1FBB;
}
var_08 = spawnstruct();
var_08.var_53F2 = [];
var_09 = [];
if(isdefined(var_07) && isdefined(level.var_EC8D[var_07]) && isdefined(param_03))
{
if(isdefined(level.var_EC8D[var_07][param_03]))
{
var_09[param_03] = level.var_EC8D[var_07][param_03];
}
if(isdefined(level.var_EC8D[var_07]["any"]))
{
var_09["any"] = level.var_EC8D[var_07]["any"];
}
}
foreach(var_12, var_0B in var_09)
{
foreach(var_0D in level.var_EC8D[var_07][var_12])
{
foreach(var_0F in var_0D)
{
if(isdefined(var_0F["dialog"]))
{
var_08.var_53F2[var_0F["dialog"]] = 1;
}
}
}
}
var_13 = 0;
var_14 = 0;
for(;;)
{
var_08.var_54A9 = 0;
var_15 = undefined;
if(!var_13 && isdefined(var_07) && isdefined(param_03))
{
var_13 = 1;
var_16 = undefined;
var_14 = isdefined(level.var_EC8D[var_07]) && isdefined(level.var_EC8D[var_07][param_03]) && isdefined(level.var_EC8D[var_07][param_03]["start"]);
if(!var_14)
{
continue;
}
var_17 = ["start"];
}
else
{
param_00 waittill(param_01,var_17);
}
if(!isarray(var_17))
{
var_17 = [var_17];
}
scripts\anim\utility::func_13142(param_01,var_17,param_05);
var_18 = undefined;
foreach(var_1A in var_17)
{
func_C0CC(param_00,param_03,var_1A,var_07,var_09,var_06,var_08);
if(var_1A == "end")
{
var_18 = 1;
}
}
if(isdefined(var_18))
{
break;
}
}
}
//Function Number: 2
func_C0CC(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(param_02 == "end")
{
return 1;
}
foreach(var_0C, var_08 in param_04)
{
if(isdefined(level.var_EC8D[param_03][var_0C][param_02]))
{
foreach(var_0A in level.var_EC8D[param_03][var_0C][param_02])
{
func_1ED8(var_0A,param_00,param_06,param_05);
}
}
}
if(param_00 func_C0DB(param_02))
{
return;
}
func_7729(param_00,param_02);
}
//Function Number: 3
func_C0DB(param_00)
{
var_01 = getsubstr(param_00,0,3);
if(var_01 == "ps_")
{
var_02 = getsubstr(param_00,3);
if(isdefined(self.var_1EFF))
{
self thread [[ self.var_1EFF ]](var_02,"j_head",1);
}
else
{
var_03 = strtok(var_02,",");
if(var_03.size < 2)
{
thread scripts\sp\_utility::play_sound_on_tag(var_02,undefined,1);
}
else
{
thread scripts\sp\_utility::play_sound_on_tag(var_03[0],var_03[1],1);
}
}
return 1;
}
if(var_02 == "vo_")
{
var_02 = getsubstr(var_01,3);
if(isdefined(self.var_1EFF))
{
self thread [[ self.var_1EFF ]](var_02,"j_head",1);
}
else if(!issentient(self))
{
thread scripts\sp\_utility::play_sound_on_tag(var_02,"j_head",1,var_02);
}
else
{
self method_824A(var_02,"sounddone",1);
}
return 1;
}
if(var_02 == "sd_")
{
var_02 = getsubstr(var_01,3);
thread scripts\sp\_utility::func_10346(var_02);
return 1;
}
if(var_02 == "sr_")
{
var_02 = getsubstr(var_01,3);
level thread scripts\sp\_utility::func_10350(var_02);
return 1;
}
if(var_02 == "rm_")
{
var_04 = getsubstr(var_01,3);
level.player playrumbleonentity(var_04);
return 1;
}
if(var_04 == "fx_")
{
var_05 = strtok(tolower(var_02),"[]");
var_06 = strtok(getsubstr(var_05[0],3),",() ");
var_07 = [];
if(var_05.size > 1)
{
for(var_08 = 1;var_08 < var_05.size;var_08++)
{
var_09 = strtok(var_05[var_08],",");
if(var_09.size > 1)
{
var_06 = scripts\common\utility::array_add(var_06,(float(var_09[0]),float(var_09[1]),float(var_09[2])));
continue;
}
var_06 = scripts\common\utility::array_add(var_06,var_09[0]);
}
}
if(var_06.size == 2)
{
if(var_06[0] == "exploder")
{
scripts\common\utility::exploder(var_06[1]);
return 1;
}
else if(var_06[0] == "stop_exploder")
{
scripts\sp\_utility::func_10FEC(var_06[1]);
return 1;
}
else
{
playfxontag(level._effect[var_06[0]],self,var_06[1]);
return 1;
}
}
else if(var_06.size == 3)
{
if(var_06[0] == "playfxontag")
{
playfxontag(level._effect[var_06[1]],self,var_06[2]);
return 1;
}
else if(var_06[0] == "stopfxontag")
{
stopfxontag(level._effect[var_06[1]],self,var_06[2]);
return 1;
}
else if(var_06[0] == "killfxontag")
{
killfxontag(level._effect[var_06[1]],self,var_06[2]);
return 1;
}
}
else if(var_06.size == 6)
{
if(var_06[0] == "debris")
{
playfxontag(level._effect[var_06[1]],self,var_06[2]);
self method_8187(var_06[2],var_06[3]);
return 1;
}
}
else if(var_06.size == 11)
{
var_0A = (float(var_06[2]),float(var_06[3]),float(var_06[4]));
var_0B = (float(var_06[5]),float(var_06[6]),float(var_06[7]));
var_0C = (float(var_06[8]),float(var_06[9]),float(var_06[10]));
playfx(level._effect[var_06[1]],var_0A,var_0B,var_0C);
}
}
var_04 = getsubstr(var_02,0,4);
if(var_04 == "psr_")
{
var_02 = getsubstr(var_02,4);
scripts\sp\_utility::func_DBEF(var_04);
return 1;
}
if(var_04 == "pip_")
{
var_02 = getsubstr(var_02,4);
if(isdefined(self.var_1EFF))
{
self thread [[ self.var_1EFF ]](var_04,"j_head",1);
}
else
{
thread scripts\sp\_pip::func_CBA5(var_04);
}
return 1;
}
if(var_04 == "pvo_")
{
var_02 = getsubstr(var_02,4);
thread scripts\sp\_utility::func_1034D(var_04);
return 1;
}
if(var_04 == "fov_")
{
var_0D = strtok(var_02,"_");
var_0E = var_0D[1];
var_0F = 65;
var_10 = undefined;
if(var_0E == "start")
{
var_0F = float(var_0D[2]);
var_10 = float(var_0D[3]);
level.player method_81DE(var_0F,var_10);
}
else
{
var_10 = float(var_0D[2]);
level.player method_81DE(var_0F,var_10);
}
return 1;
}
return 0;
}
//Function Number: 4
func_7729(param_00,param_01)
{
switch(param_01)
{
case "ignoreall true":
param_00.var_180 = 1;
break;
case "ignoreall false":
param_00.var_180 = 0;
break;
case "ignoreme true":
param_00.ignoreme = 1;
break;
case "ignoreme false":
param_00.ignoreme = 0;
break;
case "allowdeath true":
param_00.var_30 = 1;
break;
case "allowdeath false":
param_00.var_30 = 0;
break;
case "follow off":
param_00.var_7245 = 1;
break;
case "follow on":
param_00.var_7245 = 0;
break;
case "lookat_plr_head_on":
param_00 thread scripts\sp\_utility::func_7799(level.player,0.15,0.7);
break;
case "lookat_plr_eyes_on":
param_00 thread scripts\sp\_utility::func_7798(level.player,4,0.1);
break;
case "lookat_plr_off":
param_00 thread scripts\sp\_utility::func_77B9(0.7);
break;
case "lookat_plr_eyes_off":
param_00 thread scripts\sp\_utility::func_7793(0.1);
break;
case "lookat_plr_head_off":
param_00 thread scripts\sp\_utility::func_779E(0.7);
break;
case "bc_vo_start":
param_00 notify("bc_vochat_start");
break;
case "blind_on":
param_00 lib_0F18::func_10E8A("set_blind",1);
break;
case "blind_off":
param_00 lib_0F18::func_10E8A("set_blind",0);
break;
case "helmet_on":
if(!isai(param_00))
{
param_00 thread lib_0E4B::func_8E05();
}
break;
case "helmet_on_visor_up":
if(!isai(param_00))
{
param_00 thread lib_0E4B::func_8E05(1);
}
break;
case "helmet_on_visor_up_no_audio":
if(!isai(param_00))
{
param_00 thread lib_0E4B::func_8E05(1,undefined,1);
}
break;
case "helmet_off":
if(!isai(param_00))
{
param_00 thread lib_0E4B::func_8E02();
}
break;
case "visor_up":
case "visor_raise":
if(!isai(param_00))
{
param_00 thread lib_0E4B::func_1348D();
}
break;
case "visor_down":
case "visor_lower":
if(!isai(param_00))
{
param_00 thread lib_0E4B::func_13485();
}
break;
case "plr_pull_visor_down_activate_lma_normal_and_clear":
thread scripts\sp\_audio::func_25C2();
break;
case "plr_pull_visor_down_activate_lma_fast_and_clear":
thread scripts\sp\_audio::func_25C2(1,"fast");
break;
case "plr_helmet_on_closed_visor_activate_lma_and_clear":
thread scripts\sp\_audio::func_25C0();
break;
case "opsmap_scene_start":
if(isdefined(param_00.var_9A30))
{
param_00 thread lib_0B43::func_CD50(param_00.var_9A30,param_00.var_C6B8);
}
break;
case "opsmap_scene_end":
if(isdefined(param_00.var_9A30))
{
param_00 thread lib_0B43::func_9A0F();
}
break;
case "vr_npc_switch_fire_rate":
param_00 thread lib_0EFB::func_25ED();
break;
}
}
//Function Number: 5
func_1ED8(param_00,param_01,param_02,param_03)
{
if(isdefined(param_00["function"]))
{
self thread [[ param_00["function"] ]](param_01);
}
if(isdefined(param_00["flag"]))
{
scripts\common\utility::flag_set(param_00["flag"]);
}
if(isdefined(param_00["flag_clear"]))
{
scripts\common\utility::func_6E2A(param_00["flag_clear"]);
}
if(isdefined(param_00["notify"]))
{
level notify(param_00["notify"]);
}
if(isdefined(param_00["attach gun left"]))
{
param_01 func_86DE();
return;
}
if(isdefined(param_00["attach gun right"]))
{
param_01 func_86DF();
return;
}
if(isdefined(param_00["detach gun"]))
{
param_01 func_86D5(param_00);
return;
}
if(isdefined(param_00["attach model"]))
{
if(isdefined(param_00["selftag"]))
{
param_01 attach(param_00["attach model"],param_00["selftag"]);
}
else
{
param_03 attach(param_00["attach model"],param_00["tag"]);
}
return;
}
if(isdefined(param_00["detach model"]))
{
if(isdefined(param_00["selftag"]))
{
param_01 detach(param_00["detach model"],param_00["selftag"]);
}
else
{
param_03 detach(param_00["detach model"],param_00["tag"]);
}
}
if(isdefined(param_00["sound"]))
{
var_04 = undefined;
if(!isdefined(param_00["sound_stays_death"]))
{
var_04 = 1;
}
var_05 = undefined;
if(isdefined(param_00["sound_on_tag"]))
{
var_05 = param_00["sound_on_tag"];
}
param_01 thread scripts\sp\_utility::play_sound_on_tag(param_00["sound"],var_05,var_04);
}
if(isdefined(param_00["playersound"]))
{
level.player playsound(param_00["playersound"]);
}
if(isdefined(param_00["playerdialogue"]))
{
level.player thread scripts\sp\_utility::func_1034D(param_00["playerdialogue"]);
}
if(!param_02.var_54A9)
{
if(isdefined(param_00["dialog"]) && isdefined(param_02.var_53F2[param_00["dialog"]]))
{
param_01 scripts\anim\face::func_EB86(param_00["dialog"]);
param_02.var_53F2[param_00["dialog"]] = undefined;
param_02.var_54A9 = 1;
}
}
if(isdefined(param_00["create model"]))
{
func_1E93(param_01,param_00);
}
else if(isdefined(param_00["delete model"]))
{
func_1F1E(param_01,param_00);
}
if(isdefined(param_00["selftag"]))
{
if(isdefined(param_00["effect"]))
{
level thread func_C0C8(param_01,param_00);
}
if(isdefined(param_00["stop_effect"]))
{
stopfxontag(level._effect[param_00["stop_effect"]],param_01,param_00["selftag"]);
}
if(isdefined(param_00["swap_part_to_efx"]))
{
playfxontag(level._effect[param_00["swap_part_to_efx"]],param_01,param_00["selftag"]);
param_01 method_8187(param_00["selftag"]);
}
if(isdefined(param_00["trace_part_for_efx"]))
{
var_06 = undefined;
var_07 = scripts\common\utility::getfx(param_00["trace_part_for_efx"]);
if(isdefined(param_00["trace_part_for_efx_water"]))
{
var_06 = scripts\common\utility::getfx(param_00["trace_part_for_efx_water"]);
}
var_08 = 0;
if(isdefined(param_00["trace_part_for_efx_delete_depth"]))
{
var_08 = param_00["trace_part_for_efx_delete_depth"];
}
param_01 thread func_11A80(param_00["selftag"],var_07,var_06,var_08);
}
if(isdefined(param_00["trace_part_for_efx_canceling"]))
{
param_01 thread func_11A81(param_00["selftag"]);
}
}
if(isdefined(param_00["tag"]) && isdefined(param_00["effect"]))
{
playfxontag(level._effect[param_00["effect"]],param_03,param_00["tag"]);
}
if(isdefined(param_00["selftag"]) && isdefined(param_00["effect_looped"]))
{
playfxontag(level._effect[param_00["effect_looped"]],param_01,param_00["selftag"]);
}
}
//Function Number: 6
func_1E93(param_00,param_01)
{
if(!isdefined(param_00.var_EF84))
{
param_00.var_EF84 = [];
}
var_02 = param_00.var_EF84.size;
param_00.var_EF84[var_02] = spawn("script_model",(0,0,0));
param_00.var_EF84[var_02] setmodel(param_01["create model"]);
param_00.var_EF84[var_02].origin = param_00 gettagorigin(param_01["selftag"]);
param_00.var_EF84[var_02].angles = param_00 gettagangles(param_01["selftag"]);
}
//Function Number: 7
func_1F1E(param_00,param_01)
{
for(var_02 = 0;var_02 < param_00.var_EF84.size;var_02++)
{
if(isdefined(param_01["explosion"]))
{
var_03 = anglestoforward(param_00.var_EF84[var_02].angles);
var_03 = var_03 * 120;
var_03 = var_03 + param_00.var_EF84[var_02].origin;
playfx(level._effect[param_01["explosion"]],param_00.var_EF84[var_02].origin);
radiusdamage(param_00.var_EF84[var_02].origin,350,700,50);
}
param_00.var_EF84[var_02] delete();
}
}
//Function Number: 8
func_86DE()
{
if(!isdefined(self.var_86DB))
{
return;
}
self.var_86DB delete();
self.var_102 = 1;
scripts\anim\shared::func_CC2C(self.var_394,"left");
}
//Function Number: 9
func_86DF()
{
if(!isdefined(self.var_86DB))
{
return;
}
self.var_86DB delete();
self.var_102 = 1;
scripts\anim\shared::func_CC2C(self.var_394,"right");
}
//Function Number: 10
func_86D5(param_00)
{
if(isdefined(self.var_86DB))
{
return;
}
var_01 = self gettagorigin(param_00["tag"]);
var_02 = self gettagangles(param_00["tag"]);
var_03 = 0;
if(isdefined(param_00["suspend"]))
{
var_03 = param_00["suspend"];
}
var_04 = spawn("weapon_" + self.var_394,var_01,var_03);
var_04.angles = var_02;
self.var_86DB = var_04;
scripts\anim\shared::func_CC2C(self.var_394,"none");
self.var_102 = 0;
}
//Function Number: 11
func_C0C8(param_00,param_01)
{
var_02 = isdefined(param_01["moreThanThreeHack"]);
if(var_02)
{
scripts\common\utility::func_AED4("moreThanThreeHack");
}
playfxontag(level._effect[param_01["effect"]],param_00,param_01["selftag"]);
if(var_02)
{
scripts\common\utility::func_12BD1("moreThanThreeHack");
}
}
//Function Number: 12
func_11A81(param_00)
{
self notify("cancel_trace_for_part_" + param_00);
}
//Function Number: 13
func_11A80(param_00,param_01,param_02,param_03)
{
var_04 = "trace_part_for_efx";
self endon("cancel_trace_for_part_" + param_00);
var_05 = self gettagorigin(param_00);
var_06 = 0;
var_07 = spawnstruct();
var_07.var_A8F6 = self gettagorigin(param_00);
var_07.var_9032 = 0;
var_07.var_C909 = param_00;
var_07.var_9034 = 0;
var_07.var_5FDF = param_01;
var_07.var_10E51 = 0;
var_07.var_A8EE = gettime();
while(isdefined(self) && !var_07.var_9032)
{
scripts\common\utility::func_AED4(var_04);
func_1173F(var_07);
scripts\sp\_utility::func_12BDD(var_04);
if(var_07.var_10E51 == 1 && gettime() - var_07.var_A8EE > 3000)
{
return;
}
}
if(!isdefined(self))
{
return;
}
if(isdefined(param_02) && var_07.var_9034)
{
param_01 = param_02;
}
playfx(param_01,var_07.var_A8F6);
if(param_03 == 0)
{
self method_8187(param_00);
return;
}
thread func_8ED1(var_07.var_A8F6[2] - param_03,param_00);
}
//Function Number: 14
func_8ED1(param_00,param_01)
{
self endon("entitydeleted");
while(self gettagorigin(param_01)[2] > param_00)
{
wait(0.05);
}
self method_8187(param_01);
}
//Function Number: 15
func_1173F(param_00)
{
var_01 = undefined;
if(!isdefined(self))
{
return;
}
param_00.var_4B9E = self gettagorigin(param_00.var_C909);
if(param_00.var_4B9E != param_00.var_A8F6)
{
param_00.var_A8EE = gettime();
param_00.var_10E51 = 0;
if(!bullettracepassed(param_00.var_A8F6,param_00.var_4B9E,0,self))
{
var_02 = bullettrace(param_00.var_A8F6,param_00.var_4B9E,0,self);
if(var_02["fraction"] < 1)
{
param_00.var_A8F6 = var_02["position"];
param_00.var_9034 = var_02["surfacetype"] == "water";
param_00.var_9032 = 1;
return;
}
else
{
}
}
}
else
{
param_00.var_10E51 = 1;
}
param_00.var_A8F6 = param_00.var_4B9E;
}
//Function Number: 16
func_1FD5(param_00,param_01)
{
param_01 = tolower(param_01);
var_02 = getarraykeys(self.var_1FDC);
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
var_04 = var_02[var_03];
if(self.var_1FDC[var_04].var_1FAF != param_00)
{
continue;
}
if(self.var_1FDC[var_04].var_C0C2 != param_01)
{
continue;
}
self.var_1FDC[var_04].var_6303 = gettime() + -5536;
return 1;
}
return 0;
}
//Function Number: 17
func_1FDB(param_00,param_01,param_02)
{
param_01 = tolower(param_01);
func_1754();
if(param_01 == "end")
{
return;
}
if(func_1FD5(param_00,param_01))
{
return;
}
var_03 = spawnstruct();
var_03.var_1FAF = param_00;
var_03.var_C0C2 = param_01;
var_03.var_1FBB = param_02;
var_03.var_6303 = gettime() + -5536;
func_1697(var_03);
}
//Function Number: 18
func_1FD8(param_00,param_01)
{
func_1754();
var_02 = spawnstruct();
var_02.var_1FAF = param_00;
var_02.var_C0C2 = "#" + param_00;
var_02.var_1FBB = param_01;
var_02.var_6303 = gettime() + -5536;
if(func_1FD5(param_00,var_02.var_C0C2))
{
return;
}
func_1697(var_02);
}
//Function Number: 19
func_1FD9(param_00,param_01,param_02)
{
func_1754();
param_00 = param_01 + param_00;
var_03 = spawnstruct();
var_03.var_1FAF = param_00;
var_03.var_C0C2 = "#" + param_00;
var_03.var_1FBB = param_02;
var_03.var_6303 = gettime() + -5536;
if(func_1FD5(param_00,var_03.var_C0C2))
{
return;
}
func_1697(var_03);
}
//Function Number: 20
func_1697(param_00)
{
for(var_01 = 0;var_01 < level.var_1FD7;var_01++)
{
if(isdefined(self.var_1FDC[var_01]))
{
continue;
}
self.var_1FDC[var_01] = param_00;
return;
}
var_02 = getarraykeys(self.var_1FDC);
var_03 = var_02[0];
var_04 = self.var_1FDC[var_03].var_6303;
for(var_01 = 1;var_01 < var_02.size;var_01++)
{
var_05 = var_02[var_01];
if(self.var_1FDC[var_05].var_6303 < var_04)
{
var_04 = self.var_1FDC[var_05].var_6303;
var_03 = var_05;
}
}
self.var_1FDC[var_03] = param_00;
}
//Function Number: 21
func_1754()
{
if(!isdefined(self.var_1FDC))
{
self.var_1FDC = [];
}
var_00 = 0;
for(var_01 = 0;var_01 < level.var_1FDC.size;var_01++)
{
if(self == level.var_1FDC[var_01])
{
var_00 = 1;
break;
}
}
if(!var_00)
{
level.var_1FDC[level.var_1FDC.size] = self;
}
}
//Function Number: 22
func_6A85(param_00,param_01,param_02)
{
self endon(param_02);
param_00 endon("death");
param_00 endon("stop_loop");
param_00 endon("scripted_face_done");
for(;;)
{
self waittill(param_01,var_03);
foreach(var_05 in var_03)
{
var_06 = getsubstr(var_05,0,3);
if(var_06 == "vo_")
{
var_07 = getsubstr(var_05,3);
if(!issentient(self))
{
thread scripts\sp\_utility::play_sound_on_tag(var_07,"j_head",1,var_07);
}
else
{
self method_824A(var_07,"face_sounddone",1);
}
continue;
}
if(var_06 == "pvo")
{
var_07 = getsubstr(var_05,4);
thread scripts\sp\_utility::func_1034D(var_07);
}
}
}
}