2024-02-13 13:20:49 +01:00

113 lines
3.6 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
movewalk()
{
var_0 = undefined;
if ( isdefined( self.pathgoalpos ) && distancesquared( self.origin, self.pathgoalpos ) > 4096 )
var_0 = "stand";
var_1 = [[ self.chooseposefunc ]]( var_0 );
switch ( var_1 )
{
case "stand":
if ( animscripts\setposemovement::standwalk_begin() )
return;
if ( isdefined( self.walk_overrideanim ) )
{
animscripts\move::movestand_moveoverride( self.walk_overrideanim, self.walk_override_weights );
return;
}
dowalkanim( getwalkanim( "straight" ) );
break;
case "crouch":
if ( animscripts\setposemovement::crouchwalk_begin() )
return;
dowalkanim( getwalkanim( "crouch" ) );
break;
default:
if ( animscripts\setposemovement::pronewalk_begin() )
return;
self.a.movement = "walk";
dowalkanim( getwalkanim( "prone" ) );
break;
}
}
#using_animtree("generic_human");
dowalkanimoverride( var_0 )
{
self endon( "movemode" );
self clearanim( %combatrun, 0.6 );
self setanimknoball( %combatrun, %body, 1, 0.5, self.moveplaybackrate );
if ( isarray( self.walk_overrideanim ) )
{
if ( isdefined( self.walk_override_weights ) )
var_1 = common_scripts\utility::choose_from_weighted_array( self.walk_overrideanim, self.walk_override_weights );
else
var_1 = self.walk_overrideanim[randomint( self.walk_overrideanim.size )];
}
else
var_1 = self.walk_overrideanim;
self setflaggedanimknob( "moveanim", var_1, 1, 0.2 );
animscripts\shared::donotetracks( "moveanim" );
}
getwalkanim( var_0 )
{
if ( self.stairsstate == "up" )
return animscripts\utility::getmoveanim( "stairs_up" );
else if ( self.stairsstate == "down" )
return animscripts\utility::getmoveanim( "stairs_down" );
var_1 = animscripts\utility::getmoveanim( var_0 );
if ( isarray( var_1 ) )
var_1 = var_1[randomint( var_1.size )];
return var_1;
}
dowalkanim( var_0 )
{
self endon( "movemode" );
var_1 = self.moveplaybackrate;
if ( self.stairsstate != "none" )
var_1 = var_1 * 0.6;
if ( self.a.pose == "stand" )
{
if ( isdefined( self.enemy ) )
{
animscripts\cqb::cqbtracking();
self setflaggedanimknoball( "walkanim", animscripts\cqb::determinecqbanim(), %walk_and_run_loops, 1, 1, var_1, 1 );
}
else
self setflaggedanimknoball( "walkanim", var_0, %body, 1, 1, var_1, 1 );
animscripts\run::setmovenonforwardanims( animscripts\utility::getmoveanim( "move_b" ), animscripts\utility::getmoveanim( "move_l" ), animscripts\utility::getmoveanim( "move_r" ) );
thread animscripts\run::setcombatstandmoveanimweights( "walk" );
}
else if ( self.a.pose == "prone" )
self setflaggedanimknob( "walkanim", animscripts\utility::getmoveanim( "prone" ), 1, 0.3, self.moveplaybackrate );
else
{
self setflaggedanimknoball( "walkanim", var_0, %body, 1, 1, var_1, 1 );
animscripts\run::setmovenonforwardanims( animscripts\utility::getmoveanim( "move_b" ), animscripts\utility::getmoveanim( "move_l" ), animscripts\utility::getmoveanim( "move_r" ) );
thread animscripts\run::setcombatstandmoveanimweights( "walk" );
}
animscripts\notetracks::donotetracksfortime( 0.2, "walkanim" );
animscripts\run::setshootwhilemoving( 0 );
}