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

668 lines
14 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\traverse\shared.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 21
* Decompile Time: 922 ms
* Timestamp: 10/26/2023 11:59:41 PM
*******************************************************************/
//Function Number: 1
func_18D1(param_00,param_01)
{
self.var_5270 = "crouch";
scripts\anim\utility::func_12E5F();
self endon("killanimscript");
self method_83C4("nogravity");
self method_83C4("noclip");
var_02 = self method_8148();
self method_8221("face angle",var_02.angles[1]);
var_02.var_126D4 = var_02.origin[2] + var_02.var_126D5;
var_03 = var_02.var_126D4 - var_02.origin[2];
thread func_11661(var_03 - param_01);
var_04 = 0.15;
self method_806F(%body,var_04);
self method_82E4("traverse",param_00,%root,1,var_04,1);
var_05 = 0.2;
var_06 = 0.2;
thread scripts\anim\notetracks::func_592D("traverse","no clear");
if(!animhasnotetrack(param_00,"gravity on"))
{
var_07 = 1.23;
wait(var_07 - var_05);
self method_83C4("gravity");
wait(var_05);
return;
}
self waittillmatch("gravity on","traverse");
self method_83C4("gravity");
if(!animhasnotetrack(param_00,"blend"))
{
wait(var_05);
return;
}
self waittillmatch("blend","traverse");
}
//Function Number: 2
func_11661(param_00)
{
self endon("killanimscript");
self notify("endTeleportThread");
self endon("endTeleportThread");
var_01 = 5;
var_02 = (0,0,param_00 / var_01);
for(var_03 = 0;var_03 < var_01;var_03++)
{
self method_80F1(self.origin + var_02);
wait(0.05);
}
}
//Function Number: 3
func_11662(param_00,param_01,param_02,param_03)
{
self endon("killanimscript");
self notify("endTeleportThread");
self endon("endTeleportThread");
if(param_00 == 0 || param_02 <= 0)
{
return;
}
if(param_01 > 0)
{
wait(param_01);
}
var_04 = (0,0,param_00 / param_02);
if(isdefined(param_03) && param_03 < 1)
{
self method_82E3("traverseAnim",self.var_126DB,self.var_126DD,1,0.2,param_03);
}
for(var_05 = 0;var_05 < param_02;var_05++)
{
self method_80F1(self.origin + var_04);
wait(0.05);
}
if(isdefined(param_03) && param_03 < 1)
{
self method_82E3("traverseAnim",self.var_126DB,self.var_126DD,1,0.2,1);
}
}
//Function Number: 4
func_5AC3(param_00)
{
self endon("killanimscript");
var_01 = getdvarint("ai_iw7",0) != 0;
self.var_5270 = "stand";
scripts\anim\utility::func_12E5F();
var_02 = self method_8148();
var_02.var_126D4 = var_02.origin[2];
if(isdefined(var_02.var_126D5))
{
var_02.var_126D4 = var_02.var_126D4 + var_02.var_126D5;
}
var_03 = self method_8145();
self method_8221("face angle",var_02.angles[1]);
self.var_126E6 = param_00["traverseHeight"];
self.var_126EB = var_02;
var_04 = param_00["traverseAnim"];
var_05 = param_00["traverseToCoverAnim"];
if(var_01)
{
self method_8016("noclip");
}
else
{
self method_83C4("nogravity");
self method_83C4("noclip");
}
self.var_126EC = self.origin[2];
if(!animhasnotetrack(var_04,"traverse_align"))
{
func_89F5();
}
var_06 = 0;
if(isdefined(var_05) && isdefined(self.var_205) && self.var_205.type == param_00["coverType"] && distancesquared(self.var_205.origin,var_03.origin) < 625)
{
if(scripts\common\utility::func_152F(self.var_205.angles[1] - var_03.angles[1]) > 160)
{
var_06 = 1;
var_04 = var_05;
}
}
if(var_06)
{
if(isdefined(param_00["traverseToCoverSound"]))
{
thread scripts\sp\_utility::func_CE2F(param_00["traverseToCoverSound"]);
}
}
else if(isdefined(param_00["traverseSound"]))
{
thread scripts\sp\_utility::func_CE2F(param_00["traverseSound"]);
}
var_07 = undefined;
if(var_01)
{
var_07 = lib_0A1E::func_2339();
}
else
{
var_07 = %body;
}
self.var_126DB = var_04;
self.var_126DD = var_07;
self method_82E4("traverseAnim",var_04,var_07,1,0.2,1);
self.var_126E3 = 0;
self.var_126E2 = param_00["interruptDeathAnim"];
scripts\anim\shared::func_592B("traverseAnim",::func_89F8);
if(var_01)
{
self method_8016("gravity");
}
else
{
self method_83C4("gravity");
}
if(self.var_EB)
{
if(var_01)
{
self notify("external_traverse_complete");
}
return;
}
self.var_1491.var_C043 = 0;
if(var_06 && isdefined(self.var_205) && distancesquared(self.origin,self.var_205.origin) < 256)
{
self.var_1491.var_BCC8 = "stop";
self method_83B9(self.var_205.origin);
}
else if(isdefined(param_00["traverseStopsAtEnd"]))
{
self.var_1491.var_BCC8 = "stop";
}
else
{
self.var_1491.var_BCC8 = "run";
self method_806F(var_04,0.2);
}
self.var_126DD = undefined;
self.var_126DB = undefined;
self.var_4E2A = undefined;
self.var_126EB = undefined;
if(var_01)
{
self notify("external_traverse_complete");
}
}
//Function Number: 5
func_89F8(param_00)
{
if(param_00 == "traverse_death")
{
return func_89F6();
}
if(param_00 == "traverse_align")
{
return func_89F5();
}
if(param_00 == "traverse_drop")
{
return func_89F7();
}
}
//Function Number: 6
func_89F6()
{
if(isdefined(self.var_126E2))
{
var_00 = self.var_126E2[self.var_126E3];
self.var_4E2A = var_00[randomint(var_00.size)];
self.var_126E3++;
}
}
//Function Number: 7
func_89F5()
{
if(getdvarint("ai_iw7",0) != 0)
{
self method_8016("noclip");
}
else
{
self method_83C4("nogravity");
self method_83C4("noclip");
}
if(isdefined(self.var_126E6) && isdefined(self.var_126EB.var_126D4))
{
var_00 = self.var_126EB.var_126D4 - self.var_126EC;
thread func_11661(var_00 - self.var_126E6);
}
}
//Function Number: 8
func_89F7()
{
var_00 = self.origin + (0,0,32);
var_01 = physicstrace(var_00,self.origin + (0,0,-512));
var_02 = distance(var_00,var_01);
var_03 = var_02 - 32 - 0.5;
var_04 = self method_8102(self.var_126DB);
var_05 = getmovedelta(self.var_126DB,var_04,1);
var_06 = getanimlength(self.var_126DB);
var_07 = 0 - var_05[2];
var_08 = var_07 - var_03;
if(var_07 < var_03)
{
var_09 = var_07 / var_03;
}
else
{
var_09 = 1;
}
var_0A = var_06 - var_04 / 3;
var_0B = ceil(var_0A * 20);
thread func_11662(var_08,0,var_0B,var_09);
thread func_6CE5(var_01[2]);
}
//Function Number: 9
func_6CE5(param_00)
{
self endon("killanimscript");
param_00 = param_00 + 4;
for(;;)
{
if(self.origin[2] < param_00)
{
if(getdvarint("ai_iw7",0) != 0)
{
self method_8016("gravity");
}
else
{
self method_83C4("gravity");
}
break;
}
wait(0.05);
}
}
//Function Number: 10
func_593C()
{
self method_8016("zonly_physics");
self waittill("killanimscript");
}
//Function Number: 11
func_5864(param_00)
{
var_01 = undefined;
var_02 = 0;
var_03 = 0;
if(param_00 == "traverse_jump_start")
{
var_02 = 1;
var_04 = getnotetracktimes(self.var_126DB,"traverse_align");
if(var_04.size > 0)
{
var_01 = var_04;
}
else
{
var_01 = getnotetracktimes(self.var_126DB,"traverse_jump_end");
var_03 = 1;
}
}
else if(param_00 == "gravity on")
{
var_02 = 1;
var_01 = getnotetracktimes(self.var_126DB,"traverse_jump_end");
var_03 = 1;
}
if(var_02)
{
var_05 = getnotetracktimes(self.var_126DB,param_00);
var_06 = var_05[0];
var_07 = getmovedelta(self.var_126DB,0,var_05[0]);
var_08 = var_07[2];
var_07 = getmovedelta(self.var_126DB,0,var_01[0]);
var_09 = var_07[2];
var_0A = var_01[0];
var_0B = getanimlength(self.var_126DB);
var_0C = int(var_0A - var_06 * var_0B * 30);
var_0D = max(1,var_0C - 2);
var_0E = var_09 - var_08;
if(var_03)
{
var_07 = getmovedelta(self.var_126DB,0,1);
var_0F = var_07[2] - var_09;
var_10 = self.var_126E4.origin[2] - self.origin[2] - var_0F;
}
else
{
var_11 = self.var_126EB;
var_10 = var_11.var_126D5 - self.origin[2] - var_11.origin[2];
}
thread func_11662(var_10 - var_0E,0,var_0D);
return 1;
}
}
//Function Number: 12
func_586C()
{
self waittill("killanimscript");
self.var_126EB = undefined;
self.var_126E4 = undefined;
}
//Function Number: 13
func_586D(param_00,param_01,param_02)
{
self endon("killanimscript");
self method_83C4("nogravity");
self method_83C4("noclip");
thread func_586C();
var_03 = self method_8148();
self method_8221("face angle",var_03.angles[1]);
if(!isdefined(param_02))
{
var_04 = var_03.var_126D4 - var_03.origin[2];
thread func_11661(var_04 - param_01);
}
self.var_126DB = level.var_58C7[param_00];
self.var_126EB = var_03;
self.var_126E4 = self method_8145();
self method_806F(%body,0.2);
self method_82EA("dog_traverse",self.var_126DB,1,0.2,1);
self.var_BCA6 = "land";
scripts\anim\notetracks::func_5936("dog_traverse",::func_5864);
self.var_BCA6 = undefined;
self.var_126DB = undefined;
}
//Function Number: 14
func_5867(param_00,param_01,param_02,param_03)
{
self endon("killanimscript");
self method_83C4("noclip");
thread func_586C();
var_04 = self method_8148();
var_05 = self method_8145();
self method_8221("face angle",var_04.angles[1]);
if(!isdefined(param_02))
{
param_02 = "jump_down_40";
}
self.var_126DB = level.var_58C7[param_02];
self.var_126DD = %body;
self.var_126EB = var_04;
self.var_126E4 = var_05;
if(!isdefined(param_03))
{
param_03 = 0;
}
if(!param_03)
{
var_06 = var_04.origin[2] - var_05.origin[2];
thread func_11662(40 - var_06,0.1,param_00,param_01);
}
self.var_BCA6 = "land";
self method_806F(%body,0.2);
self method_82EA("traverseAnim",self.var_126DB,1,0.2,1);
if(!param_03)
{
scripts\anim\shared::func_592B("traverseAnim");
}
else
{
scripts\anim\notetracks::func_5936("traverseAnim",::func_5864);
}
self.var_BCA6 = undefined;
self method_83C4("gravity");
self.var_126DD = undefined;
self.var_126DB = undefined;
}
//Function Number: 15
func_5868(param_00,param_01,param_02,param_03)
{
self endon("killanimscript");
self method_83C4("noclip");
thread func_586C();
var_04 = self method_8148();
self method_8221("face angle",var_04.angles[1]);
if(!isdefined(param_02))
{
param_02 = "jump_up_40";
}
self.var_126DB = level.var_58C7[param_02];
self.var_126DD = %body;
self.var_126EB = var_04;
self.var_126E4 = self method_8145();
if(!isdefined(param_03))
{
param_03 = 0;
}
if(!param_03)
{
thread func_11662(param_00 - 40,0.2,param_01);
}
self.var_BCA6 = "land";
self method_806F(%body,0.2);
self method_82EA("traverseAnim",self.var_126DB,1,0.2,1);
if(!param_03)
{
scripts\anim\shared::func_592B("traverseAnim");
}
else
{
scripts\anim\notetracks::func_5936("traverseAnim",::func_5864);
}
self.var_BCA6 = undefined;
self method_83C4("gravity");
self.var_126DB = undefined;
self.var_126DD = undefined;
}
//Function Number: 16
func_5869(param_00,param_01)
{
self endon("killanimscript");
self method_83C4("nogravity");
self method_83C4("noclip");
thread func_586C();
var_02 = self method_8148();
self method_8221("face angle",var_02.angles[1]);
if(!isdefined(var_02.var_126D4))
{
var_02.var_126D4 = var_02.origin[2];
}
var_03 = var_02.var_126D4 - var_02.origin[2];
thread func_11661(var_03 - param_01);
self.var_BCA6 = "land";
self method_806F(%body,0.2);
self method_82E4("dog_traverse",level.var_58C7[param_00],1,0.2,1);
scripts\anim\shared::func_592B("dog_traverse");
self.var_BCA6 = undefined;
}
//Function Number: 17
func_F163()
{
self waittill("killanimscript");
}
//Function Number: 18
func_F9C6()
{
foreach(var_01 in function_00B4("traverse","targetname"))
{
var_01 thread func_126ED();
}
}
//Function Number: 19
func_D999(param_00)
{
self.var_5AE2 = param_00.origin;
self.var_10DCE = self.angles;
if(function_02A6(param_00))
{
param_00 delete();
return;
}
scripts\sp\_utility::func_51D4(param_00);
}
//Function Number: 20
func_D9BD(param_00)
{
var_01 = getent(param_00.target,"targetname");
if(!isdefined(var_01))
{
var_01 = scripts\common\utility::getstruct(param_00.target,"targetname");
}
self.var_138A6 = spawnstruct();
var_03 = param_00;
var_04 = 0;
self.var_138A6.var_10DCE = self.angles;
var_06 = undefined;
while(isdefined(var_03))
{
self.var_138A6.var_C050[var_04] = var_03.origin - self.origin;
var_04++;
var_07 = scripts\common\utility::getstruct(var_03.target,"targetname");
scripts\sp\_utility::func_51D4(var_03);
var_03 = var_07;
self.var_138A6.var_C050[var_04] = var_03.origin - self.origin;
var_04++;
if(isdefined(var_03.target))
{
var_0A = scripts\common\utility::getstruct(var_03.target,"targetname");
}
else
{
var_0A = undefined;
}
scripts\sp\_utility::func_51D4(var_03);
var_03 = var_0A;
if(isdefined(var_03) && isdefined(var_03.var_EF1D))
{
if(var_03.var_EF1D == "wallrun_mantle")
{
self.var_138A6.var_B313 = var_03.origin - self.origin;
if(isdefined(var_03.angles))
{
self.var_138A6.var_B312 = var_03.angles;
}
scripts\sp\_utility::func_51D4(var_03);
break;
}
else if(var_03.var_EF1D == "wallrun_vault")
{
self.var_138A6.var_B313 = var_03.origin - self.origin;
self.var_138A6.var_331A = 1;
scripts\sp\_utility::func_51D4(var_03);
break;
}
}
}
}
//Function Number: 21
func_126ED()
{
var_00 = getent(self.target,"targetname");
if(!isdefined(var_00))
{
var_00 = scripts\common\utility::getstruct(self.target,"targetname");
}
switch(self.var_48)
{
case "wall_run":
func_D9BD(var_00);
break;
case "double_jump_mantle":
case "double_jump_vault":
func_D999(var_00);
break;
case "double_jump":
self.var_10DCE = self.angles;
if(!isdefined(var_00))
{
return;
}
self.var_A4C9 = var_00.origin - self.origin;
self.var_A4C8 = var_00.origin;
break;
case "rail_hop_double_jump_down":
self.var_10DCE = self.angles;
break;
default:
break;
}
self.var_126D4 = var_00.origin[2];
self.var_126D5 = var_00.origin[2] - self.origin[2];
if(function_02A6(var_00))
{
var_00 delete();
return;
}
scripts\sp\_utility::func_51D4(var_00);
}