IL-GSC/AW/PC/animscripts/animmode.gsc
InfinityLoader b2389dbcb9 Full AW Dump
2024-04-22 02:38:24 -04:00

131 lines
3.1 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animmode.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 40 ms
* Timestamp: 4/22/2024 1:59:48 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("death");
self endon("stop_animmode");
self notify("killanimscript");
self._tag_entity endon(self._anime);
if(isdefined(self._custom_anim_thread))
{
self thread [[ self._custom_anim_thread ]]();
self._custom_anim_thread = undefined;
}
var_00 = isdefined(self._custom_anim_loop) && self._custom_anim_loop;
if(var_00)
{
self endon("stop_loop");
self._custom_anim_loop = undefined;
}
else
{
thread notify_on_end(self._anime);
}
var_01 = self._anime;
self._anime = undefined;
var_02 = 0;
if(var_00 || isarray(level.scr_anim[self._animname][var_01]))
{
var_02 = level.scr_anim[self._animname][var_01].size;
var_03 = level.scr_anim[self._animname][var_01][randomint(var_02)];
}
else
{
var_03 = level.scr_anim[self._animname][var_02];
}
var_04 = getstartorigin(self._tag_entity.origin,self._tag_entity.angles,var_03);
var_05 = getstartangles(self._tag_entity.origin,self._tag_entity.angles,var_03);
var_06 = self getdroptofloorposition(var_04);
if(isdefined(var_06))
{
var_04 = var_06;
}
else
{
}
if(!isdefined(self.noteleport))
{
self teleport(var_04,var_05);
}
self.pushable = 0;
var_07 = 0.3;
var_08 = 0.2;
if(isdefined(self.anim_blend_time_override))
{
var_07 = self.anim_blend_time_override;
var_08 = self.anim_blend_time_override;
}
self animmode(self._animmode);
self clearanim(self.root_anim,var_07);
self orientmode("face angle",var_05[1]);
var_09 = "custom_animmode";
self setflaggedanimrestart(var_09,var_03,1,var_08,1);
self._tag_entity thread maps\_anim::start_notetrack_wait(self,var_09,var_01,self._animname,var_03);
self._tag_entity thread maps\_anim::animscriptdonotetracksthread(self,var_09,var_01);
var_0A = self._tag_entity;
self._tag_entity = undefined;
self._animmode = 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.scr_anim[self._animname][var_01][randomint(var_02)];
self setflaggedanimknoblimitedrestart(var_09,var_03,1,0.2,1);
if(isdefined(var_0A))
{
var_0A thread maps\_anim::start_notetrack_wait(self,var_09,var_01,self._animname,var_03);
var_0A thread maps\_anim::animscriptdonotetracksthread(self,var_09,var_01);
}
continue;
}
break;
}
if(var_0B != "end")
{
self orientmode("face motion");
}
self notify("finished_custom_animmode" + var_01);
}
//Function Number: 2
notify_on_end(param_00)
{
self endon("death");
self endon("finished_custom_animmode" + param_00);
self waittill("killanimscript");
self notify("finished_custom_animmode" + param_00);
}