2024-02-18 17:32:07 -05:00

82 lines
1.7 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include animscripts\SetPoseMovement;
#include animscripts\Utility;
#include animscripts\anims;
#include maps\_utility;
#using_animtree ("generic_human");
MoveWalk()
{
desiredPose = self animscripts\utility::choosePose();
switch ( desiredPose )
{
case "stand":
if ( BeginStandWalk() )
{
return;
}
walkAnim = getStandWalkAnim();
DoWalkAnim( walkAnim );
break;
case "crouch":
if ( BeginCrouchWalk() )
{
return;
}
DoWalkAnim( animArray("combat_run_f") );
break;
default:
assert(desiredPose == "prone");
if ( BeginProneWalk() )
{
return;
}
self.a.movement = "walk";
DoWalkAnim( animArray("combat_run_f") );
break;
}
}
DoWalkAnim( walkAnim )
{
self endon("movemode");
self SetFlaggedAnimKnobAll( "walkanim", walkAnim, %body, 1, 1.2, 1 );
if ( self.a.pose != "prone" )
{
self call_overloaded_func( "animscripts\run", "UpdateRunWeightsOnce",
%combatrun_forward,
animArray("walk_b"),
animArray("walk_l"),
animArray("walk_r")
);
}
self animscripts\shared::DoNoteTracksForTime( 0.2, "walkanim" );
}
getStandWalkAnim()
{
if ( (IsDefined(self.walk_combatanim)) && (self animscripts\utility::IsInCombat()) )
{
rand = RandomInt(10);
if ( (rand < 2) && (IsDefined(self.walk_combatanim2)) )
{
return self.walk_combatanim2;
}
else
{
return self.walk_combatanim;
}
}
else if ( (IsDefined(self.walk_noncombatanim)) && (!self animscripts\utility::IsInCombat()) )
{
rand = RandomInt(10);
if ( (rand < 2) && (IsDefined(self.walk_noncombatanim2)) )
{
return self.walk_noncombatanim2;
}
else
{
return self.walk_noncombatanim;
}
}
else
{
return animArray("walk_f");
}
}