/******************************************************************* * Decompiled By: Bog * Decompiled File: maps\_flare.gsc * Game: Call of Duty: Modern Warfare 3 * Platform: PC * Function Count: 13 * Decompile Time: 157 ms * Timestamp: 10/27/2023 2:20:05 AM *******************************************************************/ //Function Number: 1 main(param_00,param_01) { if(!isdefined(level._effect)) { level._effect = []; } level._effect["flare_runner_intro"] = loadfx("misc/flare_start"); level._effect["flare_runner"] = loadfx("misc/flare"); level._effect["flare_runner_fizzout"] = loadfx("misc/flare_end"); maps\_vehicle::build_template("flare",param_00,param_01,"script_vehicle"); maps\_vehicle::build_localinit(::init_local); maps\_vehicle::build_life(9999); } //Function Number: 2 init_local() { } //Function Number: 3 merge_suncolor(param_00,param_01,param_02,param_03) { wait param_00; param_01 = param_01 * 20; var_04 = []; for(var_05 = 0;var_05 < param_01;var_05++) { var_06 = var_05 / param_01; level.thedif = var_06; var_07 = []; for(var_08 = 0;var_08 < 3;var_08++) { var_07[var_08] = param_03[var_08] * var_06 + param_02[var_08] * 1 - var_06; } level.sun_color = (var_07[0],var_07[1],var_07[2]); wait 0.05; } } //Function Number: 4 merge_sunsingledvar(param_00,param_01,param_02,param_03,param_04) { setsaveddvar(param_00,param_03); wait param_01; param_02 = param_02 * 20; var_05 = []; for(var_06 = 0;var_06 < param_02;var_06++) { var_07 = var_06 / param_02; level.thedif = var_07; var_08 = param_04 * var_07 + param_03 * 1 - var_07; setsaveddvar(param_00,var_08); wait 0.05; } setsaveddvar(param_00,param_04); } //Function Number: 5 merge_sunbrightness(param_00,param_01,param_02,param_03) { wait param_00; param_01 = param_01 * 20; var_04 = []; for(var_05 = 0;var_05 < param_01;var_05++) { var_06 = var_05 / param_01; level.thedif = var_06; var_07 = param_03 * var_06 + param_02 * 1 - var_06; level.sun_brightness = var_07; wait 0.05; } level.sun_brightness = param_03; } //Function Number: 6 combine_sunlight_and_brightness() { level endon("stop_combining_sunlight_and_brightness"); wait 0.05; for(;;) { var_00 = level.sun_brightness; if(var_00 > 1) { var_00 = var_00 + randomfloat(0.2); } var_01 = level.sun_color * var_00; setsunlight(var_01[0],var_01[1],var_01[2]); wait 0.05; } } //Function Number: 7 flare_path() { thread maps\_vehicle::gopath(self); common_scripts\utility::flag_wait("flare_stop_setting_sundir"); self delete(); } //Function Number: 8 flare_initial_fx() { var_00 = spawn("script_model",(0,0,0)); var_00 setmodel("tag_origin"); var_00 linkto(self,"tag_origin",(0,0,0),(0,0,0)); playfxontag(level._effect["flare_runner_intro"],var_00,"tag_origin"); self waittillmatch("flare_intro_node","noteworthy"); var_00 delete(); } //Function Number: 9 flare_explodes() { common_scripts\utility::flag_set("flare_start_setting_sundir"); level.sun_brightness = 1; level.red_suncolor = (0.8,0.4,0.4); level.original_suncolor = getmapsunlight(); level.sun_color = level.original_suncolor; thread merge_sunsingledvar("sm_sunSampleSizeNear",0,0.25,0.25,1); thread combine_sunlight_and_brightness(); thread merge_suncolor(0,0.25,level.original_suncolor,level.red_suncolor); thread merge_sunbrightness(0,0.25,1,3); var_00 = spawn("script_model",(0,0,0)); var_00 setmodel("tag_origin"); var_00 linkto(self,"tag_origin",(0,0,0),(0,0,0)); playfxontag(level._effect["flare_runner"],var_00,"tag_origin"); self waittillmatch("flare_fade_node","noteworthy"); var_00 delete(); } //Function Number: 10 flare_burns_out() { var_00 = spawn("script_model",(0,0,0)); var_00 setmodel("tag_origin"); var_00 linkto(self,"tag_origin",(0,0,0),(0,0,0)); playfxontag(level._effect["flare_runner_fizzout"],var_00,"tag_origin"); thread merge_sunsingledvar("sm_sunSampleSizeNear",0,1,1,0.25); thread merge_sunbrightness(0,1,3,0); thread merge_suncolor(0,1,level.red_suncolor,level.original_suncolor); thread merge_sunbrightness(1,1,0,1); var_00 delete(); wait 1; common_scripts\utility::flag_set("flare_stop_setting_sundir"); resetsundirection(); wait 1; level notify("stop_combining_sunlight_and_brightness"); waittillframeend; resetsunlight(); common_scripts\utility::flag_set("flare_complete"); } //Function Number: 11 flare_fx() { flare_initial_fx(); flare_explodes(); flare_burns_out(); } //Function Number: 12 flag_flare(param_00) { if(!isdefined(level.flag[param_00])) { common_scripts\utility::flag_init(param_00); } } //Function Number: 13 flare_from_targetname(param_00) { var_01 = maps\_vehicle::spawn_vehicle_from_targetname(param_00); flag_flare("flare_in_use"); flag_flare("flare_complete"); flag_flare("flare_stop_setting_sundir"); flag_flare("flare_start_setting_sundir"); common_scripts\utility::flag_waitopen("flare_in_use"); common_scripts\utility::flag_set("flare_in_use"); resetsunlight(); resetsundirection(); var_01 thread flare_path(); var_01 thread flare_fx(); var_02 = getmapsundirection(); var_03 = var_02; var_04 = var_03 * -100; common_scripts\utility::flag_wait("flare_start_setting_sundir"); var_05 = getent(var_01.script_linkto,"script_linkname").origin; var_03 = vectortoangles(var_01.origin - var_05); var_06 = anglestoforward(var_03); for(;;) { wait 0.05; if(common_scripts\utility::flag("flare_stop_setting_sundir")) { break; } var_03 = vectortoangles(var_01.origin - var_05); var_07 = anglestoforward(var_03); lerpsundirection(var_06,var_07,0.05); var_06 = var_07; } common_scripts\utility::flag_wait("flare_complete"); waittillframeend; common_scripts\utility::flag_clear("flare_complete"); common_scripts\utility::flag_clear("flare_stop_setting_sundir"); common_scripts\utility::flag_clear("flare_start_setting_sundir"); resetsunlight(); resetsundirection(); common_scripts\utility::flag_clear("flare_in_use"); }