mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-08 01:27:51 -05:00
1939 lines
35 KiB
Plaintext
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)
|
|
{
|
|
} |