mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-10 18:27:57 -05:00
1015 lines
19 KiB
Plaintext
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);
|
|
}
|
|
}
|
|
}
|
|
} |