mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
886 lines
25 KiB
Plaintext
886 lines
25 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: _art.gsc
|
|
* Game: Call of Duty: Advanced Warfare
|
|
* Platform: PC
|
|
* Function Count: 28
|
|
* Decompile Time: 418 ms
|
|
* Timestamp: 4/22/2024 2:20:04 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
main()
|
|
{
|
|
maps\_utility::set_console_status();
|
|
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"));
|
|
}
|
|
}
|
|
|
|
//Function Number: 2
|
|
create_default_vision_set_fog(param_00)
|
|
{
|
|
var_01 = maps\_utility::create_vision_set_fog(param_00);
|
|
var_01.startdist = 3764.17;
|
|
var_01.halfwaydist = 19391;
|
|
var_01.red = 0.661137;
|
|
var_01.green = 0.554261;
|
|
var_01.blue = 0.454014;
|
|
var_01.maxopacity = 0.7;
|
|
var_01.transitiontime = 0;
|
|
var_01.skyfogintensity = 0;
|
|
var_01.skyfogminangle = 0;
|
|
var_01.skyfogmaxangle = 0;
|
|
var_01.heightfogenabled = 0;
|
|
var_01.heightfogbaseheight = 0;
|
|
var_01.heightfoghalfplanedistance = 1000;
|
|
}
|
|
|
|
//Function Number: 3
|
|
get_fog_filename()
|
|
{
|
|
if(isusinghdr())
|
|
{
|
|
return "\\share\\raw\\maps\\createart\\" + common_scripts\utility::get_template_level() + "_fog_hdr.gsc";
|
|
}
|
|
|
|
return "\\share\\raw\\maps\\createart\\" + common_scripts\utility::get_template_level() + "_fog.gsc";
|
|
}
|
|
|
|
//Function Number: 4
|
|
dof_set_generic(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
|
{
|
|
level.dof[param_00][param_01]["nearStart"] = param_02;
|
|
level.dof[param_00][param_01]["nearEnd"] = param_03;
|
|
level.dof[param_00][param_01]["nearBlur"] = param_04;
|
|
level.dof[param_00][param_01]["farStart"] = param_05;
|
|
level.dof[param_00][param_01]["farEnd"] = param_06;
|
|
level.dof[param_00][param_01]["farBlur"] = param_07;
|
|
level.dof[param_00][param_01]["weight"] = param_08;
|
|
if(isdefined(param_09))
|
|
{
|
|
level.dof[param_00][param_01]["bias"] = param_09;
|
|
}
|
|
}
|
|
|
|
//Function Number: 5
|
|
dof_blend_interior_generic(param_00)
|
|
{
|
|
if(level.dof[param_00]["timeRemaining"] <= 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_01 = min(1,0.05 / level.dof[param_00]["timeRemaining"]);
|
|
level.dof[param_00]["timeRemaining"] = level.dof[param_00]["timeRemaining"] - 0.05;
|
|
if(level.dof[param_00]["timeRemaining"] <= 0)
|
|
{
|
|
level.dof[param_00]["timeRemaining"] = 0;
|
|
level.dof[param_00]["current"]["nearStart"] = level.dof[param_00]["goal"]["nearStart"];
|
|
level.dof[param_00]["current"]["nearEnd"] = level.dof[param_00]["goal"]["nearEnd"];
|
|
level.dof[param_00]["current"]["nearBlur"] = level.dof[param_00]["goal"]["nearBlur"];
|
|
level.dof[param_00]["current"]["farStart"] = level.dof[param_00]["goal"]["farStart"];
|
|
level.dof[param_00]["current"]["farEnd"] = level.dof[param_00]["goal"]["farEnd"];
|
|
level.dof[param_00]["current"]["farBlur"] = level.dof[param_00]["goal"]["farBlur"];
|
|
level.dof[param_00]["current"]["weight"] = level.dof[param_00]["goal"]["weight"];
|
|
return;
|
|
}
|
|
|
|
level.dof[param_00]["current"]["nearStart"] = level.dof[param_00]["current"]["nearStart"] + var_01 * level.dof[param_00]["goal"]["nearStart"] - level.dof[param_00]["current"]["nearStart"];
|
|
level.dof[param_00]["current"]["nearEnd"] = level.dof[param_00]["current"]["nearEnd"] + var_01 * level.dof[param_00]["goal"]["nearEnd"] - level.dof[param_00]["current"]["nearEnd"];
|
|
level.dof[param_00]["current"]["nearBlur"] = level.dof[param_00]["current"]["nearBlur"] + var_01 * level.dof[param_00]["goal"]["nearBlur"] - level.dof[param_00]["current"]["nearBlur"];
|
|
level.dof[param_00]["current"]["farStart"] = level.dof[param_00]["current"]["farStart"] + var_01 * level.dof[param_00]["goal"]["farStart"] - level.dof[param_00]["current"]["farStart"];
|
|
level.dof[param_00]["current"]["farEnd"] = level.dof[param_00]["current"]["farEnd"] + var_01 * level.dof[param_00]["goal"]["farEnd"] - level.dof[param_00]["current"]["farEnd"];
|
|
level.dof[param_00]["current"]["farBlur"] = level.dof[param_00]["current"]["farBlur"] + var_01 * level.dof[param_00]["goal"]["farBlur"] - level.dof[param_00]["current"]["farBlur"];
|
|
level.dof[param_00]["current"]["weight"] = level.dof[param_00]["current"]["weight"] + var_01 * level.dof[param_00]["goal"]["weight"] - level.dof[param_00]["current"]["weight"];
|
|
}
|
|
|
|
//Function Number: 6
|
|
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_00 = 1;
|
|
var_01 = 1;
|
|
var_02 = 4.5;
|
|
var_03 = 500;
|
|
var_04 = 500;
|
|
var_05 = 0.05;
|
|
level.dof = [];
|
|
level.dof["base"] = [];
|
|
level.dof["base"]["current"] = [];
|
|
level.dof["base"]["goal"] = [];
|
|
level.dof["base"]["timeRemaining"] = 0;
|
|
dof_set_generic("base","current",var_00,var_01,var_02,var_03,var_04,var_05,1,0.5);
|
|
dof_set_generic("base","goal",0,0,0,0,0,0,0,0.5);
|
|
level.dof["script"] = [];
|
|
level.dof["script"]["current"] = [];
|
|
level.dof["script"]["goal"] = [];
|
|
level.dof["script"]["timeRemaining"] = 0;
|
|
dof_set_generic("script","current",0,0,0,0,0,0,0,0.5);
|
|
dof_set_generic("script","goal",0,0,0,0,0,0,0,0.5);
|
|
level.dof["ads"] = [];
|
|
level.dof["ads"]["current"] = [];
|
|
level.dof["ads"]["goal"] = [];
|
|
dof_set_generic("ads","current",0,0,0,0,0,0,0,0.5);
|
|
dof_set_generic("ads","goal",0,0,0,0,0,0,0,0.5);
|
|
level.dof["results"] = [];
|
|
level.dof["results"]["current"] = [];
|
|
dof_set_generic("results","current",var_00,var_01,var_02,var_03,var_04,var_05,1,0.5);
|
|
foreach(var_07 in level.players)
|
|
{
|
|
var_07 thread dof_update();
|
|
}
|
|
}
|
|
|
|
//Function Number: 7
|
|
dof_set_base(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
|
{
|
|
dof_set_generic("base","goal",param_00,param_01,param_02,param_03,param_04,param_05,1,param_07);
|
|
level.dof["base"]["timeRemaining"] = param_06;
|
|
if(param_06 <= 0)
|
|
{
|
|
dof_set_generic("base","current",param_00,param_01,param_02,param_03,param_04,param_05,1,param_07);
|
|
}
|
|
}
|
|
|
|
//Function Number: 8
|
|
dof_enable_script(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
|
{
|
|
dof_set_generic("script","goal",param_00,param_01,param_02,param_03,param_04,param_05,1,param_07);
|
|
level.dof["script"]["timeRemaining"] = param_06;
|
|
if(param_06 <= 0)
|
|
{
|
|
dof_set_generic("script","current",param_00,param_01,param_02,param_03,param_04,param_05,1,param_07);
|
|
return;
|
|
}
|
|
|
|
if(level.dof["script"]["current"]["weight"] <= 0)
|
|
{
|
|
dof_set_generic("script","current",param_00,param_01,param_02,param_03,param_04,param_05,0,param_07);
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
dof_disable_script(param_00)
|
|
{
|
|
level.dof["script"]["goal"]["weight"] = 0;
|
|
level.dof["script"]["timeRemaining"] = param_00;
|
|
if(param_00 <= 0)
|
|
{
|
|
level.dof["script"]["current"]["weight"] = 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
dof_enable_ads(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
|
{
|
|
dof_set_generic("ads","goal",param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07);
|
|
if(level.dof["ads"]["current"]["weight"] <= 0)
|
|
{
|
|
dof_set_generic("ads","current",param_00,param_01,param_02,param_03,param_04,param_05,0,param_07);
|
|
}
|
|
}
|
|
|
|
//Function Number: 11
|
|
dof_blend_interior_ads_element(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(param_00 > param_01)
|
|
{
|
|
var_04 = param_00 - param_01 * param_03;
|
|
if(var_04 > param_02)
|
|
{
|
|
var_04 = param_02;
|
|
}
|
|
else if(var_04 < 1)
|
|
{
|
|
var_04 = 1;
|
|
}
|
|
|
|
if(param_00 - var_04 <= param_01)
|
|
{
|
|
return param_01;
|
|
}
|
|
else
|
|
{
|
|
return param_00 - var_04;
|
|
}
|
|
}
|
|
else if(param_00 < param_01)
|
|
{
|
|
var_04 = param_01 - param_00 * param_03;
|
|
if(var_04 > param_02)
|
|
{
|
|
var_04 = param_02;
|
|
}
|
|
else if(var_04 < 1)
|
|
{
|
|
var_04 = 1;
|
|
}
|
|
|
|
if(param_00 + var_04 >= param_01)
|
|
{
|
|
return param_01;
|
|
}
|
|
else
|
|
{
|
|
return param_00 + var_04;
|
|
}
|
|
}
|
|
|
|
return param_00;
|
|
}
|
|
|
|
//Function Number: 12
|
|
dof_blend_interior_ads()
|
|
{
|
|
var_00 = level.dof["ads"]["goal"]["weight"];
|
|
if(var_00 < 1)
|
|
{
|
|
if(self adsbuttonpressed() && self playerads() > 0)
|
|
{
|
|
var_00 = min(1,var_00 + 0.7);
|
|
}
|
|
else
|
|
{
|
|
var_00 = 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_00;
|
|
level.dof["ads"]["current"]["bias"] = level.dof["ads"]["goal"]["bias"];
|
|
return;
|
|
}
|
|
|
|
if(isdefined(level.dof_blend_interior_ads_scalar))
|
|
{
|
|
var_01 = level.dof_blend_interior_ads_scalar;
|
|
}
|
|
else
|
|
{
|
|
var_01 = 0.1;
|
|
}
|
|
|
|
var_02 = 10;
|
|
var_03 = max(var_02,abs(level.dof["ads"]["current"]["nearStart"] - level.dof["ads"]["goal"]["nearStart"]) * var_01);
|
|
var_04 = max(var_02,abs(level.dof["ads"]["current"]["nearEnd"] - level.dof["ads"]["goal"]["nearEnd"]) * var_01);
|
|
var_05 = max(var_02,abs(level.dof["ads"]["current"]["farStart"] - level.dof["ads"]["goal"]["farStart"]) * var_01);
|
|
var_06 = max(var_02,abs(level.dof["ads"]["current"]["farEnd"] - level.dof["ads"]["goal"]["farEnd"]) * var_01);
|
|
var_07 = 0.1;
|
|
var_08 = 0.1;
|
|
level.dof["ads"]["current"]["nearStart"] = dof_blend_interior_ads_element(level.dof["ads"]["current"]["nearStart"],level.dof["ads"]["goal"]["nearStart"],var_03,0.33);
|
|
level.dof["ads"]["current"]["nearEnd"] = dof_blend_interior_ads_element(level.dof["ads"]["current"]["nearEnd"],level.dof["ads"]["goal"]["nearEnd"],var_04,0.33);
|
|
level.dof["ads"]["current"]["nearBlur"] = dof_blend_interior_ads_element(level.dof["ads"]["current"]["nearBlur"],level.dof["ads"]["goal"]["nearBlur"],var_07,0.33);
|
|
level.dof["ads"]["current"]["farStart"] = dof_blend_interior_ads_element(level.dof["ads"]["current"]["farStart"],level.dof["ads"]["goal"]["farStart"],var_05,0.33);
|
|
level.dof["ads"]["current"]["farEnd"] = dof_blend_interior_ads_element(level.dof["ads"]["current"]["farEnd"],level.dof["ads"]["goal"]["farEnd"],var_06,0.33);
|
|
level.dof["ads"]["current"]["farBlur"] = dof_blend_interior_ads_element(level.dof["ads"]["current"]["farBlur"],level.dof["ads"]["goal"]["farBlur"],var_07,0.33);
|
|
level.dof["ads"]["current"]["weight"] = 1;
|
|
level.dof["ads"]["current"]["bias"] = dof_blend_interior_ads_element(level.dof["ads"]["current"]["bias"],level.dof["ads"]["goal"]["bias"],var_08,0.33);
|
|
}
|
|
|
|
//Function Number: 13
|
|
dof_disable_ads()
|
|
{
|
|
level.dof["ads"]["goal"]["weight"] = 0;
|
|
level.dof["ads"]["current"]["weight"] = 0;
|
|
}
|
|
|
|
//Function Number: 14
|
|
dof_apply_to_results(param_00)
|
|
{
|
|
var_01 = level.dof[param_00]["current"]["weight"];
|
|
var_02 = 1 - var_01;
|
|
level.dof["results"]["current"]["nearStart"] = level.dof["results"]["current"]["nearStart"] * var_02 + level.dof[param_00]["current"]["nearStart"] * var_01;
|
|
level.dof["results"]["current"]["nearEnd"] = level.dof["results"]["current"]["nearEnd"] * var_02 + level.dof[param_00]["current"]["nearEnd"] * var_01;
|
|
level.dof["results"]["current"]["nearBlur"] = level.dof["results"]["current"]["nearBlur"] * var_02 + level.dof[param_00]["current"]["nearBlur"] * var_01;
|
|
level.dof["results"]["current"]["farStart"] = level.dof["results"]["current"]["farStart"] * var_02 + level.dof[param_00]["current"]["farStart"] * var_01;
|
|
level.dof["results"]["current"]["farEnd"] = level.dof["results"]["current"]["farEnd"] * var_02 + level.dof[param_00]["current"]["farEnd"] * var_01;
|
|
level.dof["results"]["current"]["farBlur"] = level.dof["results"]["current"]["farBlur"] * var_02 + level.dof[param_00]["current"]["farBlur"] * var_01;
|
|
level.dof["results"]["current"]["bias"] = level.dof["results"]["current"]["bias"] * var_02 + level.dof[param_00]["current"]["bias"] * var_01;
|
|
}
|
|
|
|
//Function Number: 15
|
|
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_00 = level.dof["results"]["current"]["nearStart"];
|
|
var_01 = level.dof["results"]["current"]["nearEnd"];
|
|
var_02 = level.dof["results"]["current"]["nearBlur"];
|
|
var_03 = level.dof["results"]["current"]["farStart"];
|
|
var_04 = level.dof["results"]["current"]["farEnd"];
|
|
var_05 = level.dof["results"]["current"]["farBlur"];
|
|
var_06 = level.dof["results"]["current"]["bias"];
|
|
var_00 = max(0,var_00);
|
|
var_01 = max(0,var_01);
|
|
var_03 = max(0,var_03);
|
|
var_04 = max(0,var_04);
|
|
var_02 = max(4,var_02);
|
|
var_02 = min(10,var_02);
|
|
var_05 = max(0,var_05);
|
|
var_05 = min(var_02,var_05);
|
|
if(var_05 > 0)
|
|
{
|
|
var_03 = max(var_01,var_03);
|
|
}
|
|
|
|
var_06 = max(0,var_06);
|
|
level.dof["results"]["current"]["nearStart"] = var_00;
|
|
level.dof["results"]["current"]["nearEnd"] = var_01;
|
|
level.dof["results"]["current"]["nearBlur"] = var_02;
|
|
level.dof["results"]["current"]["farStart"] = var_03;
|
|
level.dof["results"]["current"]["farEnd"] = var_04;
|
|
level.dof["results"]["current"]["farBlur"] = var_05;
|
|
level.dof["results"]["current"]["bias"] = var_06;
|
|
}
|
|
|
|
//Function Number: 16
|
|
dof_process_ads()
|
|
{
|
|
var_00 = self playerads();
|
|
if(var_00 <= 0)
|
|
{
|
|
dof_disable_ads();
|
|
return;
|
|
}
|
|
|
|
if(isdefined(level.custom_dof_trace))
|
|
{
|
|
[[ level.custom_dof_trace ]]();
|
|
return;
|
|
}
|
|
|
|
var_01 = getdvarfloat("ads_dof_tracedist",4096);
|
|
var_02 = getdvarfloat("ads_dof_maxEnemyDist",0);
|
|
var_03 = getdvarint("ads_dof_playerForgetEnemyTime",5000);
|
|
var_04 = getdvarfloat("ads_dof_nearStartScale",0.25);
|
|
var_05 = getdvarfloat("ads_dof_nearEndScale",0.85);
|
|
var_06 = getdvarfloat("ads_dof_farStartScale",1.15);
|
|
var_07 = getdvarfloat("ads_dof_farEndScale",3);
|
|
var_08 = getdvarfloat("ads_dof_nearBlur",4);
|
|
var_09 = getdvarfloat("ads_dof_farBlur",2.5);
|
|
var_0A = self geteye();
|
|
var_0B = self getplayerangles();
|
|
if(isdefined(self.dof_ref_ent))
|
|
{
|
|
var_0C = combineangles(self.dof_ref_ent.angles,var_0B);
|
|
}
|
|
else
|
|
{
|
|
var_0C = var_0C;
|
|
}
|
|
|
|
var_0D = vectornormalize(anglestoforward(var_0C));
|
|
var_0E = bullettrace(var_0A,var_0A + var_0D * var_01,1,self,0,0,0,0,0);
|
|
var_0F = getaiarray("axis");
|
|
var_10 = self getcurrentweapon();
|
|
if(isdefined(level.special_weapon_dof_funcs[var_10]))
|
|
{
|
|
[[ level.special_weapon_dof_funcs[var_10] ]](var_0E,var_0F,var_0A,var_0D,var_00);
|
|
return;
|
|
}
|
|
|
|
if(var_0E["fraction"] == 1)
|
|
{
|
|
var_01 = 2048;
|
|
var_11 = 256;
|
|
var_12 = var_01 * var_06 * 2;
|
|
}
|
|
else
|
|
{
|
|
var_03 = distance(var_0C,var_10["position"]);
|
|
var_11 = var_03 * var_06;
|
|
var_12 = var_02 * var_07;
|
|
}
|
|
|
|
foreach(var_14 in var_0F)
|
|
{
|
|
var_15 = var_14 isenemyaware();
|
|
var_16 = var_14 hasenemybeenseen(var_03);
|
|
if(!var_15 && !var_16)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_17 = vectornormalize(var_14.origin - var_0A);
|
|
var_18 = vectordot(var_0D,var_17);
|
|
if(var_18 < 0.923)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_19 = distance(var_0A,var_14.origin);
|
|
if(var_19 - 30 < var_11)
|
|
{
|
|
var_11 = var_19 - 30;
|
|
}
|
|
|
|
var_1A = min(var_19,var_02);
|
|
if(var_1A + 30 > var_12)
|
|
{
|
|
var_12 = var_1A + 30;
|
|
}
|
|
}
|
|
|
|
if(var_11 > var_12)
|
|
{
|
|
var_11 = var_12 - 256;
|
|
}
|
|
|
|
if(var_11 > var_01)
|
|
{
|
|
var_11 = var_01 - 30;
|
|
}
|
|
|
|
if(var_11 < 1)
|
|
{
|
|
var_11 = 1;
|
|
}
|
|
|
|
if(var_12 < var_01)
|
|
{
|
|
var_12 = var_01;
|
|
}
|
|
|
|
var_1C = var_11 * var_04;
|
|
var_1D = var_12 * var_07;
|
|
dof_enable_ads(var_1C,var_11,var_08,var_12,var_1D,var_09,var_00);
|
|
}
|
|
|
|
//Function Number: 17
|
|
dof_process_physical_ads(param_00)
|
|
{
|
|
if(isdefined(level.custom_dof_trace))
|
|
{
|
|
return [[ level.custom_dof_trace ]]();
|
|
}
|
|
|
|
var_01 = getdvarfloat("ads_dof_tracedist",4096);
|
|
var_02 = getdvarfloat("ads_dof_maxEnemyDist",0);
|
|
var_03 = getdvarint("ads_dof_playerForgetEnemyTime",5000);
|
|
var_04 = self geteye();
|
|
var_05 = self getplayerangles();
|
|
if(isdefined(self.dof_ref_ent))
|
|
{
|
|
var_06 = combineangles(self.dof_ref_ent.angles,var_05);
|
|
}
|
|
else
|
|
{
|
|
var_06 = var_06;
|
|
}
|
|
|
|
var_07 = vectornormalize(anglestoforward(var_06));
|
|
var_08 = bullettrace(var_04,var_04 + var_07 * var_01,1,self,0,1,0,0,0);
|
|
var_09 = getaiarray("axis");
|
|
var_0A = self getcurrentweapon();
|
|
if(isdefined(level.special_weapon_dof_funcs[var_0A]))
|
|
{
|
|
return [[ level.special_weapon_dof_funcs[var_0A] ]](var_08,var_09,var_04,var_07,param_00);
|
|
}
|
|
|
|
var_0B["start"] = distance(var_04,var_08["position"]);
|
|
var_0B["end"] = var_0B["start"];
|
|
foreach(var_0D in var_09)
|
|
{
|
|
var_0E = var_0D isenemyaware();
|
|
var_0F = var_0D hasenemybeenseen(var_03);
|
|
if(!var_0E && !var_0F)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_10 = vectornormalize(var_0D.origin - var_04);
|
|
var_11 = vectordot(var_07,var_10);
|
|
if(var_11 < 0.923)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_12 = distance(var_04,var_0D.origin);
|
|
if(var_12 < var_0B["start"])
|
|
{
|
|
var_0B["start"] = var_12;
|
|
}
|
|
|
|
var_13 = min(var_12,var_02);
|
|
if(var_13 > var_0B["end"])
|
|
{
|
|
var_0B["end"] = var_13;
|
|
}
|
|
}
|
|
|
|
return var_0B;
|
|
}
|
|
|
|
//Function Number: 18
|
|
javelin_dof(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
if(param_04 < 0.88)
|
|
{
|
|
dof_disable_ads();
|
|
return;
|
|
}
|
|
|
|
var_05 = 10000;
|
|
var_06 = -1;
|
|
var_05 = 2400;
|
|
var_07 = 2400;
|
|
for(var_08 = 0;var_08 < param_01.size;var_08++)
|
|
{
|
|
var_09 = vectornormalize(param_01[var_08].origin - param_02);
|
|
var_0A = vectordot(param_03,var_09);
|
|
if(var_0A < 0.923)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_0B = distance(param_02,param_01[var_08].origin);
|
|
if(var_0B < 2500)
|
|
{
|
|
var_0B = 2500;
|
|
}
|
|
|
|
if(var_0B - 30 < var_05)
|
|
{
|
|
var_05 = var_0B - 30;
|
|
}
|
|
|
|
if(var_0B + 30 > var_06)
|
|
{
|
|
var_06 = var_0B + 30;
|
|
}
|
|
}
|
|
|
|
if(var_05 > var_06)
|
|
{
|
|
var_05 = 2400;
|
|
var_06 = 3000;
|
|
}
|
|
else
|
|
{
|
|
if(var_05 < 50)
|
|
{
|
|
var_05 = 50;
|
|
}
|
|
|
|
if(var_06 > 2500)
|
|
{
|
|
var_06 = 2500;
|
|
}
|
|
else if(var_06 < 1000)
|
|
{
|
|
var_06 = 1000;
|
|
}
|
|
}
|
|
|
|
var_0C = distance(param_02,param_00["position"]);
|
|
if(var_0C < 2500)
|
|
{
|
|
var_0C = 2500;
|
|
}
|
|
|
|
if(var_05 > var_0C)
|
|
{
|
|
var_05 = var_0C - 30;
|
|
}
|
|
|
|
if(var_05 < 1)
|
|
{
|
|
var_05 = 1;
|
|
}
|
|
|
|
if(var_06 < var_0C)
|
|
{
|
|
var_06 = var_0C;
|
|
}
|
|
|
|
if(var_07 >= var_05)
|
|
{
|
|
var_07 = var_05 - 1;
|
|
}
|
|
|
|
var_0D = var_06 * 4;
|
|
var_0E = 4;
|
|
var_0F = 1.8;
|
|
dof_enable_ads(var_07,var_05,var_0E,var_06,var_0D,var_0F,param_04);
|
|
}
|
|
|
|
//Function Number: 19
|
|
dof_update()
|
|
{
|
|
for(;;)
|
|
{
|
|
wait 0.05;
|
|
if(level.level_specific_dof)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!getdvarint("scr_dof_enable"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(getdvarint("r_dof_physical_enable"))
|
|
{
|
|
var_00 = self playerads();
|
|
if(var_00 > 0)
|
|
{
|
|
var_01 = dof_process_physical_ads(var_00);
|
|
self setadsphysicaldepthoffield(var_01["start"],var_01["end"]);
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
dof_process_ads();
|
|
dof_calc_results();
|
|
var_02 = level.dof["results"]["current"]["nearStart"];
|
|
var_03 = level.dof["results"]["current"]["nearEnd"];
|
|
var_04 = level.dof["results"]["current"]["farStart"];
|
|
var_05 = level.dof["results"]["current"]["farEnd"];
|
|
var_06 = level.dof["results"]["current"]["nearBlur"];
|
|
var_07 = level.dof["results"]["current"]["farBlur"];
|
|
self setdepthoffield(var_02,var_03,var_04,var_05,var_06,var_07);
|
|
}
|
|
}
|
|
|
|
//Function Number: 20
|
|
tess_init()
|
|
{
|
|
var_00 = getdvar("r_tessellation");
|
|
if(var_00 == "")
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.tess = spawnstruct();
|
|
level.tess.cutoff_distance_current = getdvarfloat("r_tessellationCutoffDistance",960);
|
|
level.tess.cutoff_distance_goal = level.tess.cutoff_distance_current;
|
|
level.tess.cutoff_falloff_current = getdvarfloat("r_tessellationCutoffFalloff",320);
|
|
level.tess.cutoff_falloff_goal = level.tess.cutoff_falloff_current;
|
|
level.tess.time_remaining = 0;
|
|
foreach(var_02 in level.players)
|
|
{
|
|
var_02 thread tess_update();
|
|
}
|
|
}
|
|
|
|
//Function Number: 21
|
|
tess_set_goal(param_00,param_01,param_02)
|
|
{
|
|
level.tess.cutoff_distance_goal = param_00;
|
|
level.tess.cutoff_falloff_goal = param_01;
|
|
level.tess.time_remaining = param_02;
|
|
}
|
|
|
|
//Function Number: 22
|
|
tess_update()
|
|
{
|
|
for(;;)
|
|
{
|
|
var_00 = level.tess.cutoff_distance_current;
|
|
var_01 = level.tess.cutoff_falloff_current;
|
|
wait 0.05;
|
|
if(level.tess.time_remaining > 0)
|
|
{
|
|
var_02 = level.tess.time_remaining * 20;
|
|
var_03 = level.tess.cutoff_distance_goal - level.tess.cutoff_distance_current / var_02;
|
|
var_04 = level.tess.cutoff_falloff_goal - level.tess.cutoff_falloff_current / var_02;
|
|
level.tess.cutoff_distance_current = level.tess.cutoff_distance_current + var_03;
|
|
level.tess.cutoff_falloff_current = level.tess.cutoff_falloff_current + var_04;
|
|
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_00 != level.tess.cutoff_distance_current)
|
|
{
|
|
setsaveddvar("r_tessellationCutoffDistance",level.tess.cutoff_distance_current);
|
|
}
|
|
|
|
if(var_01 != level.tess.cutoff_falloff_current)
|
|
{
|
|
setsaveddvar("r_tessellationCutoffFalloff",level.tess.cutoff_falloff_current);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 23
|
|
sunflare_changes(param_00,param_01)
|
|
{
|
|
if(!isdefined(level.sunflare_settings[param_00]))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self notify("sunflare_start_adjust");
|
|
self endon("sunflare_start_adjust");
|
|
var_02 = gettime();
|
|
var_03 = param_01 * 1000;
|
|
var_04 = getdvarvector("r_sunflare_position",(0,0,0));
|
|
var_05 = gettime() - var_02;
|
|
var_06 = level.sunflare_settings[param_00].position;
|
|
level.current_sunflare_setting = param_00;
|
|
while(var_05 < var_03)
|
|
{
|
|
var_06 = level.sunflare_settings[param_00].position;
|
|
var_07 = min(float(var_05 / var_03),1);
|
|
var_08 = var_04 + var_06 - var_04 * var_07;
|
|
setdvar("r_sunflare_position",var_08);
|
|
setsunflareposition(var_08);
|
|
wait(0.05);
|
|
var_05 = gettime() - var_02;
|
|
}
|
|
|
|
setdvar("r_sunflare_position",level.sunflare_settings[param_00].position);
|
|
setsunflareposition(var_06);
|
|
}
|
|
|
|
//Function Number: 24
|
|
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;
|
|
}
|
|
}
|
|
|
|
//Function Number: 25
|
|
set_fog_progress(param_00)
|
|
{
|
|
var_01 = 1 - param_00;
|
|
var_02 = self.start_neardist * var_01 + self.end_neardist * param_00;
|
|
var_03 = self.start_fardist * var_01 + self.end_fardist * param_00;
|
|
var_04 = self.start_color * var_01 + self.end_color * param_00;
|
|
var_05 = self.start_hdrcolorintensity * var_01 + self.end_hdrcolorintensity * param_00;
|
|
var_06 = self.start_opacity;
|
|
var_07 = self.end_opacity;
|
|
var_08 = self.start_skyfogintensity;
|
|
var_09 = self.start_skyfogminangle;
|
|
var_0A = self.start_skyfogmaxangle;
|
|
var_08 = self.start_skyfogintensity * var_01 + self.end_skyfogintensity * param_00;
|
|
var_09 = self.start_skyfogminangle * var_01 + self.end_skyfogminangle * param_00;
|
|
var_0A = self.start_skyfogmaxangle * var_01 + self.end_skyfogmaxangle * param_00;
|
|
if(!isdefined(var_06))
|
|
{
|
|
var_06 = 1;
|
|
}
|
|
|
|
if(!isdefined(var_07))
|
|
{
|
|
var_07 = 1;
|
|
}
|
|
|
|
var_0B = var_06 * var_01 + var_07 * param_00;
|
|
if(self.sunfog_enabled)
|
|
{
|
|
var_0C = self.start_suncolor * var_01 + self.end_suncolor * param_00;
|
|
var_0D = self.start_hdrsuncolorintensity * var_01 + self.end_hdrsuncolorintensity * param_00;
|
|
var_0E = self.start_sundir * var_01 + self.end_sundir * param_00;
|
|
var_0F = self.start_sunbeginfadeangle * var_01 + self.end_sunbeginfadeangle * param_00;
|
|
var_10 = self.start_sunendfadeangle * var_01 + self.end_sunendfadeangle * param_00;
|
|
var_11 = self.start_sunfogscale * var_01 + self.end_sunfogscale * param_00;
|
|
setexpfog(var_02,var_03,var_04[0],var_04[1],var_04[2],var_05,var_0B,0.4,var_0C[0],var_0C[1],var_0C[2],var_0D,var_0E,var_0F,var_10,var_11,var_08,var_09,var_0A);
|
|
return;
|
|
}
|
|
|
|
setexpfog(var_02,var_03,var_04[0],var_04[1],var_04[2],var_05,var_0B,0.4,var_08,var_09,var_0A);
|
|
}
|
|
|
|
//Function Number: 26
|
|
ssao_set_target_over_time_internal(param_00,param_01)
|
|
{
|
|
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_02 = getdvarfloat("r_ssaoScriptScale",1);
|
|
var_03 = param_01;
|
|
while(var_03 > 0)
|
|
{
|
|
var_04 = min(1,0.05 / var_03);
|
|
var_05 = var_02;
|
|
var_02 = var_02 + var_04 * param_00 - var_02;
|
|
if(var_05 != var_02)
|
|
{
|
|
setsaveddvar("r_ssaoScriptScale",var_02);
|
|
}
|
|
|
|
wait 0.05;
|
|
var_03 = var_03 - 0.05;
|
|
}
|
|
|
|
setsaveddvar("r_ssaoScriptScale",param_00);
|
|
}
|
|
|
|
//Function Number: 27
|
|
disable_ssao_over_time(param_00)
|
|
{
|
|
level thread ssao_set_target_over_time_internal(0,param_00);
|
|
}
|
|
|
|
//Function Number: 28
|
|
enable_ssao_over_time(param_00)
|
|
{
|
|
level thread ssao_set_target_over_time_internal(1,param_00);
|
|
} |