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

85 lines
2.0 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
wind( var_0, var_1, var_2, var_3 )
{
level notify( "wind changed" );
level endon( "wind changed" );
if ( !isdefined( var_1 ) )
{
wind_internal_blendovertime( var_0, 2 );
return;
}
if ( !isdefined( var_2 ) )
var_2 = 3;
if ( !isdefined( var_3 ) )
var_3 = 0.4;
var_4 = randomfloat( 1 );
for (;;)
{
var_4 = var_4 + randomfloatrange( -1 * var_3, var_3 );
if ( var_4 < 0 )
var_4 = var_4 * -1;
else if ( var_4 > 1 )
var_4 = 2 - var_4;
var_5 = pow( var_4, var_2 );
var_5 = var_0 * ( 1 - var_5 ) + var_1 * var_5;
if ( getdvarint( "interactives_debug", 0 ) )
iprintln( "wind n: " + var_4 + ", strength: " + var_5 );
wind_internal_blendovertime( var_5, 1.2 );
}
}
wind_blendtonewvalue( var_0, var_1 )
{
level notify( "wind changed" );
level endon( "wind changed" );
wind_internal_blendovertime( var_0, var_1 );
}
wind_internal_blendovertime( var_0, var_1, var_2, var_3, var_4 )
{
if ( !isdefined( var_1 ) )
var_1 = 1;
if ( !isdefined( var_2 ) )
var_2 = var_1 / 0.05;
if ( !isdefined( var_3 ) )
var_3 = var_0 * 5;
if ( isdefined( var_4 ) )
var_5 = var_2 * var_4 / var_1;
else
var_5 = var_2 * 0.5;
var_6 = getdvarfloat( "r_reactiveMotionWindStrength" );
var_7 = getdvarfloat( "r_reactiveMotionWindAmplitudeScale" );
var_8 = ( var_0 - var_7 ) / var_2;
var_9 = ( var_3 - var_6 ) / var_5;
for ( var_10 = 0; var_10 < var_2; var_10 = var_10 + 1 )
{
var_7 = var_7 + var_8;
var_6 = var_6 + var_9;
setsaveddvar( "r_reactiveMotionWindAmplitudeScale", var_7 );
if ( var_10 < var_5 )
setsaveddvar( "r_reactiveMotionWindStrength", var_6 );
wait( var_1 / var_2 );
}
setsaveddvar( "r_reactiveMotionWindAmplitudeScale", var_0 );
setsaveddvar( "r_reactiveMotionWindStrength", var_3 );
}