IL-GSC/MW3/PC/MP/common_scripts/_createfx.gsc
2023-10-27 03:47:01 -04:00

1939 lines
35 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: common_scripts\_createfx.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 83
* Decompile Time: 1398 ms
* Timestamp: 10/27/2023 2:16:00 AM
*******************************************************************/
//Function Number: 1
createeffect(param_00,param_01)
{
var_02 = spawnstruct();
if(!isdefined(level.createfxent))
{
level.createfxent = [];
}
level.createfxent[level.createfxent.size] = var_02;
var_02.v = [];
var_02.v["type"] = param_00;
var_02.v["fxid"] = param_01;
var_02.v["angles"] = (0,0,0);
var_02.v["origin"] = (0,0,0);
var_02.var_845 = 1;
if(isdefined(param_01) && isdefined(level.createfxbyfxid))
{
var_03 = level.createfxbyfxid[param_01];
if(!isdefined(var_03))
{
var_03 = [];
}
level.createfxbyfxid[var_02] = var_7B;
}
return var_03;
}
//Function Number: 2
getloopeffectdelaydefault()
{
return 0.5;
}
//Function Number: 3
getoneshoteffectdelaydefault()
{
return -15;
}
//Function Number: 4
getexploderdelaydefault()
{
return 0;
}
//Function Number: 5
getintervalsounddelaymindefault()
{
return 0.75;
}
//Function Number: 6
getintervalsounddelaymaxdefault()
{
return 2;
}
//Function Number: 7
add_effect(param_00,param_01)
{
if(!isdefined(level._effect))
{
level._effect = [];
}
level._effect[param_00] = loadfx(param_01);
}
//Function Number: 8
createloopsound()
{
var_00 = spawnstruct();
if(!isdefined(level.createfxent))
{
level.createfxent = [];
}
level.createfxent[level.createfxent.size] = var_00;
var_00.v = [];
var_00.v["type"] = "soundfx";
var_00.v["fxid"] = "No FX";
var_00.v["soundalias"] = "nil";
var_00.v["angles"] = (0,0,0);
var_00.v["origin"] = (0,0,0);
var_00.v["server_culled"] = 1;
if(getdvar("serverCulledSounds") != "1")
{
var_00.v["server_culled"] = 0;
}
var_00.var_845 = 1;
return var_00;
}
//Function Number: 9
createintervalsound()
{
var_00 = createloopsound();
var_00.v["type"] = "soundfx_interval";
var_00.v["delay_min"] = getintervalsounddelaymindefault();
var_00.v["delay_max"] = getintervalsounddelaymaxdefault();
return var_00;
}
//Function Number: 10
createnewexploder()
{
var_00 = spawnstruct();
if(!isdefined(level.createfxent))
{
level.createfxent = [];
}
level.createfxent[level.createfxent.size] = var_00;
var_00.v = [];
var_00.v["type"] = "exploder";
var_00.v["fxid"] = "No FX";
var_00.v["soundalias"] = "nil";
var_00.v["loopsound"] = "nil";
var_00.v["angles"] = (0,0,0);
var_00.v["origin"] = (0,0,0);
var_00.v["exploder"] = 1;
var_00.v["flag"] = "nil";
var_00.v["exploder_type"] = "normal";
var_00.var_845 = 1;
return var_00;
}
//Function Number: 11
createexploderex(param_00,param_01)
{
var_02 = common_scripts\utility::createexploder(param_00);
var_02.v["exploder"] = param_01;
return var_02;
}
//Function Number: 12
set_origin_and_angles(param_00,param_01)
{
self.v["origin"] = param_00;
self.v["angles"] = param_01;
}
//Function Number: 13
set_forward_and_up_vectors()
{
self.v["up"] = anglestoup(self.v["angles"]);
self.v["forward"] = anglestoforward(self.v["angles"]);
}
//Function Number: 14
createfx_common()
{
precacheshader("black");
if(level.mp_createfx)
{
hack_start("painter_mp");
}
else
{
hack_start("painter");
}
common_scripts\utility::flag_init("createfx_saving");
if(!isdefined(level.createfx))
{
level.createfx = [];
}
level.var_852 = 0;
var_00 = getentarray();
foreach(var_02 in var_00)
{
if(isspawner(var_02))
{
var_02 delete();
}
}
var_04 = getentarray("trigger_multiple","classname");
for(var_05 = 0;var_05 < var_04.size;var_05++)
{
var_04[var_05] delete();
}
var_04 = getentarray("trigger_radius","classname");
for(var_05 = 0;var_05 < var_04.size;var_05++)
{
var_04[var_05] delete();
}
level notify("createfx_common_done");
}
//Function Number: 15
createfxlogic()
{
waittillframeend;
common_scripts\_createfxmenu::menu_init();
if(!isdefined(level._effect))
{
level._effect = [];
}
if(getdvar("createfx_map") == "")
{
}
else if(getdvar("createfx_map") == common_scripts\utility::get_template_level())
{
[[ level.func_position_player ]]();
}
level.var_833 = [];
level.var_83E = 30;
var_00 = [];
var_01 = [];
var_00[0] = 0;
var_01[1] = 1;
var_01[2] = -2;
var_01[3] = 1;
var_01[4] = -2;
var_02 = newhudelem();
var_02.location = 0;
var_02.alignx = "center";
var_02.aligny = "middle";
var_02.foreground = 1;
var_02.fontscale = 2;
var_02.sort = 20;
var_02.alpha = 1;
var_02.x = 320;
var_02.y = 233;
var_02 settext(".");
level.var_857 = newhudelem();
level.var_857.alpha = 0;
level.var_857 settext("marker");
for(var_03 = 0;var_03 < level.var_83E;var_03++ = -1)
{
var_04 = [];
for(var_05 = 0;var_05 < 1;var_05++ = var_7B[4])
{
var_06 = newhudelem();
var_06.alignx = "left";
var_06.location = 0;
var_06.foreground = 1;
var_06.fontscale = 1.4;
var_06.sort = 20 - var_05;
var_06.alpha = 1;
var_06.x = 0 + var_01[var_05];
var_06.y = 60 + var_7B[var_05] + var_03 * 15;
if(var_05 > 0)
{
var_06.color = (0,0,0);
}
var_04[var_04.size] = var_06;
}
level.var_833[var_03] = var_04;
}
var_04 = [];
for(var_05 = 0;var_05 < 5;var_05++ = var_7B[3])
{
var_06 = newhudelem();
var_06.alignx = "center";
var_06.location = 0;
var_06.foreground = 1;
var_06.fontscale = 1.4;
var_06.sort = 20 - var_05;
var_06.alpha = 1;
var_06.x = 320 + var_01[var_05];
var_06.y = 80 + var_7B[var_05];
if(var_05 > 0)
{
var_06.color = (0,0,0);
}
var_04[var_04.size] = var_06;
}
level.createfx_centerprint = var_04;
level.var_858 = 0;
level.var_859 = 0;
level.var_85A = 0;
level.var_85B = 0;
level.var_85C = 0;
level.var_85D = 0;
level.var_85E = [];
level.var_81F = [];
level.var_85F = [];
level.var_85F["escape"] = 1;
level.var_85F["BUTTON_LSHLDR"] = 1;
level.var_85F["BUTTON_RSHLDR"] = 1;
level.var_85F["mouse1"] = 1;
level.var_85F["ctrl"] = 1;
level.var_860 = 1;
level.var_818 = undefined;
level.var_861 = [];
var_07 = 0;
var_08 = (0,0,0);
if(!level.mp_createfx)
{
var_08 = level.player.origin;
}
var_09 = [];
var_1C["loopfx"] = "selected";
var_1C["loopfx"] = "highlighted";
var_1C["loopfx"] = "default";
var_1C["oneshotfx"] = "selected";
var_1C["oneshotfx"] = "highlighted";
var_1C["oneshotfx"] = "default";
var_1C["exploder"] = "selected";
var_1C["exploder"] = "highlighted";
var_1C["exploder"] = "default";
var_1C["rainfx"] = "selected";
var_1C["rainfx"] = "highlighted";
var_1C["rainfx"] = "default";
var_1C["soundfx"] = "selected";
var_1C["soundfx"] = "highlighted";
var_1C["soundfx"] = "default";
var_1C["soundfx_interval"] = "selected";
var_1C["soundfx_interval"] = "highlighted";
var_1C["soundfx_interval"] = "default";
var_0A = undefined;
level.var_863 = 0;
common_scripts\_createfxmenu::setmenu("none");
level.var_864 = 0;
var_0B = newhudelem();
var_0B.x = -120;
var_0B.y = 200;
var_0B.foreground = 0;
var_0B setshader("black",250,160);
var_0B.alpha = 0;
level.var_832 = 0;
var_04 = 0;
while(var_04 < level.createfxent.size)
{
var_0C = level.createfxent[var_04];
var_0C post_entity_creation_function();
var_04++ = (0.2,0.9,0.2);
}
thread draw_distance();
var_0D = undefined;
thread createfx_autosave();
for(;;)
{
var_0E = 0;
var_0F = anglestoright(level.player getplayerangles());
var_10 = anglestoforward(level.player getplayerangles());
var_11 = anglestoup(level.player getplayerangles());
var_12 = 0.85;
var_13 = var_10 * 750;
level.var_865 = bullettrace(level.player geteye(),level.player geteye() + var_13,0,undefined);
var_14 = undefined;
level.var_866 = [];
level.var_867 = [];
process_button_held_and_clicked();
var_15 = button_is_held("ctrl","BUTTON_LSHLDR");
var_16 = button_is_clicked("mouse1","BUTTON_A");
var_17 = button_is_held("mouse1","BUTTON_A");
common_scripts\_createfxmenu::create_fx_menu();
if(button_is_clicked("shift","BUTTON_X"))
{
var_08 = !var_08;
}
if(button_is_clicked("F5"))
{
}
if(getdvarint("scr_createfx_dump"))
{
generate_fx_log();
}
if(button_is_clicked("F2"))
{
toggle_createfx_drawing();
}
if(button_is_clicked("ins"))
{
insert_effect();
}
if(button_is_clicked("del"))
{
delete_pressed();
}
if(button_is_clicked("end","l"))
{
drop_selection_to_ground();
var_0E = 1;
}
if(button_is_clicked("escape"))
{
reset_fx_hud_colors();
}
if(button_is_clicked("space"))
{
turn_off_exploders();
}
if(button_is_clicked("g"))
{
select_all_exploders_of_currently_selected("exploder");
select_all_exploders_of_currently_selected("flag");
}
if(button_is_clicked("tab","BUTTON_RSHLDR"))
{
move_selection_to_cursor();
var_0E = 1;
}
if(button_is_held("h","F1"))
{
show_help();
wait 0.05;
continue;
}
if(button_is_clicked("BUTTON_LSTICK"))
{
copy_ents();
}
if(button_is_clicked("BUTTON_RSTICK"))
{
paste_ents();
}
if(var_15)
{
if(button_is_clicked("c"))
{
copy_ents();
}
if(button_is_clicked("v"))
{
paste_ents();
}
}
if(isdefined(level.var_837))
{
common_scripts\_createfxmenu::menu_fx_option_set();
}
var_04 = 0;
while(var_04 < level.createfxent.size)
{
var_0C = level.createfxent[var_04];
var_18 = vectornormalize(var_0C.v["origin"] - level.player.origin + (0,0,55));
var_19 = vectordot(var_10,var_18);
if(var_19 < var_12)
{
continue;
}
var_12 = var_19;
var_14 = var_0C;
var_04++ = (0.5,1,0.75);
}
level.var_868 = var_14;
if(isdefined(var_14))
{
if(isdefined(var_0A))
{
if(var_0A != var_14)
{
if(!ent_is_selected(var_0A))
{
var_0A thread entity_highlight_disable();
}
if(!ent_is_selected(var_14))
{
var_14 thread entity_highlight_enable();
}
}
}
else if(!ent_is_selected(var_14))
{
var_14 thread entity_highlight_enable();
}
}
manipulate_createfx_ents(var_14,var_16,var_17,var_15,var_1C,var_0F);
if(var_08 && level.var_81F.size > 0)
{
thread [[ level.func_process_fx_rotater ]]();
if(button_is_clicked("enter","p"))
{
reset_axis_of_selected_ents();
}
if(button_is_clicked("v"))
{
copy_angles_of_selected_ents();
}
var_04 = 0;
while(var_04 < level.var_81F.size)
{
level.var_81F[var_04] draw_axis();
var_04++ = (1,1,0.2);
}
if(level.var_85B != 0 || level.var_85D != 0 || level.var_85C != 0)
{
var_0E = 1;
}
wait 0.05;
}
else
{
var_1A = get_selected_move_vector();
var_04 = 0;
while(var_04 < level.var_81F.size)
{
var_0C = level.var_81F[var_04];
if(isdefined(var_0C.model))
{
continue;
}
var_0C.v["origin"] = var_0C.v["origin"] + var_1A;
var_04++ = (0.2,0.9,0.2);
}
if(distance((0,0,0),var_1A) > 0)
{
var_0E = 1;
}
wait 0.05;
}
if(var_0E)
{
update_selected_entities();
}
if(!level.mp_createfx)
{
var_09 = [[ level.func_position_player_get ]](var_09);
}
var_0A = var_14;
if(last_selected_entity_has_changed(var_0D))
{
level.var_822 = 0;
reset_fx_hud_colors();
common_scripts\_createfxmenu::setmenu("none");
}
if(level.var_81F.size)
{
var_0D = level.var_81F[level.var_81F.size - 1];
continue;
}
var_0D = undefined;
}
}
//Function Number: 16
copy_angles_of_selected_ents()
{
level notify("new_ent_selection");
for(var_00 = 0;var_00 < level.var_81F.size;var_00++)
{
var_01 = level.var_81F[var_00];
var_01.v["angles"] = level.var_81F[level.var_81F.size - 1].v["angles"];
var_01 set_forward_and_up_vectors();
}
update_selected_entities();
}
//Function Number: 17
reset_axis_of_selected_ents()
{
level notify("new_ent_selection");
for(var_00 = 0;var_00 < level.var_81F.size;var_00++)
{
var_01 = level.var_81F[var_00];
var_01.v["angles"] = (0,0,0);
var_01 set_forward_and_up_vectors();
}
update_selected_entities();
}
//Function Number: 18
last_selected_entity_has_changed(param_00)
{
if(isdefined(param_00))
{
if(!common_scripts\_createfxmenu::entities_are_selected())
{
return 1;
}
}
else
{
return common_scripts\_createfxmenu::entities_are_selected();
}
return param_00 != level.var_81F[level.var_81F.size - 1];
}
//Function Number: 19
createfx_showorigin(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B,param_0C,param_0D,param_0E,param_0F,param_10,param_11,param_12)
{
}
//Function Number: 20
drop_selection_to_ground()
{
for(var_00 = 0;var_00 < level.var_81F.size;var_00++)
{
var_01 = level.var_81F[var_00];
var_02 = bullettrace(var_01.v["origin"],var_01.v["origin"] + (0,0,-2048),0,undefined);
var_01.v["origin"] = var_02["position"];
}
}
//Function Number: 21
turn_off_exploders()
{
level notify("createfx_exploder_reset");
var_00 = [];
for(var_01 = 0;var_01 < level.var_81F.size;var_01++)
{
var_02 = level.var_81F[var_01];
if(isdefined(var_02.v["exploder"]))
{
var_00[var_02.v["exploder"]] = 1;
}
}
var_03 = getarraykeys(var_00);
for(var_01 = 0;var_01 < var_03.size;var_01++)
{
common_scripts\utility::exploder(var_03[var_01]);
}
}
//Function Number: 22
draw_distance()
{
var_00 = 0;
if(getdvarint("createfx_drawdist") == 0)
{
}
for(;;)
{
var_01 = getdvarint("createfx_drawdist");
for(var_02 = 0;var_02 < level.createfxent.size;var_02++)
{
var_03 = level.createfxent[var_02];
var_03.var_845 = distance(level.player.origin,var_03.v["origin"]) <= var_01;
var_00++;
if(var_00 > 100)
{
var_00 = 0;
wait 0.05;
}
}
if(level.createfxent.size == 0)
{
wait 0.05;
}
}
}
//Function Number: 23
createfx_autosave()
{
for(;;)
{
wait 300;
common_scripts\utility::flag_waitopen("createfx_saving");
generate_fx_log(1);
}
}
//Function Number: 24
rotate_over_time(param_00,param_01)
{
level endon("new_ent_selection");
var_02 = 0.1;
for(var_03 = 0;var_03 < var_02 * 20;var_03++)
{
if(level.var_85B != 0)
{
param_00 addpitch(level.var_85B);
}
else if(level.var_85D != 0)
{
param_00 addyaw(level.var_85D);
}
else
{
param_00 addroll(level.var_85C);
}
wait 0.05;
param_00 draw_axis();
for(var_04 = 0;var_04 < level.var_81F.size;var_04++)
{
var_05 = level.var_81F[var_04];
if(isdefined(var_05.model))
{
continue;
}
var_05.v["origin"] = param_01[var_04].origin;
var_05.v["angles"] = param_01[var_04].angles;
}
}
}
//Function Number: 25
delete_pressed()
{
if(level.var_832)
{
remove_selected_option();
return;
}
delete_selection();
}
//Function Number: 26
remove_selected_option()
{
if(!isdefined(level.var_837))
{
return;
}
var_00 = level.var_82A[level.var_837]["name"];
for(var_01 = 0;var_01 < level.createfxent.size;var_01++)
{
var_02 = level.createfxent[var_01];
if(!ent_is_selected(var_02))
{
continue;
}
var_02 remove_option(var_00);
}
update_selected_entities();
reset_fx_hud_colors();
}
//Function Number: 27
remove_option(param_00)
{
self.v[param_00] = undefined;
}
//Function Number: 28
delete_selection()
{
var_00 = [];
for(var_01 = 0;var_01 < level.createfxent.size;var_01++)
{
var_02 = level.createfxent[var_01];
if(ent_is_selected(var_02))
{
if(isdefined(var_02.looper))
{
var_02.looper delete();
}
var_02 notify("stop_loop");
continue;
}
var_00[var_00.size] = var_02;
}
level.createfxent = var_00;
level.var_85E = [];
level.var_81F = [];
clear_fx_hudelements();
}
//Function Number: 29
move_selection_to_cursor()
{
var_00 = level.var_865["position"];
if(level.var_81F.size <= 0)
{
return;
}
var_01 = get_center_of_array(level.var_81F);
var_02 = var_01 - var_00;
for(var_03 = 0;var_03 < level.var_81F.size;var_03++)
{
var_04 = level.var_81F[var_03];
if(isdefined(var_04.model))
{
continue;
}
var_04.v["origin"] = var_04.v["origin"] - var_02;
}
}
//Function Number: 30
insert_effect()
{
common_scripts\_createfxmenu::setmenu("creation");
level.var_822 = 0;
clear_fx_hudelements();
set_fx_hudelement("Pick effect type to create:");
set_fx_hudelement("1. One Shot fx");
set_fx_hudelement("2. Looping fx");
set_fx_hudelement("3. Looping sound");
set_fx_hudelement("4. Exploder");
set_fx_hudelement("5. One Shot Sound");
set_fx_hudelement("(c) Cancel");
set_fx_hudelement("(x) Exit");
}
//Function Number: 31
show_help()
{
clear_fx_hudelements();
set_fx_hudelement("Help:");
set_fx_hudelement("Insert Insert entity");
set_fx_hudelement("L Drop selected entities to the ground");
set_fx_hudelement("A Add option to the selected entities");
set_fx_hudelement("P Reset the rotation of the selected entities");
set_fx_hudelement("V Copy the angles from the most recently selected fx onto all selected fx.");
set_fx_hudelement("Delete Kill the selected entities");
set_fx_hudelement("ESCAPE Cancel out of option-modify-mode, must have console open");
set_fx_hudelement("Ctrl-C Copy");
set_fx_hudelement("Ctrl-V Paste");
set_fx_hudelement("F2 Toggle createfx dot and text drawing");
set_fx_hudelement("F5 SAVES your work");
set_fx_hudelement("Dpad Move selected entitise on X/Y or rotate pitch/yaw");
set_fx_hudelement("A button Toggle the selection of the current entity");
set_fx_hudelement("X button Toggle entity rotation mode");
set_fx_hudelement("Y button Move selected entites up or rotate roll");
set_fx_hudelement("B button Move selected entites down or rotate roll");
set_fx_hudelement("R Shoulder Move selected entities to the cursor");
set_fx_hudelement("L Shoulder Hold to select multiple entites");
set_fx_hudelement("L JoyClick Copy");
set_fx_hudelement("R JoyClick Paste");
set_fx_hudelement("N UFO");
set_fx_hudelement("T Toggle Timescale FAST");
set_fx_hudelement("Y Toggle Timescale SLOW");
set_fx_hudelement("[ Toggle FX Visibility");
set_fx_hudelement("] Toggle ShowTris");
set_fx_hudelement("F11 Toggle FX Profile");
}
//Function Number: 32
select_last_entity()
{
select_entity(level.createfxent.size - 1,level.createfxent[level.createfxent.size - 1]);
}
//Function Number: 33
select_all_exploders_of_currently_selected(param_00)
{
var_01 = [];
foreach(var_03 in level.var_81F)
{
if(!isdefined(var_03.v[param_00]))
{
continue;
}
var_04 = var_03.v[param_00];
var_01[var_04] = 1;
}
foreach(var_04, var_07 in var_01)
{
foreach(var_09, var_03 in level.createfxent)
{
if(index_is_selected(var_09))
{
continue;
}
if(!isdefined(var_03.v[param_00]))
{
continue;
}
if(var_03.v[param_00] != var_04)
{
continue;
}
select_entity(var_09,var_03);
}
}
update_selected_entities();
}
//Function Number: 34
copy_ents()
{
if(level.var_81F.size <= 0)
{
return;
}
var_00 = [];
for(var_01 = 0;var_01 < level.var_81F.size;var_01++)
{
var_02 = level.var_81F[var_01];
var_03 = spawnstruct();
var_03.v = var_02.v;
var_03 post_entity_creation_function();
var_00[var_00.size] = var_03;
}
level.var_87D = var_00;
}
//Function Number: 35
post_entity_creation_function()
{
self.var_87E = 0;
self.var_845 = 1;
}
//Function Number: 36
paste_ents()
{
if(!isdefined(level.var_87D))
{
return;
}
clear_entity_selection();
for(var_00 = 0;var_00 < level.var_87D.size;var_00++)
{
add_and_select_entity(level.var_87D[var_00]);
}
move_selection_to_cursor();
update_selected_entities();
level.var_87D = [];
copy_ents();
}
//Function Number: 37
add_and_select_entity(param_00)
{
level.createfxent[level.createfxent.size] = param_00;
select_last_entity();
}
//Function Number: 38
get_center_of_array(param_00)
{
var_01 = (0,0,0);
for(var_02 = 0;var_02 < param_00.size;var_02++)
{
var_01 = (var_01[0] + param_00[var_02].v["origin"][0],var_01[1] + param_00[var_02].v["origin"][1],var_01[2] + param_00[var_02].v["origin"][2]);
}
return (var_01[0] / param_00.size,var_01[1] / param_00.size,var_01[2] / param_00.size);
}
//Function Number: 39
ent_draw_axis()
{
self endon("death");
for(;;)
{
draw_axis();
wait 0.05;
}
}
//Function Number: 40
rotation_is_occuring()
{
if(level.var_85C != 0)
{
return 1;
}
if(level.var_85B != 0)
{
return 1;
}
return level.var_85D != 0;
}
//Function Number: 41
print_fx_options(param_00,param_01,param_02,param_03)
{
for(var_04 = 0;var_04 < level.var_82A.size;var_04++)
{
var_05 = level.var_82A[var_04];
var_06 = var_05["name"];
if(!isdefined(param_00.v[var_06]))
{
continue;
}
if(!common_scripts\_createfxmenu::mask(var_05["mask"],param_00.v["type"]))
{
continue;
}
if(!level.mp_createfx)
{
if(common_scripts\_createfxmenu::mask("fx",param_00.v["type"]) && var_06 == "fxid")
{
continue;
}
if(param_00.v["type"] == "exploder" && var_06 == "exploder")
{
continue;
}
var_07 = param_00.v["type"] + "/" + var_06;
if(isdefined(level.var_885[var_07]) && level.var_885[var_07] == param_00.v[var_06])
{
continue;
}
}
if(var_05["type"] == "string")
{
var_08 = param_00.v[var_06] + "";
if(var_08 == "nil")
{
continue;
}
cfxprintln(param_02,param_01 + "ent.v[ \" + var_06 + "\" ] = \" + param_00.v[var_06] + "\";");
continue;
}
cfxprintln(param_02,param_01 + "ent.v[ \" + var_06 + "\" ] = " + param_00.v[var_06] + ";");
}
}
//Function Number: 42
entity_highlight_disable()
{
self notify("highlight change");
self endon("highlight change");
for(;;)
{
self.var_87E = self.var_87E * 0.85;
self.var_87E = self.var_87E - 0.05;
if(self.var_87E < 0)
{
break;
}
wait 0.05;
}
self.var_87E = 0;
}
//Function Number: 43
entity_highlight_enable()
{
self notify("highlight change");
self endon("highlight change");
for(;;)
{
self.var_87E = self.var_87E + 0.05;
self.var_87E = self.var_87E * 1.25;
if(self.var_87E > 1)
{
break;
}
wait 0.05;
}
self.var_87E = 1;
}
//Function Number: 44
toggle_createfx_drawing()
{
level.var_860 = !level.var_860;
}
//Function Number: 45
manipulate_createfx_ents(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(!level.var_860)
{
return;
}
for(var_06 = 0;var_06 < level.createfxent.size;var_06++)
{
var_07 = level.createfxent[var_06];
if(!var_07.var_845)
{
continue;
}
var_08 = getdvarfloat("createfx_scaleid");
if(isdefined(param_00) && var_07 == param_00)
{
if(!common_scripts\_createfxmenu::entities_are_selected())
{
common_scripts\_createfxmenu::display_fx_info(var_07);
}
if(param_01)
{
var_09 = index_is_selected(var_06);
level.var_864 = !var_09;
if(!param_03)
{
var_0A = level.var_81F.size;
clear_entity_selection();
if(var_09 && var_0A == 1)
{
select_entity(var_06,var_07);
}
}
toggle_entity_selection(var_06,var_07);
}
else if(param_02)
{
if(param_03)
{
if(level.var_864)
{
select_entity(var_06,var_07);
}
if(!level.var_864)
{
deselect_entity(var_06,var_07);
}
}
}
var_0B = "highlighted";
if(index_is_selected(var_06))
{
var_0B = "selected";
}
if(var_07.var_87E > 0)
{
var_0C = param_05 * var_07.v["fxid"].size * -2.93 * var_08;
}
continue;
}
var_0B = "default";
if(index_is_selected(var_06))
{
var_0B = "selected";
}
if(var_07.var_87E > 0)
{
var_0C = param_05 * var_07.v["fxid"].size * -2.93;
}
}
}
//Function Number: 46
reset_fx_hud_colors()
{
level.var_832 = 0;
level.var_837 = undefined;
show_hud_elements();
}
//Function Number: 47
show_hud_elements()
{
for(var_00 = 0;var_00 < level.var_83E;var_00++)
{
level.var_833[var_00][0].color = (1,1,1);
}
}
//Function Number: 48
button_is_held(param_00,param_01)
{
if(isdefined(param_01))
{
if(isdefined(level.var_861[param_01]))
{
return 1;
}
}
return isdefined(level.var_861[param_00]);
}
//Function Number: 49
button_is_clicked(param_00,param_01)
{
if(isdefined(param_01))
{
if(isdefined(level.var_866[param_01]))
{
return 1;
}
}
return isdefined(level.var_866[param_00]);
}
//Function Number: 50
toggle_entity_selection(param_00,param_01)
{
if(isdefined(level.var_85E[param_00]))
{
deselect_entity(param_00,param_01);
return;
}
select_entity(param_00,param_01);
}
//Function Number: 51
select_entity(param_00,param_01)
{
if(isdefined(level.var_85E[param_00]))
{
return;
}
reset_fx_hud_colors();
level notify("new_ent_selection");
param_01 thread entity_highlight_enable();
level.var_85E[param_00] = 1;
level.var_81F[level.var_81F.size] = param_01;
}
//Function Number: 52
ent_is_highlighted(param_00)
{
if(!isdefined(level.var_868))
{
return 0;
}
return param_00 == level.var_868;
}
//Function Number: 53
deselect_entity(param_00,param_01)
{
if(!isdefined(level.var_85E[param_00]))
{
return;
}
reset_fx_hud_colors();
level notify("new_ent_selection");
level.var_85E[param_00] = undefined;
if(!ent_is_highlighted(param_01))
{
param_01 thread entity_highlight_disable();
}
var_02 = [];
for(var_03 = 0;var_03 < level.var_81F.size;var_03++)
{
if(level.var_81F[var_03] != param_01)
{
var_02[var_02.size] = level.var_81F[var_03];
}
}
level.var_81F = var_02;
}
//Function Number: 54
index_is_selected(param_00)
{
return isdefined(level.var_85E[param_00]);
}
//Function Number: 55
ent_is_selected(param_00)
{
for(var_01 = 0;var_01 < level.var_81F.size;var_01++)
{
if(level.var_81F[var_01] == param_00)
{
return 1;
}
}
return 0;
}
//Function Number: 56
clear_entity_selection()
{
for(var_00 = 0;var_00 < level.var_81F.size;var_00++)
{
if(!ent_is_highlighted(level.var_81F[var_00]))
{
level.var_81F[var_00] thread entity_highlight_disable();
}
}
level.var_85E = [];
level.var_81F = [];
}
//Function Number: 57
draw_axis()
{
var_00 = 25 * getdvarfloat("createfx_scaleid");
var_01 = anglestoforward(self.v["angles"]);
var_01 = var_01 * var_00;
var_02 = anglestoright(self.v["angles"]);
var_02 = var_02 * var_00;
var_03 = anglestoup(self.v["angles"]);
var_03 = var_03 * var_00;
}
//Function Number: 58
clear_fx_hudelements()
{
level.var_857 clearalltextafterhudelem();
for(var_00 = 0;var_00 < level.var_83E;var_00++)
{
for(var_01 = 0;var_01 < 1;var_01++)
{
level.var_833[var_00][var_01] settext("");
}
}
level.var_893 = 0;
}
//Function Number: 59
set_fx_hudelement(param_00)
{
for(var_01 = 0;var_01 < 1;var_01++)
{
level.var_833[level.var_893][var_01] settext(param_00);
}
level.var_893++;
}
//Function Number: 60
createfx_centerprint(param_00)
{
thread createfx_centerprint_thread(param_00);
}
//Function Number: 61
createfx_centerprint_thread(param_00)
{
level notify("new_createfx_centerprint");
level endon("new_createfx_centerprint");
for(var_01 = 0;var_01 < 5;var_01++)
{
level.createfx_centerprint[var_01] settext(param_00);
}
wait 4.5;
for(var_01 = 0;var_01 < 5;var_01++)
{
level.createfx_centerprint[var_01] settext("");
}
}
//Function Number: 62
buttondown(param_00,param_01)
{
return buttonpressed_internal(param_00) || buttonpressed_internal(param_01);
}
//Function Number: 63
buttonpressed_internal(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
if(kb_locked(param_00))
{
return 0;
}
return level.player buttonpressed(param_00);
}
//Function Number: 64
get_selected_move_vector()
{
var_00 = level.player getplayerangles()[1];
var_01 = (0,var_00,0);
var_02 = anglestoright(var_01);
var_03 = anglestoforward(var_01);
var_04 = anglestoup(var_01);
var_05 = 0;
var_06 = 1;
if(buttondown("kp_uparrow","DPAD_UP"))
{
if(level.var_859 < 0)
{
level.var_859 = 0;
}
level.var_859 = level.var_859 + var_06;
}
else if(buttondown("kp_downarrow","DPAD_DOWN"))
{
if(level.var_859 > 0)
{
level.var_859 = 0;
}
level.var_859 = level.var_859 - var_06;
}
else
{
level.var_859 = 0;
}
if(buttondown("kp_rightarrow","DPAD_RIGHT"))
{
if(level.var_85A < 0)
{
level.var_85A = 0;
}
level.var_85A = level.var_85A + var_06;
}
else if(buttondown("kp_leftarrow","DPAD_LEFT"))
{
if(level.var_85A > 0)
{
level.var_85A = 0;
}
level.var_85A = level.var_85A - var_06;
}
else
{
level.var_85A = 0;
}
if(buttondown("BUTTON_Y"))
{
if(level.var_858 < 0)
{
level.var_858 = 0;
}
level.var_858 = level.var_858 + var_06;
}
else if(buttondown("BUTTON_B"))
{
if(level.var_858 > 0)
{
level.var_858 = 0;
}
level.var_858 = level.var_858 - var_06;
}
else
{
level.var_858 = 0;
}
var_07 = (0,0,0);
var_07 = var_07 + var_03 * level.var_859;
var_07 = var_07 + var_02 * level.var_85A;
var_07 = var_07 + var_04 * level.var_858;
return var_07;
}
//Function Number: 65
process_button_held_and_clicked()
{
add_button("mouse1");
add_kb_button("shift");
add_kb_button("ctrl");
add_button("BUTTON_RSHLDR");
add_button("BUTTON_LSHLDR");
add_button("BUTTON_RSTICK");
add_button("BUTTON_LSTICK");
add_button("BUTTON_A");
add_button("BUTTON_B");
add_button("BUTTON_X");
add_button("BUTTON_Y");
add_button("DPAD_UP");
add_button("DPAD_LEFT");
add_button("DPAD_RIGHT");
add_button("DPAD_DOWN");
add_kb_button("escape");
add_kb_button("a");
add_kb_button("g");
add_button("F1");
add_button("F5");
add_button("F2");
add_kb_button("c");
add_kb_button("h");
add_kb_button("i");
add_kb_button("k");
add_kb_button("l");
add_kb_button("m");
add_kb_button("p");
add_kb_button("x");
add_button("del");
add_kb_button("end");
add_kb_button("tab");
add_kb_button("ins");
add_kb_button("add");
add_kb_button("space");
add_kb_button("enter");
add_kb_button("v");
add_kb_button("1");
add_kb_button("2");
add_kb_button("3");
add_kb_button("4");
add_kb_button("5");
add_kb_button("6");
add_kb_button("7");
add_kb_button("8");
add_kb_button("9");
add_kb_button("0");
}
//Function Number: 66
locked(param_00)
{
if(isdefined(level.var_85F[param_00]))
{
return 0;
}
return kb_locked(param_00);
}
//Function Number: 67
kb_locked(param_00)
{
return level.var_832 && isdefined(level.var_867[param_00]);
}
//Function Number: 68
add_button(param_00)
{
if(locked(param_00))
{
return;
}
if(!isdefined(level.var_861[param_00]))
{
if(level.player buttonpressed(param_00))
{
level.var_861[param_00] = 1;
level.var_866[param_00] = 1;
return;
}
return;
}
if(!level.player buttonpressed(param_00))
{
level.var_861[param_00] = undefined;
}
}
//Function Number: 69
add_kb_button(param_00)
{
level.var_867[param_00] = 1;
add_button(param_00);
}
//Function Number: 70
set_anglemod_move_vector()
{
var_00 = 2;
if(buttondown("kp_uparrow","DPAD_UP"))
{
if(level.var_85B < 0)
{
level.var_85B = 0;
}
level.var_85B = level.var_85B + var_00;
}
else if(buttondown("kp_downarrow","DPAD_DOWN"))
{
if(level.var_85B > 0)
{
level.var_85B = 0;
}
level.var_85B = level.var_85B - var_00;
}
else
{
level.var_85B = 0;
}
if(buttondown("kp_leftarrow","DPAD_LEFT"))
{
if(level.var_85D < 0)
{
level.var_85D = 0;
}
level.var_85D = level.var_85D + var_00;
}
else if(buttondown("kp_rightarrow","DPAD_RIGHT"))
{
if(level.var_85D > 0)
{
level.var_85D = 0;
}
level.var_85D = level.var_85D - var_00;
}
else
{
level.var_85D = 0;
}
if(buttondown("BUTTON_Y"))
{
if(level.var_85C < 0)
{
level.var_85C = 0;
}
level.var_85C = level.var_85C + var_00;
return;
}
if(buttondown("BUTTON_B"))
{
if(level.var_85C > 0)
{
level.var_85C = 0;
}
level.var_85C = level.var_85C - var_00;
return;
}
level.var_85C = 0;
}
//Function Number: 71
cfxprintlnstart()
{
common_scripts\utility::fileprint_launcher_start_file();
}
//Function Number: 72
cfxprintln(param_00,param_01)
{
common_scripts\utility::fileprint_launcher(param_01);
if(param_00 == -1)
{
}
}
//Function Number: 73
cfxprintlnend(param_00,param_01,param_02)
{
var_03 = 1;
if(param_02 != "" || param_01)
{
var_03 = 0;
}
var_04 = common_scripts\utility::get_template_level() + param_02 + "_fx.gsc";
if(param_01)
{
var_04 = "backup.gsc";
}
common_scripts\utility::fileprint_launcher_end_file("/share/raw/maps/createfx/" + var_04,var_03);
}
//Function Number: 74
update_selected_entities()
{
for(var_00 = 0;var_00 < level.var_81F.size;var_00++)
{
var_01 = level.var_81F[var_00];
var_01 [[ level.func_updatefx ]]();
}
}
//Function Number: 75
hack_start(param_00)
{
if(!isdefined(param_00))
{
param_00 = "painter_mp";
}
precachemenu(param_00);
wait 0.05;
if(param_00 == "painter_mp")
{
return;
}
level.player openpopupmenu(param_00);
level.player closepopupmenu(param_00);
}
//Function Number: 76
get_player()
{
return getentarray("player","classname")[0];
}
//Function Number: 77
createfx_orgranize_array()
{
var_00 = [];
var_01 = [];
foreach(var_04, var_03 in var_7B)
{
var_01[var_04] = [];
}
foreach(var_06 in level.createfxent)
{
var_07 = 0;
foreach(var_04, var_09 in var_7B)
{
if(var_06.v["type"] != var_09)
{
continue;
}
var_07 = 1;
var_01[var_04][var_01[var_04].size] = var_06;
break;
}
}
var_0B = [];
for(var_0C = 0;var_0C < var_7B.size;var_0C++ = var_7B[4])
{
foreach(var_06 in var_01[var_0C])
{
var_0B[var_0B.size] = var_06;
}
}
level.createfxent = var_0B;
}
//Function Number: 78
stop_fx_looper()
{
if(isdefined(self.looper))
{
self.looper delete();
}
stop_loopsound();
}
//Function Number: 79
stop_loopsound()
{
self notify("stop_loop");
}
//Function Number: 80
func_get_level_fx()
{
if(!isdefined(level.var_8AA))
{
var_00 = getarraykeys(level._effect);
}
else
{
var_00 = getarraykeys(level._effect);
if(var_00.size == level.var_8AA.size)
{
return level.var_8AA;
}
}
var_00 = common_scripts\utility::alphabetize(var_00);
level.var_8AA = var_00;
return var_00;
}
//Function Number: 81
restart_fx_looper()
{
stop_fx_looper();
set_forward_and_up_vectors();
if(self.v["type"] == "loopfx")
{
common_scripts\_fx::create_looper();
}
if(self.v["type"] == "oneshotfx")
{
common_scripts\_fx::create_triggerfx();
}
if(self.v["type"] == "soundfx")
{
common_scripts\_fx::create_loopsound();
}
if(self.v["type"] == "soundfx_interval")
{
common_scripts\_fx::create_interval_sound();
}
}
//Function Number: 82
process_fx_rotater()
{
if(level.var_863)
{
return;
}
set_anglemod_move_vector();
if(!rotation_is_occuring())
{
return;
}
level.var_863 = 1;
if(level.var_81F.size > 1)
{
var_00 = get_center_of_array(level.var_81F);
var_01 = spawn("script_origin",var_00);
var_01.v["angles"] = level.var_81F[0].v["angles"];
var_01.v["origin"] = var_00;
var_02 = [];
for(var_03 = 0;var_03 < level.var_81F.size;var_03++)
{
var_02[var_03] = spawn("script_origin",level.var_81F[var_03].v["origin"]);
var_02[var_03].angles = level.var_81F[var_03].v["angles"];
var_02[var_03] linkto(var_01);
}
rotate_over_time(var_01,var_02);
var_01 delete();
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
var_02[var_03] delete();
}
}
else if(level.var_81F.size == 1)
{
var_04 = level.var_81F[0];
var_02 = spawn("script_origin",(0,0,0));
var_02.angles = var_04.v["angles"];
if(level.var_85B != 0)
{
var_02 addpitch(level.var_85B);
}
else if(level.var_85D != 0)
{
var_02 addyaw(level.var_85D);
}
else
{
var_02 addroll(level.var_85C);
}
var_04.v["angles"] = var_02.angles;
var_02 delete();
wait 0.05;
}
level.var_863 = 0;
}
//Function Number: 83
generate_fx_log(param_00)
{
}