iw6-scripts/animscripts/setposemovement.gsc
2024-02-13 13:20:49 +01:00

840 lines
20 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
setposemovement( var_0, var_1 )
{
if ( var_0 == "" )
{
if ( self.a.pose == "prone" && ( var_1 == "walk" || var_1 == "run" ) )
var_0 = "crouch";
else
var_0 = self.a.pose;
}
if ( !isdefined( var_1 ) || var_1 == "" )
var_1 = self.a.movement;
[[ anim.setposemovementfnarray[var_0][var_1] ]]();
}
initposemovementfunctions()
{
anim.setposemovementfnarray["stand"]["stop"] = ::standstop_begin;
anim.setposemovementfnarray["stand"]["walk"] = ::standwalk_begin;
anim.setposemovementfnarray["stand"]["run"] = ::standrun_begin;
anim.setposemovementfnarray["crouch"]["stop"] = ::crouchstop_begin;
anim.setposemovementfnarray["crouch"]["walk"] = ::crouchwalk_begin;
anim.setposemovementfnarray["crouch"]["run"] = ::crouchrun_begin;
anim.setposemovementfnarray["prone"]["stop"] = ::pronestop_begin;
anim.setposemovementfnarray["prone"]["walk"] = ::pronewalk_begin;
anim.setposemovementfnarray["prone"]["run"] = ::pronerun_begin;
}
standstop_begin()
{
switch ( self.a.pose )
{
case "stand":
switch ( self.a.movement )
{
case "stop":
return 0;
case "walk":
standwalktostand();
break;
default:
standruntostand();
break;
}
break;
case "crouch":
switch ( self.a.movement )
{
case "stop":
crouchtostand();
break;
case "walk":
crouchwalktostand();
break;
default:
crouchruntostand();
break;
}
break;
default:
switch ( self.a.movement )
{
case "stop":
pronetostand();
break;
default:
pronetostand();
break;
}
break;
}
return 1;
}
standwalk_begin()
{
switch ( self.a.pose )
{
case "stand":
switch ( self.a.movement )
{
case "stop":
blendintostandwalk();
break;
case "walk":
return 0;
default:
blendintostandwalk();
break;
}
break;
case "crouch":
switch ( self.a.movement )
{
case "stop":
crouchtostandwalk();
break;
case "walk":
blendintostandwalk();
break;
default:
blendintostandwalk();
break;
}
break;
default:
pronetostandwalk();
break;
}
return 1;
}
standrun_begin()
{
switch ( self.a.pose )
{
case "stand":
switch ( self.a.movement )
{
case "walk":
case "stop":
return blendintostandrun();
default:
return 0;
}
break;
case "crouch":
switch ( self.a.movement )
{
case "stop":
return crouchtostandrun();
default:
return blendintostandrun();
}
break;
default:
pronetostandrun();
break;
}
return 1;
}
crouchstop_begin()
{
switch ( self.a.pose )
{
case "stand":
switch ( self.a.movement )
{
case "stop":
standtocrouch();
break;
case "walk":
standwalktocrouch();
break;
case "run":
standruntocrouch();
break;
default:
}
break;
case "crouch":
switch ( self.a.movement )
{
case "stop":
break;
case "walk":
crouchwalktocrouch();
break;
case "run":
crouchruntocrouch();
break;
default:
}
break;
case "prone":
pronetocrouch();
break;
default:
}
}
crouchwalk_begin()
{
switch ( self.a.pose )
{
case "stand":
switch ( self.a.movement )
{
case "stop":
blendintocrouchwalk();
break;
case "walk":
blendintocrouchwalk();
break;
default:
blendintocrouchwalk();
break;
}
break;
case "crouch":
switch ( self.a.movement )
{
case "stop":
crouchtocrouchwalk();
break;
case "walk":
return 0;
default:
blendintocrouchwalk();
break;
}
break;
default:
pronetocrouchwalk();
break;
}
return 1;
}
crouchrun_begin()
{
switch ( self.a.pose )
{
case "stand":
switch ( self.a.movement )
{
case "stop":
blendintocrouchrun();
break;
default:
blendintocrouchrun();
break;
}
break;
case "crouch":
switch ( self.a.movement )
{
case "stop":
crouchtocrouchrun();
break;
case "walk":
blendintocrouchrun();
break;
default:
return 0;
}
break;
default:
pronetocrouchrun();
break;
}
return 1;
}
pronestop_begin()
{
switch ( self.a.pose )
{
case "stand":
switch ( self.a.movement )
{
case "stop":
standtoprone();
break;
case "walk":
standtoprone();
break;
case "run":
crouchruntoprone();
break;
default:
}
break;
case "crouch":
switch ( self.a.movement )
{
case "stop":
crouchtoprone();
break;
case "walk":
crouchtoprone();
break;
case "run":
crouchruntoprone();
break;
default:
}
break;
case "prone":
switch ( self.a.movement )
{
case "stop":
break;
case "walk":
case "run":
pronecrawltoprone();
break;
default:
}
break;
default:
}
}
pronewalk_begin()
{
switch ( self.a.pose )
{
case "stand":
switch ( self.a.movement )
{
case "stop":
standtopronewalk();
break;
default:
crouchruntopronewalk();
break;
}
break;
case "crouch":
switch ( self.a.movement )
{
case "stop":
crouchtopronewalk();
break;
default:
crouchruntopronewalk();
break;
}
break;
default:
switch ( self.a.movement )
{
case "stop":
pronetopronerun();
break;
default:
self.a.movement = "walk";
return 0;
}
break;
}
return 1;
}
pronerun_begin()
{
switch ( self.a.pose )
{
case "stand":
switch ( self.a.movement )
{
case "stop":
standtopronerun();
break;
default:
crouchruntopronerun();
break;
}
break;
case "crouch":
switch ( self.a.movement )
{
case "stop":
crouchtopronerun();
break;
default:
crouchruntopronerun();
break;
}
break;
default:
switch ( self.a.movement )
{
case "stop":
pronetopronerun();
break;
default:
self.a.movement = "run";
return 0;
}
break;
}
return 1;
}
#using_animtree("generic_human");
playblendtransition( var_0, var_1, var_2, var_3 )
{
var_4 = gettime() + var_1 * 1000;
if ( isarray( var_0 ) )
var_0 = var_0[randomint( var_0.size )];
self setflaggedanimknoball( "blendTransition", var_0, %body, 1, var_1, 1 );
animscripts\notetracks::donotetracksfortime( var_1 / 2, "blendTransition" );
self.a.pose = var_2;
self.a.movement = var_3;
var_5 = ( var_4 - gettime() ) / 1000;
if ( var_5 < 0.05 )
var_5 = 0.05;
animscripts\notetracks::donotetracksfortime( var_5, "blendTransition" );
}
playtransitionstandwalk( var_0, var_1 )
{
playtransitionanimation( var_0, "stand", "walk", var_1 );
}
standwalktostand()
{
self.a.movement = "stop";
}
standwalktocrouch()
{
standwalktostand();
standtocrouch();
}
standruntostand()
{
self.a.movement = "stop";
}
standruntocrouch()
{
self.a.movement = "stop";
self.a.pose = "crouch";
}
playblendtransitionstandrun( var_0 )
{
var_1 = 0.3;
if ( self.a.movement != "stop" )
{
self endon( "movemode" );
var_1 = 1.0;
}
playblendtransition( var_0, var_1, "stand", "run" );
}
blendintostandrun()
{
if ( !self.facemotion )
{
self.a.movement = "run";
self.a.pose = "stand";
return 0;
}
if ( isdefined( self.run_overrideanim ) )
{
playblendtransitionstandrun( self.run_overrideanim );
return 1;
}
var_0 = 0.1;
if ( self.a.movement != "stop" && self.stairsstate == "none" )
var_0 = 0.5;
if ( isdefined( self.sprint ) )
self setanimknoblimited( animscripts\utility::getmoveanim( "sprint" ), 1, var_0, 1 );
else
self setanimknoblimited( animscripts\run::getrunanim(), 1, var_0, 1 );
animscripts\run::setmovenonforwardanims( animscripts\utility::getmoveanim( "move_b" ), animscripts\utility::getmoveanim( "move_l" ), animscripts\utility::getmoveanim( "move_r" ), self.sidesteprate );
thread animscripts\run::setcombatstandmoveanimweights( "run" );
wait 0.05;
playblendtransitionstandrun( %combatrun );
return 1;
}
blendintostandwalk()
{
if ( self.a.movement != "stop" )
self endon( "movemode" );
if ( !isdefined( self.alwaysrunforward ) && self.a.pose != "prone" )
animscripts\run::setmovenonforwardanims( animscripts\utility::getmoveanim( "move_b" ), animscripts\utility::getmoveanim( "move_l" ), animscripts\utility::getmoveanim( "move_r" ) );
self.a.pose = "stand";
self.a.movement = "walk";
}
crouchtostand()
{
var_0 = 1;
if ( isdefined( self.faststand ) )
{
var_0 = 1.8;
self.faststand = undefined;
}
if ( animscripts\utility::usingsidearm() )
playtransitionanimation( %pistol_crouchaimstraight2stand, "stand", "stop", undefined, var_0 );
else
{
animscripts\utility::randomizeidleset();
playtransitionanimation( %crouch2stand, "stand", "stop", undefined, var_0 );
}
}
crouchtocrouchwalk()
{
blendintocrouchwalk();
}
crouchtostandwalk()
{
crouchtocrouchwalk();
blendintostandwalk();
}
crouchwalktocrouch()
{
self.a.movement = "stop";
}
crouchwalktostand()
{
crouchwalktocrouch();
crouchtostand();
}
crouchruntocrouch()
{
self.a.movement = "stop";
}
crouchruntostand()
{
crouchruntocrouch();
crouchtostand();
}
crouchtocrouchrun()
{
blendintocrouchrun();
}
crouchtostandrun()
{
return blendintostandrun();
}
blendintocrouchrun()
{
if ( isdefined( self.crouchrun_combatanim ) )
playblendtransition( self.crouchrun_combatanim, 0.6, "crouch", "run" );
else
{
self setanimknob( %crouchrun, 1, 0.4, self.moveplaybackrate );
thread animscripts\run::updatemoveanimweights( "crouchrun", animscripts\utility::getmoveanim( "crouch" ), animscripts\utility::getmoveanim( "crouch_b" ), animscripts\utility::getmoveanim( "crouch_l" ), animscripts\utility::getmoveanim( "crouch_r" ) );
wait 0.05;
playblendtransition( %crouchrun, 0.4, "crouch", "run" );
}
}
pronetocrouchrun()
{
self orientmode( "face current" );
animscripts\utility::exitpronewrapper( 1.0 );
pronelegsstraighttree( 0.2 );
animscripts\cover_prone::updatepronewrapper( 0.1 );
playtransitionanimation( %prone_2_crouch, "crouch", "run", animscripts\run::getcrouchrunanim() );
}
pronetostandrun()
{
pronetocrouchrun();
blendintostandrun();
}
pronetocrouchwalk()
{
pronetocrouchrun();
blendintocrouchwalk();
}
blendintocrouchwalk()
{
if ( isdefined( self.crouchrun_combatanim ) )
{
self setanimknoball( self.crouchrun_combatanim, %body, 1, 0.4 );
playblendtransition( self.crouchrun_combatanim, 0.6, "crouch", "walk" );
self notify( "BlendIntoCrouchWalk" );
}
else
{
self setanimknob( %crouchrun, 1, 0.4, self.moveplaybackrate );
thread animscripts\run::updatemoveanimweights( "crouchrun", animscripts\utility::getmoveanim( "crouch" ), animscripts\utility::getmoveanim( "crouch_b" ), animscripts\utility::getmoveanim( "crouch_l" ), animscripts\utility::getmoveanim( "crouch_r" ) );
wait 0.05;
playblendtransition( %crouchrun, 0.4, "crouch", "run" );
}
}
standtocrouch()
{
animscripts\utility::randomizeidleset();
var_0 = 1;
if ( isdefined( self.fastcrouch ) )
{
var_0 = 1.8;
self.fastcrouch = undefined;
}
playtransitionanimation( %exposed_stand_2_crouch, "crouch", "stop", undefined, var_0 );
}
pronetocrouch()
{
animscripts\utility::randomizeidleset();
self orientmode( "face current" );
animscripts\utility::exitpronewrapper( 1.0 );
pronelegsstraighttree( 0.1 );
animscripts\cover_prone::updatepronewrapper( 0.1 );
playtransitionanimation( %prone_2_crouch, "crouch", "stop" );
}
pronetostand()
{
self orientmode( "face current" );
animscripts\utility::exitpronewrapper( 1.0 );
pronelegsstraighttree( 0.1 );
animscripts\cover_prone::updatepronewrapper( 0.1 );
playtransitionanimation( %prone_2_stand, "stand", "stop" );
}
pronetostandwalk()
{
pronetocrouch();
crouchtocrouchwalk();
blendintostandwalk();
}
pronetopronemove( var_0 )
{
pronelegsstraighttree( 0.1 );
playtransitionanimation( %prone_2_prone_crawl, "prone", var_0, %prone_crawl );
animscripts\cover_prone::updatepronewrapper( 0.1 );
}
pronetopronerun()
{
pronetopronemove( "run" );
}
pronecrawltoprone()
{
pronelegsstraighttree( 0.1 );
animscripts\cover_prone::updatepronewrapper( 0.1 );
playtransitionanimation( %prone_crawl_2_prone, "prone", "stop" );
}
crouchtoprone()
{
self setproneanimnodes( -45, 45, %prone_legs_down, %exposed_aiming, %prone_legs_up );
animscripts\utility::enterpronewrapper( 1.0 );
pronelegsstraighttree( 0.3 );
animscripts\cover_prone::updatepronewrapper( 0.1 );
playtransitionanimation( %crouch_2_prone, "prone", "stop" );
}
crouchtopronewalk()
{
crouchtoprone();
pronetopronerun();
}
crouchtopronerun()
{
crouchtoprone();
pronetopronerun();
}
standtoprone()
{
self endon( "entered_poseprone" );
var_0 = 0.5;
thread playtransitionanimationthread_withoutwaitsetstates( %stand_2_prone, "prone", "stop", undefined, var_0 );
self waittillmatch( "transAnimDone2", "anim_pose = \"crouch\"" );
waittillframeend;
self setproneanimnodes( -45, 45, %prone_legs_down, %exposed_aiming, %prone_legs_up );
animscripts\utility::enterpronewrapper( var_0 );
self.a.movement = "stop";
animscripts\cover_prone::updatepronewrapper( 0.1 );
self waittillmatch( "transAnimDone2", "end" );
pronelegsstraighttree( 0.2 );
self setanim( %prone_aim_idle, 1, 0.1 );
}
standtopronewalk()
{
standtoprone();
pronetopronerun();
}
standtopronerun()
{
standtoprone();
pronetopronerun();
}
crouchruntoprone()
{
var_0 = 0.5;
self setproneanimnodes( -45, 45, %prone_legs_down, %exposed_aiming, %prone_legs_up );
animscripts\utility::enterpronewrapper( var_0 );
pronelegsstraighttree( 0.2 );
animscripts\cover_prone::updatepronewrapper( 0.1 );
var_1 = animscripts\utility::getquadrant( self getmotionangle() );
var_2 = %crouch_2_prone;
var_3 = getmovedelta( var_2, 0, 1 );
var_4 = self localtoworldcoords( var_3 );
if ( self maymovetopoint( var_4 ) )
playtransitionanimation( var_2, "prone", "stop", undefined, var_0 );
else
playtransitionanimation( %crouch_2_prone_firing, "prone", "stop", undefined, var_0 );
}
crouchruntopronewalk()
{
crouchruntoprone();
pronetopronerun();
}
crouchruntopronerun()
{
crouchruntoprone();
pronetopronerun();
}
playtransitionanimationthread_withoutwaitsetstates( var_0, var_1, var_2, var_3, var_4 )
{
self endon( "killanimscript" );
self endon( "entered_pose" + var_1 );
playtransitionanimationfunc( var_0, var_1, var_2, var_3, var_4, 0 );
}
playtransitionanimation( var_0, var_1, var_2, var_3, var_4 )
{
playtransitionanimationfunc( var_0, var_1, var_2, var_3, var_4, 1 );
}
playtransitionanimationfunc( var_0, var_1, var_2, var_3, var_4, var_5 )
{
if ( !isdefined( var_4 ) )
var_4 = 1;
if ( var_5 )
thread waitsetstates( getanimlength( var_0 ) / 2.0, "killtimerscript", var_1 );
self setflaggedanimknoballrestart( "transAnimDone2", var_0, %body, 1, 0.2, var_4 );
if ( !isdefined( self.a.pose ) )
self.pose = "undefined";
if ( !isdefined( self.a.movement ) )
self.movement = "undefined";
var_6 = "";
animscripts\shared::donotetracks( "transAnimDone2", undefined, var_6 );
self notify( "killtimerscript" );
self.a.pose = var_1;
self notify( "entered_pose" + var_1 );
self.a.movement = var_2;
if ( isdefined( var_3 ) )
self setanimknoball( var_3, %body, 1, 0.3, var_4 );
}
waitsetstates( var_0, var_1, var_2 )
{
self endon( "killanimscript" );
self endon( "death" );
self endon( var_1 );
var_3 = self.a.pose;
wait( var_0 );
if ( var_3 != "prone" && var_2 == "prone" )
{
animscripts\cover_prone::updatepronewrapper( 0.1 );
animscripts\utility::enterpronewrapper( 1.0 );
}
else if ( var_3 == "prone" && var_2 != "prone" )
{
animscripts\utility::exitpronewrapper( 1.0 );
self orientmode( "face default" );
}
}
pronelegsstraighttree( var_0 )
{
self setanimknoball( %prone_legsstraight, %body, 1, var_0, 1 );
}