664 lines
23 KiB
Plaintext
664 lines
23 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
main()
|
|
{
|
|
level.current_sunflare_setting = "default";
|
|
level._clearalltextafterhudelem = 0;
|
|
dof_init();
|
|
tess_init();
|
|
precachemenu( "dev_vision_noloc" );
|
|
precachemenu( "dev_vision_exec" );
|
|
level.special_weapon_dof_funcs = [];
|
|
level.buttons = [];
|
|
|
|
if ( !isdefined( level.vision_set_transition_ent ) )
|
|
{
|
|
level.vision_set_transition_ent = spawnstruct();
|
|
level.vision_set_transition_ent.vision_set = "";
|
|
level.vision_set_transition_ent.time = 0;
|
|
}
|
|
|
|
if ( !isdefined( level.sunflare_settings ) )
|
|
level.sunflare_settings = [];
|
|
|
|
if ( !isdefined( level.vision_set_fog ) )
|
|
{
|
|
level.vision_set_fog = [];
|
|
create_default_vision_set_fog( level.script );
|
|
common_scripts\_artcommon::setfogsliders();
|
|
}
|
|
|
|
if ( !isdefined( level.script ) )
|
|
level.script = tolower( getdvar( "mapname" ) );
|
|
}
|
|
|
|
create_default_vision_set_fog( var_0 )
|
|
{
|
|
var_1 = maps\_utility::create_vision_set_fog( var_0 );
|
|
var_1.startdist = 3764.17;
|
|
var_1.halfwaydist = 19391;
|
|
var_1.red = 0.661137;
|
|
var_1.green = 0.554261;
|
|
var_1.blue = 0.454014;
|
|
var_1.maxopacity = 0.7;
|
|
var_1.transitiontime = 0;
|
|
var_1.skyfogintensity = 0;
|
|
var_1.skyfogminangle = 0;
|
|
var_1.skyfogmaxangle = 0;
|
|
}
|
|
|
|
dof_set_generic( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8 )
|
|
{
|
|
level.dof[var_0][var_1]["nearStart"] = var_2;
|
|
level.dof[var_0][var_1]["nearEnd"] = var_3;
|
|
level.dof[var_0][var_1]["nearBlur"] = var_4;
|
|
level.dof[var_0][var_1]["farStart"] = var_5;
|
|
level.dof[var_0][var_1]["farEnd"] = var_6;
|
|
level.dof[var_0][var_1]["farBlur"] = var_7;
|
|
level.dof[var_0][var_1]["weight"] = var_8;
|
|
}
|
|
|
|
dof_blend_interior_generic( var_0 )
|
|
{
|
|
if ( level.dof[var_0]["timeRemaining"] <= 0.0 )
|
|
return;
|
|
|
|
var_1 = min( 1.0, 0.05 / level.dof[var_0]["timeRemaining"] );
|
|
level.dof[var_0]["timeRemaining"] = level.dof[var_0]["timeRemaining"] - 0.05;
|
|
|
|
if ( level.dof[var_0]["timeRemaining"] <= 0.0 )
|
|
{
|
|
level.dof[var_0]["timeRemaining"] = 0.0;
|
|
level.dof[var_0]["current"]["nearStart"] = level.dof[var_0]["goal"]["nearStart"];
|
|
level.dof[var_0]["current"]["nearEnd"] = level.dof[var_0]["goal"]["nearEnd"];
|
|
level.dof[var_0]["current"]["nearBlur"] = level.dof[var_0]["goal"]["nearBlur"];
|
|
level.dof[var_0]["current"]["farStart"] = level.dof[var_0]["goal"]["farStart"];
|
|
level.dof[var_0]["current"]["farEnd"] = level.dof[var_0]["goal"]["farEnd"];
|
|
level.dof[var_0]["current"]["farBlur"] = level.dof[var_0]["goal"]["farBlur"];
|
|
level.dof[var_0]["current"]["weight"] = level.dof[var_0]["goal"]["weight"];
|
|
return;
|
|
}
|
|
|
|
level.dof[var_0]["current"]["nearStart"] = level.dof[var_0]["current"]["nearStart"] + var_1 * ( level.dof[var_0]["goal"]["nearStart"] - level.dof[var_0]["current"]["nearStart"] );
|
|
level.dof[var_0]["current"]["nearEnd"] = level.dof[var_0]["current"]["nearEnd"] + var_1 * ( level.dof[var_0]["goal"]["nearEnd"] - level.dof[var_0]["current"]["nearEnd"] );
|
|
level.dof[var_0]["current"]["nearBlur"] = level.dof[var_0]["current"]["nearBlur"] + var_1 * ( level.dof[var_0]["goal"]["nearBlur"] - level.dof[var_0]["current"]["nearBlur"] );
|
|
level.dof[var_0]["current"]["farStart"] = level.dof[var_0]["current"]["farStart"] + var_1 * ( level.dof[var_0]["goal"]["farStart"] - level.dof[var_0]["current"]["farStart"] );
|
|
level.dof[var_0]["current"]["farEnd"] = level.dof[var_0]["current"]["farEnd"] + var_1 * ( level.dof[var_0]["goal"]["farEnd"] - level.dof[var_0]["current"]["farEnd"] );
|
|
level.dof[var_0]["current"]["farBlur"] = level.dof[var_0]["current"]["farBlur"] + var_1 * ( level.dof[var_0]["goal"]["farBlur"] - level.dof[var_0]["current"]["farBlur"] );
|
|
level.dof[var_0]["current"]["weight"] = level.dof[var_0]["current"]["weight"] + var_1 * ( level.dof[var_0]["goal"]["weight"] - level.dof[var_0]["current"]["weight"] );
|
|
}
|
|
|
|
dof_init()
|
|
{
|
|
if ( getdvar( "scr_dof_enable" ) == "" )
|
|
setsaveddvar( "scr_dof_enable", "1" );
|
|
|
|
setdvar( "ads_dof_tracedist", 8192 );
|
|
setdvar( "ads_dof_maxEnemyDist", 10000 );
|
|
setdvar( "ads_dof_playerForgetEnemyTime", 5000 );
|
|
setdvar( "ads_dof_nearStartScale", 0.25 );
|
|
setdvar( "ads_dof_nearEndScale", 0.85 );
|
|
setdvar( "ads_dof_farStartScale", 1.15 );
|
|
setdvar( "ads_dof_farEndScale", 3 );
|
|
setdvar( "ads_dof_nearBlur", 4 );
|
|
setdvar( "ads_dof_farBlur", 1.5 );
|
|
setdvar( "ads_dof_debug", 0 );
|
|
var_0 = 1;
|
|
var_1 = 1;
|
|
var_2 = 4.5;
|
|
var_3 = 500;
|
|
var_4 = 500;
|
|
var_5 = 0.05;
|
|
level.dof = [];
|
|
level.dof["base"] = [];
|
|
level.dof["base"]["current"] = [];
|
|
level.dof["base"]["goal"] = [];
|
|
level.dof["base"]["timeRemaining"] = 0.0;
|
|
dof_set_generic( "base", "current", var_0, var_1, var_2, var_3, var_4, var_5, 1.0 );
|
|
dof_set_generic( "base", "goal", 0, 0, 0, 0, 0, 0, 0.0 );
|
|
level.dof["script"] = [];
|
|
level.dof["script"]["current"] = [];
|
|
level.dof["script"]["goal"] = [];
|
|
level.dof["script"]["timeRemaining"] = 0.0;
|
|
dof_set_generic( "script", "current", 0, 0, 0, 0, 0, 0, 0.0 );
|
|
dof_set_generic( "script", "goal", 0, 0, 0, 0, 0, 0, 0.0 );
|
|
level.dof["ads"] = [];
|
|
level.dof["ads"]["current"] = [];
|
|
level.dof["ads"]["goal"] = [];
|
|
dof_set_generic( "ads", "current", 0, 0, 0, 0, 0, 0, 0.0 );
|
|
dof_set_generic( "ads", "goal", 0, 0, 0, 0, 0, 0, 0.0 );
|
|
level.dof["results"] = [];
|
|
level.dof["results"]["current"] = [];
|
|
dof_set_generic( "results", "current", var_0, var_1, var_2, var_3, var_4, var_5, 1.0 );
|
|
|
|
foreach ( var_7 in level.players )
|
|
var_7 thread dof_update();
|
|
}
|
|
|
|
dof_set_base( var_0, var_1, var_2, var_3, var_4, var_5, var_6 )
|
|
{
|
|
dof_set_generic( "base", "goal", var_0, var_1, var_2, var_3, var_4, var_5, 1.0 );
|
|
level.dof["base"]["timeRemaining"] = var_6;
|
|
|
|
if ( var_6 <= 0.0 )
|
|
dof_set_generic( "base", "current", var_0, var_1, var_2, var_3, var_4, var_5, 1.0 );
|
|
}
|
|
|
|
dof_enable_script( var_0, var_1, var_2, var_3, var_4, var_5, var_6 )
|
|
{
|
|
dof_set_generic( "script", "goal", var_0, var_1, var_2, var_3, var_4, var_5, 1.0 );
|
|
level.dof["script"]["timeRemaining"] = var_6;
|
|
|
|
if ( var_6 <= 0.0 )
|
|
dof_set_generic( "script", "current", var_0, var_1, var_2, var_3, var_4, var_5, 1.0 );
|
|
else if ( level.dof["script"]["current"]["weight"] <= 0.0 )
|
|
dof_set_generic( "script", "current", var_0, var_1, var_2, var_3, var_4, var_5, 0.0 );
|
|
}
|
|
|
|
dof_disable_script( var_0 )
|
|
{
|
|
level.dof["script"]["goal"]["weight"] = 0.0;
|
|
level.dof["script"]["timeRemaining"] = var_0;
|
|
|
|
if ( var_0 <= 0.0 )
|
|
level.dof["script"]["current"]["weight"] = 0.0;
|
|
}
|
|
|
|
dof_enable_ads( var_0, var_1, var_2, var_3, var_4, var_5, var_6 )
|
|
{
|
|
dof_set_generic( "ads", "goal", var_0, var_1, var_2, var_3, var_4, var_5, var_6 );
|
|
|
|
if ( level.dof["ads"]["current"]["weight"] <= 0.0 )
|
|
dof_set_generic( "ads", "current", var_0, var_1, var_2, var_3, var_4, var_5, 0.0 );
|
|
}
|
|
|
|
dof_blend_interior_ads_element( var_0, var_1, var_2, var_3 )
|
|
{
|
|
if ( var_0 > var_1 )
|
|
{
|
|
var_4 = ( var_0 - var_1 ) * var_3;
|
|
|
|
if ( var_4 > var_2 )
|
|
var_4 = var_2;
|
|
else if ( var_4 < 1 )
|
|
var_4 = 1;
|
|
|
|
if ( var_0 - var_4 <= var_1 )
|
|
return var_1;
|
|
else
|
|
return var_0 - var_4;
|
|
}
|
|
else if ( var_0 < var_1 )
|
|
{
|
|
var_4 = ( var_1 - var_0 ) * var_3;
|
|
|
|
if ( var_4 > var_2 )
|
|
var_4 = var_2;
|
|
else if ( var_4 < 1 )
|
|
var_4 = 1;
|
|
|
|
if ( var_0 + var_4 >= var_1 )
|
|
return var_1;
|
|
else
|
|
return var_0 + var_4;
|
|
}
|
|
|
|
return var_0;
|
|
}
|
|
|
|
dof_blend_interior_ads()
|
|
{
|
|
var_0 = level.dof["ads"]["goal"]["weight"];
|
|
|
|
if ( var_0 < 1.0 )
|
|
{
|
|
if ( self adsbuttonpressed() && self playerads() > 0.0 )
|
|
var_0 = min( 1, var_0 + 0.7 );
|
|
else
|
|
var_0 = 0;
|
|
|
|
level.dof["ads"]["current"]["nearStart"] = level.dof["ads"]["goal"]["nearStart"];
|
|
level.dof["ads"]["current"]["nearEnd"] = level.dof["ads"]["goal"]["nearEnd"];
|
|
level.dof["ads"]["current"]["nearBlur"] = level.dof["ads"]["goal"]["nearBlur"];
|
|
level.dof["ads"]["current"]["farStart"] = level.dof["ads"]["goal"]["farStart"];
|
|
level.dof["ads"]["current"]["farEnd"] = level.dof["ads"]["goal"]["farEnd"];
|
|
level.dof["ads"]["current"]["farBlur"] = level.dof["ads"]["goal"]["farBlur"];
|
|
level.dof["ads"]["current"]["weight"] = var_0;
|
|
return;
|
|
}
|
|
|
|
if ( isdefined( level.dof_blend_interior_ads_scalar ) )
|
|
var_1 = level.dof_blend_interior_ads_scalar;
|
|
else
|
|
var_1 = 0.1;
|
|
|
|
var_2 = 10;
|
|
var_3 = max( var_2, abs( level.dof["ads"]["current"]["nearStart"] - level.dof["ads"]["goal"]["nearStart"] ) * var_1 );
|
|
var_4 = max( var_2, abs( level.dof["ads"]["current"]["nearEnd"] - level.dof["ads"]["goal"]["nearEnd"] ) * var_1 );
|
|
var_5 = max( var_2, abs( level.dof["ads"]["current"]["farStart"] - level.dof["ads"]["goal"]["farStart"] ) * var_1 );
|
|
var_6 = max( var_2, abs( level.dof["ads"]["current"]["farEnd"] - level.dof["ads"]["goal"]["farEnd"] ) * var_1 );
|
|
var_7 = 0.1;
|
|
level.dof["ads"]["current"]["nearStart"] = dof_blend_interior_ads_element( level.dof["ads"]["current"]["nearStart"], level.dof["ads"]["goal"]["nearStart"], var_3, 0.33 );
|
|
level.dof["ads"]["current"]["nearEnd"] = dof_blend_interior_ads_element( level.dof["ads"]["current"]["nearEnd"], level.dof["ads"]["goal"]["nearEnd"], var_4, 0.33 );
|
|
level.dof["ads"]["current"]["nearBlur"] = dof_blend_interior_ads_element( level.dof["ads"]["current"]["nearBlur"], level.dof["ads"]["goal"]["nearBlur"], var_7, 0.33 );
|
|
level.dof["ads"]["current"]["farStart"] = dof_blend_interior_ads_element( level.dof["ads"]["current"]["farStart"], level.dof["ads"]["goal"]["farStart"], var_5, 0.33 );
|
|
level.dof["ads"]["current"]["farEnd"] = dof_blend_interior_ads_element( level.dof["ads"]["current"]["farEnd"], level.dof["ads"]["goal"]["farEnd"], var_6, 0.33 );
|
|
level.dof["ads"]["current"]["farBlur"] = dof_blend_interior_ads_element( level.dof["ads"]["current"]["farBlur"], level.dof["ads"]["goal"]["farBlur"], var_7, 0.33 );
|
|
level.dof["ads"]["current"]["weight"] = 1.0;
|
|
}
|
|
|
|
dof_disable_ads()
|
|
{
|
|
level.dof["ads"]["goal"]["weight"] = 0.0;
|
|
level.dof["ads"]["current"]["weight"] = 0.0;
|
|
}
|
|
|
|
dof_apply_to_results( var_0 )
|
|
{
|
|
var_1 = level.dof[var_0]["current"]["weight"];
|
|
var_2 = 1.0 - var_1;
|
|
level.dof["results"]["current"]["nearStart"] = level.dof["results"]["current"]["nearStart"] * var_2 + level.dof[var_0]["current"]["nearStart"] * var_1;
|
|
level.dof["results"]["current"]["nearEnd"] = level.dof["results"]["current"]["nearEnd"] * var_2 + level.dof[var_0]["current"]["nearEnd"] * var_1;
|
|
level.dof["results"]["current"]["nearBlur"] = level.dof["results"]["current"]["nearBlur"] * var_2 + level.dof[var_0]["current"]["nearBlur"] * var_1;
|
|
level.dof["results"]["current"]["farStart"] = level.dof["results"]["current"]["farStart"] * var_2 + level.dof[var_0]["current"]["farStart"] * var_1;
|
|
level.dof["results"]["current"]["farEnd"] = level.dof["results"]["current"]["farEnd"] * var_2 + level.dof[var_0]["current"]["farEnd"] * var_1;
|
|
level.dof["results"]["current"]["farBlur"] = level.dof["results"]["current"]["farBlur"] * var_2 + level.dof[var_0]["current"]["farBlur"] * var_1;
|
|
}
|
|
|
|
dof_calc_results()
|
|
{
|
|
dof_blend_interior_generic( "base" );
|
|
dof_blend_interior_generic( "script" );
|
|
dof_blend_interior_ads();
|
|
dof_apply_to_results( "base" );
|
|
dof_apply_to_results( "script" );
|
|
dof_apply_to_results( "ads" );
|
|
var_0 = level.dof["results"]["current"]["nearStart"];
|
|
var_1 = level.dof["results"]["current"]["nearEnd"];
|
|
var_2 = level.dof["results"]["current"]["nearBlur"];
|
|
var_3 = level.dof["results"]["current"]["farStart"];
|
|
var_4 = level.dof["results"]["current"]["farEnd"];
|
|
var_5 = level.dof["results"]["current"]["farBlur"];
|
|
var_0 = max( 0, var_0 );
|
|
var_1 = max( 0, var_1 );
|
|
var_3 = max( 0, var_3 );
|
|
var_4 = max( 0, var_4 );
|
|
var_2 = max( 4, var_2 );
|
|
var_2 = min( 10, var_2 );
|
|
var_5 = max( 0, var_5 );
|
|
var_5 = min( var_2, var_5 );
|
|
|
|
if ( var_5 > 0.0 )
|
|
var_3 = max( var_1, var_3 );
|
|
|
|
level.dof["results"]["current"]["nearStart"] = var_0;
|
|
level.dof["results"]["current"]["nearEnd"] = var_1;
|
|
level.dof["results"]["current"]["nearBlur"] = var_2;
|
|
level.dof["results"]["current"]["farStart"] = var_3;
|
|
level.dof["results"]["current"]["farEnd"] = var_4;
|
|
level.dof["results"]["current"]["farBlur"] = var_5;
|
|
}
|
|
|
|
dof_process_ads()
|
|
{
|
|
var_0 = self playerads();
|
|
|
|
if ( var_0 <= 0.0 )
|
|
{
|
|
dof_disable_ads();
|
|
return;
|
|
}
|
|
|
|
if ( isdefined( level.custom_dof_trace ) )
|
|
{
|
|
[[ level.custom_dof_trace ]]();
|
|
return;
|
|
}
|
|
|
|
var_1 = getdvarfloat( "ads_dof_tracedist", 4096 );
|
|
var_2 = getdvarfloat( "ads_dof_maxEnemyDist", 0 );
|
|
var_3 = getdvarint( "ads_dof_playerForgetEnemyTime", 5000 );
|
|
var_4 = getdvarfloat( "ads_dof_nearStartScale", 0.25 );
|
|
var_5 = getdvarfloat( "ads_dof_nearEndScale", 0.85 );
|
|
var_6 = getdvarfloat( "ads_dof_farStartScale", 1.15 );
|
|
var_7 = getdvarfloat( "ads_dof_farEndScale", 3 );
|
|
var_8 = getdvarfloat( "ads_dof_nearBlur", 4 );
|
|
var_9 = getdvarfloat( "ads_dof_farBlur", 2.5 );
|
|
var_10 = self geteye();
|
|
var_11 = self getplayerangles();
|
|
|
|
if ( isdefined( self.dof_ref_ent ) )
|
|
var_12 = combineangles( self.dof_ref_ent.angles, var_11 );
|
|
else
|
|
var_12 = var_11;
|
|
|
|
var_13 = vectornormalize( anglestoforward( var_12 ) );
|
|
var_14 = bullettrace( var_10, var_10 + var_13 * var_1, 1, self, 1, 0, 0, 0, 0 );
|
|
var_15 = getaiarray( "axis" );
|
|
var_16 = self getcurrentweapon();
|
|
|
|
if ( isdefined( level.special_weapon_dof_funcs[var_16] ) )
|
|
{
|
|
[[ level.special_weapon_dof_funcs[var_16] ]]( var_14, var_15, var_10, var_13, var_0 );
|
|
return;
|
|
}
|
|
|
|
if ( var_14["fraction"] == 1 )
|
|
{
|
|
var_1 = 2048;
|
|
var_17 = 256;
|
|
var_18 = var_1 * var_6 * 2;
|
|
}
|
|
else
|
|
{
|
|
var_1 = distance( var_10, var_14["position"] );
|
|
var_17 = var_1 * var_4;
|
|
var_18 = var_1 * var_6;
|
|
}
|
|
|
|
foreach ( var_20 in var_15 )
|
|
{
|
|
var_21 = var_20 isenemyaware();
|
|
var_22 = var_20 hasenemybeenseen( var_3 );
|
|
|
|
if ( !var_21 && !var_22 )
|
|
continue;
|
|
|
|
var_23 = vectornormalize( var_20.origin - var_10 );
|
|
var_24 = vectordot( var_13, var_23 );
|
|
|
|
if ( var_24 < 0.923 )
|
|
continue;
|
|
|
|
var_25 = distance( var_10, var_20.origin );
|
|
|
|
if ( var_25 - 30 < var_17 )
|
|
var_17 = var_25 - 30;
|
|
|
|
var_26 = min( var_25, var_2 );
|
|
|
|
if ( var_26 + 30 > var_18 )
|
|
var_18 = var_26 + 30;
|
|
}
|
|
|
|
if ( var_17 > var_18 )
|
|
var_17 = var_18 - 256;
|
|
|
|
if ( var_17 > var_1 )
|
|
var_17 = var_1 - 30;
|
|
|
|
if ( var_17 < 1 )
|
|
var_17 = 1;
|
|
|
|
if ( var_18 < var_1 )
|
|
var_18 = var_1;
|
|
|
|
var_28 = var_17 * var_4;
|
|
var_29 = var_18 * var_7;
|
|
dof_enable_ads( var_28, var_17, var_8, var_18, var_29, var_9, var_0 );
|
|
}
|
|
|
|
javelin_dof( var_0, var_1, var_2, var_3, var_4 )
|
|
{
|
|
if ( var_4 < 0.88 )
|
|
{
|
|
dof_disable_ads();
|
|
return;
|
|
}
|
|
|
|
var_5 = 10000;
|
|
var_6 = -1;
|
|
var_5 = 2400;
|
|
var_7 = 2400;
|
|
|
|
for ( var_8 = 0; var_8 < var_1.size; var_8++ )
|
|
{
|
|
var_9 = vectornormalize( var_1[var_8].origin - var_2 );
|
|
var_10 = vectordot( var_3, var_9 );
|
|
|
|
if ( var_10 < 0.923 )
|
|
continue;
|
|
|
|
var_11 = distance( var_2, var_1[var_8].origin );
|
|
|
|
if ( var_11 < 2500 )
|
|
var_11 = 2500;
|
|
|
|
if ( var_11 - 30 < var_5 )
|
|
var_5 = var_11 - 30;
|
|
|
|
if ( var_11 + 30 > var_6 )
|
|
var_6 = var_11 + 30;
|
|
}
|
|
|
|
if ( var_5 > var_6 )
|
|
{
|
|
var_5 = 2400;
|
|
var_6 = 3000;
|
|
}
|
|
else
|
|
{
|
|
if ( var_5 < 50 )
|
|
var_5 = 50;
|
|
|
|
if ( var_6 > 2500 )
|
|
var_6 = 2500;
|
|
else if ( var_6 < 1000 )
|
|
var_6 = 1000;
|
|
}
|
|
|
|
var_12 = distance( var_2, var_0["position"] );
|
|
|
|
if ( var_12 < 2500 )
|
|
var_12 = 2500;
|
|
|
|
if ( var_5 > var_12 )
|
|
var_5 = var_12 - 30;
|
|
|
|
if ( var_5 < 1 )
|
|
var_5 = 1;
|
|
|
|
if ( var_6 < var_12 )
|
|
var_6 = var_12;
|
|
|
|
if ( var_7 >= var_5 )
|
|
var_7 = var_5 - 1;
|
|
|
|
var_13 = var_6 * 4;
|
|
var_14 = 4;
|
|
var_15 = 1.8;
|
|
dof_enable_ads( var_7, var_5, var_14, var_6, var_13, var_15, var_4 );
|
|
}
|
|
|
|
dof_update()
|
|
{
|
|
for (;;)
|
|
{
|
|
common_scripts\utility::waitframe();
|
|
|
|
if ( level.level_specific_dof )
|
|
continue;
|
|
|
|
if ( !getdvarint( "scr_dof_enable" ) )
|
|
continue;
|
|
|
|
dof_process_ads();
|
|
dof_calc_results();
|
|
var_0 = level.dof["results"]["current"]["nearStart"];
|
|
var_1 = level.dof["results"]["current"]["nearEnd"];
|
|
var_2 = level.dof["results"]["current"]["farStart"];
|
|
var_3 = level.dof["results"]["current"]["farEnd"];
|
|
var_4 = level.dof["results"]["current"]["nearBlur"];
|
|
var_5 = level.dof["results"]["current"]["farBlur"];
|
|
self setdepthoffield( var_0, var_1, var_2, var_3, var_4, var_5 );
|
|
}
|
|
}
|
|
|
|
tess_init()
|
|
{
|
|
var_0 = getdvar( "r_tessellation" );
|
|
|
|
if ( var_0 == "" )
|
|
return;
|
|
|
|
level.tess = spawnstruct();
|
|
level.tess.cutoff_distance_current = getdvarfloat( "r_tessellationCutoffDistance", 960.0 );
|
|
level.tess.cutoff_distance_goal = level.tess.cutoff_distance_current;
|
|
level.tess.cutoff_falloff_current = getdvarfloat( "r_tessellationCutoffFalloff", 320.0 );
|
|
level.tess.cutoff_falloff_goal = level.tess.cutoff_falloff_current;
|
|
level.tess.time_remaining = 0.0;
|
|
|
|
foreach ( var_2 in level.players )
|
|
var_2 thread tess_update();
|
|
}
|
|
|
|
tess_set_goal( var_0, var_1, var_2 )
|
|
{
|
|
level.tess.cutoff_distance_goal = var_0;
|
|
level.tess.cutoff_falloff_goal = var_1;
|
|
level.tess.time_remaining = var_2;
|
|
}
|
|
|
|
tess_update()
|
|
{
|
|
for (;;)
|
|
{
|
|
var_0 = level.tess.cutoff_distance_current;
|
|
var_1 = level.tess.cutoff_falloff_current;
|
|
common_scripts\utility::waitframe();
|
|
|
|
if ( level.tess.time_remaining > 0.0 )
|
|
{
|
|
var_2 = level.tess.time_remaining * 20;
|
|
var_3 = ( level.tess.cutoff_distance_goal - level.tess.cutoff_distance_current ) / var_2;
|
|
var_4 = ( level.tess.cutoff_falloff_goal - level.tess.cutoff_falloff_current ) / var_2;
|
|
level.tess.cutoff_distance_current = level.tess.cutoff_distance_current + var_3;
|
|
level.tess.cutoff_falloff_current = level.tess.cutoff_falloff_current + var_4;
|
|
level.tess.time_remaining = level.tess.time_remaining - 0.05;
|
|
}
|
|
else
|
|
{
|
|
level.tess.cutoff_distance_current = level.tess.cutoff_distance_goal;
|
|
level.tess.cutoff_falloff_current = level.tess.cutoff_falloff_goal;
|
|
}
|
|
|
|
if ( var_0 != level.tess.cutoff_distance_current )
|
|
setsaveddvar( "r_tessellationCutoffDistance", level.tess.cutoff_distance_current );
|
|
|
|
if ( var_1 != level.tess.cutoff_falloff_current )
|
|
setsaveddvar( "r_tessellationCutoffFalloff", level.tess.cutoff_falloff_current );
|
|
}
|
|
}
|
|
|
|
sunflare_changes( var_0, var_1 )
|
|
{
|
|
if ( !isdefined( level.sunflare_settings[var_0] ) )
|
|
return;
|
|
|
|
self notify( "sunflare_start_adjust" );
|
|
self endon( "sunflare_start_adjust" );
|
|
var_2 = gettime();
|
|
var_3 = var_1 * 1000;
|
|
var_4 = getdvarvector( "r_sunflare_position", ( 0, 0, 0 ) );
|
|
var_5 = gettime() - var_2;
|
|
var_6 = level.sunflare_settings[var_0].position;
|
|
|
|
for ( level.current_sunflare_setting = var_0; var_5 < var_3; var_5 = gettime() - var_2 )
|
|
{
|
|
var_6 = level.sunflare_settings[var_0].position;
|
|
var_7 = min( float( var_5 / var_3 ), 1 );
|
|
var_8 = var_4 + ( var_6 - var_4 ) * var_7;
|
|
setdvar( "r_sunflare_position", var_8 );
|
|
setsunflareposition( var_8 );
|
|
wait 0.05;
|
|
}
|
|
|
|
setdvar( "r_sunflare_position", level.sunflare_settings[var_0].position );
|
|
setsunflareposition( var_6 );
|
|
}
|
|
|
|
init_fog_transition()
|
|
{
|
|
if ( !isdefined( level.fog_transition_ent ) )
|
|
{
|
|
level.fog_transition_ent = spawnstruct();
|
|
level.fog_transition_ent.fogset = "";
|
|
level.fog_transition_ent.time = 0;
|
|
}
|
|
}
|
|
|
|
set_fog_progress( var_0 )
|
|
{
|
|
var_1 = 1 - var_0;
|
|
var_2 = self.start_neardist * var_1 + self.end_neardist * var_0;
|
|
var_3 = self.start_fardist * var_1 + self.end_fardist * var_0;
|
|
var_4 = self.start_color * var_1 + self.end_color * var_0;
|
|
var_5 = self.start_hdrcolorintensity * var_1 + self.end_hdrcolorintensity * var_0;
|
|
var_6 = self.start_opacity;
|
|
var_7 = self.end_opacity;
|
|
var_8 = self.start_skyfogintensity;
|
|
var_9 = self.start_skyfogminangle;
|
|
var_10 = self.start_skyfogmaxangle;
|
|
var_8 = self.start_skyfogintensity * var_1 + self.end_skyfogintensity * var_0;
|
|
var_9 = self.start_skyfogminangle * var_1 + self.end_skyfogminangle * var_0;
|
|
var_10 = self.start_skyfogmaxangle * var_1 + self.end_skyfogmaxangle * var_0;
|
|
|
|
if ( !isdefined( var_6 ) )
|
|
var_6 = 1;
|
|
|
|
if ( !isdefined( var_7 ) )
|
|
var_7 = 1;
|
|
|
|
var_11 = var_6 * var_1 + var_7 * var_0;
|
|
|
|
if ( self.sunfog_enabled )
|
|
{
|
|
var_12 = self.start_suncolor * var_1 + self.end_suncolor * var_0;
|
|
var_13 = self.start_hdrsuncolorintensity * var_1 + self.end_hdrsuncolorintensity * var_0;
|
|
var_14 = self.start_sundir * var_1 + self.end_sundir * var_0;
|
|
var_15 = self.start_sunbeginfadeangle * var_1 + self.end_sunbeginfadeangle * var_0;
|
|
var_16 = self.start_sunendfadeangle * var_1 + self.end_sunendfadeangle * var_0;
|
|
var_17 = self.start_sunfogscale * var_1 + self.end_sunfogscale * var_0;
|
|
setexpfog( var_2, var_3, var_4[0], var_4[1], var_4[2], var_5, var_11, 0.4, var_12[0], var_12[1], var_12[2], var_13, var_14, var_15, var_16, var_17, var_8, var_9, var_10 );
|
|
}
|
|
else
|
|
setexpfog( var_2, var_3, var_4[0], var_4[1], var_4[2], var_5, var_11, 0.4, var_8, var_9, var_10 );
|
|
}
|
|
|
|
ssao_set_target_over_time_internal( var_0, var_1 )
|
|
{
|
|
level notify( "ssao_set_target_over_time_internal" );
|
|
level endon( "ssao_set_target_over_time_internal" );
|
|
maps\_utility::set_console_status();
|
|
|
|
if ( !maps\_utility::is_gen4() )
|
|
return;
|
|
|
|
var_2 = getdvarfloat( "r_ssaoScriptScale", 1.0 );
|
|
|
|
for ( var_3 = var_1; var_3 > 0.0; var_3 = var_3 - 0.05 )
|
|
{
|
|
var_4 = min( 1.0, 0.05 / var_3 );
|
|
var_5 = var_2;
|
|
var_2 = var_2 + var_4 * ( var_0 - var_2 );
|
|
|
|
if ( var_5 != var_2 )
|
|
setsaveddvar( "r_ssaoScriptScale", var_2 );
|
|
|
|
common_scripts\utility::waitframe();
|
|
}
|
|
|
|
setsaveddvar( "r_ssaoScriptScale", var_0 );
|
|
}
|
|
|
|
disable_ssao_over_time( var_0 )
|
|
{
|
|
level thread ssao_set_target_over_time_internal( 0.0, var_0 );
|
|
}
|
|
|
|
enable_ssao_over_time( var_0 )
|
|
{
|
|
level thread ssao_set_target_over_time_internal( 1.0, var_0 );
|
|
}
|