Files
IL-GSC/GHOSTS/PC/SP/animscripts/move.gsc
2023-10-27 03:49:01 -04:00

1229 lines
26 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\move.gsc
* Game: Call of Duty: Ghosts
* Platform: PC
* Function Count: 40
* Decompile Time: 721 ms
* Timestamp: 10/27/2023 1:24:09 AM
*******************************************************************/
//Function Number: 1
func_450A()
{
var_00 = [];
var_00["fire"] = %exposed_shoot_auto_v3;
var_00["single"] = [%exposed_shoot_semi1];
var_00["single_shotgun"] = [%shotgun_stand_fire_1a,%shotgun_stand_fire_1b];
var_00["burst2"] = %exposed_shoot_burst3;
var_00["burst3"] = %exposed_shoot_burst3;
var_00["burst4"] = %exposed_shoot_burst4;
var_00["burst5"] = %exposed_shoot_burst5;
var_00["burst6"] = %exposed_shoot_burst6;
var_00["semi2"] = %exposed_shoot_semi2;
var_00["semi3"] = %exposed_shoot_semi3;
var_00["semi4"] = %exposed_shoot_semi4;
var_00["semi5"] = %exposed_shoot_semi5;
level.archetypes["soldier"]["shoot_while_moving"] = var_00;
var_00 = [];
var_00["shuffle_start_from_cover_left"] = %cornercrl_alert_2_shuffle;
var_00["shuffle_start_from_cover_right"] = %cornercrr_alert_2_shuffle;
var_00["shuffle_start_left"] = %covercrouch_hide_2_shufflel;
var_00["shuffle_start_right"] = %covercrouch_hide_2_shuffler;
var_00["shuffle_to_cover_left"] = %covercrouch_shufflel;
var_00["shuffle_end_to_cover_left"] = %cornercrl_shuffle_2_alert;
var_00["shuffle_to_cover_right"] = %covercrouch_shuffler;
var_00["shuffle_end_to_cover_right"] = %cornercrr_shuffle_2_alert;
var_00["shuffle_start_left_stand_to_stand"] = %coverstand_hide_2_shufflel;
var_00["shuffle_left_stand_to_stand"] = %coverstand_shufflel;
var_00["shuffle_end_left_stand_to_stand"] = %coverstand_shufflel_2_hide;
var_00["shuffle_start_right_stand_to_stand"] = %coverstand_hide_2_shuffler;
var_00["shuffle_right_stand_to_stand"] = %coverstand_shuffler;
var_00["shuffle_end_right_stand_to_stand"] = %coverstand_shuffler_2_hide;
var_00["shuffle_to_left_crouch"] = %covercrouch_shufflel;
var_00["shuffle_end_to_left_stand"] = %coverstand_shufflel_2_hide;
var_00["shuffle_end_to_left_crouch"] = %covercrouch_shufflel_2_hide;
var_00["shuffle_to_right_crouch"] = %covercrouch_shuffler;
var_00["shuffle_end_to_right_stand"] = %coverstand_shuffler_2_hide;
var_00["shuffle_end_to_right_crouch"] = %covercrouch_shuffler_2_hide;
level.archetypes["soldier"]["shuffle"] = var_00;
}
//Function Number: 2
func_4FDD()
{
if(isdefined(self.var_2214))
{
if(isdefined(self.var_2214["move"]))
{
[[ self.var_2214["move"] ]]();
}
}
self endon("killanimscript");
[[ self.exception["move"] ]]();
func_547D();
func_3C60();
animscripts/utility::func_4622("move");
var_00 = func_8C4B();
if(var_00 && isdefined(self.var_752E))
{
func_5475();
func_5478();
}
else if(isdefined(self.battlechatter) && self.battlechatter)
{
movestartbattlechatter(var_00);
animscripts/battlechatter::func_5D4E();
}
thread func_8736();
var_01 = ::func_5B30;
if(isdefined(self.var_5B2F))
{
var_01 = self.var_5B2F;
}
self thread [[ var_01 ]]();
thread func_0DF6();
animscripts/exit_node::func_7AE5();
self.doingreacquirestep = undefined;
self.var_4410 = undefined;
thread func_7AF7();
func_4E66();
self.var_742D = undefined;
self.aim_while_moving_thread = undefined;
self.var_6995 = undefined;
func_5482(1);
}
//Function Number: 3
end_script()
{
if(isdefined(self.var_58C1))
{
self.grenadeweapon = self.var_58C1;
self.var_58C1 = undefined;
}
self.teamflashbangimmunity = undefined;
self.var_5282 = undefined;
self.var_4410 = undefined;
self.var_752E = undefined;
self.var_7530 = undefined;
self.var_6995 = undefined;
self.var_63B5 = undefined;
self.var_65CD = undefined;
self.currentdodgeanim = undefined;
self.var_5480 = undefined;
animscripts/run::func_70C6(0);
if(self.swimmer)
{
animscripts/swim::swim_moveend();
}
self clearanim(%head,0.2);
self.facialidx = undefined;
}
//Function Number: 4
func_547D()
{
self.var_63B5 = undefined;
self.var_65CD = undefined;
self.var_868B = undefined;
self.var_868C = undefined;
self.var_6999 = 0;
self.arrivalstartdist = undefined;
}
//Function Number: 5
func_3C60()
{
if(self.a.var_60B1 == "prone")
{
var_00 = animscripts/utility::choosepose("stand");
if(var_00 != "prone")
{
self orientmode("face current");
self animmode("zonly_physics",0);
var_01 = 1;
if(isdefined(self.grenade))
{
var_01 = 2;
}
animscripts/cover_prone::func_6204(var_00,var_01);
self animmode("none",0);
self orientmode("face default");
}
}
}
//Function Number: 6
func_8C4B()
{
switch(self.prevscript)
{
case "concealment_stand":
case "concealment_prone":
case "concealment_crouch":
case "cover_wide_right":
case "cover_wide_left":
case "cover_swim_right":
case "cover_swim_left":
case "cover_prone":
case "cover_left":
case "cover_stand":
case "turret":
case "cover_crouch":
case "hide":
case "cover_multi":
case "cover_right":
return 1;
}
return 0;
}
//Function Number: 7
movestartbattlechatter(param_00)
{
if(self.movemode == "run")
{
animscripts/battlechatter_ai::func_2FE6(param_00);
}
}
//Function Number: 8
func_5482(param_00)
{
func_5483(param_00);
self notify("abort_reload");
}
//Function Number: 9
archetypechanged()
{
if(isdefined(self.var_DC4) && self.var_DC4 != self.var_6171)
{
return 1;
}
else if(!isdefined(self.var_DC4) && self.var_6171 != "none")
{
return 1;
}
return 0;
}
//Function Number: 10
func_8706(param_00)
{
if(param_00 != self.var_6172 || archetypechanged())
{
if(isdefined(self.custommoveanimset) && isdefined(self.custommoveanimset[param_00]))
{
self.a.var_5473 = self.custommoveanimset[param_00];
}
else
{
self.a.var_5473 = animscripts/utility::func_4F5D(param_00);
if((self.combatmode == "ambush" || self.combatmode == "ambush_nodes_only") && isdefined(self.pathgoalpos) && distancesquared(self.origin,self.pathgoalpos) > squared(100))
{
self.sidesteprate = 1;
animscripts/animset::func_6E2E();
}
else
{
self.sidesteprate = 1.35;
}
}
self.var_6172 = param_00;
if(isdefined(self.var_DC4))
{
self.var_6171 = self.var_DC4;
}
}
}
//Function Number: 11
func_5483(param_00)
{
self endon("killanimscript");
self endon("move_interrupt");
var_01 = self getanimtime(%walk_and_run_loops);
self.a.var_698E = randomint(10000);
self.var_6172 = "none";
self.var_6171 = "none";
self.var_547F = undefined;
for(;;)
{
var_02 = self getanimtime(%walk_and_run_loops);
if(var_02 < var_01)
{
self.a.var_698E++;
}
var_01 = var_02;
func_8706(self.movemode);
if(isdefined(self.var_5485))
{
self [[ self.var_5485 ]](self.movemode);
}
else
{
func_5484(self.movemode);
}
if(isdefined(self.var_547F))
{
self [[ self.var_547F ]]();
self.var_547F = undefined;
}
self notify("abort_reload");
}
}
//Function Number: 12
func_5484(param_00)
{
self endon("move_loop_restart");
animscripts/face::func_7053(level.alertface);
if(isdefined(self.var_5480))
{
self [[ self.var_5480 ]]();
}
else if(animscripts/utility::func_74A5())
{
animscripts/cqb::func_5479();
}
else if(self.swimmer)
{
animscripts/swim::moveswim();
}
else if(param_00 == "run")
{
animscripts/run::moverun();
}
else
{
animscripts/walk::func_54C5();
}
self.var_65CD = undefined;
}
//Function Number: 13
func_5127()
{
if(self.weapon == "none")
{
return 0;
}
var_00 = weaponclass(self.weapon);
if(!animscripts/utility::usingriflelikeweapon())
{
return 0;
}
if(animscripts/combat_utility::issniper())
{
if(!animscripts/utility::func_48A0() && self.facemotion)
{
return 0;
}
}
if(isdefined(self.dontshootwhilemoving))
{
return 0;
}
return 1;
}
//Function Number: 14
func_7451()
{
self endon("killanimscript");
self notify("doing_shootWhileMoving");
self endon("doing_shootWhileMoving");
var_00 = animscripts/utility::func_4F5D("shoot_while_moving");
foreach(var_03, var_02 in var_00)
{
self.a.var_ED8[var_03] = var_02;
}
if(isdefined(self.var_1E61) && isdefined(self.var_1E61["fire"]))
{
self.a.var_ED8["fire"] = self.var_1E61["fire"];
}
if(isdefined(self.weapon) && animscripts/utility::func_8D9B())
{
self.a.var_ED8["single"] = animscripts/utility::lookupanim("shotgun_stand","single");
}
for(;;)
{
if(!self.bulletsinclip)
{
if(animscripts/utility::iscqbwalkingorfacingenemy())
{
self.ammocheattime = 0;
animscripts/combat_utility::cheatammoifnecessary();
}
if(!self.bulletsinclip)
{
wait(0.5);
continue;
}
}
animscripts/combat_utility::func_744D();
self clearanim(%exposed_aiming,0.2);
}
}
//Function Number: 15
func_7AF7()
{
self endon("killanimscript");
wait(0.05);
thread bulletwhizbycheck_whilemoving();
thread func_519A();
thread animscripts/door::indoorcqbtogglecheck();
thread animscripts/door::func_29F0();
}
//Function Number: 16
func_8736()
{
self endon("killanimscript");
self.prevstairsstate = self.stairsstate;
for(;;)
{
wait(0.05);
if(self.prevstairsstate != self.stairsstate)
{
if(!isdefined(self.var_4410) || self.stairsstate != "none")
{
self notify("move_loop_restart");
}
}
self.prevstairsstate = self.stairsstate;
}
}
//Function Number: 17
func_6645(param_00)
{
self endon("killanimscript");
if(!param_00)
{
animscripts/exit_node::func_7AE5();
}
self.var_4410 = undefined;
self clearanim(%root,0.1);
self orientmode("face default");
self animmode("none",0);
self.requestarrivalnotify = 1;
func_5482(!param_00);
}
//Function Number: 18
func_5B30()
{
self endon("killanimscript");
self endon("move_interrupt");
self.var_4410 = 1;
for(;;)
{
self waittill("path_changed",var_00,var_01);
if(isdefined(self.var_4410) || isdefined(self.var_5739))
{
continue;
}
if(!self.facemotion || abs(self getmotionangle()) > 15)
{
continue;
}
if(self.a.var_60B1 != "stand")
{
continue;
}
self notify("stop_move_anim_update");
self.var_868B = undefined;
var_02 = vectortoangles(var_01);
var_03 = angleclamp180(self.angles[1] - var_02[1]);
var_04 = angleclamp180(self.angles[0] - var_02[0]);
var_05 = func_5B2E(var_03,var_04);
if(isdefined(var_05))
{
self.var_84B4 = var_05;
self.var_84BD = gettime();
self.var_5480 = ::func_5B2D;
self notify("move_loop_restart");
animscripts/run::func_2D51();
}
}
}
//Function Number: 19
func_5B2E(param_00,param_01)
{
if(isdefined(self.var_5B39))
{
return [[ self.var_5B39 ]](param_00,param_01);
}
var_02 = undefined;
var_03 = undefined;
if(self.swimmer)
{
var_04 = animscripts/swim::func_3C1D("turn");
}
else if(self.movemode == "walk")
{
var_04 = animscripts/utility::func_4F5D("cqb_turn");
}
else if(animscripts/utility::func_74A5())
{
var_04 = animscripts/utility::func_4F5D("cqb_run_turn");
}
else
{
var_04 = animscripts/utility::func_4F5D("run_turn");
}
if(param_00 < 0)
{
if(param_00 > -45)
{
var_05 = 3;
}
else
{
var_05 = int(ceil(param_01 + 180 - 10 / 45));
}
}
else if(param_01 < 45)
{
var_05 = 5;
}
else
{
var_05 = int(floor(param_01 + 180 + 10 / 45));
}
var_02 = var_04[var_05];
if(isdefined(var_02))
{
if(isarray(var_02))
{
while(var_02.size > 0)
{
var_06 = randomint(var_02.size);
if(func_5B2B(var_02[var_06]))
{
return var_02[var_06];
}
var_02[var_06] = var_02[var_02.size - 1];
var_02[var_02.size - 1] = undefined;
}
}
else if(func_5B2B(var_02))
{
return var_02;
}
}
var_07 = -1;
if(param_00 < -60)
{
var_07 = int(ceil(param_00 + 180 / 45));
if(var_07 == var_05)
{
var_07 = var_05 - 1;
}
}
else if(param_00 > 60)
{
var_07 = int(floor(param_00 + 180 / 45));
if(var_07 == var_05)
{
var_07 = var_05 + 1;
}
}
if(var_07 >= 0 && var_07 < 9)
{
var_03 = var_04[var_07];
}
if(isdefined(var_03))
{
if(isarray(var_03))
{
var_03 = var_03[0];
}
if(func_5B2B(var_03))
{
return var_03;
}
}
return undefined;
}
//Function Number: 20
func_5B2B(param_00)
{
if(!isdefined(self.pathgoalpos))
{
return 0;
}
var_01 = getnotetracktimes(param_00,"code_move");
var_02 = var_01[0];
var_03 = getmovedelta(param_00,0,var_02);
var_04 = self localtoworldcoords(var_03);
if(isdefined(self.arrivalstartdist) && squared(self.arrivalstartdist) > distancesquared(self.pathgoalpos,var_04))
{
return 0;
}
var_03 = getmovedelta(param_00,0,1);
var_05 = self localtoworldcoords(var_03);
var_05 = var_04 + vectornormalize(var_05 - var_04) * 20;
var_06 = !self.swimmer;
return self maymovefrompointtopoint(var_04,var_05,var_06,1);
}
//Function Number: 21
func_5B2D()
{
self endon("killanimscript");
self.var_5480 = undefined;
var_00 = self.var_84B4;
if(gettime() > self.var_84BD + 50)
{
}
if(self.swimmer)
{
self animmode("nogravity",0);
}
else
{
self animmode("zonly_physics",0);
}
var_01 = 0.1;
if(isdefined(self.var_5B38))
{
var_01 = self.var_5B38;
}
self clearanim(%body,var_01);
self.var_547F = ::func_5B2C;
self.var_4410 = 1;
var_01 = 0.05;
if(isdefined(self.var_5B38))
{
var_01 = self.var_5B38;
}
self setflaggedanimrestart("turnAnim",var_00,1,var_01,self.moveplaybackrate);
if(animscripts/utility::func_4965())
{
self orientmode("face angle 3d",self.angles);
}
else
{
self orientmode("face angle",self.angles[1]);
}
animscripts/shared::func_2986("turnAnim");
self.var_4410 = undefined;
self orientmode("face motion");
self animmode("none",0);
animscripts/shared::func_2986("turnAnim");
}
//Function Number: 22
func_5B2C()
{
self.var_4410 = undefined;
self orientmode("face default");
self clearanim(%root,0.1);
self animmode("none",0);
if(self.swimmer)
{
animscripts/swim::func_7DCE();
}
}
//Function Number: 23
dodgemoveloopoverride()
{
self pushplayer(1);
self animmode("zonly_physics",0);
self clearanim(%body,0.2);
self setflaggedanimrestart("dodgeAnim",self.currentdodgeanim,1,0.2,1);
animscripts/shared::func_2986("dodgeAnim");
self animmode("none",0);
self orientmode("face default");
if(animhasnotetrack(self.currentdodgeanim,"code_move"))
{
animscripts/shared::func_2986("dodgeAnim");
}
self clearanim(%civilian_dodge,0.2);
self pushplayer(0);
self.currentdodgeanim = undefined;
self.var_5480 = undefined;
return 1;
}
//Function Number: 24
func_83FC(param_00,param_01)
{
var_02 = (self.lookaheaddir[1],-1 * self.lookaheaddir[0],0);
var_03 = self.lookaheaddir * param_01[0];
var_04 = var_02 * param_01[1];
var_05 = self.origin + var_03 - var_04;
self pushplayer(1);
if(self maymovetopoint(var_05))
{
self.currentdodgeanim = param_00;
self.var_5480 = ::dodgemoveloopoverride;
self notify("move_loop_restart");
return 1;
}
self pushplayer(0);
return 0;
}
//Function Number: 25
func_0DF6()
{
if(!isdefined(self.var_2866) || !isdefined(self.var_286A))
{
}
self endon("killanimscript");
self endon("move_interrupt");
for(;;)
{
self waittill("path_need_dodge",var_00,var_01);
animscripts/utility::func_86F6();
if(animscripts/utility::func_48DE())
{
self.nododgemove = 0;
}
if(!issentient(var_00))
{
continue;
}
var_02 = vectornormalize(var_01 - self.origin);
if(self.lookaheaddir[0] * var_02[1] - var_02[0] * self.lookaheaddir[1] > 0)
{
if(!func_83FC(self.var_286A,self.dodgerightanimoffset))
{
func_83FC(self.var_2866,self.var_2867);
}
}
else if(!func_83FC(self.var_2866,self.var_2867))
{
func_83FC(self.var_286A,self.dodgerightanimoffset);
}
if(isdefined(self.currentdodgeanim))
{
wait(getanimlength(self.currentdodgeanim));
continue;
}
wait(0.1);
}
}
//Function Number: 26
func_701E(param_00,param_01)
{
self.nododgemove = 1;
self.var_2866 = param_00;
self.var_286A = param_01;
var_02 = 1;
if(animhasnotetrack(param_00,"code_move"))
{
var_02 = getnotetracktimes(param_00,"code_move")[0];
}
self.var_2867 = getmovedelta(param_00,0,var_02);
var_02 = 1;
if(animhasnotetrack(param_01,"code_move"))
{
var_02 = getnotetracktimes(param_01,"code_move")[0];
}
self.dodgerightanimoffset = getmovedelta(param_01,0,var_02);
self.interval = 80;
}
//Function Number: 27
cleardodgeanims()
{
self.nododgemove = 0;
self.var_2866 = undefined;
self.var_286A = undefined;
self.var_2867 = undefined;
self.dodgerightanimoffset = undefined;
}
//Function Number: 28
func_519A()
{
self endon("killanimscript");
for(;;)
{
if(isdefined(self.enemy) && isai(self.enemy) || isdefined(self.meleeplayerwhilemoving))
{
if(abs(self getmotionangle()) <= 135)
{
animscripts/melee::func_5192();
}
}
wait(0.1);
}
}
//Function Number: 29
bulletwhizbycheck_whilemoving()
{
self endon("killanimscript");
if(isdefined(self.var_279D))
{
}
for(;;)
{
self waittill("bulletwhizby",var_00);
if(self.movemode != "run" || !self.facemotion || self.a.var_60B1 != "stand" || isdefined(self.var_63B5))
{
continue;
}
if(self.stairsstate != "none")
{
continue;
}
if(!isdefined(self.enemy) && !self.ignoreall && isdefined(var_00.team) && isenemyteam(self.team,var_00.team))
{
self.var_8DE9 = var_00;
self animcustom(::animscripts/reactions::bulletwhizbyreaction);
continue;
}
if(self.lookaheadhitsstairs || self.lookaheaddist < 100)
{
continue;
}
if(isdefined(self.pathgoalpos) && distancesquared(self.origin,self.pathgoalpos) < 10000)
{
wait(0.2);
continue;
}
self.var_65CD = gettime();
self notify("move_loop_restart");
animscripts/run::func_2D51();
}
}
//Function Number: 30
get_shuffle_to_corner_start_anim(param_00,param_01)
{
var_02 = param_01.type;
if(var_02 == "Cover Multi")
{
var_02 = animscripts/utility::getcovermultipretendtype(param_01);
}
if(var_02 == "Cover Left")
{
return animscripts/utility::lookupanim("shuffle","shuffle_start_from_cover_left");
}
if(var_02 == "Cover Right")
{
return animscripts/utility::lookupanim("shuffle","shuffle_start_from_cover_right");
}
if(param_00)
{
return animscripts/utility::lookupanim("shuffle","shuffle_start_left");
}
return animscripts/utility::lookupanim("shuffle","shuffle_start_right");
}
//Function Number: 31
func_71C6(param_00,param_01,param_02)
{
var_03 = [];
var_04 = param_02.type;
if(var_04 == "Cover Multi")
{
var_04 = animscripts/utility::getcovermultipretendtype(param_02);
}
if(var_04 == "Cover Left")
{
var_03["shuffle_start"] = get_shuffle_to_corner_start_anim(param_00,param_01);
var_03["shuffle"] = animscripts/utility::lookupanim("shuffle","shuffle_to_cover_left");
var_03["shuffle_end"] = animscripts/utility::lookupanim("shuffle","shuffle_end_to_cover_left");
}
else if(var_04 == "Cover Right")
{
var_03["shuffle_start"] = get_shuffle_to_corner_start_anim(param_00,param_01);
var_03["shuffle"] = animscripts/utility::lookupanim("shuffle","shuffle_to_cover_right");
var_03["shuffle_end"] = animscripts/utility::lookupanim("shuffle","shuffle_end_to_cover_right");
}
else if(var_04 == "Cover Stand" && param_01.type == var_04)
{
if(param_00)
{
var_03["shuffle_start"] = animscripts/utility::lookupanim("shuffle","shuffle_start_left_stand_to_stand");
var_03["shuffle"] = animscripts/utility::lookupanim("shuffle","shuffle_left_stand_to_stand");
var_03["shuffle_end"] = animscripts/utility::lookupanim("shuffle","shuffle_end_left_stand_to_stand");
}
else
{
var_03["shuffle_start"] = animscripts/utility::lookupanim("shuffle","shuffle_start_right_stand_to_stand");
var_03["shuffle"] = animscripts/utility::lookupanim("shuffle","shuffle_right_stand_to_stand");
var_03["shuffle_end"] = animscripts/utility::lookupanim("shuffle","shuffle_end_right_stand_to_stand");
}
}
else if(param_00)
{
var_03["shuffle_start"] = get_shuffle_to_corner_start_anim(param_00,param_01);
var_03["shuffle"] = animscripts/utility::lookupanim("shuffle","shuffle_to_left_crouch");
if(var_04 == "Cover Stand")
{
var_03["shuffle_end"] = animscripts/utility::lookupanim("shuffle","shuffle_end_to_left_stand");
}
else
{
var_03["shuffle_end"] = animscripts/utility::lookupanim("shuffle","shuffle_end_to_left_crouch");
}
}
else
{
var_03["shuffle_start"] = get_shuffle_to_corner_start_anim(param_00,param_01);
var_03["shuffle"] = animscripts/utility::lookupanim("shuffle","shuffle_to_right_crouch");
if(var_04 == "Cover Stand")
{
var_03["shuffle_end"] = animscripts/utility::lookupanim("shuffle","shuffle_end_to_right_stand");
}
else
{
var_03["shuffle_end"] = animscripts/utility::lookupanim("shuffle","shuffle_end_to_right_crouch");
}
}
self.a.var_ED8 = var_03;
}
//Function Number: 32
movecovertocover_checkstartpose(param_00,param_01)
{
if(self.a.var_60B1 == "stand" && param_01.type != "Cover Stand" || param_00.type != "Cover Stand")
{
self.a.var_60B1 = "crouch";
return 0;
}
return 1;
}
//Function Number: 33
func_5476(param_00)
{
if(self.a.var_60B1 == "crouch" && param_00.type == "Cover Stand")
{
self.a.var_60B1 = "stand";
return 0;
}
return 1;
}
//Function Number: 34
func_5475()
{
self endon("killanimscript");
self endon("goal_changed");
var_00 = self.var_7530;
self.var_752E = undefined;
self.var_7530 = undefined;
self.var_752F = 1;
if(!isdefined(self.prevnode))
{
}
if(!isdefined(self.node) || !isdefined(var_00) || self.node != var_00)
{
}
var_01 = self.prevnode;
var_02 = self.node;
var_03 = var_02.origin - self.origin;
if(lengthsquared(var_03) < 1)
{
}
var_03 = vectornormalize(var_03);
var_04 = anglestoforward(var_02.angles);
var_05 = var_04[0] * var_03[1] - var_04[1] * var_03[0] > 0;
if(func_547B(var_05,var_01,var_02))
{
}
if(movecovertocover_checkstartpose(var_01,var_02))
{
var_06 = 0.1;
}
else
{
var_06 = 0.4;
}
func_71C6(var_05,var_01,var_02);
self animmode("zonly_physics",0);
self clearanim(%body,var_06);
var_07 = animscripts/utility::animarray("shuffle_start");
var_08 = animscripts/utility::animarray("shuffle");
var_09 = animscripts/utility::animarray("shuffle_end");
if(animhasnotetrack(var_07,"finish"))
{
var_0A = getnotetracktimes(var_07,"finish")[0];
}
else
{
var_0A = 1;
}
var_0B = length(getmovedelta(var_07,0,var_0A));
var_0C = length(getmovedelta(var_08,0,1));
var_0D = length(getmovedelta(var_09,0,1));
var_0E = distance(self.origin,var_02.origin);
if(var_0E > var_0B)
{
self orientmode("face angle",animscripts/utility::getnodeforwardyaw(var_01));
self setflaggedanimrestart("shuffle_start",var_07,1,var_06);
animscripts/shared::func_2986("shuffle_start");
self clearanim(var_07,0.2);
var_0E = var_0E - var_0B;
var_06 = 0.2;
}
else
{
self orientmode("face angle",var_02.angles[1]);
}
var_0F = 0;
if(var_0E > var_0D)
{
var_0F = 1;
var_0E = var_0E - var_0D;
}
var_10 = getanimlength(var_08);
var_11 = var_10 * var_0E / var_0C * 0.9;
var_11 = floor(var_11 * 20) * 0.05;
self setflaggedanim("shuffle",var_08,1,var_06);
animscripts/notetracks::donotetracksfortime(var_11,"shuffle");
for(var_12 = 0;var_12 < 2;var_12++)
{
var_0E = distance(self.origin,var_02.origin);
if(var_0F)
{
var_0E = var_0E - var_0D;
}
if(var_0E < 4)
{
break;
}
var_11 = var_10 * var_0E / var_0C * 0.9;
var_11 = floor(var_11 * 20) * 0.05;
if(var_11 < 0.05)
{
break;
}
animscripts/notetracks::donotetracksfortime(var_11,"shuffle");
}
if(var_0F)
{
if(func_5476(var_02))
{
var_06 = 0.2;
}
else
{
var_06 = 0.4;
}
self clearanim(var_08,var_06);
self setflaggedanim("shuffle_end",var_09,1,var_06);
animscripts/shared::func_2986("shuffle_end");
}
self safeteleport(var_02.origin);
self animmode("normal");
self.var_752F = undefined;
}
//Function Number: 35
func_5478()
{
if(isdefined(self.var_752F))
{
self clearanim(%cover_shuffle,0.2);
self.var_752F = undefined;
self animmode("none",0);
self orientmode("face default");
}
wait(0.2);
self clearanim(%cover_shuffle,0.2);
}
//Function Number: 36
func_547B(param_00,param_01,param_02)
{
var_03 = undefined;
if(param_01.type == "Cover Right" && param_02.type == "Cover Left" && !param_00)
{
var_03 = %corner_standr_door_r2l;
}
else if(param_01.type == "Cover Left" && param_02.type == "Cover Right" && param_00)
{
var_03 = %corner_standl_door_l2r;
}
if(!isdefined(var_03))
{
return 0;
}
self animmode("zonly_physics",0);
self orientmode("face current");
self setflaggedanimrestart("sideToSide",var_03,1,0.2);
animscripts/shared::func_2986("sideToSide",::handlesidetosidenotetracks);
var_04 = self getanimtime(var_03);
var_05 = param_02.origin - param_01.origin;
var_05 = vectornormalize((var_05[0],var_05[1],0));
var_06 = getmovedelta(var_03,var_04,1);
var_07 = param_02.origin - self.origin;
var_07 = (var_07[0],var_07[1],0);
var_08 = vectordot(var_07,var_05) - abs(var_06[1]);
if(var_08 > 2)
{
var_09 = getnotetracktimes(var_03,"slide_end")[0];
var_0A = var_09 - var_04 * getanimlength(var_03);
var_0B = int(ceil(var_0A / 0.05));
var_0C = var_05 * var_08 / var_0B;
thread func_75E7(var_0C,var_0B);
}
animscripts/shared::func_2986("sideToSide");
self safeteleport(param_02.origin);
self animmode("none");
self orientmode("face default");
self.var_752F = undefined;
wait(0.2);
return 1;
}
//Function Number: 37
handlesidetosidenotetracks(param_00)
{
if(param_00 == "slide_start")
{
return 1;
}
}
//Function Number: 38
func_75E7(param_00,param_01)
{
self endon("killanimscript");
self endon("goal_changed");
while(param_01 > 0)
{
self safeteleport(self.origin + param_00);
param_01--;
wait(0.05);
}
}
//Function Number: 39
func_54A4(param_00,param_01)
{
self endon("movemode");
self clearanim(%combatrun,0.6);
self setanimknoball(%combatrun,%body,1,0.5,self.moveplaybackrate);
if(isdefined(self.var_65CD) && gettime() - self.var_65CD < 100 && isdefined(self.run_overridebulletreact) && randomfloat(1) < self.a.var_63C9)
{
animscripts/run::customrunningreacttobullets();
}
if(isarray(param_00))
{
if(isdefined(self.var_6969))
{
var_02 = common_scripts\utility::choose_from_weighted_array(param_00,param_01);
}
else
{
var_02 = param_01[randomint(param_01.size)];
}
}
else
{
var_02 = param_01;
}
self setflaggedanimknob("moveanim",var_02,1,0.2,self.moveplaybackrate);
animscripts/shared::func_2986("moveanim");
}
//Function Number: 40
func_4E66()
{
thread animscripts/cover_arrival::setupapproachnode(1);
}