Added AW, BO2, Ghosts, IW, MWR, WW2 Scripts

This commit is contained in:
InfinityLoader
2023-10-27 03:49:01 -04:00
parent d559c1d414
commit fbfff3c275
5072 changed files with 3221958 additions and 0 deletions

View File

@ -0,0 +1,484 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\alien_goon\behaviors.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 24
* Decompile Time: 976 ms
* Timestamp: 10/26/2023 11:58:26 PM
*******************************************************************/
//Function Number: 1
initbehaviors(param_00)
{
setupbehaviorstates();
self.desiredaction = undefined;
self.lastenemyengagetime = 0;
self.myenemy = undefined;
lib_0A1B::func_2968("run");
return level.var_111AE;
}
//Function Number: 2
setupbehaviorstates()
{
scripts\aitypes\dlc4\simple_action::setupsimplebtaction();
scripts\aitypes\dlc4\melee::setupstandmeleebtaction(undefined,::melee_goontick);
scripts\aitypes\dlc4\melee::setupmovingmeleebtaction(undefined,::movingmelee_goontick);
scripts\aitypes\dlc4\alien_jump::setupjumpattackbtaction();
scripts\aitypes\dlc4\bt_action_api::setupbtaction("teleport",::teleport_begin,::teleport_tick,::teleport_end);
scripts\aitypes\dlc4\bt_action_api::setupbtaction("post_attack",::postattack_begin,::postattack_tick,::postattack_end);
}
//Function Number: 3
updateeveryframe(param_00)
{
scripts\aitypes\dlc4\behavior_utils::func_12E8A();
return level.var_6AD5;
}
//Function Number: 4
teleport_begin(param_00)
{
scripts\aitypes\dlc4\behavior_utils::facepoint(self.var_AAFD);
self.var_1198.jumpdestinationpos = self.var_AAFD;
self.var_1198.jumpdestinationangles = vectortoangles(self.var_AAFD - self.origin * (1,1,0));
self.var_1198.jumpnextpos = undefined;
scripts\asm\dlc4\dlc4_asm::setasmaction("jump");
scripts\aitypes\dlc4\bt_state_api::asm_wait_state_setup(param_00,"jump","jump");
scripts\aitypes\dlc4\bt_state_api::btstate_transitionstate(param_00,"jump");
self.bteleporting = 1;
}
//Function Number: 5
teleport_tick(param_00)
{
if(scripts\aitypes\dlc4\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
self method_841F();
return level.var_111AE;
}
//Function Number: 6
teleport_end(param_00)
{
var_01 = scripts\asm\dlc4\dlc4_asm::gettunedata();
self.nextjumpattack = gettime() + var_01.jump_attack_min_interval;
self.var_1198.jumpdestinationpos = undefined;
scripts\asm\dlc4\dlc4_asm::clearasmaction();
self.bteleporting = undefined;
}
//Function Number: 7
melee_goontick(param_00)
{
var_01 = scripts\aitypes\dlc4\melee::melee_tick(param_00);
if(var_01 == level.var_6AD5)
{
scripts\aitypes\dlc4\bt_action_api::setdesiredbtaction(param_00,"post_attack");
}
return var_01;
}
//Function Number: 8
movingmelee_goontick(param_00)
{
var_01 = scripts\aitypes\dlc4\melee::movingmelee_tick(param_00);
if(var_01 == level.var_6AD5)
{
scripts\aitypes\dlc4\bt_action_api::setdesiredbtaction(param_00,"post_attack");
}
return var_01;
}
//Function Number: 9
postattack_begin(param_00)
{
var_01 = scripts\asm\dlc4\dlc4_asm::gettunedata();
var_02 = scripts\aitypes\dlc4\bt_state_api::btstate_getinstancedata(param_00);
var_02.postattackendtime = gettime() + var_01.min_time_between_melee_attacks_ms;
var_03 = scripts\asm\dlc4\dlc4_asm::getenemy();
if(!isdefined(var_03))
{
scripts\asm\dlc4\dlc4_asm::setasmaction("taunt");
scripts\aitypes\dlc4\bt_state_api::asm_wait_state_setup(param_00,"taunt","taunt");
scripts\aitypes\dlc4\bt_state_api::btstate_transitionstate(param_00,"taunt");
return;
}
var_04 = vectornormalize(var_03.origin - self.origin * (1,1,0));
var_05 = anglestoforward(self.angles);
var_06 = vectordot(var_04,var_05);
var_07 = distancesquared(var_03.origin,self.origin);
if(var_06 > 0 || var_07 < var_01.post_attack_max_enemy_dist_sq)
{
if(candomanuever("jump_back"))
{
scripts\asm\dlc4\dlc4_asm::setasmaction("jump_back");
scripts\aitypes\dlc4\bt_state_api::asm_wait_state_setup(param_00,"jump_back","jump_back");
scripts\aitypes\dlc4\bt_state_api::btstate_transitionstate(param_00,"jump_back");
return;
}
if(candomanuever("slide_left"))
{
scripts\asm\dlc4\dlc4_asm::setasmaction("slide_left");
scripts\aitypes\dlc4\bt_state_api::asm_wait_state_setup(param_00,"slide_left","slide_left");
scripts\aitypes\dlc4\bt_state_api::btstate_transitionstate(param_00,"slide_left");
return;
}
if(candomanuever("slide_right"))
{
scripts\asm\dlc4\dlc4_asm::setasmaction("slide_right");
scripts\aitypes\dlc4\bt_state_api::asm_wait_state_setup(param_00,"slide_right","slide_right");
scripts\aitypes\dlc4\bt_state_api::btstate_transitionstate(param_00,"slide_right");
return;
}
}
if(randomint(100) < var_01.post_attack_taunt_chance)
{
scripts\asm\dlc4\dlc4_asm::setasmaction("taunt");
scripts\aitypes\dlc4\bt_state_api::asm_wait_state_setup(param_00,"taunt","taunt");
scripts\aitypes\dlc4\bt_state_api::btstate_transitionstate(param_00,"taunt");
}
}
//Function Number: 10
postattack_tick(param_00)
{
if(scripts\aitypes\dlc4\bt_state_api::btstate_tickstates(param_00))
{
return level.runing;
}
var_01 = scripts\asm\dlc4\dlc4_asm::getenemy();
if(!isdefined(var_01))
{
return level.var_6AD5;
}
scripts\aitypes\dlc4\behavior_utils::facepoint(var_01.origin);
var_02 = scripts\aitypes\dlc4\bt_state_api::btstate_getinstancedata(param_00);
if(gettime() < var_02.postattackendtime)
{
return level.var_E87A;
}
return level.var_111AE;
}
//Function Number: 11
postattack_end(param_00)
{
var_01 = scripts\aitypes\dlc4\bt_state_api::btstate_getinstancedata(param_00);
var_01.postattackendtime = undefined;
}
//Function Number: 12
candomanuever(param_00)
{
var_01 = self method_80FD(param_00,0);
var_02 = getmovedelta(var_01,0,1);
var_03 = self method_81E7(var_02);
if(!lib_0F74::func_38D1(self.origin,var_03))
{
return 0;
}
return 1;
}
//Function Number: 13
decideaction(param_00)
{
if(isdefined(self.desiredaction))
{
return level.var_111AE;
}
if(isdefined(self.nextaction))
{
scripts\aitypes\dlc4\bt_action_api::setdesiredbtaction(param_00,self.nextaction);
self.nextaction = undefined;
return level.var_111AE;
}
var_01 = scripts\asm\dlc4\dlc4_asm::getenemy();
if(!isdefined(var_01))
{
return level.var_6AD5;
}
var_02 = gettime();
if(self method_805F(var_01))
{
if(scripts\aitypes\dlc4\melee::trymeleeattacks(param_00))
{
self.lastenemyengagetime = var_02;
return level.var_111AE;
}
if(scripts\aitypes\dlc4\alien_jump::tryjumpattack(param_00,var_01))
{
return level.var_111AE;
}
}
else
{
var_03 = scripts\asm\dlc4\dlc4_asm::gettunedata();
var_04 = distancesquared(var_01.origin,self.origin);
if(var_04 <= var_03.stand_melee_dist_sq)
{
if(scripts\aitypes\dlc4\melee::trymeleeattacks(param_00))
{
self.lastenemyengagetime = var_02;
return level.var_111AE;
}
}
}
return level.var_6AD5;
}
//Function Number: 14
getdodgemovescale(param_00,param_01)
{
var_02 = scripts\asm\dlc4\dlc4_asm::gettunedata();
var_03 = lib_0A1A::func_2358(param_00,param_01);
var_04 = self method_80FD(param_00,var_03);
var_05 = scripts\mp\agents\_scriptedagents::func_80FE(var_04);
if(var_05 < var_02.min_dodge_scale)
{
return undefined;
}
if(var_05 > var_02.max_dodge_scale)
{
return var_02.max_dodge_scale;
}
return var_05;
}
//Function Number: 15
updatestumble(param_00)
{
if(!isdefined(self.damageaccumulator))
{
return 0;
}
if(isdefined(self.var_1198.requested_dodge_dir))
{
return 0;
}
if(!isdefined(self.damageaccumulator.var_A96A) || gettime() > self.damageaccumulator.var_A96A + 1000)
{
self.damageaccumulator.accumulateddamage = 0;
self.damageaccumulator.var_A96A = 0;
}
var_01 = scripts\asm\dlc4\dlc4_asm::gettunedata();
if(isdefined(self.nextstumbletime) && gettime() < self.nextstumbletime)
{
return 0;
}
if(self.damageaccumulator.accumulateddamage < self.maxhealth * var_01.stumble_damage_pct)
{
return 0;
}
if(randomint(100) < var_01.stumble_chance)
{
func_5AB8(param_00);
return 1;
}
self.damageaccumulator.accumulateddamage = 0;
self.damageaccumulator.var_A96A = 0;
return 0;
}
//Function Number: 16
updatedodge(param_00)
{
var_01 = gettime();
if(isdefined(self.var_1198.requested_dodge_dir))
{
if(self.lastdodgetime - var_01 > 150)
{
self.var_1198.requested_dodge_dir = undefined;
}
else
{
return 0;
}
}
if(!isdefined(self.var_233))
{
return 0;
}
if(!isdefined(self.lastwhizbytime))
{
return 0;
}
if(self.lastwhizbytime == var_01)
{
return 0;
}
var_02 = scripts\asm\dlc4\dlc4_asm::gettunedata();
if(var_01 - self.lastwhizbytime > 100)
{
self.lastwhizbytime = undefined;
return 0;
}
if(isdefined(self.lastdodgechecktime) && var_01 - self.lastdodgechecktime < var_02.min_dodge_test_interval_ms)
{
return 0;
}
if(isdefined(self.lastdodgetime) && var_01 < self.lastdodgetime + var_02.min_dodge_interval_ms)
{
return 0;
}
self.lastdodgechecktime = var_01;
var_03 = randomint(100);
if(var_03 < var_02.dodge_chance)
{
var_04 = distancesquared(self.var_233,self.origin);
if(var_04 < var_02.min_enemy_dist_to_dodge_sq)
{
return 0;
}
self.lastdodgetime = gettime();
var_05 = undefined;
if(scripts\common\utility::func_4347())
{
var_06 = "left";
var_05 = getdodgemovescale("run_dodge",var_06);
if(!isdefined(var_05))
{
var_06 = "right";
var_05 = getdodgemovescale("run_dodge",var_06);
}
}
else
{
var_06 = "right";
var_05 = getdodgemovescale("run_dodge",var_06);
if(!isdefined(var_05))
{
var_06 = "left";
var_05 = getdodgemovescale("run_dodge",var_06);
}
}
if(isdefined(var_05))
{
self.var_1198.requested_dodge_dir = var_06;
self.var_1198.requested_dodge_scale = var_05;
return 1;
}
}
self.lastwhizbytime = undefined;
return 0;
}
//Function Number: 17
followenemy_begin(param_00)
{
self.var_3135.var_9928[param_00] = spawnstruct();
}
//Function Number: 18
followenemy_tick(param_00)
{
var_01 = scripts\asm\dlc4\dlc4_asm::getenemy();
if(!isdefined(var_01))
{
return level.var_6AD5;
}
if(!updatestumble(param_00))
{
updatedodge(param_00);
}
var_02 = scripts\asm\dlc4\dlc4_asm::gettunedata();
var_03 = getclosestpointonnavmesh(var_01.origin,self);
var_04 = distancesquared(var_03,self.origin);
if(var_04 > var_02.stand_melee_dist_sq)
{
self method_8286(var_03);
if(!self method_805F(var_01))
{
if(!isdefined(self.var_233))
{
scripts\aitypes\dlc4\behavior_utils::facepoint(var_01.origin);
}
return level.var_E87A;
}
}
else
{
scripts\aitypes\dlc4\behavior_utils::facepoint(var_01.origin);
}
return level.var_111AE;
}
//Function Number: 19
followenemy_end(param_00)
{
self.var_3135.var_9928[param_00] = undefined;
}
//Function Number: 20
jumpback(param_00)
{
scripts\aitypes\dlc4\simple_action::dosimpleaction_immediate(param_00,"jump_back");
}
//Function Number: 21
slideleft(param_00)
{
scripts\aitypes\dlc4\simple_action::dosimpleaction_immediate(param_00,"slide_left");
}
//Function Number: 22
slideright(param_00)
{
scripts\aitypes\dlc4\simple_action::dosimpleaction_immediate(param_00,"slide_right");
}
//Function Number: 23
taunt(param_00)
{
scripts\aitypes\dlc4\simple_action::dosimpleaction_immediate(param_00,"taunt");
}
//Function Number: 24
func_5AB8(param_00)
{
var_01 = scripts\asm\dlc4\dlc4_asm::gettunedata();
self.nextstumbletime = gettime() + var_01.stumble_interval_ms;
scripts\aitypes\dlc4\simple_action::dosimpleaction_immediate(param_00,"stumble");
}

View File

@ -0,0 +1,321 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\alien_rhino\behaviors.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 16
* Decompile Time: 680 ms
* Timestamp: 10/26/2023 11:58:27 PM
*******************************************************************/
//Function Number: 1
initbehaviors(param_00)
{
setupbehaviorstates();
self.desiredaction = undefined;
self.lastenemyengagetime = 0;
self.myenemy = undefined;
lib_0A1B::func_2968("run");
return level.var_111AE;
}
//Function Number: 2
setupbehaviorstates()
{
scripts\aitypes\dlc4\simple_action::setupsimplebtaction();
scripts\aitypes\dlc4\melee::setupstandmeleebtaction();
scripts\aitypes\dlc4\melee::setupmovingmeleebtaction();
scripts\aitypes\dlc4\alien_jump::setupjumpattackbtaction();
scripts\aitypes\dlc4\bt_action_api::setupbtaction("charge",::charge_begin,::charge_tick,::charge_end);
}
//Function Number: 3
updateeveryframe(param_00)
{
scripts\aitypes\dlc4\behavior_utils::func_12E8A();
return level.var_6AD5;
}
//Function Number: 4
charge_begin(param_00)
{
scripts\asm\dlc4\dlc4_asm::setasmaction("charge");
var_01 = scripts\asm\dlc4\dlc4_asm::gettunedata();
var_02 = scripts\asm\dlc4\dlc4_asm::getenemy();
self.var_4B26 = var_02;
self.bchargeaborted = undefined;
scripts\aitypes\dlc4\bt_state_api::asm_wait_state_setup(param_00,"charge_intro","charge_intro",::charge_introdone);
scripts\aitypes\dlc4\bt_state_api::btstate_transitionstate(param_00,"charge_intro");
}
//Function Number: 5
charge_tick(param_00)
{
if(!isdefined(self.var_4B26) || scripts\aitypes\dlc4\behavior_utils::shouldignoreenemy(self.var_4B26))
{
return level.var_6AD5;
}
if(scripts\common\utility::istrue(self.bchargeaborted))
{
return level.var_6AD5;
}
var_01 = getclosestpointonnavmesh(self.var_4B26.origin);
self method_8286(var_01);
if(scripts\aitypes\dlc4\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
return level.var_111AE;
}
//Function Number: 6
charge_end(param_00)
{
scripts\asm\dlc4\dlc4_asm::clearasmaction();
self.var_4B26 = undefined;
self.bchargehit = undefined;
self.desiredyaw = undefined;
self.bchargeaborted = undefined;
self.var_1198.chargeintroindex = undefined;
self method_841F();
var_01 = scripts\asm\dlc4\dlc4_asm::gettunedata();
self.nextchargeattacktesttime = gettime() + randomintrange(var_01.min_charge_attack_interval_ms,var_01.max_charge_attack_interval_ms);
}
//Function Number: 7
charge_introdone(param_00,param_01)
{
var_02 = scripts\asm\dlc4\dlc4_asm::gettunedata();
scripts\aitypes\dlc4\bt_state_api::asm_wait_state_setup(param_00,"charging","charge_loop",::charge_movedone,undefined,var_02.max_charge_time_ms);
scripts\aitypes\dlc4\bt_state_api::btstate_transitionstate(param_00,"charging");
return 1;
}
//Function Number: 8
charge_movedone(param_00,param_01)
{
scripts\asm\dlc4\dlc4_asm::clearasmaction();
scripts\aitypes\dlc4\bt_state_api::asm_wait_state_setup(param_00,"charge_end","charge_outro",::charge_enddone);
scripts\aitypes\dlc4\bt_state_api::btstate_transitionstate(param_00,"charge_end");
return 1;
}
//Function Number: 9
charge_enddone(param_00,param_01)
{
return 0;
}
//Function Number: 10
trycharge(param_00,param_01,param_02)
{
if(!scripts\common\utility::istrue(param_02))
{
if(isdefined(self.nextchargeattacktesttime) && gettime() < self.nextchargeattacktesttime)
{
return 0;
}
}
var_03 = scripts\asm\dlc4\dlc4_asm::gettunedata();
var_04 = scripts\asm\dlc4\dlc4_asm::getenemy();
if(!isdefined(var_04))
{
return 0;
}
if(!isdefined(param_01))
{
param_01 = distancesquared(var_04.origin,self.origin);
}
if(param_01 < var_03.charge_attack_mindist_sq)
{
return 0;
}
if(param_01 > var_03.charge_attack_maxdist_sq)
{
return 0;
}
self.nextchargeattacktesttime = gettime() + 2000;
var_05 = randomint(var_03.chargeintroanimtimes.size);
var_06 = scripts\aitypes\dlc4\behavior_utils::getpredictedenemypos(var_04,var_03.chargeintroanimtimes[var_05] * 0.7);
var_07 = anglestoforward(self.angles);
var_08 = var_06 - self.origin;
var_07 = (var_07[0],var_07[1],0);
var_08 = vectornormalize((var_08[0],var_08[1],0));
var_09 = vectordot(var_07,var_08);
if(var_09 < 0.707)
{
return 0;
}
if(!navisstraightlinereachable(self.origin,var_06,self))
{
self.nextchargeattacktesttime = gettime() + 500;
return 0;
}
self.var_1198.chargeintroindex = var_05;
scripts\aitypes\dlc4\bt_action_api::setdesiredbtaction(param_00,"charge");
return 1;
}
//Function Number: 11
taunt(param_00)
{
scripts\aitypes\dlc4\simple_action::dosimpleaction_immediate(param_00,"taunt");
}
//Function Number: 12
trytaunt(param_00)
{
var_01 = scripts\asm\dlc4\dlc4_asm::getenemy();
if(!isdefined(var_01))
{
return 0;
}
var_02 = scripts\asm\dlc4\dlc4_asm::gettunedata();
var_03 = gettime();
if(!isdefined(self.nexttaunttime))
{
self.nexttaunttime = var_03 + var_02.initial_taunt_wait_time_ms;
return 0;
}
if(var_03 < self.nexttaunttime)
{
return 0;
}
var_04 = distancesquared(self.origin,var_01.origin);
if(var_04 < var_02.taunt_min_dist_to_enemy_sq)
{
self.nexttaunttime = var_03 + 1000;
return 0;
}
if(var_04 > var_02.taunt_max_dist_to_enemy_sq)
{
self.nexttaunttime = var_03 + 1000;
return 0;
}
self.nexttaunttime = var_03 + randomintrange(var_02.min_time_between_taunts_ms,var_02.max_time_between_taunts_ms);
var_05 = randomint(var_02.taunt_chance);
if(var_05 < var_02.taunt_chance)
{
taunt(param_00);
return 1;
}
return 0;
}
//Function Number: 13
decideaction(param_00)
{
if(isdefined(self.desiredaction))
{
return level.var_111AE;
}
if(isdefined(self.nextaction))
{
scripts\aitypes\dlc4\bt_action_api::setdesiredbtaction(param_00,self.nextaction);
self.nextaction = undefined;
return level.var_111AE;
}
var_01 = scripts\asm\dlc4\dlc4_asm::getenemy();
if(!isdefined(var_01))
{
return level.var_6AD5;
}
var_02 = gettime();
if(self method_805F(var_01))
{
if(scripts\aitypes\dlc4\melee::trymeleeattacks(param_00))
{
self.lastenemyengagetime = var_02;
return level.var_111AE;
}
if(trycharge(param_00))
{
return level.var_111AE;
}
if(trytaunt(param_00))
{
return level.var_111AE;
}
}
else
{
var_03 = scripts\asm\dlc4\dlc4_asm::gettunedata();
var_04 = distancesquared(var_01.origin,self.origin);
if(var_04 <= var_03.stand_melee_dist_sq)
{
if(scripts\aitypes\dlc4\melee::trymeleeattacks(param_00))
{
self.lastenemyengagetime = var_02;
return level.var_111AE;
}
}
}
return level.var_6AD5;
}
//Function Number: 14
followenemy_begin(param_00)
{
self.var_3135.var_9928[param_00] = spawnstruct();
}
//Function Number: 15
followenemy_tick(param_00)
{
var_01 = scripts\asm\dlc4\dlc4_asm::getenemy();
if(!isdefined(var_01))
{
return level.var_6AD5;
}
var_02 = scripts\asm\dlc4\dlc4_asm::gettunedata();
var_03 = getclosestpointonnavmesh(var_01.origin,self);
var_04 = distancesquared(var_03,self.origin);
if(var_04 > var_02.stand_melee_dist_sq)
{
self method_8286(var_03);
if(!self method_805F(var_01))
{
if(!isdefined(self.var_233))
{
scripts\aitypes\dlc4\behavior_utils::facepoint(var_01.origin);
}
return level.var_E87A;
}
}
else
{
scripts\aitypes\dlc4\behavior_utils::facepoint(var_01.origin);
}
return level.var_111AE;
}
//Function Number: 16
followenemy_end(param_00)
{
self.var_3135.var_9928[param_00] = undefined;
}

View File

@ -0,0 +1,773 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\crab_boss\behaviors.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 69
* Decompile Time: 2735 ms
* Timestamp: 10/26/2023 11:58:30 PM
*******************************************************************/
//Function Number: 1
initbehaviors(param_00)
{
setupbehaviorstates();
self.desiredaction = undefined;
self.lastenemyengagetime = 0;
self.myenemy = undefined;
return level.var_111AE;
}
//Function Number: 2
setupbehaviorstates()
{
scripts\aitypes\dlc3\bt_action_api::setupbtaction("simple_action",::simpleaction_begin,::simpleaction_tick,::simpleaction_end);
scripts\aitypes\dlc3\bt_action_api::setupbtaction("boss_movement",::move_begin,::move_tick,::move_end);
scripts\aitypes\dlc3\bt_action_api::setupbtaction("heal",::heal_begin,::heal_tick,::heal_end);
scripts\aitypes\dlc3\bt_action_api::setupbtaction("beam",::beam_begin,::beam_tick,::func_2A1D);
scripts\aitypes\dlc3\bt_action_api::setupbtaction("roar",::roar_begin,::roar_tick,::roar_end);
scripts\aitypes\dlc3\bt_action_api::setupbtaction("submerge_spawn",::submerge_spawn_begin,::submerge_spawn_tick,::submerge_spawn_end);
scripts\aitypes\dlc3\bt_action_api::setupbtaction("spawn",::spawn_begin,::spawn_tick,::spawn_end);
scripts\aitypes\dlc3\bt_action_api::setupbtaction("bomb",::bomb_begin,::bomb_tick,::bomb_end);
scripts\aitypes\dlc3\bt_action_api::setupbtaction("submerge_bomb",::submerge_bomb_begin,::submerge_bomb_tick,::submerge_bomb_end);
}
//Function Number: 3
updateeveryframe(param_00)
{
self method_841F();
self method_8287(9999999);
return level.var_6AD5;
}
//Function Number: 4
simpleaction_begin(param_00)
{
scripts\asm\crab_boss\crab_boss_asm::setaction(self.simple_action);
scripts\aitypes\dlc3\bt_state_api::asm_wait_state_setup(param_00,self.simple_action,self.simple_action);
scripts\aitypes\dlc3\bt_state_api::btstate_transitionstate(param_00,self.simple_action);
var_01 = scripts\aitypes\dlc3\bt_state_api::btstate_getinstancedata(param_00);
var_01.simple_action = self.simple_action;
self.simple_action = undefined;
}
//Function Number: 5
simpleaction_tick(param_00)
{
if(scripts\aitypes\dlc3\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
return level.var_111AE;
}
//Function Number: 6
simpleaction_end(param_00)
{
scripts\asm\crab_boss\crab_boss_asm::clearaction();
var_01 = scripts\aitypes\dlc3\bt_state_api::btstate_getinstancedata(param_00);
var_02 = var_01.simple_action;
var_01.simple_action = undefined;
self notify(var_02 + "_done");
}
//Function Number: 7
dosimpleaction_immediate(param_00,param_01)
{
self.simple_action = param_01;
scripts\aitypes\dlc3\bt_action_api::setdesiredaction(param_00,"simple_action");
}
//Function Number: 8
dosimpleaction(param_00,param_01)
{
self.simple_action = param_01;
self.nextaction = "simple_action";
}
//Function Number: 9
facepoint(param_00,param_01)
{
var_02 = scripts\common\utility::func_824D(param_01);
if(abs(var_02) < 16)
{
return 0;
}
self.desiredyaw = var_02;
dosimpleaction_immediate(param_00,"turn");
return 1;
}
//Function Number: 10
initialmovedone(param_00,param_01)
{
scripts\asm\crab_boss\crab_boss_asm::clearaction();
scripts\aitypes\dlc3\bt_state_api::asm_wait_state_setup(param_00,"arrival_wait","move_arrival",::arrivalmovedone,undefined,undefined,1000);
scripts\aitypes\dlc3\bt_state_api::btstate_transitionstate(param_00,"arrival_wait");
return 1;
}
//Function Number: 11
arrivalmovedone(param_00,param_01)
{
return 0;
}
//Function Number: 12
planscaledrouteto(param_00)
{
var_01 = getdesiredmovedirindex(self.origin,param_00);
var_02 = level.crab_boss_exit_data[var_01];
var_03 = level.crab_boss_arrival_data[var_01];
var_04 = level.crab_boss_move_data[var_01];
var_05 = length2d(var_04);
var_06 = distance2d(param_00,self.origin);
var_07 = length2d(var_02) + length2d(var_03);
var_08 = var_06 - var_07;
var_09 = var_08 / var_05;
var_0A = ceil(var_09);
if(var_0A - var_09 < 0.5)
{
var_09 = var_0A;
}
else
{
var_09 = floor(var_09);
}
var_0B = var_05 * var_09;
var_0C = var_07 + var_0B;
self.moveloopscale = var_06 / var_0C;
self.currentmovedirindex = var_01;
self.movedircount = var_09;
}
//Function Number: 13
getyawfrompointtospot(param_00,param_01)
{
var_02 = vectortoyaw(param_01 - param_00);
var_02 = angleclamp180(var_02);
var_02 = var_02 - self.angles[1];
var_02 = angleclamp180(var_02);
return var_02;
}
//Function Number: 14
getdesiredmovedirindex(param_00,param_01)
{
var_02 = getyawfrompointtospot(param_00,param_01);
var_03 = abs(var_02);
if(var_03 <= 22.5)
{
return 8;
}
if(var_03 >= 157.5)
{
return 2;
}
if(var_02 > 0)
{
if(var_02 < 67.5)
{
return 7;
}
if(var_02 < 112.5)
{
return 4;
}
return 1;
}
else
{
if(var_03 < 67.5)
{
return 9;
}
if(var_03 < 112.5)
{
return 6;
}
return 2;
}
return 8;
}
//Function Number: 15
move_begin(param_00)
{
planscaledrouteto(self.desiredbossmovepos);
scripts\asm\crab_boss\crab_boss_asm::setaction("move");
scripts\aitypes\dlc3\bt_state_api::asm_wait_state_setup(param_00,"initial_move","move_loop",::initialmovedone,undefined,undefined,6000);
scripts\aitypes\dlc3\bt_state_api::btstate_transitionstate(param_00,"initial_move");
}
//Function Number: 16
move_tick(param_00)
{
if(scripts\aitypes\dlc3\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
return level.var_111AE;
}
//Function Number: 17
move_end(param_00)
{
self.desiredbossmovepos = undefined;
self.currentmovedirindex = undefined;
self.movedircount = undefined;
self notify("move_complete");
scripts\asm\crab_boss\crab_boss_asm::clearaction();
}
//Function Number: 18
bossmoveto(param_00,param_01)
{
self.desiredbossmovepos = param_01;
facepoint(param_00,param_01);
return 1;
}
//Function Number: 19
bomb_begin(param_00)
{
scripts\asm\crab_boss\crab_boss_asm::setaction("bomb");
}
//Function Number: 20
bomb_tick(param_00)
{
if(self.numofspawnrequested > 0)
{
return level.var_E87A;
}
return level.var_111AE;
}
//Function Number: 21
bomb_end(param_00)
{
self.spawnposarray = undefined;
scripts\asm\crab_boss\crab_boss_asm::clearaction();
self notify("bomb_complete");
}
//Function Number: 22
spawn_begin(param_00)
{
scripts\asm\crab_boss\crab_boss_asm::setaction("spawn");
}
//Function Number: 23
spawn_tick(param_00)
{
if(self.numofspawnrequested > 0)
{
return level.var_E87A;
}
return level.var_111AE;
}
//Function Number: 24
spawn_end(param_00)
{
self.spawnposarray = undefined;
scripts\asm\crab_boss\crab_boss_asm::clearaction();
self notify("spawn_complete");
}
//Function Number: 25
submerge_spawn_begin(param_00)
{
scripts\asm\crab_boss\crab_boss_asm::setaction("submerge_spawn");
}
//Function Number: 26
submerge_spawn_tick(param_00)
{
if(self.numofspawnrequested > 0)
{
return level.var_E87A;
}
return level.var_111AE;
}
//Function Number: 27
submerge_spawn_end(param_00)
{
self.spawnposarray = undefined;
scripts\asm\crab_boss\crab_boss_asm::clearaction();
self notify("submerge_spawn_complete");
}
//Function Number: 28
submerge_bomb_begin(param_00)
{
scripts\asm\crab_boss\crab_boss_asm::setaction("submerge_bomb");
}
//Function Number: 29
submerge_bomb_tick(param_00)
{
if(self.numofbombrequested > 0)
{
return level.var_E87A;
}
return level.var_111AE;
}
//Function Number: 30
submerge_bomb_end(param_00)
{
self.bombposarray = undefined;
scripts\asm\crab_boss\crab_boss_asm::clearaction();
self notify("submerge_bomb_complete");
}
//Function Number: 31
heal_begin(param_00)
{
scripts\asm\crab_boss\crab_boss_asm::setaction("heal");
scripts\aitypes\dlc3\bt_state_api::asm_wait_state_setup(param_00,"heal","heal_loop",undefined,undefined,undefined,3000);
scripts\aitypes\dlc3\bt_state_api::btstate_transitionstate(param_00,"heal");
}
//Function Number: 32
heal_tick(param_00)
{
if(scripts\aitypes\dlc3\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
return level.var_111AE;
}
//Function Number: 33
heal_end(param_00)
{
scripts\asm\crab_boss\crab_boss_asm::clearaction();
}
//Function Number: 34
roar_begin(param_00)
{
scripts\asm\crab_boss\crab_boss_asm::setaction("roar");
scripts\aitypes\dlc3\bt_state_api::asm_wait_state_setup(param_00,"roar","roar_loop",undefined,undefined,undefined,3000);
scripts\aitypes\dlc3\bt_state_api::btstate_transitionstate(param_00,"roar");
}
//Function Number: 35
roar_tick(param_00)
{
if(scripts\aitypes\dlc3\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
return level.var_111AE;
}
//Function Number: 36
roar_end(param_00)
{
scripts\asm\crab_boss\crab_boss_asm::clearaction();
}
//Function Number: 37
beam_begin(param_00)
{
self.var_1C2 = self.beamattacktarget.origin;
scripts\aitypes\dlc3\bt_state_api::wait_state_setup(param_00,750,::beam_waitdone);
scripts\aitypes\dlc3\bt_state_api::btstate_transitionstate(param_00,"wait");
}
//Function Number: 38
beam_tick(param_00)
{
if(scripts\aitypes\dlc3\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
scripts\asm\crab_boss\crab_boss_asm::clearaction();
return level.var_111AE;
}
//Function Number: 39
func_2A1D(param_00)
{
scripts\asm\crab_boss\crab_boss_asm::clearaction();
self.var_1C2 = undefined;
self notify("beam_done");
self.beamfollowtargetstartpos = undefined;
self.beamfollowtarget = undefined;
self.beamtargetpos = undefined;
self.beamattacktarget = undefined;
}
//Function Number: 40
beam_waitdone(param_00)
{
scripts\asm\crab_boss\crab_boss_asm::setaction("beam");
scripts\aitypes\dlc3\bt_state_api::asm_wait_state_setup(param_00,"beaming","beam",::beam_attackdone);
scripts\aitypes\dlc3\bt_state_api::btstate_transitionstate(param_00,"beaming");
return 1;
}
//Function Number: 41
beam_attackdone(param_00,param_01)
{
if(isdefined(self.requested_action) && self.requested_action == "beam_interrupted")
{
scripts\aitypes\dlc3\bt_state_api::asm_wait_state_setup(param_00,"beam_interrupted","beam_interrupted",::beaminterrupted_attackdone);
scripts\aitypes\dlc3\bt_state_api::btstate_transitionstate(param_00,"beam_interrupted");
}
return 1;
}
//Function Number: 42
beaminterrupted_attackdone(param_00,param_01)
{
return 0;
}
//Function Number: 43
func_5ABE(param_00)
{
dosimpleaction(param_00,"taunt");
return 1;
}
//Function Number: 44
beamattackposition(param_00,param_01)
{
self.beamattacktarget = param_01;
scripts\aitypes\dlc3\bt_action_api::setdesiredaction(param_00,"beam");
}
//Function Number: 45
dodeath(param_00)
{
dosimpleaction(param_00,"death");
return 1;
}
//Function Number: 46
dospawnattack(param_00)
{
dosimpleaction(param_00,"spawn");
return 1;
}
//Function Number: 47
dobombattack(param_00)
{
dosimpleaction(param_00,"bomb");
return 1;
}
//Function Number: 48
dosmashattack(param_00)
{
dosimpleaction(param_00,"smash");
return 1;
}
//Function Number: 49
dosmashinterrupted()
{
dosimpleaction_immediate(0,"smash_interrupted");
return 1;
}
//Function Number: 50
dobeaminterrupted()
{
scripts\asm\crab_boss\crab_boss_asm::setaction("beam_interrupted");
}
//Function Number: 51
dogasattack(param_00)
{
self.spawnposarray = getspawnposarray(getnumofgasspawn());
self.numofspawnrequested = self.spawnposarray.size;
dosimpleaction(param_00,"toxic");
return 1;
}
//Function Number: 52
dosubmerge(param_00)
{
dosimpleaction(param_00,"submerge");
return 1;
}
//Function Number: 53
getnumofgasspawn()
{
var_00 = 23 - level.spawned_enemies.size;
var_01 = 23;
return min(var_00,var_01);
}
//Function Number: 54
getspawnposarray(param_00)
{
var_01 = [];
var_02 = scripts\common\utility::getstructarray("death_wall_spawner","targetname");
var_02 = scripts\common\utility::array_randomize(var_02);
for(var_03 = 0;var_03 < param_00;var_03++)
{
var_04 = spawnstruct();
var_05 = var_02[var_03 % var_02.size];
var_04.origin = getclosestpointonnavmesh(var_05.origin);
var_04.angles = var_05.angles;
var_01[var_03] = var_04;
}
return var_01;
}
//Function Number: 55
doheal(param_00)
{
dosimpleaction(param_00,"heal");
return 1;
}
//Function Number: 56
oncrabbrutesummon(param_00)
{
self.spawnposarray = param_00;
self.numofspawnrequested = self.spawnposarray.size;
if(lib_0A1A::func_2354("submerge_loop"))
{
self.nextaction = "submerge_spawn";
return;
}
self.nextaction = "spawn";
}
//Function Number: 57
dosubmergespawn()
{
self.spawnposarray = scripts\cp\maps\cp_town\cp_town_crab_boss_escort::calculate_egg_sac_spawn_pos();
self.numofspawnrequested = self.spawnposarray.size;
self.nextaction = "submerge_spawn";
return 1;
}
//Function Number: 58
dosubmergebomb()
{
self.bombposarray = scripts\cp\maps\cp_town\cp_town_crab_boss_escort::calculate_egg_sac_bomb_pos();
self.numofbombrequested = self.bombposarray.size;
self.submergebombspawnindex = getsubmergebombspawnindex();
self.nextaction = "submerge_bomb";
return 1;
}
//Function Number: 59
getsubmergebombspawnindex()
{
var_00 = 4;
var_01 = var_00;
if(isdefined(level.crab_boss_num_submerge_spawn))
{
var_01 = level.crab_boss_num_submerge_spawn;
}
var_02 = scripts\cp\maps\cp_town\cp_town_crab_boss_fight::get_num_alive_agent_of_type("crab_mini");
var_03 = max(0,var_01 - var_02);
var_04 = scripts\common\utility::array_randomize([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]);
var_05 = [];
for(var_06 = 0;var_06 < var_03;var_06++)
{
var_05[var_06] = var_04[var_06];
}
return var_05;
}
//Function Number: 60
doemerge()
{
dosimpleaction(0,"emerge");
return 1;
}
//Function Number: 61
dodeathrayspawn(param_00)
{
self.spawnposarray = getdeathrayspawnpos(param_00);
self.numofspawnrequested = self.spawnposarray.size;
dosimpleaction(0,"toxic_spawn");
return 1;
}
//Function Number: 62
getdeathrayspawnpos(param_00)
{
var_01 = 100;
var_02 = 8;
var_03 = 8;
var_04 = [];
var_05 = scripts\cp\maps\cp_town\cp_town_crab_boss_fight::get_num_alive_agent_of_type("crab_mini");
var_06 = max(0,var_02 - var_05);
var_06 = min(var_06,var_03);
var_07 = vectornormalize(param_00.origin - level.crab_boss.origin);
for(var_08 = 0;var_08 < var_06;var_08++)
{
var_09 = randomfloatrange(var_01 * -1,var_01);
var_0A = randomfloatrange(var_01 * -1,var_01);
var_0B = vectortoangles(var_07);
var_0C = spawnstruct();
var_0C.origin = (param_00.origin[0] + var_09,param_00.origin[1] + var_0A,param_00.origin[2]);
var_0C.angles = var_0B;
var_04[var_04.size] = var_0C;
}
return var_04;
}
//Function Number: 63
dotoxicspawn()
{
self.spawnposarray = gettoxicspawnpos(self);
self.numofspawnrequested = self.spawnposarray.size;
dosimpleaction(0,"toxic_spawn");
return 1;
}
//Function Number: 64
gettoxicspawnpos(param_00)
{
var_01 = 350;
var_02 = 4;
var_03 = 150;
var_04 = var_02 + level.players.size;
var_05 = [];
var_06 = [];
foreach(var_08 in level.players)
{
if(scripts\cp\_laststand::player_in_laststand(var_08))
{
continue;
}
var_06[var_06.size] = var_08;
}
if(var_06.size == 0)
{
var_0A = (2826,1244,-91);
var_0B = spawnstruct();
var_0B.origin = var_0A;
var_0B.angles = vectortoangles(vectornormalize(var_0A - param_00.origin));
var_05[var_05.size] = var_0B;
}
else
{
for(var_0C = 1;var_0C <= var_04;var_0C++)
{
var_08 = scripts\common\utility::random(var_06);
var_0D = vectornormalize(var_08.origin - param_00.origin);
var_0E = scripts\common\utility::func_5D14(var_08.origin + var_0D * -1 * var_01,50,-2000);
var_0F = randomfloatrange(var_03 * -1,var_03);
var_10 = randomfloatrange(var_03 * -1,var_03);
var_0E = var_0E + (var_0F,var_10,0);
var_0E = getclosestpointonnavmesh(var_0E);
var_11 = vectortoangles(var_0D);
var_0B = spawnstruct();
var_0B.origin = var_0E;
var_0B.angles = var_11;
var_05[var_05.size] = var_0B;
}
}
return var_05;
}
//Function Number: 65
startroarattack(param_00)
{
self.roar_loops = param_00;
scripts\aitypes\dlc3\bt_action_api::setdesiredaction(0,"roar");
return 1;
}
//Function Number: 66
endroarattack()
{
lib_0A1A::func_2330("roar_done");
return 1;
}
//Function Number: 67
func_5A5A(param_00)
{
self.painalias = param_00;
dosimpleaction(0,"pain");
}
//Function Number: 68
interruptcurrentstate()
{
if(!scripts\common\utility::istrue(self.binterruptable))
{
return;
}
var_00 = lib_0A1A::func_233A("crab_boss");
switch(var_00)
{
case "beam":
dobeaminterrupted();
break;
case "smash":
dosmashinterrupted();
break;
}
}
//Function Number: 69
decideaction(param_00)
{
if(isdefined(self.desiredaction))
{
return level.var_111AE;
}
if(!isdefined(self.nextaction) && isdefined(self.desiredbossmovepos))
{
self.nextaction = "boss_movement";
}
if(isdefined(self.nextaction))
{
scripts\aitypes\dlc3\bt_action_api::setdesiredaction(param_00,self.nextaction);
self.nextaction = undefined;
return level.var_111AE;
}
return level.var_6AD5;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,439 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\crab_mini\behaviors.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 26
* Decompile Time: 1048 ms
* Timestamp: 10/26/2023 11:58:34 PM
*******************************************************************/
//Function Number: 1
initbehaviors(param_00)
{
setupbehaviorstates();
self.desiredaction = undefined;
self.lastenemyengagetime = 0;
self.myenemy = undefined;
lib_0A1B::func_2968("sprint");
return level.var_111AE;
}
//Function Number: 2
setupbehaviorstates()
{
scripts\aitypes\dlc3\bt_action_api::setupbtaction("stand_melee",::melee_begin,::melee_tick,::melee_end);
scripts\aitypes\dlc3\bt_action_api::setupbtaction("moving_melee",::movingmelee_begin,::movingmelee_tick,::movingmelee_end);
scripts\aitypes\dlc3\bt_action_api::setupbtaction("stuck",::stuck_begin,::stuck_tick,::stuck_end);
}
//Function Number: 3
pickbetterenemy(param_00,param_01)
{
var_02 = self method_805F(param_00);
var_03 = self method_805F(param_01);
if(var_02 != var_03)
{
if(var_02)
{
return param_00;
}
return param_01;
}
var_04 = distancesquared(self.origin,param_00.origin);
var_05 = distancesquared(self.origin,param_01.origin);
if(var_04 < var_05)
{
return param_00;
}
return param_01;
}
//Function Number: 4
shouldignoreenemy(param_00)
{
if(!isalive(param_00))
{
return 1;
}
if(param_00.ignoreme || isdefined(param_00.var_222) && param_00.var_222.ignoreme)
{
return 1;
}
if(lib_0F74::func_1002C(param_00))
{
return 1;
}
return 0;
}
//Function Number: 5
func_12E8A()
{
if(isdefined(self.myenemy) && !shouldignoreenemy(self.myenemy))
{
if(gettime() - self.myenemystarttime < 3000)
{
return self.myenemy;
}
}
var_00 = undefined;
foreach(var_02 in level.players)
{
if(shouldignoreenemy(var_02))
{
continue;
}
if(scripts\common\utility::istrue(var_02.isfasttravelling))
{
continue;
}
if(!isdefined(var_00))
{
var_00 = var_02;
continue;
}
var_00 = pickbetterenemy(var_00,var_02);
}
if(!isdefined(var_00))
{
self.myenemy = undefined;
return undefined;
}
if(!isdefined(self.myenemy) || var_00 != self.myenemy)
{
self.myenemy = var_00;
self.myenemystarttime = gettime();
}
}
//Function Number: 6
updateeveryframe(param_00)
{
func_12E8A();
return level.var_6AD5;
}
//Function Number: 7
stuck_begin(param_00)
{
var_01 = scripts\mp\agents\crab_mini\crab_mini_tunedata::gettunedata();
var_02 = randomintrange(var_01.stuck_min_time_ms,var_01.stuck_max_time_ms);
scripts\aitypes\dlc3\bt_state_api::asm_wait_state_setup(param_00,"stuck","stuck_loop",::stuck_stopbeingstuck,undefined,var_02);
scripts\aitypes\dlc3\bt_state_api::btstate_transitionstate(param_00,"stuck");
}
//Function Number: 8
stuck_tick(param_00)
{
if(scripts\aitypes\dlc3\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
return level.var_111AE;
}
//Function Number: 9
stuck_end(param_00)
{
scripts\mp\agents\crab_mini\crab_mini_agent::setisstuck(undefined);
scripts\asm\crab_mini\crab_mini_asm::clearaction();
}
//Function Number: 10
stuck_stopbeingstuck(param_00,param_01)
{
scripts\mp\agents\crab_mini\crab_mini_agent::setisstuck(undefined);
scripts\aitypes\dlc3\bt_state_api::asm_wait_state_setup(param_00,"stuck_done","stuck_exit",::stuck_decideturn);
scripts\aitypes\dlc3\bt_state_api::btstate_transitionstate(param_00,"stuck_done");
return 1;
}
//Function Number: 11
facepoint(param_00,param_01)
{
var_02 = scripts\common\utility::func_824D(param_01);
if(abs(var_02) < 22.5)
{
return;
}
self.desiredyaw = var_02;
}
//Function Number: 12
stuck_decideturn(param_00,param_01)
{
var_02 = scripts\mp\agents\crab_mini\crab_mini_agent::getenemy();
if(!isdefined(var_02))
{
return 0;
}
var_03 = distancesquared(self.origin,var_02.origin);
var_04 = scripts\mp\agents\crab_mini\crab_mini_tunedata::gettunedata();
if(var_03 < var_04.min_dist_to_enemy_to_allow_turn_sq)
{
return 0;
}
if(var_03 > var_04.max_dist_to_enemy_to_allow_turn_sq)
{
return 0;
}
if(!navisstraightlinereachable(self.origin,var_02.origin,self))
{
return 0;
}
var_05 = scripts\common\utility::func_824D(var_02.origin);
if(abs(var_05) < 45)
{
return 0;
}
self.desiredyaw = var_05;
return 1;
}
//Function Number: 13
melee_begin(param_00)
{
var_01 = scripts\aitypes\dlc3\bt_action_api::getcurrentdesiredaction(param_00);
scripts\asm\crab_mini\crab_mini_asm::setaction(var_01);
var_02 = scripts\mp\agents\crab_mini\crab_mini_agent::getenemy();
self.var_4B26 = var_02;
self.bmovingmelee = undefined;
scripts\mp\agents\crab_mini\crab_mini_agent::setisstuck(undefined);
scripts\aitypes\dlc3\bt_state_api::asm_wait_state_setup(param_00,var_01,var_01);
scripts\aitypes\dlc3\bt_state_api::btstate_transitionstate(param_00,var_01);
}
//Function Number: 14
melee_tick(param_00)
{
self method_841F();
if(scripts\aitypes\dlc3\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
return level.var_6AD5;
}
//Function Number: 15
melee_end(param_00)
{
self.var_4B26 = undefined;
scripts\asm\crab_mini\crab_mini_asm::clearaction();
scripts\aitypes\dlc3\bt_state_api::btstate_endstates(param_00);
}
//Function Number: 16
movingmelee_begin(param_00)
{
var_01 = scripts\aitypes\dlc3\bt_action_api::getcurrentdesiredaction(param_00);
scripts\asm\crab_mini\crab_mini_asm::setaction(var_01);
var_02 = scripts\mp\agents\crab_mini\crab_mini_agent::getenemy();
self.var_4B26 = var_02;
self.bmovingmelee = 1;
var_03 = scripts\aitypes\dlc3\bt_state_api::btstate_getinstancedata(param_00);
var_03.bfacingenemy = 1;
scripts\mp\agents\crab_mini\crab_mini_agent::setisstuck(1);
scripts\aitypes\dlc3\bt_state_api::asm_wait_state_setup(param_00,var_01,var_01,::movingmelee_attackdone);
scripts\aitypes\dlc3\bt_state_api::btstate_transitionstate(param_00,var_01);
}
//Function Number: 17
movingmelee_tick(param_00)
{
self method_841F();
if(scripts\aitypes\dlc3\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
return level.var_6AD5;
}
//Function Number: 18
movingmelee_end(param_00)
{
self.var_4B26 = undefined;
var_01 = scripts\aitypes\dlc3\bt_state_api::btstate_getinstancedata(param_00);
var_01.bfacingenemy = undefined;
scripts\asm\crab_mini\crab_mini_asm::clearaction();
scripts\aitypes\dlc3\bt_state_api::btstate_endstates(param_00);
}
//Function Number: 19
movingmelee_attackdone(param_00,param_01)
{
if(scripts\mp\agents\crab_mini\crab_mini_agent::iscrabministuck())
{
scripts\aitypes\dlc3\bt_action_api::setdesiredaction(param_00,"stuck");
return 0;
}
return 0;
}
//Function Number: 20
getpredictedenemypos(param_00,param_01)
{
var_02 = param_00 getvelocity();
var_03 = length2d(var_02);
var_04 = param_00.origin + var_02 * param_01.avg_time_to_impact;
return var_04;
}
//Function Number: 21
trymeleeattacks(param_00)
{
var_01 = scripts\mp\agents\crab_mini\crab_mini_agent::getenemy();
if(!isdefined(var_01))
{
return level.var_6AD5;
}
var_02 = scripts\mp\agents\crab_mini\crab_mini_tunedata::gettunedata();
if(abs(var_01.origin[2] - self.origin[2]) > var_02.melee_max_z_diff)
{
return level.var_6AD5;
}
var_03 = var_01.origin;
if(isdefined(self.var_233))
{
var_03 = getpredictedenemypos(var_01,var_02);
}
var_04 = distancesquared(var_03,self.origin);
if(var_04 < var_02.stand_melee_dist_sq)
{
scripts\aitypes\dlc3\bt_action_api::setdesiredaction(param_00,"stand_melee");
return 1;
}
var_05 = distancesquared(self.origin,var_01.origin);
if(var_05 > var_02.non_predicted_move_melee_dist_sq)
{
if(var_04 > var_02.move_melee_dist_sq)
{
return 0;
}
}
if(var_05 > var_02.check_reachable_dist_sq)
{
var_06 = self method_84AC();
var_07 = getclosestpointonnavmesh(var_01.origin,self);
if(!navisstraightlinereachable(var_06,var_07,self))
{
return 0;
}
}
scripts\aitypes\dlc3\bt_action_api::setdesiredaction(param_00,"moving_melee");
return 1;
}
//Function Number: 22
trymeleeattacks_old(param_00,param_01)
{
var_02 = scripts\mp\agents\crab_mini\crab_mini_agent::getenemy();
if(!isdefined(param_01))
{
param_01 = distancesquared(self.origin,var_02.origin);
}
var_03 = scripts\mp\agents\crab_mini\crab_mini_tunedata::gettunedata();
if(param_01 > var_03.move_melee_dist_sq)
{
return 0;
}
var_04 = var_02.origin - self.origin * (1,1,0);
var_05 = anglestoforward(self.angles);
var_06 = vectornormalize(var_04);
var_07 = vectordot(var_05,var_06);
if(var_07 < var_03.stand_melee_attack_dot)
{
return 0;
}
if(param_01 < var_03.stand_melee_dist_sq)
{
scripts\aitypes\dlc3\bt_action_api::setdesiredaction(param_00,"stand_melee");
}
else
{
scripts\aitypes\dlc3\bt_action_api::setdesiredaction(param_00,"moving_melee");
}
return 1;
}
//Function Number: 23
decideaction(param_00)
{
var_01 = scripts\mp\agents\crab_mini\crab_mini_agent::getenemy();
if(!isdefined(var_01))
{
return level.var_6AD5;
}
var_02 = gettime();
if(trymeleeattacks(param_00))
{
self.lastenemyengagetime = var_02;
return level.var_111AE;
}
return level.var_6AD5;
}
//Function Number: 24
followenemy_begin(param_00)
{
self.var_3135.var_9928[param_00] = spawnstruct();
}
//Function Number: 25
followenemy_tick(param_00)
{
var_01 = scripts\mp\agents\crab_mini\crab_mini_agent::getenemy();
if(!isdefined(var_01))
{
return level.var_6AD5;
}
var_02 = getclosestpointonnavmesh(var_01.origin,self);
self method_8286(var_02);
if(!self method_805F(var_01))
{
return level.var_E87A;
}
return level.var_111AE;
}
//Function Number: 26
followenemy_end(param_00)
{
self.var_3135.var_9928[param_00] = undefined;
}

View File

@ -0,0 +1,109 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\dlc3\bt_action_api.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 6
* Decompile Time: 254 ms
* Timestamp: 10/26/2023 11:58:34 PM
*******************************************************************/
//Function Number: 1
setupbtaction(param_00,param_01,param_02,param_03)
{
var_04 = spawnstruct();
var_04.fnbegin = param_01;
var_04.fntick = param_02;
var_04.fnend = param_03;
if(!isdefined(self.actions))
{
self.actions = [];
}
self.actions[param_00] = var_04;
}
//Function Number: 2
setdesiredaction(param_00,param_01)
{
if(isdefined(param_01) && !isdefined(self.actions[param_01]))
{
return 0;
}
var_02 = getcurrentdesiredaction(param_00);
self.desiredaction = param_01;
if(isdefined(var_02) && var_02 != param_01)
{
self notify("newaction");
}
return 1;
}
//Function Number: 3
getcurrentdesiredaction(param_00)
{
if(!isdefined(self.var_3135.var_9928[param_00]))
{
return undefined;
}
return self.var_3135.var_9928[param_00].currentaction;
}
//Function Number: 4
doaction_begin(param_00)
{
self.var_3135.var_9928[param_00] = spawnstruct();
self.var_3135.var_9928[param_00].currentaction = self.desiredaction;
var_01 = self.actions[self.desiredaction].fnbegin;
self.desiredaction = undefined;
if(isdefined(var_01))
{
[[ var_01 ]](param_00);
}
}
//Function Number: 5
doaction_tick(param_00)
{
var_01 = getcurrentdesiredaction(param_00);
var_02 = self.actions[var_01].fntick;
if(isdefined(var_02))
{
var_03 = [[ var_02 ]](param_00);
if(!isdefined(self.desiredaction))
{
if(isdefined(var_03))
{
return var_03;
}
return level.var_6AD5;
}
}
if(isdefined(self.desiredaction))
{
doaction_end(param_00);
doaction_begin(param_00);
return level.var_E87A;
}
return level.var_6AD5;
}
//Function Number: 6
doaction_end(param_00)
{
var_01 = getcurrentdesiredaction(param_00);
var_02 = self.actions[var_01].fnend;
if(isdefined(var_02))
{
[[ var_02 ]](param_00);
}
scripts\aitypes\dlc3\bt_state_api::btstate_endstates(param_00);
self.var_3135.var_9928[param_00] = undefined;
}

View File

@ -0,0 +1,346 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\dlc3\bt_state_api.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 21
* Decompile Time: 835 ms
* Timestamp: 10/26/2023 11:58:35 PM
*******************************************************************/
//Function Number: 1
btstate_getinstancedata(param_00)
{
return self.var_3135.var_9928[param_00];
}
//Function Number: 2
btstate_setupstate(param_00,param_01,param_02,param_03)
{
var_04 = spawnstruct();
var_04.name = param_00;
var_04.fnbegin = param_01;
var_04.fntick = param_02;
var_04.fnend = param_03;
if(!isdefined(self.bt_states))
{
self.bt_states = [];
}
self.bt_states[param_00] = var_04;
return var_04;
}
//Function Number: 3
btstate_getcurrentstatename(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(!isdefined(var_01))
{
return undefined;
}
if(!isdefined(var_01.var_4C07))
{
return undefined;
}
return var_01.var_4C07.name;
}
//Function Number: 4
btstate_tickstates(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(!isdefined(var_01.var_4C07))
{
return 0;
}
if(isdefined(var_01.var_4C07.fntick))
{
var_02 = var_01.var_4C07.name;
var_03 = self [[ var_01.var_4C07.fntick ]](param_00);
if(isdefined(var_01.var_4C07) && var_01.var_4C07.name != var_02)
{
return btstate_tickstates(param_00);
}
if(!scripts\common\utility::istrue(var_03))
{
btstate_endcurrentstate(param_00);
}
return var_03;
}
return 1;
}
//Function Number: 5
btstate_endstates(param_00)
{
if(isdefined(self.bt_states))
{
var_01 = btstate_getinstancedata(param_00);
if(isdefined(var_01.var_4C07) && isdefined(var_01.var_4C07.fnend))
{
[[ var_01.var_4C07.fnend ]](param_00,undefined);
var_01.var_4C07 = undefined;
}
}
}
//Function Number: 6
btstate_destroystates()
{
self.bt_states = undefined;
}
//Function Number: 7
btstate_endcurrentstate(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(isdefined(var_01.var_4C07) && isdefined(var_01.var_4C07.fnend))
{
self [[ var_01.var_4C07.fnend ]](param_00,undefined);
}
var_01.var_4C07 = undefined;
}
//Function Number: 8
btstate_transitionstate(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_03 = undefined;
if(isdefined(var_02.var_4C07))
{
var_03 = var_02.var_4C07.name;
if(isdefined(var_02.var_4C07.fnend))
{
[[ var_02.var_4C07.fnend ]](param_00,param_01);
}
}
var_04 = self.bt_states[param_01];
var_02.var_4C07 = var_04;
if(isdefined(var_04.fnbegin))
{
self [[ var_04.fnbegin ]](param_00,var_03);
}
}
//Function Number: 9
chase_target_state_setup(param_00,param_01,param_02,param_03,param_04)
{
btstate_setupstate("chase",::chase_target_state_begin,::chase_target_state_tick,::chase_target_state_end);
var_05 = btstate_getinstancedata(param_00);
var_05.var_15C = param_01;
var_05.target = param_02;
var_05.fncallback = param_03;
var_05.maxchasetime = param_04;
}
//Function Number: 10
chase_target_state_begin(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_02.var_10DFF = gettime();
self method_8284(var_02.target);
self method_8287(var_02.var_15C * 0.9);
}
//Function Number: 11
chase_target_state_done(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_03 = var_02.fncallback;
btstate_endcurrentstate(param_00);
if(isdefined(var_03))
{
[[ var_03 ]](param_00,param_01);
}
}
//Function Number: 12
chase_target_state_tick(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(!isalive(var_01.target))
{
chase_target_state_done(param_00,"aborted");
return 0;
}
if(isdefined(var_01.maxchasetime))
{
if(gettime() > var_01.var_10DFF + var_01.maxchasetime)
{
chase_target_state_done(param_00,"timeout");
return 0;
}
}
var_02 = distance2dsquared(self.origin,var_01.target.origin);
if(var_02 > squared(var_01.var_15C))
{
return 1;
}
if(abs(self.origin[2] - var_01.target.origin[2] > 32))
{
return 1;
}
chase_target_state_done(param_00,"arrived");
return 1;
}
//Function Number: 13
chase_target_state_end(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_02.var_15C = undefined;
var_02.target = undefined;
var_02.fncallback = undefined;
}
//Function Number: 14
wait_state_setup(param_00,param_01,param_02)
{
var_03 = btstate_getinstancedata(param_00);
var_03.waittimeouttimems = gettime() + param_01;
var_03.waittimecallbackfn = param_02;
btstate_setupstate("wait",::wait_state_begin,::wait_state_tick,::wait_state_end);
}
//Function Number: 15
wait_state_begin(param_00,param_01)
{
}
//Function Number: 16
wait_state_tick(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(gettime() < var_01.waittimeouttimems)
{
return 1;
}
if(isdefined(var_01.waittimecallbackfn))
{
var_02 = [[ var_01.waittimecallbackfn ]](param_00);
if(isdefined(var_02))
{
return var_02;
}
}
return 0;
}
//Function Number: 17
wait_state_end(param_00,param_01)
{
}
//Function Number: 18
asm_wait_state_setup(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(!isdefined(param_04))
{
param_04 = "ASM_Finished";
}
btstate_setupstate(param_01,::asm_wait_state_begin,::asm_wait_state_tick,::asm_wait_state_end);
var_07 = btstate_getinstancedata(param_00);
var_07.endevent = param_04;
var_07.asmstate = param_02;
var_07.fncallback = param_03;
if(isdefined(param_06))
{
var_07.timeouttime = gettime() + param_06;
}
else
{
var_07.timeouttime = gettime() + 2000;
}
if(isdefined(param_05))
{
var_07.var_6393 = gettime() + param_05;
}
}
//Function Number: 19
asm_wait_state_begin(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_02.bisinasmstate = lib_0A1A::func_2354(var_02.asmstate);
}
//Function Number: 20
asm_wait_state_tick(param_00)
{
var_01 = btstate_getinstancedata(param_00);
var_02 = lib_0A1A::func_2354(var_01.asmstate);
if(var_02 && !var_01.bisinasmstate)
{
var_01.bisinasmstate = 1;
}
var_03 = 0;
var_04 = undefined;
if(!var_02 && var_01.bisinasmstate)
{
var_03 = 1;
var_04 = "aborted";
}
else if(isdefined(var_01.timeouttime) && !var_02 && !var_01.bisinasmstate)
{
if(gettime() > var_01.timeouttime)
{
var_03 = 1;
var_04 = "timeout";
}
}
else if(isdefined(var_01.var_6393))
{
if(gettime() > var_01.var_6393)
{
var_03 = 1;
var_04 = "end_time";
}
}
if(lib_0A1A::func_232A(var_01.asmstate,var_01.endevent))
{
var_03 = 1;
var_04 = "end_event";
}
if(var_03)
{
var_05 = var_01.fncallback;
btstate_endcurrentstate(param_00);
if(isdefined(var_05))
{
[[ var_05 ]](param_00,var_04);
}
}
return !var_03;
}
//Function Number: 21
asm_wait_state_end(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_02.endevent = undefined;
var_02.asmstate = undefined;
var_02.fncallback = undefined;
var_02.bisinasmstate = undefined;
var_02.var_6393 = undefined;
}

View File

@ -0,0 +1,213 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\dlc4\alien_jump.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 7
* Decompile Time: 309 ms
* Timestamp: 10/26/2023 11:58:36 PM
*******************************************************************/
//Function Number: 1
setupjumpattackbtaction(param_00,param_01,param_02)
{
if(!isdefined(param_00))
{
param_00 = ::jumpattack_begin;
}
if(!isdefined(param_01))
{
param_01 = ::jumpattack_tick;
}
if(!isdefined(param_02))
{
param_02 = ::jumpattack_end;
}
scripts\aitypes\dlc4\bt_action_api::setupbtaction("jump_attack",::jumpattack_begin,::jumpattack_tick,::jumpattack_end);
}
//Function Number: 2
jumpattack_begin(param_00)
{
self.var_4B26 = scripts\asm\dlc4\dlc4_asm::getenemy();
scripts\aitypes\dlc4\behavior_utils::facepoint(self.var_AAFD);
self.var_1198.jumpdestinationpos = self.var_AAFD;
scripts\asm\dlc4\dlc4_asm::setasmaction("jump_attack");
scripts\aitypes\dlc4\bt_state_api::asm_wait_state_setup(param_00,"jump_attack","jump_attack");
scripts\aitypes\dlc4\bt_state_api::btstate_transitionstate(param_00,"jump_attack");
}
//Function Number: 3
jumpattack_tick(param_00)
{
if(scripts\aitypes\dlc4\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
self method_841F();
return level.var_111AE;
}
//Function Number: 4
jumpattack_end(param_00)
{
var_01 = scripts\asm\dlc4\dlc4_asm::gettunedata();
self.var_4B26 = undefined;
self.nextjumpattack = gettime() + var_01.jump_attack_min_interval;
self.var_1198.jumpdestinationpos = undefined;
scripts\asm\dlc4\dlc4_asm::clearasmaction();
}
//Function Number: 5
func_7A7A(param_00,param_01,param_02,param_03)
{
var_04 = self.origin - param_02.origin;
var_04 = var_04 * (1,1,0);
var_04 = vectornormalize(var_04) * param_01;
if(!isdefined(param_03))
{
param_03 = 1;
}
if(isplayer(param_02))
{
var_05 = param_02 getvelocity();
var_06 = 200;
if(lengthsquared(var_05) > var_06 * var_06)
{
var_05 = vectornormalize(var_05);
var_05 = var_05 * var_06;
}
var_05 = var_05 * param_03;
var_05 = var_05 * param_00;
}
else
{
var_05 = (0,0,0);
}
return param_02.origin + var_04 + var_05;
}
//Function Number: 6
tryjumpattack(param_00,param_01)
{
if(!isdefined(param_01))
{
return 0;
}
var_02 = scripts\asm\dlc4\dlc4_asm::gettunedata();
if(!isdefined(self.nextjumpattack))
{
self.nextjumpattack = gettime() + var_02.jump_attack_initial_delay_ms;
return 0;
}
if(gettime() < self.nextjumpattack)
{
return 0;
}
var_03 = vectornormalize(param_01.origin - self.origin * (1,1,0));
var_04 = anglestoforward(self.angles);
var_05 = vectordot(var_03,var_04);
if(var_05 < var_02.jump_attack_min_enemy_dot)
{
return 0;
}
var_06 = distance2d(param_01.origin,self.origin);
var_07 = var_06 / var_02.avg_leap_speed;
var_08 = scripts\aitypes\dlc4\behavior_utils::getpredictedenemypos(param_01,var_07);
var_06 = distance2d(var_08,self.origin);
var_07 = var_06 / var_02.avg_leap_speed;
var_09 = scripts\aitypes\dlc4\behavior_utils::getpredictedenemypos(param_01,var_07);
var_0A = distancesquared(var_09,self.origin);
if(var_0A < var_02.min_leap_distance_sq)
{
return 0;
}
self.nextjumpattack = gettime() + 150;
var_09 = scripts\mp\agents\_scriptedagents::func_5D51(var_09,var_02.max_leap_melee_drop_distance);
if(!isdefined(var_09))
{
return 0;
}
var_0B = distancesquared(self.origin,var_09);
if(var_0B < var_02.min_leap_distance_sq)
{
return 0;
}
if(var_0B > var_02.max_leap_distance_sq)
{
return 0;
}
var_0C = 0;
var_0D = 1;
if(var_02.teleport_chance != 0)
{
if(randomint(100) < var_02.teleport_chance)
{
if(var_0B >= var_02.min_dist_to_teleport_sq)
{
var_0C = 1;
var_0E = navtrace(self.origin,var_09,self,1);
if(var_0E["fraction"] >= 0.9)
{
var_0D = 0;
}
}
}
}
if(!self method_85CA(self.origin,var_09))
{
return 0;
}
if(var_0D && !trajectorycanattemptaccuratejump(self.origin,anglestoup(self.angles),var_09,anglestoup(param_01.angles),level.var_1B73,1.01 * level.var_1B74))
{
return 0;
}
var_0F = getclosestpointonnavmesh(var_09,self);
if(abs(var_0F[2] - var_09[2]) > 32)
{
return 0;
}
if(distance2dsquared(var_0F,var_09) > 144)
{
return 0;
}
self.var_AAFD = var_09;
if(var_0C)
{
scripts\aitypes\dlc4\bt_action_api::setdesiredbtaction(param_00,"teleport");
}
else
{
scripts\aitypes\dlc4\bt_action_api::setdesiredbtaction(param_00,"jump_attack");
}
return 1;
}
//Function Number: 7
jumpattack(param_00,param_01)
{
scripts\aitypes\dlc4\behavior_utils::facepoint(param_01);
self.var_1198.jumpdestinationpos = param_01;
scripts\asm\dlc4\dlc4_asm::setasmaction("jump_attack");
}

View File

@ -0,0 +1,124 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\dlc4\behavior_utils.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 5
* Decompile Time: 226 ms
* Timestamp: 10/26/2023 11:58:36 PM
*******************************************************************/
//Function Number: 1
pickbetterenemy(param_00,param_01)
{
var_02 = self method_805F(param_00);
var_03 = self method_805F(param_01);
if(var_02 != var_03)
{
if(var_02)
{
return param_00;
}
return param_01;
}
var_04 = distancesquared(self.origin,param_00.origin);
var_05 = distancesquared(self.origin,param_01.origin);
if(var_04 < var_05)
{
return param_00;
}
return param_01;
}
//Function Number: 2
shouldignoreenemy(param_00)
{
if(!isalive(param_00))
{
return 1;
}
if(param_00.ignoreme || isdefined(param_00.var_222) && param_00.var_222.ignoreme)
{
return 1;
}
if(lib_0F74::func_1002C(param_00))
{
return 1;
}
return 0;
}
//Function Number: 3
func_12E8A()
{
if(isdefined(self.myenemy) && !shouldignoreenemy(self.myenemy))
{
if(gettime() - self.myenemystarttime < 3000)
{
return self.myenemy;
}
}
var_00 = undefined;
foreach(var_02 in level.players)
{
if(shouldignoreenemy(var_02))
{
continue;
}
if(scripts\common\utility::istrue(var_02.isfasttravelling))
{
continue;
}
if(!isdefined(var_00))
{
var_00 = var_02;
continue;
}
var_00 = pickbetterenemy(var_00,var_02);
}
if(!isdefined(var_00))
{
self.myenemy = undefined;
return undefined;
}
if(!isdefined(self.myenemy) || var_00 != self.myenemy)
{
self.myenemy = var_00;
self.myenemystarttime = gettime();
}
}
//Function Number: 4
getpredictedenemypos(param_00,param_01)
{
var_02 = param_00 getvelocity();
var_03 = length2d(var_02);
var_04 = param_00.origin + var_02 * param_01;
return var_04;
}
//Function Number: 5
facepoint(param_00)
{
var_01 = scripts\common\utility::func_824D(param_00);
if(abs(var_01) < 8)
{
var_02 = (self.angles[0],self.angles[1] + var_01,self.angles[2]);
self method_8289("face angle abs",var_02);
return;
}
self.desiredyaw = var_02;
}

View File

@ -0,0 +1,109 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\dlc4\bt_action_api.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 6
* Decompile Time: 259 ms
* Timestamp: 10/26/2023 11:58:37 PM
*******************************************************************/
//Function Number: 1
setupbtaction(param_00,param_01,param_02,param_03)
{
var_04 = spawnstruct();
var_04.fnbegin = param_01;
var_04.fntick = param_02;
var_04.fnend = param_03;
if(!isdefined(self.actions))
{
self.actions = [];
}
self.actions[param_00] = var_04;
}
//Function Number: 2
setdesiredbtaction(param_00,param_01)
{
if(isdefined(param_01) && !isdefined(self.actions[param_01]))
{
return 0;
}
var_02 = getcurrentdesiredbtaction(param_00);
self.desiredaction = param_01;
if(isdefined(var_02) && var_02 != param_01)
{
self notify("newaction");
}
return 1;
}
//Function Number: 3
getcurrentdesiredbtaction(param_00)
{
if(!isdefined(self.var_3135.var_9928[param_00]))
{
return undefined;
}
return self.var_3135.var_9928[param_00].currentaction;
}
//Function Number: 4
doaction_begin(param_00)
{
self.var_3135.var_9928[param_00] = spawnstruct();
self.var_3135.var_9928[param_00].currentaction = self.desiredaction;
var_01 = self.actions[self.desiredaction].fnbegin;
self.desiredaction = undefined;
if(isdefined(var_01))
{
[[ var_01 ]](param_00);
}
}
//Function Number: 5
doaction_tick(param_00)
{
var_01 = getcurrentdesiredbtaction(param_00);
var_02 = self.actions[var_01].fntick;
if(isdefined(var_02))
{
var_03 = [[ var_02 ]](param_00);
if(!isdefined(self.desiredaction))
{
if(isdefined(var_03))
{
return var_03;
}
return level.var_6AD5;
}
}
if(isdefined(self.desiredaction))
{
doaction_end(param_00);
doaction_begin(param_00);
return level.var_E87A;
}
return level.var_6AD5;
}
//Function Number: 6
doaction_end(param_00)
{
var_01 = getcurrentdesiredbtaction(param_00);
var_02 = self.actions[var_01].fnend;
if(isdefined(var_02))
{
[[ var_02 ]](param_00);
}
scripts\aitypes\dlc4\bt_state_api::btstate_endstates(param_00);
self.var_3135.var_9928[param_00] = undefined;
}

View File

@ -0,0 +1,346 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\dlc4\bt_state_api.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 21
* Decompile Time: 823 ms
* Timestamp: 10/26/2023 11:58:38 PM
*******************************************************************/
//Function Number: 1
btstate_getinstancedata(param_00)
{
return self.var_3135.var_9928[param_00];
}
//Function Number: 2
btstate_setupstate(param_00,param_01,param_02,param_03)
{
var_04 = spawnstruct();
var_04.name = param_00;
var_04.fnbegin = param_01;
var_04.fntick = param_02;
var_04.fnend = param_03;
if(!isdefined(self.bt_states))
{
self.bt_states = [];
}
self.bt_states[param_00] = var_04;
return var_04;
}
//Function Number: 3
btstate_getcurrentstatename(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(!isdefined(var_01))
{
return undefined;
}
if(!isdefined(var_01.var_4C07))
{
return undefined;
}
return var_01.var_4C07.name;
}
//Function Number: 4
btstate_tickstates(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(!isdefined(var_01.var_4C07))
{
return 0;
}
if(isdefined(var_01.var_4C07.fntick))
{
var_02 = var_01.var_4C07.name;
var_03 = self [[ var_01.var_4C07.fntick ]](param_00);
if(isdefined(var_01.var_4C07) && var_01.var_4C07.name != var_02)
{
return btstate_tickstates(param_00);
}
if(!scripts\common\utility::istrue(var_03))
{
btstate_endcurrentstate(param_00);
}
return var_03;
}
return 1;
}
//Function Number: 5
btstate_endstates(param_00)
{
if(isdefined(self.bt_states))
{
var_01 = btstate_getinstancedata(param_00);
if(isdefined(var_01.var_4C07) && isdefined(var_01.var_4C07.fnend))
{
[[ var_01.var_4C07.fnend ]](param_00,undefined);
var_01.var_4C07 = undefined;
}
}
}
//Function Number: 6
btstate_destroystates()
{
self.bt_states = undefined;
}
//Function Number: 7
btstate_endcurrentstate(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(isdefined(var_01.var_4C07) && isdefined(var_01.var_4C07.fnend))
{
self [[ var_01.var_4C07.fnend ]](param_00,undefined);
}
var_01.var_4C07 = undefined;
}
//Function Number: 8
btstate_transitionstate(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_03 = undefined;
if(isdefined(var_02.var_4C07))
{
var_03 = var_02.var_4C07.name;
if(isdefined(var_02.var_4C07.fnend))
{
[[ var_02.var_4C07.fnend ]](param_00,param_01);
}
}
var_04 = self.bt_states[param_01];
var_02.var_4C07 = var_04;
if(isdefined(var_04.fnbegin))
{
self [[ var_04.fnbegin ]](param_00,var_03);
}
}
//Function Number: 9
chase_target_state_setup(param_00,param_01,param_02,param_03,param_04)
{
btstate_setupstate("chase",::chase_target_state_begin,::chase_target_state_tick,::chase_target_state_end);
var_05 = btstate_getinstancedata(param_00);
var_05.var_15C = param_01;
var_05.target = param_02;
var_05.fncallback = param_03;
var_05.maxchasetime = param_04;
}
//Function Number: 10
chase_target_state_begin(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_02.var_10DFF = gettime();
self method_8284(var_02.target);
self method_8287(var_02.var_15C * 0.9);
}
//Function Number: 11
chase_target_state_done(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_03 = var_02.fncallback;
btstate_endcurrentstate(param_00);
if(isdefined(var_03))
{
[[ var_03 ]](param_00,param_01);
}
}
//Function Number: 12
chase_target_state_tick(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(!isalive(var_01.target))
{
chase_target_state_done(param_00,"aborted");
return 0;
}
if(isdefined(var_01.maxchasetime))
{
if(gettime() > var_01.var_10DFF + var_01.maxchasetime)
{
chase_target_state_done(param_00,"timeout");
return 0;
}
}
var_02 = distance2dsquared(self.origin,var_01.target.origin);
if(var_02 > squared(var_01.var_15C))
{
return 1;
}
if(abs(self.origin[2] - var_01.target.origin[2] > 32))
{
return 1;
}
chase_target_state_done(param_00,"arrived");
return 1;
}
//Function Number: 13
chase_target_state_end(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_02.var_15C = undefined;
var_02.target = undefined;
var_02.fncallback = undefined;
}
//Function Number: 14
wait_state_setup(param_00,param_01,param_02)
{
var_03 = btstate_getinstancedata(param_00);
var_03.waittimeouttimems = gettime() + param_01;
var_03.waittimecallbackfn = param_02;
btstate_setupstate("wait",::wait_state_begin,::wait_state_tick,::wait_state_end);
}
//Function Number: 15
wait_state_begin(param_00,param_01)
{
}
//Function Number: 16
wait_state_tick(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(gettime() < var_01.waittimeouttimems)
{
return 1;
}
if(isdefined(var_01.waittimecallbackfn))
{
var_02 = [[ var_01.waittimecallbackfn ]](param_00);
if(isdefined(var_02))
{
return var_02;
}
}
return 0;
}
//Function Number: 17
wait_state_end(param_00,param_01)
{
}
//Function Number: 18
asm_wait_state_setup(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(!isdefined(param_04))
{
param_04 = "ASM_Finished";
}
btstate_setupstate(param_01,::asm_wait_state_begin,::asm_wait_state_tick,::asm_wait_state_end);
var_07 = btstate_getinstancedata(param_00);
var_07.endevent = param_04;
var_07.asmstate = param_02;
var_07.fncallback = param_03;
if(isdefined(param_06))
{
var_07.timeouttime = gettime() + param_06;
}
else
{
var_07.timeouttime = gettime() + 2000;
}
if(isdefined(param_05))
{
var_07.var_6393 = gettime() + param_05;
}
}
//Function Number: 19
asm_wait_state_begin(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_02.bisinasmstate = lib_0A1A::func_2354(var_02.asmstate);
}
//Function Number: 20
asm_wait_state_tick(param_00)
{
var_01 = btstate_getinstancedata(param_00);
var_02 = lib_0A1A::func_2354(var_01.asmstate);
if(var_02 && !var_01.bisinasmstate)
{
var_01.bisinasmstate = 1;
}
var_03 = 0;
var_04 = undefined;
if(!var_02 && var_01.bisinasmstate)
{
var_03 = 1;
var_04 = "aborted";
}
else if(isdefined(var_01.timeouttime) && !var_02 && !var_01.bisinasmstate)
{
if(gettime() > var_01.timeouttime)
{
var_03 = 1;
var_04 = "timeout";
}
}
else if(isdefined(var_01.var_6393))
{
if(gettime() > var_01.var_6393)
{
var_03 = 1;
var_04 = "end_time";
}
}
if(lib_0A1A::func_232A(var_01.asmstate,var_01.endevent))
{
var_03 = 1;
var_04 = "end_event";
}
if(var_03)
{
var_05 = var_01.fncallback;
btstate_endcurrentstate(param_00);
if(isdefined(var_05))
{
[[ var_05 ]](param_00,var_04);
}
}
return !var_03;
}
//Function Number: 21
asm_wait_state_end(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_02.endevent = undefined;
var_02.asmstate = undefined;
var_02.fncallback = undefined;
var_02.bisinasmstate = undefined;
var_02.var_6393 = undefined;
}

View File

@ -0,0 +1,182 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\dlc4\melee.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 10
* Decompile Time: 434 ms
* Timestamp: 10/26/2023 11:58:39 PM
*******************************************************************/
//Function Number: 1
setupstandmeleebtaction(param_00,param_01,param_02)
{
if(!isdefined(param_00))
{
param_00 = ::melee_begin;
}
if(!isdefined(param_01))
{
param_01 = ::melee_tick;
}
if(!isdefined(param_02))
{
param_02 = ::melee_end;
}
scripts\aitypes\dlc4\bt_action_api::setupbtaction("stand_melee",param_00,param_01,param_02);
}
//Function Number: 2
setupmovingmeleebtaction(param_00,param_01,param_02)
{
if(!isdefined(param_00))
{
param_00 = ::melee_begin;
}
if(!isdefined(param_01))
{
param_01 = ::melee_tick;
}
if(!isdefined(param_02))
{
param_02 = ::melee_end;
}
scripts\aitypes\dlc4\bt_action_api::setupbtaction("moving_melee",param_00,param_01,param_02);
}
//Function Number: 3
melee_begin(param_00)
{
var_01 = scripts\aitypes\dlc4\bt_action_api::getcurrentdesiredbtaction(param_00);
scripts\asm\dlc4\dlc4_asm::setasmaction(var_01);
var_02 = scripts\asm\dlc4\dlc4_asm::getenemy();
self.var_4B26 = var_02;
self.bmovingmelee = undefined;
scripts\aitypes\dlc4\bt_state_api::asm_wait_state_setup(param_00,var_01,var_01);
scripts\aitypes\dlc4\bt_state_api::btstate_transitionstate(param_00,var_01);
}
//Function Number: 4
melee_tick(param_00)
{
self method_841F();
if(scripts\aitypes\dlc4\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
return level.var_6AD5;
}
//Function Number: 5
melee_end(param_00)
{
self.var_4B26 = undefined;
self.var_A9B8 = gettime();
scripts\asm\dlc4\dlc4_asm::clearasmaction();
scripts\aitypes\dlc4\bt_state_api::btstate_endstates(param_00);
}
//Function Number: 6
movingmelee_begin(param_00)
{
var_01 = scripts\aitypes\dlc4\bt_action_api::getcurrentdesiredbtaction(param_00);
scripts\asm\dlc4\dlc4_asm::setasmaction(var_01);
var_02 = scripts\asm\dlc4\dlc4_asm::getenemy();
self.var_4B26 = var_02;
self.bmovingmelee = 1;
scripts\aitypes\dlc4\bt_state_api::asm_wait_state_setup(param_00,var_01,var_01,::movingmelee_attackdone);
scripts\aitypes\dlc4\bt_state_api::btstate_transitionstate(param_00,var_01);
}
//Function Number: 7
movingmelee_tick(param_00)
{
self method_841F();
if(scripts\aitypes\dlc4\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
return level.var_6AD5;
}
//Function Number: 8
movingmelee_end(param_00)
{
self.var_4B26 = undefined;
self.var_1198.movingmeleeattackindex = undefined;
self.var_A9B8 = gettime();
scripts\asm\dlc4\dlc4_asm::clearasmaction();
scripts\aitypes\dlc4\bt_state_api::btstate_endstates(param_00);
}
//Function Number: 9
movingmelee_attackdone(param_00,param_01)
{
return 0;
}
//Function Number: 10
trymeleeattacks(param_00)
{
var_01 = scripts\asm\dlc4\dlc4_asm::getenemy();
if(!isdefined(var_01))
{
return 0;
}
var_02 = scripts\asm\dlc4\dlc4_asm::gettunedata();
if(isdefined(self.var_A9B8) && gettime() - self.var_A9B8 < var_02.min_time_between_melee_attacks_ms)
{
return 0;
}
if(abs(var_01.origin[2] - self.origin[2]) > var_02.melee_max_z_diff)
{
return 0;
}
var_03 = var_01.origin;
if(isdefined(self.var_233))
{
var_03 = scripts\aitypes\dlc4\behavior_utils::getpredictedenemypos(var_01,var_02.avg_time_to_impact);
}
var_04 = distancesquared(var_03,self.origin);
if(var_04 < var_02.stand_melee_dist_sq)
{
scripts\aitypes\dlc4\bt_action_api::setdesiredbtaction(param_00,"stand_melee");
return 1;
}
var_05 = randomint(var_02.movingattackdisttoattacksq.size);
var_06 = distancesquared(self.origin,var_01.origin);
if(var_06 > var_02.non_predicted_move_melee_dist_sq)
{
if(var_04 > var_02.movingattackdisttoattacksq[var_05])
{
return 0;
}
}
if(var_06 > var_02.check_reachable_dist_sq)
{
var_07 = self method_84AC();
var_08 = getclosestpointonnavmesh(var_01.origin,self);
if(!navisstraightlinereachable(var_07,var_08,self))
{
return 0;
}
}
self.var_1198.movingmeleeattackindex = var_05;
scripts\aitypes\dlc4\bt_action_api::setdesiredbtaction(param_00,"moving_melee");
return 1;
}

View File

@ -0,0 +1,77 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\dlc4\simple_action.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 6
* Decompile Time: 320 ms
* Timestamp: 10/26/2023 11:58:39 PM
*******************************************************************/
//Function Number: 1
setupsimplebtaction(param_00,param_01,param_02)
{
if(!isdefined(param_00))
{
param_00 = ::simpleaction_begin;
}
if(!isdefined(param_01))
{
param_01 = ::simpleaction_tick;
}
if(!isdefined(param_02))
{
param_02 = ::simpleaction_end;
}
scripts\aitypes\dlc4\bt_action_api::setupbtaction("simple_action",param_00,param_01,param_02);
}
//Function Number: 2
simpleaction_begin(param_00)
{
scripts\asm\dlc4\dlc4_asm::setasmaction(self.simple_action);
scripts\aitypes\dlc4\bt_state_api::asm_wait_state_setup(param_00,self.simple_action,self.simple_action);
scripts\aitypes\dlc4\bt_state_api::btstate_transitionstate(param_00,self.simple_action);
var_01 = scripts\aitypes\dlc4\bt_state_api::btstate_getinstancedata(param_00);
var_01.simple_action = self.simple_action;
self.simple_action = undefined;
}
//Function Number: 3
simpleaction_tick(param_00)
{
if(scripts\aitypes\dlc4\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
return level.var_111AE;
}
//Function Number: 4
simpleaction_end(param_00)
{
self method_841F();
scripts\asm\dlc4\dlc4_asm::clearasmaction();
var_01 = scripts\aitypes\dlc4\bt_state_api::btstate_getinstancedata(param_00);
var_02 = var_01.simple_action;
var_01.simple_action = undefined;
self notify(var_02 + "_done");
}
//Function Number: 5
dosimpleaction_immediate(param_00,param_01)
{
self.simple_action = param_01;
scripts\aitypes\dlc4\bt_action_api::setdesiredbtaction(param_00,"simple_action");
}
//Function Number: 6
dosimpleaction(param_00,param_01)
{
self.simple_action = param_01;
self.nextaction = "simple_action";
}

View File

@ -0,0 +1,108 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\dlc4\wander.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 4
* Decompile Time: 181 ms
* Timestamp: 10/26/2023 11:58:40 PM
*******************************************************************/
//Function Number: 1
findrandomnavpoint(param_00,param_01)
{
if(!isdefined(param_00) || !isdefined(param_01))
{
param_00 = 300;
param_01 = 1200;
}
var_02 = anglestoforward(self.angles);
var_03 = anglestoright(self.angles);
var_04 = var_03 * -1;
var_05 = var_02 * -1;
var_06 = [];
var_06[0] = var_02;
var_06[1] = var_03;
var_06[2] = var_04;
var_06[3] = var_05;
var_06 = scripts\common\utility::array_randomize(var_06);
var_07 = param_00 * 2;
foreach(var_09 in var_06)
{
var_0A = self.origin + var_09 * var_07;
var_0A = getclosestpointonnavmesh(var_0A);
var_0B = getrandomnavpoint(var_0A,param_00);
if(!isdefined(var_0B))
{
continue;
}
var_0C = distancesquared(var_0B,self.origin);
if(var_0C > param_00 * param_00)
{
return var_0B;
}
}
return undefined;
}
//Function Number: 2
wander_begin(param_00)
{
self.var_3135.var_9928[param_00] = spawnstruct();
self method_841F();
var_01 = scripts\asm\dlc4\dlc4_asm::gettunedata();
if(isdefined(var_01.wander_goal_radius))
{
self.var_3135.var_9928[param_00].wandergoalradiussq = var_01.wander_goal_radius * var_01.wander_goal_radius;
return;
}
self.var_3135.var_9928[param_00].wandergoalradiussq = 4096;
}
//Function Number: 3
wander_tick(param_00)
{
var_01 = scripts\asm\dlc4\dlc4_asm::getenemy();
if(isdefined(var_01))
{
return level.var_111AE;
}
var_02 = scripts\aitypes\dlc4\bt_state_api::btstate_getinstancedata(param_00);
if(isdefined(self.var_233) && distancesquared(self.var_233,self.origin) > var_02.wandergoalradiussq)
{
return level.var_E87A;
}
if(!isdefined(var_02.var_13845))
{
var_03 = scripts\asm\dlc4\dlc4_asm::gettunedata();
var_02.var_13845 = gettime() + randomintrange(var_03.wander_min_wait_time_ms,var_03.wander_max_wait_time_ms);
return level.var_E87A;
}
else if(gettime() < var_03.var_13845)
{
return level.var_E87A;
}
var_04 = findrandomnavpoint();
if(!isdefined(var_04))
{
var_03.var_13845 = gettime() + 150;
return level.var_E87A;
}
var_03.var_13845 = undefined;
self method_8286(var_04);
return level.var_E87A;
}
//Function Number: 4
wander_end(param_00)
{
self.var_3135.var_9928[param_00] = undefined;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,813 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\karatemaster\behaviors.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 30
* Decompile Time: 1198 ms
* Timestamp: 10/26/2023 11:58:48 PM
*******************************************************************/
//Function Number: 1
init(param_00)
{
var_01 = gettime();
self.var_3135.nextteleporttime = var_01 + 1000;
self.var_3135.lastflyingkicktime = 0;
self.var_3135.var_AA2C = var_01;
return level.var_111AE;
}
//Function Number: 2
pickdesiredmeleeanimindex(param_00)
{
var_01 = param_00 + "_melee";
if(isdefined(level.karatemastermeleedist[var_01]))
{
var_02 = scripts\mp\agents\karatemaster\karatemaster_agent::getenemy();
if(isdefined(var_02))
{
var_03 = [];
var_04 = distance2dsquared(self.origin,var_02.origin);
for(var_05 = 0;var_05 < level.karatemastermeleedist[var_01].size;var_05++)
{
var_06 = level.karatemastermeleedist[var_01][var_05];
if(var_06 * var_06 < var_04)
{
var_03[var_03.size] = var_05;
continue;
}
break;
}
var_05 = 0;
if(var_03.size > 0)
{
var_07 = randomint(var_03.size);
var_05 = var_03[var_07];
self.desiredmovemeleeindex[var_01] = var_05;
}
self.desiredmovemeleedist = level.karatemastermeleedist[var_01][var_05] + scripts\mp\agents\karatemaster\karatemaster_tunedata::gettunedata().cwiggleroom;
self.desiredmovemeleetimetoimpact = level.karatemastermeleetimetoimpact[var_01][var_05];
}
self.lastdesiredmovemeleetime = gettime();
}
}
//Function Number: 3
pickbetterenemy(param_00,param_01)
{
var_02 = self method_805F(param_00);
var_03 = self method_805F(param_01);
if(var_02 != var_03)
{
if(var_02)
{
return param_00;
}
return param_01;
}
var_04 = distancesquared(self.origin,param_00.origin);
var_05 = distancesquared(self.origin,param_01.origin);
if(var_04 < var_05)
{
return param_00;
}
return param_01;
}
//Function Number: 4
shouldignoreenemy(param_00)
{
if(!isalive(param_00))
{
return 1;
}
if(param_00.ignoreme || isdefined(param_00.var_222) && param_00.var_222.ignoreme)
{
return 1;
}
if(lib_0F74::func_1002C(param_00))
{
return 1;
}
return 0;
}
//Function Number: 5
func_12E8A()
{
if(isdefined(self.myenemy) && !shouldignoreenemy(self.myenemy))
{
if(gettime() - self.myenemystarttime < 3000)
{
return self.myenemy;
}
}
var_00 = undefined;
foreach(var_02 in level.players)
{
if(shouldignoreenemy(var_02))
{
continue;
}
if(scripts\common\utility::istrue(var_02.isfasttravelling))
{
continue;
}
if(!isdefined(var_00))
{
var_00 = var_02;
continue;
}
var_00 = pickbetterenemy(var_00,var_02);
}
if(!isdefined(var_00))
{
self.myenemy = undefined;
return undefined;
}
if(!isdefined(self.myenemy) || var_00 != self.myenemy)
{
self.myenemy = var_00;
self.myenemystarttime = gettime();
}
}
//Function Number: 6
updateeveryframe(param_00)
{
lib_0A1B::func_2968(self.desiredmovemode);
func_12E8A();
if(!isdefined(self.desiredmovemeleeindex[self.desiredmovemode]))
{
pickdesiredmeleeanimindex(self.desiredmovemode);
}
return level.var_6AD5;
}
//Function Number: 7
candostandmelee()
{
if(isdefined(self.var_233))
{
return 0;
}
return 1;
}
//Function Number: 8
getmovemeleedistsq()
{
if(isdefined(self.desiredmovemeleedist))
{
return self.desiredmovemeleedist * self.desiredmovemeleedist;
}
return scripts\mp\agents\karatemaster\karatemaster_tunedata::gettunedata().cmeleemaxstanddistsq;
}
//Function Number: 9
getpredictedenemypos()
{
var_00 = scripts\mp\agents\karatemaster\karatemaster_agent::getenemy();
var_01 = var_00 getvelocity();
var_02 = length2d(var_01);
var_03 = self.desiredmovemeleetimetoimpact;
var_04 = var_00.origin + var_01 * var_03;
return var_04;
}
//Function Number: 10
getstandmeleeattackswithinrange(param_00,param_01)
{
var_02 = [];
var_03 = scripts\mp\agents\karatemaster\karatemaster_tunedata::gettunedata();
for(var_04 = level.karatemastermeleedist["stand_melee"].size - 1;var_04 >= 0;var_04--)
{
var_05 = param_00 + param_01 * level.karatemastermeleetimetoimpact["stand_melee"][var_04];
var_06 = distance2d(var_05,self.origin);
if(var_06 > level.karatemastermeleedist["stand_melee"][var_04] + var_03.cstandattackwiggleroom)
{
break;
}
var_02[var_02.size] = var_04;
}
if(var_02.size == 0)
{
return undefined;
}
return var_02;
}
//Function Number: 11
pickstandmeleeattack(param_00)
{
var_01 = getstandmeleeattackswithinrange(param_00.origin,param_00 getvelocity());
if(!isdefined(var_01))
{
return 0;
}
var_02 = randomint(var_01.size);
var_03 = var_01[var_02];
self.desiredmovemeleeindex["stand_melee"] = var_03;
self.desiredmovemeleedist = level.karatemastermeleedist["stand_melee"][var_03] + scripts\mp\agents\karatemaster\karatemaster_tunedata::gettunedata().cwiggleroom;
self.desiredmovemeleetimetoimpact = level.karatemastermeleetimetoimpact["stand_melee"][var_03];
self.var_1198.meleetype = "stand_melee";
return 1;
}
//Function Number: 12
func_10039(param_00)
{
var_01 = scripts\mp\agents\karatemaster\karatemaster_agent::getenemy();
if(!isdefined(var_01))
{
return level.var_6AD5;
}
if(abs(var_01.origin[2] - self.origin[2]) > scripts\mp\agents\karatemaster\karatemaster_tunedata::gettunedata().cmeleemaxzdiff)
{
return level.var_6AD5;
}
if(candostandmelee())
{
if(!pickstandmeleeattack(var_01))
{
return level.var_6AD5;
}
return level.var_111AE;
}
var_02 = scripts\mp\agents\karatemaster\karatemaster_tunedata::gettunedata();
var_03 = var_01.origin;
if(isdefined(self.var_233))
{
var_03 = getpredictedenemypos();
}
if(gettime() > self.lastdesiredmovemeleetime + var_02.crethinkmovemeleetime)
{
pickdesiredmeleeanimindex(self.desiredmovemode);
}
var_04 = distance2dsquared(var_03,self.origin);
if(var_04 > getmovemeleedistsq())
{
return level.var_6AD5;
}
var_05 = self method_84AC();
var_06 = getclosestpointonnavmesh(var_01.origin,self);
if(!navisstraightlinereachable(var_05,var_06,self))
{
return level.var_6AD5;
}
self.var_1198.meleetype = self.desiredmovemode + "_melee";
return level.var_111AE;
}
//Function Number: 13
func_B599(param_00)
{
var_01 = scripts\mp\agents\karatemaster\karatemaster_agent::getenemy();
self.var_3135.var_9928[param_00] = spawnstruct();
self.var_3135.var_9928[param_00].var_B64D = var_01;
self.var_3135.var_9928[param_00].var_10DFF = gettime();
self.var_1198.bmeleerequested = 1;
self.var_1198.var_B64D = var_01;
self.var_4B26 = var_01;
}
//Function Number: 14
func_5902(param_00)
{
var_01 = 5000;
if(gettime() > self.var_3135.var_9928[param_00].var_10DFF + var_01)
{
return level.var_6AD5;
}
if(lib_0A1A::func_232A("melee_anim","end"))
{
return level.var_111AE;
}
self method_8286(self.origin);
self method_8287(36);
return level.var_E87A;
}
//Function Number: 15
melee_cleanup(param_00)
{
self.var_3135.var_9928[param_00] = undefined;
self.var_1198.bmeleerequested = undefined;
self.var_1198.var_B64D = undefined;
self.var_1198.meleetype = undefined;
var_01 = scripts\mp\agents\karatemaster\karatemaster_tunedata::gettunedata();
var_02 = gettime() + var_01.cminteleportwaittimeaftermelee;
if(!isdefined(self.var_3135.nextteleporttime) || self.var_3135.nextteleporttime <= var_02)
{
self.var_3135.nextteleporttime = var_02;
}
pickdesiredmeleeanimindex(self.desiredmovemode);
}
//Function Number: 16
ispositiontooclosetoaplayer(param_00)
{
foreach(var_02 in level.players)
{
var_03 = abs(var_02.origin[2] - param_00[2]);
if(var_03 > 128)
{
continue;
}
var_04 = distancesquared(param_00,var_02.origin);
if(var_04 < 10000)
{
return 1;
}
}
return 0;
}
//Function Number: 17
findteleportspotinfrontofsprinter(param_00,param_01)
{
var_02 = param_00.angles[1];
var_03 = param_00.angles;
var_04 = undefined;
for(var_05 = 0;var_05 < 5;var_05++)
{
var_06 = randomintrange(param_01.csprinterteleportminangledelta,param_01.csprinterteleportmaxangledelta);
if(randomint(100) < 50)
{
var_06 = var_06 * -1;
}
var_07 = randomfloatrange(param_01.csprinterteleportmindist,param_01.csprinterteleportmaxdist);
var_08 = angleclamp180(var_03[1] + var_06);
var_09 = anglestoforward((0,var_08,0));
var_0A = param_00.origin + var_09 * var_07;
var_04 = getclosestpointonnavmesh(var_0A,self);
if(ispositiontooclosetoaplayer(var_04))
{
var_04 = undefined;
continue;
}
if(navisstraightlinereachable(var_04,param_00.origin))
{
break;
}
var_04 = undefined;
}
if(!isdefined(var_04))
{
return undefined;
}
var_0B = self method_8428(var_04,param_00.origin,0,0,"seeker");
if(!isdefined(var_0B) || var_0B.size < 2)
{
self.var_3135.nextteleporttime = gettime() + 150;
return undefined;
}
var_0C = getgroundposition(var_04,8);
if(abs(var_0C[2] - var_04[2]) > 60)
{
return undefined;
}
return var_0C;
}
//Function Number: 18
findteleportspotinenemyview(param_00,param_01)
{
var_02 = param_00.angles[1];
var_03 = param_00.angles;
var_04 = param_00.origin + param_00 getvelocity() * 0.5;
var_05 = distance(self.origin,var_04);
var_06 = undefined;
for(var_07 = 0;var_07 < 4;var_07++)
{
var_08 = randomintrange(param_01.cfastteleportminangledelta,param_01.cfastteleportmaxangledelta);
if(randomint(100) < 50)
{
var_08 = var_08 * -1;
}
var_09 = randomfloatrange(param_01.cfastteleportcloseindistpctmin,param_01.cfastteleportcloseindistpctmax);
var_0A = var_05 * var_09;
if(var_0A < param_01.cfastteleportmindisttoenemytoteleport)
{
var_0A = param_01.cfastteleportmindisttoenemytoteleport;
}
var_0B = angleclamp180(var_03[1] + var_08);
var_0C = anglestoforward((0,var_0B,0));
var_0D = var_04 + var_0C * var_0A;
var_06 = getclosestpointonnavmesh(var_0D,self);
if(!isdefined(var_06))
{
continue;
}
if(ispositiontooclosetoaplayer(var_06))
{
var_06 = undefined;
continue;
}
break;
}
if(!isdefined(var_06))
{
return undefined;
}
var_0E = self method_8428(var_06,param_00.origin,0,0);
if(!isdefined(var_0E) || var_0E.size < 2)
{
return undefined;
}
var_0F = getgroundposition(var_06,8);
if(abs(var_0F[2] - var_06[2]) > 60)
{
return undefined;
}
return var_0F;
}
//Function Number: 19
findbunchedupteleportspot(param_00,param_01)
{
return findteleportspotinenemyview(param_00,param_01.bunchedupteleportparams);
}
//Function Number: 20
iscrowded(param_00,param_01)
{
var_02 = scripts\mp\_mp_agent::func_7D95(self.agent_type);
var_03 = [];
var_04 = 0;
foreach(var_06 in var_02)
{
var_07 = distancesquared(var_06.origin,self.origin);
if(var_07 > param_01.ccrowdedradiussq)
{
continue;
}
if(!var_06 lib_0A1A::func_2354("run_loop") && !var_06 lib_0A1A::func_2354("sprint_loop") && !var_06 lib_0A1A::func_2354("walk_loop") && !var_06 lib_0A1A::func_2354("slow_walk_loop"))
{
continue;
}
if(isdefined(var_06.var_10C) && var_06.var_10C == param_00)
{
var_04++;
}
}
if(var_04 >= param_01.ccrowdedcount)
{
return 1;
}
return 0;
}
//Function Number: 21
getfastteleportdest(param_00,param_01)
{
if(lib_0A1A::func_2354("teleport_in"))
{
return undefined;
}
if(lib_0A1A::func_2354("teleport_out"))
{
return undefined;
}
var_02 = distance(param_00.origin,self.origin);
if(!isdefined(self.var_233) || var_02 > param_01.cminenemydistforlongpathteleport)
{
if(!isdefined(self.var_233) || self method_841E() > var_02 * param_01.cfastteleportduetolongpathmultiplier)
{
var_03 = findteleportspotinenemyview(param_00,param_01.fastteleportparams);
if(isdefined(var_03))
{
return var_03;
}
}
}
var_04 = scripts\mp\agents\karatemaster\karatemaster_agent::getdamageaccumulator();
if(isdefined(var_04))
{
if(param_01.cfastteleportduetodamagechance > 0 && var_04.accumulateddamage > 0)
{
var_05 = var_04.accumulateddamage / self.maxhealth;
if(var_05 >= param_01.cfastteleportdamagepct)
{
scripts\mp\agents\karatemaster\karatemaster_agent::cleardamageaccumulator();
var_06 = randomint(100);
if(var_06 < param_01.cfastteleportduetodamagechance)
{
self.var_1198.bfastteleport = 1;
return findteleportspotinenemyview(param_00,param_01.fastteleportparams);
}
}
}
}
if(param_01.ballowteleportinfrontofsprinter && param_00 method_81BD())
{
var_07 = param_00.origin - self.origin;
var_08 = anglestoforward(param_00.angles);
var_09 = vectordot(var_07,var_08);
if(var_09 > 0)
{
var_0A = findteleportspotinfrontofsprinter(param_00,param_01.sprinterteleportparams);
if(isdefined(var_0A))
{
self.var_1198.bfastteleport = 1;
return var_0A;
}
}
}
if(iscrowded(param_00,param_01))
{
self.var_1198.bfastteleport = 1;
if(!param_00 method_81BD())
{
var_0B = param_00 getvelocity();
var_0C = length2dsquared(var_0B);
if(var_0C > 16129)
{
var_07 = vectornormalize(param_00.origin - self.origin);
var_08 = anglestoforward(param_00.angles);
var_0D = vectordot(var_07,var_08);
var_0E = vectornormalize(var_0B);
var_0F = vectordot(var_08,var_0E);
if(var_0D > param_01.cplayerfacingawayfrommedot && var_0F > 0.9)
{
var_0A = findteleportspotinfrontofsprinter(param_00,param_01.runnerteleportparams);
if(isdefined(var_0A))
{
self.var_1198.bfastteleport = 1;
return var_0A;
}
}
}
}
return findbunchedupteleportspot(param_00,param_01);
}
return undefined;
}
//Function Number: 22
shouldteleport(param_00)
{
if(scripts\common\utility::istrue(self.bdisableteleport))
{
return level.var_6AD5;
}
var_01 = scripts\mp\agents\karatemaster\karatemaster_agent::getenemy();
if(!isdefined(var_01))
{
return level.var_6AD5;
}
if(gettime() < self.var_3135.nextteleporttime)
{
return level.var_6AD5;
}
var_02 = scripts\mp\agents\karatemaster\karatemaster_tunedata::gettunedata();
if(!isdefined(level.last_karatemaster_teleport_time))
{
level.last_karatemaster_teleport_time = gettime();
}
else if(gettime() - level.last_karatemaster_teleport_time < var_02.cteleportmintimebetween_global)
{
return level.var_6AD5;
}
if(isdefined(self.var_233))
{
var_03 = self method_841E();
var_04 = self method_84F9(var_03);
if(isdefined(var_04))
{
var_05 = var_04["node"];
var_06 = var_04["position"];
var_07 = var_05.var_48;
if(isdefined(var_07))
{
var_08 = self.var_238F;
var_09 = level.var_2303[var_08];
var_0A = var_09.var_10E2F[var_07];
if(!isdefined(var_0A))
{
var_07 = "traverse_external";
}
if(var_07 == "traverse_external")
{
self.initialteleportpos = var_06;
self.btraversalteleport = 1;
level.last_karatemaster_teleport_time = gettime();
return level.var_111AE;
}
}
}
}
if(scripts\common\utility::istrue(self.var_9CEC))
{
return level.var_6AD5;
}
self.initialteleportpos = getfastteleportdest(var_01,var_02);
if(isdefined(self.initialteleportpos))
{
level.last_karatemaster_teleport_time = gettime();
return level.var_111AE;
}
return level.var_6AD5;
}
//Function Number: 23
teleport_init(param_00)
{
self.var_3135.var_9928[param_00] = spawnstruct();
self.var_3135.var_9928[param_00].var_10DFF = gettime();
if(scripts\common\utility::istrue(self.var_1198.bfastteleport) || scripts\common\utility::istrue(self.btraversalteleport))
{
var_01 = self.initialteleportpos;
}
else
{
var_01 = scripts\mp\agents\karatemaster\karatemaster_agent::findgoodteleportcloserspot();
}
self.var_3135.var_9928[param_00].teleportspot = var_01;
if(isdefined(var_01))
{
self.var_1198.bteleportrequested = 1;
self.var_1198.teleportspot = var_01;
}
self method_841F();
}
//Function Number: 24
doteleport(param_00)
{
if(!isdefined(self.var_3135.var_9928[param_00].teleportspot))
{
return level.var_6AD5;
}
var_01 = 10000;
if(gettime() > self.var_3135.var_9928[param_00].var_10DFF + var_01)
{
return level.var_6AD5;
}
if(lib_0A1A::func_232A("teleport_anim","end"))
{
self.var_3135.nextteleporttime = gettime() + scripts\mp\agents\karatemaster\karatemaster_tunedata::gettunedata().cteleportmintimebetween;
return level.var_111AE;
}
return level.var_E87A;
}
//Function Number: 25
teleport_cleanup(param_00)
{
self.var_3135.var_9928[param_00] = undefined;
self.var_1198.bteleportrequested = undefined;
self.var_1198.teleportspot = undefined;
}
//Function Number: 26
followenemy_begin(param_00)
{
self.var_3135.var_9928[param_00] = gettime();
}
//Function Number: 27
findclosestenemy()
{
var_00 = 99999999;
var_01 = undefined;
foreach(var_03 in level.players)
{
if(!isalive(var_03))
{
continue;
}
if(var_03.ignoreme || isdefined(var_03.var_222) && var_03.var_222.ignoreme)
{
continue;
}
if(lib_0F74::func_1002C(var_03))
{
continue;
}
var_04 = distancesquared(self.origin,var_03.origin);
if(!isdefined(var_01) || var_04 < var_00)
{
var_01 = var_03;
var_00 = var_04;
}
}
return var_01;
}
//Function Number: 28
followenemy_tick(param_00)
{
var_01 = scripts\mp\agents\karatemaster\karatemaster_agent::getenemy();
if(!isdefined(var_01))
{
var_01 = findclosestenemy();
}
if(!isdefined(var_01))
{
return level.var_6AD5;
}
var_02 = gettime();
if(var_02 >= self.var_3135.var_9928[param_00] || distancesquared(self.origin,var_01.origin) < 10000)
{
var_03 = getclosestpointonnavmesh(var_01.origin,self);
self method_8286(var_03);
self.var_3135.var_9928[param_00] = var_02 + 200;
}
return level.var_E87A;
}
//Function Number: 29
followenemy_end(param_00)
{
self.var_3135.var_9928[param_00] = undefined;
}
//Function Number: 30
spawnkaratemaster(param_00)
{
param_00 endon("death");
}

View File

@ -0,0 +1,788 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\pamgrier\behaviors.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 44
* Decompile Time: 1793 ms
* Timestamp: 10/26/2023 11:58:51 PM
*******************************************************************/
//Function Number: 1
init(param_00)
{
setupbtstates();
self.desiredaction = undefined;
self.var_A980 = 0;
self.lastenemyengagetime = 0;
self.myenemy = undefined;
self.myenemystarttime = 0;
self.last_health = self.health;
self.needtochilltime = undefined;
self.numteleportattacks = 0;
var_01 = scripts\mp\agents\pamgrier\pamgrier_tunedata::gettunedata();
self.nextattacktime = gettime() + var_01.max_time_between_attacks;
self.nextrevivetime = gettime() + var_01.min_time_between_revivals;
return level.var_111AE;
}
//Function Number: 2
setupaction(param_00,param_01,param_02,param_03)
{
var_04 = spawnstruct();
var_04.fnbegin = param_01;
var_04.fntick = param_02;
var_04.fnend = param_03;
if(!isdefined(self.actions))
{
self.actions = [];
}
self.actions[param_00] = var_04;
}
//Function Number: 3
setupbtstates()
{
setupaction("chillin",::chillin_begin,::chillin_tick,::chillin_end);
setupaction("revive_player",::reviveplayer_begin,::reviveplayer_tick,::reviveplayer_end);
setupaction("teleport_attack",::teleportattack_begin,::teleportattack_tick,::teleportattack_end);
setupaction("melee_attack",::melee_begin,::melee_tick,::melee_end);
setupaction("return_home",::returnhome_begin,::returnhome_tick,::returnhome_end);
setupaction("wait",::wait_begin,::wait_tick,::wait_end);
}
//Function Number: 4
func_12E8A()
{
return scripts\mp\agents\pamgrier\pamgrier_agent::getenemy();
}
//Function Number: 5
updateeveryframe(param_00)
{
var_01 = func_12E8A();
if(isdefined(var_01))
{
if(self method_805F(var_01))
{
self.var_A980 = gettime();
self.var_1B2 = var_01.origin;
if(!isdefined(self.enemyreacquiredtime))
{
self.enemyreacquiredtime = self.var_A980;
}
}
else
{
self.enemyreacquiredtime = undefined;
}
}
else
{
self.var_A980 = 0;
self.var_1B2 = undefined;
self.enemyreacquiredtime = undefined;
}
return level.var_6AD5;
}
//Function Number: 6
getcurrentdesiredaction(param_00)
{
return self.var_3135.var_9928[param_00].desiredaction;
}
//Function Number: 7
findnearbypamtarget()
{
var_00 = scripts\mp\agents\pamgrier\pamgrier_tunedata::gettunedata();
var_01 = [];
foreach(var_03 in var_00.target_agent_types)
{
var_04 = scripts\mp\_mp_agent::func_7D95(var_03);
var_01 = scripts\common\utility::array_combine(var_01,var_04);
}
if(!isdefined(var_01) || var_01.size == 0)
{
return undefined;
}
var_06 = undefined;
var_07 = 0;
foreach(var_09 in var_01)
{
var_0A = distancesquared(var_09.origin,self.origin);
if(var_0A > var_00.melee_attack_range_sq)
{
continue;
}
if(!isalive(var_09))
{
continue;
}
if(!isdefined(var_06))
{
var_06 = var_09;
var_07 = var_0A;
continue;
}
if(var_0A < var_07)
{
var_06 = var_09;
var_07 = var_0A;
}
}
if(!isdefined(var_06))
{
return undefined;
}
return var_06;
}
//Function Number: 8
teleporttargetcompare(param_00,param_01)
{
var_02 = distance2dsquared(self.origin,param_00.origin);
var_03 = distance2dsquared(self.origin,param_01.origin);
return var_02 < var_03;
}
//Function Number: 9
shoultryteleportattack()
{
return level.pam_grier_toggles["teleport_attack"];
}
//Function Number: 10
findpamteleporttarget(param_00)
{
var_01 = scripts\mp\agents\pamgrier\pamgrier_tunedata::gettunedata();
var_02 = [];
foreach(var_04 in var_01.target_agent_types)
{
var_05 = scripts\mp\_mp_agent::func_7D95(var_04);
var_02 = scripts\common\utility::array_combine(var_02,var_05);
}
if(!isdefined(var_02) || var_02.size == 0)
{
return 0;
}
if(scripts\common\utility::istrue(param_00))
{
var_02 = scripts\common\utility::array_randomize(var_02);
}
else
{
var_02 = scripts\common\utility::func_22C3(var_02,::teleporttargetcompare);
}
foreach(var_08 in var_02)
{
if(!isalive(var_08))
{
continue;
}
if(scripts\common\utility::istrue(param_00) && isdefined(var_08.var_233))
{
if(scripts\common\utility::istrue(var_08.var_2BE7))
{
continue;
}
var_09 = var_08 method_841E();
if(var_09 < var_01.min_target_path_dist_to_goal)
{
continue;
}
var_0A = var_08 method_845D(var_01.teleport_attack_dist_to_target);
}
else
{
var_0B = vectornormalize(var_09.origin - self.origin);
var_0A = var_08.origin - var_0B * var_01.teleport_attack_dist_to_target;
}
var_08.bdisableteleport = 1;
self.pamenemy = var_08;
self.teleportpos = var_0A;
self.teleportangles = vectortoangles(var_08.origin - var_0A);
self.teleportfromchillin = scripts\common\utility::istrue(param_00);
return 1;
}
return 0;
}
//Function Number: 11
isvalidteleportposition(param_00)
{
if(!isdefined(level.pamvalidteleportpositioncenter))
{
return 1;
}
var_01 = distance2dsquared(level.pamvalidteleportpositioncenter,param_00);
if(var_01 > level.pamvalidteleportradius * level.pamvalidteleportradius)
{
return 0;
}
return 1;
}
//Function Number: 12
shouldtryplayerrevive()
{
return level.pam_grier_toggles["revive_player"];
}
//Function Number: 13
findplayertorevive()
{
var_00 = scripts\mp\agents\pamgrier\pamgrier_tunedata::gettunedata();
var_01 = sortbydistance(level.players,self.origin);
foreach(var_03 in var_01)
{
if(!isvalidteleportposition(var_03.origin))
{
continue;
}
if(scripts\common\utility::istrue(var_03.inlaststand) && !scripts\common\utility::istrue(var_03.var_9B79) && !scripts\common\utility::istrue(var_03.in_afterlife_arcade))
{
var_04 = anglestoforward(var_03.angles);
var_05 = anglestoright(var_03.angles);
var_06 = var_03.origin + var_04 * var_00.revive_forward_offset + var_05 * var_00.revive_right_offset;
var_07 = var_03.origin - var_06;
var_08 = vectortoangles(var_07);
var_08 = (0,var_08[1],0);
var_09 = getclosestpointonnavmesh(var_06,self);
if(abs(var_09[2] - var_06[2]) > var_00.max_revive_snap_z_dist)
{
continue;
}
var_0A = distance2dsquared(var_06,var_09);
if(var_0A > var_00.max_revive_snapp_2d_dist_sq)
{
continue;
}
self.reviveplayer = var_03;
self.revivepos = var_09;
return 1;
}
}
return 0;
}
//Function Number: 14
wait_begin(param_00)
{
var_01 = scripts\aitypes\ratking\bt_state_api::btstate_getinstancedata(param_00);
var_02 = scripts\mp\agents\pamgrier\pamgrier_tunedata::gettunedata();
var_01.teleporttime = gettime() + var_02.min_wait_time_before_teleport;
var_01.waitendtime = gettime() + randomintrange(var_02.min_wait_time,var_02.max_wait_time);
}
//Function Number: 15
wait_tick(param_00)
{
var_01 = scripts\aitypes\ratking\bt_state_api::btstate_getinstancedata(param_00);
var_02 = gettime();
self method_841F();
var_03 = 0;
if(!isdefined(self.forcenextrevivetime) || var_02 < self.forcenextrevivetime)
{
self.pamenemy = findnearbypamtarget();
if(isdefined(self.pamenemy))
{
if(shouldtrymeleeattack() && trymeleeattacks())
{
return level.var_6AD5;
}
self.pamenemy = undefined;
}
}
else
{
self.pamenemy = undefined;
var_03 = 1;
}
if(scripts\common\utility::istrue(var_03) || var_02 > self.nextrevivetime)
{
if(shouldtryplayerrevive() && findplayertorevive())
{
self.desiredaction = "revive_player";
return level.var_6AD5;
}
else
{
self.nextrevivetime = var_02 + 1000;
self.forcenextrevivetime = undefined;
}
}
if(var_02 < var_01.teleporttime)
{
return level.var_E87A;
}
if(isdefined(self.needtochilltime) && var_02 > self.needtochilltime)
{
self.desiredaction = "return_home";
return level.var_6AD5;
}
var_04 = scripts\mp\agents\pamgrier\pamgrier_tunedata::gettunedata();
if(self.numteleportattacks >= var_04.max_teleports_per_chill)
{
self.desiredaction = "return_home";
return level.var_6AD5;
}
if(shoultryteleportattack() && findpamteleporttarget())
{
self.desiredaction = "teleport_attack";
self.numteleportattacks = self.numteleportattacks + 1;
var_05 = vectortoangles(self.teleportpos - self.origin);
self.desiredyaw = var_05[1];
return level.var_6AD5;
}
if(var_03 > var_02.waitendtime)
{
self.desiredaction = "return_home";
return level.var_6AD5;
}
return level.var_E87A;
}
//Function Number: 16
wait_end(param_00)
{
scripts\aitypes\ratking\bt_state_api::btstate_endstates(param_00);
scripts\asm\pamgrier\pamgrier_asm::clearaction();
}
//Function Number: 17
chillin_begin(param_00)
{
self.bchillin = 1;
scripts\mp\agents\pamgrier\pamgrier_agent::clearpassive();
var_01 = scripts\mp\agents\pamgrier\pamgrier_tunedata::gettunedata();
var_02 = scripts\aitypes\ratking\bt_state_api::btstate_getinstancedata(param_00);
var_02.endchilltime = gettime() + randomintrange(var_01.min_chillin_time,var_01.max_chillin_time);
self.numteleportattacks = 0;
}
//Function Number: 18
chillin_tick(param_00)
{
var_01 = scripts\aitypes\ratking\bt_state_api::btstate_getinstancedata(param_00);
var_02 = gettime();
if(var_02 < var_01.endchilltime)
{
return level.var_E87A;
}
if(var_02 > self.nextrevivetime)
{
if(findplayertorevive())
{
self.desiredaction = "revive_player";
return level.var_111AE;
}
else
{
self.nextrevivetime = var_02 + 1000;
}
}
if(var_02 > self.nextattacktime)
{
if(shoultryteleportattack() && findpamteleporttarget(1))
{
self.desiredaction = "teleport_attack";
return level.var_111AE;
}
else
{
self.nextattacktime = var_02 + 500;
}
}
return level.var_E87A;
}
//Function Number: 19
chillin_end(param_00)
{
self.bchillin = 0;
self.needtochilltime = gettime() + scripts\mp\agents\pamgrier\pamgrier_tunedata::gettunedata().max_non_chillin_time;
}
//Function Number: 20
teleportattack_begin(param_00)
{
requestteleport(self.teleportpos,self.teleportangles,"teleport_attack");
self method_841F();
scripts\aitypes\ratking\bt_state_api::asm_wait_state_setup(param_00,"teleport","teleport_out",::teleportattack_teleportdone,undefined,undefined,8000);
scripts\aitypes\ratking\bt_state_api::btstate_transitionstate(param_00,"teleport");
}
//Function Number: 21
teleportattack_teleportdone(param_00,param_01)
{
scripts\asm\pamgrier\pamgrier_asm::clearaction();
}
//Function Number: 22
teleportattack_tick(param_00)
{
self method_841F();
if(scripts\aitypes\ratking\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
self.desiredaction = "wait";
return level.var_6AD5;
return level.var_6AD5;
}
//Function Number: 23
teleportattack_end(param_00)
{
var_01 = scripts\mp\agents\pamgrier\pamgrier_tunedata::gettunedata();
self.nextattacktime = gettime() + randomintrange(var_01.min_time_between_attacks,var_01.max_time_between_attacks);
scripts\aitypes\ratking\bt_state_api::btstate_endstates(param_00);
scripts\asm\pamgrier\pamgrier_asm::clearaction();
self.desiredyaw = undefined;
}
//Function Number: 24
reviveplayer_begin(param_00)
{
var_01 = distancesquared(self.reviveplayer.origin,self.origin);
var_02 = scripts\mp\agents\pamgrier\pamgrier_tunedata::gettunedata();
if(var_01 > var_02.max_dist_to_revive_player_sq)
{
var_03 = self.reviveplayer.origin - self.revivepos;
var_04 = vectortoangles(var_03);
var_04 = (0,var_04[1],0);
requestteleport(self.revivepos,var_04,"revive_player");
scripts\aitypes\ratking\bt_state_api::asm_wait_state_setup(param_00,"teleport","teleport_out",::reviveplayer_teleportdone,undefined,undefined,8000);
scripts\aitypes\ratking\bt_state_api::btstate_transitionstate(param_00,"teleport");
return;
}
scripts\asm\pamgrier\pamgrier_asm::setaction("revive_player");
scripts\aitypes\ratking\bt_state_api::asm_wait_state_setup(param_00,"revive_player","revive_player_outro",::reviveplayer_revivedone,undefined,undefined,8000);
scripts\aitypes\ratking\bt_state_api::btstate_transitionstate(param_00,"revive_player");
}
//Function Number: 25
reviveplayer_tick(param_00)
{
if(scripts\aitypes\ratking\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
return level.var_6AD5;
}
//Function Number: 26
reviveplayer_teleportdone(param_00,param_01)
{
if(isdefined(self.forcenextrevivetime) && gettime() > self.forcenextrevivetime)
{
self.pamenemy = undefined;
self.forcenextrevivetime = undefined;
}
else
{
self.pamenemy = findnearbypamtarget();
if(isdefined(self.pamenemy))
{
if(trymeleeattacks())
{
return;
}
}
}
scripts\asm\pamgrier\pamgrier_asm::setaction("revive_player");
scripts\aitypes\ratking\bt_state_api::asm_wait_state_setup(param_00,"revive_player","revive_player_outro",::reviveplayer_revivedone,undefined,undefined,8000);
scripts\aitypes\ratking\bt_state_api::btstate_transitionstate(param_00,"revive_player");
}
//Function Number: 27
reviveplayer_revivedone(param_00,param_01)
{
}
//Function Number: 28
reviveplayer_end(param_00)
{
var_01 = scripts\mp\agents\pamgrier\pamgrier_tunedata::gettunedata();
self.var_55B0 = 0;
self.forcenextrevivetime = undefined;
if(isdefined(self.reviveplayer))
{
if(!scripts\common\utility::istrue(self.reviveplayer.inlaststand))
{
if(scripts\cp\_utility::isplayingsolo() || scripts\common\utility::istrue(level.only_one_player))
{
self.nextrevivetime = gettime() + var_01.min_time_between_revivals_solo;
}
else
{
self.nextrevivetime = gettime() + var_01.min_time_between_revivals;
}
}
else
{
self.forcenextrevivetime = gettime() + var_01.max_time_to_attack_targets_when_player_needs_revive_ms;
}
}
else
{
self.nextrevivetime = gettime() + var_01.min_time_between_revivals;
}
self.reviveplayer = undefined;
self.reviveanimindex = undefined;
scripts\aitypes\ratking\bt_state_api::btstate_endstates(param_00);
scripts\asm\pamgrier\pamgrier_asm::clearaction();
}
//Function Number: 29
melee_begin(param_00)
{
var_01 = getcurrentdesiredaction(param_00);
scripts\asm\pamgrier\pamgrier_asm::setaction(var_01);
var_02 = scripts\mp\agents\pamgrier\pamgrier_agent::getenemy();
if(var_01 == "melee_attack")
{
var_03 = var_02 getvelocity();
var_04 = length2dsquared(var_03);
if(var_04 < 144)
{
self method_841F();
}
else
{
self.bmovingmelee = 1;
}
}
else
{
self method_841F();
}
self.var_4B26 = var_02;
scripts\aitypes\ratking\bt_state_api::asm_wait_state_setup(param_00,var_01,var_01);
scripts\aitypes\ratking\bt_state_api::btstate_transitionstate(param_00,var_01);
}
//Function Number: 30
melee_tick(param_00)
{
self method_841F();
if(scripts\aitypes\ratking\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
return level.var_6AD5;
}
//Function Number: 31
melee_end(param_00)
{
self.var_4B26 = undefined;
self.bmovingmelee = undefined;
scripts\asm\pamgrier\pamgrier_asm::clearaction();
scripts\aitypes\ratking\bt_state_api::btstate_endstates(param_00);
}
//Function Number: 32
requestteleport(param_00,param_01,param_02)
{
self.teleportpos = param_00;
self.teleportangles = param_01;
self.teleporttype = param_02;
scripts\asm\pamgrier\pamgrier_asm::setaction("teleport");
}
//Function Number: 33
returnhome_begin(param_00)
{
if(!isdefined(level.pam_grier_chillin_origins) || level.pam_grier_chillin_origins.size == 0)
{
requestteleport(self.chillinpos,self.chillinangles,"return_home");
}
else
{
var_01 = randomint(level.pam_grier_chillin_origins.size);
var_02 = vectortoangles(level.pam_grier_chillin_origins[var_01] - self.origin);
self.desiredyaw = var_02[1];
requestteleport(level.pam_grier_chillin_origins[var_01],level.pam_grier_chillin_angles[var_01],"return_home");
}
scripts\aitypes\ratking\bt_state_api::asm_wait_state_setup(param_00,"return_home","teleport_out",undefined,undefined,undefined,8000);
scripts\aitypes\ratking\bt_state_api::btstate_transitionstate(param_00,"return_home");
}
//Function Number: 34
returnhome_tick(param_00)
{
self method_841F();
if(scripts\aitypes\ratking\bt_state_api::btstate_tickstates(param_00))
{
return level.var_E87A;
}
self.desiredaction = "chillin";
return level.var_6AD5;
}
//Function Number: 35
returnhome_end(param_00)
{
self.desiredyaw = undefined;
scripts\asm\pamgrier\pamgrier_asm::clearaction();
}
//Function Number: 36
shouldtrymeleeattack()
{
return level.pam_grier_toggles["melee_attack"];
}
//Function Number: 37
trymeleeattacks(param_00)
{
var_01 = scripts\mp\agents\pamgrier\pamgrier_agent::getenemy();
if(!isdefined(param_00))
{
param_00 = distancesquared(self.origin,var_01.origin);
}
if(!ispointonnavmesh(var_01.origin))
{
if(param_00 > self.var_B631 * self.var_B631)
{
return 0;
}
}
else if(param_00 > self.var_B62F)
{
return 0;
}
self.desiredaction = "melee_attack";
return 1;
}
//Function Number: 38
decideaction(param_00)
{
if(!isdefined(self.needtochilltime))
{
self.desiredaction = "return_home";
}
else
{
self.desiredaction = "wait";
}
return level.var_111AE;
}
//Function Number: 39
doaction_begin(param_00)
{
self.var_3135.var_9928[param_00] = spawnstruct();
self.var_3135.var_9928[param_00].desiredaction = self.desiredaction;
var_01 = self.actions[self.desiredaction].fnbegin;
self.desiredaction = undefined;
if(isdefined(var_01))
{
[[ var_01 ]](param_00);
}
}
//Function Number: 40
doaction_tick(param_00)
{
var_01 = getcurrentdesiredaction(param_00);
var_02 = self.actions[var_01].fntick;
if(isdefined(var_02))
{
var_03 = [[ var_02 ]](param_00);
if(!isdefined(self.desiredaction))
{
return var_03;
}
}
if(isdefined(self.desiredaction))
{
doaction_end(param_00);
doaction_begin(param_00);
return level.var_E87A;
}
return level.var_6AD5;
}
//Function Number: 41
doaction_end(param_00)
{
var_01 = getcurrentdesiredaction(param_00);
var_02 = self.actions[var_01].fnend;
if(isdefined(var_02))
{
[[ var_02 ]](param_00);
}
scripts\aitypes\ratking\bt_state_api::btstate_endstates(param_00);
self.var_3135.var_9928[param_00] = undefined;
}
//Function Number: 42
followenemy_begin(param_00)
{
self.var_3135.var_9928[param_00] = spawnstruct();
}
//Function Number: 43
followenemy_tick(param_00)
{
return level.var_111AE;
}
//Function Number: 44
followenemy_end(param_00)
{
self.var_3135.var_9928[param_00] = undefined;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,300 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\ratking\bt_state_api.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 17
* Decompile Time: 693 ms
* Timestamp: 10/26/2023 11:58:56 PM
*******************************************************************/
//Function Number: 1
btstate_getinstancedata(param_00)
{
return self.var_3135.var_9928[param_00];
}
//Function Number: 2
btstate_setupstate(param_00,param_01,param_02,param_03)
{
var_04 = spawnstruct();
var_04.name = param_00;
var_04.fnbegin = param_01;
var_04.fntick = param_02;
var_04.fnend = param_03;
if(!isdefined(self.bt_states))
{
self.bt_states = [];
}
self.bt_states[param_00] = var_04;
return var_04;
}
//Function Number: 3
btstate_getcurrentstatename(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(!isdefined(var_01))
{
return undefined;
}
if(!isdefined(var_01.var_4C07))
{
return undefined;
}
return var_01.var_4C07.name;
}
//Function Number: 4
btstate_tickstates(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(!isdefined(var_01.var_4C07))
{
return 0;
}
if(isdefined(var_01.var_4C07.fntick))
{
var_02 = var_01.var_4C07.name;
var_03 = self [[ var_01.var_4C07.fntick ]](param_00);
if(isdefined(var_01.var_4C07) && var_01.var_4C07.name != var_02)
{
return btstate_tickstates(param_00);
}
return var_03;
}
return 1;
}
//Function Number: 5
btstate_endstates(param_00)
{
if(isdefined(self.bt_states))
{
var_01 = btstate_getinstancedata(param_00);
if(isdefined(var_01.var_4C07) && isdefined(var_01.var_4C07.fnend))
{
[[ var_01.var_4C07.fnend ]](param_00,undefined);
var_01.var_4C07 = undefined;
}
}
}
//Function Number: 6
btstate_destroystates()
{
self.bt_states = undefined;
}
//Function Number: 7
btstate_endcurrentstate(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(isdefined(var_01.var_4C07) && isdefined(var_01.var_4C07.fnend))
{
self [[ var_01.var_4C07.fnend ]](param_00,undefined);
}
var_01.var_4C07 = undefined;
}
//Function Number: 8
btstate_transitionstate(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_03 = undefined;
if(isdefined(var_02.var_4C07))
{
var_03 = var_02.var_4C07.name;
if(isdefined(var_02.var_4C07.fnend))
{
[[ var_02.var_4C07.fnend ]](param_00,param_01);
}
}
var_04 = self.bt_states[param_01];
var_02.var_4C07 = var_04;
if(isdefined(var_04.fnbegin))
{
self [[ var_04.fnbegin ]](param_00,var_03);
}
}
//Function Number: 9
chase_target_state_setup(param_00,param_01,param_02,param_03,param_04)
{
btstate_setupstate("chase",::chase_target_state_begin,::chase_target_state_tick,::chase_target_state_end);
var_05 = btstate_getinstancedata(param_00);
var_05.var_15C = param_01;
var_05.target = param_02;
var_05.fncallback = param_03;
var_05.maxchasetime = param_04;
}
//Function Number: 10
chase_target_state_begin(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_02.var_10DFF = gettime();
self method_8284(var_02.target);
self method_8287(var_02.var_15C * 0.9);
}
//Function Number: 11
chase_target_state_done(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_03 = var_02.fncallback;
btstate_endcurrentstate(param_00);
if(isdefined(var_03))
{
[[ var_03 ]](param_00,param_01);
}
}
//Function Number: 12
chase_target_state_tick(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(!isalive(var_01.target))
{
chase_target_state_done(param_00,"aborted");
return 0;
}
if(isdefined(var_01.maxchasetime))
{
if(gettime() > var_01.var_10DFF + var_01.maxchasetime)
{
chase_target_state_done(param_00,"timeout");
return 0;
}
}
var_02 = distance2dsquared(self.origin,var_01.target.origin);
if(var_02 > squared(var_01.var_15C))
{
return 1;
}
if(abs(self.origin[2] - var_01.target.origin[2] > 32))
{
return 1;
}
chase_target_state_done(param_00,"arrived");
return 1;
}
//Function Number: 13
chase_target_state_end(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_02.var_15C = undefined;
var_02.target = undefined;
var_02.fncallback = undefined;
}
//Function Number: 14
asm_wait_state_setup(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(!isdefined(param_04))
{
param_04 = "ASM_Finished";
}
btstate_setupstate(param_01,::asm_wait_state_begin,::asm_wait_state_tick,::asm_wait_state_end);
var_07 = btstate_getinstancedata(param_00);
var_07.endevent = param_04;
var_07.asmstate = param_02;
var_07.fncallback = param_03;
if(isdefined(param_06))
{
var_07.timeouttime = gettime() + param_06;
}
else
{
var_07.timeouttime = gettime() + 2000;
}
if(isdefined(param_05))
{
var_07.var_6393 = gettime() + param_05;
}
}
//Function Number: 15
asm_wait_state_begin(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_02.bisinasmstate = lib_0A1A::func_2354(var_02.asmstate);
}
//Function Number: 16
asm_wait_state_tick(param_00)
{
var_01 = btstate_getinstancedata(param_00);
var_02 = lib_0A1A::func_2354(var_01.asmstate);
if(var_02 && !var_01.bisinasmstate)
{
var_01.bisinasmstate = 1;
}
var_03 = 0;
var_04 = undefined;
if(!var_02 && var_01.bisinasmstate)
{
var_03 = 1;
var_04 = "aborted";
}
else if(isdefined(var_01.timeouttime) && !var_02 && !var_01.bisinasmstate)
{
if(gettime() > var_01.timeouttime)
{
var_03 = 1;
var_04 = "timeout";
}
}
else if(isdefined(var_01.var_6393))
{
if(gettime() > var_01.var_6393)
{
var_03 = 1;
var_04 = "end_time";
}
}
if(lib_0A1A::func_232A(var_01.asmstate,var_01.endevent))
{
var_03 = 1;
var_04 = "end_event";
}
if(var_03)
{
var_05 = var_01.fncallback;
btstate_endcurrentstate(param_00);
if(isdefined(var_05))
{
[[ var_05 ]](param_00,var_04);
}
}
return !var_03;
}
//Function Number: 17
asm_wait_state_end(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_02.endevent = undefined;
var_02.asmstate = undefined;
var_02.fncallback = undefined;
var_02.bisinasmstate = undefined;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,297 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\slasher\bt_state_api.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 17
* Decompile Time: 933 ms
* Timestamp: 10/26/2023 11:59:00 PM
*******************************************************************/
//Function Number: 1
btstate_getinstancedata(param_00)
{
return self.var_3135.var_9928[param_00];
}
//Function Number: 2
btstate_setupstate(param_00,param_01,param_02,param_03)
{
var_04 = spawnstruct();
var_04.name = param_00;
var_04.fnbegin = param_01;
var_04.fntick = param_02;
var_04.fnend = param_03;
if(!isdefined(self.bt_states))
{
self.bt_states = [];
}
self.bt_states[param_00] = var_04;
return var_04;
}
//Function Number: 3
btstate_getcurrentstatename(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(!isdefined(var_01))
{
return undefined;
}
if(!isdefined(var_01.var_4C07))
{
return undefined;
}
return var_01.var_4C07.name;
}
//Function Number: 4
btstate_tickstates(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(!isdefined(var_01.var_4C07))
{
return 0;
}
if(isdefined(var_01.var_4C07.fntick))
{
var_02 = var_01.var_4C07.name;
var_03 = self [[ var_01.var_4C07.fntick ]](param_00);
if(isdefined(var_01.var_4C07) && var_01.var_4C07.name != var_02)
{
return btstate_tickstates(param_00);
}
return var_03;
}
return 1;
}
//Function Number: 5
btstate_endstates(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(isdefined(var_01.var_4C07) && isdefined(var_01.var_4C07.fnend))
{
[[ var_01.var_4C07.fnend ]](param_00,undefined);
var_01.var_4C07 = undefined;
}
}
//Function Number: 6
btstate_destroystates()
{
self.bt_states = undefined;
}
//Function Number: 7
btstate_endcurrentstate(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(isdefined(var_01.var_4C07) && isdefined(var_01.var_4C07.fnend))
{
self [[ var_01.var_4C07.fnend ]](param_00,undefined);
}
var_01.var_4C07 = undefined;
}
//Function Number: 8
btstate_transitionstate(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_03 = undefined;
if(isdefined(var_02.var_4C07))
{
var_03 = var_02.var_4C07.name;
if(isdefined(var_02.var_4C07.fnend))
{
[[ var_02.var_4C07.fnend ]](param_00,param_01);
}
}
var_04 = self.bt_states[param_01];
var_02.var_4C07 = var_04;
if(isdefined(var_04.fnbegin))
{
self [[ var_04.fnbegin ]](param_00,var_03);
}
}
//Function Number: 9
chase_target_state_setup(param_00,param_01,param_02,param_03,param_04)
{
btstate_setupstate("chase",::chase_target_state_begin,::chase_target_state_tick,::chase_target_state_end);
var_05 = btstate_getinstancedata(param_00);
var_05.var_15C = param_01;
var_05.target = param_02;
var_05.fncallback = param_03;
var_05.maxchasetime = param_04;
}
//Function Number: 10
chase_target_state_begin(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_02.var_10DFF = gettime();
self method_8284(var_02.target);
self method_8287(var_02.var_15C * 0.9);
}
//Function Number: 11
chase_target_state_done(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_03 = var_02.fncallback;
btstate_endcurrentstate(param_00);
if(isdefined(var_03))
{
[[ var_03 ]](param_00,param_01);
}
}
//Function Number: 12
chase_target_state_tick(param_00)
{
var_01 = btstate_getinstancedata(param_00);
if(!isalive(var_01.target))
{
chase_target_state_done(param_00,"aborted");
return 0;
}
if(isdefined(var_01.maxchasetime))
{
if(gettime() > var_01.var_10DFF + var_01.maxchasetime)
{
chase_target_state_done(param_00,"timeout");
return 0;
}
}
var_02 = distance2dsquared(self.origin,var_01.target.origin);
if(var_02 > squared(var_01.var_15C))
{
return 1;
}
if(abs(self.origin[2] - var_01.target.origin[2] > 32))
{
return 1;
}
chase_target_state_done(param_00,"arrived");
return 1;
}
//Function Number: 13
chase_target_state_end(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_02.var_15C = undefined;
var_02.target = undefined;
var_02.fncallback = undefined;
}
//Function Number: 14
asm_wait_state_setup(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(!isdefined(param_04))
{
param_04 = "ASM_Finished";
}
btstate_setupstate(param_01,::asm_wait_state_begin,::asm_wait_state_tick,::asm_wait_state_end);
var_07 = btstate_getinstancedata(param_00);
var_07.endevent = param_04;
var_07.asmstate = param_02;
var_07.fncallback = param_03;
if(isdefined(param_06))
{
var_07.timeouttime = gettime() + param_06;
}
else
{
var_07.timeouttime = gettime() + 2000;
}
if(isdefined(param_05))
{
var_07.var_6393 = gettime() + param_05;
}
}
//Function Number: 15
asm_wait_state_begin(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_02.bisinasmstate = lib_0A1A::func_2354(var_02.asmstate);
}
//Function Number: 16
asm_wait_state_tick(param_00)
{
var_01 = btstate_getinstancedata(param_00);
var_02 = lib_0A1A::func_2354(var_01.asmstate);
if(var_02 && !var_01.bisinasmstate)
{
var_01.bisinasmstate = 1;
}
var_03 = 0;
var_04 = undefined;
if(!var_02 && var_01.bisinasmstate)
{
var_03 = 1;
var_04 = "aborted";
}
else if(isdefined(var_01.timeouttime) && !var_02 && !var_01.bisinasmstate)
{
if(gettime() > var_01.timeouttime)
{
var_03 = 1;
var_04 = "timeout";
}
}
else if(isdefined(var_01.var_6393))
{
if(gettime() > var_01.var_6393)
{
var_03 = 1;
var_04 = "end_time";
}
}
if(!var_03 && lib_0A1A::func_232A(var_01.asmstate,var_01.endevent))
{
var_03 = 1;
var_04 = "end_event";
}
if(var_03)
{
var_05 = var_01.fncallback;
btstate_endcurrentstate(param_00);
if(isdefined(var_05))
{
[[ var_05 ]](param_00,var_04);
}
}
return !var_03;
}
//Function Number: 17
asm_wait_state_end(param_00,param_01)
{
var_02 = btstate_getinstancedata(param_00);
var_02.endevent = undefined;
var_02.asmstate = undefined;
var_02.fncallback = undefined;
var_02.bisinasmstate = undefined;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,124 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\superslasher\util.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 13
* Decompile Time: 528 ms
* Timestamp: 10/26/2023 11:59:05 PM
*******************************************************************/
//Function Number: 1
isonroof()
{
return scripts\aitypes\superslasher\behaviors::superslasher_isonroof();
}
//Function Number: 2
forcestagger(param_00)
{
if(!isdefined(self.var_1198.bstaggerrequested))
{
self.var_1198.bstaggerrequested = 1;
if(scripts\aitypes\superslasher\behaviors::superslasher_isonground())
{
thread queueinterruptible("ground_stagger");
}
else if(isonroof())
{
thread queueinterruptible("roof_stagger");
}
if(param_00)
{
func_5CF8();
}
}
}
//Function Number: 3
forcetrapped(param_00)
{
if(!isdefined(self.var_1198.btraprequested))
{
self.var_1198.btraprequested = 1;
self.var_1198.trapduration = param_00;
thread queueinterruptible("ground_trapped");
self.btrophysystem = undefined;
scripts\aitypes\superslasher\behaviors::shieldcleanup();
}
}
//Function Number: 4
queueinterruptible(param_00)
{
self notify("queue_interruptible");
self endon("death");
self endon("queue_interruptible");
while(isdefined(self.var_1198.buninterruptibleanim))
{
wait(0.05);
}
lib_0A1A::func_237C(param_00);
}
//Function Number: 5
dosawsharks()
{
scripts\asm\superslasher\superslasher_actions::killallsharks(self);
self notify("kill_sharks");
scripts\asm\superslasher\superslasher_actions::dosawsharks("ground");
}
//Function Number: 6
requestshockwave()
{
self.bshockwaverequested = 1;
}
//Function Number: 7
requestgotoroof()
{
if(scripts\aitypes\superslasher\behaviors::superslasher_isonground() || scripts\aitypes\superslasher\behaviors::superslasher_isgoingtoground())
{
self.var_1198.bgotoroofrequested = 1;
}
}
//Function Number: 8
requestgotoground()
{
if(scripts\aitypes\superslasher\behaviors::superslasher_isonroof() || scripts\aitypes\superslasher\behaviors::superslasher_isgoingtoroof())
{
self.var_1198.bgotogroundrequested = 1;
}
}
//Function Number: 9
ongotoroof_init()
{
self.btrophysystem = undefined;
scripts\aitypes\superslasher\behaviors::shieldcleanup();
}
//Function Number: 10
onroof_init()
{
}
//Function Number: 11
ongotoground_init()
{
}
//Function Number: 12
onground_init()
{
}
//Function Number: 13
func_5CF8()
{
scripts\common\utility::flag_set("force_drop_max_ammo");
}

View File

@ -0,0 +1,202 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\zombie_dlc1\behaviors.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 3
* Decompile Time: 144 ms
* Timestamp: 10/26/2023 11:59:05 PM
*******************************************************************/
//Function Number: 1
checkscripteddlc1(param_00)
{
return lib_0C2B::func_3E48(param_00);
}
//Function Number: 2
chaseenemydlc1(param_00)
{
lib_0A1B::func_297E(1);
if(self.var_180)
{
self.var_4B26 = undefined;
return level.var_6AD5;
}
if(isdefined(self.var_8C35) && self.var_8C35)
{
self.var_C189 = 0;
}
if(!isdefined(self.var_10C))
{
return level.var_6AD5;
}
if(isdefined(self.var_10C.var_9BE1) || isdefined(self.var_10C.var_9C54))
{
self.var_4B26 = undefined;
return level.var_6AD5;
}
if(isdefined(self.var_10C.killing_time))
{
self.var_4B26 = undefined;
return level.var_6AD5;
}
var_01 = undefined;
if(isdefined(self.var_571B) && lib_0F74::func_100AB())
{
var_01 = self.var_571B;
}
else if(isdefined(self.attackent))
{
var_01 = self.attackent;
}
else if(isdefined(self.var_10C) && !lib_0F74::func_1002C(self.var_10C))
{
var_01 = self.var_10C;
}
if(!isdefined(var_01))
{
if(isdefined(self.var_4B26))
{
self.var_2AB8 = 1;
}
self.var_4B26 = undefined;
return level.var_6AD5;
}
var_03 = self.var_252B + self.var_257 * 2;
var_04 = var_03 * var_03;
var_05 = self.var_252B;
var_06 = var_05 * var_05;
self.var_4B26 = var_01;
var_07 = lib_0F74::func_7FAA(var_01);
var_08 = var_07.var_656D;
var_09 = distancesquared(var_07.origin,self.origin);
var_0A = distancesquared(var_08,self.origin);
var_0B = self.var_2AB8;
if(var_0A < squared(self.var_257) && distancesquared(var_08,var_07.origin) > squared(self.var_257))
{
var_0B = 1;
self notify("attack_anim","end");
}
if(!var_0B && var_0A > var_04 && var_09 > var_06)
{
var_0B = 1;
}
if(var_07.var_1312B)
{
if(!var_0B && var_0A <= var_04 && var_09 > squared(self.var_503C))
{
var_0B = 1;
}
self method_8287(self.var_503C);
}
else if(!lib_0F74::func_8C39(var_01,self.var_B640))
{
self method_8287(self.var_503C);
var_0B = 1;
}
else
{
self method_8287(var_03);
if(var_0A <= var_04)
{
var_07.origin = self.origin;
var_0B = 1;
}
}
if(var_0B)
{
var_02 = getclosestpointonnavmesh(var_07.origin);
if(distancesquared(var_02,var_07.origin) > 10000)
{
return level.var_6AD5;
}
self method_8286(var_02);
}
return level.var_111AE;
}
//Function Number: 3
seekenemydlc1(param_00)
{
if(isdefined(self.var_5969))
{
return level.var_6AD5;
}
var_01 = [];
foreach(var_03 in level.players)
{
if(var_03.ignoreme || isdefined(var_03.var_222) && var_03.var_222.ignoreme)
{
continue;
}
if(lib_0F74::func_1002C(var_03))
{
continue;
}
if(!isalive(var_03))
{
continue;
}
var_01[var_01.size] = var_03;
}
var_05 = undefined;
if(var_01.size > 0)
{
var_05 = sortbydistance(var_01,self.origin);
}
if(isdefined(var_05) && var_05.size > 0)
{
var_06 = 300;
var_07 = distancesquared(var_05[0].origin,self.origin);
if(var_07 < var_06 * var_06)
{
var_06 = 16;
}
var_08 = var_06 * var_06;
if(self.var_2AB8 || distancesquared(self method_827E(),var_05[0].origin) > var_08)
{
var_09 = isdefined(var_05[0].zipline);
var_0A = var_05[0].origin;
if(var_09)
{
var_0A = var_05[0].zipline.traversal_end;
}
var_0B = getclosestpointonnavmesh(var_0A,self);
if(!var_09 && distancesquared(var_0B,var_05[0].origin) > var_08)
{
return level.var_6AD5;
}
self method_8286(var_0B);
self.var_2AB8 = 0;
}
lib_0A1B::func_297E(1);
return level.var_111AE;
}
return level.var_6AD5;
}

View File

@ -0,0 +1,206 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\zombie_dlc2\behaviors.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 3
* Decompile Time: 141 ms
* Timestamp: 10/26/2023 11:59:06 PM
*******************************************************************/
//Function Number: 1
checkscripteddlc2(param_00)
{
return lib_0C2B::func_3E48(param_00);
}
//Function Number: 2
chaseenemydlc2(param_00)
{
lib_0A1B::func_297E(1);
if(self.var_180)
{
self.var_4B26 = undefined;
return level.var_6AD5;
}
if(isdefined(self.var_8C35) && self.var_8C35)
{
self.var_C189 = 0;
}
if(!isdefined(self.var_10C))
{
return level.var_6AD5;
}
if(isdefined(self.var_10C.var_9BE1) || isdefined(self.var_10C.var_9C54))
{
self.var_4B26 = undefined;
return level.var_6AD5;
}
if(isdefined(self.var_10C.killing_time))
{
self.var_4B26 = undefined;
return level.var_6AD5;
}
var_01 = undefined;
if(isdefined(self.var_571B) && lib_0F74::func_100AB())
{
var_01 = self.var_571B;
}
else if(isdefined(self.attackent))
{
var_01 = self.attackent;
}
else if(isdefined(self.var_10C) && !lib_0F74::func_1002C(self.var_10C))
{
var_01 = self.var_10C;
}
if(!isdefined(var_01))
{
if(isdefined(self.var_4B26))
{
self.var_2AB8 = 1;
}
self.var_4B26 = undefined;
return level.var_6AD5;
}
var_03 = self.var_252B + self.var_257 * 2;
var_04 = var_03 * var_03;
var_05 = self.var_252B;
var_06 = var_05 * var_05;
self.var_4B26 = var_01;
var_07 = lib_0F74::func_7FAA(var_01);
var_08 = var_07.var_656D;
var_09 = distancesquared(var_07.origin,self.origin);
var_0A = distancesquared(var_08,self.origin);
var_0B = self.var_2AB8;
if(var_0A < squared(self.var_257) && distancesquared(var_08,var_07.origin) > squared(self.var_257))
{
var_0B = 1;
self notify("attack_anim","end");
}
if(!var_0B && var_0A > var_04 && var_09 > var_06)
{
var_0B = 1;
}
if(var_07.var_1312B)
{
if(!var_0B && var_0A <= var_04 && var_09 > squared(self.var_503C))
{
var_0B = 1;
}
self method_8287(self.var_503C);
}
else if(!lib_0F74::func_8C39(var_01,self.var_B640))
{
self method_8287(self.var_503C);
var_0B = 1;
}
else
{
self method_8287(var_03);
if(var_0A <= var_04)
{
var_07.origin = self.origin;
var_0B = 1;
}
}
if(var_0B)
{
var_02 = getclosestpointonnavmesh(var_07.origin);
if(distancesquared(var_02,var_07.origin) > 10000)
{
return level.var_6AD5;
}
self method_8286(var_02);
}
return level.var_111AE;
}
//Function Number: 3
seekenemydlc2(param_00)
{
if(isdefined(self.var_5969))
{
return level.var_6AD5;
}
var_01 = [];
foreach(var_03 in level.players)
{
if(var_03.ignoreme || isdefined(var_03.var_222) && var_03.var_222.ignoreme)
{
continue;
}
if(lib_0F74::func_1002C(var_03))
{
continue;
}
if(!isalive(var_03))
{
continue;
}
var_01[var_01.size] = var_03;
}
var_05 = undefined;
if(var_01.size > 0)
{
var_05 = sortbydistance(var_01,self.origin);
}
if(isdefined(var_05) && var_05.size > 0)
{
var_06 = 300;
if(self.agent_type == "skater")
{
var_06 = 32;
}
var_07 = distancesquared(var_05[0].origin,self.origin);
if(var_07 < var_06 * var_06)
{
var_06 = 16;
}
var_08 = var_06 * var_06;
if(self.var_2AB8 || distancesquared(self method_827E(),var_05[0].origin) > var_08)
{
var_09 = var_05[0].origin;
if(isdefined(var_05[0].zipline))
{
var_09 = var_05[0].zipline.traversal_end;
}
var_0A = getclosestpointonnavmesh(var_09,self);
if(distancesquared(var_0A,var_05[0].origin) > var_08)
{
return level.var_6AD5;
}
self method_8286(var_0A);
self.var_2AB8 = 0;
}
lib_0A1B::func_297E(1);
return level.var_111AE;
}
return level.var_6AD5;
}

View File

@ -0,0 +1,228 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\zombie_dlc3\behaviors.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 3
* Decompile Time: 178 ms
* Timestamp: 10/26/2023 11:59:06 PM
*******************************************************************/
//Function Number: 1
checkscripteddlc(param_00)
{
return lib_0C2B::func_3E48(param_00);
}
//Function Number: 2
chaseenemydlc(param_00)
{
lib_0A1B::func_297E(1);
if(self.var_180)
{
self.var_4B26 = undefined;
return level.var_6AD5;
}
if(isdefined(self.var_8C35) && self.var_8C35)
{
self.var_C189 = 0;
}
if(isdefined(self.enemyoverride))
{
if(self.enemyoverride.ignoreme || isdefined(self.enemyoverride.var_222) && self.enemyoverride.var_222.ignoreme || !isalive(self.enemyoverride) || lib_0F74::func_1002C(self.enemyoverride))
{
self.enemyoverride = undefined;
}
else if(isdefined(self.enemyoverride))
{
var_01 = distancesquared(self.enemyoverride.origin,self.origin);
if(var_01 < 65536)
{
self.enemyoverride = undefined;
}
}
}
var_02 = self.enemyoverride;
if(!isdefined(var_02))
{
var_02 = self.var_10C;
}
if(!isdefined(var_02))
{
return level.var_6AD5;
}
if(isdefined(var_02.var_9BE1) || isdefined(var_02.var_9C54))
{
self.var_4B26 = undefined;
return level.var_6AD5;
}
if(isdefined(var_02.killing_time))
{
self.var_4B26 = undefined;
return level.var_6AD5;
}
var_03 = undefined;
if(isdefined(self.var_571B) && lib_0F74::func_100AB())
{
var_03 = self.var_571B;
}
else if(isdefined(self.attackent))
{
var_03 = self.attackent;
}
else if(isdefined(self.var_10C) && !lib_0F74::func_1002C(self.var_10C))
{
var_03 = self.var_10C;
}
if(!isdefined(var_03))
{
if(isdefined(self.var_4B26))
{
self.var_2AB8 = 1;
}
self.var_4B26 = undefined;
return level.var_6AD5;
}
var_05 = self.var_252B + self.var_257 * 2;
var_06 = var_05 * var_05;
var_07 = self.var_252B;
var_08 = var_07 * var_07;
self.var_4B26 = var_03;
var_09 = lib_0F74::func_7FAA(var_03);
var_0A = var_09.var_656D;
var_0B = distancesquared(var_09.origin,self.origin);
var_0C = distancesquared(var_0A,self.origin);
var_0D = self.var_2AB8;
if(var_0C < squared(self.var_257) && distancesquared(var_0A,var_09.origin) > squared(self.var_257))
{
var_0D = 1;
self notify("attack_anim","end");
}
if(!var_0D && var_0C > var_06 && var_0B > var_08)
{
var_0D = 1;
}
if(var_09.var_1312B)
{
if(!var_0D && var_0C <= var_06 && var_0B > squared(self.var_503C))
{
var_0D = 1;
}
self method_8287(self.var_503C);
}
else if(!lib_0F74::func_8C39(var_03,self.var_B640))
{
self method_8287(self.var_503C);
var_0D = 1;
}
else
{
self method_8287(var_05);
if(var_0C <= var_06)
{
var_09.origin = self.origin;
var_0D = 1;
}
}
if(var_0D)
{
var_04 = getclosestpointonnavmesh(var_09.origin);
if(distancesquared(var_04,var_09.origin) > 10000)
{
return level.var_6AD5;
}
self method_8286(var_04);
}
return level.var_111AE;
}
//Function Number: 3
seekenemydlc(param_00)
{
if(isdefined(self.var_5969))
{
return level.var_6AD5;
}
var_01 = [];
foreach(var_03 in level.players)
{
if(var_03.ignoreme || isdefined(var_03.var_222) && var_03.var_222.ignoreme)
{
continue;
}
if(lib_0F74::func_1002C(var_03))
{
continue;
}
if(!isalive(var_03))
{
continue;
}
var_01[var_01.size] = var_03;
}
var_05 = undefined;
if(var_01.size > 0)
{
var_05 = sortbydistance(var_01,self.origin);
}
if(isdefined(var_05) && var_05.size > 0)
{
var_06 = 300;
if(self.agent_type == "skater")
{
var_06 = 32;
}
var_07 = distancesquared(var_05[0].origin,self.origin);
if(var_07 < var_06 * var_06)
{
var_06 = 16;
}
var_08 = var_06 * var_06;
if(self.var_2AB8 || distancesquared(self method_827E(),var_05[0].origin) > var_08)
{
var_09 = var_05[0].origin;
if(isdefined(var_05[0].zipline))
{
var_09 = var_05[0].zipline.traversal_end;
}
var_0A = getclosestpointonnavmesh(var_09,self);
if(distancesquared(var_0A,var_05[0].origin) > var_08)
{
return level.var_6AD5;
}
self method_8286(var_0A);
self.var_2AB8 = 0;
}
lib_0A1B::func_297E(1);
return level.var_111AE;
}
return level.var_6AD5;
}

View File

@ -0,0 +1,206 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\zombie_dlc4\behaviors.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 3
* Decompile Time: 147 ms
* Timestamp: 10/26/2023 11:59:06 PM
*******************************************************************/
//Function Number: 1
checkscripteddlc(param_00)
{
return lib_0C2B::func_3E48(param_00);
}
//Function Number: 2
chaseenemydlc(param_00)
{
lib_0A1B::func_297E(1);
if(self.var_180)
{
self.var_4B26 = undefined;
return level.var_6AD5;
}
if(isdefined(self.var_8C35) && self.var_8C35)
{
self.var_C189 = 0;
}
if(!isdefined(self.var_10C))
{
return level.var_6AD5;
}
if(isdefined(self.var_10C.var_9BE1) || isdefined(self.var_10C.var_9C54))
{
self.var_4B26 = undefined;
return level.var_6AD5;
}
if(isdefined(self.var_10C.killing_time))
{
self.var_4B26 = undefined;
return level.var_6AD5;
}
var_01 = undefined;
if(isdefined(self.var_571B) && lib_0F74::func_100AB())
{
var_01 = self.var_571B;
}
else if(isdefined(self.attackent))
{
var_01 = self.attackent;
}
else if(isdefined(self.var_10C) && !lib_0F74::func_1002C(self.var_10C))
{
var_01 = self.var_10C;
}
if(!isdefined(var_01))
{
if(isdefined(self.var_4B26))
{
self.var_2AB8 = 1;
}
self.var_4B26 = undefined;
return level.var_6AD5;
}
var_03 = self.var_252B + self.var_257 * 2;
var_04 = var_03 * var_03;
var_05 = self.var_252B;
var_06 = var_05 * var_05;
self.var_4B26 = var_01;
var_07 = lib_0F74::func_7FAA(var_01);
var_08 = var_07.var_656D;
var_09 = distancesquared(var_07.origin,self.origin);
var_0A = distancesquared(var_08,self.origin);
var_0B = self.var_2AB8;
if(var_0A < squared(self.var_257) && distancesquared(var_08,var_07.origin) > squared(self.var_257))
{
var_0B = 1;
self notify("attack_anim","end");
}
if(!var_0B && var_0A > var_04 && var_09 > var_06)
{
var_0B = 1;
}
if(var_07.var_1312B)
{
if(!var_0B && var_0A <= var_04 && var_09 > squared(self.var_503C))
{
var_0B = 1;
}
self method_8287(self.var_503C);
}
else if(!lib_0F74::func_8C39(var_01,self.var_B640))
{
self method_8287(self.var_503C);
var_0B = 1;
}
else
{
self method_8287(var_03);
if(var_0A <= var_04)
{
var_07.origin = self.origin;
var_0B = 1;
}
}
if(var_0B)
{
var_02 = getclosestpointonnavmesh(var_07.origin);
if(distancesquared(var_02,var_07.origin) > 10000)
{
return level.var_6AD5;
}
self method_8286(var_02);
}
return level.var_111AE;
}
//Function Number: 3
seekenemydlc(param_00)
{
if(isdefined(self.var_5969))
{
return level.var_6AD5;
}
var_01 = [];
foreach(var_03 in level.players)
{
if(var_03.ignoreme || isdefined(var_03.var_222) && var_03.var_222.ignoreme)
{
continue;
}
if(lib_0F74::func_1002C(var_03))
{
continue;
}
if(!isalive(var_03))
{
continue;
}
var_01[var_01.size] = var_03;
}
var_05 = undefined;
if(var_01.size > 0)
{
var_05 = sortbydistance(var_01,self.origin);
}
if(isdefined(var_05) && var_05.size > 0)
{
var_06 = 300;
if(self.agent_type == "skater")
{
var_06 = 32;
}
var_07 = distancesquared(var_05[0].origin,self.origin);
if(var_07 < var_06 * var_06)
{
var_06 = 16;
}
var_08 = var_06 * var_06;
if(self.var_2AB8 || distancesquared(self method_827E(),var_05[0].origin) > var_08)
{
var_09 = var_05[0].origin;
if(isdefined(var_05[0].zipline))
{
var_09 = var_05[0].zipline.traversal_end;
}
var_0A = getclosestpointonnavmesh(var_09,self);
if(distancesquared(var_0A,var_05[0].origin) > var_08)
{
return level.var_6AD5;
}
self method_8286(var_0A);
self.var_2AB8 = 0;
}
lib_0A1B::func_297E(1);
return level.var_111AE;
}
return level.var_6AD5;
}

View File

@ -0,0 +1,644 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\aitypes\zombie_sasquatch\behaviors.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 35
* Decompile Time: 1342 ms
* Timestamp: 10/26/2023 11:59:08 PM
*******************************************************************/
//Function Number: 1
sasquatch_init(param_00)
{
var_01 = gettime();
self.var_3135.allowthrowtime = var_01 + 8000;
self.var_3135.allowrushtime = var_01 + 5000;
return level.var_111AE;
}
//Function Number: 2
isintrees(param_00)
{
return level.var_6AD5;
}
//Function Number: 3
updateeveryframe(param_00)
{
if(!isalive(self))
{
return level.var_6AD5;
}
if(isdefined(self.var_EF47) && self.var_EF47)
{
return level.var_6AD5;
}
var_01 = getclosestplayer();
self.var_3135.var_10C = var_01;
return level.var_111AE;
}
//Function Number: 4
shouldswingaround(param_00)
{
return level.var_6AD5;
}
//Function Number: 5
shouldthrowrock(param_00)
{
if(!isdefined(self.var_3135.var_10C))
{
return level.var_6AD5;
}
if(gettime() < self.var_3135.allowthrowtime)
{
return level.var_6AD5;
}
var_01 = distance2dsquared(self.var_3135.var_10C.origin,self.origin);
if(var_01 > 360000)
{
return level.var_6AD5;
}
if(var_01 < 16384)
{
return level.var_6AD5;
}
if(!self method_805F(self.var_3135.var_10C))
{
return level.var_6AD5;
}
return level.var_111AE;
}
//Function Number: 6
throwattack_check(param_00)
{
var_01 = lib_0A1B::func_2930();
if(!isdefined(var_01))
{
return level.var_6AD5;
}
if(!isalive(var_01))
{
return level.var_6AD5;
}
if(distancesquared(self.origin,var_01.origin) > 518400)
{
return level.var_6AD5;
}
return level.var_111AE;
}
//Function Number: 7
throwattack_init(param_00)
{
self.var_3135.var_9928[param_00] = spawnstruct();
self.var_3135.var_9928[param_00].var_10DFF = gettime();
self.var_3135.var_9928[param_00].target = self.var_3135.var_10C;
self method_8286(self.origin);
self method_8287(64);
lib_0A1B::func_296C(1,self.var_3135.var_10C);
}
//Function Number: 8
throwattack(param_00)
{
var_01 = 5000;
if(gettime() - self.var_3135.var_9928[param_00].var_10DFF > var_01)
{
return level.var_6AD5;
}
if(lib_0A1A::func_232A("throwevent","end"))
{
return level.var_111AE;
}
return level.var_E87A;
}
//Function Number: 9
throwattack_cleanup(param_00)
{
self.var_3135.var_9928[param_00] = undefined;
lib_0A1B::func_296C(0);
self.var_3135.allowthrowtime = gettime() + 8000;
}
//Function Number: 10
func_10039(param_00)
{
if(!isdefined(self.var_3135.var_10C))
{
return level.var_6AD5;
}
var_01 = self.var_3135.var_10C;
if(isdefined(self.var_3135.lastmeleefailtarget) && self.var_3135.lastmeleefailtarget == var_01 && gettime() - self.var_3135.lastmeleefailtime < 3000)
{
return level.var_6AD5;
}
var_02 = var_01.origin - self.origin;
var_03 = length2dsquared(var_02);
if(var_03 > 65536)
{
return level.var_6AD5;
}
if(abs(var_02[2]) > 72 && var_03 < 10000)
{
return level.var_6AD5;
}
return level.var_111AE;
}
//Function Number: 11
melee_setup(param_00)
{
self.var_3135.var_B64D = self.var_3135.var_10C;
return level.var_111AE;
}
//Function Number: 12
func_B5B5()
{
var_00 = self.var_3135.var_B64D;
if(!isdefined(var_00))
{
return 1;
}
if(!isalive(var_00))
{
return 1;
}
return 0;
}
//Function Number: 13
melee_cleanup()
{
self.var_3135.var_B64D = undefined;
}
//Function Number: 14
melee_failed(param_00,param_01)
{
self.var_3135.lastmeleefailtime = gettime();
self.var_3135.lastmeleefailtarget = param_01;
self.var_3135.lastmeleefailreason = param_00;
}
//Function Number: 15
melee_charge_init(param_00)
{
self.var_3135.var_9928[param_00] = spawnstruct();
self.var_3135.var_9928[param_00].var_10DFF = gettime();
self.var_3135.var_9928[param_00].prevgoalpos = self.origin;
}
//Function Number: 16
melee_charge(param_00)
{
if(func_B5B5())
{
return level.var_6AD5;
}
var_01 = self.var_3135.var_B64D;
var_02 = gettime() - self.var_3135.var_9928[param_00].var_10DFF;
var_03 = isdefined(self method_8150());
if(var_02 > 200 && !var_03)
{
melee_failed(1,var_01);
return level.var_6AD5;
}
if(var_02 > 5000)
{
melee_failed(3,var_01);
return level.var_6AD5;
}
var_04 = var_01.origin - self.origin;
var_05 = length2dsquared(var_04);
var_06 = var_05;
if(var_03)
{
var_07 = self method_841E();
var_06 = var_07 * var_07;
}
if(var_06 > 200704)
{
melee_failed(2,var_01);
return level.var_6AD5;
}
if(var_05 < 5184)
{
var_08 = self method_84AC();
var_09 = getclosestpointonnavmesh(var_01.origin,self);
if(navisstraightlinereachable(var_08,var_09,self))
{
self.var_3135.var_9928[param_00].bsuccess = 1;
return level.var_111AE;
}
}
var_0A = var_01.origin;
var_0B = 144;
if(distance2dsquared(var_0A,self.var_3135.var_9928[param_00].prevgoalpos) > var_0B)
{
self method_8286(var_0A);
self method_8287(24);
self.var_3135.var_9928[param_00].prevgoalpos = var_0A;
}
return level.var_E87A;
}
//Function Number: 17
melee_charge_cleanup(param_00)
{
if(!isdefined(self.var_3135.var_9928[param_00].bsuccess))
{
melee_cleanup();
}
self.var_3135.var_9928[param_00] = undefined;
}
//Function Number: 18
melee_attack_init(param_00)
{
self.var_3135.var_9928[param_00] = spawnstruct();
self.var_3135.var_9928[param_00].var_10DFF = gettime();
lib_0A1B::func_2965(self.var_3135.var_B64D);
self method_8286(self.origin);
self method_8287(64);
}
//Function Number: 19
melee_attack(param_00)
{
if(func_B5B5())
{
return level.var_6AD5;
}
var_01 = 10000;
if(gettime() - self.var_3135.var_9928[param_00].var_10DFF > var_01)
{
return level.var_6AD5;
}
if(lib_0A1A::func_232A("meleeattack","end"))
{
return level.var_111AE;
}
return level.var_E87A;
}
//Function Number: 20
melee_attack_cleanup(param_00)
{
self.var_3135.var_9928[param_00] = undefined;
melee_cleanup();
lib_0A1B::func_2914();
}
//Function Number: 21
shouldrush(param_00)
{
var_01 = self.var_3135.var_10C;
if(!isdefined(var_01) || !isalive(var_01))
{
return level.var_6AD5;
}
if(gettime() < self.var_3135.allowrushtime)
{
return level.var_6AD5;
}
var_02 = var_01.origin - self.origin;
var_03 = length2dsquared(var_02);
if(var_03 > 589824)
{
return level.var_6AD5;
}
if(var_03 < 32400)
{
return level.var_6AD5;
}
if(isdefined(self.var_233))
{
var_04 = self method_84F9(84);
if(isdefined(var_04))
{
return level.var_6AD5;
}
if(self method_841E() > 1179648)
{
return level.var_6AD5;
}
}
if(!self method_805F(var_01))
{
return level.var_6AD5;
}
return level.var_111AE;
}
//Function Number: 22
rush_charge_init(param_00)
{
self.var_3135.var_9928[param_00] = spawnstruct();
self.var_3135.var_9928[param_00].var_10DFF = gettime();
self.var_3135.var_9928[param_00].var_2C5 = self.origin;
self.var_3135.var_9928[param_00].var_3140 = 1;
self.var_1198.var_BD23 = "sprint";
self.var_1198.brushorienttoenemy = 1;
self.var_1198.brushrequested = 1;
self.var_3135.var_B64D = self.var_3135.var_10C;
}
//Function Number: 23
rush_charge(param_00)
{
var_01 = 0;
var_02 = 1;
var_03 = 2;
if(func_B5B5())
{
return level.var_111AE;
}
var_04 = gettime();
var_05 = self.var_3135.var_9928[param_00].var_10DFF;
var_06 = 8000;
if(var_04 > var_05 + var_06)
{
self.var_3135.var_9928[param_00].bfailure = 1;
return level.var_6AD5;
}
if(distance2dsquared(self.origin,self.var_3135.var_9928[param_00].var_2C5) > 262144)
{
return level.var_111AE;
}
var_07 = self.var_3135.var_B64D.origin - self.origin;
if(length2dsquared(var_07) < 20736)
{
self.var_3135.var_9928[param_00].bsuccess = 1;
return level.var_111AE;
}
if(var_04 > var_05 + 200 && !isdefined(self.var_233))
{
self.var_3135.var_9928[param_00].bfailure = 1;
return level.var_6AD5;
}
var_08 = self method_84F9(84);
if(isdefined(var_08))
{
self.var_3135.var_9928[param_00].bfailure = 1;
return level.var_6AD5;
}
if(self.var_3135.var_9928[param_00].var_3140)
{
var_09 = 1000;
if(var_04 > self.var_3135.var_9928[param_00].var_10DFF + var_09)
{
var_0A = vectornormalize((var_07[0],var_07[1],0));
var_0B = self method_813A();
var_0B = vectornormalize((var_0B[0],var_0B[1],0));
if(vectordot(var_07,var_0B) < 0.966)
{
var_0C = self.origin + var_0B * 208;
var_0D = self method_84AC();
var_0E = navtrace(var_0D,var_0C,self,1);
if(var_0E["fraction"] < 1)
{
var_0C = var_0E["position"];
}
self method_8286(var_0C);
self method_8287(24);
self.var_3135.var_9928[param_00].var_3140 = 0;
}
else
{
self method_8286(self.var_3135.var_B64D.origin);
self method_8287(24);
}
}
else
{
self method_8286(self.var_3135.var_B64D.origin);
self method_8287(24);
}
}
else if(self method_841E() < 144)
{
return level.var_111AE;
}
return level.var_E87A;
}
//Function Number: 24
rush_charge_cleanup(param_00)
{
if(!isdefined(self.var_3135.var_9928[param_00].bsuccess))
{
melee_cleanup();
self.var_3135.allowrushtime = gettime() + 1000;
}
self.var_1198.var_BD23 = "run";
self.var_1198.brushrequested = undefined;
self.var_3135.var_9928[param_00] = undefined;
}
//Function Number: 25
rush_attack_init(param_00)
{
self.var_3135.var_9928[param_00] = gettime();
lib_0A1B::func_2965(self.var_3135.var_B64D);
}
//Function Number: 26
rush_attack(param_00)
{
var_01 = gettime();
var_02 = 5000;
if(var_01 > self.var_3135.var_9928[param_00] + var_02)
{
return level.var_6AD5;
}
if(lib_0A1A::func_232A("rushattack","end"))
{
self.var_3135.allowrushtime = var_01 + 5000;
return level.var_111AE;
}
self method_8286(self.origin);
self method_8287(36);
return level.var_E87A;
}
//Function Number: 27
rush_attack_cleanup(param_00)
{
self.var_3135.var_9928[param_00] = undefined;
lib_0A1B::func_2914();
melee_cleanup();
}
//Function Number: 28
shouldtaunt(param_00)
{
if(isdefined(self.killed_player))
{
self.killed_player = undefined;
return level.var_111AE;
}
return level.var_6AD5;
}
//Function Number: 29
taunt_init(param_00)
{
self.var_3135.var_9928[param_00] = gettime();
self.var_1198.btauntrequested = 1;
self method_8286(self.origin);
self method_8287(64);
}
//Function Number: 30
func_5ABE(param_00)
{
var_01 = 6000;
if(gettime() - self.var_3135.var_9928[param_00] > var_01)
{
return level.var_6AD5;
}
if(lib_0A1A::func_232A("tauntevent","end"))
{
return level.var_111AE;
}
return level.var_E87A;
}
//Function Number: 31
taunt_cleanup(param_00)
{
self.var_3135.var_9928[param_00] = undefined;
self.var_1198.btauntrequested = undefined;
}
//Function Number: 32
wander_init(param_00)
{
var_01 = spawnstruct();
var_01.curtargetpos = self.origin;
var_01.nextchecktime = gettime();
self.var_3135.var_9928[param_00] = var_01;
}
//Function Number: 33
getclosestplayer()
{
var_00 = undefined;
var_01 = 0;
foreach(var_03 in level.players)
{
if(!isalive(var_03))
{
continue;
}
if(var_03.ignoreme || isdefined(var_03.var_222) && var_03.var_222.ignoreme)
{
continue;
}
if(lib_0F74::func_1002C(var_03))
{
continue;
}
var_04 = distance2dsquared(self.origin,var_03.origin);
if(!isdefined(var_00) || var_04 < var_01)
{
var_00 = var_03;
var_01 = var_04;
}
}
return var_00;
}
//Function Number: 34
wander(param_00)
{
if(isdefined(self.var_3135.var_10C) && !scripts\common\utility::istrue(self.var_3135.var_10C.ignoreme))
{
var_01 = self.var_3135.var_10C.origin;
if(!isdefined(self.var_233) || distance2dsquared(var_01,self.var_3135.var_9928[param_00].curtargetpos) > 1296)
{
self.var_3135.var_9928[param_00].curtargetpos = var_01;
var_02 = getclosestpointonnavmesh(var_01,self);
self method_8286(var_02);
}
}
else if(gettime() >= self.var_3135.var_9928[param_00].nextchecktime || isdefined(self.var_3135.var_10C) && scripts\common\utility::istrue(self.var_3135.var_10C.ignoreme))
{
var_03 = getclosestplayer();
if(isdefined(var_03))
{
self.var_3135.var_9928[param_00].curtargetpos = var_03.origin;
var_02 = getclosestpointonnavmesh(var_03.origin,self);
self method_8286(var_02);
self.var_3135.var_9928[param_00].nextchecktime = self.var_3135.var_9928[param_00].nextchecktime + 2000;
}
}
return level.var_E87A;
}
//Function Number: 35
wander_cleanup(param_00)
{
self.var_3135.var_9928[param_00] = undefined;
}

View File

@ -0,0 +1,139 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\animmode.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 172 ms
* Timestamp: 10/26/2023 11:59:50 PM
*******************************************************************/
//Function Number: 1
main()
{
self endon("death");
self endon("stop_animmode");
self notify("killanimscript");
self.var_141C endon(self.var_117E);
if(isdefined(self.var_11BC))
{
self thread [[ self.var_11BC ]]();
self.var_11BC = undefined;
}
var_00 = isdefined(self.var_11BB) && self.var_11BB;
if(var_00)
{
self endon("stop_loop");
self.var_11BB = undefined;
}
else
{
thread func_C141(self.var_117E);
}
var_01 = self.var_117E;
self.var_117E = undefined;
var_02 = 0;
if(var_00)
{
var_02 = level.var_EC85[self.var_1180][var_01].size;
var_03 = level.var_EC85[self.var_1180][var_01][randomint(var_02)];
}
else
{
var_03 = level.var_EC85[self.var_1180][var_02];
}
var_04 = function_00CE(self.var_141C.origin,self.var_141C.angles,var_03);
var_05 = function_00CD(self.var_141C.origin,self.var_141C.angles,var_03);
var_06 = self method_811F(var_04);
if(isdefined(var_06))
{
var_04 = var_06;
}
else
{
}
if(!isdefined(self.var_C0C1))
{
self method_83B9(var_04,var_05);
}
self.var_253 = 0;
var_07 = 0.3;
var_08 = 0.2;
if(isdefined(self.var_1EA2))
{
var_07 = self.var_1EA2;
var_08 = self.var_1EA2;
}
self method_8016(self.var_117F);
if(getdvarint("ai_iw7") == 1)
{
self method_806F(lib_0A1E::func_2342(),0.3);
}
else
{
self method_806F(self.var_E6E6,var_07);
}
self method_8221("face angle",var_05[1]);
var_09 = "custom_animmode";
self method_82EA(var_09,var_03,1,var_08,1);
self.var_141C thread lib_0B06::func_10CBF(self,var_09,var_01,self.var_1180,var_03);
self.var_141C thread lib_0B06::func_1FCA(self,var_09,var_01);
var_0A = self.var_141C;
self.var_141C = undefined;
self.var_117F = undefined;
self endon("killanimscript");
var_0B = "end";
if(!var_00)
{
if(animhasnotetrack(var_03,"finish"))
{
var_0B = "finish";
}
else if(animhasnotetrack(var_03,"stop anim"))
{
var_0B = "stop anim";
}
}
for(;;)
{
self waittillmatch(var_0B,var_09);
if(var_00)
{
var_03 = level.var_EC85[self.var_1180][var_01][randomint(var_02)];
self method_82E6(var_09,var_03,1,0.2,1);
if(isdefined(var_0A))
{
var_0A thread lib_0B06::func_10CBF(self,var_09,var_01,self.var_1180,var_03);
var_0A thread lib_0B06::func_1FCA(self,var_09,var_01);
}
continue;
}
break;
}
if(var_0B != "end")
{
self method_8221("face motion");
}
self notify("finished_custom_animmode" + var_01);
}
//Function Number: 2
func_C141(param_00)
{
self endon("death");
self endon("finished_custom_animmode" + param_00);
self waittill("killanimscript");
self notify("finished_custom_animmode" + param_00);
}

View File

@ -0,0 +1,390 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\animset.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 44
* Decompile Time: 2344 ms
* Timestamp: 10/26/2023 11:59:52 PM
*******************************************************************/
//Function Number: 1
func_94FD()
{
if(isdefined(level.var_1FD2))
{
return;
}
anim.var_1FD2 = 1;
if(!isdefined(level.var_2128))
{
anim.var_2128 = [];
}
level.var_2128["soldier"] = [];
scripts\anim\cover_left::func_9507();
scripts\anim\cover_right::func_950A();
scripts\anim\cover_prone::func_9509();
scripts\anim\cover_wall::func_950B();
scripts\anim\reactions::func_951D();
scripts\anim\pain::func_951B();
scripts\anim\death::func_9510();
scripts\anim\combat::func_9504();
scripts\anim\move::func_951A();
scripts\anim\flashed::func_9514();
scripts\anim\stop::func_9518();
anim.var_1FD1 = spawnstruct();
level.var_1FD1.var_BBF7 = [];
func_9513();
func_950D();
func_951C();
func_951F();
func_9523();
func_9517();
func_9511();
func_951E();
func_9522();
func_9512();
func_9520();
func_9524();
func_950C();
func_9516();
func_9692();
func_95D5();
func_9515();
func_960E();
func_9521();
func_9503();
}
//Function Number: 2
func_DEE7(param_00,param_01,param_02)
{
func_94FD();
level.var_2128[param_00] = param_01;
if(isdefined(param_01["flashed"]))
{
level.var_6EC0[param_00] = 0;
}
if(isdefined(param_02) && param_02)
{
scripts\anim\init_move_transitions::func_814D(param_00);
}
}
//Function Number: 3
func_2126(param_00)
{
return archetypeassetloaded(param_00) || isdefined(level.var_2128[param_00]);
}
//Function Number: 4
func_9520()
{
}
//Function Number: 5
func_9516()
{
}
//Function Number: 6
func_9524()
{
}
//Function Number: 7
func_950C()
{
}
//Function Number: 8
func_951C()
{
}
//Function Number: 9
func_951F()
{
}
//Function Number: 10
func_9523()
{
}
//Function Number: 11
func_950D()
{
}
//Function Number: 12
func_9517()
{
}
//Function Number: 13
func_9515()
{
}
//Function Number: 14
func_9513()
{
}
//Function Number: 15
func_9511()
{
}
//Function Number: 16
func_951E()
{
}
//Function Number: 17
func_9522()
{
}
//Function Number: 18
func_9512()
{
}
//Function Number: 19
func_9506(param_00)
{
}
//Function Number: 20
func_950F(param_00,param_01,param_02,param_03)
{
}
//Function Number: 21
func_9505(param_00)
{
}
//Function Number: 22
func_950E(param_00,param_01,param_02)
{
}
//Function Number: 23
func_413F()
{
self.var_4C8F = undefined;
self.var_4C8C = undefined;
self.var_440C = undefined;
self.var_4400 = undefined;
}
//Function Number: 24
func_F2C2(param_00)
{
}
//Function Number: 25
func_F2C1()
{
}
//Function Number: 26
func_F2B9()
{
}
//Function Number: 27
func_F2BD()
{
}
//Function Number: 28
func_F2B5()
{
}
//Function Number: 29
func_F2BB(param_00)
{
}
//Function Number: 30
func_F2B4()
{
}
//Function Number: 31
func_F2BA(param_00)
{
}
//Function Number: 32
func_F2B3()
{
}
//Function Number: 33
func_F2B2()
{
}
//Function Number: 34
func_F2BE()
{
if(scripts\anim\utility_common::func_9FCA())
{
self.var_1491.var_2274 = scripts\anim\utility::func_B028("pistol_stand");
return;
}
if(isdefined(self.var_440C))
{
self.var_1491.var_2274 = self.var_440C;
return;
}
if(isdefined(self.var_8CD0))
{
self.var_1491.var_2274 = scripts\anim\utility::func_B028("heat_stand");
return;
}
if(scripts\anim\utility_common::func_1311B())
{
self.var_1491.var_2274 = scripts\anim\utility::func_B028("rpg_stand");
return;
}
if(isdefined(self.var_394) && scripts\anim\utility_common::func_13C40())
{
self.var_1491.var_2274 = scripts\anim\utility::func_B028("shotgun_stand");
return;
}
if(scripts\anim\utility::func_9D9B())
{
self.var_1491.var_2274 = scripts\anim\utility::func_B028("cqb_stand");
return;
}
self.var_1491.var_2274 = scripts\anim\utility::func_B028("default_stand");
}
//Function Number: 35
func_F2B6()
{
if(scripts\anim\utility_common::func_9FCA())
{
scripts\anim\shared::func_CC2C(self.var_D8E1,"right");
}
if(isdefined(self.var_4400))
{
self.var_1491.var_2274 = self.var_4400;
return;
}
if(scripts\anim\utility_common::func_1311B())
{
self.var_1491.var_2274 = scripts\anim\utility::func_B028("rpg_crouch");
return;
}
if(isdefined(self.var_394) && scripts\anim\utility_common::func_13C40())
{
self.var_1491.var_2274 = scripts\anim\utility::func_B028("shotgun_crouch");
return;
}
self.var_1491.var_2274 = scripts\anim\utility::func_B028("default_crouch");
}
//Function Number: 36
func_F2BC()
{
if(scripts\anim\utility_common::func_9FCA())
{
scripts\anim\shared::func_CC2C(self.var_D8E1,"right");
}
self.var_1491.var_2274 = scripts\anim\utility::func_B028("default_prone");
}
//Function Number: 37
func_9692()
{
}
//Function Number: 38
func_95D5()
{
}
//Function Number: 39
func_960E()
{
}
//Function Number: 40
func_9521()
{
}
//Function Number: 41
func_FA33()
{
self.var_B4C3 = 130;
self.var_E878 = 0.4615385;
self.var_E876 = 0.3;
}
//Function Number: 42
func_9503()
{
}
//Function Number: 43
func_F2AC()
{
self.var_1491.var_BCA5["move_l"] = scripts\anim\utility::func_B027("ambush","move_l");
self.var_1491.var_BCA5["move_r"] = scripts\anim\utility::func_B027("ambush","move_r");
self.var_1491.var_BCA5["move_b"] = scripts\anim\utility::func_B027("ambush","move_b");
}
//Function Number: 44
func_8CD8()
{
if(self.var_394 != self.var_D8E1)
{
return scripts\anim\utility::func_1F67("reload");
}
if(isdefined(self.var_205))
{
if(self method_8214())
{
var_00 = undefined;
if(self.var_205.type == "Cover Left")
{
var_00 = scripts\anim\utility::func_B027("heat_reload","reload_cover_left");
}
else if(self.var_205.type == "Cover Right")
{
var_00 = scripts\anim\utility::func_B027("heat_reload","reload_cover_right");
}
if(isdefined(var_00))
{
return var_00;
}
}
}
return scripts\anim\utility::func_B027("heat_reload","reload_default");
}

View File

@ -0,0 +1,677 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\atv.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 27
* Decompile Time: 1352 ms
* Timestamp: 10/26/2023 11:59:54 PM
*******************************************************************/
//Function Number: 1
main()
{
self.var_4B71 = "none";
self.var_FE91 = undefined;
func_255B();
func_B1C3();
}
//Function Number: 2
func_255B()
{
self.var_163 = 0;
self.var_1491.var_D6A5 = "crouch";
scripts\sp\_utility::func_558D();
self.allowpain = 0;
self.var_6EC4 = 1;
self.var_8020 = ::func_255A;
self.var_10957 = ::func_255F;
self.var_55B5 = 1;
}
//Function Number: 3
func_255A()
{
self.allowpain = 1;
self.var_6EC4 = 0;
scripts\sp\_utility::func_86E2();
self.var_C4C7 = undefined;
self.var_4C37["combat"] = undefined;
self.var_4C37["stop"] = undefined;
self.var_8020 = undefined;
self.var_10957 = undefined;
self.var_1491.var_1096D = undefined;
self.var_55B5 = undefined;
}
//Function Number: 4
func_B1C3()
{
var_00 = self.var_E500.var_5BCB || self.var_E500.var_E4FB.size == 1;
func_2565(var_00);
if(var_00)
{
scripts\anim\shared::func_CC2C(self.var_D8E1,"left");
self.var_268 = -90;
self.var_1B7 = 90;
scripts\anim\track::func_F641(1,0.2);
thread func_256A();
thread func_255E();
}
else
{
scripts\anim\shared::func_CC2C(self.var_D8E1,"none");
thread func_255D();
}
func_255C("driver");
}
//Function Number: 5
func_255D()
{
self endon("death");
self endon("killanimscript");
var_00 = "left2right";
var_01 = [];
var_01["left2right"] = getanimlength(scripts\anim\utility::func_1F64("left2right"));
var_01["right2left"] = getanimlength(scripts\anim\utility::func_1F64("right2left"));
self method_82A5(%atv_turn,%body,1,0);
self method_82A2(scripts\anim\utility::func_1F64("drive"),1,0);
self method_82A4(scripts\anim\utility::func_1F64(var_00),1,0);
self method_82B0(scripts\anim\utility::func_1F64(var_00),0.5);
for(;;)
{
if(self.var_E500.var_10F83)
{
var_02 = 0.5 * 1 + scripts\sp\_vehicle_code::func_12E33(self.var_E500);
var_03 = self method_8102(scripts\anim\utility::func_1F64(var_00));
if(var_00 == "right2left")
{
var_03 = 1 - var_03;
}
var_04 = 20 * abs(var_03 - var_02);
if(var_03 < var_02)
{
var_00 = "left2right";
var_04 = var_04 * var_01["left2right"];
}
else
{
var_00 = "right2left";
var_04 = var_04 * var_01["right2left"];
var_03 = 1 - var_03;
}
}
else
{
var_00 = "left2right";
var_04 = 0;
var_03 = 0.5;
}
self method_82A9(scripts\anim\utility::func_1F64(var_00),1,0.1,var_04);
self method_82B0(scripts\anim\utility::func_1F64(var_00),var_03);
wait(0.05);
}
}
//Function Number: 6
func_255E()
{
self endon("death");
self endon("killanimscript");
var_00 = 0.05;
var_01 = 0;
self method_82A5(%atv_aiming,%body,1,0);
self method_82A4(scripts\anim\utility::func_1F64("idle"),1,0);
for(;;)
{
if(self.var_4B71 != "none")
{
self waittill("atv_event_finished");
continue;
}
var_02 = scripts\sp\_vehicle_code::func_12E33(self.var_E500);
var_03 = 1 - abs(var_02);
var_04 = max(0,0 - var_02);
var_05 = max(0,var_02);
self method_82AC(scripts\anim\utility::func_1F64("straight_level_center"),var_03,var_00);
self method_82AC(scripts\anim\utility::func_1F64("straight_level_left"),var_04,var_00);
self method_82AC(scripts\anim\utility::func_1F64("straight_level_right"),var_05,var_00);
if(self.var_3250 <= 0)
{
scripts\anim\weaponlist::func_DE4D();
var_01 = gettime() + 3000;
}
if(var_01 <= gettime())
{
func_2568();
}
self method_82A9(scripts\anim\utility::func_1F64("add_aim_left_center"),var_03,var_00);
self method_82AC(scripts\anim\utility::func_1F64("add_aim_left_left"),var_04,var_00);
self method_82AC(scripts\anim\utility::func_1F64("add_aim_left_right"),var_05,var_00);
self method_82A9(scripts\anim\utility::func_1F64("add_aim_right_center"),var_03,var_00);
self method_82AC(scripts\anim\utility::func_1F64("add_aim_right_left"),var_04,var_00);
self method_82AC(scripts\anim\utility::func_1F64("add_aim_right_right"),var_05,var_00);
thread func_2569();
wait(0.05);
}
}
//Function Number: 7
func_2558(param_00)
{
self endon("death");
self.var_E500.var_10F83 = 0;
self method_82E6("atv_event",param_00,1,0.17);
scripts\anim\shared::func_592B("atv_event",::func_256F);
self method_82A9(scripts\anim\utility::func_1F64("event_restore"),1,0.1);
self.var_E500.var_10F83 = 1;
self.var_4B71 = "none";
self notify("atv_event_finished");
}
//Function Number: 8
func_255C(param_00)
{
self endon("death");
self endon("killanimscript");
var_01 = self.var_E500;
for(;;)
{
if(var_01.var_67E5["jump"][param_00])
{
var_01.var_67E5["jump"][param_00] = 0;
self notify("atv_event_occurred");
self.var_4B71 = "jump";
var_01.var_10F83 = 0;
self method_82E6("jump",scripts\anim\utility::func_1F64("event_jump"),1,0.17);
}
if(var_01.var_67E5["bump"][param_00])
{
var_01.var_67E5["bump"][param_00] = 0;
self notify("atv_event_occurred");
if(self.var_4B71 != "bump_big")
{
thread func_2558(scripts\anim\utility::func_1F64("event_bump"));
}
}
if(var_01.var_67E5["bump_big"][param_00])
{
var_01.var_67E5["bump_big"][param_00] = 0;
self notify("atv_event_occurred");
self.var_4B71 = "bump_big";
thread func_2558(scripts\anim\utility::func_1F64("event_bump_big"));
}
if(var_01.var_67E5["sway_left"][param_00])
{
var_01.var_67E5["sway_left"][param_00] = 0;
self notify("atv_event_occurred");
if(self.var_4B71 != "bump_big")
{
thread func_2558(scripts\anim\utility::func_1F64("event_sway")["left"]);
}
}
if(var_01.var_67E5["sway_right"][param_00])
{
var_01.var_67E5["sway_right"][param_00] = 0;
self notify("atv_event_occurred");
if(self.var_4B71 != "bump_big")
{
thread func_2558(scripts\anim\utility::func_1F64("event_sway")["right"]);
}
}
wait(0.05);
}
}
//Function Number: 9
func_2568()
{
self notify("want_shoot_while_driving");
self method_82A2(%atv_add_fire,1,0.2);
if(isdefined(self.var_FE91))
{
return;
}
self.var_FE91 = 1;
thread func_2556();
thread func_2566();
}
//Function Number: 10
func_2569()
{
self endon("killanimscript");
self endon("want_shoot_while_driving");
wait(0.05);
self notify("end_shoot_while_driving");
self.var_FE91 = undefined;
self method_806F(%atv_add_fire,0.2);
}
//Function Number: 11
func_2556()
{
self endon("killanimscript");
self endon("end_shoot_while_driving");
self.var_1491.var_1096D = ::func_2570;
func_2557();
self.var_FE91 = undefined;
}
//Function Number: 12
func_2557()
{
self endon("atv_event_occurred");
scripts\anim\shoot_behavior::func_4F69("normal");
}
//Function Number: 13
func_2570()
{
if(!isdefined(self.var_10C))
{
self.var_FE9E = undefined;
self.var_FECF = undefined;
self.var_FED7 = "none";
return;
}
self.var_FE9E = self.var_10C;
self.var_FECF = self.var_10C method_815B();
var_00 = distancesquared(self.origin,self.var_10C.origin);
if(var_00 < 1000000)
{
self.var_FED7 = "full";
}
else if(var_00 < 4000000)
{
self.var_FED7 = "burst";
}
else
{
self.var_FED7 = "single";
}
if(isdefined(self.var_10C.var_131A0))
{
var_01 = 0.5;
var_02 = self.var_FE9E.var_131A0;
var_03 = self.var_E500;
var_04 = var_03.origin - var_02.origin;
var_05 = anglestoforward(var_02.angles);
var_06 = anglestoright(var_02.angles);
var_07 = vectordot(var_04,var_05);
if(var_07 < 0)
{
var_08 = var_02 method_83DD() * var_01;
var_08 = var_08 * 17.6;
if(var_08 > 50)
{
var_09 = vectordot(var_04,var_06);
var_09 = var_09 / 3;
if(var_09 > 128)
{
var_09 = 128;
}
else if(var_09 < -128)
{
var_09 = -128;
}
if(var_09 > 0)
{
var_09 = 128 - var_09;
}
else
{
var_09 = -128 - var_09;
}
self.var_FE9E = undefined;
self.var_FECF = var_02.origin + var_08 * var_05 + var_09 * var_06;
return;
}
}
}
}
//Function Number: 14
func_2566()
{
self endon("killanimscript");
self endon("end_shoot_while_driving");
self notify("doing_shootWhileDriving");
self endon("doing_shootWhileDriving");
for(;;)
{
if(!self.var_3250)
{
wait(0.5);
continue;
}
scripts\anim\combat_utility::func_FEDF();
}
}
//Function Number: 15
func_2560()
{
if(!self.var_E500.var_10F83)
{
return 0;
}
if(!scripts\anim\utility_common::func_BE9E(0))
{
return 0;
}
if(!scripts\anim\utility_common::func_1311A())
{
return 0;
}
func_2561();
self notify("abort_reload");
return 1;
}
//Function Number: 16
func_2561()
{
self endon("atv_event_occurred");
self.var_10FB2 = 1;
self waittill("start_blending_reload");
self method_82A2(%atv_aiming,0,0.25);
self method_82EA("gun_down",scripts\anim\utility::func_1F64("gun_down"),1,0.25);
scripts\anim\shared::func_592B("gun_down");
self method_806F(scripts\anim\utility::func_1F64("gun_down"),0);
self method_82E4("reload_anim",scripts\anim\utility::func_1F64("reload"),%body,1,0.25);
scripts\anim\shared::func_592B("reload_anim");
self method_806F(%atv_reload,0.2);
self method_82EA("gun_up",scripts\anim\utility::func_1F64("gun_up"),1,0.25);
self.var_86EC = 1;
scripts\anim\shared::func_592B("gun_up",::func_256E);
self.var_10FB2 = undefined;
self method_806F(%atv_reload,0.1);
self method_82A2(%atv_aiming,1,0.1);
if(isdefined(self.var_86EC))
{
self.var_86EC = undefined;
scripts\anim\shared::func_592B("gun_up",::func_256D);
self method_806F(scripts\anim\utility::func_1F64("gun_up"),0);
}
}
//Function Number: 17
func_256E(param_00)
{
if(param_00 == "start_aim")
{
return 1;
}
}
//Function Number: 18
func_256D(param_00)
{
if(param_00 == "end")
{
return 1;
}
}
//Function Number: 19
func_256F(param_00)
{
if(param_00 == "start_lean")
{
return 1;
}
}
//Function Number: 20
func_256A()
{
self endon("killanimscript");
self endon("stop tracking");
var_00 = 0.05;
var_01 = 8;
var_02 = 0;
var_03 = 0;
var_04 = 1;
for(;;)
{
scripts\anim\track::func_93E2();
var_05 = (self.origin[0],self.origin[1],self geteye()[2]);
var_06 = self.var_FECF;
if(isdefined(self.var_FE9E))
{
var_06 = self.var_FE9E method_815B();
}
if(!isdefined(var_06))
{
var_03 = 0;
var_07 = self method_80FC();
if(isdefined(var_07))
{
var_03 = angleclamp180(self.angles[1] - var_07[1]);
}
}
else
{
var_08 = var_06 - var_05;
var_09 = vectortoangles(var_08);
var_03 = self.angles[1] - var_09[1];
var_03 = angleclamp180(var_03);
}
if(var_03 < self.var_268 || var_03 > self.var_1B7)
{
var_03 = 0;
}
if(var_04)
{
var_04 = 0;
}
else
{
var_0A = var_03 - var_02;
if(abs(var_0A) > var_01)
{
var_03 = var_02 + var_01 * scripts\common\utility::func_101EA(var_0A);
}
}
var_02 = var_03;
var_0B = min(max(0 - var_03,0),90) / 90 * self.var_1491.var_1A4B;
var_0C = min(max(var_03,0),90) / 90 * self.var_1491.var_1A4B;
self method_82AC(%atv_aim_4,var_0B,var_00);
self method_82AC(%atv_aim_6,var_0C,var_00);
wait(0.05);
}
}
//Function Number: 21
func_2559(param_00,param_01,param_02)
{
var_03 = undefined;
var_04 = undefined;
var_05 = 0;
for(var_06 = 0;var_06 < param_00.size;var_06++)
{
var_07 = scripts\common\utility::func_152F(param_02 - param_01[var_06]);
if(!isdefined(var_03) || var_07 < var_05)
{
var_04 = var_03;
var_03 = param_00[var_06];
var_05 = var_07;
continue;
}
if(!isdefined(var_04))
{
var_04 = param_00[var_06];
}
}
var_08 = var_03;
if(isdefined(level.var_D893) && var_08 == level.var_D893 && gettime() - level.var_D894 < 500)
{
var_08 = var_04;
}
anim.var_D893 = var_08;
anim.var_D894 = gettime();
return var_08;
}
//Function Number: 22
func_2555()
{
var_00 = self.var_E500;
var_01 = var_00.var_D89A;
var_01 = (var_01[0],var_01[1],randomfloatrange(200,400)) * 0.75;
if(lengthsquared(var_01) > 1000000)
{
var_01 = vectornormalize(var_01) * 1000;
}
var_02 = spawn("script_origin",self.origin);
var_02 method_820E((0,0,40),15,var_01);
self linkto(var_02);
var_02 thread func_51D1();
}
//Function Number: 23
func_255F()
{
var_00 = [];
var_00[0] = level.var_EC85["atv"]["small"]["death"]["back"];
var_00[1] = level.var_EC85["atv"]["small"]["death"]["right"];
var_00[2] = level.var_EC85["atv"]["small"]["death"]["left"];
var_01 = [];
var_01[0] = -180;
var_01[1] = -90;
var_01[2] = 90;
var_02 = func_2559(var_00,var_01,self.var_E3);
scripts\anim\death::func_CF0E(var_02);
return 1;
}
//Function Number: 24
func_2554()
{
var_00 = self.var_E500;
if(!isdefined(var_00))
{
return func_255F();
}
var_01 = var_00.var_D89A;
func_2555();
var_02 = vectortoangles(var_01);
var_03 = angleclamp180(var_02[1] - self.angles[1]);
var_04 = [];
var_04[0] = level.var_EC85["atv"]["big"]["death"]["back"];
var_04[1] = level.var_EC85["atv"]["big"]["death"]["left"];
var_04[2] = level.var_EC85["atv"]["big"]["death"]["front"];
var_04[3] = level.var_EC85["atv"]["big"]["death"]["right"];
var_05 = [];
var_05[0] = -180;
var_05[1] = -90;
var_05[2] = 0;
var_05[3] = 90;
var_06 = func_2559(var_04,var_05,var_03);
scripts\anim\death::func_CF0E(var_06);
return 1;
}
//Function Number: 25
func_51D1()
{
var_00 = self.origin;
for(var_01 = 0;var_01 < 60;var_01++)
{
wait(0.05);
var_00 = self.origin;
}
wait(3);
if(isdefined(self))
{
self delete();
}
}
//Function Number: 26
func_2564(param_00)
{
self.var_1491.var_2274["idle"] = level.var_EC85["atv"][param_00]["idle"];
self.var_1491.var_2274["drive"] = level.var_EC85["atv"][param_00]["drive"];
self.var_1491.var_2274["fire"] = level.var_EC85["atv"][param_00]["fire"];
self.var_1491.var_2274["single"] = scripts\anim\utility::func_2274(level.var_EC85["atv"][param_00]["single"]);
self.var_1491.var_2274["burst2"] = level.var_EC85["atv"][param_00]["fire"];
self.var_1491.var_2274["burst3"] = level.var_EC85["atv"][param_00]["fire"];
self.var_1491.var_2274["burst4"] = level.var_EC85["atv"][param_00]["fire"];
self.var_1491.var_2274["burst5"] = level.var_EC85["atv"][param_00]["fire"];
self.var_1491.var_2274["burst6"] = level.var_EC85["atv"][param_00]["fire"];
self.var_1491.var_2274["semi2"] = level.var_EC85["atv"][param_00]["fire"];
self.var_1491.var_2274["semi3"] = level.var_EC85["atv"][param_00]["fire"];
self.var_1491.var_2274["semi4"] = level.var_EC85["atv"][param_00]["fire"];
self.var_1491.var_2274["semi5"] = level.var_EC85["atv"][param_00]["fire"];
}
//Function Number: 27
func_2565(param_00)
{
self.var_1491.var_2274 = [];
func_2564("driver");
self.var_1491.var_2274["left2right"] = level.var_EC85["atv"]["driver"]["left2right"];
self.var_1491.var_2274["right2left"] = level.var_EC85["atv"]["driver"]["right2left"];
self.var_1491.var_2274["straight_level_left"] = level.var_EC85["atv"]["driver"]["straight_level"]["left"];
self.var_1491.var_2274["straight_level_center"] = level.var_EC85["atv"]["driver"]["straight_level"]["center"];
self.var_1491.var_2274["straight_level_right"] = level.var_EC85["atv"]["driver"]["straight_level"]["right"];
self.var_1491.var_2274["add_aim_left_left"] = level.var_EC85["atv"]["driver"]["add_aim_left"]["left"];
self.var_1491.var_2274["add_aim_left_center"] = level.var_EC85["atv"]["driver"]["add_aim_left"]["center"];
self.var_1491.var_2274["add_aim_left_right"] = level.var_EC85["atv"]["driver"]["add_aim_left"]["right"];
self.var_1491.var_2274["add_aim_right_left"] = level.var_EC85["atv"]["driver"]["add_aim_right"]["left"];
self.var_1491.var_2274["add_aim_right_center"] = level.var_EC85["atv"]["driver"]["add_aim_right"]["center"];
self.var_1491.var_2274["add_aim_right_right"] = level.var_EC85["atv"]["driver"]["add_aim_right"]["right"];
if(param_00)
{
self.var_1491.var_2274["event_jump"] = level.var_EC85["atv"]["driver"]["shoot_jump"];
self.var_1491.var_2274["event_bump"] = level.var_EC85["atv"]["driver"]["shoot_bump"];
self.var_1491.var_2274["event_bump_big"] = level.var_EC85["atv"]["driver"]["shoot_bump_big"];
self.var_1491.var_2274["event_sway"] = [];
self.var_1491.var_2274["event_sway"]["left"] = level.var_EC85["atv"]["driver"]["shoot_sway_left"];
self.var_1491.var_2274["event_sway"]["right"] = level.var_EC85["atv"]["driver"]["shoot_sway_right"];
self.var_1491.var_2274["event_restore"] = %atv_aiming;
return;
}
self.var_1491.var_2274["event_jump"] = level.var_EC85["atv"]["driver"]["drive_jump"];
self.var_1491.var_2274["event_bump"] = level.var_EC85["atv"]["driver"]["drive_bump"];
self.var_1491.var_2274["event_bump_big"] = level.var_EC85["atv"]["driver"]["drive_bump_big"];
self.var_1491.var_2274["event_sway"] = [];
self.var_1491.var_2274["event_sway"]["left"] = level.var_EC85["atv"]["driver"]["drive_sway_left"];
self.var_1491.var_2274["event_sway"]["right"] = level.var_EC85["atv"]["driver"]["drive_sway_right"];
self.var_1491.var_2274["event_restore"] = %atv_turn;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,70 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\civilian.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 4
* Decompile Time: 221 ms
* Timestamp: 10/27/2023 12:00:07 AM
*******************************************************************/
//Function Number: 1
func_00C2()
{
self endon("killanimscript");
self method_806F(%root,0.2);
scripts\anim\utility::func_12EB9();
if(scripts\anim\utility::func_9E40())
{
var_00 = "idle_combat";
}
else
{
var_00 = "idle_noncombat";
}
var_01 = undefined;
if(isdefined(self.var_1FBB) && isdefined(level.var_EC85[self.var_1FBB]))
{
var_01 = level.var_EC85[self.var_1FBB][var_00];
}
if(!isdefined(var_01))
{
if(!isdefined(level.var_EC85["default_civilian"]))
{
return;
}
var_01 = level.var_EC85["default_civilian"][var_00];
}
thread func_BC1C();
for(;;)
{
self method_82E3("idle",scripts\common\utility::random(var_01),%root,1,0.2,1);
self waittillmatch("end","idle");
}
}
//Function Number: 2
func_BC1C()
{
self endon("killanimscript");
while(!isdefined(self.var_3C34))
{
wait(1);
}
}
//Function Number: 3
func_02C8()
{
func_00C2();
}
//Function Number: 4
func_79BE()
{
return level.var_3FD8[randomint(level.var_3FD8.size)];
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\civilian\civilian_combat.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 72 ms
* Timestamp: 10/26/2023 11:59:08 PM
*******************************************************************/
//Function Number: 1
main()
{
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\civilian\civilian_cover_arrival.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 74 ms
* Timestamp: 10/26/2023 11:59:08 PM
*******************************************************************/
//Function Number: 1
main()
{
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\civilian\civilian_cover_crouch.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 77 ms
* Timestamp: 10/26/2023 11:59:09 PM
*******************************************************************/
//Function Number: 1
main()
{
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\civilian\civilian_cover_left.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 76 ms
* Timestamp: 10/26/2023 11:59:09 PM
*******************************************************************/
//Function Number: 1
main()
{
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\civilian\civilian_cover_prone.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 74 ms
* Timestamp: 10/26/2023 11:59:09 PM
*******************************************************************/
//Function Number: 1
main()
{
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\civilian\civilian_cover_right.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 77 ms
* Timestamp: 10/26/2023 11:59:10 PM
*******************************************************************/
//Function Number: 1
main()
{
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\civilian\civilian_cover_stand.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 73 ms
* Timestamp: 10/26/2023 11:59:10 PM
*******************************************************************/
//Function Number: 1
main()
{
}

View File

@ -0,0 +1,15 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\civilian\civilian_death.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 76 ms
* Timestamp: 10/26/2023 11:59:10 PM
*******************************************************************/
//Function Number: 1
main()
{
scripts\anim\death::main();
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\civilian\civilian_flashed.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 72 ms
* Timestamp: 10/26/2023 11:59:10 PM
*******************************************************************/
//Function Number: 1
main()
{
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\civilian\civilian_grenade_response.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 75 ms
* Timestamp: 10/26/2023 11:59:11 PM
*******************************************************************/
//Function Number: 1
main()
{
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\civilian\civilian_init.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 71 ms
* Timestamp: 10/26/2023 11:59:11 PM
*******************************************************************/
//Function Number: 1
main()
{
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\civilian\civilian_move.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 96 ms
* Timestamp: 10/26/2023 11:59:11 PM
*******************************************************************/
//Function Number: 1
main()
{
}

View File

@ -0,0 +1,15 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\civilian\civilian_pain.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 70 ms
* Timestamp: 10/26/2023 11:59:12 PM
*******************************************************************/
//Function Number: 1
main()
{
scripts\anim\pain::main();
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\civilian\civilian_reactions.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 70 ms
* Timestamp: 10/26/2023 11:59:12 PM
*******************************************************************/
//Function Number: 1
main()
{
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\civilian\civilian_scripted.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 67 ms
* Timestamp: 10/26/2023 11:59:12 PM
*******************************************************************/
//Function Number: 1
main()
{
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\civilian\civilian_stop.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 66 ms
* Timestamp: 10/26/2023 11:59:12 PM
*******************************************************************/
//Function Number: 1
main()
{
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,21 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\combat_say.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 172 ms
* Timestamp: 10/27/2023 12:00:11 AM
*******************************************************************/
//Function Number: 1
func_7745()
{
scripts\anim\battlechatter::func_CEE8();
}
//Function Number: 2
func_10973(param_00)
{
scripts\anim\battlechatter::func_CEE8();
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,939 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\cover_behavior.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 36
* Decompile Time: 2120 ms
* Timestamp: 10/27/2023 12:00:23 AM
*******************************************************************/
//Function Number: 1
main(param_00)
{
self.var_46A6 = self.origin;
var_01 = gettime();
var_02 = spawnstruct();
var_02.var_BF6E = var_01 - 1;
var_02.var_BF6F = var_01 - 1;
func_E257();
func_E267();
self.var_F17F = gettime();
self.var_1491.var_A97A = var_01;
self.var_1491.var_9302 = 0;
self.var_1491.var_BCC8 = "stop";
self.var_B600 = var_01 + 3000;
thread func_13B72();
var_03 = gettime() > 2500;
for(;;)
{
if(isdefined(self.var_C2) && isdefined(self.var_C2.var_71C6))
{
var_04 = gettime();
thread func_6335();
[[ self.var_C2.var_71C6 ]]();
if(gettime() == var_04)
{
self notify("dont_end_idle");
}
}
if(scripts\anim\combat_utility::func_10026())
{
if(scripts\anim\combat_utility::func_128AA(1))
{
wait(0.05);
continue;
}
}
if(isdefined(param_00.var_B24A))
{
var_04 = gettime();
thread func_6335();
[[ param_00.var_B24A ]]();
if(gettime() == var_04)
{
self notify("dont_end_idle");
}
}
if(isdefined(param_00.var_BD1C))
{
if([[ param_00.var_BD1C ]]())
{
continue;
}
}
if(scripts\common\utility::func_167E())
{
self method_8272(self.var_473C.origin);
}
else
{
self method_8272(self.var_473C.origin,func_7E3D());
}
if(!var_03)
{
func_92CC(param_00,0.05 + randomfloat(1.5));
var_03 = 1;
continue;
}
if(func_5927(param_00))
{
continue;
}
if(isdefined(level.var_11813) && isalive(level.player))
{
if(func_128AF(param_00,level.player))
{
continue;
}
}
if(func_E29E())
{
return;
}
var_05 = 0;
var_06 = 0;
if(isalive(self.var_10C))
{
var_05 = func_9DDA();
var_06 = scripts\anim\utility_common::func_3918();
}
if(var_05)
{
if(self.var_1491.var_7E0C < gettime())
{
if(scripts\anim\combat_utility::func_B019())
{
return;
}
}
func_2538(param_00);
continue;
}
if(isdefined(self.var_190C) || scripts\anim\utility_common::func_6561())
{
if(func_18D4())
{
return;
}
}
if(var_06)
{
func_2533(param_00,var_02);
continue;
}
if(func_252A(param_00,var_02))
{
return;
}
}
}
//Function Number: 2
func_010B(param_00)
{
if(getdvarint("ai_iw7",0) == 1)
{
return;
}
self.var_129B3 = undefined;
self.var_1491.var_D892 = undefined;
if(isdefined(self.var_B600) && self.var_B600 <= gettime())
{
self.var_B5FF = gettime() + 5000;
self.var_B600 = undefined;
}
self method_806F(%head,0.2);
self.var_6A89 = undefined;
}
//Function Number: 3
func_7E3D()
{
if(scripts\common\utility::func_167E())
{
return self.var_473C.angles;
}
var_00 = (self.var_473C.angles[0],scripts\asm\shared_utility::func_7FF7(self.var_473C),self.var_473C.angles[2]);
return var_00;
}
//Function Number: 4
func_E29E()
{
if(self method_801B() && self.var_1491.var_E29F < gettime())
{
if(scripts\anim\combat_utility::func_B019())
{
return 1;
}
self.var_1491.var_E29F = gettime() + 30000;
}
return 0;
}
//Function Number: 5
func_5927(param_00)
{
if(func_112C9(param_00))
{
if(func_9DDA())
{
func_E26B();
}
self.var_1491.var_A97A = gettime();
return 1;
}
if(func_4742(param_00,0))
{
return 1;
}
return 0;
}
//Function Number: 6
func_2538(param_00)
{
if(distancesquared(self.origin,self.var_10C.origin) > 562500)
{
if(func_128AF(param_00,self.var_10C))
{
return;
}
}
if(func_AB2D(param_00,"normal"))
{
func_E26B();
self.var_1491.var_A97A = gettime();
return;
}
func_92CC(param_00);
}
//Function Number: 7
func_2533(param_00,param_01)
{
if(self.var_FC)
{
if(func_AB2D(param_00,"ambush"))
{
return;
}
}
else if(self.var_251 || gettime() >= param_01.var_BF6F)
{
var_02 = "suppress";
if(!self.var_251 && gettime() - self.var_AA22 > 5000 && randomint(3) < 2)
{
var_02 = "ambush";
}
else if(!scripts\anim\shoot_behavior::func_100A4())
{
var_02 = "ambush";
}
if(func_AB2D(param_00,var_02))
{
param_01.var_BF6F = gettime() + randomintrange(3000,20000);
if(func_9DDA())
{
self.var_1491.var_A97A = gettime();
}
return;
}
}
if(func_128AF(param_00,self.var_10C))
{
return;
}
func_92CC(param_00);
}
//Function Number: 8
func_252A(param_00,param_01)
{
if(func_4742(param_00,0.1))
{
return 0;
}
if(isdefined(self.var_10C))
{
if(func_128AF(param_00,self.var_10C))
{
return 0;
}
}
if(!self.var_FC && gettime() >= param_01.var_BF6E)
{
if(func_B01C(param_00))
{
param_01.var_BF6E = gettime() + randomintrange(4000,15000);
return 0;
}
}
if(gettime() > self.var_1491.var_7E0C)
{
if(func_3926())
{
return 1;
}
}
if(self.var_FC || gettime() >= param_01.var_BF6F && isdefined(self.var_10C))
{
if(func_AB2D(param_00,"ambush"))
{
if(func_9DDA())
{
func_E26B();
}
self.var_1491.var_A97A = gettime();
param_01.var_BF6F = gettime() + randomintrange(6000,20000);
return 0;
}
}
func_92CC(param_00);
return 0;
}
//Function Number: 9
func_9DDA()
{
if(!isdefined(self.var_10C))
{
return 0;
}
if(distancesquared(self.var_10C.origin,self.var_46A6) < 256)
{
return 0;
}
return scripts\anim\utility_common::func_3908();
}
//Function Number: 10
func_112C9(param_00)
{
if(!scripts\anim\utility_common::func_9F8F())
{
return 0;
}
var_01 = gettime();
var_02 = 1;
while(scripts\anim\utility_common::func_9F8F())
{
var_02 = 0;
self method_8272(self.var_473C.origin);
var_03 = 1;
if(isdefined(self.var_6BAB))
{
var_03 = scripts\common\utility::func_4347();
}
if(var_03)
{
if(func_128B1(param_00))
{
self notify("killanimscript");
return 1;
}
}
if(self.var_1491.var_2411 && scripts\anim\utility_common::func_3907())
{
return 0;
}
if(func_9DDA() || scripts\anim\utility_common::func_3918())
{
if(isdefined(level.var_11813) && isalive(level.player))
{
if(func_128AF(param_00,level.player))
{
continue;
}
}
if(func_4742(param_00,0))
{
continue;
}
if(self.team != "allies" && gettime() >= var_01)
{
if(func_2B99(param_00))
{
var_01 = gettime();
if(!isdefined(self.var_6BAB))
{
var_01 = var_01 + randomintrange(3000,12000);
}
continue;
}
}
if(func_128AF(param_00,self.var_10C))
{
var_02 = 1;
continue;
}
}
if(func_4742(param_00,0.1))
{
continue;
}
func_92CC(param_00);
}
if(!var_02 && randomint(2) == 0)
{
func_B018(param_00);
}
return 1;
}
//Function Number: 11
func_805E(param_00)
{
var_01 = [];
if(param_00 == 1)
{
var_01[0] = 0;
}
else if(param_00 == 2)
{
var_01[0] = randomint(2);
var_01[1] = 1 - var_01[0];
}
else
{
for(var_02 = 0;var_02 < param_00;var_02++)
{
var_01[var_02] = var_02;
}
for(var_02 = 0;var_02 < param_00;var_02++)
{
var_03 = var_02 + randomint(param_00 - var_02);
var_04 = var_01[var_03];
var_01[var_03] = var_01[var_02];
var_01[var_02] = var_04;
}
}
return var_01;
}
//Function Number: 12
func_3773(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_00))
{
return 0;
}
thread func_6335();
var_04 = gettime();
var_05 = undefined;
if(isdefined(param_03))
{
var_05 = [[ param_00 ]](param_01,param_02,param_03);
}
else if(isdefined(param_02))
{
var_05 = [[ param_00 ]](param_01,param_02);
}
else if(isdefined(param_01))
{
var_05 = [[ param_00 ]](param_01);
}
else
{
var_05 = [[ param_00 ]]();
}
if(!var_05)
{
self notify("dont_end_idle");
}
return var_05;
}
//Function Number: 13
func_13B72()
{
self endon("killanimscript");
self.var_AA22 = gettime() - 100000;
self.var_112CD = self.var_AA22;
for(;;)
{
self waittill("suppression");
var_00 = gettime();
if(self.var_AA22 < var_00 - 700)
{
self.var_112CD = var_00;
}
self.var_AA22 = var_00;
}
}
//Function Number: 14
func_4742(param_00,param_01)
{
if(self.var_3250 > weaponclipsize(self.var_394) * param_01)
{
return 0;
}
self.var_9F21 = 1;
var_02 = func_3773(param_00.var_260);
self.var_9F21 = 0;
return var_02;
}
//Function Number: 15
func_AB2D(param_00,param_01)
{
thread scripts\anim\shoot_behavior::func_4F69(param_01);
if(!self.var_132 && !self.var_FC)
{
thread func_2FBF();
}
var_02 = func_3773(param_00.var_AB2D);
self notify("stop_deciding_how_to_shoot");
return var_02;
}
//Function Number: 16
func_B01C(param_00)
{
if(self.var_1491.var_2411 && scripts\anim\utility_common::func_3907())
{
return 0;
}
if(self.var_1491.var_A97A + 6000 > gettime())
{
return func_B018(param_00);
}
var_01 = func_3773(param_00.var_1BC,2 + randomfloat(2));
if(var_01)
{
return 1;
}
return func_3773(param_00.var_6B9B);
}
//Function Number: 17
func_B018(param_00)
{
var_01 = func_3773(param_00.var_6B9B);
if(var_01)
{
return 1;
}
return func_3773(param_00.var_1BC,0);
}
//Function Number: 18
func_92CC(param_00,param_01)
{
self.var_6F28 = 0;
if(isdefined(param_00.var_6F27))
{
if(!self.var_1491.var_9302 && gettime() - self.var_112CD < 600)
{
if([[ param_00.var_6F27 ]]())
{
return 1;
}
}
else
{
thread func_6F29(param_00);
}
}
if(!self.var_1491.var_9302)
{
thread func_92FF(param_00.var_92CC);
self.var_1491.var_9302 = 1;
}
if(isdefined(param_01))
{
func_9300(param_01);
}
else
{
func_9301();
}
if(self.var_6F28)
{
self waittill("flinch_done");
}
self notify("stop_waiting_to_flinch");
}
//Function Number: 19
func_9300(param_00)
{
self endon("end_idle");
wait(param_00);
}
//Function Number: 20
func_9301()
{
self endon("end_idle");
wait(0.3 + randomfloat(0.1));
self waittill("do_slow_things");
}
//Function Number: 21
func_92FF(param_00)
{
self endon("killanimscript");
self [[ param_00 ]]();
}
//Function Number: 22
func_6F29(param_00)
{
self endon("killanimscript");
self endon("stop_waiting_to_flinch");
var_01 = self.var_AA22;
for(;;)
{
self waittill("suppression");
var_02 = gettime();
if(var_01 < var_02 - 2000)
{
break;
}
var_01 = var_02;
}
self.var_6F28 = 1;
thread func_6335();
var_03 = [[ param_00.var_6F27 ]]();
if(!var_03)
{
self notify("dont_end_idle");
}
self.var_6F28 = 0;
self notify("flinch_done");
}
//Function Number: 23
func_6335()
{
self endon("killanimscript");
self endon("dont_end_idle");
waittillframeend;
if(!isdefined(self))
{
return;
}
self notify("end_idle");
self.var_1491.var_9302 = 0;
}
//Function Number: 24
func_128AF(param_00,param_01)
{
var_02 = anglestoforward(self.angles);
var_03 = vectornormalize(param_01.origin - self.origin);
if(vectordot(var_02,var_03) < 0)
{
return 0;
}
if(self.var_FC && !scripts\anim\utility_common::func_DDC9())
{
return 0;
}
if(scripts\anim\utility::func_9ED4())
{
return func_3773(param_00.var_85BF,param_01);
}
return func_3773(param_00.var_15F,param_01);
}
//Function Number: 25
func_2B99(param_00)
{
if(!scripts\anim\utility::func_3875())
{
return 0;
}
return func_3773(param_00.var_2B99);
}
//Function Number: 26
func_2FBF()
{
self endon("killanimscript");
self endon("stop_deciding_how_to_shoot");
for(;;)
{
if(self.var_132 || self.var_FC)
{
return;
}
wait(0.5 + randomfloat(0.75));
if(!isdefined(self.var_10C))
{
continue;
}
if(scripts\anim\utility_common::func_6561())
{
if(func_18D4())
{
return;
}
}
if(!scripts\anim\utility_common::func_DDC9() && !scripts\anim\utility_common::func_3917())
{
if(gettime() > self.var_1491.var_7E0C)
{
if(func_3926())
{
return;
}
}
}
}
}
//Function Number: 27
func_E267()
{
self.var_1491.var_E29F = 0;
}
//Function Number: 28
func_E257()
{
var_00 = gettime();
if(isdefined(self.var_54C3) && var_00 > self.var_1491.var_7E0C)
{
self.var_1491.var_7E0C = var_00 + randomintrange(2000,5000);
return;
}
if(isdefined(self.var_10C))
{
var_01 = distance2d(self.origin,self.var_10C.origin);
if(var_01 < self.var_112)
{
self.var_1491.var_7E0C = var_00 + randomintrange(5000,10000);
return;
}
if(var_01 > self.var_110 && var_01 < self.var_15C)
{
self.var_1491.var_7E0C = var_00 + randomintrange(2000,5000);
return;
}
self.var_1491.var_7E0C = var_00 + randomintrange(10000,15000);
return;
}
self.var_1491.var_7E0C = var_00 + randomintrange(5000,15000);
}
//Function Number: 29
func_E26B()
{
if(isdefined(self.var_190C))
{
self.var_F17F = gettime() + randomintrange(500,1000);
return;
}
self.var_F17F = gettime() + randomintrange(3000,5000);
}
//Function Number: 30
func_3926()
{
return func_18D4();
}
//Function Number: 31
func_18D4()
{
if(self.var_132 || self.var_FC)
{
return 0;
}
if(isdefined(self.var_190C) && gettime() >= self.var_F17F)
{
return scripts\anim\combat_utility::func_128AA(0);
}
var_00 = 0;
if(!isdefined(self.var_10C) || !self.var_10C scripts\common\utility::func_9DFB())
{
var_00 = scripts\anim\combat_utility::func_B019();
}
if(!var_00 && isdefined(self.var_10C) && !scripts\anim\utility_common::func_3908())
{
if(gettime() >= self.var_F17F)
{
return scripts\anim\combat_utility::func_128AA(0);
}
}
return var_00;
}
//Function Number: 32
func_128B1(param_00)
{
if(isdefined(param_00.var_BD1C))
{
if([[ param_00.var_BD1C ]]())
{
return 1;
}
}
return scripts\anim\combat_utility::func_B019();
}
//Function Number: 33
func_F5AE()
{
var_00 = scripts\anim\utility::func_B028("exposed_turn");
foreach(var_03, var_02 in var_00)
{
self.var_1491.var_2274[var_03] = var_02;
}
}
//Function Number: 34
func_F318()
{
var_00 = scripts\anim\utility::func_B028("exposed_turn_crouch");
foreach(var_03, var_02 in var_00)
{
self.var_1491.var_2274[var_03] = var_02;
}
}
//Function Number: 35
func_129B4(param_00)
{
}
//Function Number: 36
func_BD1C()
{
if(!isdefined(self.var_10C))
{
return 0;
}
if(isdefined(self.var_54C3))
{
self.var_54C3 = undefined;
return 0;
}
if(!isdefined(self.var_205))
{
return 0;
}
if(scripts\common\utility::func_9EB2(self.var_205))
{
return 0;
}
if(randomint(3) == 0)
{
return 0;
}
if(self.var_132 || self.var_FC || self.var_1A3 || self.var_1A4)
{
return 0;
}
if(distancesquared(self.origin,self.var_205.origin) > 256)
{
return 0;
}
var_00 = self method_80E8();
if(isdefined(var_00) && var_00 != self.var_205 && self method_83D4(var_00))
{
self.var_1016F = 1;
self.var_10171 = var_00;
self.var_54C3 = 1;
wait(0.5);
return 1;
}
return 0;
}

View File

@ -0,0 +1,24 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\cover_crouch.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 136 ms
* Timestamp: 10/27/2023 12:00:24 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("killanimscript");
scripts\anim\utility::func_9832("cover_crouch");
scripts\anim\cover_wall::func_470E("crouch");
}
//Function Number: 2
func_010B()
{
self.var_4716 = undefined;
scripts\anim\cover_behavior::func_10B("crouch");
}

View File

@ -0,0 +1,52 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\cover_left.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 5
* Decompile Time: 284 ms
* Timestamp: 10/27/2023 12:00:24 AM
*******************************************************************/
//Function Number: 1
func_9507()
{
}
//Function Number: 2
main()
{
self.var_1F66 = [];
self.var_1F66["hiding"]["stand"] = ::func_F2BF;
self.var_1F66["hiding"]["crouch"] = ::func_F2B7;
self endon("killanimscript");
scripts\anim\utility::func_9832("cover_left");
scripts\anim\corner::func_4661("left",90);
}
//Function Number: 3
func_010B()
{
scripts\anim\corner::func_62F3();
scripts\anim\cover_behavior::func_10B("left");
}
//Function Number: 4
func_F2BF()
{
self.var_8EDF = 90;
self.var_1491.var_2274 = scripts\anim\utility::func_B028("cover_left_stand");
if(isdefined(level.var_DC5B))
{
self.var_1491.var_2274["rambo90"] = level.var_DC5B.var_4723;
self.var_1491.var_2274["rambo45"] = level.var_DC5B.var_4722;
self.var_1491.var_2274["grenade_rambo"] = level.var_DC5B.var_4724;
}
}
//Function Number: 5
func_F2B7()
{
self.var_8EDF = 90;
self.var_1491.var_2274 = scripts\anim\utility::func_B028("cover_left_crouch");
}

View File

@ -0,0 +1,293 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\cover_prone.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 15
* Decompile Time: 778 ms
* Timestamp: 10/27/2023 12:00:25 AM
*******************************************************************/
//Function Number: 1
func_9509()
{
}
//Function Number: 2
main()
{
self endon("killanimscript");
scripts\anim\utility::func_9832("cover_prone");
if(weaponclass(self.var_394) == "rocketlauncher")
{
scripts\anim\combat::main();
return;
}
if(isdefined(self.var_205.var_129B9))
{
scripts\anim\cover_wall::func_130DF();
}
if(isdefined(self.var_10C) && lengthsquared(self.origin - self.var_10C.origin) < squared(512))
{
thread scripts\anim\combat::main();
return;
}
func_F924();
self.var_473C = self.var_205;
self method_8221("face angle",self.var_473C.angles[1]);
self.var_1491.var_8445 = 1;
self method_832B(-45,45,%prone_legs_down,%exposed_modern,%prone_legs_up);
if(self.var_1491.var_D6A5 != "prone")
{
func_DA7B("prone");
}
else
{
scripts\anim\utility::func_662A(0);
}
thread scripts\anim\combat_utility::func_1A3E();
func_FADE(0.2);
self method_82A2(%prone_aim_5,1,0.1);
self method_8221("face angle",self.var_473C.angles[1]);
self method_8016("zonly_physics");
func_DA7E();
self notify("stop_deciding_how_to_shoot");
}
//Function Number: 3
func_010B()
{
self.var_1491.var_8445 = undefined;
}
//Function Number: 4
func_92FF()
{
self endon("killanimscript");
self endon("kill_idle_thread");
for(;;)
{
var_00 = scripts\anim\utility::func_1F67("prone_idle");
self method_82E8("idle",var_00);
self waittillmatch("end","idle");
self method_806F(var_00,0.2);
}
}
//Function Number: 5
func_12EF6(param_00)
{
self method_83CF(scripts\anim\utility::func_B027("cover_prone","legs_up"),scripts\anim\utility::func_B027("cover_prone","legs_down"),1,param_00,1);
self method_82A2(%exposed_aiming,1,0.2);
}
//Function Number: 6
func_DA7E()
{
self endon("killanimscript");
thread scripts\anim\track::func_11B07();
thread scripts\anim\shoot_behavior::func_4F69("normal");
var_00 = gettime() > 2500;
for(;;)
{
scripts\anim\utility::func_12EB9();
func_12EF6(0.05);
if(!var_00)
{
wait(0.05 + randomfloat(1.5));
var_00 = 1;
continue;
}
if(!isdefined(self.var_FECF))
{
if(func_453F())
{
continue;
}
wait(0.05);
continue;
}
var_01 = lengthsquared(self.origin - self.var_FECF);
if(self.var_1491.var_D6A5 != "crouch" && self method_81BF("crouch") && var_01 < squared(400))
{
if(var_01 < squared(285))
{
func_DA7B("crouch");
thread scripts\anim\combat::main();
return;
}
}
if(func_453F())
{
continue;
}
if(func_DA83(0))
{
continue;
}
if(scripts\anim\combat_utility::func_1A3B())
{
scripts\anim\combat_utility::func_FEDF();
self method_806F(%add_fire,0.2);
continue;
}
wait(0.05);
}
}
//Function Number: 7
func_DA83(param_00)
{
return scripts\anim\combat_utility::func_260(param_00,scripts\anim\utility::func_1F64("reload"));
}
//Function Number: 8
func_F924()
{
self method_82D0(self.var_205);
self.var_1491.var_2274 = scripts\anim\utility::func_B028("cover_prone");
}
//Function Number: 9
func_128AF(param_00,param_01)
{
var_02 = undefined;
if(isdefined(param_01) && param_01)
{
var_02 = scripts\anim\utility::func_1F67("grenade_safe");
}
else
{
var_02 = scripts\anim\utility::func_1F67("grenade_exposed");
}
self method_8016("zonly_physics");
self.var_1A4 = 1;
var_03 = (32,20,64);
var_04 = scripts\anim\combat_utility::func_128A0(param_00,var_02);
self.var_1A4 = 0;
return var_04;
}
//Function Number: 10
func_453F()
{
if(isdefined(level.var_11813) && isalive(level.player))
{
if(func_128AF(level.player,200))
{
return 1;
}
}
if(isdefined(self.var_10C))
{
return func_128AF(self.var_10C,850);
}
return 0;
}
//Function Number: 11
func_10012()
{
if(!isdefined(self.var_394) || !function_0245(self.var_394) || !function_02BE(self.var_394))
{
return 0;
}
if(isdefined(self.var_205) && distancesquared(self.origin,self.var_205.origin) < 256)
{
return 0;
}
if(isdefined(self.var_10C) && self method_805F(self.var_10C) && !isdefined(self.var_15F) && scripts\anim\shared::func_7DA8() < 20)
{
return scripts\anim\move::func_B4EC();
}
return 0;
}
//Function Number: 12
func_DA7B(param_00)
{
if(param_00 == self.var_1491.var_D6A5)
{
return;
}
self method_806F(%root,0.3);
scripts\anim\combat_utility::func_631A();
if(func_10012())
{
var_01 = scripts\anim\utility::func_1F64(self.var_1491.var_D6A5 + "_2_" + param_00 + "_firing");
}
else
{
var_01 = scripts\anim\utility::func_1F64(self.var_1491.var_D6A5 + "_2_" + var_01);
}
if(param_00 == "prone")
{
}
self method_82E4("trans",var_01,%body,1,0.2,1);
scripts\anim\shared::func_592B("trans");
self method_82A8(scripts\anim\utility::func_1F64("straight_level"),%body,1,0.25);
func_FADE(0.25);
}
//Function Number: 13
func_6CDE(param_00)
{
self endon("killanimscript");
scripts\anim\shared::func_592B(param_00);
}
//Function Number: 14
func_FADE(param_00)
{
self method_82A5(%prone_aim_5,%body,1,param_00);
self method_82AC(%prone_aim_2_add,1,param_00);
self method_82AC(%prone_aim_4_add,1,param_00);
self method_82AC(%prone_aim_6_add,1,param_00);
self method_82AC(%prone_aim_8_add,1,param_00);
}
//Function Number: 15
func_DA87(param_00,param_01)
{
self method_806F(%root,0.3);
var_02 = undefined;
if(isdefined(self.var_DA78))
{
var_02 = self.var_DA78;
}
if(isdefined(self.var_DA7A))
{
param_01 = self.var_DA7A;
}
if(!isdefined(param_01))
{
param_01 = 1;
}
scripts\anim\utility::func_697B(getanimlength(var_02) / 2);
self method_82E4("trans",var_02,%body,1,0.2,param_01);
scripts\anim\shared::func_592B("trans");
self method_806F(var_02,0.1);
}

View File

@ -0,0 +1,52 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\cover_right.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 5
* Decompile Time: 279 ms
* Timestamp: 10/27/2023 12:00:26 AM
*******************************************************************/
//Function Number: 1
func_950A()
{
}
//Function Number: 2
main()
{
self.var_1F66 = [];
self.var_1F66["hiding"]["stand"] = ::func_F2C0;
self.var_1F66["hiding"]["crouch"] = ::func_F2B8;
self endon("killanimscript");
scripts\anim\utility::func_9832("cover_right");
scripts\anim\corner::func_4661("right",-90);
}
//Function Number: 3
func_010B()
{
scripts\anim\corner::func_62F3();
scripts\anim\cover_behavior::func_10B("right");
}
//Function Number: 4
func_F2C0()
{
self.var_8EDF = -90;
self.var_1491.var_2274 = scripts\anim\utility::func_B028("cover_right_stand");
if(isdefined(level.var_DC5B))
{
self.var_1491.var_2274["rambo90"] = level.var_DC5B.var_4744;
self.var_1491.var_2274["rambo45"] = level.var_DC5B.var_4743;
self.var_1491.var_2274["grenade_rambo"] = level.var_DC5B.var_4745;
}
}
//Function Number: 5
func_F2B8()
{
self.var_8EDF = -90;
self.var_1491.var_2274 = scripts\anim\utility::func_B028("cover_right_crouch");
}

View File

@ -0,0 +1,23 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\cover_stand.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 139 ms
* Timestamp: 10/27/2023 12:00:26 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("killanimscript");
scripts\anim\utility::func_9832("cover_stand");
scripts\anim\cover_wall::func_470E("stand");
}
//Function Number: 2
func_010B()
{
scripts\anim\cover_behavior::func_10B("stand");
}

View File

@ -0,0 +1,879 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\cover_wall.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 38
* Decompile Time: 1983 ms
* Timestamp: 10/27/2023 12:00:29 AM
*******************************************************************/
//Function Number: 1
func_950B()
{
}
//Function Number: 2
func_470E(param_00)
{
self endon("killanimscript");
self.var_473C = self.var_205;
self.var_4757 = param_00;
if(!isdefined(self.var_205.var_129B9))
{
scripts\anim\cover_behavior::func_129B4(0);
}
if(param_00 == "crouch")
{
func_F923("unknown");
self.var_473C func_97F0();
}
else
{
func_F925("unknown");
}
self.var_1491.var_1A3E = undefined;
self method_8221("face angle",self.var_473C.angles[1]);
if(isdefined(self.var_205) && isdefined(self.var_205.var_129B9))
{
func_130DF();
}
self method_8016("normal");
if(param_00 == "crouch" && self.var_1491.var_D6A5 == "stand")
{
var_01 = scripts\anim\utility::func_1F64("stand_2_hide");
var_02 = getanimlength(var_01);
self method_82A8(var_01,%body,1,0.2,scripts\anim\combat_utility::func_6B9A());
thread scripts\anim\shared::func_BD1D(self.var_473C,var_02);
wait(var_02);
self.var_1491.var_4727 = "hide";
}
else
{
func_B05A(0.4);
if(distancesquared(self.origin,self.var_473C.origin) > 1)
{
thread scripts\anim\shared::func_BD1D(self.var_473C,0.4);
wait(0.2);
if(param_00 == "crouch")
{
self.var_1491.var_D6A5 = "crouch";
}
wait(0.2);
}
else
{
wait(0.1);
}
}
func_F6C0();
if(param_00 == "crouch")
{
if(self.var_1491.var_D6A5 == "prone")
{
scripts\anim\utility::func_697B(1);
}
self.var_1491.var_D6A5 = "crouch";
}
if(self.var_4757 == "stand")
{
self.var_1491.var_10930 = "cover_stand";
}
else
{
self.var_1491.var_10930 = "cover_crouch";
}
var_03 = spawnstruct();
if(!self.var_132)
{
var_03.var_BD1C = ::scripts\anim\cover_behavior::func_BD1C;
}
var_03.var_260 = ::func_4742;
var_03.var_AB2D = ::func_D66A;
var_03.var_1BC = ::func_01BC;
var_03.var_6B9B = ::func_6B9B;
var_03.var_92CC = ::func_92CC;
var_03.var_6F27 = ::func_6F27;
var_03.var_15F = ::func_128AF;
var_03.var_85BF = ::func_128B0;
var_03.var_2B99 = ::func_2B99;
scripts\anim\cover_behavior::main(var_03);
}
//Function Number: 3
func_9F33(param_00)
{
return getsubstr(param_00,0,3) == "rpd" && param_00.size == 3 || param_00[3] == "_";
}
//Function Number: 4
func_97F0()
{
if(isdefined(self.var_4A9D))
{
return;
}
var_00 = (0,0,42);
var_01 = anglestoforward(self.angles);
self.var_4A9D = sighttracepassed(self.origin + var_00,self.origin + var_00 + var_01 * 64,0,undefined);
}
//Function Number: 5
func_F923(param_00)
{
scripts\anim\combat::func_F337(self.var_473C);
func_F92B(param_00);
}
//Function Number: 6
func_F925(param_00)
{
scripts\anim\combat::func_F337(self.var_473C);
func_FA52(param_00);
}
//Function Number: 7
func_4742()
{
var_00 = scripts\anim\combat_utility::func_260(2,scripts\anim\utility::func_1F64("reload"));
if(isdefined(var_00) && var_00)
{
return 1;
}
return 0;
}
//Function Number: 8
func_D66A()
{
self.var_1A4 = 1;
if(isdefined(self.var_DC5C) && randomfloat(1) < self.var_DC5C)
{
if(func_DC57())
{
return 1;
}
}
if(!func_D65B())
{
return 0;
}
func_FE95();
scripts\anim\combat_utility::func_631A();
if(isdefined(self.var_FECF))
{
var_00 = lengthsquared(self.origin - self.var_FECF);
if(scripts\anim\utility_common::func_1311B() && scripts\anim\utility::func_10000(var_00))
{
if(self.var_1491.var_D6A5 == "stand")
{
scripts\anim\shared::func_1180E(scripts\anim\utility::func_B027("combat","drop_rpg_stand"));
}
else
{
scripts\anim\shared::func_1180E(scripts\anim\utility::func_B027("combat","drop_rpg_crouch"));
}
}
}
func_8405();
self.var_4716 = undefined;
self.var_1A4 = 0;
return 1;
}
//Function Number: 9
func_FE95()
{
self endon("return_to_cover");
scripts\sp\_gameskill::func_54C4();
for(;;)
{
if(isdefined(self.var_1006D))
{
break;
}
if(!isdefined(self.var_FECF))
{
self waittill("do_slow_things");
waittillframeend;
if(isdefined(self.var_FECF))
{
continue;
}
break;
}
if(!self.var_3250)
{
break;
}
if(self.var_4757 == "crouch" && func_BE9D())
{
break;
}
func_FEE1();
self method_806F(%add_fire,0.2);
}
}
//Function Number: 10
func_FEE1()
{
if(self.var_4757 == "crouch")
{
thread func_1E82();
}
thread scripts\anim\combat_utility::func_1A3E();
scripts\anim\combat_utility::func_FEDF();
}
//Function Number: 11
func_DC57()
{
if(!scripts\anim\utility::func_8BED())
{
return 0;
}
var_00 = "rambo";
if(randomint(10) < 2)
{
var_00 = "rambo_fail";
}
if(!scripts\anim\utility::func_1F65(var_00))
{
return 0;
}
if(self.var_4757 == "crouch" && !self.var_473C.var_4A9D)
{
return 0;
}
var_01 = func_811F(self.var_473C.origin + scripts\anim\utility_common::func_7FFC(self.var_473C));
if(var_01 > 15)
{
return 0;
}
var_02 = anglestoforward(self.angles);
var_03 = self.origin + var_02 * -16;
if(!self method_8200(var_03))
{
return 0;
}
self.var_4740 = gettime();
func_F6C0();
self.var_1A4 = 1;
self.var_9F15 = 1;
self.var_1491.var_D892 = "rambo";
self.var_3C60 = 1;
thread scripts\anim\shared::func_DC59(0);
var_04 = scripts\anim\utility::func_1F67(var_00);
self method_82E4("rambo",var_04,%body,1,0.2,1);
func_470A(var_04);
scripts\anim\shared::func_592B("rambo");
self notify("rambo_aim_end");
self.var_3C60 = 0;
self.var_1A4 = 0;
self.var_A9D8 = gettime();
self.var_3C60 = 0;
self.var_9F15 = undefined;
return 1;
}
//Function Number: 12
func_92CC()
{
self endon("end_idle");
for(;;)
{
var_00 = randomint(2) == 0 && scripts\anim\utility::func_1F65("hide_idle_twitch");
if(var_00)
{
var_01 = scripts\anim\utility::func_1F67("hide_idle_twitch");
}
else
{
var_01 = scripts\anim\utility::func_1F64("hide_idle");
}
func_D49E(var_01,var_00);
}
}
//Function Number: 13
func_6F27()
{
if(!scripts\anim\utility::func_1F65("hide_idle_flinch"))
{
return 0;
}
var_00 = anglestoforward(self.angles);
var_01 = self.origin + var_00 * -16;
if(!self method_8200(var_01,!scripts\common\utility::func_167E()))
{
return 0;
}
func_F6C0();
self.var_1A4 = 1;
var_02 = scripts\anim\utility::func_1F67("hide_idle_flinch");
func_D49E(var_02,1);
self.var_1A4 = 0;
return 1;
}
//Function Number: 14
func_D49E(param_00,param_01)
{
if(param_01)
{
self method_82E4("idle",param_00,%body,1,0.25,1);
}
else
{
self method_82E3("idle",param_00,%body,1,0.25,1);
}
func_470A(param_00);
self.var_1491.var_4727 = "hide";
scripts\anim\shared::func_592B("idle");
}
//Function Number: 15
func_01BC(param_00)
{
if(!isdefined(self.var_1491.var_2274["hide_to_look"]))
{
return 0;
}
if(!func_C9FC())
{
return 0;
}
scripts\anim\shared::func_D4C2(scripts\anim\utility::func_1F64("look_idle"),param_00);
var_01 = undefined;
if(scripts\anim\utility_common::func_9F8F())
{
var_01 = scripts\anim\utility::func_1F64("look_to_hide_fast");
}
else
{
var_01 = scripts\anim\utility::func_1F64("look_to_hide");
}
self method_82E4("looking_end",var_01,%body,1,0.1);
func_470A(var_01);
scripts\anim\shared::func_592B("looking_end");
return 1;
}
//Function Number: 16
func_C9FC()
{
if(isdefined(self.var_473C.var_ED6A))
{
return 0;
}
var_00 = scripts\anim\utility::func_1F64("hide_to_look");
self method_82E3("looking_start",var_00,%body,1,0.2);
func_470A(var_00);
scripts\anim\shared::func_592B("looking_start");
return 1;
}
//Function Number: 17
func_6B9B()
{
var_00 = scripts\anim\utility::func_1F67("look");
self method_82E4("look",var_00,%body,1,0.1);
func_470A(var_00);
scripts\anim\shared::func_592B("look");
return 1;
}
//Function Number: 18
func_D65C()
{
if(self.var_1491.var_4727 == "left" || self.var_1491.var_4727 == "right" || self.var_1491.var_4727 == "over")
{
return 1;
}
return scripts\anim\combat_utility::func_DCAD();
}
//Function Number: 19
func_D65B()
{
var_00 = func_7DFA();
var_01 = 0.1;
var_02 = scripts\anim\utility::func_1F64("hide_2_" + var_00);
var_03 = !scripts\common\utility::func_167E();
if(!self method_8200(scripts\anim\utility::func_7DC6(var_02),var_03))
{
return 0;
}
if(self.script == "cover_crouch" && var_00 == "lean")
{
self.var_4716 = 1;
}
if(self.var_4757 == "crouch")
{
func_F923(var_00);
}
else
{
func_F925(var_00);
}
self.var_1491.var_10930 = "none";
self.var_10957 = undefined;
if(self.var_4757 == "stand")
{
self.var_1491.var_10930 = "cover_stand_aim";
}
else
{
self.var_1491.var_10930 = "cover_crouch_aim";
}
self.var_3C60 = 1;
self notify("done_changing_cover_pos");
func_F6C0();
var_04 = func_D65C();
self method_82E4("pop_up",var_02,%body,1,0.1,var_04);
thread func_5930("pop_up");
if(animhasnotetrack(var_02,"start_aim"))
{
self waittillmatch("start_aim","pop_up");
var_01 = getanimlength(var_02) / var_04 * 1 - self method_8102(var_02);
}
else
{
self waittillmatch("end","pop_up");
var_01 = 0.1;
}
self method_806F(var_02,var_01 + 0.05);
self.var_1491.var_4727 = var_00;
self.var_1491.var_D892 = var_00;
func_F8A6(var_01);
thread scripts\anim\track::func_11B07();
wait(var_01);
if(scripts\anim\utility_common::func_9D4D())
{
thread scripts\anim\shoot_behavior::func_103A7();
}
self.var_3C60 = 0;
self.var_4740 = gettime();
self notify("stop_popup_donotetracks");
return 1;
}
//Function Number: 20
func_5930(param_00)
{
self endon("killanimscript");
self endon("stop_popup_donotetracks");
scripts\anim\shared::func_592B(param_00);
}
//Function Number: 21
func_F8A6(param_00)
{
if(self.var_1491.var_4727 == "left" || self.var_1491.var_4727 == "right")
{
var_01 = "crouch";
}
else
{
var_01 = self.var_1491.var_4727;
}
self method_82A5(scripts\anim\utility::func_1F64(var_01 + "_aim"),%body,1,param_00);
if(var_01 == "crouch")
{
self method_82AC(scripts\anim\utility::func_B027("cover_crouch","add_aim_down"),1,0);
self method_82AC(scripts\anim\utility::func_B027("cover_crouch","add_aim_left"),1,0);
self method_82AC(scripts\anim\utility::func_B027("cover_crouch","add_aim_up"),1,0);
self method_82AC(scripts\anim\utility::func_B027("cover_crouch","add_aim_right"),1,0);
return;
}
if(var_01 == "stand")
{
self method_82AC(scripts\anim\utility::func_B027("default_stand","add_aim_down"),1,0);
self method_82AC(scripts\anim\utility::func_B027("default_stand","add_aim_left"),1,0);
self method_82AC(scripts\anim\utility::func_B027("default_stand","add_aim_up"),1,0);
self method_82AC(scripts\anim\utility::func_B027("default_stand","add_aim_right"),1,0);
return;
}
if(var_01 == "lean")
{
self method_82AC(scripts\anim\utility::func_B027("default_stand","add_aim_down"),1,0);
self method_82AC(scripts\anim\utility::func_B027("default_stand","add_aim_left"),1,0);
self method_82AC(scripts\anim\utility::func_B027("default_stand","add_aim_up"),1,0);
self method_82AC(scripts\anim\utility::func_B027("default_stand","add_aim_right"),1,0);
return;
}
if(var_01 == "over")
{
self method_82AC(scripts\anim\utility::func_B027("cover_stand","add_aim_down"),1,0);
self method_82AC(scripts\anim\utility::func_B027("cover_stand","add_aim_left"),1,0);
self method_82AC(scripts\anim\utility::func_B027("cover_stand","add_aim_up"),1,0);
self method_82AC(scripts\anim\utility::func_B027("cover_stand","add_aim_right"),1,0);
return;
}
}
//Function Number: 22
func_8405()
{
self notify("return_to_cover");
self.var_3C60 = 1;
self notify("done_changing_cover_pos");
scripts\anim\combat_utility::func_6309();
var_00 = func_D65C();
self method_82E3("go_to_hide",scripts\anim\utility::func_1F64(self.var_1491.var_4727 + "_2_hide"),%body,1,0.2,var_00);
self method_806F(%exposed_modern,0.2);
scripts\anim\shared::func_592B("go_to_hide");
self.var_1491.var_4727 = "hide";
if(self.var_4757 == "stand")
{
self.var_1491.var_10930 = "cover_stand";
}
else
{
self.var_1491.var_10930 = "cover_crouch";
}
self.var_3C60 = 0;
}
//Function Number: 23
func_128B0(param_00)
{
return func_128AF(param_00,1);
}
//Function Number: 24
func_128AF(param_00,param_01)
{
if(isdefined(self.var_595D) || isdefined(param_00.var_5951))
{
return 0;
}
var_02 = undefined;
if(isdefined(self.var_DC5C) && randomfloat(1) < self.var_DC5C)
{
var_02 = scripts\anim\utility::func_1F67("grenade_rambo");
}
else if(isdefined(param_01) && param_01)
{
var_02 = scripts\anim\utility::func_1F67("grenade_safe");
}
else
{
var_02 = scripts\anim\utility::func_1F67("grenade_exposed");
}
func_F6C0();
self.var_1A4 = 1;
var_03 = scripts\anim\combat_utility::func_128A0(param_00,var_02);
self.var_1A4 = 0;
return var_03;
}
//Function Number: 25
func_2B99()
{
if(!scripts\anim\utility::func_1F65("blind_fire"))
{
return 0;
}
func_F6C0();
self.var_1A4 = 1;
self method_82E4("blindfire",scripts\anim\utility::func_1F67("blind_fire"),%body,1,0.2,1);
scripts\anim\shared::func_592B("blindfire");
self.var_1A4 = 0;
return 1;
}
//Function Number: 26
func_4A2B(param_00,param_01,param_02)
{
var_03 = spawnturret("misc_turret",param_00.origin,param_01);
var_03.angles = param_00.angles;
var_03.var_1A56 = self;
var_03 setmodel(param_02);
var_03 makeusable();
var_03 method_82D1(0);
if(isdefined(param_00.var_1B8))
{
var_03.var_1B8 = param_00.var_1B8;
}
if(isdefined(param_00.var_269))
{
var_03.var_269 = param_00.var_269;
}
if(isdefined(param_00.var_349))
{
var_03.var_349 = param_00.var_349;
}
if(isdefined(param_00.var_6B))
{
var_03.var_6B = param_00.var_6B;
}
return var_03;
}
//Function Number: 27
func_51B9(param_00)
{
self endon("death");
self endon("being_used");
wait(0.1);
if(isdefined(param_00))
{
param_00 notify("turret_use_failed");
}
self delete();
}
//Function Number: 28
func_130DF()
{
var_00 = self.var_205.var_129B9;
if(!var_00.var_9F46)
{
return;
}
thread scripts\sp\_mg_penetration::func_8715(var_00);
self waittill("continue_cover_script");
}
//Function Number: 29
func_F92B(param_00)
{
self.var_1491.var_2274 = scripts\anim\utility::func_B028("cover_crouch");
if(scripts\anim\utility_common::func_13C40())
{
if(param_00 == "lean" || param_00 == "stand")
{
self.var_1491.var_2274["single"] = scripts\anim\utility::func_B027("shotgun_stand","single");
}
else
{
self.var_1491.var_2274["single"] = scripts\anim\utility::func_B027("shotgun_crouch","single");
}
}
if(isdefined(level.var_DC5B))
{
self.var_1491.var_2274["rambo"] = level.var_DC5B.var_4713;
self.var_1491.var_2274["rambo_fail"] = level.var_DC5B.var_4714;
self.var_1491.var_2274["grenade_rambo"] = level.var_DC5B.var_4715;
}
}
//Function Number: 30
func_FA52(param_00)
{
self.var_1491.var_2274 = scripts\anim\utility::func_B028("cover_stand");
if(param_00 != "over")
{
var_01 = scripts\anim\utility::func_B028("default_stand");
self.var_1491.var_2274["stand_aim"] = var_01["straight_level"];
self.var_1491.var_2274["fire"] = var_01["fire_corner"];
self.var_1491.var_2274["semi2"] = var_01["semi2"];
self.var_1491.var_2274["semi3"] = var_01["semi3"];
self.var_1491.var_2274["semi4"] = var_01["semi4"];
self.var_1491.var_2274["semi5"] = var_01["semi5"];
if(scripts\anim\utility_common::func_13C40())
{
self.var_1491.var_2274["single"] = scripts\anim\utility::func_B027("shotgun_stand","single");
}
else
{
self.var_1491.var_2274["single"] = var_01["single"];
}
self.var_1491.var_2274["burst2"] = var_01["burst2"];
self.var_1491.var_2274["burst3"] = var_01["burst3"];
self.var_1491.var_2274["burst4"] = var_01["burst4"];
self.var_1491.var_2274["burst5"] = var_01["burst5"];
self.var_1491.var_2274["burst6"] = var_01["burst6"];
}
if(isdefined(level.var_DC5B))
{
self.var_1491.var_2274["rambo"] = level.var_DC5B.var_474A;
self.var_1491.var_2274["rambo_fail"] = level.var_DC5B.var_474B;
self.var_1491.var_2274["grenade_rambo"] = level.var_DC5B.var_474C;
}
}
//Function Number: 31
func_B05A(param_00)
{
if(!isdefined(param_00))
{
param_00 = 0.1;
}
self method_82A8(scripts\anim\utility::func_1F64("hide_idle"),%body,1,param_00);
self.var_1491.var_4727 = "hide";
}
//Function Number: 32
func_1E82()
{
self endon("killanimscript");
self notify("newAngleRangeCheck");
self endon("newAngleRangeCheck");
self endon("return_to_cover");
for(;;)
{
if(func_BE9D())
{
break;
}
wait(0.1);
}
self notify("stopShooting");
}
//Function Number: 33
func_BE9D()
{
if(self.var_4757 != "crouch")
{
return 0;
}
var_00 = func_811F(self geteye());
if(self.var_1491.var_4727 == "lean")
{
return var_00 < 10;
}
return var_00 > 45;
}
//Function Number: 34
func_7DFA()
{
var_00 = [];
if(self.var_4757 == "stand")
{
var_00 = self.var_473C method_8169();
var_00[var_00.size] = "stand";
}
else
{
var_01 = func_811F(self.var_473C.origin + scripts\anim\utility_common::func_7FFC(self.var_473C));
if(var_01 > 30)
{
return "lean";
}
if(var_01 > 15 || !self.var_473C.var_4A9D)
{
return "stand";
}
var_00 = self.var_473C method_8169();
var_00[var_00.size] = "crouch";
}
for(var_02 = 0;var_02 < var_00.size;var_02++)
{
if(!isdefined(self.var_1491.var_2274["hide_2_" + var_00[var_02]]))
{
var_00[var_02] = var_00[var_00.size - 1];
var_00[var_00.size - 1] = undefined;
continue;
}
}
return scripts\anim\combat_utility::func_80B5(var_00);
}
//Function Number: 35
func_811F(param_00)
{
var_01 = scripts\anim\utility_common::func_7E8D();
return angleclamp180(vectortoangles(var_01 - param_00)[0]);
}
//Function Number: 36
func_F6C0()
{
if(scripts\common\utility::func_167E())
{
self method_8016("nogravity");
return;
}
self method_8016("zonly_physics");
}
//Function Number: 37
func_470A(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = "run";
}
self.var_6A89 = scripts\anim\face::func_D475(param_00,param_01,self.var_6A89);
}
//Function Number: 38
func_4701()
{
self.var_6A89 = undefined;
self method_806F(%head,0.2);
}

View File

@ -0,0 +1,279 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\cqb.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 9
* Decompile Time: 889 ms
* Timestamp: 10/27/2023 12:00:30 AM
*******************************************************************/
//Function Number: 1
func_BCB1()
{
scripts\anim\run::func_10B77();
if(self.var_1491.var_D6A5 != "stand")
{
self method_806F(%root,0.2);
if(self.var_1491.var_D6A5 == "prone")
{
scripts\anim\utility::func_697B(1);
}
self.var_1491.var_D6A5 = "stand";
}
self.var_1491.var_BCC8 = self.var_1F5;
func_479B();
if(scripts\anim\run::func_BC1D())
{
return;
}
self method_806F(%stair_transitions,0.2);
if(scripts\anim\run::func_10B78())
{
return;
}
if(isdefined(self.var_118FF))
{
var_00 = self.var_118FF;
}
else
{
var_00 = 0;
}
self.var_118FF = gettime();
var_01 = func_53C3();
if(self.var_2C0 == "none")
{
var_02 = 0.3;
}
else
{
var_02 = 0.1;
}
var_03 = 0.2;
var_04 = %walk_and_run_loops;
if(self.var_118FF - var_00 > var_03 * 1000)
{
var_04 = %stand_and_crouch;
}
self method_82E3("runanim",var_01,var_04,1,var_02,self.var_BCD6,1);
func_478E(var_01);
scripts\anim\run::func_F7A9(scripts\anim\utility::func_B027("cqb","move_b"),scripts\anim\utility::func_B027("cqb","move_l"),scripts\anim\utility::func_B027("cqb","move_r"));
thread scripts\anim\run::func_F69A("cqb");
scripts\anim\notetracks::func_5931(var_03,"runanim");
}
//Function Number: 2
func_53C3()
{
if(isdefined(self.var_4C8F) && isdefined(self.var_4C8F["cqb"]))
{
return scripts\anim\run::func_80FB();
}
if(self.var_2C0 == "up")
{
return scripts\anim\utility::func_B027("cqb","stairs_up");
}
if(self.var_2C0 == "down")
{
return scripts\anim\utility::func_B027("cqb","stairs_down");
}
if(self.var_1F5 == "walk")
{
return scripts\anim\utility::func_B027("cqb","move_f");
}
if(isdefined(self.var_1491.var_29CE) && self.var_1491.var_29CE)
{
return scripts\anim\utility::func_B027("cqb","straight");
}
var_00 = scripts\anim\utility::func_B027("cqb","straight_twitch");
if(!isdefined(var_00) || var_00.size == 0)
{
return scripts\anim\utility::func_B027("cqb","straight");
}
var_01 = scripts\anim\utility::func_80BD(self.var_1491.var_E860,4);
if(var_01 == 0)
{
var_02 = scripts\anim\utility::func_80BD(self.var_1491.var_E860,var_00.size);
return var_00[var_02];
}
return scripts\anim\utility::func_B027("cqb","straight");
}
//Function Number: 3
func_4790()
{
self endon("movemode");
self method_8221("face motion");
var_00 = "reload_" + scripts\anim\combat_utility::func_81EB();
var_01 = scripts\anim\utility::func_B027("cqb","reload");
if(isarray(var_01))
{
var_01 = var_01[randomint(var_01.size)];
}
self method_82E4(var_00,var_01,%body,1,0.25);
func_478E(var_01);
scripts\anim\run::func_F7A9(scripts\anim\utility::func_B027("cqb","move_b"),scripts\anim\utility::func_B027("cqb","move_l"),scripts\anim\utility::func_B027("cqb","move_r"));
thread scripts\anim\run::func_F69A("cqb");
scripts\anim\shared::func_592B(var_00);
}
//Function Number: 4
func_479B()
{
var_00 = self.var_2C0 != "none";
var_01 = !var_00 && scripts\anim\move::func_B4EC();
scripts\anim\run::func_F843(var_01);
if(var_00)
{
scripts\anim\run::func_6318();
return;
}
thread scripts\anim\run::func_6A6B();
}
//Function Number: 5
func_FA9F()
{
level.var_479A = [];
var_00 = "cqb_point_of_interest";
var_01 = getentarray(var_00,"targetname");
foreach(var_03 in var_01)
{
level.var_479A[level.var_479A.size] = var_03.origin;
var_03 delete();
}
thread func_FAA0(var_00);
}
//Function Number: 6
func_FAA0(param_00)
{
waittillframeend;
var_01 = scripts\common\utility::getstructarray(param_00,"targetname");
foreach(var_03 in var_01)
{
level.var_479A[level.var_479A.size] = var_03.origin;
scripts\sp\_utility::func_51D4(var_03);
}
}
//Function Number: 7
func_6CB4()
{
if(isdefined(level.var_6CB8))
{
return;
}
anim.var_6CB8 = 1;
waittillframeend;
if(!level.var_479A.size)
{
return;
}
for(;;)
{
var_00 = function_0072();
var_01 = 0;
foreach(var_03 in var_00)
{
if(isalive(var_03) && var_03 scripts\anim\utility::func_9D9B() && !isdefined(var_03.var_5512))
{
var_04 = var_03.var_1491.var_BCC8 != "stop";
var_05 = (var_03.origin[0],var_03.origin[1],var_03 method_815B()[2]);
var_06 = var_05;
var_07 = anglestoforward(var_03.angles);
if(var_04)
{
var_08 = bullettrace(var_06,var_06 + var_07 * 128,0,undefined);
var_06 = var_08["position"];
}
var_09 = -1;
var_0A = 1048576;
for(var_0B = 0;var_0B < level.var_479A.size;var_0B++)
{
var_0C = level.var_479A[var_0B];
var_0D = distancesquared(var_0C,var_06);
if(var_0D < var_0A)
{
if(var_04)
{
if(distancesquared(var_0C,var_05) < 4096)
{
continue;
}
var_0E = vectordot(vectornormalize(var_0C - var_05),var_07);
if(var_0E < 0.643 || var_0E > 0.966)
{
continue;
}
}
else if(var_0D < 2500)
{
continue;
}
if(!sighttracepassed(var_06,var_0C,0,undefined))
{
continue;
}
var_0A = var_0D;
var_09 = var_0B;
}
}
if(var_09 < 0)
{
var_03.var_478F = undefined;
}
else
{
var_03.var_478F = level.var_479A[var_09];
}
wait(0.05);
var_01 = 1;
}
}
if(!var_01)
{
wait(0.25);
}
}
}
//Function Number: 8
func_478E(param_00)
{
self.var_6A89 = scripts\anim\face::func_D475(param_00,"run",self.var_6A89);
}
//Function Number: 9
func_4789()
{
self.var_6A89 = undefined;
self method_806F(%head,0.2);
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,308 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\door.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 11
* Decompile Time: 636 ms
* Timestamp: 10/27/2023 12:00:33 AM
*******************************************************************/
//Function Number: 1
func_5A09()
{
self endon("killanimscript");
if(isdefined(self.var_55DA))
{
return;
}
for(;;)
{
var_00 = self method_811E();
if(isdefined(var_00))
{
break;
}
wait(0.2);
}
var_01 = var_00.type == "Door Interior" || self method_808A(var_00);
if(var_01)
{
func_5A06(var_00);
}
else
{
func_5A0A(var_00);
}
for(;;)
{
var_02 = self method_811E();
if(!isdefined(var_02) || var_02 != var_00)
{
break;
}
wait(0.2);
}
thread func_5A09();
}
//Function Number: 2
func_115CD()
{
self endon("killanimscript");
self.var_115CE = 1;
wait(5);
self.var_115CE = undefined;
}
//Function Number: 3
func_5817(param_00)
{
thread func_115CD();
if(self.var_166 == "flash_grenade")
{
self notify("flashbang_thrown");
}
self method_8221("face current");
param_00.var_BF7D = gettime() + 5000;
self.var_B7B5 = gettime() + 100000;
self notify("move_interrupt");
self.var_12DEF = undefined;
self method_806F(%combatrun,0.2);
self.var_1491.var_BCC8 = "stop";
self waittill("done_grenade_throw");
self method_8221("face default");
self.var_B7B5 = gettime() + 5000;
self.var_166 = self.var_C3F2;
self.var_C3F2 = undefined;
scripts\anim\run::func_6318();
thread scripts\anim\move::func_C968();
thread scripts\anim\move::func_E2B4(1);
}
//Function Number: 4
func_5A08(param_00,param_01,param_02,param_03,param_04)
{
var_05 = 0;
var_06 = 3;
var_07 = undefined;
var_08 = anglestoforward(param_00.angles);
if(param_00.type == "Door Interior" && !self method_808A(param_00))
{
var_08 = -1 * var_08;
}
var_09 = (param_00.origin[0],param_00.origin[1],param_00.origin[2] + 64);
var_0A = var_09;
if(param_02)
{
var_0B = anglestoright(param_00.angles);
var_0C = param_00.origin - self.origin;
var_0D = vectordot(var_0B,var_0C);
if(var_0D > 20)
{
var_0D = 20;
}
else if(var_0D < -20)
{
var_0D = -20;
}
var_0A = var_09 + var_0D * var_0B;
}
while(var_06 > 0)
{
if(isdefined(self.var_15F) || !isdefined(self.var_10C))
{
return;
}
if(func_C586(param_00,var_08))
{
return;
}
if(!self method_8296(self.var_10C,0.2) && self.var_1491.var_D6A5 == "stand" && func_56F2(self.var_10C.origin - param_00.origin,360000,16384))
{
if(isdefined(param_00.var_BF7D) && param_00.var_BF7D > gettime())
{
return;
}
if(self method_8061())
{
return;
}
var_0C = param_00.origin - self.origin;
if(lengthsquared(var_0C) < param_03)
{
return;
}
if(vectordot(var_0C,var_08) < 0)
{
return;
}
self.var_C3F2 = self.var_166;
self.var_166 = param_01;
scripts\anim\combat_utility::func_F62B(self.var_10C);
if(!var_05)
{
var_0E = var_09 + var_08 * 100;
if(!self method_81A2(self.var_10C,var_0E,128))
{
return;
}
}
var_05 = 1;
if(scripts\anim\combat_utility::func_128A2(self.var_10C,var_0A,var_07,scripts\anim\combat_utility::func_7EE8(var_07),1,0,1))
{
func_5817(param_00);
return;
}
}
var_06--;
wait(param_04);
var_0F = self method_811E();
if(!isdefined(var_0F) || var_0F != param_00)
{
return;
}
}
}
//Function Number: 5
func_940A()
{
self endon("killanimscript");
if(isdefined(self.var_55DA))
{
return;
}
self.var_9E45 = 0;
for(;;)
{
if(self method_81A4() && !self.var_FC)
{
func_5A07();
}
else if(!isdefined(self.var_B7B5) || self.var_B7B5 < gettime())
{
self.var_B7B5 = undefined;
func_5A0B();
}
wait(0.2);
}
}
//Function Number: 6
func_5A07()
{
if(!isdefined(self.var_BEF7) && !self.var_FC)
{
self.var_9E45 = 1;
if(!scripts\anim\utility::func_9D9B())
{
scripts\sp\_utility::func_61E7(1);
}
}
}
//Function Number: 7
func_5A0B()
{
if(!isdefined(self.var_4797))
{
self.var_9E45 = 0;
if(scripts\anim\utility::func_9D9B())
{
scripts\sp\_utility::func_5514();
}
}
}
//Function Number: 8
func_56F2(param_00,param_01,param_02)
{
return param_00[0] * param_00[0] + param_00[1] * param_00[1] < param_01 && param_00[2] * param_00[2] < param_02;
}
//Function Number: 9
func_C586(param_00,param_01)
{
var_02 = param_00.origin - self.origin;
var_03 = param_00.origin - self.var_10C.origin;
return vectordot(var_02,param_01) * vectordot(var_03,param_01) > 0;
}
//Function Number: 10
func_5A06(param_00)
{
for(;;)
{
if(isdefined(self.var_5A0F) && self.var_5A0F == 0 || self.var_5A0F < randomfloat(1))
{
break;
}
if(func_56F2(self.origin - param_00.origin,562500,25600))
{
func_5A08(param_00,"fraggrenade",0,302500,0.3);
param_00 = self method_811E();
if(!isdefined(param_00))
{
return;
}
break;
}
wait(0.1);
}
for(;;)
{
if(func_56F2(self.origin - param_00.origin,-28672,6400))
{
func_5A07();
self.var_B7B5 = gettime() + 6000;
if(isdefined(self.var_5A0E) && self.var_5A0E == 0 || self.var_5A0E < randomfloat(1))
{
return;
}
func_5A08(param_00,"flash_grenade",1,4096,0.2);
return;
}
wait(0.1);
}
}
//Function Number: 11
func_5A0A(param_00)
{
for(;;)
{
if(!self.var_9E45 || distancesquared(self.origin,param_00.origin) < 1024)
{
return;
}
wait(0.1);
}
}

View File

@ -0,0 +1,493 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\exit_node.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 15
* Decompile Time: 747 ms
* Timestamp: 10/27/2023 12:00:34 AM
*******************************************************************/
//Function Number: 1
func_10DCA()
{
if(isdefined(self.var_4C90))
{
func_4C90();
return;
}
self endon("killanimscript");
if(!func_3E57())
{
return;
}
var_00 = self.origin;
var_01 = self.angles[1];
var_02 = "exposed";
var_03 = 0;
var_04 = func_7EA3();
if(isdefined(var_04))
{
var_05 = func_53C7(var_04);
if(isdefined(var_05))
{
var_02 = var_05;
var_03 = 1;
if(isdefined(self.var_8CD0))
{
var_02 = func_53C5(var_04,var_02);
}
if(!isdefined(level.var_6A1B[var_02]) && var_02 != "stand_saw" && var_02 != "crouch_saw")
{
var_06 = scripts\common\utility::func_152F(self.angles[1] - scripts\asm\shared_utility::func_7FF7(var_04));
if(var_06 < 5)
{
if(!isdefined(self.var_8CD0))
{
var_00 = var_04.origin;
}
var_01 = scripts\asm\shared_utility::func_7FF7(var_04);
}
}
}
}
if(!func_3E56(var_02,var_04))
{
return;
}
var_07 = isdefined(level.var_6A1B[var_02]);
if(!var_03)
{
var_02 = func_53C8();
}
var_08 = (-1 * self.var_1BE[0],-1 * self.var_1BE[1],0);
var_09 = func_7F97(var_04);
var_0A = var_09.var_B490;
var_0B = var_09.var_68CA;
var_0C = spawnstruct();
func_371A(var_0C,var_02,0,var_01,var_08,var_0A,var_0B);
func_1043F(var_0C,var_0A);
var_0D = -1;
var_0E = 3;
if(var_07)
{
var_0E = 1;
}
for(var_0F = 1;var_0F <= var_0E;var_0F++)
{
var_0D = var_0C.var_12654[var_0F];
if(func_3E2C(var_00,var_01,var_02,var_07,var_0D))
{
break;
}
}
if(var_0F > var_0E)
{
return;
}
var_10 = distancesquared(self.origin,self.var_471C) * 1.25 * 1.25;
if(distancesquared(self.origin,self.var_233) < var_10)
{
return;
}
func_5926(var_02,var_0D);
}
//Function Number: 2
func_53C7(param_00)
{
if(scripts\anim\cover_arrival::func_393C(param_00))
{
if(param_00.type == "Cover Stand")
{
return "stand_saw";
}
if(param_00.type == "Cover Crouch")
{
return "crouch_saw";
}
else if(param_00.type == "Cover Prone")
{
return "prone_saw";
}
}
if(!isdefined(level.var_20EB[param_00.type]))
{
return;
}
if(isdefined(level.var_E1B7[param_00.type]) && level.var_E1B7[param_00.type] != self.var_1491.var_D6A5)
{
return;
}
var_01 = self.var_1491.var_D6A5;
if(var_01 == "prone")
{
var_01 = "crouch";
}
var_02 = level.var_20EB[param_00.type][var_01];
if(scripts\anim\cover_arrival::func_130C9() && var_02 == "exposed")
{
var_02 = "exposed_ready";
}
if(scripts\anim\utility::func_FFDB())
{
var_03 = var_02 + "_cqb";
if(isdefined(level.var_2128["soldier"]["cover_exit"][var_03]))
{
var_02 = var_03;
}
}
return var_02;
}
//Function Number: 3
func_3E57()
{
if(!isdefined(self.var_233))
{
return 0;
}
if(!self method_8380())
{
return 0;
}
if(self.var_1491.var_D6A5 == "prone")
{
return 0;
}
if(isdefined(self.var_55ED) && self.var_55ED)
{
return 0;
}
if(self.var_2C0 != "none")
{
return 0;
}
if(!self method_81BF("stand") && !isdefined(self.var_8CD0))
{
return 0;
}
if(distancesquared(self.origin,self.var_233) < 10000)
{
return 0;
}
return 1;
}
//Function Number: 4
func_3E56(param_00,param_01)
{
if(!isdefined(param_00))
{
return 0;
}
if(param_00 == "exposed" || isdefined(self.var_8CD0))
{
if(self.var_1491.var_D6A5 != "stand" && self.var_1491.var_D6A5 != "crouch")
{
return 0;
}
if(self.var_1491.var_BCC8 != "stop")
{
return 0;
}
}
if(!isdefined(self.var_8CD0) && isdefined(self.var_10C) && vectordot(self.var_1BE,self.var_10C.origin - self.origin) < 0)
{
if(scripts\anim\utility_common::func_3908() && distancesquared(self.origin,self.var_10C.origin) < 90000)
{
return 0;
}
}
return 1;
}
//Function Number: 5
func_53C8(param_00)
{
if(self.var_1491.var_D6A5 == "stand")
{
param_00 = "exposed";
}
else
{
param_00 = "exposed_crouch";
}
if(scripts\anim\cover_arrival::func_130C9())
{
param_00 = "exposed_ready";
}
if(scripts\anim\utility::func_FFDB())
{
param_00 = param_00 + "_cqb";
}
else if(isdefined(self.var_8CD0))
{
param_00 = "heat";
}
return param_00;
}
//Function Number: 6
func_7F97(param_00)
{
var_01 = spawnstruct();
if(isdefined(param_00) && isdefined(level.var_B490[param_00.type]))
{
var_01.var_B490 = level.var_B490[param_00.type];
var_01.var_68CA = level.var_68CA[param_00.type];
}
else
{
var_01.var_B490 = 9;
var_01.var_68CA = -1;
}
return var_01;
}
//Function Number: 7
func_371A(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
param_00.var_1267B = [];
param_00.var_12654 = [];
var_07 = undefined;
var_08 = 1;
var_09 = 0;
if(param_02)
{
var_07 = scripts\anim\utility::func_B027("cover_trans_angles",param_01);
var_08 = -1;
var_09 = 0;
}
else
{
var_07 = scripts\anim\utility::func_B027("cover_exit_angles",param_01);
var_08 = 1;
var_09 = 180;
}
for(var_0A = 1;var_0A <= param_05;var_0A++)
{
param_00.var_12654[var_0A] = var_0A;
if(var_0A == 5 || var_0A == param_06 || !isdefined(var_07[var_0A]))
{
param_00.var_1267B[var_0A] = -1.0003;
continue;
}
var_0B = (0,param_03 + var_08 * var_07[var_0A] + var_09,0);
var_0C = vectornormalize(anglestoforward(var_0B));
param_00.var_1267B[var_0A] = vectordot(param_04,var_0C);
}
}
//Function Number: 8
func_1043F(param_00,param_01)
{
for(var_02 = 2;var_02 <= param_01;var_02++)
{
var_03 = param_00.var_1267B[param_00.var_12654[var_02]];
var_04 = param_00.var_12654[var_02];
for(var_05 = var_02 - 1;var_05 >= 1;var_05--)
{
if(var_03 < param_00.var_1267B[param_00.var_12654[var_05]])
{
break;
}
param_00.var_12654[var_05 + 1] = param_00.var_12654[var_05];
}
param_00.var_12654[var_05 + 1] = var_04;
}
}
//Function Number: 9
func_3E2C(param_00,param_01,param_02,param_03,param_04)
{
var_05 = (0,param_01,0);
var_06 = anglestoforward(var_05);
var_07 = anglestoright(var_05);
var_08 = scripts\anim\utility::func_B031("cover_exit_dist",param_02,param_04);
var_09 = var_06 * var_08[0];
var_0A = var_07 * var_08[1];
var_0B = param_00 + var_09 - var_0A;
self.var_471C = var_0B;
if(!param_03 && !self method_8068(var_0B))
{
return 0;
}
if(!self method_81FF(self.origin,var_0B))
{
return 0;
}
if(param_04 <= 6 || param_03)
{
return 1;
}
var_0C = scripts\anim\utility::func_B031("cover_exit_postdist",param_02,param_04);
var_09 = var_06 * var_0C[0];
var_0A = var_07 * var_0C[1];
var_0D = var_0B + var_09 - var_0A;
self.var_471C = var_0D;
return self method_81FF(var_0B,var_0D);
}
//Function Number: 10
func_5926(param_00,param_01)
{
var_02 = scripts\anim\utility::func_B031("cover_exit",param_00,param_01);
var_03 = vectortoangles(self.var_1BE);
if(self.var_1491.var_D6A5 == "prone")
{
return;
}
var_05 = 0.2;
if(scripts\common\utility::func_167E())
{
self method_8016("nogravity",0);
}
else
{
self method_8016("zonly_physics",0);
}
self method_8221("face angle",self.angles[1]);
self method_82E4("coverexit",var_02,%body,1,var_05,self.var_BD22);
scripts\anim\shared::func_592B("coverexit");
self.var_1491.var_D6A5 = "stand";
self.var_1491.var_BCC8 = "run";
self.var_932E = undefined;
self method_8221("face motion");
self method_8016("none",0);
func_6CD5("coverexit");
self method_806F(%root,0.2);
self method_8221("face default");
self method_8016("normal",0);
}
//Function Number: 11
func_6CD5(param_00)
{
self endon("move_loop_restart");
scripts\anim\shared::func_592B(param_00);
}
//Function Number: 12
func_53C5(param_00,param_01)
{
if(param_00.type == "Cover Right")
{
param_01 = "heat_right";
}
else if(param_00.type == "Cover Left")
{
param_01 = "heat_left";
}
return param_01;
}
//Function Number: 13
func_7EA3()
{
var_00 = undefined;
var_01 = 400;
if(scripts\common\utility::func_167E())
{
var_01 = 1024;
}
else if(isdefined(self.var_8CD0))
{
var_01 = 4096;
}
if(isdefined(self.var_205) && distancesquared(self.origin,self.var_205.origin) < var_01)
{
var_00 = self.var_205;
}
else if(isdefined(self.var_24A) && distancesquared(self.origin,self.var_24A.origin) < var_01)
{
var_00 = self.var_24A;
}
if(isdefined(self.var_8CD0) && !scripts\common\utility::func_167E())
{
if(isdefined(var_00) && scripts\common\utility::func_152F(self.angles[1] - var_00.angles[1]) > 30)
{
return undefined;
}
}
return var_00;
}
//Function Number: 14
func_4C90()
{
var_00 = self.var_4C90;
if(!isdefined(self.var_CA6B))
{
self.var_4C90 = undefined;
}
var_01 = [[ var_00 ]]();
if(!isdefined(self.var_CA6B))
{
self.var_10DCB = undefined;
}
if(!isdefined(var_01))
{
var_01 = 0.2;
}
self method_806F(%root,var_01);
self method_8221("face default");
self method_8016("none",0);
}
//Function Number: 15
func_4EAB(param_00)
{
if(!scripts\anim\cover_arrival::func_4EAC())
{
}
}

View File

@ -0,0 +1,253 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\face.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 9
* Decompile Time: 471 ms
* Timestamp: 10/27/2023 12:00:35 AM
*******************************************************************/
//Function Number: 1
func_EB83(param_00)
{
if(self.var_12BA4 != "soldier" && self.var_12BA4 != "c6")
{
return;
}
var_01 = undefined;
switch(param_00)
{
case "meleeattack":
case "meleecharge":
var_02 = 0.5;
break;
case "flashbang":
var_02 = 0.7;
var_01 = 50;
break;
case "pain":
var_02 = 0.9;
var_01 = 98;
break;
case "seekerattack":
case "explodeath":
case "death":
var_02 = 1;
break;
default:
var_02 = 0.3;
break;
}
if(isdefined(var_01) && randomint(100) > var_01)
{
return;
}
var_03 = undefined;
var_04 = "generic_";
var_05 = undefined;
var_06 = undefined;
if(isdefined(self.var_C19D))
{
switch(self.var_C19D)
{
case "adm":
case "mac":
case "omr":
case "ksh":
case "brk":
case "slt":
case "eth":
var_05 = self.var_C19D;
var_04 = "hero_";
var_06 = 1;
break;
}
}
if(!isdefined(var_05))
{
switch(self.var_13525)
{
case "unitednationshelmet":
case "unitednations":
var_05 = "friendly";
var_06 = level.var_C22D;
break;
case "unitednationsfemale":
var_05 = "friendly";
var_04 = "woman_";
var_06 = level.var_C22C;
break;
case "c6":
var_05 = "c6";
var_06 = 1;
break;
default:
var_05 = "enemy";
var_06 = level.var_C226;
break;
}
}
var_03 = 1 + self getentitynumber() % var_06;
var_05 = var_05 + "_" + var_03;
var_07 = undefined;
if(!isdefined(var_07))
{
if(isdefined(self.var_777B))
{
var_07 = self.var_777B + "_" + param_00 + "_" + var_05;
}
else
{
var_07 = var_04 + param_00 + "_" + var_05;
}
if(!soundexists(var_07))
{
var_07 = "generic_" + param_00 + "_" + var_05;
}
}
thread func_D474(var_07,undefined);
}
//Function Number: 2
func_EB86(param_00,param_01)
{
thread func_D474(param_00,param_01);
}
//Function Number: 3
func_D474(param_00,param_01)
{
if(isai(self))
{
self.var_1491.var_6A87 = 1;
self.var_1491.var_6A8A = 1;
}
if(isdefined(param_01))
{
if(isdefined(param_00))
{
func_D473(param_00,"animscript facesound" + param_01,1);
thread func_136BD(param_01);
return;
}
return;
}
func_D473(param_00);
}
//Function Number: 4
func_D473(param_00,param_01,param_02)
{
if(isai(self))
{
if(isdefined(param_01) && isdefined(param_02))
{
self method_824A(param_00,param_01,param_02);
return;
}
if(isdefined(param_01))
{
self method_824A(param_00,param_01);
return;
}
self method_824A(param_00);
return;
}
if(isdefined(param_01) && isdefined(param_02))
{
self playsound(param_00,param_01,param_02);
return;
}
if(isdefined(param_01))
{
self playsound(param_00,param_01);
return;
}
self playsound(param_00);
}
//Function Number: 5
func_136BD(param_00)
{
self endon("death");
self waittill("animscript facesound" + param_00);
self notify(param_00);
}
//Function Number: 6
func_9891()
{
anim.var_C226 = 7;
anim.var_C22D = 7;
anim.var_C22C = 3;
func_9805();
}
//Function Number: 7
func_9805()
{
anim.var_6A81 = [];
}
//Function Number: 8
func_1FB7(param_00)
{
return animhasnotetrack(param_00,"facial_override");
}
//Function Number: 9
func_D475(param_00,param_01,param_02)
{
if(isdefined(self.var_29CC) && self.var_29CC)
{
self method_806F(%head,0.2);
return;
}
if(isdefined(param_00) && func_1FB7(param_00))
{
self method_806F(%head,0.2);
return;
}
if(!isdefined(level.var_6A81[param_01]))
{
return;
}
if(isdefined(param_02) && param_02 >= 0 && param_02 < level.var_6A81[param_01].size)
{
var_03 = param_02;
}
else
{
var_03 = randomint(level.var_6A81[param_02].size);
}
var_04 = level.var_6A81[param_01][var_03];
self method_82A4(var_04);
return var_03;
}

View File

@ -0,0 +1,39 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\first_frame.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 122 ms
* Timestamp: 10/27/2023 12:00:35 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("death");
self endon("stop_first_frame");
self notify("killanimscript");
self.var_253 = 0;
if(getdvarint("ai_iw7") == 1)
{
self method_806F(lib_0A1E::func_2339(),0.3);
}
else
{
self method_806F(self.var_E6E6,0.3);
}
if(scripts\common\utility::func_167E())
{
self method_8221("face angle 3d",self.angles);
}
else
{
self method_8221("face angle",self.angles[1]);
}
self method_82A2(self.var_1286,1,0,0);
self.var_1286 = undefined;
self waittill("killanimscript");
}

View File

@ -0,0 +1,82 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\flashed.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 5
* Decompile Time: 307 ms
* Timestamp: 10/27/2023 12:00:36 AM
*******************************************************************/
//Function Number: 1
func_9514()
{
}
//Function Number: 2
func_7FE4()
{
var_00 = "soldier";
if(isdefined(self.var_1F62) && isdefined(level.var_6EC0[self.var_1F62]))
{
var_00 = self.var_1F62;
}
level.var_6EC0[var_00]++;
if(level.var_6EC0[var_00] >= level.var_2128[var_00]["flashed"]["flashed"].size)
{
level.var_6EC0[var_00] = 0;
level.var_2128[var_00]["flashed"]["flashed"] = scripts\common\utility::array_randomize(level.var_2128[var_00]["flashed"]["flashed"]);
}
return level.var_2128[var_00]["flashed"]["flashed"][level.var_6EC0[var_00]];
}
//Function Number: 3
func_6EC1(param_00)
{
self endon("killanimscript");
self method_82E3("flashed_anim",param_00,%body,0.2,randomfloatrange(0.9,1.1));
scripts\anim\shared::func_592B("flashed_anim");
}
//Function Number: 4
main()
{
self endon("death");
self endon("killanimscript");
scripts\anim\utility::func_9832("flashed");
var_00 = scripts\sp\_utility::func_6EC3();
if(var_00 <= 0)
{
return;
}
scripts\anim\face::func_EB83("flashbang");
if(isdefined(self.var_10959))
{
self [[ self.var_10959 ]]();
return;
}
var_01 = func_7FE4();
func_6EC2(var_01,var_00);
}
//Function Number: 5
func_6EC2(param_00,param_01)
{
self endon("death");
self endon("killanimscript");
if(self.var_1491.var_D6A5 == "prone")
{
scripts\anim\utility::func_697B(1);
}
self.var_1491.var_D6A5 = "stand";
self.var_30 = 1;
thread func_6EC1(param_00);
wait(param_01);
self notify("stop_flashbang_effect");
self.var_6EC9 = 0;
}

View File

@ -0,0 +1,107 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\grenade_cower.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 3
* Decompile Time: 189 ms
* Timestamp: 10/27/2023 12:00:36 AM
*******************************************************************/
//Function Number: 1
main()
{
if(getdvarint("ai_iw7",0) == 1)
{
lib_0A1A::func_232F("grenade response","avoid");
self endon("killanimscript");
self endon("death");
self waittill("killanimscript");
}
self endon("killanimscript");
scripts\anim\utility::func_9832("grenadecower");
if(isdefined(self.var_85B6))
{
self [[ self.var_85B6 ]]();
return;
}
if(self.var_1491.var_D6A5 == "prone")
{
scripts\anim\stop::main();
return;
}
self method_8016("zonly_physics");
self method_8221("face angle",self.angles[1]);
var_00 = 0;
if(isdefined(self.var_15F))
{
var_00 = angleclamp180(vectortoangles(self.var_15F.origin - self.origin)[1] - self.angles[1]);
}
else
{
var_00 = self.angles[1];
}
if(self.var_1491.var_D6A5 == "stand")
{
if(isdefined(self.var_15F) && func_12895(var_00))
{
return;
}
self method_82E4("cowerstart",scripts\anim\utility::func_B027("grenade","cower_squat"),%body,1,0.2);
scripts\anim\shared::func_592B("cowerstart");
}
self.var_1491.var_D6A5 = "crouch";
self.var_1491.var_BCC8 = "stop";
self method_82E4("cower",scripts\anim\utility::func_B027("grenade","cower_squat_idle"),%body,1,0.2);
scripts\anim\shared::func_592B("cower");
self waittill("never");
}
//Function Number: 2
func_010B()
{
self.var_272 = 1;
}
//Function Number: 3
func_12895(param_00)
{
if(randomint(2) == 0)
{
return 0;
}
if(self.var_2C0 != "none")
{
return 0;
}
var_01 = undefined;
if(abs(param_00) > 90)
{
var_01 = scripts\anim\utility::func_B027("grenade","cower_dive_back");
}
else
{
var_01 = scripts\anim\utility::func_B027("grenade","cower_dive_front");
}
var_02 = getmovedelta(var_01,0,0.5);
var_03 = self method_81E7(var_02);
if(!self method_8200(var_03))
{
return 0;
}
self.var_272 = 0;
self method_82E4("cowerstart",var_01,%body,1,0.2);
scripts\anim\shared::func_592B("cowerstart");
self.var_272 = 1;
return 1;
}

View File

@ -0,0 +1,109 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\grenade_return_throw.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 4
* Decompile Time: 250 ms
* Timestamp: 10/27/2023 12:00:37 AM
*******************************************************************/
//Function Number: 1
main()
{
if(getdvarint("ai_iw7",0) == 1)
{
lib_0A1A::func_232F("grenade response","return throw");
self endon("killanimscript");
self endon("death");
self waittill("killanimscript");
}
self method_8221("face enemy");
self endon("killanimscript");
scripts\anim\utility::func_9832("grenade_return_throw");
self method_8016("zonly_physics");
var_00 = undefined;
var_01 = 1000;
if(isdefined(self.var_10C))
{
var_01 = distance(self.origin,self.var_10C.origin);
}
var_02 = [];
if(var_01 < 600 && func_9E8C())
{
if(var_01 < 300)
{
var_02 = scripts\anim\utility::func_B027("grenade","return_throw_short");
}
else
{
var_02 = scripts\anim\utility::func_B027("grenade","return_throw_long");
}
}
if(var_02.size == 0)
{
var_02 = scripts\anim\utility::func_B027("grenade","return_throw_default");
}
var_00 = var_02[randomint(var_02.size)];
self method_82E4("throwanim",var_00,%body,1,0.3);
var_04 = animhasnotetrack(var_00,"grenade_left") || animhasnotetrack(var_00,"grenade_right");
if(var_04)
{
scripts\anim\shared::func_CC2C(self.var_394,"left");
thread func_DB3A();
thread func_C162("throwanim","grenade_left");
thread func_C162("throwanim","grenade_right");
self waittill("grenade_pickup");
self method_8228();
scripts\anim\battlechatter_ai::func_67CF("frag");
self waittillmatch("grenade_throw","throwanim");
}
else
{
self waittillmatch("grenade_throw","throwanim");
self method_8228();
scripts\anim\battlechatter_ai::func_67CF("frag");
}
if(isdefined(self.var_15F))
{
self method_83C2();
}
wait(1);
if(var_04)
{
self notify("put_weapon_back_in_right_hand");
scripts\anim\shared::func_CC2C(self.var_394,"right");
}
}
//Function Number: 2
func_9E8C()
{
var_00 = (self.origin[0],self.origin[1],self.origin[2] + 20);
var_01 = var_00 + anglestoforward(self.angles) * 50;
return sighttracepassed(var_00,var_01,0,undefined);
}
//Function Number: 3
func_DB3A()
{
self endon("death");
self endon("put_weapon_back_in_right_hand");
self waittill("killanimscript");
scripts\anim\shared::func_CC2C(self.var_394,"right");
}
//Function Number: 4
func_C162(param_00,param_01)
{
self endon("killanimscript");
self endon("grenade_pickup");
self waittillmatch(param_01,param_00);
self notify("grenade_pickup");
}

View File

@ -0,0 +1,762 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\hummer_turret\common.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 37
* Decompile Time: 1428 ms
* Timestamp: 10/26/2023 11:59:14 PM
*******************************************************************/
//Function Number: 1
func_91E0(param_00,param_01)
{
self endon("killanimscript");
scripts\anim\utility::func_9832(param_01);
self.var_BFDC = 1;
self.var_C05C = 1;
self.var_1491.var_BCC8 = "stop";
self.var_1491.var_10930 = param_01;
self.var_1491.var_13121 = param_00;
self.ignoreme = 1;
if(isdefined(self.var_B79F))
{
self.ignoreme = self.var_B79F;
}
self.var_9DA6 = 0;
self method_8355(self.var_D8E0);
self method_82AB(self.var_D8E0,1,0.2,1);
if(isdefined(self.var_394))
{
scripts\anim\shared::func_CC2C(self.var_394,"none");
}
self.var_C584 = 1;
self.var_8020 = ::func_129D3;
self notify("guy_man_turret_stop");
param_00 notify("stop_burst_fire_unmanned");
param_00.var_12A94 = "start";
param_00.var_1A56 = self;
param_00.var_6D96 = 0;
param_00 method_830F("sentry");
param_00 method_8336(self);
param_00 method_82D1(0);
param_00 method_8356(0);
func_8713();
level thread func_8903(self,param_00);
level thread func_8902(self,param_00);
param_00 thread func_12A45(self);
param_00.var_5855 = 0;
thread func_6D6A(param_00);
wait(0.05);
if(isalive(self))
{
thread func_8716(param_00);
}
}
//Function Number: 2
func_8713()
{
self.allowpain = 0;
scripts\sp\_utility::func_F70F(1);
self.var_C384 = self.health;
self.health = 200;
}
//Function Number: 3
func_8714()
{
self.allowpain = 1;
scripts\sp\_utility::func_F70F(0);
self.health = self.var_C384;
}
//Function Number: 4
func_8903(param_00,param_01)
{
param_00 endon("death");
param_01 endon("death");
param_00 endon("dismount");
param_00 endon("jumping_out");
for(;;)
{
var_02 = "flashbang";
var_03 = param_00 scripts\common\utility::func_13734("damage",var_02);
var_04 = scripts\common\utility::random(param_00.var_12A7F);
if(var_03 == var_02)
{
var_04 = param_00.var_12A66;
param_00 scripts\anim\face::func_EB83("flashbang");
}
param_00 func_57FB(param_01,var_04,0);
param_01 notify("pain_done");
}
}
//Function Number: 5
func_12A27()
{
func_129BD();
self waittill("pain_done");
func_129BC();
}
//Function Number: 6
func_8902(param_00,param_01)
{
param_00 endon("dismount");
param_01 endon("turret_cleanup");
param_00.var_4E2A = param_00.var_12A5E;
param_00.var_C089 = 1;
param_00 waittill("death");
level thread func_129D2(param_00,param_01);
}
//Function Number: 7
func_129D3()
{
var_00 = self.var_E500.var_B6BD[0];
if(isalive(self))
{
self.var_BFDC = undefined;
self.var_C05C = undefined;
self.ignoreme = 0;
self.var_1491.var_10930 = "none";
self.var_1491.var_13121 = undefined;
self.var_4E2A = undefined;
func_8714();
self.var_9DA6 = undefined;
self.var_12A92 = undefined;
self.var_12A7F = undefined;
self.var_C584 = undefined;
self.var_8020 = undefined;
self method_83AF();
if(isdefined(self.var_394))
{
scripts\anim\shared::func_CC2C(self.var_394,"right");
}
}
level thread func_129D2(self,var_00);
}
//Function Number: 8
func_129D2(param_00,param_01)
{
if(!isdefined(param_01))
{
return;
}
param_01 notify("kill_fireController");
param_01 notify("turret_cleanup");
param_01 method_830F("manual");
param_01 method_807E();
param_01 method_82D1(param_01.var_4FEA);
if(isdefined(param_00))
{
param_00 method_806F(param_00.var_17E6,0);
param_00 method_806F(param_00.var_17E0,0);
param_00 method_806F(param_00.var_12A93,0);
}
param_01.var_6D6F = undefined;
param_01.var_4292 = undefined;
param_01.var_6D65 = undefined;
param_01.var_12A94 = "free";
param_01.var_1A56 = undefined;
param_01.var_6D96 = undefined;
if(isdefined(param_01.var_10953))
{
level [[ param_01.var_10953 ]](param_00,param_01);
}
}
//Function Number: 9
func_12A45(param_00)
{
self endon("turret_cleanup");
self endon("death");
param_00 endon("death");
param_00 endon("detach");
var_01 = "tag_aim";
var_02 = self gettagangles(var_01);
func_12A4C("none");
for(;;)
{
var_03 = self gettagangles(var_01);
var_04 = anglestoright(var_02);
var_05 = anglestoforward(var_03);
var_06 = vectordot(var_04,var_05);
if(var_06 == 0)
{
func_12A4C("none");
}
else if(var_06 > 0)
{
func_12A4C("right");
}
else
{
func_12A4C("left");
}
var_02 = self gettagangles(var_01);
wait(0.05);
}
}
//Function Number: 10
func_12A4C(param_00)
{
if(!isdefined(self.var_E729) || self.var_E729 != param_00)
{
self.var_E729 = param_00;
}
}
//Function Number: 11
func_8716(param_00)
{
self endon("death");
param_00 endon("death");
self endon("dismount");
param_00 endon("turret_cleanup");
var_01 = 0.3;
var_02 = 0.3;
for(;;)
{
param_00 waittill("new_fireTarget");
wait(0.05);
if(!isdefined(param_00.var_6D87) || self.var_9DA6)
{
continue;
}
var_03 = undefined;
if(!param_00 func_129BF(param_00.var_6D87,param_00.var_4292))
{
if(param_00.var_E729 == "right")
{
var_03 = self.var_17E5;
}
else if(param_00.var_E729 == "left")
{
var_03 = self.var_17E4;
}
if(isdefined(var_03))
{
self method_82AC(self.var_17E0,1,var_01,1);
self method_82A9(var_03,1,0,1);
while(isdefined(param_00.var_6D87) && !param_00 func_129BF(param_00.var_6D87,param_00.var_4292))
{
if(self.var_9DA6)
{
break;
}
wait(0.05);
}
self method_806F(self.var_17E0,var_02);
}
}
}
}
//Function Number: 12
func_13218(param_00,param_01,param_02,param_03)
{
param_00.var_1307E[self.var_1321D] = 0;
scripts\sp\_vehicle_aianim::func_872E();
func_873F(param_00,param_01,param_02,param_03);
}
//Function Number: 13
func_8741(param_00,param_01,param_02,param_03)
{
func_873F(param_00,param_01,param_02,param_03);
}
//Function Number: 14
func_873F(param_00,param_01,param_02,param_03)
{
self endon("death");
param_02 endon("death");
self method_83A1();
self notify("newanim");
self.var_5BD6 = undefined;
self.var_BFDC = 1;
param_03 = %humvee_passenger_2_turret;
if(!isdefined(param_03))
{
param_03 = self.var_C938;
}
var_04 = scripts\sp\_vehicle_aianim::func_1F00(param_00,param_01);
var_05 = param_00 gettagorigin(var_04.var_10220);
var_06 = param_00 gettagangles(var_04.var_10220);
param_02 method_82D1(0);
param_02 thread func_129C2(param_02.var_C937);
self method_8018("passenger2turret",var_05,var_06,param_03);
wait(getanimlength(param_03));
self method_83A1();
param_02 func_129BC();
self method_83D7(param_02);
}
//Function Number: 15
func_129C2(param_00)
{
if(isdefined(self.var_92F3))
{
self method_806F(self.var_92F3,0);
self.var_92F3 = undefined;
}
self method_82E7("minigun_turret",param_00,1,0,1);
self waittillmatch("end","minigun_turret");
self method_806F(param_00,0);
}
//Function Number: 16
func_129C3(param_00)
{
self method_82AB(param_00,1,0,0);
self.var_92F3 = param_00;
}
//Function Number: 17
func_6D6A(param_00)
{
self endon("death");
param_00 endon("death");
self endon("dismount");
param_00 endon("kill_fireController");
param_00 thread func_12A3C(self);
wait(0.05);
self thread [[ param_00.var_6D65 ]](param_00);
var_01 = undefined;
for(;;)
{
var_01 = param_00.var_6D87;
while(param_00 func_114FA(var_01))
{
if(param_00 func_129BF(var_01,param_00.var_4292))
{
break;
}
wait(0.05);
}
if(param_00 func_114FA(var_01) && !self.var_180)
{
param_00.var_5855 = 1;
}
while(param_00 func_114FA(var_01) && !self.var_180 && !self.var_9DA6)
{
wait(0.05);
}
if(param_00.var_5855 || self.var_180)
{
param_00.var_5855 = 0;
}
wait(0.05);
}
}
//Function Number: 18
func_114FA(param_00)
{
if(isdefined(self.var_596A))
{
return 0;
}
if(!isdefined(self.var_6D87))
{
return 0;
}
if(!func_12A3D(param_00))
{
return 0;
}
if(param_00 != self.var_6D87)
{
return 0;
}
return 1;
}
//Function Number: 19
func_12A3C(param_00)
{
param_00 endon("death");
self endon("death");
param_00 endon("dismount");
self endon("kill_fireController");
self.var_6D87 = undefined;
var_01 = undefined;
var_02 = undefined;
for(;;)
{
var_01 = self method_8166(0);
var_03 = 0;
if(func_12A3D(var_01) || !isdefined(var_01))
{
if(!isdefined(var_01) && isdefined(var_02))
{
var_03 = 1;
}
else if(isdefined(var_01) && !isdefined(var_02))
{
var_03 = 1;
}
else if(isdefined(var_01) && var_01 != var_02)
{
var_03 = 1;
}
if(var_03)
{
self.var_6D87 = var_01;
var_02 = var_01;
self notify("new_fireTarget");
}
}
wait(0.05);
}
}
//Function Number: 20
func_12A3D(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
if(isdefined(param_00.ignoreme) && param_00.ignoreme)
{
return 0;
}
if(issubstr(param_00.var_9F,"actor") && !isalive(param_00))
{
return 0;
}
return 1;
}
//Function Number: 21
func_F479(param_00,param_01,param_02,param_03)
{
self endon("turret_cleanup");
var_04 = self method_813D();
if(var_04 != "manual")
{
self method_830F("manual");
}
if(!isdefined(param_01) && !isdefined(param_02))
{
param_01 = 1.5;
param_02 = 3;
}
func_4C35();
self method_8347(param_00);
self waittill("turret_on_target");
if(isdefined(param_03))
{
self waittill(param_03);
}
else if(isdefined(param_02))
{
wait(randomfloatrange(param_01,param_02));
}
else
{
wait(param_01);
}
func_4C35();
self method_807E(param_00);
if(isdefined(var_04))
{
self method_830F(var_04);
}
}
//Function Number: 22
func_5AAA(param_00)
{
self notify("doshoot_starting");
self method_82AC(self.var_17E6,1,0.1);
self method_82A9(self.var_17E2,1,0.1);
param_00.var_12A94 = "fire";
param_00 thread func_6CE6(self);
}
//Function Number: 23
func_6CE6(param_00)
{
param_00 endon("death");
self endon("death");
param_00 endon("dismount");
self endon("kill_fireController");
self endon("stopfiring");
self endon("custom_anim");
for(;;)
{
self method_837E();
wait(self.var_6D6F);
}
}
//Function Number: 24
func_57DB(param_00)
{
param_00.var_12A94 = "aim";
param_00 notify("stopfiring");
thread func_57DC(param_00);
}
//Function Number: 25
func_57DC(param_00)
{
self notify("doaim_idle_think");
self endon("doaim_idle_think");
self endon("custom_anim");
self endon("doshoot_starting");
self endon("death");
param_00 endon("death");
var_01 = param_00.var_C841;
var_02 = -1;
for(;;)
{
if(var_01 method_83DD() < 1 && var_02)
{
self method_82AC(self.var_17E6,1,0.1);
self method_82A9(self.var_17E3,1,0.1);
var_02 = 0;
}
else if(var_01 method_83DD() >= 1 && !var_02)
{
self method_82AC(self.var_17E6,1,0.1);
self method_82A9(self.var_17E1,1,0.1);
var_02 = 1;
}
wait(0.05);
}
}
//Function Number: 26
func_129F7(param_00,param_01,param_02)
{
self endon("death");
param_00 endon("death");
self endon("dismount");
self endon("jumping_out");
var_03 = self.var_12A92[param_01];
func_4C35();
var_04 = param_00 func_DF51();
func_57FB(param_00,var_03,param_02);
if(var_04)
{
param_00 func_DF52();
}
}
//Function Number: 27
func_DF51()
{
var_00 = 0;
if(!isdefined(self.var_560F) || !self.var_560F)
{
var_00 = 1;
self.var_560F = 1;
}
return var_00;
}
//Function Number: 28
func_DF52()
{
self.var_560F = 0;
}
//Function Number: 29
func_5A65(param_00)
{
if(isdefined(param_00.var_560F))
{
return;
}
self endon("death");
param_00 endon("death");
self endon("dismount");
self endon("jumping_out");
if(level.var_3D4B)
{
thread scripts\sp\_utility::func_4C39("inform_reloading");
}
func_57FB(param_00,self.var_12A81,1);
}
//Function Number: 30
func_57FB(param_00,param_01,param_02)
{
self notify("do_custom_anim");
self endon("do_custom_anim");
self.var_9DA6 = 1;
self.var_4C7D = param_01;
param_00.var_12A94 = "customanim";
param_00 method_83C6();
if(param_00 method_810A() > 0)
{
param_00 method_83A2();
}
param_00 notify("kill_fireController");
self notify("custom_anim");
if(isdefined(param_02) && param_02)
{
param_00 func_129BD();
}
self method_82AA(self.var_12A93,1,0.2);
self method_82E7("special_anim",param_01,1,0,1);
for(;;)
{
self waittill("special_anim",var_03);
if(var_03 == "end")
{
break;
}
}
self method_806F(self.var_12A93,0.2);
self method_82AC(self.var_D8E0,1);
self method_82AC(self.var_17E6,1);
if(isdefined(param_02) && param_02)
{
param_00 func_129BC();
}
self.var_4C7D = undefined;
self.var_9DA6 = 0;
param_00 method_83C7();
thread func_6D6A(param_00);
}
//Function Number: 31
func_4C35()
{
self endon("death");
if(!isdefined(self.var_9DA6))
{
return;
}
while(self.var_9DA6)
{
wait(0.05);
}
}
//Function Number: 32
func_129BD(param_00)
{
if(self method_813D() == "sentry")
{
return;
}
if(!isdefined(param_00))
{
var_01 = self gettagangles("tag_flash");
param_00 = (0,var_01[1],var_01[2]);
}
self.var_C3F8 = self method_813D();
self method_830F("manual");
var_02 = anglestoforward(param_00);
var_03 = var_02 * 96;
var_04 = self gettagorigin("tag_aim") + var_03;
self.var_116D2 = spawn("script_origin",var_04);
self.var_116D2.ignoreme = 1;
self.var_116D2 linkto(self.var_C841);
self method_807E();
self method_8347(self.var_116D2);
self waittill("turret_on_target");
}
//Function Number: 33
func_129BC()
{
self method_807E();
if(isdefined(self.var_116D2))
{
self.var_116D2 unlink();
self.var_116D2 delete();
}
if(isdefined(self.var_C3F8))
{
self method_830F(self.var_C3F8);
self.var_C3F8 = undefined;
}
}
//Function Number: 34
func_129BF(param_00,param_01)
{
var_02 = func_129F3(param_00);
if(var_02 <= param_01)
{
return 1;
}
return 0;
}
//Function Number: 35
func_129F3(param_00)
{
var_01 = vectortoyaw(param_00.origin - self.origin);
var_02 = self gettagangles("tag_flash")[1];
var_03 = scripts\common\utility::func_152F(var_02 - var_01);
return var_03;
}
//Function Number: 36
func_AB8C(param_00)
{
var_01 = scripts\sp\_utility::func_48AA(::func_2B6E,20,0);
var_01.time = param_00;
}
//Function Number: 37
func_2B6E(param_00,param_01,param_02)
{
var_03 = param_01 * 1 - param_00 + param_02 * param_00;
self method_82D1(var_03);
}

View File

@ -0,0 +1,62 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\hummer_turret\dshk_stand.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 3
* Decompile Time: 181 ms
* Timestamp: 10/26/2023 11:59:15 PM
*******************************************************************/
//Function Number: 1
main()
{
var_00 = self method_8164();
var_01 = func_7927();
self.var_5270 = "stand";
scripts\anim\utility::func_12E5F();
self.var_D8E0 = %gazgunner_aim;
self.var_17E4 = %gaz_turret_aim_6_add;
self.var_17E5 = %gaz_turret_aim_4_add;
self.var_17E0 = %additive_gazgunner_aim_leftright;
self.var_17E3 = %gaz_turret_idle;
self.var_17E1 = %gaz_turret_idle;
self.var_17E2 = %gaz_turret_fire;
self.var_17E6 = %additive_gazgunner_usegun;
self.var_12A5F = %gazgunner_death;
self.var_12A5E = var_01;
self.var_12A7F[0] = %gaz_turret_paina;
self.var_12A7F[1] = %gaz_turret_painb;
self.var_12A66 = %gaz_turret_flincha;
self.var_12A81 = %gaz_turret_paina;
self.var_12A93 = %gazgunner;
var_02 = [];
var_02["humvee_turret_flinchA"] = %gaz_turret_flincha;
var_02["humvee_turret_flinchB"] = %gaz_turret_flinchb;
self.var_12A92 = var_02;
var_00 func_FA6A();
thread scripts\anim\hummer_turret\minigun_code::main(var_00);
}
//Function Number: 2
func_7927()
{
var_00 = %gaz_turret_death;
if(isdefined(self.var_E500))
{
if(isdefined(level.var_5F07))
{
var_00 = self [[ level.var_5F07 ]]();
}
}
return var_00;
}
//Function Number: 3
func_FA6A()
{
self method_83D0(#animtree);
self.var_C937 = %humvee_passenger_2_turret_minigun;
self.var_129B8 = %humvee_turret_2_passenger_minigun;
}

View File

@ -0,0 +1,149 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\hummer_turret\minigun_code.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 4
* Decompile Time: 181 ms
* Timestamp: 10/26/2023 11:59:15 PM
*******************************************************************/
//Function Number: 1
main(param_00)
{
param_00.var_6D6F = 0.1;
param_00.var_4292 = 45;
param_00.var_6D65 = ::func_6D64;
param_00.var_10953 = ::func_B79D;
param_00.var_4FEA = 20;
scripts\anim\hummer_turret\common::func_91E0(param_00,"minigun");
wait(0.05);
param_00 notify("turret_ready");
}
//Function Number: 2
func_B79D(param_00,param_01)
{
if(param_01 method_810A() > 0)
{
param_01 method_83A2();
}
}
//Function Number: 3
func_6D64(param_00)
{
self endon("death");
self endon("dismount");
param_00 endon("kill_fireController");
param_00 endon("death");
param_00.var_6A4F = 600;
param_00.var_6A4E = 900;
var_01 = -1;
var_02 = undefined;
var_03 = undefined;
param_00.var_6A52 = 250;
param_00.var_6A51 = 2250;
var_04 = -1;
var_05 = undefined;
var_06 = 0;
var_07 = 0;
param_00.var_F0C7 = 15;
if(isdefined(param_00.var_F0C8))
{
param_00.var_F0C7 = param_00.var_F0C8;
}
param_00.var_6D96 = 0;
scripts\anim\hummer_turret\common::func_57DB(param_00);
for(;;)
{
if(param_00.var_5855 && !var_06 && !self.var_9DA6)
{
var_06 = 1;
if(!var_07)
{
param_00 func_B7A2();
var_07 = 1;
}
param_00 notify("startfiring");
var_01 = gettime();
scripts\anim\hummer_turret\common::func_5AAA(param_00);
wait(0.05);
}
else if(!param_00.var_5855 && var_06)
{
if(!isdefined(var_02))
{
var_02 = gettime();
}
if(!isdefined(var_03))
{
var_03 = randomfloatrange(param_00.var_6A4F,param_00.var_6A4E);
}
if(gettime() - var_02 >= var_03)
{
var_06 = 0;
scripts\anim\hummer_turret\common::func_57DB(param_00);
var_04 = gettime();
var_02 = undefined;
var_03 = undefined;
}
}
else if(!param_00.var_5855 && !var_06 && var_07)
{
if(!isdefined(var_05))
{
var_05 = randomfloatrange(param_00.var_6A52,param_00.var_6A51);
}
if(self.var_9DA6 || gettime() - var_04 >= var_05)
{
param_00 method_83A2();
var_07 = 0;
var_05 = undefined;
}
}
if(param_00.var_12A94 == "fire")
{
param_00.var_6D96 = param_00.var_6D96 + 0.05;
}
if(param_00.var_6D96 > param_00.var_F0C7)
{
param_00.var_5855 = 0;
var_06 = 0;
scripts\anim\hummer_turret\common::func_57DB(param_00);
var_04 = -1;
var_02 = undefined;
var_03 = undefined;
thread scripts\anim\hummer_turret\common::func_5A65(param_00);
param_00.var_6D96 = 0;
}
wait(0.05);
if(!isdefined(param_00))
{
break;
}
}
}
//Function Number: 4
func_B7A2()
{
if(self method_810A() == 1)
{
return;
}
self method_8395();
while(self method_810A() < 1)
{
wait(0.05);
}
}

View File

@ -0,0 +1,959 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\init.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 35
* Decompile Time: 1782 ms
* Timestamp: 10/27/2023 12:00:39 AM
*******************************************************************/
//Function Number: 1
func_98E1(param_00)
{
self.var_39B[param_00] = spawnstruct();
self.var_39B[param_00].var_245 = "none";
self.var_39B[param_00].var_8BDE = 1;
if(function_00E6(param_00) != "")
{
self.var_39B[param_00].var_13053 = 1;
return;
}
self.var_39B[param_00].var_13053 = 0;
}
//Function Number: 2
func_A000(param_00)
{
return isdefined(self.var_39B[param_00]);
}
//Function Number: 3
func_F724()
{
anim.var_4717 = 55;
anim.var_1A52 = 10;
anim.var_1A50 = 4096;
anim.var_1A51 = 45;
anim.var_1A44 = 20;
anim.var_C88B = 25;
anim.var_C889 = level.var_1A50;
anim.var_C88A = level.var_1A51;
anim.var_C87D = 30;
anim.var_B480 = 65;
anim.var_B47F = 65;
}
//Function Number: 4
func_68BD()
{
if(scripts\anim\utility_common::func_9F4F(self.var_F0C4))
{
return 1;
}
if(weaponclass(self.var_D8E1) == "rocketlauncher")
{
return 1;
}
return 0;
}
//Function Number: 5
func_FAFB()
{
self endon("death");
scripts\common\utility::flag_wait("load_finished");
if(isdefined(level.var_13CC8) && isdefined(level.var_13CC8[self.var_12BA4]))
{
self [[ level.var_13CC8[self.var_12BA4] ]]();
return;
}
func_5031();
}
//Function Number: 6
main()
{
self.var_1491 = spawnstruct();
self.var_1491.var_A878 = 0;
self.var_D8E1 = self.var_394;
func_6DE9();
if(!scripts\common\utility::func_6E34("load_finished"))
{
scripts\common\utility::flag_init("load_finished");
}
if(self.var_D8E1 == "")
{
self.var_D8E1 = "none";
}
if(self.var_F0C4 == "")
{
self.var_F0C4 = "none";
}
if(self.var_101B4 == "")
{
self.var_101B4 = "none";
}
self.var_E6E6 = %root;
self.var_1491.var_2C13 = %body;
thread func_2A69();
self.var_1491.var_D6A5 = "stand";
self.var_1491.var_85E2 = "stand";
self.var_1491.var_BCC8 = "stop";
self.var_1491.var_10E19 = "stop";
self.var_1491.var_10930 = "none";
self.var_1491.var_870D = "none";
self.var_1491.var_D8BD = -1;
self.var_102 = 1;
self.var_B781 = 750;
thread func_FAFB();
self.var_1491.var_BE98 = 0;
self.var_1491.var_4401 = gettime();
self.var_1491.var_A981 = gettime();
self.var_1491.var_112CB = 0;
self.var_1491.var_55FC = !self method_8198();
self.var_1491.var_AFFF = 0;
self.var_1491.var_C888 = 0;
self.var_1491.var_A9ED = 0;
self.var_1491.var_BF84 = 0;
self.var_1491.var_DD61 = 0.8;
self.var_1491.var_D707 = undefined;
self.var_1491.var_10B53 = "stand";
self.var_3EF3 = ::scripts\anim\utility::func_3EF2;
self.var_117C = 0;
self.var_1300 = 0;
thread func_6568();
self.var_2894 = 1;
self.var_1491.var_B8D6 = 0;
self.var_1491.var_C043 = 0;
self.var_1491.var_B8D6 = 0;
self.var_1491.var_B8D8 = 0;
self.var_1491.var_5605 = 0;
self.var_154E = 1;
self.var_3D4B = 0;
self.var_101E7 = 0;
self.var_101E6 = 1;
self.var_BE8B = 1;
self.var_504E = 55;
scripts\sp\_utility::func_F6FE("asm");
self.var_1491.var_BFAF = 0;
if(!isdefined(self.var_EDB1))
{
self.var_EDB1 = 0;
}
func_FAF2();
self.var_A980 = 0;
self.var_440E = 0;
self.var_112C8 = 0;
self.var_112CA = 0;
if(self.team == "allies")
{
self.var_112CE = 0.5;
}
else
{
self.var_112CE = 0;
}
if(self.team == "allies")
{
self.var_DCAF = 0;
}
else
{
self.var_DCAF = 256;
}
self.var_1E3E = 8000;
self.var_1E3F = 0;
scripts\anim\animset::func_FA33();
self.var_68C6 = [];
self.var_68C6["corner"] = 1;
self.var_68C6["cover_crouch"] = 1;
self.var_68C6["stop"] = 1;
self.var_68C6["stop_immediate"] = 1;
self.var_68C6["move"] = 1;
self.var_68C6["exposed"] = 1;
self.var_68C6["corner_normal"] = 1;
var_00 = getarraykeys(self.var_68C6);
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
scripts\common\utility::func_414E(var_00[var_01]);
}
self.var_DD23 = 0;
self.var_FFD3 = 0;
if(!isdefined(level.var_55FE))
{
thread scripts\anim\combat_utility::func_B9D9();
}
thread func_C4EA();
if(getdvarint("ai_iw7",0) == 1 && !getdvarint("r_reflectionProbeGenerate"))
{
self method_8250(0);
lib_0A02::func_77();
lib_0A1E::func_234D(self.var_1FA9,self.var_1FA8);
thread func_19F7();
self.var_1FA9 = undefined;
self.var_1FA8 = undefined;
}
thread func_F7AC();
}
//Function Number: 7
func_1929()
{
return self.var_1198.var_444A;
}
//Function Number: 8
func_100B4(param_00,param_01)
{
if(!param_00 || self.var_12BA4 != "soldier" && self.var_12BA4 != "c6")
{
return 1;
}
var_02 = int(gettime() / 50) % 2;
return param_01 == var_02;
}
//Function Number: 9
func_1001A()
{
return isdefined(self.var_3135.var_72EB) && self.var_3135.var_72EB;
}
//Function Number: 10
func_19F7()
{
self endon("terminate_ai_threads");
self endon("entitydeleted");
thread lib_0A1E::func_51B8();
thread lib_0A1E::func_126E5();
var_00 = 1;
var_01 = self getentitynumber() % 2;
for(;;)
{
var_02 = 0;
if(func_1001A())
{
lib_0A02::func_90();
var_02 = 1;
self.var_3135.var_72EB = undefined;
}
else if(var_00)
{
if(!func_1929())
{
lib_0A02::func_90();
var_02 = 1;
}
}
if(var_02)
{
lib_0A1A::func_2314();
}
if(isdefined(self.var_2303.var_10E23))
{
lib_0A1A::func_2317(self.var_2303.var_10E23);
self.var_2303.var_10E23 = undefined;
}
lib_0A1A::func_2389();
wait(0.05);
if(!isdefined(self))
{
break;
}
var_00 = func_100B4(var_02,var_01);
}
}
//Function Number: 11
func_13CC7(param_00)
{
var_01[0] = "m4_grenadier";
var_01[1] = "m4_grunt";
var_01[2] = "m4_silencer";
var_01[3] = "m4m203";
if(!isdefined(param_00))
{
return 0;
}
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
if(issubstr(param_00,var_01[var_02]))
{
return 1;
}
}
return 0;
}
//Function Number: 12
func_F7AC()
{
self endon("death");
if(!isdefined(level.var_AE64))
{
level waittill("loadout complete");
}
scripts\sp\_names::func_7B05();
thread scripts\anim\squadmanager::func_185C();
}
//Function Number: 13
func_D650()
{
for(;;)
{
if(self method_81BF("stand"))
{
var_00[0] = "stand allowed";
var_01[0] = (0,1,0);
}
else
{
var_00[0] = "stand not allowed";
var_01[0] = (1,0,0);
}
if(self method_81BF("crouch"))
{
var_00[1] = "crouch allowed";
var_01[1] = (0,1,0);
}
else
{
var_00[1] = "crouch not allowed";
var_01[1] = (1,0,0);
}
if(self method_81BF("prone"))
{
var_00[2] = "prone allowed";
var_01[2] = (0,1,0);
}
else
{
var_00[2] = "prone not allowed";
var_01[2] = (1,0,0);
}
var_02 = self method_815B() + (0,0,30);
var_03 = (0,0,-10);
for(var_04 = 0;var_04 < var_00.size;var_04++)
{
var_05 = (var_02[0] + var_03[0] * var_04,var_02[1] + var_03[1] * var_04,var_02[2] + var_03[2] * var_04);
}
wait(0.05);
}
}
//Function Number: 14
func_FAF2()
{
if(!isdefined(self.var_1FC6) || !isdefined(self.var_BCD6))
{
func_F2B0();
}
}
//Function Number: 15
func_F2B0()
{
self.var_1FC6 = 0.97 + randomfloat(0.13);
self.var_BD22 = 0.97 + randomfloat(0.13);
self.var_BCD6 = self.var_BD22;
self.var_101BB = 1.35;
}
//Function Number: 16
func_94AC(param_00,param_01,param_02,param_03)
{
anim waittill("new exceptions");
}
//Function Number: 17
func_0104(param_00,param_01,param_02,param_03)
{
}
//Function Number: 18
func_6568()
{
self endon("death");
if(1)
{
return;
}
for(;;)
{
self waittill("enemy");
if(!isalive(self.var_10C))
{
continue;
}
while(isplayer(self.var_10C))
{
if(scripts\anim\utility::func_8BED())
{
level.var_A9D0 = gettime();
}
wait(2);
}
}
}
//Function Number: 19
func_98E4()
{
level.var_13D57[0] = -36.8552;
level.var_13D57[1] = -27.0095;
level.var_13D57[2] = -15.5981;
level.var_13D57[3] = -4.37769;
level.var_13D57[4] = 17.7776;
level.var_13D57[5] = 59.8499;
level.var_13D57[6] = 104.808;
level.var_13D57[7] = 152.325;
level.var_13D57[8] = 201.052;
level.var_13D57[9] = 250.244;
level.var_13D57[10] = 298.971;
level.var_13D57[11] = 330.681;
}
//Function Number: 20
func_6DE9()
{
if(getdvarint("ai_iw7",0) == 1)
{
func_6DEA();
return;
}
if(isdefined(level.var_C122))
{
return;
}
anim.var_C122 = 1;
scripts\anim\animset::func_94FD();
anim.var_13086 = 0;
lib_0B5F::func_965A();
level.var_BF83 = randomint(3);
level.var_A9D0 = 100;
anim.var_503A = ::func_0104;
func_97F8();
setdvarifuninitialized("scr_expDeathMayMoveCheck","on");
scripts\sp\_names::func_F9E6();
anim.var_1FB5 = 0;
scripts\anim\init_move_transitions::func_98A0();
anim.var_4407 = 10000;
anim.var_4408 = 6000;
func_9811();
func_97C0();
if(!isdefined(level.var_C6BC))
{
anim.var_C6BE = ::scripts\anim\notetracks::func_D480;
anim.var_C6BC = ::scripts\anim\notetracks::func_D47F;
}
if(!isdefined(level.var_C6BD))
{
anim.var_C6BD = [];
}
if(!isdefined(level.var_C6BF))
{
anim.var_C6BF = [];
}
if(!isdefined(level.var_FE9B))
{
anim.var_FE9B = ::scripts\anim\utility::func_FE9D;
}
if(!isdefined(level.var_FED3))
{
anim.var_FED3 = ::scripts\anim\utility::func_FED2;
}
level.var_6D14["scripted"] = ::scripts\anim\notetracks::func_6D3C;
level.var_6D14["cover_right"] = ::scripts\anim\notetracks::func_FEC8;
level.var_6D14["cover_left"] = ::scripts\anim\notetracks::func_FEC8;
level.var_6D14["cover_crouch"] = ::scripts\anim\notetracks::func_FEC8;
level.var_6D14["cover_stand"] = ::scripts\anim\notetracks::func_FEC8;
level.var_6D14["move"] = ::scripts\anim\notetracks::func_FEC8;
scripts\anim\notetracks::func_DF00();
if(!isdefined(level.flag))
{
scripts\common\flags::func_95E2();
}
scripts\sp\_gameskill::func_F848();
level.var_C870 = undefined;
scripts\anim\setposemovement::func_98BF();
scripts\anim\face::func_9891();
anim.var_32BF = scripts\anim\utility::func_2274(1,2,2,2,3,3,3,3,4,4,5);
anim.var_6B93 = scripts\anim\utility::func_2274(2,3,3,3,4,4,4,5,5);
anim.var_F217 = scripts\anim\utility::func_2274(1,2,2,3,3,4,4,4,4,5,5,5);
anim.var_2759 = [];
anim.var_2755 = 0;
anim.player = getentarray("player","classname")[0];
func_97DA();
func_98E4();
scripts\anim\cqb::func_FA9F();
func_97F5();
func_F724();
anim.var_A955 = -100000;
anim.var_BF91 = 10000;
func_FAE3();
level.player thread scripts\anim\combat_utility::func_13B22();
thread func_1B08();
}
//Function Number: 21
func_97F8()
{
}
//Function Number: 22
func_97DA()
{
if(!isdefined(level.player.team))
{
level.player.team = "allies";
}
scripts\anim\squadmanager::func_9763();
level.player thread scripts\anim\squadmanager::func_1811();
level.player thread scripts\anim\squadmanager::func_D362();
scripts\anim\battlechatter::func_9542();
level.player thread scripts\anim\battlechatter_ai::func_185D();
lib_0E4E::func_96F1();
anim thread scripts\anim\battlechatter::func_29C9();
}
//Function Number: 23
func_97F5()
{
anim.var_C222 = randomintrange(0,15);
anim.var_C221 = randomintrange(0,10);
anim.var_BF77 = gettime() + randomintrange(0,20000);
anim.var_BF78 = gettime() + randomintrange(0,10000);
anim.var_BF76 = gettime() + randomintrange(0,15000);
}
//Function Number: 24
func_9811()
{
for(var_00 = 0;var_00 < level.players.size;var_00++)
{
var_01 = level.players[var_00];
var_01.var_85E4["fraggrenade"] = randomintrange(1000,20000);
var_01.var_85E4["frag"] = randomintrange(1000,20000);
var_01.var_85E4["frag_main"] = randomintrange(1000,20000);
var_01.var_85E4["frag_vr"] = randomintrange(1000,20000);
var_01.var_85E4["flash_grenade"] = randomintrange(1000,20000);
var_01.var_85E4["emp"] = randomintrange(1000,20000);
var_01.var_85E4["antigrav"] = randomintrange(1000,20000);
var_01.var_85E4["seeker"] = randomintrange(1000,20000);
var_01.var_85E4["c8_grenade"] = randomintrange(1000,10000);
var_01.var_85E4["double_grenade"] = randomintrange(1000,-5536);
var_01.var_C231 = 0;
var_01.var_A990 = -1000000;
var_01.var_A98C = -1000000;
var_01 thread func_F7B3();
}
level.var_85E4["AI_fraggrenade"] = randomintrange(0,20000);
level.var_85E4["AI_frag"] = randomintrange(0,20000);
level.var_85E4["AI_seeker"] = randomintrange(0,20000);
level.var_85E4["AI_frag_main"] = randomintrange(0,20000);
level.var_85E4["AI_frag_vr"] = randomintrange(0,20000);
level.var_85E4["AI_flash_grenade"] = randomintrange(0,20000);
level.var_85E4["AI_smoke_grenade_american"] = randomintrange(0,20000);
level.var_85E4["AI_emp"] = randomintrange(0,20000);
level.var_85E4["AI_antigrav"] = randomintrange(0,20000);
level.var_85E4["AI_c8_grenade"] = randomintrange(0,10000);
scripts\anim\combat_utility::func_9812();
}
//Function Number: 25
func_97C0()
{
level.var_A936 = [];
level.var_A936["axis"] = 0;
level.var_A936["allies"] = 0;
level.var_A936["team3"] = 0;
level.var_A936["neutral"] = 0;
level.var_A934 = [];
level.var_A934["axis"] = (0,0,0);
level.var_A934["allies"] = (0,0,0);
level.var_A934["team3"] = (0,0,0);
level.var_A934["neutral"] = (0,0,0);
level.var_A935 = [];
level.var_A935["axis"] = (0,0,0);
level.var_A935["allies"] = (0,0,0);
level.var_A935["team3"] = (0,0,0);
level.var_A935["neutral"] = (0,0,0);
level.var_A933 = [];
level.var_18D5 = [];
level.var_18D5["axis"] = 0;
level.var_18D5["allies"] = 0;
level.var_18D5["team3"] = 0;
level.var_18D5["neutral"] = 0;
level.var_18D7 = 30000;
level.var_18D6 = 3;
}
//Function Number: 26
func_9897()
{
level.var_B5F8["c6"] = 0;
level.var_B5F5["c6"] = 9000;
level.var_B5F7["c6"] = 0;
level.var_B5F6["c6"] = 15000;
level.var_B5F8["seeker"] = 0;
level.var_B5F5["seeker"] = 9000;
level.var_B5F7["seeker"] = 0;
level.var_B5F6["seeker"] = 15000;
}
//Function Number: 27
func_1B08()
{
var_00 = 0;
var_01 = 3;
for(;;)
{
var_02 = function_0072();
if(var_02.size == 0)
{
wait(0.05);
var_00 = 0;
continue;
}
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
if(!isdefined(var_02[var_03]))
{
continue;
}
var_02[var_03] notify("do_slow_things");
var_00++;
if(var_00 == var_01)
{
wait(0.05);
var_00 = 0;
}
}
}
}
//Function Number: 28
func_F7B3()
{
waittillframeend;
if(isdefined(self.var_86A9.var_D397))
{
var_00 = int(self.var_86A9.var_D397 * 0.7);
if(var_00 < 1)
{
var_00 = 1;
}
self.var_85E4["frag"] = randomintrange(0,var_00);
self.var_85E4["flash_grenade"] = randomintrange(0,var_00);
self.var_85E4["seeker"] = randomintrange(0,var_00);
}
if(isdefined(self.var_86A9.var_D382))
{
var_00 = int(self.var_86A9.var_D382);
var_01 = int(var_00 / 2);
if(var_00 <= var_01)
{
var_00 = var_01 + 1;
}
self.var_85E4["double_grenade"] = randomintrange(var_01,var_00);
}
}
//Function Number: 29
func_2A69()
{
if(isdefined(level.var_55F1))
{
return;
}
self endon("death");
for(;;)
{
self waittill("grenade_fire",var_00,var_01);
if(isdefined(var_00) && scripts\common\utility::istrue(var_00.var_8589))
{
continue;
}
if(isdefined(level.var_74C2["ai_grenade_thrown"]))
{
level thread [[ level.var_74C2["ai_grenade_thrown"] ]](var_00);
}
switch(var_01)
{
case "frag":
thread scripts\sp\_detonategrenades::func_734F(var_00);
break;
case "emp":
thread lib_0E25::func_615B(var_00);
break;
case "seeker":
thread lib_0E26::func_F135(var_00);
break;
case "antigrav":
thread lib_0E21::func_2013(var_00);
break;
default:
var_00 thread scripts\sp\_utility::func_858A();
break;
}
}
}
//Function Number: 30
func_FAE3()
{
anim.var_DCB3 = 60;
anim.var_DCB2 = [];
for(var_00 = 0;var_00 < level.var_DCB3;var_00++)
{
level.var_DCB2[var_00] = var_00;
}
for(var_00 = 0;var_00 < level.var_DCB3;var_00++)
{
var_01 = randomint(level.var_DCB3);
var_02 = level.var_DCB2[var_00];
level.var_DCB2[var_00] = level.var_DCB2[var_01];
level.var_DCB2[var_01] = var_02;
}
}
//Function Number: 31
func_C4EA()
{
if(isdefined(level.var_5613))
{
return;
}
self waittill("death");
if(!isdefined(self))
{
if(isdefined(self.var_1491.var_13121))
{
self.var_1491.var_13121 delete();
}
}
}
//Function Number: 32
func_6DEA()
{
if(isdefined(level.var_C122))
{
return;
}
anim.var_C122 = 1;
anim.var_13086 = 0;
lib_0B5F::func_965A();
level.var_BF83 = randomint(3);
level.var_A9D0 = 100;
anim.var_503A = ::func_0104;
if(!isdefined(level.var_7649))
{
level.var_7649 = [];
}
func_97F8();
scripts\sp\_names::func_F9E6();
anim.var_1FB5 = 0;
anim.var_4407 = 10000;
anim.var_4408 = 6000;
anim.var_13CC8 = [];
level.var_13CC8["c12"] = ::func_363B;
anim.var_5667 = [];
anim.var_13CD3 = ::scripts\anim\shared::func_CB29;
func_9811();
func_97C0();
func_9897();
if(!isdefined(level.var_C6BC))
{
anim.var_C6BE = ::scripts\anim\notetracks::func_D480;
anim.var_C6BC = ::scripts\anim\notetracks::func_D47F;
}
if(!isdefined(level.var_C6BD))
{
anim.var_C6BD = [];
}
if(!isdefined(level.var_C6BF))
{
anim.var_C6BF = [];
}
if(!isdefined(level.var_FE9B))
{
anim.var_FE9B = ::scripts\anim\utility::func_FE9D;
}
if(!isdefined(level.var_FED3))
{
anim.var_FED3 = ::scripts\anim\utility::func_FED2;
}
anim.var_6D14 = [];
scripts\anim\notetracks::func_DF00();
if(!isdefined(level.flag))
{
scripts\common\flags::func_95E2();
}
scripts\sp\_gameskill::func_F848();
level.var_C870 = undefined;
scripts\anim\setposemovement::func_98BF();
scripts\anim\face::func_9891();
anim.var_32BF = scripts\anim\utility::func_2274(1,2,2,2,3,3,3,3,4,4,5);
anim.var_6B93 = scripts\anim\utility::func_2274(2,3,3,3,4,4,4,5,5);
anim.var_F217 = scripts\anim\utility::func_2274(1,2,2,3,3,4,4,4,4,5,5,5);
anim.var_2759 = [];
anim.var_2755 = 0;
if(!isdefined(level.var_3D4B))
{
if(scripts\common\utility::func_D11B())
{
anim.player = level.var_D127;
}
else
{
anim.player = getentarray("player","classname")[0];
}
func_97DA();
}
func_98E4();
scripts\anim\cqb::func_FA9F();
func_97F5();
anim.var_A955 = -100000;
func_FAE3();
level.player thread scripts\anim\combat_utility::func_13B22();
}
//Function Number: 33
func_5031()
{
func_98E1(self.var_D8E1);
func_98E1(self.var_F0C4);
func_98E1(self.var_101B4);
self method_82D0();
self.var_1491.var_13CBA["left"] = "none";
self.var_1491.var_13CBA["right"] = "none";
self.var_1491.var_13CBA["chest"] = "none";
self.var_1491.var_13CBA["back"] = "none";
self.var_1491.var_13CBB["left"] = "none";
self.var_1491.var_13CBB["right"] = "none";
self.var_1491.var_13CBB["chest"] = "none";
self.var_1491.var_13CBB["back"] = "none";
self.var_AA45 = self.var_394;
var_00 = scripts\anim\utility_common::func_1311B();
self.var_1491.var_BEF9 = var_00;
if(var_00)
{
thread scripts\anim\shared::func_E775();
}
self.var_1491.var_E5DE = 3;
self.var_1491.var_E5E3 = 1;
scripts\anim\shared::func_CC2C(self.var_D8E1,"right");
if(scripts\anim\utility_common::func_9F4F(self.var_F0C4))
{
scripts\anim\shared::func_CC2C(self.var_F0C4,"back");
}
if(self.team != "allies")
{
self.var_8B95 = 1;
}
scripts\anim\weaponlist::func_DE4D();
}
//Function Number: 34
func_3597()
{
if(scripts\anim\utility_common::func_1311B())
{
return "rocket";
}
else if(scripts\anim\utility_common::func_1311A())
{
return "minigun";
}
return undefined;
}
//Function Number: 35
func_363B()
{
self.var_13CC3 = [];
if(self.var_D8E1 != "" && self.var_D8E1 != "none")
{
self.var_394 = self.var_D8E1;
self.var_13CC3["right"] = func_3597();
}
if(self.var_F0C4 != "" && self.var_F0C4 != "none")
{
self.var_394 = self.var_F0C4;
self.var_13CC3["left"] = func_3597();
}
self.var_394 = "";
self.var_3250 = 1;
}

View File

@ -0,0 +1,371 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\init_move_transitions.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 6
* Decompile Time: 383 ms
* Timestamp: 10/27/2023 12:00:39 AM
*******************************************************************/
//Function Number: 1
func_968D()
{
if(isdefined(level.var_BC99))
{
return;
}
anim.var_BC99 = 1;
if(!isdefined(level.var_4751))
{
anim.var_4751 = [];
}
if(!isdefined(level.var_4719))
{
anim.var_4719 = [];
}
anim.var_B490 = [];
anim.var_68CA = [];
anim.var_126E7 = [];
if(!isdefined(level.var_4754))
{
anim.var_4754 = [];
}
if(!isdefined(level.var_4753))
{
anim.var_4753 = [];
}
if(!isdefined(level.var_471B))
{
anim.var_471B = [];
}
anim.var_471D = [];
anim.var_4755 = [];
if(!isdefined(level.var_4752))
{
anim.var_4752 = [];
}
if(!isdefined(level.var_471A))
{
anim.var_471A = [];
}
anim.var_22E7 = [];
}
//Function Number: 2
func_98A0()
{
func_968D();
var_00 = [];
var_00[0] = "left";
var_00[1] = "right";
var_00[2] = "left_crouch";
var_00[3] = "right_crouch";
var_00[4] = "crouch";
var_00[5] = "stand";
var_00[6] = "exposed";
var_00[7] = "exposed_crouch";
var_00[8] = "stand_saw";
var_00[9] = "prone_saw";
var_00[10] = "crouch_saw";
var_00[11] = "wall_over_40";
var_00[12] = "right_cqb";
var_00[13] = "right_crouch_cqb";
var_00[14] = "left_cqb";
var_00[15] = "left_crouch_cqb";
var_00[16] = "exposed_cqb";
var_00[17] = "exposed_crouch_cqb";
var_00[18] = "heat";
var_00[19] = "heat_left";
var_00[20] = "heat_right";
var_00[21] = "exposed_ready";
var_00[22] = "exposed_ready_cqb";
var_01 = 6;
anim.var_20EB = [];
level.var_20EB["Cover Left"] = [];
level.var_20EB["Cover Left"]["stand"] = "left";
level.var_20EB["Cover Left"]["crouch"] = "left_crouch";
level.var_B490["Cover Left"] = 9;
level.var_68CA["Cover Left"] = 9;
level.var_20EB["Cover Right"] = [];
level.var_20EB["Cover Right"]["stand"] = "right";
level.var_20EB["Cover Right"]["crouch"] = "right_crouch";
level.var_B490["Cover Right"] = 9;
level.var_68CA["Cover Right"] = 7;
level.var_20EB["Cover Crouch"] = [];
level.var_20EB["Cover Crouch"]["stand"] = "crouch";
level.var_20EB["Cover Crouch"]["crouch"] = "crouch";
level.var_20EB["Conceal Crouch"] = level.var_20EB["Cover Crouch"];
level.var_20EB["Cover Crouch Window"] = level.var_20EB["Cover Crouch"];
level.var_B490["Cover Crouch"] = 6;
level.var_68CA["Cover Crouch"] = -1;
level.var_B490["Conceal Crouch"] = 6;
level.var_68CA["Conceal Crouch"] = -1;
level.var_20EB["Cover Stand"] = [];
level.var_20EB["Cover Stand"]["stand"] = "stand";
level.var_20EB["Cover Stand"]["crouch"] = "stand";
level.var_20EB["Conceal Stand"] = level.var_20EB["Cover Stand"];
level.var_B490["Cover Stand"] = 6;
level.var_68CA["Cover Stand"] = -1;
level.var_B490["Conceal Stand"] = 6;
level.var_68CA["Conceal Stand"] = -1;
level.var_20EB["Cover Prone"] = [];
level.var_20EB["Cover Prone"]["stand"] = "exposed";
level.var_20EB["Cover Prone"]["crouch"] = "exposed";
level.var_20EB["Conceal Prone"] = level.var_20EB["Cover Prone"];
level.var_68CA["Conceal Prone"] = -1;
level.var_20EB["Path"] = [];
level.var_20EB["Path"]["stand"] = "exposed";
level.var_20EB["Path"]["crouch"] = "exposed_crouch";
level.var_20EB["Guard"] = level.var_20EB["Path"];
level.var_20EB["Ambush"] = level.var_20EB["Path"];
level.var_20EB["Scripted"] = level.var_20EB["Path"];
level.var_20EB["Exposed"] = level.var_20EB["Path"];
level.var_9D8D["Guard"] = 1;
level.var_9D8D["Ambush"] = 1;
level.var_9D8D["Exposed"] = 1;
level.var_9D8E["Guard"] = 1;
level.var_9D8E["Exposed"] = 1;
for(var_02 = 1;var_02 <= 6;var_02++)
{
if(var_02 == 5)
{
continue;
}
for(var_03 = 0;var_03 < var_00.size;var_03++)
{
var_04 = var_00[var_03];
if(isdefined(level.var_2128["soldier"]["cover_trans"][var_04]) && isdefined(level.var_2128["soldier"]["cover_trans"][var_04][var_02]))
{
level.var_2128["soldier"]["cover_trans_dist"][var_04][var_02] = getmovedelta(level.var_2128["soldier"]["cover_trans"][var_04][var_02],0,1);
level.var_2128["soldier"]["cover_trans_angles"][var_04][var_02] = getangledelta(level.var_2128["soldier"]["cover_trans"][var_04][var_02],0,1);
}
if(isdefined(level.var_2128["soldier"]["cover_exit"][var_04]) && isdefined(level.var_2128["soldier"]["cover_exit"][var_04][var_02]))
{
if(animhasnotetrack(level.var_2128["soldier"]["cover_exit"][var_04][var_02],"code_move"))
{
var_05 = getnotetracktimes(level.var_2128["soldier"]["cover_exit"][var_04][var_02],"code_move")[0];
}
else
{
var_05 = 1;
}
level.var_2128["soldier"]["cover_exit_dist"][var_04][var_02] = getmovedelta(level.var_2128["soldier"]["cover_exit"][var_04][var_02],0,var_05);
level.var_2128["soldier"]["cover_exit_angles"][var_04][var_02] = getangledelta(level.var_2128["soldier"]["cover_exit"][var_04][var_02],0,1);
}
}
}
for(var_03 = 0;var_03 < var_00.size;var_03++)
{
var_04 = var_00[var_03];
level.var_4754[var_04] = 0;
for(var_02 = 1;var_02 <= 6;var_02++)
{
if(var_02 == 5 || !isdefined(level.var_2128["soldier"]["cover_trans"][var_04]) || !isdefined(level.var_2128["soldier"]["cover_trans"][var_04][var_02]))
{
continue;
}
var_06 = lengthsquared(level.var_2128["soldier"]["cover_trans_dist"][var_04][var_02]);
if(level.var_4754[var_04] < var_06)
{
level.var_4754[var_04] = var_06;
}
}
level.var_4754[var_04] = sqrt(level.var_4754[var_04]);
}
level.var_6A1B["exposed"] = 1;
level.var_6A1B["exposed_crouch"] = 1;
level.var_6A1B["exposed_cqb"] = 1;
level.var_6A1B["exposed_crouch_cqb"] = 1;
level.var_6A1B["exposed_ready_cqb"] = 1;
level.var_6A1B["exposed_ready"] = 1;
level.var_6A1B["heat"] = 1;
if(!isdefined(level.var_AFE8))
{
anim.var_AFE8 = 0;
}
foreach(var_04, var_08 in level.var_6A1B)
{
for(var_02 = 7;var_02 <= 9;var_02++)
{
if(isdefined(level.var_2128["soldier"]["cover_trans"][var_04]) && isdefined(level.var_2128["soldier"]["cover_trans"][var_04][var_02]))
{
level.var_2128["soldier"]["cover_trans_dist"][var_04][var_02] = getmovedelta(level.var_2128["soldier"]["cover_trans"][var_04][var_02],0,1);
level.var_2128["soldier"]["cover_trans_angles"][var_04][var_02] = getangledelta(level.var_2128["soldier"]["cover_trans"][var_04][var_02],0,1);
}
if(isdefined(level.var_2128["soldier"]["cover_exit"][var_04]) && isdefined(level.var_2128["soldier"]["cover_exit"][var_04][var_02]))
{
var_05 = getnotetracktimes(level.var_2128["soldier"]["cover_exit"][var_04][var_02],"code_move")[0];
level.var_2128["soldier"]["cover_exit_dist"][var_04][var_02] = getmovedelta(level.var_2128["soldier"]["cover_exit"][var_04][var_02],0,var_05);
level.var_2128["soldier"]["cover_exit_angles"][var_04][var_02] = getangledelta(level.var_2128["soldier"]["cover_exit"][var_04][var_02],0,1);
}
}
for(var_02 = 1;var_02 <= 9;var_02++)
{
if(!isdefined(level.var_2128["soldier"]["cover_trans"][var_04]) || !isdefined(level.var_2128["soldier"]["cover_trans"][var_04][var_02]))
{
continue;
}
var_09 = length(level.var_2128["soldier"]["cover_trans_dist"][var_04][var_02]);
if(var_09 > level.var_AFE8)
{
anim.var_AFE8 = var_09;
}
}
}
level.var_2128["soldier"]["cover_trans_split"]["left"][7] = 0.369369;
level.var_2128["soldier"]["cover_trans_split"]["left_crouch"][7] = 0.321321;
level.var_2128["soldier"]["cover_trans_split"]["left_crouch_cqb"][7] = 0.2002;
level.var_2128["soldier"]["cover_trans_split"]["left_cqb"][7] = 0.275275;
level.var_2128["soldier"]["cover_exit_split"]["left"][7] = 0.550551;
level.var_2128["soldier"]["cover_exit_split"]["left_crouch"][7] = 0.558559;
level.var_2128["soldier"]["cover_exit_split"]["left_cqb"][7] = 0.358358;
level.var_2128["soldier"]["cover_exit_split"]["left_crouch_cqb"][7] = 0.359359;
level.var_2128["soldier"]["cover_exit_split"]["heat_left"][7] = 0.42;
level.var_2128["soldier"]["cover_trans_split"]["left"][8] = 0.525526;
level.var_2128["soldier"]["cover_trans_split"]["left_crouch"][8] = 0.448448;
level.var_2128["soldier"]["cover_trans_split"]["left_crouch_cqb"][8] = 0.251251;
level.var_2128["soldier"]["cover_trans_split"]["left_cqb"][8] = 0.335335;
level.var_2128["soldier"]["cover_exit_split"]["left"][8] = 0.616617;
level.var_2128["soldier"]["cover_exit_split"]["left_crouch"][8] = 0.453453;
level.var_2128["soldier"]["cover_exit_split"]["left_crouch_cqb"][8] = 0.572573;
level.var_2128["soldier"]["cover_exit_split"]["left_cqb"][8] = 0.336336;
level.var_2128["soldier"]["cover_exit_split"]["heat_left"][8] = 0.42;
level.var_2128["soldier"]["cover_trans_split"]["right"][8] = 0.472472;
level.var_2128["soldier"]["cover_trans_split"]["right_crouch"][8] = 0.248248;
level.var_2128["soldier"]["cover_trans_split"]["right_cqb"][8] = 0.345345;
level.var_2128["soldier"]["cover_trans_split"]["right_crouch_cqb"][8] = 0.428428;
level.var_2128["soldier"]["cover_exit_split"]["right"][8] = 0.431431;
level.var_2128["soldier"]["cover_exit_split"]["right_crouch"][8] = 0.545546;
level.var_2128["soldier"]["cover_exit_split"]["right_cqb"][8] = 0.335335;
level.var_2128["soldier"]["cover_exit_split"]["right_crouch_cqb"][8] = 0.4004;
level.var_2128["soldier"]["cover_exit_split"]["heat_right"][8] = 0.4;
level.var_2128["soldier"]["cover_trans_split"]["right"][9] = 0.551552;
level.var_2128["soldier"]["cover_trans_split"]["right_crouch"][9] = 0.2002;
level.var_2128["soldier"]["cover_trans_split"]["right_cqb"][9] = 0.3003;
level.var_2128["soldier"]["cover_trans_split"]["right_crouch_cqb"][9] = 0.224224;
level.var_2128["soldier"]["cover_exit_split"]["right"][9] = 0.485485;
level.var_2128["soldier"]["cover_exit_split"]["right_crouch"][9] = 0.493493;
level.var_2128["soldier"]["cover_exit_split"]["right_cqb"][9] = 0.438438;
level.var_2128["soldier"]["cover_exit_split"]["right_crouch_cqb"][9] = 0.792793;
level.var_2128["soldier"]["cover_exit_split"]["heat_right"][9] = 0.4;
anim.var_10A50 = [];
level.var_10A50["left"] = 1;
level.var_10A50["left_crouch"] = 1;
level.var_10A50["left_crouch_cqb"] = 1;
level.var_10A50["left_cqb"] = 1;
anim.var_10A52 = [];
level.var_10A52["left"] = 1;
level.var_10A52["left_crouch"] = 1;
level.var_10A52["left_crouch_cqb"] = 1;
level.var_10A52["left_cqb"] = 1;
level.var_10A52["heat_left"] = 1;
anim.var_10A51 = [];
level.var_10A51["right"] = 1;
level.var_10A51["right_crouch"] = 1;
level.var_10A51["right_cqb"] = 1;
level.var_10A51["right_crouch_cqb"] = 1;
anim.var_10A53 = [];
level.var_10A53["right"] = 1;
level.var_10A53["right_crouch"] = 1;
level.var_10A53["right_cqb"] = 1;
level.var_10A53["right_crouch_cqb"] = 1;
level.var_10A53["heat_right"] = 1;
func_814D("soldier");
level.var_22E7["left"] = "stand";
level.var_22E7["left_cqb"] = "stand";
level.var_22E7["right"] = "stand";
level.var_22E7["right_cqb"] = "stand";
level.var_22E7["stand"] = "stand";
level.var_22E7["stand_saw"] = "stand";
level.var_22E7["exposed"] = "stand";
level.var_22E7["exposed_cqb"] = "stand";
level.var_22E7["heat"] = "stand";
level.var_22E7["left_crouch"] = "crouch";
level.var_22E7["left_crouch_cqb"] = "crouch";
level.var_22E7["right_crouch"] = "crouch";
level.var_22E7["right_crouch_cqb"] = "crouch";
level.var_22E7["crouch_saw"] = "crouch";
level.var_22E7["crouch"] = "crouch";
level.var_22E7["exposed_crouch"] = "crouch";
level.var_22E7["exposed_crouch_cqb"] = "crouch";
level.var_22E7["prone_saw"] = "prone";
level.var_22E7["exposed_ready"] = "stand";
level.var_22E7["exposed_ready_cqb"] = "stand";
level.var_E1B7["Cover Stand"] = "stand";
level.var_E1B7["Conceal Stand"] = "stand";
level.var_E1B7["Cover Crouch"] = "crouch";
level.var_E1B7["Conceal Crouch"] = "crouch";
}
//Function Number: 3
func_814D(param_00)
{
func_814E(param_00,7,8,0,level.var_10A50,level.var_10A52);
func_814E(param_00,8,9,1,level.var_10A51,level.var_10A53);
}
//Function Number: 4
func_814E(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = 0;
for(var_07 = param_01;var_07 <= param_02;var_07++)
{
if(!var_06)
{
foreach(var_0A, var_09 in param_04)
{
if(isdefined(level.var_2128[param_00]["cover_trans"]) && isdefined(level.var_2128[param_00]["cover_trans"][var_0A]) && isdefined(level.var_2128[param_00]["cover_trans"][var_0A][var_07]))
{
level.var_2128[param_00]["cover_trans_predist"][var_0A][var_07] = getmovedelta(level.var_2128[param_00]["cover_trans"][var_0A][var_07],0,func_81D6(param_00,var_0A,var_07));
level.var_2128[param_00]["cover_trans_dist"][var_0A][var_07] = getmovedelta(level.var_2128[param_00]["cover_trans"][var_0A][var_07],0,1) - level.var_2128[param_00]["cover_trans_predist"][var_0A][var_07];
level.var_2128[param_00]["cover_trans_angles"][var_0A][var_07] = getangledelta(level.var_2128[param_00]["cover_trans"][var_0A][var_07],0,1);
}
}
foreach(var_0A, var_09 in param_05)
{
if(isdefined(level.var_2128[param_00]["cover_exit"]) && isdefined(level.var_2128[param_00]["cover_exit"][var_0A]) && isdefined(level.var_2128[param_00]["cover_exit"][var_0A][var_07]))
{
level.var_2128[param_00]["cover_exit_dist"][var_0A][var_07] = getmovedelta(level.var_2128[param_00]["cover_exit"][var_0A][var_07],0,func_7EA4(param_00,var_0A,var_07));
level.var_2128[param_00]["cover_exit_postdist"][var_0A][var_07] = getmovedelta(level.var_2128[param_00]["cover_exit"][var_0A][var_07],0,1) - level.var_2128[param_00]["cover_exit_dist"][var_0A][var_07];
level.var_2128[param_00]["cover_exit_angles"][var_0A][var_07] = getangledelta(level.var_2128[param_00]["cover_exit"][var_0A][var_07],0,1);
}
}
continue;
}
}
}
//Function Number: 5
func_7EA4(param_00,param_01,param_02)
{
return level.var_2128[param_00]["cover_exit_split"][param_01][param_02];
}
//Function Number: 6
func_81D6(param_00,param_01,param_02)
{
return level.var_2128[param_00]["cover_trans_split"][param_01][param_02];
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,147 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\reactions.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 11
* Decompile Time: 546 ms
* Timestamp: 10/27/2023 12:00:51 AM
*******************************************************************/
//Function Number: 1
main()
{
if(getdvarint("ai_iw7",0) == 1)
{
return;
}
self endon("killanimscript");
scripts\anim\utility::func_9832("reactions");
func_BF22();
}
//Function Number: 2
func_951D()
{
}
//Function Number: 3
func_DD51()
{
thread func_325D();
}
//Function Number: 4
func_38FD()
{
return !isdefined(self.var_A9D9) || gettime() - self.var_A9D9 > 2000;
}
//Function Number: 5
func_325E()
{
}
//Function Number: 6
func_325D()
{
self endon("killanimscript");
if(isdefined(self.var_55B5))
{
return;
}
for(;;)
{
self waittill("bulletwhizby",var_00);
if(!isdefined(var_00.team) || self.team == var_00.team)
{
continue;
}
if(isdefined(self.var_473C) || isdefined(self.var_1E2C))
{
continue;
}
if(self.var_1491.var_D6A5 != "stand")
{
continue;
}
if(!func_38FD())
{
continue;
}
self.var_13D13 = var_00;
self method_8015(::func_325E);
}
}
//Function Number: 7
func_41C3()
{
self endon("killanimscript");
wait(0.3);
self method_8306();
}
//Function Number: 8
func_7FE1()
{
}
//Function Number: 9
func_10F51()
{
}
//Function Number: 10
func_BF20()
{
self endon("death");
self endon("endNewEnemyReactionAnim");
self.var_A9D9 = gettime();
self.var_1491.var_BCC8 = "stop";
if(isdefined(self.var_1412) && self.var_28 != "combat")
{
func_10F51();
}
else
{
var_00 = func_7FE1();
self method_806F(%root,0.2);
self method_82E7("reactanim",var_00,1,0.2,1);
scripts\anim\shared::func_592B("reactanim");
}
self notify("newEnemyReactionDone");
}
//Function Number: 11
func_BF22()
{
self endon("death");
if(isdefined(self.var_560E))
{
return;
}
if(!func_38FD())
{
return;
}
if(self.var_1491.var_D6A5 == "prone" || isdefined(self.var_1491.var_C4C8))
{
return;
}
self method_8016("gravity");
if(isdefined(self.var_10C))
{
func_BF20();
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,258 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\saw\common.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 13
* Decompile Time: 584 ms
* Timestamp: 10/26/2023 11:59:16 PM
*******************************************************************/
//Function Number: 1
main(param_00)
{
self endon("killanimscript");
if(!isdefined(param_00))
{
return;
}
self.var_1491.var_10930 = "saw";
if(isdefined(param_00.var_ED50))
{
var_01 = param_00.var_ED50;
}
else
{
var_01 = scripts\sp\_mgturret::func_32B6("delay");
}
if(isdefined(param_00.var_ED4F))
{
var_02 = param_00.var_ED4F - var_01;
}
else
{
var_02 = scripts\sp\_mgturret::func_32B6("delay_range");
}
if(isdefined(param_00.var_ED26))
{
var_03 = param_00.var_ED26;
}
else
{
var_03 = scripts\sp\_mgturret::func_32B6("burst");
}
if(isdefined(param_00.var_ED25))
{
var_04 = param_00.var_ED25 - var_03;
}
else
{
var_04 = scripts\sp\_mgturret::func_32B6("burst_range");
}
var_05 = gettime();
var_06 = "start";
scripts\anim\shared::func_CC2C(self.var_394,"none");
param_00 show();
if(isdefined(param_00.var_1A56))
{
self.var_1491.var_D707 = ::func_D707;
self.var_1491.var_13121 = param_00;
param_00 notify("being_used");
thread func_1109E();
}
else
{
self.var_1491.var_D707 = ::func_D860;
}
param_00.var_5855 = 0;
thread func_6D63(param_00);
self method_8355(self.var_D8E0);
self method_82AB(self.var_D8E0,1,0.2,1);
self method_82AA(self.var_17E3);
self method_82AA(self.var_17E2);
param_00 method_82AA(param_00.var_17E3);
param_00 method_82AA(param_00.var_17E2);
param_00 endon("death");
for(;;)
{
if(param_00.var_5855)
{
thread func_5AAA(param_00);
func_13848(randomfloatrange(var_03,var_03 + var_04),param_00);
param_00 notify("turretstatechange");
if(param_00.var_5855)
{
thread func_57DB(param_00);
wait(randomfloatrange(var_01,var_01 + var_02));
}
continue;
}
thread func_57DB(param_00);
param_00 waittill("turretstatechange");
}
}
//Function Number: 2
func_13848(param_00,param_01)
{
param_01 endon("turretstatechange");
wait(param_00);
}
//Function Number: 3
func_6D63(param_00)
{
self endon("killanimscript");
var_01 = cos(15);
for(;;)
{
while(isdefined(self.var_10C))
{
var_02 = self.var_10C.origin;
var_03 = param_00 gettagangles("tag_aim");
if(scripts\common\utility::func_13D90(param_00.origin,var_03,var_02,var_01) || distancesquared(param_00.origin,var_02) < -25536)
{
if(!param_00.var_5855)
{
param_00.var_5855 = 1;
param_00 notify("turretstatechange");
}
}
else if(param_00.var_5855)
{
param_00.var_5855 = 0;
param_00 notify("turretstatechange");
}
wait(0.05);
}
if(param_00.var_5855)
{
param_00.var_5855 = 0;
param_00 notify("turretstatechange");
}
wait(0.05);
}
}
//Function Number: 4
func_12A99(param_00,param_01)
{
if(param_00 <= 0)
{
return;
}
self endon("killanimscript");
param_01 endon("turretstatechange");
wait(param_00);
param_01 notify("turretstatechange");
}
//Function Number: 5
func_1109E()
{
self endon("killanimscript");
for(;;)
{
if(!isdefined(self.var_205) || distancesquared(self.origin,self.var_205.origin) > 4096)
{
self method_83AF();
}
wait(0.25);
}
}
//Function Number: 6
func_D707(param_00)
{
if(param_00 == "pain")
{
if(isdefined(self.var_205) && distancesquared(self.origin,self.var_205.origin) < 4096)
{
self.var_1491.var_13121 hide();
scripts\anim\shared::func_CC2C(self.var_394,"right");
self.var_1491.var_D707 = ::func_D705;
return;
}
else
{
self method_83AF();
}
}
if(param_00 == "saw")
{
var_01 = self method_8164();
return;
}
self.var_1491.var_13121 delete();
self.var_1491.var_13121 = undefined;
scripts\anim\shared::func_CC2C(self.var_394,"right");
}
//Function Number: 7
func_D705(param_00)
{
if(!isdefined(self.var_205) || distancesquared(self.origin,self.var_205.origin) > 4096)
{
self method_83AF();
self.var_1491.var_13121 delete();
self.var_1491.var_13121 = undefined;
if(isdefined(self.var_394) && self.var_394 != "none")
{
scripts\anim\shared::func_CC2C(self.var_394,"right");
return;
}
return;
}
if(param_00 != "saw")
{
self.var_1491.var_13121 delete();
}
}
//Function Number: 8
func_D860(param_00)
{
scripts\anim\shared::func_CC2C(self.var_394,"right");
}
//Function Number: 9
func_5AAA(param_00)
{
}
//Function Number: 10
func_57DB(param_00)
{
}
//Function Number: 11
func_12A63(param_00)
{
}
//Function Number: 12
func_12A64()
{
}
//Function Number: 13
func_12A62()
{
}

View File

@ -0,0 +1,22 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\saw\crouch.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 111 ms
* Timestamp: 10/26/2023 11:59:16 PM
*******************************************************************/
//Function Number: 1
main()
{
if(getdvarint("ai_iw7",0) == 1)
{
}
}
//Function Number: 2
func_12A73(param_00)
{
}

View File

@ -0,0 +1,23 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\saw\prone.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 106 ms
* Timestamp: 10/26/2023 11:59:16 PM
*******************************************************************/
//Function Number: 1
main()
{
if(getdvarint("ai_iw7",0) == 1)
{
}
}
//Function Number: 2
func_12A73(param_00)
{
self method_83AE();
}

View File

@ -0,0 +1,22 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\saw\stand.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 112 ms
* Timestamp: 10/26/2023 11:59:17 PM
*******************************************************************/
//Function Number: 1
main()
{
if(getdvarint("ai_iw7",0) == 1)
{
}
}
//Function Number: 2
func_12A73(param_00)
{
}

View File

@ -0,0 +1,115 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\scripted.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 6
* Decompile Time: 440 ms
* Timestamp: 10/27/2023 12:00:54 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("death");
self notify("killanimscript");
self notify("clearSuppressionAttack");
self.var_1491.var_112CB = 0;
if(getdvarint("ai_iw7") == 1)
{
lib_0A1E::func_2318();
lib_0A1B::func_2911();
lib_0A1E::func_230A();
}
self endon("end_sequence");
self method_839C(self.var_433C["notifyName"],self.var_433C["origin"],self.var_433C["angles"],self.var_433C["anim"],self.var_433C["animMode"],self.var_433C["root"],self.var_433C["goalTime"],self.var_433C["animRate"]);
self.var_433C = undefined;
if(isdefined(self.var_EF4D))
{
scripts\anim\face::func_EB86(self.var_EF4D,"scripted_anim_facedone");
self.var_EF4D = undefined;
}
if(isdefined(self.var_4E70))
{
self.var_4E6F = self.var_4E70;
}
self waittill("killanimscript");
}
//Function Number: 2
init(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
self.var_433C["notifyName"] = param_00;
self.var_433C["origin"] = param_01;
self.var_433C["angles"] = param_02;
self.var_433C["anim"] = param_03;
if(isdefined(param_04))
{
self.var_433C["animMode"] = param_04;
}
else
{
self.var_433C["animMode"] = "normal";
}
self.var_433C["goalTime"] = param_06;
self.var_433C["animRate"] = param_07;
self.var_433C["root"] = param_05;
switch(self.var_111A4)
{
case "C6":
func_9563();
break;
case "C8":
func_9567();
break;
case "C12":
func_9568();
break;
default:
func_962B();
break;
}
}
//Function Number: 3
func_962B()
{
if(!isdefined(self.var_433C["root"]))
{
self.var_433C["root"] = %body;
}
}
//Function Number: 4
func_9563()
{
if(!isdefined(self.var_433C["root"]))
{
self.var_433C["root"] = %body;
}
}
//Function Number: 5
func_9567()
{
if(!isdefined(self.var_433C["root"]))
{
self.var_433C["root"] = %body;
}
}
//Function Number: 6
func_9568()
{
if(!isdefined(self.var_433C["root"]))
{
self.var_433C["root"] = %body;
}
}

View File

@ -0,0 +1,923 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\setposemovement.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 55
* Decompile Time: 2909 ms
* Timestamp: 10/27/2023 12:00:57 AM
*******************************************************************/
//Function Number: 1
func_F804(param_00,param_01)
{
if(param_00 == "")
{
if(self.var_1491.var_D6A5 == "prone" && param_01 == "walk" || param_01 == "run")
{
param_00 = "crouch";
}
else
{
param_00 = self.var_1491.var_D6A5;
}
}
if(!isdefined(param_01) || param_01 == "")
{
param_01 = self.var_1491.var_BCC8;
}
[[ level.var_F805[param_00][param_01] ]]();
}
//Function Number: 2
func_98BF()
{
level.var_F805["stand"]["stop"] = ::func_10B7E;
level.var_F805["stand"]["walk"] = ::func_10B84;
level.var_F805["stand"]["run"] = ::func_10B76;
level.var_F805["crouch"]["stop"] = ::func_4AA7;
level.var_F805["crouch"]["walk"] = ::func_4AB1;
level.var_F805["crouch"]["run"] = ::func_4A9E;
level.var_F805["prone"]["stop"] = ::func_DA86;
level.var_F805["prone"]["walk"] = ::func_DA91;
level.var_F805["prone"]["run"] = ::func_DA84;
}
//Function Number: 3
func_10B7E()
{
switch(self.var_1491.var_D6A5)
{
case "stand":
switch(self.var_1491.var_BCC8)
{
case "stop":
return 0;
case "walk":
func_10B86();
break;
default:
func_10B7D();
break;
}
break;
case "crouch":
switch(self.var_1491.var_BCC8)
{
case "stop":
func_4AAD();
break;
case "walk":
func_4AB3();
break;
default:
func_4AA6();
break;
}
break;
default:
switch(self.var_1491.var_BCC8)
{
case "stop":
func_DA8D();
break;
default:
func_DA8D();
break;
}
break;
}
return 1;
}
//Function Number: 4
func_10B84()
{
switch(self.var_1491.var_D6A5)
{
case "stand":
switch(self.var_1491.var_BCC8)
{
case "stop":
func_2B92();
break;
case "walk":
return 0;
default:
func_2B92();
break;
}
break;
case "crouch":
switch(self.var_1491.var_BCC8)
{
case "stop":
func_4AAF();
break;
case "walk":
func_2B92();
break;
default:
func_2B92();
break;
}
break;
default:
func_DA8F();
break;
}
return 1;
}
//Function Number: 5
func_10B76()
{
switch(self.var_1491.var_D6A5)
{
case "stand":
switch(self.var_1491.var_BCC8)
{
case "walk":
case "stop":
return func_2B91();
default:
return 0;
}
break;
case "crouch":
switch(self.var_1491.var_BCC8)
{
case "stop":
return func_4AAE();
default:
return func_2B91();
}
break;
default:
func_DA8E();
break;
}
return 1;
}
//Function Number: 6
func_4AA7()
{
switch(self.var_1491.var_D6A5)
{
case "stand":
switch(self.var_1491.var_BCC8)
{
case "stop":
func_10B7F();
break;
case "walk":
func_10B85();
break;
case "run":
func_10B7C();
break;
default:
break;
}
break;
case "crouch":
switch(self.var_1491.var_BCC8)
{
case "stop":
break;
case "walk":
func_4AB2();
break;
case "run":
func_4AA2();
break;
default:
break;
}
break;
case "prone":
func_DA88();
break;
default:
break;
}
}
//Function Number: 7
func_4AB1()
{
switch(self.var_1491.var_D6A5)
{
case "stand":
switch(self.var_1491.var_BCC8)
{
case "stop":
func_2B90();
break;
case "walk":
func_2B90();
break;
default:
func_2B90();
break;
}
break;
case "crouch":
switch(self.var_1491.var_BCC8)
{
case "stop":
func_4AA9();
break;
case "walk":
return 0;
default:
func_2B90();
break;
}
break;
default:
func_DA8A();
break;
}
return 1;
}
//Function Number: 8
func_4A9E()
{
switch(self.var_1491.var_D6A5)
{
case "stand":
switch(self.var_1491.var_BCC8)
{
case "stop":
func_2B8F();
break;
default:
func_2B8F();
break;
}
break;
case "crouch":
switch(self.var_1491.var_BCC8)
{
case "stop":
func_4AA8();
break;
case "walk":
func_2B8F();
break;
default:
return 0;
}
break;
default:
func_DA89();
break;
}
return 1;
}
//Function Number: 9
func_DA86()
{
switch(self.var_1491.var_D6A5)
{
case "stand":
switch(self.var_1491.var_BCC8)
{
case "stop":
func_10B80();
break;
case "walk":
func_10B80();
break;
case "run":
func_4AA3();
break;
default:
break;
}
break;
case "crouch":
switch(self.var_1491.var_BCC8)
{
case "stop":
func_4AAA();
break;
case "walk":
func_4AAA();
break;
case "run":
func_4AA3();
break;
default:
break;
}
break;
case "prone":
switch(self.var_1491.var_BCC8)
{
case "stop":
break;
case "run":
case "walk":
func_DA80();
break;
default:
break;
}
break;
default:
break;
}
}
//Function Number: 10
func_DA91()
{
switch(self.var_1491.var_D6A5)
{
case "stand":
switch(self.var_1491.var_BCC8)
{
case "stop":
func_10B82();
break;
default:
func_4AA5();
break;
}
break;
case "crouch":
switch(self.var_1491.var_BCC8)
{
case "stop":
func_4AAC();
break;
default:
func_4AA5();
break;
}
break;
default:
switch(self.var_1491.var_BCC8)
{
case "stop":
func_DA8C();
break;
default:
self.var_1491.var_BCC8 = "walk";
return 0;
}
break;
}
return 1;
}
//Function Number: 11
func_DA84()
{
switch(self.var_1491.var_D6A5)
{
case "stand":
switch(self.var_1491.var_BCC8)
{
case "stop":
func_10B81();
break;
default:
func_4AA4();
break;
}
break;
case "crouch":
switch(self.var_1491.var_BCC8)
{
case "stop":
func_4AAB();
break;
default:
func_4AA4();
break;
}
break;
default:
switch(self.var_1491.var_BCC8)
{
case "stop":
func_DA8C();
break;
default:
self.var_1491.var_BCC8 = "run";
return 0;
}
break;
}
return 1;
}
//Function Number: 12
func_CEED(param_00,param_01,param_02,param_03)
{
var_04 = gettime() + param_01 * 1000;
if(isarray(param_00))
{
param_00 = param_00[randomint(param_00.size)];
}
self method_82E3("blendTransition",param_00,%body,1,param_01,1);
scripts\anim\notetracks::func_5931(param_01 / 2,"blendTransition");
self.var_1491.var_D6A5 = param_02;
self.var_1491.var_BCC8 = param_03;
var_05 = var_04 - gettime() / 1000;
if(var_05 < 0.05)
{
var_05 = 0.05;
}
scripts\anim\notetracks::func_5931(var_05,"blendTransition");
}
//Function Number: 13
func_D557(param_00,param_01)
{
func_D554(param_00,"stand","walk",param_01);
}
//Function Number: 14
func_10B86()
{
self.var_1491.var_BCC8 = "stop";
}
//Function Number: 15
func_10B85()
{
func_10B86();
func_10B7F();
}
//Function Number: 16
func_10B7D()
{
self.var_1491.var_BCC8 = "stop";
}
//Function Number: 17
func_10B7C()
{
self.var_1491.var_BCC8 = "stop";
self.var_1491.var_D6A5 = "crouch";
}
//Function Number: 18
func_CEEE(param_00)
{
var_01 = 0.3;
if(self.var_1491.var_BCC8 != "stop")
{
self endon("movemode");
var_01 = 1;
}
func_CEED(param_00,var_01,"stand","run");
}
//Function Number: 19
func_2B91()
{
if(!self.var_12A)
{
self.var_1491.var_BCC8 = "run";
self.var_1491.var_D6A5 = "stand";
return 0;
}
if(isdefined(self.var_E80C))
{
func_CEEE(self.var_E80C);
return 1;
}
var_00 = 0.1;
if(self.var_1491.var_BCC8 != "stop" && self.var_2C0 == "none")
{
var_00 = 0.5;
}
if(isdefined(self.var_10AB7))
{
self method_82A9(scripts\anim\utility::func_7FCC("sprint"),1,var_00,1);
}
else
{
self method_82A9(scripts\anim\run::func_80FB(),1,var_00,1);
}
scripts\anim\run::func_F7A9(scripts\anim\utility::func_7FCC("move_b"),scripts\anim\utility::func_7FCC("move_l"),scripts\anim\utility::func_7FCC("move_r"),self.var_101BB);
thread scripts\anim\run::func_F69A("run");
wait(0.05);
func_CEEE(%combatrun);
return 1;
}
//Function Number: 20
func_2B92()
{
if(self.var_1491.var_BCC8 != "stop")
{
self endon("movemode");
}
if(!isdefined(self.var_1D64) && self.var_1491.var_D6A5 != "prone")
{
scripts\anim\run::func_F7A9(scripts\anim\utility::func_7FCC("move_b"),scripts\anim\utility::func_7FCC("move_l"),scripts\anim\utility::func_7FCC("move_r"));
}
self.var_1491.var_D6A5 = "stand";
self.var_1491.var_BCC8 = "walk";
}
//Function Number: 21
func_4AAD()
{
var_00 = 1;
if(isdefined(self.var_6B9F))
{
var_00 = 1.8;
self.var_6B9F = undefined;
}
if(scripts\anim\utility_common::func_9FCA())
{
return;
}
scripts\anim\utility::func_DCB7();
}
//Function Number: 22
func_4AA9()
{
func_2B90();
}
//Function Number: 23
func_4AAF()
{
func_4AA9();
func_2B92();
}
//Function Number: 24
func_4AB2()
{
self.var_1491.var_BCC8 = "stop";
}
//Function Number: 25
func_4AB3()
{
func_4AB2();
func_4AAD();
}
//Function Number: 26
func_4AA2()
{
self.var_1491.var_BCC8 = "stop";
}
//Function Number: 27
func_4AA6()
{
func_4AA2();
func_4AAD();
}
//Function Number: 28
func_4AA8()
{
func_2B8F();
}
//Function Number: 29
func_4AAE()
{
return func_2B91();
}
//Function Number: 30
func_2B8F()
{
if(isdefined(self.var_4A9F))
{
func_CEED(self.var_4A9F,0.6,"crouch","run");
return;
}
self method_82A4(%crouchrun,1,0.4,self.var_BCD6);
thread scripts\anim\run::func_12ED3("crouchrun",scripts\anim\utility::func_7FCC("crouch"),scripts\anim\utility::func_7FCC("crouch_b"),scripts\anim\utility::func_7FCC("crouch_l"),scripts\anim\utility::func_7FCC("crouch_r"));
wait(0.05);
}
//Function Number: 31
func_DA89()
{
self method_8221("face current");
scripts\anim\utility::func_697B(1);
func_DA81(0.2);
scripts\anim\cover_prone::func_12EF6(0.1);
}
//Function Number: 32
func_DA8E()
{
func_DA89();
func_2B91();
}
//Function Number: 33
func_DA8A()
{
func_DA89();
func_2B90();
}
//Function Number: 34
func_2B90()
{
if(isdefined(self.var_4A9F))
{
self method_82A5(self.var_4A9F,%body,1,0.4);
func_CEED(self.var_4A9F,0.6,"crouch","walk");
self notify("BlendIntoCrouchWalk");
return;
}
self method_82A4(%crouchrun,1,0.4,self.var_BCD6);
thread scripts\anim\run::func_12ED3("crouchrun",scripts\anim\utility::func_7FCC("crouch"),scripts\anim\utility::func_7FCC("crouch_b"),scripts\anim\utility::func_7FCC("crouch_l"),scripts\anim\utility::func_7FCC("crouch_r"));
wait(0.05);
}
//Function Number: 35
func_10B7F()
{
scripts\anim\utility::func_DCB7();
var_00 = 1;
if(isdefined(self.var_6B99))
{
var_00 = 1.8;
self.var_6B99 = undefined;
}
}
//Function Number: 36
func_DA88()
{
scripts\anim\utility::func_DCB7();
self method_8221("face current");
scripts\anim\utility::func_697B(1);
func_DA81(0.1);
scripts\anim\cover_prone::func_12EF6(0.1);
}
//Function Number: 37
func_DA8D()
{
self method_8221("face current");
scripts\anim\utility::func_697B(1);
func_DA81(0.1);
scripts\anim\cover_prone::func_12EF6(0.1);
}
//Function Number: 38
func_DA8F()
{
func_DA88();
func_4AA9();
func_2B92();
}
//Function Number: 39
func_DA8B(param_00)
{
func_DA81(0.1);
scripts\anim\cover_prone::func_12EF6(0.1);
}
//Function Number: 40
func_DA8C()
{
func_DA8B("run");
}
//Function Number: 41
func_DA80()
{
func_DA81(0.1);
scripts\anim\cover_prone::func_12EF6(0.1);
}
//Function Number: 42
func_4AAA()
{
}
//Function Number: 43
func_4AAC()
{
func_4AAA();
func_DA8C();
}
//Function Number: 44
func_4AAB()
{
func_4AAA();
func_DA8C();
}
//Function Number: 45
func_10B80()
{
}
//Function Number: 46
func_10B82()
{
func_10B80();
func_DA8C();
}
//Function Number: 47
func_10B81()
{
func_10B80();
func_DA8C();
}
//Function Number: 48
func_4AA3()
{
}
//Function Number: 49
func_4AA5()
{
func_4AA3();
func_DA8C();
}
//Function Number: 50
func_4AA4()
{
func_4AA3();
func_DA8C();
}
//Function Number: 51
func_D556(param_00,param_01,param_02,param_03,param_04)
{
self endon("killanimscript");
self endon("entered_pose" + param_01);
func_D555(param_00,param_01,param_02,param_03,param_04,0);
}
//Function Number: 52
func_D554(param_00,param_01,param_02,param_03,param_04)
{
func_D555(param_00,param_01,param_02,param_03,param_04,1);
}
//Function Number: 53
func_D555(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(!isdefined(param_04))
{
param_04 = 1;
}
if(param_05)
{
thread func_13712(getanimlength(param_00) / 2,"killtimerscript",param_01);
}
self method_82E4("transAnimDone2",param_00,%body,1,0.2,param_04);
if(!isdefined(self.var_1491.var_D6A5))
{
self.var_D6A5 = "undefined";
}
if(!isdefined(self.var_1491.var_BCC8))
{
self.var_BCC8 = "undefined";
}
var_06 = "";
scripts\anim\shared::func_592B("transAnimDone2",undefined,var_06);
self notify("killtimerscript");
self.var_1491.var_D6A5 = param_01;
self notify("entered_pose" + param_01);
self.var_1491.var_BCC8 = param_02;
if(isdefined(param_03))
{
self method_82A5(param_03,%body,1,0.3,param_04);
}
}
//Function Number: 54
func_13712(param_00,param_01,param_02)
{
self endon("killanimscript");
self endon("death");
self endon(param_01);
var_03 = self.var_1491.var_D6A5;
wait(param_00);
if(var_03 != "prone" && param_02 == "prone")
{
scripts\anim\cover_prone::func_12EF6(0.1);
scripts\anim\utility::func_662A(1);
return;
}
if(var_03 == "prone" && param_02 != "prone")
{
scripts\anim\utility::func_697B(1);
self method_8221("face default");
}
}
//Function Number: 55
func_DA81(param_00)
{
}

View File

@ -0,0 +1,890 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\shared.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 32
* Decompile Time: 1708 ms
* Timestamp: 10/27/2023 12:00:59 AM
*******************************************************************/
//Function Number: 1
func_CC2C(param_00,param_01,param_02)
{
self notify("weapon_position_change");
var_03 = self.var_39B[param_00].var_245;
if(param_01 != "none" && self.var_1491.var_13CBA[param_01] == param_00)
{
return;
}
func_5390();
if(var_03 != "none")
{
func_5398(param_00);
}
if(param_01 == "none")
{
func_12E61();
return;
}
if(self.var_1491.var_13CBA[param_01] != "none")
{
func_5398(self.var_1491.var_13CBA[param_01]);
}
if(!isdefined(param_02))
{
param_02 = 1;
}
if(param_02 && param_01 == "left" || param_01 == "right")
{
func_24AF(param_00,param_01);
self.var_394 = param_00;
}
else
{
func_24AF(param_00,param_01);
}
func_12E61();
}
//Function Number: 2
func_5398(param_00)
{
self.var_1491.var_13CBA[self.var_39B[param_00].var_245] = "none";
self.var_39B[param_00].var_245 = "none";
}
//Function Number: 3
func_24AF(param_00,param_01)
{
self.var_39B[param_00].var_245 = param_01;
self.var_1491.var_13CBA[param_01] = param_00;
if(self.var_1491.var_13CBB[param_01] != "none")
{
self notify("end_weapon_drop_" + param_01);
self.var_1491.var_13CBB[param_01] = "none";
}
}
//Function Number: 4
func_8221(param_00)
{
var_01 = self.var_1491.var_13CBA[param_00];
if(var_01 == "none")
{
return self.var_1491.var_13CBB[param_00];
}
return var_01;
}
//Function Number: 5
func_5390()
{
var_00 = [];
var_00[var_00.size] = "right";
var_00[var_00.size] = "left";
var_00[var_00.size] = "chest";
var_00[var_00.size] = "back";
self method_81D8();
foreach(var_02 in var_00)
{
var_03 = func_8221(var_02);
if(var_03 == "none")
{
continue;
}
if(function_024C(var_03) == "riotshield" && isdefined(self.var_FCA0))
{
if(isdefined(self.var_FC94) && self.var_FC94)
{
playfxontag(scripts\common\utility::getfx("riot_shield_dmg"),self,"TAG_BRASS");
self.var_FC94 = undefined;
}
}
}
self method_83CD();
}
//Function Number: 6
func_12E61()
{
var_00 = [];
var_01 = [];
var_02 = [];
var_00[var_00.size] = "right";
var_00[var_00.size] = "left";
var_00[var_00.size] = "chest";
var_00[var_00.size] = "back";
foreach(var_04 in var_00)
{
var_01[var_01.size] = func_8221(var_04);
var_02[var_02.size] = func_8193(var_04);
}
self method_83CD(var_01[0],var_02[0],var_01[1],var_02[1],var_01[2],var_02[2],var_01[3],var_02[3]);
foreach(var_04 in var_00)
{
var_07 = func_8221(var_04);
if(var_07 == "none")
{
continue;
}
if(self.var_39B[var_07].var_13053 && !self.var_39B[var_07].var_8BDE)
{
self method_8187("tag_clip");
}
}
func_12EBD();
}
//Function Number: 7
func_12EBD()
{
if(isdefined(self.var_4C5C))
{
[[ self.var_4C5C ]]();
return;
}
if(self.var_1491.var_13CBA["right"] == "none")
{
return;
}
if(func_3939())
{
self method_81D9();
return;
}
self method_81D8();
}
//Function Number: 8
func_3939()
{
if(!self.var_1491.var_A878)
{
return 0;
}
if(scripts\anim\utility_common::func_9F4F(self.var_394))
{
return 0;
}
return isalive(self);
}
//Function Number: 9
func_8193(param_00)
{
switch(param_00)
{
case "chest":
return "tag_weapon_chest";
case "back":
return "tag_stowed_back";
case "left":
return "tag_weapon_left";
case "right":
return "tag_weapon_right";
case "hand":
return "tag_accessory_right";
case "thigh":
return "tag_stowed_thigh";
default:
break;
}
}
//Function Number: 10
func_5D19(param_00)
{
if(!isdefined(param_00))
{
param_00 = self.var_394;
}
if(param_00 == "none")
{
return;
}
if(isdefined(self.var_C05C))
{
return;
}
func_5390();
var_01 = self.var_39B[param_00].var_245;
if(self.var_102 && var_01 != "none")
{
thread func_5EF5(param_00,var_01);
}
func_5398(param_00);
if(param_00 == self.var_394)
{
self.var_394 = "none";
}
func_12E61();
}
//Function Number: 11
func_5D1A()
{
if(isdefined(self.var_C05C))
{
return "none";
}
var_00 = [];
var_00[var_00.size] = "left";
var_00[var_00.size] = "right";
var_00[var_00.size] = "chest";
var_00[var_00.size] = "back";
func_5390();
foreach(var_02 in var_00)
{
var_03 = self.var_1491.var_13CBA[var_02];
if(var_03 == "none")
{
continue;
}
self.var_39B[var_03].var_245 = "none";
self.var_1491.var_13CBA[var_02] = "none";
if(self.var_102)
{
thread func_5EF5(var_03,var_02);
}
}
self.var_394 = "none";
func_12E61();
}
//Function Number: 12
func_5EF5(param_00,param_01)
{
if(self method_81B7())
{
return "none";
}
self.var_1491.var_13CBB[param_01] = param_00;
var_02 = getweaponbasename(param_00);
var_03 = getsubstr(param_00,var_02.size,param_00.size);
if(issubstr(tolower(var_02),"_ai"))
{
var_02 = getsubstr(var_02,0,var_02.size - 3);
}
var_04 = var_02 + var_03;
self method_80BA(var_04,param_01,0);
self endon("end_weapon_drop_" + param_01);
wait(0.05);
if(!isdefined(self))
{
return;
}
func_5390();
self.var_1491.var_13CBB[param_01] = "none";
func_12E61();
}
//Function Number: 13
func_592B(param_00,param_01,param_02)
{
for(;;)
{
self waittill(param_00,var_03);
if(!isdefined(var_03))
{
var_03 = ["undefined"];
}
if(!isarray(var_03))
{
var_03 = [var_03];
}
scripts\anim\utility::func_13142(param_00,var_03);
foreach(var_05 in var_03)
{
var_06 = scripts\anim\notetracks::func_89CB(var_05,param_00,param_01);
if(isdefined(var_06))
{
return var_06;
}
}
}
}
//Function Number: 14
func_7DA8()
{
if(!isdefined(self.var_FE9E))
{
if(!isdefined(self.var_FECF))
{
return 0;
}
return scripts\common\utility::func_7DA7(self.var_FECF);
}
return scripts\common\utility::func_7DA7(self.var_FE9E method_815B());
}
//Function Number: 15
func_7DA5()
{
var_00 = func_8064();
if(self.script == "cover_crouch" && isdefined(self.var_1491.var_4727) && self.var_1491.var_4727 == "lean")
{
var_00 = var_00 - level.var_4717;
}
return var_00;
}
//Function Number: 16
func_8064()
{
if(!isdefined(self.var_FE9E))
{
if(!isdefined(self.var_FECF))
{
return 0;
}
return scripts\anim\combat_utility::func_8065(self.var_FECF);
}
return scripts\anim\combat_utility::func_8065(self.var_FE9E method_815B());
}
//Function Number: 17
func_811C()
{
if(scripts\common\utility::func_167E())
{
return self geteye();
}
if(isdefined(self.var_130A9) && self.var_130A9)
{
var_00 = self method_8143();
if(isdefined(self.var_130A8))
{
return var_00;
}
return (var_00[0],var_00[1],self geteye()[2]);
}
return (self.origin[0],self.origin[1],self geteye()[2]);
}
//Function Number: 18
func_DC59(param_00)
{
self endon("killanimscript");
func_DC5A(param_00);
}
//Function Number: 19
func_DC5A(param_00)
{
self endon("rambo_aim_end");
waittillframeend;
var_01 = 0.2;
var_02 = 0;
for(;;)
{
if(isdefined(self.var_FECF))
{
var_03 = scripts\common\utility::func_8246(self.var_FECF) - self.var_473C.angles[1];
var_03 = angleclamp180(var_03 - param_00);
if(abs(var_03 - var_02) > 10)
{
if(var_03 > var_02)
{
var_03 = var_02 + 10;
}
else
{
var_03 = var_02 - 10;
}
}
var_02 = var_03;
}
if(var_02 < 0)
{
var_04 = var_02 / -45;
if(var_04 > 1)
{
var_04 = 1;
}
}
else
{
var_04 = var_02 / 45;
if(var_04 > 1)
{
var_04 = 1;
}
}
wait(var_01);
}
}
//Function Number: 20
func_4F65()
{
var_00 = 0;
var_01 = function_023C(self.var_394);
if(var_01)
{
var_00 = var_01;
}
else if(scripts\anim\weaponlist::func_1311D())
{
var_00 = level.var_F217[randomint(level.var_F217.size)];
}
else if(self.var_6B92)
{
var_00 = level.var_6B93[randomint(level.var_6B93.size)];
}
else
{
var_00 = level.var_32BF[randomint(level.var_32BF.size)];
}
if(var_00 <= self.var_3250)
{
return var_00;
}
if(self.var_3250 <= 0)
{
return 1;
}
return self.var_3250;
}
//Function Number: 21
func_4F66()
{
var_00 = self.var_3250;
if(weaponclass(self.var_394) == "mg")
{
var_01 = randomfloat(10);
if(var_01 < 3)
{
var_00 = randomintrange(2,6);
}
else if(var_01 < 8)
{
var_00 = randomintrange(6,12);
}
else
{
var_00 = randomintrange(12,20);
}
}
return var_00;
}
//Function Number: 22
func_8996(param_00)
{
self endon("abort_reload");
self endon(param_00 + "_finished");
var_01 = self.var_394;
var_02 = undefined;
if(self.var_39B[self.var_394].var_13053)
{
var_02 = function_00E6(self.var_394);
}
if(self.var_39B[self.var_394].var_8BDE)
{
if(scripts\anim\utility_common::func_9FCA())
{
self playsound("weap_reload_pistol_clipout_npc");
}
else
{
self playsound("weap_reload_smg_clipout_npc");
}
if(isdefined(var_02))
{
self method_8187("tag_clip");
thread func_5D25(var_02,"tag_clip");
self.var_39B[self.var_394].var_8BDE = 0;
}
}
var_03 = 0;
while(!var_03)
{
self waittill(param_00,var_04);
if(!isarray(var_04))
{
var_04 = [var_04];
}
foreach(var_06 in var_04)
{
switch(var_06)
{
case "attach clip left":
if(isdefined(var_02))
{
self attach(var_02,"tag_accessory_left");
if(!self.var_39B[self.var_394].var_8BDE)
{
self method_8187("tag_clip");
}
}
scripts\anim\weaponlist::func_DE4D();
break;
case "attach clip right":
if(isdefined(var_02))
{
self attach(var_02,"tag_accessory_right");
if(!self.var_39B[self.var_394].var_8BDE)
{
self method_8187("tag_clip");
}
}
scripts\anim\weaponlist::func_DE4D();
break;
case "detach clip nohand":
if(isdefined(var_02))
{
self detach(var_02,"tag_accessory_right");
}
break;
case "detach clip right":
if(isdefined(var_02))
{
self detach(var_02,"tag_accessory_right");
if(var_01 == self.var_394)
{
self method_8387("tag_clip");
}
else
{
self.var_39B[var_01].var_8BDE = 1;
}
self notify("clip_detached");
self.var_39B[self.var_394].var_8BDE = 1;
}
if(scripts\anim\utility_common::func_9FCA())
{
self playsound("weap_reload_pistol_clipin_npc");
}
else
{
self playsound("weap_reload_smg_clipin_npc");
}
self.var_1491.var_BE98 = 0;
var_03 = 1;
break;
case "detach clip left":
if(isdefined(var_02))
{
self detach(var_02,"tag_accessory_left");
if(var_01 == self.var_394)
{
self method_8387("tag_clip");
}
else
{
self.var_39B[var_01].var_8BDE = 1;
}
self notify("clip_detached");
self.var_39B[self.var_394].var_8BDE = 1;
}
if(scripts\anim\utility_common::func_9FCA())
{
self playsound("weap_reload_pistol_clipin_npc");
}
else
{
self playsound("weap_reload_smg_clipin_npc");
}
self.var_1491.var_BE98 = 0;
var_03 = 1;
break;
}
}
}
}
//Function Number: 23
func_E24C(param_00,param_01)
{
self notify("clip_detached");
self endon("clip_detached");
scripts\common\utility::waittill_any_3("killanimscript","abort_reload");
if(!isdefined(self))
{
return;
}
if(isdefined(param_01))
{
self detach(param_00,param_01);
}
if(isalive(self))
{
if(self.var_394 != "none" && self.var_39B[self.var_394].var_245 != "none")
{
self method_8387("tag_clip");
}
self.var_39B[self.var_394].var_8BDE = 1;
return;
}
if(isdefined(param_01))
{
func_5D25(param_00,param_01);
}
}
//Function Number: 24
func_5D25(param_00,param_01)
{
var_02 = spawn("script_model",self gettagorigin(param_01));
var_02 setmodel(param_00);
var_02.angles = self gettagangles(param_01);
wait(0.05);
var_02 physicslaunchclient(var_02.origin,(0,0,-0.1));
wait(10);
if(isdefined(var_02))
{
var_02 delete();
}
}
//Function Number: 25
func_BD1D(param_00,param_01)
{
self endon("killanimscript");
var_02 = param_00.origin;
var_03 = distancesquared(self.origin,var_02);
if(var_03 < 1)
{
self method_8272(var_02);
return;
}
if(var_03 > 256 && !self method_8200(var_02,!scripts\common\utility::func_167E()))
{
return;
}
self.var_1A4 = 1;
var_04 = distance(self.origin,var_02);
var_05 = int(param_01 * 20);
for(var_06 = 0;var_06 < var_05;var_06++)
{
var_02 = param_00.origin;
var_07 = self.origin - var_02;
var_07 = vectornormalize(var_07);
var_08 = var_02 + var_07 * var_04;
var_09 = var_08 + var_02 - var_08 * var_06 + 1 / var_05;
self method_8272(var_09);
wait(0.05);
}
self.var_1A4 = 0;
}
//Function Number: 26
func_E47B()
{
return 1;
}
//Function Number: 27
func_D4C2(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = ::func_E47B;
}
for(var_03 = 0;var_03 < param_01 * 10;var_03++)
{
if(isalive(self.var_10C))
{
if(scripts\anim\utility_common::func_3907() && [[ param_02 ]]())
{
return;
}
}
if(scripts\anim\utility_common::func_9F8F() && [[ param_02 ]]())
{
return;
}
self method_82A5(param_00,%body,1,0.1);
wait(0.1);
}
}
//Function Number: 28
func_1180E(param_00)
{
self endon("killanimscript");
func_CC2C(self.var_F0C4,"right");
scripts\sp\_gameskill::func_54C4();
}
//Function Number: 29
func_E775()
{
var_00 = func_E777();
if(var_00 == 0)
{
return;
}
self endon("death");
for(;;)
{
level waittill("an_enemy_shot",var_01);
if(var_01 != self)
{
continue;
}
if(!isdefined(var_01.var_10C))
{
continue;
}
if(var_01.var_10C != level.player)
{
continue;
}
if(isdefined(level.var_4A0A) && level.var_4A0A == 0)
{
continue;
}
thread func_E776();
var_00--;
if(var_00 <= 0)
{
return;
}
}
}
//Function Number: 30
func_E777()
{
var_00 = scripts\sp\_utility::func_7E72();
switch(var_00)
{
case "gimp":
case "easy":
return 2;
case "difficult":
case "hard":
case "medium":
return 1;
case "fu":
return 0;
}
return 2;
}
//Function Number: 31
func_E776()
{
var_00 = missile_createrepulsorent(level.player,5000,800);
wait(4);
missile_deleteattractor(var_00);
}
//Function Number: 32
func_CB29()
{
if(isdefined(self.var_13CAE) && self.var_13CAE)
{
return;
}
if(scripts\common\utility::func_13D90(level.player.origin,level.player getplayerangles(),self.origin,0.173648))
{
return;
}
if(distancesquared(self.origin,self.var_10C.origin) < self.var_42AE * self.var_42AE)
{
var_00 = self.var_72BB;
}
else
{
var_00 = self.var_72BC;
}
if(var_00 != self.var_394)
{
scripts\sp\_utility::func_72EC(var_00,"primary");
self.var_13C4D setmodel(function_00EA(self.var_72BA));
self.var_72BA = var_00;
}
}

View File

@ -0,0 +1,715 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\shoot_behavior.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 26
* Decompile Time: 1266 ms
* Timestamp: 10/27/2023 12:01:01 AM
*******************************************************************/
//Function Number: 1
func_4F69(param_00)
{
self endon("killanimscript");
self notify("stop_deciding_how_to_shoot");
self endon("stop_deciding_how_to_shoot");
self endon("death");
scripts\sp\_gameskill::func_E259();
self.var_FECA = param_00;
self.var_FE9E = undefined;
self.var_FECF = undefined;
self.var_FED7 = "none";
self.var_6B92 = 0;
self.var_1006D = undefined;
if(!isdefined(self.var_3C60))
{
self.var_3C60 = 0;
}
var_01 = isdefined(self.var_473C) && self.var_473C.type != "Cover Prone" && self.var_473C.type != "Conceal Prone";
if(var_01)
{
wait(0.05);
}
var_02 = self.var_FE9E;
var_03 = self.var_FECF;
var_04 = self.var_FED7;
if(!isdefined(self.var_8B95))
{
self.var_1491.var_A878 = 1;
scripts\anim\shared::func_12EBD();
}
if(scripts\anim\utility_common::func_9D4D())
{
func_E26D();
}
if(var_01 && !self.var_1491.var_2411 || !scripts\anim\utility_common::func_3907())
{
thread func_13A46();
}
thread func_E883();
self.var_1E2B = undefined;
for(;;)
{
if(isdefined(self.var_FED1))
{
if(!isdefined(self.var_10C))
{
self.var_FECF = self.var_FED1;
self.var_FED1 = undefined;
func_13696();
}
else
{
self.var_FED1 = undefined;
}
}
var_05 = undefined;
if(self.var_394 == "none")
{
func_C064();
}
else if(scripts\anim\utility_common::func_1311B())
{
var_05 = func_E778();
}
else if(scripts\anim\utility_common::func_9FCA())
{
var_05 = func_CBE2();
}
else
{
var_05 = func_E501();
}
if(isdefined(self.var_1491.var_1096D))
{
[[ self.var_1491.var_1096D ]]();
}
if(func_3DFB(var_02,self.var_FE9E) || !isdefined(self.var_FE9E) && func_3DFB(var_03,self.var_FECF) || func_3DFB(var_04,self.var_FED7))
{
self notify("shoot_behavior_change");
}
var_02 = self.var_FE9E;
var_03 = self.var_FECF;
var_04 = self.var_FED7;
if(!isdefined(var_05))
{
func_13696();
}
}
}
//Function Number: 2
func_13696()
{
self endon("enemy");
self endon("done_changing_cover_pos");
self endon("weapon_position_change");
self endon("enemy_visible");
if(isdefined(self.var_FE9E))
{
self.var_FE9E endon("death");
self endon("do_slow_things");
wait(0.05);
while(isdefined(self.var_FE9E))
{
self.var_FECF = self.var_FE9E method_815B();
wait(0.05);
}
return;
}
self waittill("do_slow_things");
}
//Function Number: 3
func_C064()
{
self.var_FE9E = undefined;
self.var_FECF = undefined;
self.var_FED7 = "none";
self.var_FECA = "normal";
}
//Function Number: 4
func_100A4()
{
return !scripts\anim\utility_common::func_9D4D() && !scripts\anim\utility_common::func_9F4F(self.var_394);
}
//Function Number: 5
func_E503()
{
if(!scripts\anim\utility_common::func_10077())
{
if(scripts\anim\utility_common::func_9D4D())
{
func_E26D();
}
if(self.var_FC)
{
self.var_FECA = "ambush";
return "retry";
}
if(!isdefined(self.var_10C))
{
func_8C4D();
return;
}
func_B376();
if((self.var_251 || randomint(5) > 0) && func_100A4())
{
self.var_FECA = "suppress";
}
else
{
self.var_FECA = "ambush";
}
return "retry";
}
func_F83F();
func_F842();
}
//Function Number: 6
func_E504(param_00)
{
if(!param_00)
{
func_8C4D();
return;
}
self.var_FE9E = undefined;
self.var_FECF = scripts\anim\utility::func_7E90();
func_F841();
}
//Function Number: 7
func_E502(param_00)
{
self.var_FED7 = "none";
self.var_FE9E = undefined;
if(!param_00)
{
func_7DB9();
if(func_1009A())
{
self.var_1E2B = undefined;
self notify("return_to_cover");
self.var_1006D = 1;
return;
}
return;
}
self.var_FECF = scripts\anim\utility::func_7E90();
if(func_1009A())
{
self.var_1E2B = undefined;
if(func_100A4())
{
self.var_FECA = "suppress";
}
if(randomint(3) == 0)
{
self notify("return_to_cover");
self.var_1006D = 1;
}
return "retry";
}
}
//Function Number: 8
func_7DB9()
{
if(isdefined(self.var_10C) && self method_805F(self.var_10C))
{
func_F83F();
return;
}
var_00 = self method_80FC();
if(!isdefined(var_00))
{
if(isdefined(self.var_473C))
{
var_00 = self.var_473C.angles;
}
else if(isdefined(self.var_1E2C))
{
var_00 = self.var_1E2C.angles;
}
else if(isdefined(self.var_10C))
{
var_00 = vectortoangles(self lastknownpos(self.var_10C) - self.origin);
}
else
{
var_00 = self.angles;
}
}
var_01 = 1024;
if(isdefined(self.var_10C))
{
var_01 = distance(self.origin,self.var_10C.origin);
}
var_02 = self geteye() + anglestoforward(var_00) * var_01;
if(!isdefined(self.var_FECF) || distancesquared(var_02,self.var_FECF) > 25)
{
self.var_FECF = var_02;
}
}
//Function Number: 9
func_E501()
{
if(self.var_FECA == "normal")
{
func_E503();
}
else
{
if(scripts\anim\utility_common::func_10077())
{
self.var_FECA = "normal";
self.var_1E2B = undefined;
return "retry";
}
func_B376();
if(scripts\anim\utility_common::func_9D4D())
{
func_E26D();
}
var_00 = scripts\anim\utility_common::func_3917();
if(self.var_FECA == "suppress" || self.team == "allies" && !isdefined(self.var_10C) && !var_00)
{
func_E504(var_00);
}
else
{
func_E502(var_00);
}
}
}
//Function Number: 10
func_1009A()
{
if(!isdefined(self.var_1E2B))
{
if(self method_8198())
{
self.var_1E2B = gettime() + randomintrange(10000,-5536);
}
else
{
self.var_1E2B = gettime() + randomintrange(4000,10000);
}
}
return self.var_1E2B < gettime();
}
//Function Number: 11
func_E778()
{
if(!scripts\anim\utility_common::func_10077())
{
func_B376();
func_8C4D();
return;
}
func_F83F();
func_F840("single",0);
var_00 = lengthsquared(self.origin - self.var_FECF);
if(var_00 < squared(512))
{
self notify("return_to_cover");
self.var_1006D = 1;
}
}
//Function Number: 12
func_CBE2()
{
if(self.var_FECA == "normal")
{
if(!scripts\anim\utility_common::func_10077())
{
if(!isdefined(self.var_10C))
{
func_8C4D();
return;
}
func_B376();
self.var_FECA = "ambush";
return "retry";
}
func_F83F();
func_F840("single",0);
return;
}
if(scripts\anim\utility_common::func_10077())
{
self.var_FECA = "normal";
self.var_1E2B = undefined;
return "retry";
}
func_B376();
self.var_FE9E = undefined;
self.var_FED7 = "none";
self.var_FECF = scripts\anim\utility::func_7E90();
if(!isdefined(self.var_1E2B))
{
self.var_1E2B = gettime() + randomintrange(4000,8000);
}
if(self.var_1E2B < gettime())
{
self.var_FECA = "normal";
self.var_1E2B = undefined;
return "retry";
}
}
//Function Number: 13
func_B376()
{
if(isdefined(self.var_10C) && !self.var_3C60 && self.script != "combat")
{
if(isai(self.var_10C) && isdefined(self.var_10C.script) && self.var_10C.script == "cover_stand" || self.var_10C.script == "cover_crouch")
{
if(isdefined(self.var_10C.var_1491.var_4727) && self.var_10C.var_1491.var_4727 == "hide")
{
return;
}
}
self.var_46A6 = self.var_10C.origin;
}
}
//Function Number: 14
func_13A46()
{
self endon("killanimscript");
self endon("stop_deciding_how_to_shoot");
for(;;)
{
self waittill("suppression");
if(self.var_2D5 > self.var_112CE)
{
if(func_DD7D())
{
self notify("return_to_cover");
self.var_1006D = 1;
}
}
}
}
//Function Number: 15
func_DD7D()
{
if(self.var_3C60)
{
return 0;
}
if(!isdefined(self.var_10C) || !self method_805F(self.var_10C))
{
return 1;
}
if(gettime() < self.var_4740 + 800)
{
return 0;
}
if(isplayer(self.var_10C) && self.var_10C.health < self.var_10C.maxhealth * 0.5)
{
if(gettime() < self.var_4740 + 3000)
{
return 0;
}
}
return 1;
}
//Function Number: 16
func_E883()
{
self endon("death");
scripts\common\utility::waittill_any_3("killanimscript","stop_deciding_how_to_shoot");
self.var_1491.var_A878 = 0;
scripts\anim\shared::func_12EBD();
}
//Function Number: 17
func_3DFB(param_00,param_01)
{
if(isdefined(param_00) != isdefined(param_01))
{
return 1;
}
if(!isdefined(param_01))
{
return 0;
}
return param_00 != param_01;
}
//Function Number: 18
func_F83F()
{
self.var_FE9E = self.var_10C;
self.var_FECF = self.var_FE9E method_815B();
}
//Function Number: 19
func_8C4D()
{
self.var_FE9E = undefined;
self.var_FECF = undefined;
self.var_FED7 = "none";
if(self.var_FC)
{
self.var_FECA = "ambush";
}
if(!self.var_3C60)
{
self notify("return_to_cover");
self.var_1006D = 1;
}
}
//Function Number: 20
func_FFC6()
{
return level.var_7683 == 3 && isplayer(self.var_10C);
}
//Function Number: 21
func_F842()
{
if(isdefined(self.var_FE9E.var_10C) && isdefined(self.var_FE9E.var_10C.var_2DC))
{
return func_F840("single",0);
}
if(scripts\anim\utility_common::func_9D4D())
{
return func_F840("single",0);
}
if(scripts\anim\utility_common::func_9F4F(self.var_394))
{
if(scripts\anim\utility_common::func_13C40())
{
return func_F840("single",0);
}
else
{
return func_F840("semi",0);
}
}
if(weaponclass(self.var_394) == "grenade")
{
return func_F840("single",0);
}
if(function_023C(self.var_394) > 0)
{
return func_F840("burst",0);
}
if(isdefined(self.var_A4A3) && self.var_A4A3)
{
return func_F840("full",1);
}
var_00 = distancesquared(self method_815B(),self.var_FECF);
var_01 = weaponclass(self.var_394) == "mg";
if(self.var_251 && var_01)
{
return func_F840("full",0);
}
if(var_00 < -3036)
{
if(isdefined(self.var_FE9E) && isdefined(self.var_FE9E.var_B14F))
{
return func_F840("single",0);
}
else
{
return func_F840("full",0);
}
}
else if(var_00 < 810000 || func_FFC6())
{
if(function_0248(self.var_394) || func_FFF6())
{
return func_F840("semi",1);
}
else
{
return func_F840("burst",1);
}
}
else if(self.var_251 || var_01 || var_00 < 2560000)
{
if(func_FFF6())
{
return func_F840("semi",0);
}
else
{
return func_F840("burst",0);
}
}
return func_F840("single",0);
}
//Function Number: 22
func_F841()
{
var_00 = distancesquared(self method_815B(),self.var_FECF);
if(function_0248(self.var_394))
{
if(var_00 < 2560000)
{
return func_F840("semi",0);
}
return func_F840("single",0);
}
if(weaponclass(self.var_394) == "mg")
{
return func_F840("full",0);
}
if(self.var_251 || var_00 < 2560000)
{
if(func_FFF6())
{
return func_F840("semi",0);
}
else
{
return func_F840("burst",0);
}
}
return func_F840("single",0);
}
//Function Number: 23
func_F840(param_00,param_01)
{
self.var_FED7 = param_00;
self.var_6B92 = param_01;
}
//Function Number: 24
func_FFF6()
{
if(weaponclass(self.var_394) != "rifle")
{
return 0;
}
if(self.team != "allies")
{
return 0;
}
var_00 = scripts\anim\utility_common::func_EA26(int(self.origin[1]),10000) + 2000;
var_01 = int(self.origin[0]) + gettime();
return var_01 % 2 * var_00 > var_00;
}
//Function Number: 25
func_E26D()
{
self.var_103BF = 0;
self.var_103BA = 0;
thread func_103A7();
}
//Function Number: 26
func_103A7()
{
self endon("killanimscript");
self endon("enemy");
self endon("return_to_cover");
self notify("new_glint_thread");
self endon("new_glint_thread");
if(isdefined(self.var_5583) && self.var_5583)
{
return;
}
if(!isdefined(level._effect["sniper_glint"]))
{
return;
}
if(!isalive(self.var_10C))
{
return;
}
var_00 = scripts\common\utility::getfx("sniper_glint");
wait(0.2);
for(;;)
{
if(self.var_394 == self.var_D8E1 && scripts\anim\combat_utility::func_D285())
{
if(distancesquared(self.origin,self.var_10C.origin) > 65536)
{
playfxontag(var_00,self,"tag_flash");
}
var_01 = randomfloatrange(3,5);
wait(var_01);
}
wait(0.2);
}
}

View File

@ -0,0 +1,918 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\snowmobile.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 32
* Decompile Time: 1529 ms
* Timestamp: 10/27/2023 12:01:03 AM
*******************************************************************/
//Function Number: 1
main()
{
self.var_4B71 = "none";
self.var_FE91 = undefined;
func_103C8();
if(isdefined(self.var_5BD6))
{
func_B1C3();
return;
}
func_B213();
}
//Function Number: 2
func_103C8()
{
self.var_163 = 0;
self.var_1491.var_D6A5 = "crouch";
scripts\sp\_utility::func_558D();
self.allowpain = 0;
self.var_6EC4 = 1;
self.var_8020 = ::func_103C7;
self.var_10957 = ::func_103CF;
self.var_55B5 = 1;
}
//Function Number: 3
func_103C7()
{
self.allowpain = 1;
self.var_6EC4 = 0;
scripts\sp\_utility::func_86E2();
self.var_C59B = undefined;
self.var_8020 = undefined;
self.var_10957 = undefined;
self.var_1491.var_1096D = undefined;
self.var_55B5 = undefined;
}
//Function Number: 4
func_B1C3()
{
var_00 = self.var_E500.var_5BCB || self.var_E500.var_E4FB.size == 1;
func_103D4(var_00);
if(var_00)
{
scripts\anim\shared::func_CC2C(self.var_D8E1,"left");
self.var_268 = -90;
self.var_1B7 = 90;
scripts\anim\track::func_F641(1,0.2);
thread func_103D9();
thread func_103CB();
}
else
{
scripts\anim\shared::func_CC2C(self.var_D8E1,"none");
thread func_103CA();
}
func_103C9("driver");
}
//Function Number: 5
func_B213()
{
func_103D5(self.var_E500.var_C93B);
if(self.var_E500.var_C93B)
{
self.var_268 = -180;
self.var_1B7 = 180;
self.var_54DB = 1;
scripts\anim\track::func_F641(1,0.2);
thread func_103DA();
thread func_103CD();
}
else
{
thread func_103CC();
}
func_103C9("passenger");
}
//Function Number: 6
func_103CA()
{
self endon("death");
self endon("killanimscript");
var_00 = "left2right";
var_01 = [];
var_01["left2right"] = getanimlength(scripts\anim\utility::func_1F64("left2right"));
var_01["right2left"] = getanimlength(scripts\anim\utility::func_1F64("right2left"));
self method_82A5(%sm_turn,%body,1,0);
self method_82A2(scripts\anim\utility::func_1F64("drive"),1,0);
self method_82A4(scripts\anim\utility::func_1F64(var_00),1,0);
self method_82B0(scripts\anim\utility::func_1F64(var_00),0.5);
for(;;)
{
if(self.var_E500.var_10F83)
{
var_02 = 0.5 * 1 + scripts\sp\_vehicle_code::func_12E33(self.var_E500);
var_03 = self method_8102(scripts\anim\utility::func_1F64(var_00));
if(var_00 == "right2left")
{
var_03 = 1 - var_03;
}
var_04 = 20 * abs(var_03 - var_02);
if(var_03 < var_02)
{
var_00 = "left2right";
var_04 = var_04 * var_01["left2right"];
}
else
{
var_00 = "right2left";
var_04 = var_04 * var_01["right2left"];
var_03 = 1 - var_03;
}
}
else
{
var_00 = "left2right";
var_04 = 0;
var_03 = 0.5;
}
self method_82A9(scripts\anim\utility::func_1F64(var_00),1,0.1,var_04);
self method_82B0(scripts\anim\utility::func_1F64(var_00),var_03);
wait(0.05);
}
}
//Function Number: 7
func_103CC()
{
self endon("death");
self endon("killanimscript");
self method_82A5(scripts\anim\utility::func_1F64("hide"),%body,1,0);
self method_82A4(scripts\anim\utility::func_1F64("drive"),1,0);
for(;;)
{
var_00 = scripts\sp\_vehicle_code::func_12E33(self.var_E500);
self method_82AC(%sm_lean,abs(var_00),0.05);
if(var_00 >= 0)
{
self method_82A9(scripts\anim\utility::func_1F64("lean_right"),1,0.05);
}
else
{
self method_82A9(scripts\anim\utility::func_1F64("lean_left"),1,0.05);
}
wait(0.05);
}
}
//Function Number: 8
func_103CB()
{
self endon("death");
self endon("killanimscript");
var_00 = 0.05;
var_01 = 0;
self method_82A5(%sm_aiming,%body,1,0);
self method_82A4(scripts\anim\utility::func_1F64("idle"),1,0);
for(;;)
{
if(self.var_4B71 != "none")
{
self waittill("snowmobile_event_finished");
continue;
}
var_02 = scripts\sp\_vehicle_code::func_12E33(self.var_E500);
var_03 = 1 - abs(var_02);
var_04 = max(0,0 - var_02);
var_05 = max(0,var_02);
self method_82AC(scripts\anim\utility::func_1F64("straight_level_center"),var_03,var_00);
self method_82AC(scripts\anim\utility::func_1F64("straight_level_left"),var_04,var_00);
self method_82AC(scripts\anim\utility::func_1F64("straight_level_right"),var_05,var_00);
if(self.var_3250 <= 0)
{
scripts\anim\weaponlist::func_DE4D();
var_01 = gettime() + 3000;
}
if(var_01 <= gettime())
{
func_103D7();
}
self method_82A9(scripts\anim\utility::func_1F64("add_aim_left_center"),var_03,var_00);
self method_82AC(scripts\anim\utility::func_1F64("add_aim_left_left"),var_04,var_00);
self method_82AC(scripts\anim\utility::func_1F64("add_aim_left_right"),var_05,var_00);
self method_82A9(scripts\anim\utility::func_1F64("add_aim_right_center"),var_03,var_00);
self method_82AC(scripts\anim\utility::func_1F64("add_aim_right_left"),var_04,var_00);
self method_82AC(scripts\anim\utility::func_1F64("add_aim_right_right"),var_05,var_00);
thread func_103D8();
wait(0.05);
}
}
//Function Number: 9
func_103CD()
{
self endon("death");
self endon("killanimscript");
var_00 = 0.05;
self method_82A5(%sm_aiming,%body,1,0);
self method_82A4(scripts\anim\utility::func_1F64("idle"),1,0);
for(;;)
{
if(self.var_4B71 != "none")
{
self waittill("snowmobile_event_finished");
continue;
}
if(func_103D1())
{
continue;
}
var_01 = scripts\sp\_vehicle_code::func_12E33(self.var_E500);
var_02 = 1 - abs(var_01);
var_03 = max(0,0 - var_01);
var_04 = max(0,var_01);
self method_82AC(scripts\anim\utility::func_1F64("straight_level_center"),var_02,var_00);
self method_82AC(scripts\anim\utility::func_1F64("straight_level_left"),var_03,var_00);
self method_82AC(scripts\anim\utility::func_1F64("straight_level_right"),var_04,var_00);
func_103D7();
self method_82AC(scripts\anim\utility::func_1F64("aim_left_center"),var_02,var_00);
self method_82AC(scripts\anim\utility::func_1F64("aim_left_left"),var_03,var_00);
self method_82AC(scripts\anim\utility::func_1F64("aim_left_right"),var_04,var_00);
self method_82AC(scripts\anim\utility::func_1F64("aim_right_center"),var_02,var_00);
self method_82AC(scripts\anim\utility::func_1F64("aim_right_left"),var_03,var_00);
self method_82AC(scripts\anim\utility::func_1F64("aim_right_right"),var_04,var_00);
self method_82AC(scripts\anim\utility::func_1F64("add_aim_backleft_center"),var_02,var_00);
self method_82AC(scripts\anim\utility::func_1F64("add_aim_backleft_left"),var_03,var_00);
self method_82AC(scripts\anim\utility::func_1F64("add_aim_backleft_right"),var_04,var_00);
self method_82AC(scripts\anim\utility::func_1F64("add_aim_backright_center"),var_02,var_00);
self method_82AC(scripts\anim\utility::func_1F64("add_aim_backright_left"),var_03,var_00);
self method_82AC(scripts\anim\utility::func_1F64("add_aim_backright_right"),var_04,var_00);
if(isplayer(self.var_10C))
{
self method_83CE();
}
wait(0.05);
thread func_103D8();
}
}
//Function Number: 10
func_103C5(param_00)
{
self endon("death");
self.var_E500.var_10F83 = 0;
self method_82E6("snowmobile_event",param_00,1,0.17);
scripts\anim\shared::func_592B("snowmobile_event",::func_103DD);
self method_82A9(scripts\anim\utility::func_1F64("event_restore"),1,0.1);
self.var_E500.var_10F83 = 1;
self.var_4B71 = "none";
self notify("snowmobile_event_finished");
}
//Function Number: 11
func_103C9(param_00)
{
self endon("death");
self endon("killanimscript");
var_01 = self.var_E500;
for(;;)
{
if(var_01.var_67E5["jump"][param_00])
{
var_01.var_67E5["jump"][param_00] = 0;
self notify("snowmobile_event_occurred");
self.var_4B71 = "jump";
var_01.var_10F83 = 0;
self method_82E6("jump",scripts\anim\utility::func_1F64("event_jump"),1,0.17);
}
if(var_01.var_67E5["bump"][param_00])
{
var_01.var_67E5["bump"][param_00] = 0;
self notify("snowmobile_event_occurred");
if(self.var_4B71 != "bump_big")
{
thread func_103C5(scripts\anim\utility::func_1F64("event_bump"));
}
}
if(var_01.var_67E5["bump_big"][param_00])
{
var_01.var_67E5["bump_big"][param_00] = 0;
self notify("snowmobile_event_occurred");
self.var_4B71 = "bump_big";
thread func_103C5(scripts\anim\utility::func_1F64("event_bump_big"));
}
if(var_01.var_67E5["sway_left"][param_00])
{
var_01.var_67E5["sway_left"][param_00] = 0;
self notify("snowmobile_event_occurred");
if(self.var_4B71 != "bump_big")
{
thread func_103C5(scripts\anim\utility::func_1F64("event_sway")["left"]);
}
}
if(var_01.var_67E5["sway_right"][param_00])
{
var_01.var_67E5["sway_right"][param_00] = 0;
self notify("snowmobile_event_occurred");
if(self.var_4B71 != "bump_big")
{
thread func_103C5(scripts\anim\utility::func_1F64("event_sway")["right"]);
}
}
wait(0.05);
}
}
//Function Number: 12
func_103D7()
{
self notify("want_shoot_while_driving");
self method_82A2(%sm_add_fire,1,0.2);
if(isdefined(self.var_FE91))
{
return;
}
self.var_FE91 = 1;
thread func_103C3();
thread func_103D6();
}
//Function Number: 13
func_103D8()
{
self endon("killanimscript");
self endon("want_shoot_while_driving");
wait(0.05);
self notify("end_shoot_while_driving");
self.var_FE91 = undefined;
self method_806F(%sm_add_fire,0.2);
}
//Function Number: 14
func_103C3()
{
self endon("killanimscript");
self endon("end_shoot_while_driving");
self.var_1491.var_1096D = ::func_103DE;
func_103C4();
self.var_FE91 = undefined;
}
//Function Number: 15
func_103C4()
{
self endon("snowmobile_event_occurred");
scripts\anim\shoot_behavior::func_4F69("normal");
}
//Function Number: 16
func_103DE()
{
if(!isdefined(self.var_10C))
{
self.var_FE9E = undefined;
self.var_FECF = undefined;
self.var_FED7 = "none";
return;
}
self.var_FE9E = self.var_10C;
self.var_FECF = self.var_10C method_815B();
var_00 = distancesquared(self.origin,self.var_10C.origin);
if(var_00 < 1000000)
{
self.var_FED7 = "full";
}
else if(var_00 < 4000000)
{
self.var_FED7 = "burst";
}
else
{
self.var_FED7 = "single";
}
if(isdefined(self.var_10C.var_131A0))
{
var_01 = 0.5;
var_02 = self.var_FE9E.var_131A0;
var_03 = self.var_E500;
var_04 = var_03.origin - var_02.origin;
var_05 = anglestoforward(var_02.angles);
var_06 = anglestoright(var_02.angles);
var_07 = vectordot(var_04,var_05);
if(var_07 < 0)
{
var_08 = var_02 method_83DD() * var_01;
var_08 = var_08 * 17.6;
if(var_08 > 50)
{
var_09 = vectordot(var_04,var_06);
var_09 = var_09 / 3;
if(var_09 > 128)
{
var_09 = 128;
}
else if(var_09 < -128)
{
var_09 = -128;
}
if(var_09 > 0)
{
var_09 = 128 - var_09;
}
else
{
var_09 = -128 - var_09;
}
self.var_FE9E = undefined;
self.var_FECF = var_02.origin + var_08 * var_05 + var_09 * var_06;
return;
}
}
}
}
//Function Number: 17
func_103D6()
{
self endon("killanimscript");
self endon("end_shoot_while_driving");
self notify("doing_shootWhileDriving");
self endon("doing_shootWhileDriving");
for(;;)
{
if(!self.var_3250)
{
wait(0.5);
continue;
}
scripts\anim\combat_utility::func_FEDF();
}
}
//Function Number: 18
func_103D1()
{
if(!self.var_E500.var_10F83)
{
return 0;
}
if(!scripts\anim\utility_common::func_BE9E(0))
{
return 0;
}
if(!scripts\anim\utility_common::func_1311A())
{
return 0;
}
func_103D2();
self notify("abort_reload");
return 1;
}
//Function Number: 19
func_103D2()
{
self endon("snowmobile_event_occurred");
self.var_10FB2 = 1;
self waittill("start_blending_reload");
self method_82A2(%sm_aiming,0,0.25);
self method_82EA("gun_down",scripts\anim\utility::func_1F64("gun_down"),1,0.25);
scripts\anim\shared::func_592B("gun_down");
self method_806F(scripts\anim\utility::func_1F64("gun_down"),0);
self method_82E4("reload_anim",scripts\anim\utility::func_1F64("reload"),%body,1,0.25);
scripts\anim\shared::func_592B("reload_anim");
self method_806F(%sm_reload,0.2);
self method_82EA("gun_up",scripts\anim\utility::func_1F64("gun_up"),1,0.25);
self.var_86EC = 1;
scripts\anim\shared::func_592B("gun_up",::func_103DC);
self.var_10FB2 = undefined;
self method_806F(%sm_reload,0.1);
self method_82A2(%sm_aiming,1,0.1);
if(isdefined(self.var_86EC))
{
self.var_86EC = undefined;
scripts\anim\shared::func_592B("gun_up",::func_103DB);
self method_806F(scripts\anim\utility::func_1F64("gun_up"),0);
}
}
//Function Number: 20
func_103DC(param_00)
{
if(param_00 == "start_aim")
{
return 1;
}
}
//Function Number: 21
func_103DB(param_00)
{
if(param_00 == "end")
{
return 1;
}
}
//Function Number: 22
func_103DD(param_00)
{
if(param_00 == "start_lean")
{
return 1;
}
}
//Function Number: 23
func_103D9()
{
self endon("killanimscript");
self endon("stop tracking");
var_00 = 0.05;
var_01 = 8;
var_02 = 0;
var_03 = 0;
var_04 = 1;
for(;;)
{
scripts\anim\track::func_93E2();
var_05 = (self.origin[0],self.origin[1],self geteye()[2]);
var_06 = self.var_FECF;
if(isdefined(self.var_FE9E))
{
var_06 = self.var_FE9E method_815B();
}
if(!isdefined(var_06))
{
var_03 = 0;
var_07 = self method_80FC();
if(isdefined(var_07))
{
var_03 = angleclamp180(var_07[1] - self.angles[1]);
}
}
else
{
var_08 = var_06 - var_05;
var_09 = vectortoangles(var_08);
var_03 = var_09[1] - self.angles[1];
var_03 = angleclamp180(var_03);
}
if(var_03 < self.var_268 || var_03 > self.var_1B7)
{
var_03 = 0;
}
if(var_04)
{
var_04 = 0;
}
else
{
var_0A = var_03 - var_02;
if(abs(var_0A) > var_01)
{
var_03 = var_02 + var_01 * scripts\common\utility::func_101EA(var_0A);
}
}
var_02 = var_03;
var_0B = min(max(var_03,0),90) / 90 * self.var_1491.var_1A4B;
var_0C = min(max(0 - var_03,0),90) / 90 * self.var_1491.var_1A4B;
self method_82AC(%sm_aim_4,var_0B,var_00);
self method_82AC(%sm_aim_6,var_0C,var_00);
wait(0.05);
}
}
//Function Number: 24
func_103DA()
{
self endon("killanimscript");
self endon("stop tracking");
var_00 = 0.05;
var_01 = 5;
var_02 = 20;
var_03 = 15;
var_04 = 40;
var_05 = 30;
var_06 = 0;
var_07 = 0;
var_08 = 1;
for(;;)
{
scripts\anim\track::func_93E2();
var_09 = (self.origin[0],self.origin[1],self geteye()[2]);
var_0A = self.var_FECF;
if(isdefined(self.var_FE9E))
{
var_0A = self.var_FE9E method_815B();
}
if(!isdefined(var_0A))
{
var_07 = 0;
var_0B = self method_80FC();
if(isdefined(var_0B))
{
var_07 = angleclamp180(var_0B[1] - self.angles[1]);
}
}
else
{
var_0C = var_0A - var_09;
var_0D = vectortoangles(var_0C);
var_07 = var_0D[1] - self.angles[1];
var_07 = angleclamp180(var_07);
}
if(isdefined(self.var_10FB2) || var_07 < 0 && var_07 - self.var_268 * self.var_54DB > 0 || var_07 > 0 && var_07 - self.var_1B7 * self.var_54DB < 0)
{
var_07 = 0;
}
if(var_08)
{
var_08 = 0;
}
else
{
if(var_06 < -180 + var_04 && var_07 > 180 - var_05)
{
var_07 = -179;
}
if(var_06 > 180 - var_04 && var_07 < -180 + var_05)
{
var_07 = 179;
}
var_0E = var_07 - var_06;
var_0F = var_02 - var_01 * abs(var_0E) / 180 + var_01;
if(isdefined(self.var_10FB2))
{
var_0F = var_03;
if(abs(var_06) < 45)
{
self notify("start_blending_reload");
}
}
if(abs(var_0E) > var_0F)
{
var_07 = var_06 + var_0F * scripts\common\utility::func_101EA(var_0E);
}
}
var_06 = var_07;
var_10 = max(-90 + var_07,0) / 90 * self.var_1491.var_1A4B;
var_11 = min(max(var_07,0),90) / 90 * self.var_1491.var_1A4B;
var_12 = max(90 - abs(var_07),0) / 90 * self.var_1491.var_1A4B;
var_13 = min(max(0 - var_07,0),90) / 90 * self.var_1491.var_1A4B;
var_14 = max(-90 - var_07,0) / 90 * self.var_1491.var_1A4B;
self method_82AC(%sm_aim_1,var_10,var_00);
self method_82AC(%sm_aim_4_delta,var_11,var_00);
self method_82AC(%sm_aim_5_delta,var_12,var_00);
self method_82AC(%sm_aim_6_delta,var_13,var_00);
self method_82AC(%sm_aim_3,var_14,var_00);
wait(0.05);
}
}
//Function Number: 25
func_103C6(param_00,param_01,param_02)
{
var_03 = undefined;
var_04 = undefined;
var_05 = 0;
for(var_06 = 0;var_06 < param_00.size;var_06++)
{
var_07 = scripts\common\utility::func_152F(param_02 - param_01[var_06]);
if(!isdefined(var_03) || var_07 < var_05)
{
var_04 = var_03;
var_03 = param_00[var_06];
var_05 = var_07;
continue;
}
if(!isdefined(var_04))
{
var_04 = param_00[var_06];
}
}
var_08 = var_03;
if(isdefined(level.var_D8BF) && var_08 == level.var_D8BF && gettime() - level.var_D8C0 < 500)
{
var_08 = var_04;
}
anim.var_D8BF = var_08;
anim.var_D8C0 = gettime();
return var_08;
}
//Function Number: 26
func_103C2()
{
var_00 = self.var_E500;
var_01 = var_00.var_D89A;
var_01 = (var_01[0],var_01[1],randomfloatrange(200,400)) * 0.75;
if(lengthsquared(var_01) > 1000000)
{
var_01 = vectornormalize(var_01) * 1000;
}
var_02 = spawn("script_origin",self.origin);
var_02 method_820E((0,0,40),15,var_01);
self linkto(var_02);
var_02 thread func_51D1();
}
//Function Number: 27
func_103CF()
{
var_00 = [];
var_00[0] = level.var_EC85["snowmobile"]["small"]["death"]["back"];
var_00[1] = level.var_EC85["snowmobile"]["small"]["death"]["right"];
var_00[2] = level.var_EC85["snowmobile"]["small"]["death"]["left"];
var_01 = [];
var_01[0] = -180;
var_01[1] = -90;
var_01[2] = 90;
var_02 = func_103C6(var_00,var_01,self.var_E3);
scripts\anim\death::func_CF0E(var_02);
return 1;
}
//Function Number: 28
func_103C1()
{
var_00 = self.var_E500;
if(!isdefined(var_00))
{
return func_103CF();
}
var_01 = var_00.var_D89A;
func_103C2();
var_02 = vectortoangles(var_01);
var_03 = angleclamp180(var_02[1] - self.angles[1]);
var_04 = [];
var_04[0] = level.var_EC85["snowmobile"]["big"]["death"]["back"];
var_04[1] = level.var_EC85["snowmobile"]["big"]["death"]["left"];
var_04[2] = level.var_EC85["snowmobile"]["big"]["death"]["front"];
var_04[3] = level.var_EC85["snowmobile"]["big"]["death"]["right"];
var_05 = [];
var_05[0] = -180;
var_05[1] = -90;
var_05[2] = 0;
var_05[3] = 90;
var_06 = func_103C6(var_04,var_05,var_03);
scripts\anim\death::func_CF0E(var_06);
return 1;
}
//Function Number: 29
func_51D1()
{
var_00 = self.origin;
for(var_01 = 0;var_01 < 60;var_01++)
{
wait(0.05);
var_00 = self.origin;
}
wait(3);
if(isdefined(self))
{
self delete();
}
}
//Function Number: 30
func_103D3(param_00)
{
self.var_1491.var_2274["idle"] = level.var_EC85["snowmobile"][param_00]["idle"];
self.var_1491.var_2274["drive"] = level.var_EC85["snowmobile"][param_00]["drive"];
self.var_1491.var_2274["fire"] = level.var_EC85["snowmobile"][param_00]["fire"];
self.var_1491.var_2274["single"] = scripts\anim\utility::func_2274(level.var_EC85["snowmobile"][param_00]["single"]);
self.var_1491.var_2274["burst2"] = level.var_EC85["snowmobile"][param_00]["fire"];
self.var_1491.var_2274["burst3"] = level.var_EC85["snowmobile"][param_00]["fire"];
self.var_1491.var_2274["burst4"] = level.var_EC85["snowmobile"][param_00]["fire"];
self.var_1491.var_2274["burst5"] = level.var_EC85["snowmobile"][param_00]["fire"];
self.var_1491.var_2274["burst6"] = level.var_EC85["snowmobile"][param_00]["fire"];
self.var_1491.var_2274["semi2"] = level.var_EC85["snowmobile"][param_00]["fire"];
self.var_1491.var_2274["semi3"] = level.var_EC85["snowmobile"][param_00]["fire"];
self.var_1491.var_2274["semi4"] = level.var_EC85["snowmobile"][param_00]["fire"];
self.var_1491.var_2274["semi5"] = level.var_EC85["snowmobile"][param_00]["fire"];
}
//Function Number: 31
func_103D4(param_00)
{
self.var_1491.var_2274 = [];
func_103D3("driver");
self.var_1491.var_2274["left2right"] = level.var_EC85["snowmobile"]["driver"]["left2right"];
self.var_1491.var_2274["right2left"] = level.var_EC85["snowmobile"]["driver"]["right2left"];
self.var_1491.var_2274["straight_level_left"] = level.var_EC85["snowmobile"]["driver"]["straight_level"]["left"];
self.var_1491.var_2274["straight_level_center"] = level.var_EC85["snowmobile"]["driver"]["straight_level"]["center"];
self.var_1491.var_2274["straight_level_right"] = level.var_EC85["snowmobile"]["driver"]["straight_level"]["right"];
self.var_1491.var_2274["add_aim_left_left"] = level.var_EC85["snowmobile"]["driver"]["add_aim_left"]["left"];
self.var_1491.var_2274["add_aim_left_center"] = level.var_EC85["snowmobile"]["driver"]["add_aim_left"]["center"];
self.var_1491.var_2274["add_aim_left_right"] = level.var_EC85["snowmobile"]["driver"]["add_aim_left"]["right"];
self.var_1491.var_2274["add_aim_right_left"] = level.var_EC85["snowmobile"]["driver"]["add_aim_right"]["left"];
self.var_1491.var_2274["add_aim_right_center"] = level.var_EC85["snowmobile"]["driver"]["add_aim_right"]["center"];
self.var_1491.var_2274["add_aim_right_right"] = level.var_EC85["snowmobile"]["driver"]["add_aim_right"]["right"];
if(param_00)
{
self.var_1491.var_2274["event_jump"] = level.var_EC85["snowmobile"]["driver"]["shoot_jump"];
self.var_1491.var_2274["event_bump"] = level.var_EC85["snowmobile"]["driver"]["shoot_bump"];
self.var_1491.var_2274["event_bump_big"] = level.var_EC85["snowmobile"]["driver"]["shoot_bump_big"];
self.var_1491.var_2274["event_sway"] = [];
self.var_1491.var_2274["event_sway"]["left"] = level.var_EC85["snowmobile"]["driver"]["shoot_sway_left"];
self.var_1491.var_2274["event_sway"]["right"] = level.var_EC85["snowmobile"]["driver"]["shoot_sway_right"];
self.var_1491.var_2274["event_restore"] = %sm_aiming;
return;
}
self.var_1491.var_2274["event_jump"] = level.var_EC85["snowmobile"]["driver"]["drive_jump"];
self.var_1491.var_2274["event_bump"] = level.var_EC85["snowmobile"]["driver"]["drive_bump"];
self.var_1491.var_2274["event_bump_big"] = level.var_EC85["snowmobile"]["driver"]["drive_bump_big"];
self.var_1491.var_2274["event_sway"] = [];
self.var_1491.var_2274["event_sway"]["left"] = level.var_EC85["snowmobile"]["driver"]["drive_sway_left"];
self.var_1491.var_2274["event_sway"]["right"] = level.var_EC85["snowmobile"]["driver"]["drive_sway_right"];
self.var_1491.var_2274["event_restore"] = %sm_turn;
}
//Function Number: 32
func_103D5(param_00)
{
self.var_1491.var_2274 = [];
func_103D3("passenger");
self.var_1491.var_2274["hide"] = level.var_EC85["snowmobile"]["passenger"]["hide"];
self.var_1491.var_2274["lean_left"] = level.var_EC85["snowmobile"]["passenger"]["add_lean"]["left"];
self.var_1491.var_2274["lean_right"] = level.var_EC85["snowmobile"]["passenger"]["add_lean"]["right"];
self.var_1491.var_2274["reload"] = level.var_EC85["snowmobile"]["passenger"]["reload"];
self.var_1491.var_2274["gun_up"] = level.var_EC85["snowmobile"]["passenger"]["gun_up"];
self.var_1491.var_2274["gun_down"] = level.var_EC85["snowmobile"]["passenger"]["gun_down"];
self.var_1491.var_2274["aim_left_left"] = level.var_EC85["snowmobile"]["passenger"]["aim_left"]["left"];
self.var_1491.var_2274["aim_left_center"] = level.var_EC85["snowmobile"]["passenger"]["aim_left"]["center"];
self.var_1491.var_2274["aim_left_right"] = level.var_EC85["snowmobile"]["passenger"]["aim_left"]["right"];
self.var_1491.var_2274["aim_right_left"] = level.var_EC85["snowmobile"]["passenger"]["aim_right"]["left"];
self.var_1491.var_2274["aim_right_center"] = level.var_EC85["snowmobile"]["passenger"]["aim_right"]["center"];
self.var_1491.var_2274["aim_right_right"] = level.var_EC85["snowmobile"]["passenger"]["aim_right"]["right"];
self.var_1491.var_2274["add_aim_backleft_left"] = level.var_EC85["snowmobile"]["passenger"]["add_aim_backleft"]["left"];
self.var_1491.var_2274["add_aim_backleft_center"] = level.var_EC85["snowmobile"]["passenger"]["add_aim_backleft"]["center"];
self.var_1491.var_2274["add_aim_backleft_right"] = level.var_EC85["snowmobile"]["passenger"]["add_aim_backleft"]["right"];
self.var_1491.var_2274["add_aim_backright_left"] = level.var_EC85["snowmobile"]["passenger"]["add_aim_backright"]["left"];
self.var_1491.var_2274["add_aim_backright_center"] = level.var_EC85["snowmobile"]["passenger"]["add_aim_backright"]["center"];
self.var_1491.var_2274["add_aim_backright_right"] = level.var_EC85["snowmobile"]["passenger"]["add_aim_backright"]["right"];
self.var_1491.var_2274["straight_level_left"] = level.var_EC85["snowmobile"]["passenger"]["straight_level"]["left"];
self.var_1491.var_2274["straight_level_center"] = level.var_EC85["snowmobile"]["passenger"]["straight_level"]["center"];
self.var_1491.var_2274["straight_level_right"] = level.var_EC85["snowmobile"]["passenger"]["straight_level"]["right"];
if(param_00)
{
self.var_1491.var_2274["event_jump"] = level.var_EC85["snowmobile"]["passenger"]["drive_jump"];
self.var_1491.var_2274["event_bump"] = level.var_EC85["snowmobile"]["passenger"]["drive_bump"];
self.var_1491.var_2274["event_bump_big"] = level.var_EC85["snowmobile"]["passenger"]["drive_bump_big"];
self.var_1491.var_2274["event_sway"] = [];
self.var_1491.var_2274["event_sway"]["left"] = level.var_EC85["snowmobile"]["passenger"]["drive_sway_left"];
self.var_1491.var_2274["event_sway"]["right"] = level.var_EC85["snowmobile"]["passenger"]["drive_sway_right"];
self.var_1491.var_2274["event_restore"] = %sm_aiming;
return;
}
self.var_1491.var_2274["event_jump"] = level.var_EC85["snowmobile"]["passenger"]["hide_jump"];
self.var_1491.var_2274["event_bump"] = level.var_EC85["snowmobile"]["passenger"]["hide_bump"];
self.var_1491.var_2274["event_bump_big"] = level.var_EC85["snowmobile"]["passenger"]["hide_bump_big"];
self.var_1491.var_2274["event_sway"] = [];
self.var_1491.var_2274["event_sway"]["left"] = level.var_EC85["snowmobile"]["passenger"]["hide_sway_left"];
self.var_1491.var_2274["event_sway"]["right"] = level.var_EC85["snowmobile"]["passenger"]["hide_sway_right"];
self.var_1491.var_2274["event_restore"] = %sm_turn;
}

View File

@ -0,0 +1,784 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\squadmanager.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 21
* Decompile Time: 1086 ms
* Timestamp: 10/27/2023 12:01:04 AM
*******************************************************************/
//Function Number: 1
func_9763()
{
if(isdefined(level.var_10AE6) && level.var_10AE6)
{
return;
}
anim.var_10AE0 = [];
anim.var_10AE1 = [];
anim.var_10AF9 = [];
anim.var_10AE5 = [];
anim.var_10AF2 = 0;
anim.var_10AE6 = 1;
}
//Function Number: 2
func_4A1B(param_00,param_01)
{
var_02 = spawnstruct();
var_02.var_10AEE = param_00;
level.var_10AF9[param_00] = var_02;
var_02.team = func_8151(param_01);
var_02.var_101E8 = 0;
var_02.origin = undefined;
var_02.var_143 = undefined;
var_02.var_10C = undefined;
var_02.var_9E40 = 0;
var_02.var_B65C = 0;
var_02.var_B661 = [];
var_02.var_C35C = [];
var_02.var_C35A = 0;
var_02.var_10AE9 = [];
var_02.var_B659 = [];
var_02.var_B65A = [];
var_02.var_B65F = [];
var_02.var_B660 = [];
var_02.var_10AFD = [];
var_02.var_10AFE = [];
var_02.var_10AE4 = level.var_10AE5.size;
level.var_10AE5[level.var_10AE5.size] = var_02;
var_02 func_12F25();
level notify("squad created " + param_00);
anim notify("squad created " + param_00);
for(var_03 = 0;var_03 < level.var_10AE0.size;var_03++)
{
var_04 = level.var_10AE0[var_03];
var_02 thread [[ var_04 ]]();
}
for(var_03 = 0;var_03 < level.var_10AE5.size;var_03++)
{
level.var_10AE5[var_03] func_12F25();
}
var_02 thread func_10AFC();
var_02 thread func_C35D();
var_02 thread func_12ECE();
return var_02;
}
//Function Number: 3
func_51D2(param_00)
{
if(param_00 == "axis" || param_00 == "team3" || param_00 == "allies" || param_00 == "jackal_allies" || param_00 == "jackal_axis")
{
return;
}
var_01 = level.var_10AF9[param_00].var_10AE4;
var_02 = level.var_10AF9[param_00];
var_02 notify("squad_deleting");
while(var_02.var_B661.size)
{
var_02.var_B661[0] func_185C(var_02.var_B661[0].team);
}
level.var_10AE5[var_01] = level.var_10AE5[level.var_10AE5.size - 1];
level.var_10AE5[var_01].var_10AE4 = var_01;
level.var_10AE5[level.var_10AE5.size - 1] = undefined;
level.var_10AF9[param_00] = undefined;
anim notify("squad deleted " + param_00);
for(var_03 = 0;var_03 < level.var_10AE5.size;var_03++)
{
level.var_10AE5[var_03] func_12F25();
}
}
//Function Number: 4
func_1811(param_00)
{
if(!isdefined(param_00))
{
if(isdefined(self.var_EEC4))
{
param_00 = self.var_EEC4;
}
else
{
param_00 = self.team;
}
}
if(!isdefined(level.var_10AF9[param_00]))
{
anim func_4A1B(param_00,self);
}
var_01 = level.var_10AF9[param_00];
var_02 = 0;
if(isdefined(var_01.var_B661))
{
foreach(var_04 in var_01.var_B661)
{
if(var_04 != level.player)
{
continue;
}
else
{
var_02 = 1;
break;
}
}
if(!var_02)
{
var_01.var_B661[var_01.var_B661.size] = self;
}
}
self.var_10AC8 = var_01;
}
//Function Number: 5
func_D362()
{
var_00 = getentarray("player","classname")[0];
lib_0E4E::func_D313();
if(scripts\common\utility::func_D11B())
{
anim.player = level.var_D127;
if(!isdefined(level.player.team))
{
level.player.team = "allies";
}
level.var_68AD["threat"]["self"] = 11000;
level.var_68AD["threat"]["squad"] = 7000;
level.var_29BE = squared(9999999);
level.var_29BD = squared(9999999);
anim.var_115EE = 300000;
anim.var_6BB2 = 9999999;
anim.var_6BB8 = 2;
anim.var_6BB7 = 5;
anim.var_6BB6 = 0.5;
anim.var_6BB5 = 3;
level.player func_1811("jackal_allies");
for(var_01 = 0;var_01 < level.var_10AE5.size;var_01++)
{
level.var_10AE5[var_01].var_B661 = scripts\common\utility::func_22BC(level.var_10AE5[var_01].var_B661);
level.var_10AE5[var_01] func_12F25();
}
lib_0E4E::func_96F1();
while(scripts\common\utility::func_D11B())
{
wait(0.05);
}
}
else
{
anim.player = var_01;
if(!isdefined(level.player.team))
{
level.player.team = "allies";
}
lib_0E4E::func_D313();
level.var_68AD["threat"]["self"] = 9000;
level.var_68AD["threat"]["squad"] = 5000;
level.var_29BE = squared(5000);
level.var_29BD = squared(3000);
anim.var_115EE = 120000;
anim.var_6BB2 = 620;
anim.var_6BB8 = 12;
anim.var_6BB7 = 24;
anim.var_6BB6 = 2;
anim.var_6BB5 = 5;
level.player func_1811("allies");
for(var_01 = 0;var_01 < level.var_10AE5.size;var_01++)
{
level.var_10AE5[var_01].var_B661 = scripts\common\utility::func_22BC(level.var_10AE5[var_01].var_B661);
level.var_10AE5[var_01] func_12F25();
}
lib_0E4E::func_96F1();
while(!scripts\common\utility::func_D11B())
{
wait(0.05);
}
}
for(;;)
{
if(scripts\common\utility::func_D11B())
{
var_02 = [];
foreach(var_04 in level.var_10AF9["allies"].var_B661)
{
if(var_04 != level.player)
{
var_02[var_02.size] = var_04;
}
}
level.var_10AF9["allies"].var_B661 = var_02;
anim.player = level.var_D127;
if(!isdefined(level.player.team))
{
level.player.team = "allies";
}
lib_0E4E::func_D313();
level.var_68AD["threat"]["self"] = 11000;
level.var_68AD["threat"]["squad"] = 7000;
level.var_29BE = squared(9999999);
level.var_29BD = squared(9999999);
anim.var_115EE = 300000;
anim.var_6BB2 = 9999999;
anim.var_6BB8 = 2;
anim.var_6BB7 = 5;
anim.var_6BB6 = 0.5;
anim.var_6BB5 = 3;
level.player func_1811("jackal_allies");
for(var_01 = 0;var_01 < level.var_10AE5.size;var_01++)
{
level.var_10AE5[var_01].var_B661 = scripts\common\utility::func_22BC(level.var_10AE5[var_01].var_B661);
level.var_10AE5[var_01] func_12F25();
}
lib_0E4E::func_96F1();
while(scripts\common\utility::func_D11B())
{
wait(0.05);
}
continue;
}
var_02 = [];
foreach(var_04 in level.var_10AF9["allies"].var_B661)
{
if(!isdefined(level.var_D127) || isdefined(level.var_D127) && var_04 != level.var_D127)
{
var_02[var_02.size] = var_04;
}
}
level.var_10AF9["allies"].var_B661 = var_02;
anim.player = var_00;
if(!isdefined(level.player.team))
{
level.player.team = "allies";
}
lib_0E4E::func_D313();
level.var_68AD["threat"]["self"] = 9000;
level.var_68AD["threat"]["squad"] = 5000;
level.var_29BE = squared(5000);
level.var_29BD = squared(3000);
anim.var_115EE = 120000;
anim.var_6BB2 = 620;
anim.var_6BB8 = 12;
anim.var_6BB7 = 24;
anim.var_6BB6 = 2;
anim.var_6BB5 = 5;
level.player func_1811("allies");
for(var_01 = 0;var_01 < level.var_10AE5.size;var_01++)
{
level.var_10AE5[var_01].var_B661 = scripts\common\utility::func_22BC(level.var_10AE5[var_01].var_B661);
level.var_10AE5[var_01] func_12F25();
}
lib_0E4E::func_96F1();
while(!scripts\common\utility::func_D11B())
{
wait(0.05);
}
}
}
//Function Number: 6
func_8151(param_00)
{
var_01 = "allies";
if(isdefined(level.var_116CC) && level.var_116CC == "phparade")
{
param_00.team = "allies";
}
if(param_00.team == "axis" || param_00.team == "neutral" || param_00.team == "team3")
{
var_01 = param_00.team;
}
return var_01;
}
//Function Number: 7
func_185C(param_00)
{
if(!isdefined(param_00))
{
if(isdefined(self.var_EEC4))
{
param_00 = self.var_EEC4;
}
else
{
param_00 = self.team;
}
if(isdefined(self.var_29B8) && self.var_29B8)
{
param_00 = "jackal_" + self.var_EEDE;
}
}
if(!isdefined(level.var_10AF9[param_00]))
{
anim func_4A1B(param_00,self);
}
var_01 = level.var_10AF9[param_00];
if(isdefined(self.var_10AC8))
{
if(self.var_10AC8 == var_01)
{
return;
}
else
{
func_E11A();
}
}
self.var_A980 = 0;
self.var_440E = 0;
self.var_10DFF = gettime();
self.var_10AC8 = var_01;
self.var_10AED = var_01.var_B661.size;
var_01.var_B661[self.var_10AED] = self;
var_01.var_B65C = var_01.var_B661.size;
if(isdefined(level.var_AE64))
{
if(self.team == "allies" && scripts\anim\battlechatter::func_9EC2())
{
func_1804();
}
}
foreach(var_03 in self.var_10AC8.var_B659)
{
self thread [[ var_03 ]](self.var_10AC8.var_10AEE);
}
thread func_B65D();
}
//Function Number: 8
func_E11A()
{
var_00 = self.var_10AC8;
var_01 = -1;
if(isdefined(self))
{
var_01 = self.var_10AED;
}
else
{
for(var_02 = 0;var_02 < var_00.var_B661.size;var_02++)
{
if(var_00.var_B661[var_02] == self)
{
var_01 = var_02;
}
}
}
if(var_01 != var_00.var_B661.size - 1)
{
var_03 = var_00.var_B661[var_00.var_B661.size - 1];
var_00.var_B661[var_01] = var_03;
if(isdefined(var_03))
{
var_03.var_10AED = var_01;
}
}
var_00.var_B661[var_00.var_B661.size - 1] = undefined;
var_00.var_B65C = var_00.var_B661.size;
if(isdefined(self.var_10AF0))
{
func_E142();
}
foreach(var_05 in self.var_10AC8.var_B65F)
{
self thread [[ var_05 ]](var_00.var_10AEE);
}
if(var_00.var_B65C == 0)
{
func_51D2(var_00.var_10AEE);
}
if(isdefined(self))
{
self.var_10AC8 = undefined;
self.var_10AED = undefined;
self notify("removed from squad");
}
}
//Function Number: 9
func_1804()
{
var_00 = self.var_10AC8;
if(isdefined(self.var_10AF0))
{
return;
}
self.var_10AF0 = var_00.var_C35C.size;
var_00.var_C35C[self.var_10AF0] = self;
var_00.var_C35A = var_00.var_C35C.size;
}
//Function Number: 10
func_E142()
{
var_00 = self.var_10AC8;
var_01 = -1;
if(isdefined(self))
{
var_01 = self.var_10AF0;
}
else
{
for(var_02 = 0;var_02 < var_00.var_C35C.size;var_02++)
{
if(var_00.var_C35C[var_02] == self)
{
var_01 = var_02;
}
}
}
if(var_01 != var_00.var_C35C.size - 1)
{
var_03 = var_00.var_C35C[var_00.var_C35C.size - 1];
var_00.var_C35C[var_01] = var_03;
if(isdefined(var_03))
{
var_03.var_10AF0 = var_01;
}
}
var_00.var_C35C[var_00.var_C35C.size - 1] = undefined;
var_00.var_C35A = var_00.var_C35C.size;
if(isdefined(self))
{
self.var_10AF0 = undefined;
}
}
//Function Number: 11
func_C35D()
{
if(!isdefined(level.var_AE64))
{
anim waittill("loadout complete");
}
for(var_00 = 0;var_00 < self.var_B661.size;var_00++)
{
if(self.var_B661[var_00] scripts\anim\battlechatter::func_9EC2())
{
self.var_B661[var_00] func_1804();
}
}
}
//Function Number: 12
func_10AFC()
{
anim endon("squad deleted " + self.var_10AEE);
for(;;)
{
func_12E59();
wait(0.1);
}
}
//Function Number: 13
func_B65D()
{
self endon("removed from squad");
self waittill("death",var_00);
if(isdefined(self))
{
self.var_4F = var_00;
}
func_E11A();
}
//Function Number: 14
func_12E77()
{
self.var_9E40 = 0;
for(var_00 = 0;var_00 < level.var_10AE5.size;var_00++)
{
self.var_10AE9[level.var_10AE5[var_00].var_10AEE].var_9E42 = 0;
}
for(var_00 = 0;var_00 < self.var_B661.size;var_00++)
{
if(isdefined(self.var_B661[var_00]))
{
if(isdefined(self.var_B661[var_00].var_10C) && isdefined(self.var_B661[var_00].var_10C.var_10AC8) && self.var_B661[var_00].var_440E > 0)
{
self.var_10AE9[self.var_B661[var_00].var_10C.var_10AC8.var_10AEE].var_9E42 = 1;
}
}
}
}
//Function Number: 15
func_12E59()
{
var_00 = (0,0,0);
var_01 = (0,0,0);
var_02 = 0;
var_03 = undefined;
var_04 = 0;
func_12E77();
var_05 = !isdefined(self.var_10C);
if(!var_05)
{
self.var_143 = vectornormalize(self.var_10C.origin - self.origin);
}
foreach(var_07 in self.var_B661)
{
if(!isalive(var_07))
{
continue;
}
var_02++;
var_00 = var_00 + var_07.origin;
if(var_05)
{
var_01 = var_01 + anglestoforward(var_07.angles);
}
if(isdefined(var_07.var_10C) && isdefined(var_07.var_10C.var_10AC8))
{
if(!isdefined(var_03))
{
var_03 = var_07.var_10C.var_10AC8;
continue;
}
if(var_07.var_10C.var_10AC8.var_B65C > var_03.var_B65C)
{
var_03 = var_07.var_10C.var_10AC8;
}
}
}
if(var_02)
{
self.origin = var_00 / var_02;
if(var_05)
{
self.var_143 = var_01 / var_02;
}
}
else
{
self.origin = var_00;
if(var_05)
{
self.var_143 = var_01;
}
}
self.var_9E40 = var_04;
self.var_10C = var_03;
}
//Function Number: 16
func_12F25()
{
for(var_00 = 0;var_00 < level.var_10AE5.size;var_00++)
{
if(!isdefined(self.var_10AE9[level.var_10AE5[var_00].var_10AEE]))
{
self.var_10AE9[level.var_10AE5[var_00].var_10AEE] = spawnstruct();
self.var_10AE9[level.var_10AE5[var_00].var_10AEE].var_9E42 = 0;
}
foreach(var_02 in self.var_10AFD)
{
self thread [[ var_02 ]](level.var_10AE5[var_00].var_10AEE);
}
}
}
//Function Number: 17
func_D909(param_00,param_01,param_02,param_03)
{
self endon("death");
if(!isdefined(param_02))
{
param_02 = (0,0,0);
}
if(!isdefined(param_03))
{
param_03 = (1,0,0);
}
for(var_04 = 0;var_04 < param_01 * 2;var_04++)
{
if(!isalive(self))
{
return;
}
var_05 = self method_815B() + (0,0,10) + param_02;
wait(0.05);
}
}
//Function Number: 18
func_1B0E(param_00)
{
switch(param_00)
{
case "combat":
case "stop":
case "move":
case "death":
self.var_1491.var_10E19 = param_00;
break;
case "grenadecower":
case "pain":
break;
case "stalingrad_cover_crouch":
case "cover_wide_right":
case "cover_wide_left":
case "concealment_stand":
case "concealment_prone":
case "concealment_crouch":
case "cover_prone":
case "cover_stand":
case "cover_left":
case "cover_right":
case "cover_crouch":
self.var_1491.var_10E19 = "cover";
break;
case "l33t truckride combat":
case "aim":
self.var_1491.var_10E19 = "combat";
break;
}
}
//Function Number: 19
func_12ECE()
{
anim endon("squad deleted " + self.var_10AEE);
var_00 = 0.05;
for(;;)
{
foreach(var_02 in self.var_B661)
{
if(!isalive(var_02) || var_02 == level.player)
{
continue;
}
var_02 func_1B0F(var_00);
var_02 func_1B10(var_00);
}
wait(var_00);
}
}
//Function Number: 20
func_1B0F(param_00)
{
if(!isdefined(self.var_440E))
{
return;
}
if(isdefined(self.var_1B2))
{
if(self.var_440E < 0)
{
self.var_440E = param_00;
}
else
{
self.var_440E = self.var_440E + param_00;
}
self.var_A980 = gettime();
return;
}
else if((isdefined(self.var_3136) && self.var_3136) || isdefined(self.var_238F) && self.var_238F != "jackal" && self method_81C0())
{
self.var_440E = self.var_440E + param_00;
return;
}
if(self.var_440E > 0)
{
self.var_440E = 0 - param_00;
return;
}
self.var_440E = self.var_440E - param_00;
}
//Function Number: 21
func_1B10(param_00)
{
if(!isdefined(self.var_112CA))
{
return;
}
if((isdefined(self.var_3136) && self.var_3136) || isdefined(self.var_238F) && self.var_238F != "jackal" && self method_81C0())
{
if(self.var_112CA < 0)
{
self.var_112CA = param_00;
}
else
{
self.var_112CA = self.var_112CA + param_00;
}
return;
}
if(self.var_112CA > 0)
{
self.var_112CA = 0 - param_00;
return;
}
self.var_112CA = self.var_112CA - param_00;
}

View File

@ -0,0 +1,269 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\stop.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 11
* Decompile Time: 558 ms
* Timestamp: 10/27/2023 12:01:05 AM
*******************************************************************/
//Function Number: 1
func_9518()
{
}
//Function Number: 2
main()
{
if(isdefined(self.var_BFDC))
{
return;
}
if(isdefined(self.var_4C37))
{
if(isdefined(self.var_4C37["stop"]))
{
[[ self.var_4C37["stop"] ]]();
return;
}
}
self notify("stopScript");
self endon("killanimscript");
[[ self.var_68C6["stop_immediate"] ]]();
thread func_50FE();
scripts\anim\utility::func_9832("stop");
if(isdefined(self.var_1095A))
{
func_1095B();
}
scripts\anim\utility::func_DCB7();
thread func_F77E();
thread scripts\anim\reactions::func_DD51();
var_00 = isdefined(self.var_4C8C);
if(!var_00)
{
if(self.var_1491.var_13CBA["right"] == "none" && self.var_1491.var_13CBA["left"] == "none")
{
var_00 = 1;
}
else if(angleclamp180(self method_8141()[0]) > 20)
{
var_00 = 1;
}
}
for(;;)
{
var_01 = func_7E6F();
if(var_01 == "prone")
{
var_00 = 1;
func_DA85();
continue;
}
if(self.var_1491.var_D6A5 != var_01)
{
self method_806F(%root,0.3);
var_00 = 0;
}
scripts\anim\setposemovement::func_F804(var_01,"stop");
if(!var_00)
{
func_12681(var_01,self.var_1491.var_92F9);
var_00 = 1;
continue;
}
func_D49C(var_01,self.var_1491.var_92F9);
}
}
//Function Number: 3
func_E732(param_00,param_01)
{
self method_8221("face angle",param_00);
while(angleclamp(param_00 - self.angles[1]) > param_01)
{
wait(0.1);
}
}
//Function Number: 4
func_F77E()
{
self endon("death");
self waittill("killanimscript");
self.var_AA1F = gettime();
}
//Function Number: 5
func_1095B()
{
self endon("stop_specialidle");
var_00 = self.var_1095A;
self method_8016("gravity");
self method_8221("face current");
self method_806F(%root,0.2);
for(;;)
{
self method_82EA("special_idle",var_00[randomint(var_00.size)],1,0.2,self.var_1FC6);
self waittillmatch("end","special_idle");
}
}
//Function Number: 6
func_7E6F()
{
var_00 = scripts\anim\utility_common::func_7E28();
if(isdefined(var_00))
{
var_01 = var_00.angles[1];
var_02 = var_00.type;
}
else
{
var_01 = self.var_EC;
var_02 = "node was undefined";
}
var_03 = scripts\anim\utility::func_3EF2();
if(var_02 == "Cover Stand" || var_02 == "Conceal Stand")
{
var_03 = scripts\anim\utility::func_3EF2("stand");
}
else if(var_02 == "Cover Crouch" || var_02 == "Conceal Crouch")
{
var_03 = scripts\anim\utility::func_3EF2("crouch");
}
else if(var_02 == "Cover Prone" || var_02 == "Conceal Prone")
{
var_03 = scripts\anim\utility::func_3EF2("prone");
}
return var_03;
}
//Function Number: 7
func_12681(param_00,param_01)
{
if(scripts\anim\utility::func_9D9B() && self.var_1491.var_D6A5 == "stand")
{
param_00 = "stand_cqb";
}
var_02 = scripts\anim\utility::func_B028("idle_transitions");
if(isdefined(var_02[param_00]))
{
var_03 = var_02[param_00];
self method_82E4("idle_transition",var_03,%body,1,0.2,self.var_1FC6);
scripts\anim\shared::func_592B("idle_transition");
}
}
//Function Number: 8
func_D49C(param_00,param_01)
{
if(scripts\anim\utility::func_9D9B() && self.var_1491.var_D6A5 == "stand")
{
param_00 = "stand_cqb";
}
var_02 = undefined;
if(isdefined(self.var_4C8C) && isdefined(self.var_4C8C[param_00]))
{
if(isarray(self.var_4C8C[param_00]))
{
var_03 = scripts\anim\utility::func_1E9D(self.var_4C8C[param_00],self.var_4C8D[param_00]);
}
else
{
var_03 = self.var_4C8C[param_01];
var_04 = param_00 + "_add";
if(isdefined(self.var_4C8C[var_04]))
{
var_02 = self.var_4C8C[var_04];
}
}
}
else if(isdefined(level.var_DD76) && param_01 == "stand" || param_01 == "stand_cqb" && isdefined(self.var_32D4) && self.var_32D4 == 1)
{
var_03 = scripts\anim\utility::func_1E9D(level.var_DD76["stand"][0],level.var_DD77["stand"][0]);
}
else
{
var_05 = scripts\anim\utility::func_B028("idle");
var_06 = scripts\anim\utility::func_B028("idle_weights");
param_01 = param_01 % var_05[param_00].size;
var_03 = scripts\anim\utility::func_1E9D(var_05[param_00][param_01],var_06[param_00][param_01]);
}
var_07 = 0.2;
if(gettime() == self.var_1491.var_EF87)
{
var_07 = 0.5;
}
if(isdefined(var_02))
{
self method_82A5(var_03,%body,1,var_07,1);
self method_82A2(%add_idle);
self method_82E4("idle",var_02,%add_idle,1,var_07,self.var_1FC6);
}
else
{
self method_82E4("idle",var_03,%body,1,var_07,self.var_1FC6);
}
scripts\anim\shared::func_592B("idle");
}
//Function Number: 9
func_DA85()
{
if(self.var_1491.var_D6A5 != "prone")
{
return;
}
thread func_12EF5();
if(randomint(10) < 3)
{
var_00 = scripts\anim\utility::func_B027("cover_prone","twitch");
var_01 = var_00[randomint(var_00.size)];
self method_82E3("prone_idle",var_01,%exposed_modern,1,0.2);
}
else
{
self method_82A5(scripts\anim\utility::func_B027("cover_prone","straight_level"),%exposed_modern,1,0.2);
self method_82E2("prone_idle",scripts\anim\utility::func_B027("cover_prone","exposed_idle")[0],1,0.2);
}
self waittillmatch("end","prone_idle");
self notify("kill UpdateProneThread");
}
//Function Number: 10
func_12EF5()
{
self endon("killanimscript");
self endon("kill UpdateProneThread");
for(;;)
{
scripts\anim\cover_prone::func_12EF6(0.1);
wait(0.1);
}
}
//Function Number: 11
func_50FE()
{
self endon("killanimscript");
wait(0.05);
[[ self.var_68C6["stop"] ]]();
}

View File

@ -0,0 +1,355 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\track.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 9
* Decompile Time: 481 ms
* Timestamp: 10/27/2023 12:01:06 AM
*******************************************************************/
//Function Number: 1
func_11B07()
{
self endon("killanimscript");
self endon("stop tracking");
self endon("melee");
func_11AF8(%aim_2,%aim_4,%aim_6,%aim_8);
}
//Function Number: 2
func_11AF8(param_00,param_01,param_02,param_03,param_04)
{
var_05 = 0;
var_06 = 0;
var_07 = (0,0,0);
var_08 = 1;
var_09 = 0;
var_0A = 0;
var_0B = 10;
var_0C = (0,0,0);
if(self.type == "dog")
{
var_0D = 0;
self.var_FE9E = self.var_10C;
}
else
{
var_0D = 1;
var_0E = 0;
var_0F = 0;
if(isdefined(self.var_4716))
{
var_0E = level.var_4717;
}
var_10 = self.script;
if((var_10 == "cover_left" || var_10 == "cover_right") && isdefined(self.var_1491.var_4667) && self.var_1491.var_4667 == "lean")
{
var_0F = self.var_473C.angles[1] - self.angles[1];
}
var_0C = (var_0E,var_0F,0);
}
for(;;)
{
func_93E2();
var_11 = scripts\anim\shared::func_811C();
var_12 = self.var_FECF;
if(isdefined(self.var_FE9E))
{
var_12 = self.var_FE9E method_815B();
}
if(!isdefined(var_12) && scripts\anim\utility::func_FFDB())
{
var_12 = func_11AFB(var_11);
}
var_13 = isdefined(self.var_C59B) || isdefined(self.var_C4C7);
var_14 = isdefined(var_12);
var_15 = (0,0,0);
if(var_14)
{
var_15 = var_12;
}
var_16 = 0;
var_17 = isdefined(self.var_10F8C);
if(var_17)
{
var_16 = self.var_10F8C;
}
var_07 = self method_80FA(var_11,var_15,var_14,var_0C,var_16,var_17,var_13);
var_18 = var_07[0];
var_19 = var_07[1];
var_07 = undefined;
if(scripts\common\utility::func_167E())
{
var_1A = self.angles[2] * -1;
var_1B = var_18 * cos(var_1A) - var_19 * sin(var_1A);
var_1C = var_18 * sin(var_1A) + var_19 * cos(var_1A);
var_18 = var_1B;
var_19 = var_1C;
var_18 = clamp(var_18,self.var_368,self.var_100);
var_19 = clamp(var_19,self.var_268,self.var_1B7);
}
if(var_0A > 0)
{
var_0A = var_0A - 1;
var_0B = max(10,var_0B - 5);
}
else if(self.var_25F && self.var_25F != var_09)
{
var_0A = 2;
var_0B = 30;
}
else
{
var_0B = 10;
}
var_1D = squared(var_0B);
var_09 = self.var_25F;
var_1E = self.var_1F5 != "stop" || !var_08;
if(var_1E)
{
var_1F = var_19 - var_05;
if(squared(var_1F) > var_1D)
{
var_19 = var_05 + clamp(var_1F,-1 * var_0B,var_0B);
var_19 = clamp(var_19,self.var_268,self.var_1B7);
}
var_20 = var_18 - var_06;
if(squared(var_20) > var_1D)
{
var_18 = var_06 + clamp(var_20,-1 * var_0B,var_0B);
var_18 = clamp(var_18,self.var_368,self.var_100);
}
}
var_08 = 0;
var_05 = var_19;
var_06 = var_18;
func_11AFE(param_00,param_01,param_02,param_03,param_04,var_18,var_19);
wait(0.05);
}
}
//Function Number: 3
func_11AFB(param_00)
{
var_01 = undefined;
var_02 = anglestoforward(self.angles);
if(isdefined(self.var_4792))
{
var_01 = self.var_4792 method_815B();
if(isdefined(self.var_4796))
{
if(vectordot(vectornormalize(var_01 - param_00),var_02) < 0.177)
{
var_01 = undefined;
}
}
else if(vectordot(vectornormalize(var_01 - param_00),var_02) < 0.643)
{
var_01 = undefined;
}
}
if(!isdefined(var_01) && isdefined(self.var_478F))
{
var_01 = self.var_478F;
if(isdefined(self.var_4795))
{
if(vectordot(vectornormalize(var_01 - param_00),var_02) < 0.177)
{
var_01 = undefined;
}
}
else if(vectordot(vectornormalize(var_01 - param_00),var_02) < 0.643)
{
var_01 = undefined;
}
}
return var_01;
}
//Function Number: 4
func_11AF9(param_00,param_01)
{
if(scripts\anim\utility_common::func_DDC9())
{
var_02 = self.var_10C method_815B() - self.var_10C.origin;
var_03 = self lastknownpos(self.var_10C) + var_02;
return func_11AFC(var_03 - param_00,param_01);
}
var_04 = 0;
var_05 = 0;
if(isdefined(self.var_205) && isdefined(level.var_9D8E[self.var_205.type]) && distancesquared(self.origin,self.var_205.origin) < 16)
{
var_05 = angleclamp180(self.var_205.angles[1] - self.angles[1]);
}
else
{
var_06 = self method_80FC();
if(isdefined(var_06))
{
var_05 = angleclamp180(var_06[1] - self.angles[1]);
var_04 = angleclamp180(var_06[0]);
}
}
return (var_04,var_05,0);
}
//Function Number: 5
func_11AFC(param_00,param_01)
{
var_02 = vectortoangles(param_00);
var_03 = 0;
var_04 = 0;
if(self.var_2C0 == "up")
{
var_03 = 40;
}
else if(self.var_2C0 == "down")
{
var_03 = -40;
var_04 = -12;
}
var_05 = var_02[0];
var_05 = angleclamp180(var_05 + param_01[0] + var_03);
if(isdefined(self.var_10F8C))
{
var_06 = var_02[1] - self.var_10F8C;
}
else
{
var_07 = angleclamp180(self.var_EC - self.angles[1]) * 0.5;
var_06 = var_02[1] - var_07 + self.angles[1];
}
var_06 = angleclamp180(var_06 + param_01[1] + var_04);
return (var_05,var_06,0);
}
//Function Number: 6
func_11AFA(param_00,param_01,param_02)
{
if(isdefined(self.var_C59B) || isdefined(self.var_C4C7))
{
if(param_01 > self.var_1B7 || param_01 < self.var_268)
{
param_01 = 0;
}
if(param_00 > self.var_100 || param_00 < self.var_368)
{
param_00 = 0;
}
}
else if(param_02 && abs(param_01) > level.var_B480 || abs(param_00) > level.var_B47F)
{
param_01 = 0;
param_00 = 0;
}
else
{
if(self.var_16B)
{
param_01 = clamp(param_01,-10,10);
}
else
{
param_01 = clamp(param_01,self.var_268,self.var_1B7);
}
param_00 = clamp(param_00,self.var_368,self.var_100);
}
return (param_00,param_01,0);
}
//Function Number: 7
func_11AFE(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
var_07 = 0;
var_08 = 0;
var_09 = 0;
var_0A = 0;
var_0B = 0;
if(param_06 < 0)
{
var_0A = param_06 / self.var_268 * self.var_1491.var_1A4B;
var_09 = 1;
}
else if(param_06 > 0)
{
var_08 = param_06 / self.var_1B7 * self.var_1491.var_1A4B;
var_09 = 1;
}
if(param_05 < 0)
{
var_0B = param_05 / self.var_368 * self.var_1491.var_1A4B;
var_09 = 1;
}
else if(param_05 > 0)
{
var_07 = param_05 / self.var_100 * self.var_1491.var_1A4B;
var_09 = 1;
}
self method_82AC(param_00,var_07,0.1,1,1);
self method_82AC(param_01,var_08,0.1,1,1);
self method_82AC(param_02,var_0A,0.1,1,1);
self method_82AC(param_03,var_0B,0.1,1,1);
if(isdefined(param_04))
{
self method_82AC(param_04,var_09,0.1,1,1);
}
}
//Function Number: 8
func_F641(param_00,param_01)
{
if(!isdefined(param_01) || param_01 <= 0)
{
self.var_1491.var_1A4B = param_00;
self.var_1491.var_1A4D = param_00;
self.var_1491.var_1A4C = param_00;
self.var_1491.var_1A4F = 0;
}
else
{
if(!isdefined(self.var_1491.var_1A4B))
{
self.var_1491.var_1A4B = 0;
}
self.var_1491.var_1A4D = self.var_1491.var_1A4B;
self.var_1491.var_1A4C = param_00;
self.var_1491.var_1A4F = int(param_01 * 20);
}
self.var_1491.var_1A4E = 0;
}
//Function Number: 9
func_93E2()
{
if(self.var_1491.var_1A4E < self.var_1491.var_1A4F)
{
self.var_1491.var_1A4E++;
var_00 = 1 * self.var_1491.var_1A4E / self.var_1491.var_1A4F;
self.var_1491.var_1A4B = self.var_1491.var_1A4D * 1 - var_00 + self.var_1491.var_1A4C * var_00;
}
}

View File

@ -0,0 +1,15 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\traverse\c6worker_climbup_96_double.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 70 ms
* Timestamp: 10/26/2023 11:59:17 PM
*******************************************************************/
//Function Number: 1
main()
{
self waittill("killanimscript");
}

View File

@ -0,0 +1,15 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\traverse\c6worker_climbup_96_single.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 71 ms
* Timestamp: 10/26/2023 11:59:17 PM
*******************************************************************/
//Function Number: 1
main()
{
self waittill("killanimscript");
}

View File

@ -0,0 +1,15 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\traverse\c6worker_jumpacross_rail_to_rail.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 73 ms
* Timestamp: 10/26/2023 11:59:18 PM
*******************************************************************/
//Function Number: 1
main()
{
self waittill("killanimscript");
}

View File

@ -0,0 +1,15 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\traverse\c6worker_jumpdown_high.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 71 ms
* Timestamp: 10/26/2023 11:59:18 PM
*******************************************************************/
//Function Number: 1
main()
{
self waittill("killanimscript");
}

View File

@ -0,0 +1,15 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\traverse\c6worker_jumpdown_left.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 77 ms
* Timestamp: 10/26/2023 11:59:18 PM
*******************************************************************/
//Function Number: 1
main()
{
self waittill("killanimscript");
}

View File

@ -0,0 +1,15 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\traverse\c6worker_jumpdown_med.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 73 ms
* Timestamp: 10/26/2023 11:59:18 PM
*******************************************************************/
//Function Number: 1
main()
{
self waittill("killanimscript");
}

Some files were not shown because too many files have changed in this diff Show More