Files
IL-GSC/MW3/PC/SP/animscripts/dog/dog_stop.gsc
InfinityLoader d559c1d414 Added MW3 Scripts
2023-10-27 03:47:01 -04:00

174 lines
3.9 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\dog\dog_stop.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 6
* Decompile Time: 109 ms
* Timestamp: 10/27/2023 2:17:17 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("killanimscript");
self clearanim(%root,0.1);
self clearanim(%german_shepherd_idle,0.2);
self clearanim(%german_shepherd_attackidle_knob,0.2);
thread func_3B01("attackIdle");
for(;;)
{
if(func_3AFF())
{
self clearanim(%german_shepherd_idle,0.2);
func_3AFE();
}
else
{
self orientmode("face current");
self clearanim(%german_shepherd_attackidle_knob,0.2);
self setflaggedanimrestart("dog_idle",%german_shepherd_idle,1,0.2,self.var_10F7);
}
animscripts/shared::donotetracks("dog_idle");
if(isdefined(self.var_3AFC))
{
self.turnrate = self.var_3AFC;
self.var_3AFC = undefined;
}
}
}
//Function Number: 2
func_3AFD(param_00)
{
var_01 = self.enemy.origin - self.origin;
var_02 = length(var_01);
if(var_02 < 1)
{
return 1;
}
var_03 = anglestoforward(self.angles);
return var_03[0] * var_01[0] + var_03[1] * var_01[1] / var_02 > param_00;
}
//Function Number: 3
func_3AFE()
{
self clearanim(%german_shepherd_attackidle_knob,0.1);
if(func_3AFD(0.866))
{
self orientmode("face angle",self.angles[1]);
}
else
{
if(isdefined(self.enemy))
{
var_00 = vectortoyaw(self.enemy.origin - self.origin);
var_01 = angleclamp180(var_00 - self.angles[1]);
if(abs(var_01) > 10)
{
self orientmode("face enemy");
self.var_3AFC = self.turnrate;
self.turnrate = 0.3;
if(var_01 > 0)
{
var_02 = %german_shepherd_rotate_ccw;
}
else
{
var_02 = %german_shepherd_rotate_cw;
}
self setflaggedanimrestart("dog_turn",var_02,1,0.2,1);
animscripts/shared::donotetracks("dog_turn");
self.turnrate = self.var_3AFC;
self.var_3AFC = undefined;
self clearanim(%german_shepherd_rotate_cw,0.2);
self clearanim(%german_shepherd_rotate_ccw,0.2);
}
}
self orientmode("face angle",self.angles[1]);
}
if(func_3B00())
{
self setflaggedanimrestart("dog_idle",%german_shepherd_attackidle_growl,1,0.2,1);
return;
}
var_03 = 33;
var_04 = 66;
if(isdefined(self.mode))
{
if(self.mode == "growl")
{
var_03 = 15;
var_04 = 30;
}
else if(self.mode == "bark")
{
var_03 = 15;
var_04 = 85;
}
}
var_05 = randomint(100);
if(var_05 < var_03)
{
self setflaggedanimrestart("dog_idle",%german_shepherd_attackidle_b,1,0.2,self.var_10F7);
return;
}
if(var_05 < var_04)
{
self setflaggedanimrestart("dog_idle",%german_shepherd_attackidle_bark,1,0.2,self.var_10F7);
return;
}
self setflaggedanimrestart("dog_idle",%german_shepherd_attackidle_growl,1,0.2,self.var_10F7);
}
//Function Number: 4
func_3AFF()
{
return isdefined(self.enemy) && isalive(self.enemy) && distancesquared(self.origin,self.enemy.origin) < 1000000;
}
//Function Number: 5
func_3B00()
{
if(isdefined(self.var_23DB))
{
return 1;
}
if(!isalive(self.enemy))
{
return 1;
}
return !self cansee(self.enemy);
}
//Function Number: 6
func_3B01(param_00)
{
self endon("killanimscript");
self endon("stop tracking");
self clearanim(%german_shepherd_look_2,0);
self clearanim(%german_shepherd_look_4,0);
self clearanim(%german_shepherd_look_6,0);
self clearanim(%german_shepherd_look_8,0);
self setdefaultaimlimits();
self.var_716 = 90;
self.var_717 = -90;
self setanimlimited(level.var_3AF9[param_00][2],1,0);
self setanimlimited(level.var_3AF9[param_00][4],1,0);
self setanimlimited(level.var_3AF9[param_00][6],1,0);
self setanimlimited(level.var_3AF9[param_00][8],1,0);
animscripts/track::func_CC4(1,0.2);
animscripts/track::func_CAA(%german_shepherd_look_2,%german_shepherd_look_4,%german_shepherd_look_6,%german_shepherd_look_8);
}