mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-17 05:28:02 -05:00
856 lines
16 KiB
Plaintext
856 lines
16 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: animscripts\cover_wall.gsc
|
|
* Game: Call of Duty: Modern Warfare 3
|
|
* Platform: Console
|
|
* Function Count: 35
|
|
* Decompile Time: 577 ms
|
|
* Timestamp: 10/27/2023 2:30:18 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
cover_wall_think(param_00)
|
|
{
|
|
self endon("killanimscript");
|
|
self.covernode = self.node;
|
|
self.covertype = param_00;
|
|
if(!isdefined(self.node.turret))
|
|
{
|
|
animscripts/cover_behavior::func_B5C(0);
|
|
}
|
|
|
|
if(param_00 == "crouch")
|
|
{
|
|
setup_cover_crouch("unknown");
|
|
self.covernode func_0B6A();
|
|
}
|
|
else
|
|
{
|
|
setup_cover_stand("unknown");
|
|
}
|
|
|
|
self.a.aimidlethread = undefined;
|
|
self orientmode("face angle",self.covernode.angles[1]);
|
|
if(isdefined(self.weapon) && animscripts/utility::usingmg() && isdefined(self.node) && isdefined(self.node.turretinfo) && canspawnturret())
|
|
{
|
|
if(param_00 == "crouch")
|
|
{
|
|
if(isrpd(self.weapon))
|
|
{
|
|
var_01 = "rpd_bipod_crouch";
|
|
}
|
|
else
|
|
{
|
|
var_01 = "saw_bipod_crouch";
|
|
}
|
|
}
|
|
else if(isrpd(self.weapon))
|
|
{
|
|
var_01 = "rpd_bipod_stand";
|
|
}
|
|
else
|
|
{
|
|
var_01 = "saw_bipod_stand";
|
|
}
|
|
|
|
if(isrpd(self.weapon))
|
|
{
|
|
var_02 = "weapon_rpd_MG_Setup";
|
|
}
|
|
else
|
|
{
|
|
var_02 = "weapon_saw_MG_Setup";
|
|
}
|
|
|
|
useselfplacedturret(var_01,var_02);
|
|
}
|
|
else if(isdefined(self.node) && isdefined(self.node.turret))
|
|
{
|
|
func_0B92();
|
|
}
|
|
|
|
self animmode("normal");
|
|
if(param_00 == "crouch" && self.a.var_911 == "stand")
|
|
{
|
|
var_03 = animscripts/utility::animarray("stand_2_hide");
|
|
var_04 = getanimlength(var_03);
|
|
self setanimknoballrestart(var_03,%body,1,0.2,animscripts/combat_utility::fasteranimspeed());
|
|
thread animscripts/shared::movetooriginovertime(self.covernode.origin,var_04);
|
|
wait var_04;
|
|
self.a.var_8E3 = "hide";
|
|
}
|
|
else
|
|
{
|
|
loophide(0.4);
|
|
if(distancesquared(self.origin,self.covernode.origin) > 1)
|
|
{
|
|
thread animscripts/shared::movetooriginovertime(self.covernode.origin,0.4);
|
|
wait 0.2;
|
|
if(param_00 == "crouch")
|
|
{
|
|
self.a.var_911 = "crouch";
|
|
}
|
|
|
|
wait 0.2;
|
|
}
|
|
else
|
|
{
|
|
wait 0.1;
|
|
}
|
|
}
|
|
|
|
self animmode("zonly_physics");
|
|
if(param_00 == "crouch")
|
|
{
|
|
if(self.a.var_911 == "prone")
|
|
{
|
|
animscripts/utility::exitpronewrapper(1);
|
|
}
|
|
|
|
self.a.var_911 = "crouch";
|
|
}
|
|
|
|
if(self.covertype == "stand")
|
|
{
|
|
self.a.special = "cover_stand";
|
|
}
|
|
else
|
|
{
|
|
self.a.special = "cover_crouch";
|
|
}
|
|
|
|
var_05 = spawnstruct();
|
|
if(!self.fixednode)
|
|
{
|
|
var_05.var_B22 = ::animscripts/cover_behavior::func_B22;
|
|
}
|
|
|
|
var_05.reload = ::coverreload;
|
|
var_05.leavecoverandshoot = ::popupandshoot;
|
|
var_05.look = ::look;
|
|
var_05.fastlook = ::fastlook;
|
|
var_05.idle = ::idle;
|
|
var_05.flinch = ::flinch;
|
|
var_05.grenade = ::trythrowinggrenade;
|
|
var_05.grenadehidden = ::trythrowinggrenadestayhidden;
|
|
var_05.blindfire = ::blindfire;
|
|
animscripts/cover_behavior::main(var_05);
|
|
}
|
|
|
|
//Function Number: 2
|
|
isrpd(param_00)
|
|
{
|
|
return getsubstr(param_00,0,3) == "rpd" && param_00.size == 3 || param_00[3] == "_";
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_0B6A()
|
|
{
|
|
if(isdefined(self.crouchingisok))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_00 = (0,0,42);
|
|
var_01 = anglestoforward(self.angles);
|
|
self.crouchingisok = sighttracepassed(self.origin + var_00,self.origin + var_00 + var_01 * 64,0,undefined);
|
|
}
|
|
|
|
//Function Number: 4
|
|
setup_cover_crouch(param_00)
|
|
{
|
|
self setdefaultaimlimits(self.covernode);
|
|
func_0B94(param_00);
|
|
}
|
|
|
|
//Function Number: 5
|
|
setup_cover_stand(param_00)
|
|
{
|
|
self setdefaultaimlimits(self.covernode);
|
|
setup_standing_anim_array(param_00);
|
|
}
|
|
|
|
//Function Number: 6
|
|
coverreload()
|
|
{
|
|
animscripts/combat_utility::reload(2,animscripts/utility::animarray("reload"));
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 7
|
|
popupandshoot()
|
|
{
|
|
self.keepclaimednodeifvalid = 1;
|
|
if(isdefined(self.rambochance) && randomfloat(1) < self.rambochance)
|
|
{
|
|
if(func_0B76())
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
if(!pop_up())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
func_0B73();
|
|
animscripts/combat_utility::endfireandanimidlethread();
|
|
if(isdefined(self.shootpos))
|
|
{
|
|
var_00 = lengthsquared(self.origin - self.shootpos);
|
|
if(animscripts/utility::usingrocketlauncher() && var_00 < squared(512) || self.a.rockets < 1)
|
|
{
|
|
if(self.a.var_911 == "stand")
|
|
{
|
|
animscripts/shared::throwdownweapon(%rpg_stand_throw);
|
|
}
|
|
else
|
|
{
|
|
animscripts/shared::throwdownweapon(%rpg_crouch_throw);
|
|
}
|
|
}
|
|
}
|
|
|
|
go_to_hide();
|
|
self.var_897 = undefined;
|
|
self.keepclaimednodeifvalid = 0;
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_0B73()
|
|
{
|
|
self endon("return_to_cover");
|
|
maps\_gameskill::didsomethingotherthanshooting();
|
|
for(;;)
|
|
{
|
|
if(isdefined(self.shouldreturntocover))
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(!isdefined(self.shootpos))
|
|
{
|
|
self waittill("do_slow_things");
|
|
waittillframeend;
|
|
if(isdefined(self.shootpos))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
if(!self.bulletsinclip)
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(self.covertype == "crouch" && needtochangecovermode())
|
|
{
|
|
break;
|
|
}
|
|
|
|
shootuntilshootbehaviorchange_coverwall();
|
|
self clearanim(%add_fire,0.2);
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
shootuntilshootbehaviorchange_coverwall()
|
|
{
|
|
if(self.covertype == "crouch")
|
|
{
|
|
thread anglerangethread();
|
|
}
|
|
|
|
thread animscripts/combat_utility::aimidlethread();
|
|
animscripts/combat_utility::shootuntilshootbehaviorchange();
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_0B76()
|
|
{
|
|
if(!animscripts/utility::hasenemysightpos())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = "rambo";
|
|
if(randomint(10) < 2)
|
|
{
|
|
var_00 = "rambo_fail";
|
|
}
|
|
|
|
if(!animscripts/utility::animarrayanyexist(var_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.covertype == "crouch" && !self.covernode.crouchingisok)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_01 = getshootpospitch(self.covernode.origin + animscripts/utility::getnodeoffset(self.covernode));
|
|
if(var_01 > 15)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_02 = anglestoforward(self.angles);
|
|
var_03 = self.origin + var_02 * -16;
|
|
if(!self maymovetopoint(var_03))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
self.var_8E8 = gettime();
|
|
self animmode("zonly_physics");
|
|
self.keepclaimednodeifvalid = 1;
|
|
self.isrambo = 1;
|
|
self.a.prevattack = "rambo";
|
|
self.var_8C8 = 1;
|
|
thread animscripts/shared::ramboaim(0);
|
|
var_04 = animscripts/utility::animarraypickrandom(var_00);
|
|
self setflaggedanimknoballrestart("rambo",var_04,%body,1,0.2,1);
|
|
animscripts/shared::donotetracks("rambo");
|
|
self notify("rambo_aim_end");
|
|
self.var_8C8 = 0;
|
|
self.keepclaimednodeifvalid = 0;
|
|
self.var_B7C = gettime();
|
|
self.var_8C8 = 0;
|
|
self.isrambo = undefined;
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 11
|
|
idle()
|
|
{
|
|
self endon("end_idle");
|
|
for(;;)
|
|
{
|
|
var_00 = randomint(2) == 0 && animscripts/utility::animarrayanyexist("hide_idle_twitch");
|
|
if(var_00)
|
|
{
|
|
var_01 = animscripts/utility::animarraypickrandom("hide_idle_twitch");
|
|
}
|
|
else
|
|
{
|
|
var_01 = animscripts/utility::animarray("hide_idle");
|
|
}
|
|
|
|
playidleanimation(var_01,var_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 12
|
|
flinch()
|
|
{
|
|
if(!animscripts/utility::animarrayanyexist("hide_idle_flinch"))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = anglestoforward(self.angles);
|
|
var_01 = self.origin + var_00 * -16;
|
|
if(!self maymovetopoint(var_01))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
self animmode("zonly_physics");
|
|
self.keepclaimednodeifvalid = 1;
|
|
var_02 = animscripts/utility::animarraypickrandom("hide_idle_flinch");
|
|
playidleanimation(var_02,1);
|
|
self.keepclaimednodeifvalid = 0;
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 13
|
|
playidleanimation(param_00,param_01)
|
|
{
|
|
if(param_01)
|
|
{
|
|
self setflaggedanimknoballrestart("idle",param_00,%body,1,0.25,1);
|
|
}
|
|
else
|
|
{
|
|
self setflaggedanimknoball("idle",param_00,%body,1,0.25,1);
|
|
}
|
|
|
|
self.a.var_8E3 = "hide";
|
|
animscripts/shared::donotetracks("idle");
|
|
}
|
|
|
|
//Function Number: 14
|
|
look(param_00)
|
|
{
|
|
if(!isdefined(self.a.array["hide_to_look"]))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!peekout())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
animscripts/shared::func_B7E(animscripts/utility::animarray("look_idle"),param_00);
|
|
var_01 = undefined;
|
|
if(animscripts/utility::issuppressedwrapper())
|
|
{
|
|
var_01 = animscripts/utility::animarray("look_to_hide_fast");
|
|
}
|
|
else
|
|
{
|
|
var_01 = animscripts/utility::animarray("look_to_hide");
|
|
}
|
|
|
|
self setflaggedanimknoballrestart("looking_end",var_01,%body,1,0.1);
|
|
animscripts/shared::donotetracks("looking_end");
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 15
|
|
peekout()
|
|
{
|
|
if(isdefined(self.covernode.script_dontpeek))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
self setflaggedanimknoball("looking_start",animscripts/utility::animarray("hide_to_look"),%body,1,0.2);
|
|
animscripts/shared::donotetracks("looking_start");
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 16
|
|
fastlook()
|
|
{
|
|
self setflaggedanimknoballrestart("look",animscripts/utility::animarraypickrandom("look"),%body,1,0.1);
|
|
animscripts/shared::donotetracks("look");
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 17
|
|
pop_up_and_hide_speed()
|
|
{
|
|
if(self.a.var_8E3 == "left" || self.a.var_8E3 == "right" || self.a.var_8E3 == "over")
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return animscripts/combat_utility::randomfasteranimspeed();
|
|
}
|
|
|
|
//Function Number: 18
|
|
pop_up()
|
|
{
|
|
var_00 = getbestcovermode();
|
|
var_01 = 0.1;
|
|
var_02 = animscripts/utility::animarray("hide_2_" + var_00);
|
|
if(!self maymovetopoint(animscripts/utility::getanimendpos(var_02)))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.script == "cover_crouch" && var_00 == "lean")
|
|
{
|
|
self.var_897 = 1;
|
|
}
|
|
|
|
if(self.covertype == "crouch")
|
|
{
|
|
setup_cover_crouch(var_00);
|
|
}
|
|
else
|
|
{
|
|
setup_cover_stand(var_00);
|
|
}
|
|
|
|
self.a.special = "none";
|
|
self.specialdeathfunc = undefined;
|
|
if(self.covertype == "stand")
|
|
{
|
|
self.a.special = "cover_stand_aim";
|
|
}
|
|
else
|
|
{
|
|
self.a.special = "cover_crouch_aim";
|
|
}
|
|
|
|
self.var_8C8 = 1;
|
|
self notify("done_changing_cover_pos");
|
|
self animmode("zonly_physics");
|
|
var_03 = pop_up_and_hide_speed();
|
|
self setflaggedanimknoballrestart("pop_up",var_02,%body,1,0.1,var_03);
|
|
thread func_0B85("pop_up");
|
|
if(animhasnotetrack(var_02,"start_aim"))
|
|
{
|
|
self waittillmatch("start_aim","pop_up");
|
|
var_01 = getanimlength(var_02) / var_03 * 1 - self getanimtime(var_02);
|
|
}
|
|
else
|
|
{
|
|
self waittillmatch("end","pop_up");
|
|
var_01 = 0.1;
|
|
}
|
|
|
|
self clearanim(var_02,var_01 + 0.05);
|
|
self.a.var_8E3 = var_00;
|
|
self.a.prevattack = var_00;
|
|
setup_additive_aim(var_01);
|
|
thread animscripts/track::trackshootentorpos();
|
|
wait var_01;
|
|
if(animscripts/combat_utility::issniper())
|
|
{
|
|
thread animscripts/shoot_behavior::sniper_glint_behavior();
|
|
}
|
|
|
|
self.var_8C8 = 0;
|
|
self.var_8E8 = gettime();
|
|
self notify("stop_popup_donotetracks");
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_0B85(param_00)
|
|
{
|
|
self endon("killanimscript");
|
|
self endon("stop_popup_donotetracks");
|
|
animscripts/shared::donotetracks(param_00);
|
|
}
|
|
|
|
//Function Number: 20
|
|
setup_additive_aim(param_00)
|
|
{
|
|
if(self.a.var_8E3 == "left" || self.a.var_8E3 == "right")
|
|
{
|
|
var_01 = "crouch";
|
|
}
|
|
else
|
|
{
|
|
var_01 = self.a.var_8E3;
|
|
}
|
|
|
|
self setanimknoball(animscripts/utility::animarray(var_01 + "_aim"),%body,1,param_00);
|
|
if(var_01 == "crouch")
|
|
{
|
|
self setanimlimited(%covercrouch_aim2_add,1,0);
|
|
self setanimlimited(%covercrouch_aim4_add,1,0);
|
|
self setanimlimited(%covercrouch_aim6_add,1,0);
|
|
self setanimlimited(%covercrouch_aim8_add,1,0);
|
|
return;
|
|
}
|
|
|
|
if(var_01 == "stand")
|
|
{
|
|
self setanimlimited(%exposed_aim_2,1,0);
|
|
self setanimlimited(%exposed_aim_4,1,0);
|
|
self setanimlimited(%exposed_aim_6,1,0);
|
|
self setanimlimited(%exposed_aim_8,1,0);
|
|
return;
|
|
}
|
|
|
|
if(var_01 == "lean")
|
|
{
|
|
self setanimlimited(%exposed_aim_2,1,0);
|
|
self setanimlimited(%exposed_aim_4,1,0);
|
|
self setanimlimited(%exposed_aim_6,1,0);
|
|
self setanimlimited(%exposed_aim_8,1,0);
|
|
return;
|
|
}
|
|
|
|
if(var_01 == "over")
|
|
{
|
|
self setanimlimited(%coverstandaim_aim2_add,1,0);
|
|
self setanimlimited(%coverstandaim_aim4_add,1,0);
|
|
self setanimlimited(%coverstandaim_aim6_add,1,0);
|
|
self setanimlimited(%coverstandaim_aim8_add,1,0);
|
|
return;
|
|
}
|
|
}
|
|
|
|
//Function Number: 21
|
|
go_to_hide()
|
|
{
|
|
self notify("return_to_cover");
|
|
self.var_8C8 = 1;
|
|
self notify("done_changing_cover_pos");
|
|
animscripts/combat_utility::endaimidlethread();
|
|
var_00 = pop_up_and_hide_speed();
|
|
self setflaggedanimknoball("go_to_hide",animscripts/utility::animarray(self.a.var_8E3 + "_2_hide"),%body,1,0.2,var_00);
|
|
self clearanim(%exposed_modern,0.2);
|
|
animscripts/shared::donotetracks("go_to_hide");
|
|
self.a.var_8E3 = "hide";
|
|
if(self.covertype == "stand")
|
|
{
|
|
self.a.special = "cover_stand";
|
|
}
|
|
else
|
|
{
|
|
self.a.special = "cover_crouch";
|
|
}
|
|
|
|
self.var_8C8 = 0;
|
|
}
|
|
|
|
//Function Number: 22
|
|
trythrowinggrenadestayhidden(param_00)
|
|
{
|
|
return trythrowinggrenade(param_00,1);
|
|
}
|
|
|
|
//Function Number: 23
|
|
trythrowinggrenade(param_00,param_01)
|
|
{
|
|
if(isdefined(self.dontevershoot) || isdefined(param_00.dontattackme))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_02 = undefined;
|
|
if(isdefined(self.rambochance) && randomfloat(1) < self.rambochance)
|
|
{
|
|
var_02 = animscripts/utility::animarraypickrandom("grenade_rambo");
|
|
}
|
|
else if(isdefined(param_01) && param_01)
|
|
{
|
|
var_02 = animscripts/utility::animarraypickrandom("grenade_safe");
|
|
}
|
|
else
|
|
{
|
|
var_02 = animscripts/utility::animarraypickrandom("grenade_exposed");
|
|
}
|
|
|
|
self animmode("zonly_physics");
|
|
self.keepclaimednodeifvalid = 1;
|
|
var_03 = animscripts/combat_utility::trygrenade(param_00,var_02);
|
|
self.keepclaimednodeifvalid = 0;
|
|
return var_03;
|
|
}
|
|
|
|
//Function Number: 24
|
|
blindfire()
|
|
{
|
|
if(!animscripts/utility::animarrayanyexist("blind_fire"))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
self animmode("zonly_physics");
|
|
self.keepclaimednodeifvalid = 1;
|
|
self setflaggedanimknoballrestart("blindfire",animscripts/utility::animarraypickrandom("blind_fire"),%body,1,0.2,1);
|
|
animscripts/shared::donotetracks("blindfire");
|
|
self.keepclaimednodeifvalid = 0;
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 25
|
|
createturret(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_B8E = self;
|
|
var_03 setmodel(param_02);
|
|
var_03 makeusable();
|
|
var_03 setdefaultdroppitch(0);
|
|
if(isdefined(param_00.leftarc))
|
|
{
|
|
var_03.leftarc = param_00.leftarc;
|
|
}
|
|
|
|
if(isdefined(param_00.rightarc))
|
|
{
|
|
var_03.rightarc = param_00.rightarc;
|
|
}
|
|
|
|
if(isdefined(param_00.toparc))
|
|
{
|
|
var_03.toparc = param_00.toparc;
|
|
}
|
|
|
|
if(isdefined(param_00.bottomarc))
|
|
{
|
|
var_03.bottomarc = param_00.bottomarc;
|
|
}
|
|
|
|
return var_03;
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_0B8F(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: 27
|
|
useselfplacedturret(param_00,param_01)
|
|
{
|
|
var_02 = createturret(self.node.turretinfo,param_00,param_01);
|
|
if(self useturret(var_02))
|
|
{
|
|
var_02 thread func_0B8F(self);
|
|
if(isdefined(self.turret_function))
|
|
{
|
|
thread [[ self.turret_function ]](var_02);
|
|
}
|
|
|
|
self waittill("turret_use_failed");
|
|
return;
|
|
}
|
|
|
|
var_02 delete();
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_0B92()
|
|
{
|
|
var_00 = self.node.turret;
|
|
if(!var_00.issetup)
|
|
{
|
|
return;
|
|
}
|
|
|
|
thread maps\_mg_penetration::gunner_think(var_00);
|
|
self waittill("continue_cover_script");
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_0B94(param_00)
|
|
{
|
|
var_01 = [];
|
|
if(animscripts/utility::weapon_pump_action_shotgun())
|
|
{
|
|
if(var_01 == "lean" || var_01 == "stand")
|
|
{
|
|
}
|
|
else
|
|
{
|
|
}
|
|
}
|
|
else
|
|
{
|
|
}
|
|
|
|
if(isdefined(level.ramboanims))
|
|
{
|
|
}
|
|
|
|
self.a.array = var_41;
|
|
}
|
|
|
|
//Function Number: 30
|
|
setup_standing_anim_array(param_00)
|
|
{
|
|
var_01 = [];
|
|
if(var_01 == "over")
|
|
{
|
|
}
|
|
else if(animscripts/utility::weapon_pump_action_shotgun())
|
|
{
|
|
}
|
|
else
|
|
{
|
|
}
|
|
|
|
if(isdefined(level.ramboanims))
|
|
{
|
|
}
|
|
|
|
self.a.array = var_41;
|
|
}
|
|
|
|
//Function Number: 31
|
|
loophide(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00 = 0.1;
|
|
}
|
|
|
|
self setanimknoballrestart(animscripts/utility::animarray("hide_idle"),%body,1,param_00);
|
|
self.a.var_8E3 = "hide";
|
|
}
|
|
|
|
//Function Number: 32
|
|
anglerangethread()
|
|
{
|
|
self endon("killanimscript");
|
|
self notify("newAngleRangeCheck");
|
|
self endon("newAngleRangeCheck");
|
|
self endon("return_to_cover");
|
|
for(;;)
|
|
{
|
|
if(needtochangecovermode())
|
|
{
|
|
break;
|
|
}
|
|
|
|
wait 0.1;
|
|
}
|
|
|
|
self notify("stopShooting");
|
|
}
|
|
|
|
//Function Number: 33
|
|
needtochangecovermode()
|
|
{
|
|
if(self.covertype != "crouch")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = getshootpospitch(self geteye());
|
|
if(self.a.var_8E3 == "lean")
|
|
{
|
|
return var_00 < 10;
|
|
}
|
|
|
|
return var_00 > 45;
|
|
}
|
|
|
|
//Function Number: 34
|
|
getbestcovermode()
|
|
{
|
|
var_00 = [];
|
|
if(self.covertype == "stand")
|
|
{
|
|
var_00 = self.covernode getvalidcoverpeekouts();
|
|
}
|
|
else
|
|
{
|
|
var_01 = getshootpospitch(self.covernode.origin + animscripts/utility::getnodeoffset(self.covernode));
|
|
if(var_01 > 30)
|
|
{
|
|
return "lean";
|
|
}
|
|
|
|
if(var_01 > 15 || !self.covernode.crouchingisok)
|
|
{
|
|
return "stand";
|
|
}
|
|
|
|
var_41 = self.covernode getvalidcoverpeekouts();
|
|
var_41[var_41.size] = "crouch";
|
|
}
|
|
|
|
return animscripts/combat_utility::getrandomcovermode(var_41);
|
|
}
|
|
|
|
//Function Number: 35
|
|
getshootpospitch(param_00)
|
|
{
|
|
var_01 = animscripts/utility::getenemyeyepos();
|
|
return angleclamp180(vectortoangles(var_01 - param_00)[0]);
|
|
} |