// IW6 GSC SOURCE // Generated by https://github.com/xensik/gsc-tool onenterstate( var_0, var_1 ) { if ( isdefined( self.onenteranimstate ) ) self [[ self.onenteranimstate ]]( var_0, var_1 ); } ondeactivate() { self notify( "killanimscript" ); } playanimuntilnotetrack( var_0, var_1, var_2, var_3 ) { playanimnuntilnotetrack( var_0, 0, var_1, var_2, var_3 ); } playanimnuntilnotetrack( var_0, var_1, var_2, var_3, var_4 ) { self setanimstate( var_0, var_1 ); if ( !isdefined( var_3 ) ) var_3 = "end"; waituntilnotetrack( var_2, var_3, var_0, var_1, var_4 ); } playanimnatrateuntilnotetrack( var_0, var_1, var_2, var_3, var_4, var_5 ) { self setanimstate( var_0, var_1, var_2 ); if ( !isdefined( var_4 ) ) var_4 = "end"; waituntilnotetrack( var_3, var_4, var_0, var_1, var_5 ); } waituntilnotetrack( var_0, var_1, var_2, var_3, var_4 ) { var_5 = gettime(); var_6 = undefined; var_7 = undefined; if ( isdefined( var_2 ) && isdefined( var_3 ) ) var_7 = getanimlength( self getanimentry( var_2, var_3 ) ); for (;;) { self waittill( var_0, var_8 ); if ( isdefined( var_7 ) ) var_6 = ( gettime() - var_5 ) * 0.001 / var_7; if ( !isdefined( var_7 ) || var_6 > 0 ) { if ( var_8 == var_1 || var_8 == "end" || var_8 == "anim_will_finish" || var_8 == "finish" ) break; } if ( isdefined( var_4 ) ) [[ var_4 ]]( var_8, var_2, var_3, var_6 ); } } playanimfortime( var_0, var_1 ) { playanimnfortime( var_0, 0, var_1 ); } playanimnfortime( var_0, var_1, var_2 ) { self setanimstate( var_0, var_1 ); wait( var_2 ); } playanimnatratefortime( var_0, var_1, var_2, var_3 ) { self setanimstate( var_0, var_1, var_2 ); wait( var_3 ); } getanimscalefactors( var_0, var_1, var_2 ) { var_3 = length2d( var_0 ); var_4 = var_0[2]; var_5 = length2d( var_1 ); var_6 = var_1[2]; var_7 = 1; var_8 = 1; if ( isdefined( var_2 ) && var_2 ) { var_9 = ( var_1[0], var_1[1], 0 ); var_10 = vectornormalize( var_9 ); if ( vectordot( var_10, var_0 ) < 0 ) var_7 = 0; else if ( var_5 > 0 ) var_7 = var_3 / var_5; } else if ( var_5 > 0 ) var_7 = var_3 / var_5; if ( abs( var_6 ) > 0.001 && var_6 * var_4 >= 0 ) var_8 = var_4 / var_6; var_11 = spawnstruct(); var_11.xy = var_7; var_11.z = var_8; return var_11; } getangleindex( var_0, var_1 ) { if ( !isdefined( var_1 ) ) var_1 = 10; if ( var_0 < 0 ) return int( ceil( ( 180 + var_0 - var_1 ) / 45 ) ); else return int( floor( ( 180 + var_0 + var_1 ) / 45 ) ); } droppostoground( var_0, var_1 ) { if ( !isdefined( var_1 ) ) var_1 = 18; var_2 = var_0 + ( 0, 0, var_1 ); var_3 = var_0 + ( 0, 0, var_1 * -1 ); var_4 = self aiphysicstrace( var_2, var_3, self.radius, self.height, 1 ); if ( abs( var_4[2] - var_2[2] ) < 0.1 ) return undefined; if ( abs( var_4[2] - var_3[2] ) < 0.1 ) return undefined; return var_4; } canmovepointtopoint( var_0, var_1, var_2 ) { if ( !isdefined( var_2 ) ) var_2 = 6; var_3 = ( 0, 0, 1 ) * var_2; var_4 = var_0 + var_3; var_5 = var_1 + var_3; return self aiphysicstracepassed( var_4, var_5, self.radius, self.height - var_2, 1 ); } getvalidpointtopointmovelocation( var_0, var_1, var_2 ) { if ( !isdefined( var_2 ) ) var_2 = 6; var_3 = ( 0, 0, 1 ) * var_2; var_4 = var_0 + var_3; var_5 = var_1 + var_3; return self aiphysicstrace( var_4, var_5, self.radius + 4, self.height - var_2, 1 ); } getsafeanimmovedeltapercentage( var_0 ) { var_1 = getmovedelta( var_0 ); var_2 = self localtoworldcoords( var_1 ); var_3 = getvalidpointtopointmovelocation( self.origin, var_2 ); var_4 = distance( self.origin, var_3 ); var_5 = distance( self.origin, var_2 ); return min( 1.0, var_4 / var_5 ); } safelyplayanimuntilnotetrack( var_0, var_1, var_2, var_3 ) { var_4 = getrandomanimentry( var_0 ); safelyplayanimnuntilnotetrack( var_0, var_4, var_1, var_2, var_3 ); } safelyplayanimatrateuntilnotetrack( var_0, var_1, var_2, var_3, var_4 ) { var_5 = getrandomanimentry( var_0 ); safelyplayanimnatrateuntilnotetrack( var_0, var_5, var_1, var_2, var_3, var_4 ); } safelyplayanimnatrateuntilnotetrack( var_0, var_1, var_2, var_3, var_4, var_5 ) { self setanimstate( var_0, var_1, var_2 ); safelyplayanimnuntilnotetrack( var_0, var_1, var_3, var_4, var_5 ); } safelyplayanimnuntilnotetrack( var_0, var_1, var_2, var_3, var_4 ) { var_5 = self getanimentry( var_0, var_1 ); var_6 = getsafeanimmovedeltapercentage( var_5 ); self scragentsetanimscale( var_6, 1.0 ); playanimnuntilnotetrack( var_0, var_1, var_2, var_3, var_4 ); self scragentsetanimscale( 1.0, 1.0 ); } getrandomanimentry( var_0 ) { var_1 = self getanimentrycount( var_0 ); return randomint( var_1 ); } getangleindexfromselfyaw( var_0 ) { var_1 = vectortoangles( var_0 ); var_2 = angleclamp180( var_1[1] - self.angles[1] ); return getangleindex( var_2 ); }