mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-08 01:27:51 -05:00
2598 lines
49 KiB
Plaintext
2598 lines
49 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: common_scripts\_createfx.gsc
|
|
* Game: Call of Duty: Ghosts
|
|
* Platform: PC
|
|
* Function Count: 114
|
|
* Decompile Time: 1980 ms
|
|
* Timestamp: 10/27/2023 1:26:31 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.var_880E = [];
|
|
var_02.var_880E["type"] = param_00;
|
|
var_02.var_880E["fxid"] = param_01;
|
|
var_02.var_880E["angles"] = (0,0,0);
|
|
var_02.var_880E["origin"] = (0,0,0);
|
|
var_02.drawn = 1;
|
|
if(isdefined(param_01) && isdefined(level.createfxbyfxid))
|
|
{
|
|
var_03 = level.createfxbyfxid[param_01];
|
|
if(!isdefined(var_03))
|
|
{
|
|
var_03 = [];
|
|
}
|
|
|
|
var_03[var_03.size] = var_02;
|
|
level.createfxbyfxid[param_01] = var_03;
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_3B1B()
|
|
{
|
|
return 0.5;
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_3B64()
|
|
{
|
|
return -15;
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_3AA4()
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_3ADC()
|
|
{
|
|
return 0.75;
|
|
}
|
|
|
|
//Function Number: 6
|
|
getintervalsounddelaymaxdefault()
|
|
{
|
|
return 2;
|
|
}
|
|
|
|
//Function Number: 7
|
|
createloopsound()
|
|
{
|
|
var_00 = spawnstruct();
|
|
if(!isdefined(level.createfxent))
|
|
{
|
|
level.createfxent = [];
|
|
}
|
|
|
|
level.createfxent[level.createfxent.size] = var_00;
|
|
var_00.var_880E = [];
|
|
var_00.var_880E["type"] = "soundfx";
|
|
var_00.var_880E["fxid"] = "No FX";
|
|
var_00.var_880E["soundalias"] = "nil";
|
|
var_00.var_880E["angles"] = (0,0,0);
|
|
var_00.var_880E["origin"] = (0,0,0);
|
|
var_00.var_880E["server_culled"] = 1;
|
|
if(getdvar("serverCulledSounds") != "1")
|
|
{
|
|
var_00.var_880E["server_culled"] = 0;
|
|
}
|
|
|
|
var_00.drawn = 1;
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 8
|
|
createintervalsound()
|
|
{
|
|
var_00 = createloopsound();
|
|
var_00.var_880E["type"] = "soundfx_interval";
|
|
var_00.var_880E["delay_min"] = func_3ADC();
|
|
var_00.var_880E["delay_max"] = getintervalsounddelaymaxdefault();
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 9
|
|
createnewexploder()
|
|
{
|
|
var_00 = spawnstruct();
|
|
if(!isdefined(level.createfxent))
|
|
{
|
|
level.createfxent = [];
|
|
}
|
|
|
|
level.createfxent[level.createfxent.size] = var_00;
|
|
var_00.var_880E = [];
|
|
var_00.var_880E["type"] = "exploder";
|
|
var_00.var_880E["fxid"] = "No FX";
|
|
var_00.var_880E["soundalias"] = "nil";
|
|
var_00.var_880E["loopsound"] = "nil";
|
|
var_00.var_880E["angles"] = (0,0,0);
|
|
var_00.var_880E["origin"] = (0,0,0);
|
|
var_00.var_880E["exploder"] = 1;
|
|
var_00.var_880E["flag"] = "nil";
|
|
var_00.var_880E["exploder_type"] = "normal";
|
|
var_00.drawn = 1;
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 10
|
|
createexploderex(param_00,param_01)
|
|
{
|
|
var_02 = common_scripts\utility::createexploder(param_00);
|
|
var_02.var_880E["exploder"] = param_01;
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_2117()
|
|
{
|
|
var_00 = spawnstruct();
|
|
level.createfxent[level.createfxent.size] = var_00;
|
|
var_00.var_880E = [];
|
|
var_00.var_880E["origin"] = (0,0,0);
|
|
var_00.var_880E["reactive_radius"] = 200;
|
|
var_00.var_880E["fxid"] = "No FX";
|
|
var_00.var_880E["type"] = "reactive_fx";
|
|
var_00.var_880E["soundalias"] = "nil";
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_6F3C(param_00,param_01)
|
|
{
|
|
if(isdefined(level.createfx_offset))
|
|
{
|
|
param_00 = param_00 + level.createfx_offset;
|
|
}
|
|
|
|
self.var_880E["origin"] = param_00;
|
|
self.var_880E["angles"] = param_01;
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_6EE6()
|
|
{
|
|
self.var_880E["up"] = anglestoup(self.var_880E["angles"]);
|
|
self.var_880E["forward"] = anglestoforward(self.var_880E["angles"]);
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_20E7()
|
|
{
|
|
precacheshader("black");
|
|
level.var_658 = spawnstruct();
|
|
level.var_658.grenade = spawn("script_origin",(0,0,0));
|
|
level.var_658.grenade.fx = loadfx("fx/explosions/grenadeexp_default");
|
|
level.var_658.grenade.sound = "grenade_explode_default";
|
|
level.var_658.grenade.radius = 256;
|
|
if(level.mp_createfx)
|
|
{
|
|
func_3E6A("painter_mp");
|
|
}
|
|
else
|
|
{
|
|
func_3E6A("painter");
|
|
}
|
|
|
|
common_scripts\utility::func_3385("createfx_saving");
|
|
common_scripts\utility::func_3385("createfx_started");
|
|
if(!isdefined(level.createfx))
|
|
{
|
|
level.createfx = [];
|
|
}
|
|
|
|
level.createfx_loopcounter = 0;
|
|
level notify("createfx_common_done");
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_4562()
|
|
{
|
|
level.var_658.selectedmove_up = 0;
|
|
level.var_658.selectedmove_forward = 0;
|
|
level.var_658.selectedmove_right = 0;
|
|
level.var_658.selectedrotate_pitch = 0;
|
|
level.var_658.selectedrotate_roll = 0;
|
|
level.var_658.selectedrotate_yaw = 0;
|
|
level.var_658.selected_fx = [];
|
|
level.var_658.selected_fx_ents = [];
|
|
level.var_658.rate = 1;
|
|
level.var_658.snap2normal = 0;
|
|
level.var_658.axismode = 0;
|
|
level.var_658.select_by_name = 0;
|
|
level.var_658.player_speed = getdvarfloat("g_speed");
|
|
func_6F7C();
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_456B()
|
|
{
|
|
level.var_658.lockedlist = [];
|
|
level.var_658.lockedlist["escape"] = 1;
|
|
level.var_658.lockedlist["BUTTON_LSHLDR"] = 1;
|
|
level.var_658.lockedlist["BUTTON_RSHLDR"] = 1;
|
|
level.var_658.lockedlist["mouse1"] = 1;
|
|
level.var_658.lockedlist["ctrl"] = 1;
|
|
}
|
|
|
|
//Function Number: 17
|
|
init_colors()
|
|
{
|
|
var_00 = [];
|
|
var_00["loopfx"]["selected"] = (1,1,0.2);
|
|
var_00["loopfx"]["highlighted"] = (0.4,0.95,1);
|
|
var_00["loopfx"]["default"] = (0.3,0.8,1);
|
|
var_00["oneshotfx"]["selected"] = (1,1,0.2);
|
|
var_00["oneshotfx"]["highlighted"] = (0.4,0.95,1);
|
|
var_00["oneshotfx"]["default"] = (0.3,0.8,1);
|
|
var_00["exploder"]["selected"] = (1,1,0.2);
|
|
var_00["exploder"]["highlighted"] = (1,0.2,0.2);
|
|
var_00["exploder"]["default"] = (1,0.1,0.1);
|
|
var_00["rainfx"]["selected"] = (1,1,0.2);
|
|
var_00["rainfx"]["highlighted"] = (0.95,0.4,0.95);
|
|
var_00["rainfx"]["default"] = (0.78,0,0.73);
|
|
var_00["soundfx"]["selected"] = (1,1,0.2);
|
|
var_00["soundfx"]["highlighted"] = (0.5,1,0.75);
|
|
var_00["soundfx"]["default"] = (0.2,0.9,0.2);
|
|
var_00["soundfx_interval"]["selected"] = (1,1,0.2);
|
|
var_00["soundfx_interval"]["highlighted"] = (0.5,1,0.75);
|
|
var_00["soundfx_interval"]["default"] = (0.2,0.9,0.2);
|
|
var_00["reactive_fx"]["selected"] = (1,1,0.2);
|
|
var_00["reactive_fx"]["highlighted"] = (0.5,1,0.75);
|
|
var_00["reactive_fx"]["default"] = (0.2,0.9,0.2);
|
|
level.var_658.colors = var_00;
|
|
}
|
|
|
|
//Function Number: 18
|
|
createfxlogic()
|
|
{
|
|
waittillframeend;
|
|
wait(0.05);
|
|
if(!isdefined(level._effect))
|
|
{
|
|
level._effect = [];
|
|
}
|
|
|
|
if(getdvar("createfx_map") == "")
|
|
{
|
|
}
|
|
else if(getdvar("createfx_map") == common_scripts\utility::func_39CA())
|
|
{
|
|
[[ level.func_position_player ]]();
|
|
}
|
|
|
|
func_4532();
|
|
common_scripts\_createfxmenu::func_456D();
|
|
func_455D();
|
|
func_45C0();
|
|
func_4532();
|
|
func_4562();
|
|
func_456B();
|
|
init_colors();
|
|
if(getdvar("createfx_use_f4") == "")
|
|
{
|
|
}
|
|
|
|
if(getdvar("createfx_no_autosave") == "")
|
|
{
|
|
}
|
|
|
|
level.createfx_draw_enabled = 1;
|
|
level.var_4BF4 = undefined;
|
|
level.buttonisheld = [];
|
|
var_00 = (0,0,0);
|
|
common_scripts\utility::flag_set("createfx_started");
|
|
if(!level.mp_createfx)
|
|
{
|
|
var_00 = level.player.origin;
|
|
}
|
|
|
|
var_01 = undefined;
|
|
level.fx_rotating = 0;
|
|
common_scripts\_createfxmenu::func_706E("none");
|
|
level.createfx_selecting = 0;
|
|
var_02 = newhudelem();
|
|
var_02.x = -120;
|
|
var_02.y = 200;
|
|
var_02.foreground = 0;
|
|
var_02 setshader("black",250,160);
|
|
var_02.alpha = 0;
|
|
level.createfx_inputlocked = 0;
|
|
foreach(var_04 in level.createfxent)
|
|
{
|
|
var_04 func_60C3();
|
|
}
|
|
|
|
thread func_2A56();
|
|
var_06 = undefined;
|
|
thread func_20E4();
|
|
for(;;)
|
|
{
|
|
var_07 = 0;
|
|
var_08 = anglestoright(level.player getplayerangles());
|
|
var_09 = anglestoforward(level.player getplayerangles());
|
|
var_0A = anglestoup(level.player getplayerangles());
|
|
var_0B = 0.85;
|
|
var_0C = var_09 * 750;
|
|
level.createfxcursor = bullettrace(level.player geteye(),level.player geteye() + var_0C,0,undefined);
|
|
var_0D = undefined;
|
|
level.buttonclick = [];
|
|
level.button_is_kb = [];
|
|
func_61BE();
|
|
var_0E = button_is_held("ctrl","BUTTON_LSHLDR");
|
|
var_0F = button_is_clicked("mouse1","BUTTON_A");
|
|
var_10 = button_is_held("mouse1","BUTTON_A");
|
|
common_scripts\_createfxmenu::create_fx_menu();
|
|
var_11 = "F5";
|
|
if(getdvarint("createfx_use_f4"))
|
|
{
|
|
var_11 = "F4";
|
|
}
|
|
|
|
if(button_is_clicked(var_11))
|
|
{
|
|
}
|
|
|
|
if(getdvarint("scr_createfx_dump"))
|
|
{
|
|
func_377D();
|
|
}
|
|
|
|
if(button_is_clicked("F2"))
|
|
{
|
|
func_814B();
|
|
}
|
|
|
|
if(button_is_clicked("ins"))
|
|
{
|
|
func_4664();
|
|
}
|
|
|
|
if(button_is_clicked("del"))
|
|
{
|
|
func_2573();
|
|
}
|
|
|
|
if(button_is_clicked("escape"))
|
|
{
|
|
clear_settable_fx();
|
|
}
|
|
|
|
if(button_is_clicked("space"))
|
|
{
|
|
set_off_exploders();
|
|
}
|
|
|
|
if(button_is_clicked("u"))
|
|
{
|
|
func_6D6A();
|
|
}
|
|
|
|
modify_player_speed();
|
|
if(!var_0E && button_is_clicked("g"))
|
|
{
|
|
func_6D66("exploder");
|
|
func_6D66("flag");
|
|
}
|
|
|
|
if(button_is_held("h","F1"))
|
|
{
|
|
func_74E6();
|
|
wait(0.05);
|
|
continue;
|
|
}
|
|
|
|
if(button_is_clicked("BUTTON_LSTICK"))
|
|
{
|
|
copy_ents();
|
|
}
|
|
|
|
if(button_is_clicked("BUTTON_RSTICK"))
|
|
{
|
|
func_5B19();
|
|
}
|
|
|
|
if(var_0E)
|
|
{
|
|
if(button_is_clicked("c"))
|
|
{
|
|
copy_ents();
|
|
}
|
|
|
|
if(button_is_clicked("v"))
|
|
{
|
|
func_5B19();
|
|
}
|
|
|
|
if(button_is_clicked("g"))
|
|
{
|
|
spawn_grenade();
|
|
}
|
|
}
|
|
|
|
if(isdefined(level.var_658.selected_fx_option_index))
|
|
{
|
|
common_scripts\_createfxmenu::menu_fx_option_set();
|
|
}
|
|
|
|
for(var_12 = 0;var_12 < level.createfxent.size;var_12++)
|
|
{
|
|
var_04 = level.createfxent[var_12];
|
|
var_13 = vectornormalize(var_04.var_880E["origin"] - level.player.origin + (0,0,55));
|
|
var_14 = vectordot(var_09,var_13);
|
|
if(var_14 < var_0B)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_0B = var_14;
|
|
var_0D = var_04;
|
|
}
|
|
|
|
level.fx_highlightedent = var_0D;
|
|
if(isdefined(var_0D))
|
|
{
|
|
if(isdefined(var_01))
|
|
{
|
|
if(var_01 != var_0D)
|
|
{
|
|
if(!func_2F52(var_01))
|
|
{
|
|
var_01 thread entity_highlight_disable();
|
|
}
|
|
|
|
if(!func_2F52(var_0D))
|
|
{
|
|
var_0D thread entity_highlight_enable();
|
|
}
|
|
}
|
|
}
|
|
else if(!func_2F52(var_0D))
|
|
{
|
|
var_0D thread entity_highlight_enable();
|
|
}
|
|
}
|
|
|
|
func_5078(var_0D,var_0F,var_10,var_0E,var_08);
|
|
var_07 = func_3F43(var_07);
|
|
wait(0.05);
|
|
if(var_07)
|
|
{
|
|
func_86A9();
|
|
}
|
|
|
|
if(!level.mp_createfx)
|
|
{
|
|
var_00 = [[ level.func_position_player_get ]](var_00);
|
|
}
|
|
|
|
var_01 = var_0D;
|
|
if(func_4C1F(var_06))
|
|
{
|
|
level.effect_list_offset = 0;
|
|
clear_settable_fx();
|
|
common_scripts\_createfxmenu::func_706E("none");
|
|
}
|
|
|
|
if(level.var_658.selected_fx_ents.size)
|
|
{
|
|
var_06 = level.var_658.selected_fx_ents[level.var_658.selected_fx_ents.size - 1];
|
|
continue;
|
|
}
|
|
|
|
var_06 = undefined;
|
|
}
|
|
}
|
|
|
|
//Function Number: 19
|
|
modify_player_speed()
|
|
{
|
|
var_00 = 0;
|
|
var_01 = button_is_held("ctrl");
|
|
if(button_is_held("."))
|
|
{
|
|
if(var_01)
|
|
{
|
|
if(level.var_658.player_speed < 190)
|
|
{
|
|
level.var_658.player_speed = 190;
|
|
}
|
|
else
|
|
{
|
|
level.var_658.player_speed = level.var_658.player_speed + 10;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
level.var_658.player_speed = level.var_658.player_speed + 5;
|
|
}
|
|
|
|
var_00 = 1;
|
|
}
|
|
else if(button_is_held(","))
|
|
{
|
|
if(var_01)
|
|
{
|
|
if(level.var_658.player_speed > 190)
|
|
{
|
|
level.var_658.player_speed = 190;
|
|
}
|
|
else
|
|
{
|
|
level.var_658.player_speed = level.var_658.player_speed - 10;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
level.var_658.player_speed = level.var_658.player_speed - 5;
|
|
}
|
|
|
|
var_00 = 1;
|
|
}
|
|
|
|
if(var_00)
|
|
{
|
|
level.var_658.player_speed = clamp(level.var_658.player_speed,5,500);
|
|
[[ level.func_player_speed ]]();
|
|
func_6F7C();
|
|
}
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_6F7C()
|
|
{
|
|
if(!isdefined(level.var_658.player_speed_hud))
|
|
{
|
|
var_00 = newhudelem();
|
|
var_00.alignx = "right";
|
|
var_00.foreground = 1;
|
|
var_00.fontscale = 1.2;
|
|
var_00.alpha = 0.2;
|
|
var_00.x = 320;
|
|
var_00.y = 420;
|
|
var_01 = newhudelem();
|
|
var_01.alignx = "left";
|
|
var_01.foreground = 1;
|
|
var_01.fontscale = 1.2;
|
|
var_01.alpha = 0.2;
|
|
var_01.x = 320;
|
|
var_01.y = 420;
|
|
var_00.hud_value = var_01;
|
|
level.var_658.player_speed_hud = var_00;
|
|
}
|
|
|
|
level.var_658.player_speed_hud.hud_value setvalue(level.var_658.player_speed);
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_814B()
|
|
{
|
|
level.createfx_draw_enabled = !level.createfx_draw_enabled;
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_4664()
|
|
{
|
|
common_scripts\_createfxmenu::func_706E("creation");
|
|
level.effect_list_offset = 0;
|
|
func_1D10();
|
|
func_6EEA("Pick effect type to create:");
|
|
func_6EEA("1. One Shot FX");
|
|
func_6EEA("2. Looping FX");
|
|
func_6EEA("3. Looping sound");
|
|
func_6EEA("4. Exploder");
|
|
func_6EEA("5. One Shot Sound");
|
|
func_6EEA("6. Reactive Sound");
|
|
func_6EEA("(c) Cancel >");
|
|
func_6EEA("(x) Exit >");
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_5078(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
if(!level.createfx_draw_enabled)
|
|
{
|
|
}
|
|
|
|
if(level.var_658.select_by_name)
|
|
{
|
|
level.var_658.select_by_name = 0;
|
|
param_00 = undefined;
|
|
}
|
|
else if(select_by_substring())
|
|
{
|
|
param_00 = undefined;
|
|
}
|
|
|
|
for(var_05 = 0;var_05 < level.createfxent.size;var_05++)
|
|
{
|
|
var_06 = level.createfxent[var_05];
|
|
if(!var_06.drawn)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_07 = getdvarfloat("createfx_scaleid");
|
|
if(isdefined(param_00) && var_06 == param_00)
|
|
{
|
|
if(!common_scripts\_createfxmenu::entities_are_selected())
|
|
{
|
|
common_scripts\_createfxmenu::func_27DD(var_06);
|
|
}
|
|
|
|
if(param_01)
|
|
{
|
|
var_08 = index_is_selected(var_05);
|
|
level.createfx_selecting = !var_08;
|
|
if(!param_03)
|
|
{
|
|
var_09 = level.var_658.selected_fx_ents.size;
|
|
clear_entity_selection();
|
|
if(var_08 && var_09 == 1)
|
|
{
|
|
func_6D6C(var_05,var_06);
|
|
}
|
|
}
|
|
|
|
func_814C(var_05,var_06);
|
|
}
|
|
else if(param_02)
|
|
{
|
|
if(param_03)
|
|
{
|
|
if(level.createfx_selecting)
|
|
{
|
|
func_6D6C(var_05,var_06);
|
|
}
|
|
|
|
if(!level.createfx_selecting)
|
|
{
|
|
deselect_entity(var_05,var_06);
|
|
}
|
|
}
|
|
}
|
|
|
|
var_0A = "highlighted";
|
|
}
|
|
else
|
|
{
|
|
var_0A = "default";
|
|
}
|
|
|
|
if(index_is_selected(var_05))
|
|
{
|
|
var_0A = "selected";
|
|
}
|
|
|
|
var_06 createfx_print3d(var_0A,var_07,param_04);
|
|
}
|
|
}
|
|
|
|
//Function Number: 24
|
|
createfx_print3d(param_00,param_01,param_02)
|
|
{
|
|
if(self.textalpha > 0)
|
|
{
|
|
var_03 = func_396A();
|
|
var_04 = param_02 * var_03.size * -2.93;
|
|
var_05 = level.var_658.colors[self.var_880E["type"]][param_00];
|
|
if(isdefined(self.is_playing))
|
|
{
|
|
var_05 = (1,0.5,0);
|
|
}
|
|
|
|
if(isdefined(self.var_880E["reactive_radius"]))
|
|
{
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_396A()
|
|
{
|
|
switch(self.var_880E["type"])
|
|
{
|
|
case "reactive_fx":
|
|
return "reactive: " + self.var_880E["soundalias"];
|
|
|
|
default:
|
|
return self.var_880E["fxid"];
|
|
}
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_6D6A()
|
|
{
|
|
level.effect_list_offset = 0;
|
|
func_1D10();
|
|
common_scripts\_createfxmenu::func_706E("select_by_name");
|
|
common_scripts\_createfxmenu::draw_effects_list();
|
|
}
|
|
|
|
//Function Number: 27
|
|
func_3F43(param_00)
|
|
{
|
|
if(level.var_658.selected_fx_ents.size > 0)
|
|
{
|
|
param_00 = func_6D73(param_00);
|
|
if(!current_mode_hud("selected_ents"))
|
|
{
|
|
func_55C1("selected_ents");
|
|
func_6FAD("Selected Ent Mode");
|
|
func_6FAD("Mode:","move");
|
|
func_6FAD("Rate:",level.var_658.rate);
|
|
func_6FAD("Snap2Normal:",level.var_658.snap2normal);
|
|
}
|
|
|
|
if(level.var_658.axismode && level.var_658.selected_fx_ents.size > 0)
|
|
{
|
|
func_6FAD("Mode:","rotate");
|
|
thread [[ level.func_process_fx_rotater ]]();
|
|
if(button_is_clicked("enter","p"))
|
|
{
|
|
func_65DF();
|
|
}
|
|
|
|
if(button_is_clicked("v"))
|
|
{
|
|
func_1F39();
|
|
}
|
|
|
|
for(var_01 = 0;var_01 < level.var_658.selected_fx_ents.size;var_01++)
|
|
{
|
|
level.var_658.selected_fx_ents[var_01] func_2A4A();
|
|
}
|
|
|
|
if(level.selectedrotate_pitch != 0 || level.selectedrotate_yaw != 0 || level.selectedrotate_roll != 0)
|
|
{
|
|
param_00 = 1;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
func_6FAD("Mode:","move");
|
|
var_02 = get_selected_move_vector();
|
|
for(var_01 = 0;var_01 < level.var_658.selected_fx_ents.size;var_01++)
|
|
{
|
|
var_03 = level.var_658.selected_fx_ents[var_01];
|
|
if(isdefined(var_03.model))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_03 func_2A54();
|
|
var_03.var_880E["origin"] = var_03.var_880E["origin"] + var_02;
|
|
}
|
|
|
|
if(distance((0,0,0),var_02) > 0)
|
|
{
|
|
param_00 = 1;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
clear_tool_hud();
|
|
}
|
|
|
|
return param_00;
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_6D73(param_00)
|
|
{
|
|
if(button_is_clicked("shift","BUTTON_X"))
|
|
{
|
|
func_814A();
|
|
}
|
|
|
|
func_5323();
|
|
if(button_is_clicked("s"))
|
|
{
|
|
func_814F();
|
|
}
|
|
|
|
if(button_is_clicked("end","l"))
|
|
{
|
|
drop_selection_to_ground();
|
|
param_00 = 1;
|
|
}
|
|
|
|
if(button_is_clicked("tab","BUTTON_RSHLDR"))
|
|
{
|
|
func_544F();
|
|
param_00 = 1;
|
|
}
|
|
|
|
return param_00;
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_5323()
|
|
{
|
|
var_00 = button_is_held("shift");
|
|
var_01 = button_is_held("ctrl");
|
|
if(button_is_clicked("="))
|
|
{
|
|
if(var_00)
|
|
{
|
|
level.var_658.rate = level.var_658.rate + 1;
|
|
}
|
|
else if(var_01)
|
|
{
|
|
if(level.var_658.rate < 1)
|
|
{
|
|
level.var_658.rate = 1;
|
|
}
|
|
else
|
|
{
|
|
level.var_658.rate = level.var_658.rate + 10;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
level.var_658.rate = level.var_658.rate + 0.1;
|
|
}
|
|
}
|
|
else if(button_is_clicked("-"))
|
|
{
|
|
if(var_00)
|
|
{
|
|
level.var_658.rate = level.var_658.rate - 1;
|
|
}
|
|
else if(var_01)
|
|
{
|
|
if(level.var_658.rate > 1)
|
|
{
|
|
level.var_658.rate = 1;
|
|
}
|
|
else
|
|
{
|
|
level.var_658.rate = 0.1;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
level.var_658.rate = level.var_658.rate - 0.1;
|
|
}
|
|
}
|
|
|
|
level.var_658.rate = clamp(level.var_658.rate,0.1,100);
|
|
func_6FAD("Rate:",level.var_658.rate);
|
|
}
|
|
|
|
//Function Number: 30
|
|
func_814A()
|
|
{
|
|
level.var_658.axismode = !level.var_658.axismode;
|
|
}
|
|
|
|
//Function Number: 31
|
|
func_814F()
|
|
{
|
|
level.var_658.snap2normal = !level.var_658.snap2normal;
|
|
func_6FAD("Snap2Normal:",level.var_658.snap2normal);
|
|
}
|
|
|
|
//Function Number: 32
|
|
func_1F39()
|
|
{
|
|
level notify("new_ent_selection");
|
|
for(var_00 = 0;var_00 < level.var_658.selected_fx_ents.size;var_00++)
|
|
{
|
|
var_01 = level.var_658.selected_fx_ents[var_00];
|
|
var_01.var_880E["angles"] = level.var_658.selected_fx_ents[level.var_658.selected_fx_ents.size - 1].var_880E["angles"];
|
|
var_01 func_6EE6();
|
|
}
|
|
|
|
func_86A9();
|
|
}
|
|
|
|
//Function Number: 33
|
|
func_65DF()
|
|
{
|
|
level notify("new_ent_selection");
|
|
for(var_00 = 0;var_00 < level.var_658.selected_fx_ents.size;var_00++)
|
|
{
|
|
var_01 = level.var_658.selected_fx_ents[var_00];
|
|
var_01.var_880E["angles"] = (0,0,0);
|
|
var_01 func_6EE6();
|
|
}
|
|
|
|
func_86A9();
|
|
}
|
|
|
|
//Function Number: 34
|
|
func_4C1F(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_658.selected_fx_ents[level.var_658.selected_fx_ents.size - 1];
|
|
}
|
|
|
|
//Function Number: 35
|
|
drop_selection_to_ground()
|
|
{
|
|
for(var_00 = 0;var_00 < level.var_658.selected_fx_ents.size;var_00++)
|
|
{
|
|
var_01 = level.var_658.selected_fx_ents[var_00];
|
|
var_02 = bullettrace(var_01.var_880E["origin"],var_01.var_880E["origin"] + (0,0,-2048),0,undefined);
|
|
var_01.var_880E["origin"] = var_02["position"];
|
|
}
|
|
}
|
|
|
|
//Function Number: 36
|
|
set_off_exploders()
|
|
{
|
|
level notify("createfx_exploder_reset");
|
|
var_00 = [];
|
|
for(var_01 = 0;var_01 < level.var_658.selected_fx_ents.size;var_01++)
|
|
{
|
|
var_02 = level.var_658.selected_fx_ents[var_01];
|
|
if(isdefined(var_02.var_880E["exploder"]))
|
|
{
|
|
var_00[var_02.var_880E["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: 37
|
|
func_2A56()
|
|
{
|
|
var_00 = 0;
|
|
if(getdvarint("createfx_drawdist") == 0)
|
|
{
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
var_01 = getdvarint("createfx_drawdist");
|
|
var_01 = var_01 * var_01;
|
|
for(var_02 = 0;var_02 < level.createfxent.size;var_02++)
|
|
{
|
|
var_03 = level.createfxent[var_02];
|
|
var_03.drawn = distancesquared(level.player.origin,var_03.var_880E["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: 38
|
|
func_20E4()
|
|
{
|
|
setdvarifuninitialized("createfx_autosave_time","300");
|
|
for(;;)
|
|
{
|
|
wait(getdvarint("createfx_autosave_time"));
|
|
common_scripts\utility::func_33A0("createfx_saving");
|
|
if(getdvarint("createfx_no_autosave"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
func_377D(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 39
|
|
func_686C(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.selectedrotate_pitch != 0)
|
|
{
|
|
param_00 addpitch(level.selectedrotate_pitch);
|
|
}
|
|
else if(level.selectedrotate_yaw != 0)
|
|
{
|
|
param_00 addyaw(level.selectedrotate_yaw);
|
|
}
|
|
else
|
|
{
|
|
param_00 addroll(level.selectedrotate_roll);
|
|
}
|
|
|
|
wait(0.05);
|
|
param_00 func_2A4A();
|
|
for(var_04 = 0;var_04 < level.var_658.selected_fx_ents.size;var_04++)
|
|
{
|
|
var_05 = level.var_658.selected_fx_ents[var_04];
|
|
if(isdefined(var_05.model))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_05.var_880E["origin"] = param_01[var_04].origin;
|
|
var_05.var_880E["angles"] = param_01[var_04].angles;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 40
|
|
func_2573()
|
|
{
|
|
if(level.createfx_inputlocked)
|
|
{
|
|
func_6553();
|
|
}
|
|
|
|
func_2576();
|
|
}
|
|
|
|
//Function Number: 41
|
|
func_6553()
|
|
{
|
|
if(!isdefined(level.var_658.selected_fx_option_index))
|
|
{
|
|
}
|
|
|
|
var_00 = level.var_658.options[level.var_658.selected_fx_option_index]["name"];
|
|
for(var_01 = 0;var_01 < level.createfxent.size;var_01++)
|
|
{
|
|
var_02 = level.createfxent[var_01];
|
|
if(!func_2F52(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_02 func_6546(var_00);
|
|
}
|
|
|
|
func_86A9();
|
|
clear_settable_fx();
|
|
}
|
|
|
|
//Function Number: 42
|
|
func_6546(param_00)
|
|
{
|
|
self.var_880E[param_00] = undefined;
|
|
}
|
|
|
|
//Function Number: 43
|
|
func_2576()
|
|
{
|
|
var_00 = [];
|
|
for(var_01 = 0;var_01 < level.createfxent.size;var_01++)
|
|
{
|
|
var_02 = level.createfxent[var_01];
|
|
if(func_2F52(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_658.selected_fx = [];
|
|
level.var_658.selected_fx_ents = [];
|
|
func_1D10();
|
|
}
|
|
|
|
//Function Number: 44
|
|
func_544F()
|
|
{
|
|
var_00 = level.createfxcursor["position"];
|
|
if(level.var_658.selected_fx_ents.size <= 0)
|
|
{
|
|
}
|
|
|
|
var_01 = func_37FD(level.var_658.selected_fx_ents);
|
|
var_02 = var_01 - var_00;
|
|
for(var_03 = 0;var_03 < level.var_658.selected_fx_ents.size;var_03++)
|
|
{
|
|
var_04 = level.var_658.selected_fx_ents[var_03];
|
|
if(isdefined(var_04.model))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_04.var_880E["origin"] = var_04.var_880E["origin"] - var_02;
|
|
if(level.var_658.snap2normal)
|
|
{
|
|
if(isdefined(level.createfxcursor["normal"]))
|
|
{
|
|
var_04.var_880E["angles"] = vectortoangles(level.createfxcursor["normal"]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 45
|
|
select_last_entity()
|
|
{
|
|
func_6D6C(level.createfxent.size - 1,level.createfxent[level.createfxent.size - 1]);
|
|
}
|
|
|
|
//Function Number: 46
|
|
func_6D66(param_00)
|
|
{
|
|
var_01 = [];
|
|
foreach(var_03 in level.var_658.selected_fx_ents)
|
|
{
|
|
if(!isdefined(var_03.var_880E[param_00]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_04 = var_03.var_880E[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.var_880E[param_00]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_03.var_880E[param_00] != var_04)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
func_6D6C(var_09,var_03);
|
|
}
|
|
}
|
|
|
|
func_86A9();
|
|
}
|
|
|
|
//Function Number: 47
|
|
copy_ents()
|
|
{
|
|
if(level.var_658.selected_fx_ents.size <= 0)
|
|
{
|
|
}
|
|
|
|
var_00 = [];
|
|
for(var_01 = 0;var_01 < level.var_658.selected_fx_ents.size;var_01++)
|
|
{
|
|
var_02 = level.var_658.selected_fx_ents[var_01];
|
|
var_03 = spawnstruct();
|
|
var_03.var_880E = var_02.var_880E;
|
|
var_03 func_60C3();
|
|
var_00[var_00.size] = var_03;
|
|
}
|
|
|
|
level.stored_ents = var_00;
|
|
}
|
|
|
|
//Function Number: 48
|
|
func_60C3()
|
|
{
|
|
self.textalpha = 0;
|
|
self.drawn = 1;
|
|
}
|
|
|
|
//Function Number: 49
|
|
func_5B19()
|
|
{
|
|
if(!isdefined(level.stored_ents))
|
|
{
|
|
}
|
|
|
|
clear_entity_selection();
|
|
for(var_00 = 0;var_00 < level.stored_ents.size;var_00++)
|
|
{
|
|
add_and_select_entity(level.stored_ents[var_00]);
|
|
}
|
|
|
|
func_544F();
|
|
func_86A9();
|
|
level.stored_ents = [];
|
|
copy_ents();
|
|
}
|
|
|
|
//Function Number: 50
|
|
add_and_select_entity(param_00)
|
|
{
|
|
level.createfxent[level.createfxent.size] = param_00;
|
|
select_last_entity();
|
|
}
|
|
|
|
//Function Number: 51
|
|
func_37FD(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].var_880E["origin"][0],var_01[1] + param_00[var_02].var_880E["origin"][1],var_01[2] + param_00[var_02].var_880E["origin"][2]);
|
|
}
|
|
|
|
return (var_01[0] / param_00.size,var_01[1] / param_00.size,var_01[2] / param_00.size);
|
|
}
|
|
|
|
//Function Number: 52
|
|
func_2F41()
|
|
{
|
|
self endon("death");
|
|
for(;;)
|
|
{
|
|
func_2A4A();
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 53
|
|
rotation_is_occuring()
|
|
{
|
|
if(level.selectedrotate_roll != 0)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(level.selectedrotate_pitch != 0)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return level.selectedrotate_yaw != 0;
|
|
}
|
|
|
|
//Function Number: 54
|
|
func_619B(param_00,param_01,param_02)
|
|
{
|
|
for(var_03 = 0;var_03 < level.var_658.options.size;var_03++)
|
|
{
|
|
var_04 = level.var_658.options[var_03];
|
|
var_05 = var_04["name"];
|
|
if(!isdefined(param_00.var_880E[var_05]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!common_scripts\_createfxmenu::func_50AC(var_04["mask"],param_00.var_880E["type"]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!level.mp_createfx)
|
|
{
|
|
if(common_scripts\_createfxmenu::func_50AC("fx",param_00.var_880E["type"]) && var_05 == "fxid")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(param_00.var_880E["type"] == "exploder" && var_05 == "exploder")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_06 = param_00.var_880E["type"] + "/" + var_05;
|
|
if(isdefined(level.var_658.defaults[var_06]) && level.var_658.defaults[var_06] == param_00.var_880E[var_05])
|
|
{
|
|
continue;
|
|
}
|
|
}
|
|
|
|
if(var_04["type"] == "string")
|
|
{
|
|
var_07 = param_00.var_880E[var_05] + "";
|
|
if(var_07 == "nil")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
cfxprintln(param_01 + "ent.v[ \" + var_05 + "\" ] = \" + param_00.var_880E[var_05] + "\";");
|
|
continue;
|
|
}
|
|
|
|
cfxprintln(param_01 + "ent.v[ \" + var_05 + "\" ] = " + param_00.var_880E[var_05] + ";");
|
|
}
|
|
}
|
|
|
|
//Function Number: 55
|
|
entity_highlight_disable()
|
|
{
|
|
self notify("highlight change");
|
|
self endon("highlight change");
|
|
for(;;)
|
|
{
|
|
self.textalpha = self.textalpha * 0.85;
|
|
self.textalpha = self.textalpha - 0.05;
|
|
if(self.textalpha < 0)
|
|
{
|
|
break;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
|
|
self.textalpha = 0;
|
|
}
|
|
|
|
//Function Number: 56
|
|
entity_highlight_enable()
|
|
{
|
|
self notify("highlight change");
|
|
self endon("highlight change");
|
|
for(;;)
|
|
{
|
|
self.textalpha = self.textalpha + 0.05;
|
|
self.textalpha = self.textalpha * 1.25;
|
|
if(self.textalpha > 1)
|
|
{
|
|
break;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
|
|
self.textalpha = 1;
|
|
}
|
|
|
|
//Function Number: 57
|
|
clear_settable_fx()
|
|
{
|
|
level.createfx_inputlocked = 0;
|
|
level.var_658.selected_fx_option_index = undefined;
|
|
func_65E5();
|
|
}
|
|
|
|
//Function Number: 58
|
|
func_65E5()
|
|
{
|
|
for(var_00 = 0;var_00 < level.var_658.hudelem_count;var_00++)
|
|
{
|
|
level.var_658.hudelems[var_00][0].color = (1,1,1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 59
|
|
func_814C(param_00,param_01)
|
|
{
|
|
if(isdefined(level.var_658.selected_fx[param_00]))
|
|
{
|
|
deselect_entity(param_00,param_01);
|
|
}
|
|
|
|
func_6D6C(param_00,param_01);
|
|
}
|
|
|
|
//Function Number: 60
|
|
func_6D6C(param_00,param_01)
|
|
{
|
|
if(isdefined(level.var_658.selected_fx[param_00]))
|
|
{
|
|
}
|
|
|
|
clear_settable_fx();
|
|
level notify("new_ent_selection");
|
|
param_01 thread entity_highlight_enable();
|
|
level.var_658.selected_fx[param_00] = 1;
|
|
level.var_658.selected_fx_ents[level.var_658.selected_fx_ents.size] = param_01;
|
|
}
|
|
|
|
//Function Number: 61
|
|
ent_is_highlighted(param_00)
|
|
{
|
|
if(!isdefined(level.fx_highlightedent))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return param_00 == level.fx_highlightedent;
|
|
}
|
|
|
|
//Function Number: 62
|
|
deselect_entity(param_00,param_01)
|
|
{
|
|
if(!isdefined(level.var_658.selected_fx[param_00]))
|
|
{
|
|
}
|
|
|
|
clear_settable_fx();
|
|
level notify("new_ent_selection");
|
|
level.var_658.selected_fx[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_658.selected_fx_ents.size;var_03++)
|
|
{
|
|
if(level.var_658.selected_fx_ents[var_03] != param_01)
|
|
{
|
|
var_02[var_02.size] = level.var_658.selected_fx_ents[var_03];
|
|
}
|
|
}
|
|
|
|
level.var_658.selected_fx_ents = var_02;
|
|
}
|
|
|
|
//Function Number: 63
|
|
index_is_selected(param_00)
|
|
{
|
|
return isdefined(level.var_658.selected_fx[param_00]);
|
|
}
|
|
|
|
//Function Number: 64
|
|
func_2F52(param_00)
|
|
{
|
|
for(var_01 = 0;var_01 < level.var_658.selected_fx_ents.size;var_01++)
|
|
{
|
|
if(level.var_658.selected_fx_ents[var_01] == param_00)
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 65
|
|
clear_entity_selection()
|
|
{
|
|
for(var_00 = 0;var_00 < level.var_658.selected_fx_ents.size;var_00++)
|
|
{
|
|
if(!ent_is_highlighted(level.var_658.selected_fx_ents[var_00]))
|
|
{
|
|
level.var_658.selected_fx_ents[var_00] thread entity_highlight_disable();
|
|
}
|
|
}
|
|
|
|
level.var_658.selected_fx = [];
|
|
level.var_658.selected_fx_ents = [];
|
|
}
|
|
|
|
//Function Number: 66
|
|
func_2A4A()
|
|
{
|
|
}
|
|
|
|
//Function Number: 67
|
|
func_2A54()
|
|
{
|
|
}
|
|
|
|
//Function Number: 68
|
|
createfx_centerprint(param_00)
|
|
{
|
|
thread createfx_centerprint_thread(param_00);
|
|
}
|
|
|
|
//Function Number: 69
|
|
createfx_centerprint_thread(param_00)
|
|
{
|
|
level notify("new_createfx_centerprint");
|
|
level endon("new_createfx_centerprint");
|
|
for(var_01 = 0;var_01 < 5;var_01++)
|
|
{
|
|
}
|
|
|
|
wait(4.5);
|
|
for(var_01 = 0;var_01 < 5;var_01++)
|
|
{
|
|
}
|
|
}
|
|
|
|
//Function Number: 70
|
|
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 = level.var_658.rate;
|
|
if(func_18D4("kp_uparrow","DPAD_UP"))
|
|
{
|
|
if(level.selectedmove_forward < 0)
|
|
{
|
|
level.selectedmove_forward = 0;
|
|
}
|
|
|
|
level.selectedmove_forward = level.selectedmove_forward + var_06;
|
|
}
|
|
else if(func_18D4("kp_downarrow","DPAD_DOWN"))
|
|
{
|
|
if(level.selectedmove_forward > 0)
|
|
{
|
|
level.selectedmove_forward = 0;
|
|
}
|
|
|
|
level.selectedmove_forward = level.selectedmove_forward - var_06;
|
|
}
|
|
else
|
|
{
|
|
level.selectedmove_forward = 0;
|
|
}
|
|
|
|
if(func_18D4("kp_rightarrow","DPAD_RIGHT"))
|
|
{
|
|
if(level.selectedmove_right < 0)
|
|
{
|
|
level.selectedmove_right = 0;
|
|
}
|
|
|
|
level.selectedmove_right = level.selectedmove_right + var_06;
|
|
}
|
|
else if(func_18D4("kp_leftarrow","DPAD_LEFT"))
|
|
{
|
|
if(level.selectedmove_right > 0)
|
|
{
|
|
level.selectedmove_right = 0;
|
|
}
|
|
|
|
level.selectedmove_right = level.selectedmove_right - var_06;
|
|
}
|
|
else
|
|
{
|
|
level.selectedmove_right = 0;
|
|
}
|
|
|
|
if(func_18D4("BUTTON_Y"))
|
|
{
|
|
if(level.selectedmove_up < 0)
|
|
{
|
|
level.selectedmove_up = 0;
|
|
}
|
|
|
|
level.selectedmove_up = level.selectedmove_up + var_06;
|
|
}
|
|
else if(func_18D4("BUTTON_B"))
|
|
{
|
|
if(level.selectedmove_up > 0)
|
|
{
|
|
level.selectedmove_up = 0;
|
|
}
|
|
|
|
level.selectedmove_up = level.selectedmove_up - var_06;
|
|
}
|
|
else
|
|
{
|
|
level.selectedmove_up = 0;
|
|
}
|
|
|
|
var_07 = (0,0,0);
|
|
var_07 = var_07 + var_03 * level.selectedmove_forward;
|
|
var_07 = var_07 + var_02 * level.selectedmove_right;
|
|
var_07 = var_07 + var_04 * level.selectedmove_up;
|
|
return var_07;
|
|
}
|
|
|
|
//Function Number: 71
|
|
func_6E30()
|
|
{
|
|
var_00 = level.var_658.rate;
|
|
if(func_18D4("kp_uparrow","DPAD_UP"))
|
|
{
|
|
if(level.selectedrotate_pitch < 0)
|
|
{
|
|
level.selectedrotate_pitch = 0;
|
|
}
|
|
|
|
level.selectedrotate_pitch = level.selectedrotate_pitch + var_00;
|
|
}
|
|
else if(func_18D4("kp_downarrow","DPAD_DOWN"))
|
|
{
|
|
if(level.selectedrotate_pitch > 0)
|
|
{
|
|
level.selectedrotate_pitch = 0;
|
|
}
|
|
|
|
level.selectedrotate_pitch = level.selectedrotate_pitch - var_00;
|
|
}
|
|
else
|
|
{
|
|
level.selectedrotate_pitch = 0;
|
|
}
|
|
|
|
if(func_18D4("kp_leftarrow","DPAD_LEFT"))
|
|
{
|
|
if(level.selectedrotate_yaw < 0)
|
|
{
|
|
level.selectedrotate_yaw = 0;
|
|
}
|
|
|
|
level.selectedrotate_yaw = level.selectedrotate_yaw + var_00;
|
|
}
|
|
else if(func_18D4("kp_rightarrow","DPAD_RIGHT"))
|
|
{
|
|
if(level.selectedrotate_yaw > 0)
|
|
{
|
|
level.selectedrotate_yaw = 0;
|
|
}
|
|
|
|
level.selectedrotate_yaw = level.selectedrotate_yaw - var_00;
|
|
}
|
|
else
|
|
{
|
|
level.selectedrotate_yaw = 0;
|
|
}
|
|
|
|
if(func_18D4("BUTTON_Y"))
|
|
{
|
|
if(level.selectedrotate_roll < 0)
|
|
{
|
|
level.selectedrotate_roll = 0;
|
|
}
|
|
|
|
level.selectedrotate_roll = level.selectedrotate_roll + var_00;
|
|
}
|
|
|
|
if(func_18D4("BUTTON_B"))
|
|
{
|
|
if(level.selectedrotate_roll > 0)
|
|
{
|
|
level.selectedrotate_roll = 0;
|
|
}
|
|
|
|
level.selectedrotate_roll = level.selectedrotate_roll - var_00;
|
|
}
|
|
|
|
level.selectedrotate_roll = 0;
|
|
}
|
|
|
|
//Function Number: 72
|
|
func_86A9()
|
|
{
|
|
var_00 = 0;
|
|
foreach(var_02 in level.var_658.selected_fx_ents)
|
|
{
|
|
if(var_02.var_880E["type"] == "reactive_fx")
|
|
{
|
|
var_00 = 1;
|
|
}
|
|
|
|
var_02 [[ level.func_updatefx ]]();
|
|
}
|
|
|
|
if(var_00)
|
|
{
|
|
refresh_reactive_fx_ents();
|
|
}
|
|
}
|
|
|
|
//Function Number: 73
|
|
func_3E6A(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00 = "painter_mp";
|
|
}
|
|
|
|
precachemenu(param_00);
|
|
wait(0.05);
|
|
if(param_00 == "painter_mp")
|
|
{
|
|
}
|
|
|
|
level.player openpopupmenu(param_00);
|
|
level.player closepopupmenu(param_00);
|
|
}
|
|
|
|
//Function Number: 74
|
|
func_7C2A()
|
|
{
|
|
if(isdefined(self.looper))
|
|
{
|
|
self.looper delete();
|
|
}
|
|
|
|
stop_loopsound();
|
|
}
|
|
|
|
//Function Number: 75
|
|
stop_loopsound()
|
|
{
|
|
self notify("stop_loop");
|
|
}
|
|
|
|
//Function Number: 76
|
|
func_get_level_fx()
|
|
{
|
|
if(!isdefined(level._effect_keys))
|
|
{
|
|
var_00 = getarraykeys(level._effect);
|
|
}
|
|
else
|
|
{
|
|
var_00 = getarraykeys(level._effect);
|
|
if(var_00.size == level._effect_keys.size)
|
|
{
|
|
return level._effect_keys;
|
|
}
|
|
}
|
|
|
|
var_00 = common_scripts\utility::alphabetize(var_00);
|
|
level._effect_keys = var_00;
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 77
|
|
func_6641()
|
|
{
|
|
func_7C2A();
|
|
func_6EE6();
|
|
switch(self.var_880E["type"])
|
|
{
|
|
case "loopfx":
|
|
common_scripts\_fx::create_looper();
|
|
break;
|
|
|
|
case "oneshotfx":
|
|
common_scripts\_fx::func_20BB();
|
|
break;
|
|
|
|
case "soundfx":
|
|
common_scripts\_fx::create_loopsound();
|
|
break;
|
|
|
|
case "soundfx_interval":
|
|
common_scripts\_fx::func_2094();
|
|
break;
|
|
}
|
|
}
|
|
|
|
//Function Number: 78
|
|
refresh_reactive_fx_ents()
|
|
{
|
|
level._fx.reactive_fx_ents = undefined;
|
|
foreach(var_01 in level.createfxent)
|
|
{
|
|
if(var_01.var_880E["type"] == "reactive_fx")
|
|
{
|
|
var_01 func_6EE6();
|
|
var_01 common_scripts\_fx::add_reactive_fx();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 79
|
|
func_61C5()
|
|
{
|
|
if(level.fx_rotating)
|
|
{
|
|
}
|
|
|
|
func_6E30();
|
|
if(!rotation_is_occuring())
|
|
{
|
|
}
|
|
|
|
level.fx_rotating = 1;
|
|
if(level.var_658.selected_fx_ents.size > 1)
|
|
{
|
|
var_00 = func_37FD(level.var_658.selected_fx_ents);
|
|
var_01 = spawn("script_origin",var_00);
|
|
var_01.var_880E["angles"] = level.var_658.selected_fx_ents[0].var_880E["angles"];
|
|
var_01.var_880E["origin"] = var_00;
|
|
var_02 = [];
|
|
for(var_03 = 0;var_03 < level.var_658.selected_fx_ents.size;var_03++)
|
|
{
|
|
var_02[var_03] = spawn("script_origin",level.var_658.selected_fx_ents[var_03].var_880E["origin"]);
|
|
var_02[var_03].angles = level.var_658.selected_fx_ents[var_03].var_880E["angles"];
|
|
var_02[var_03] linkto(var_01);
|
|
}
|
|
|
|
func_686C(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_658.selected_fx_ents.size == 1)
|
|
{
|
|
var_04 = level.var_658.selected_fx_ents[0];
|
|
var_02 = spawn("script_origin",(0,0,0));
|
|
var_02.angles = var_04.var_880E["angles"];
|
|
if(level.selectedrotate_pitch != 0)
|
|
{
|
|
var_02 addpitch(level.selectedrotate_pitch);
|
|
}
|
|
else if(level.selectedrotate_yaw != 0)
|
|
{
|
|
var_02 addyaw(level.selectedrotate_yaw);
|
|
}
|
|
else
|
|
{
|
|
var_02 addroll(level.selectedrotate_roll);
|
|
}
|
|
|
|
var_04.var_880E["angles"] = var_02.angles;
|
|
var_02 delete();
|
|
wait(0.05);
|
|
}
|
|
|
|
level.fx_rotating = 0;
|
|
}
|
|
|
|
//Function Number: 80
|
|
spawn_grenade()
|
|
{
|
|
playfx(level.var_658.grenade.fx,level.createfxcursor["position"]);
|
|
level.var_658.grenade playsound(level.var_658.grenade.sound);
|
|
radiusdamage(level.createfxcursor["position"],level.var_658.grenade.radius,50,5,undefined,"MOD_EXPLOSIVE");
|
|
level notify("code_damageradius",undefined,level.var_658.grenade.radius,level.createfxcursor["position"]);
|
|
}
|
|
|
|
//Function Number: 81
|
|
func_74E6()
|
|
{
|
|
func_1D10();
|
|
func_6EEA("Help:");
|
|
func_6EEA("Insert Insert entity");
|
|
func_6EEA("L Drop selected entities to the ground");
|
|
func_6EEA("A Add option to the selected entities");
|
|
func_6EEA("P Reset the rotation of the selected entities");
|
|
func_6EEA("V Copy the angles from the most recently selected fx onto all selected fx.");
|
|
func_6EEA("Delete Kill the selected entities");
|
|
func_6EEA("ESCAPE Cancel out of option-modify-mode, must have console open");
|
|
func_6EEA("Ctrl-C Copy");
|
|
func_6EEA("Ctrl-V Paste");
|
|
func_6EEA("F2 Toggle createfx dot and text drawing");
|
|
func_6EEA("F5 SAVES your work");
|
|
func_6EEA("Dpad Move selected entitise on X/Y or rotate pitch/yaw");
|
|
func_6EEA("A button Toggle the selection of the current entity");
|
|
func_6EEA("X button Toggle entity rotation mode");
|
|
func_6EEA("Y button Move selected entites up or rotate roll");
|
|
func_6EEA("B button Move selected entites down or rotate roll");
|
|
func_6EEA("R Shoulder Move selected entities to the cursor");
|
|
func_6EEA("L Shoulder Hold to select multiple entites");
|
|
func_6EEA("L JoyClick Copy");
|
|
func_6EEA("R JoyClick Paste");
|
|
func_6EEA("N UFO");
|
|
func_6EEA("T Toggle Timescale FAST");
|
|
func_6EEA("Y Toggle Timescale SLOW");
|
|
func_6EEA("[ Toggle FX Visibility");
|
|
func_6EEA("] Toggle ShowTris");
|
|
func_6EEA("F11 Toggle FX Profile");
|
|
}
|
|
|
|
//Function Number: 82
|
|
func_377D(param_00)
|
|
{
|
|
}
|
|
|
|
//Function Number: 83
|
|
write_log(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = "\t";
|
|
cfxprintlnstart();
|
|
cfxprintln("//_createfx generated. Do not touch!!");
|
|
cfxprintln("#include common_scripts\\utility;");
|
|
cfxprintln("#include common_scripts\\_createfx;\n");
|
|
cfxprintln("");
|
|
cfxprintln("main()");
|
|
cfxprintln("{");
|
|
cfxprintln(var_04 + "// CreateFX " + param_01 + " entities placed: " + param_00.size);
|
|
foreach(var_06 in param_00)
|
|
{
|
|
if(level.createfx_loopcounter > 16)
|
|
{
|
|
level.createfx_loopcounter = 0;
|
|
wait(0.1);
|
|
}
|
|
|
|
level.createfx_loopcounter++;
|
|
if(getdvarint("scr_map_exploder_dump"))
|
|
{
|
|
if(!isdefined(var_06.model))
|
|
{
|
|
continue;
|
|
}
|
|
}
|
|
else if(isdefined(var_06.model))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_06.var_880E["type"] == "loopfx")
|
|
{
|
|
cfxprintln(var_04 + "ent = createLoopEffect( \" + var_06.var_880E["fxid"] + "\" );");
|
|
}
|
|
|
|
if(var_06.var_880E["type"] == "oneshotfx")
|
|
{
|
|
cfxprintln(var_04 + "ent = createOneshotEffect( \" + var_06.var_880E["fxid"] + "\" );");
|
|
}
|
|
|
|
if(var_06.var_880E["type"] == "exploder")
|
|
{
|
|
if(isdefined(var_06.var_880E["exploder"]) && !level.mp_createfx)
|
|
{
|
|
cfxprintln(var_04 + "ent = createExploderEx( \" + var_06.var_880E["fxid"] + "\", \" + var_06.var_880E["exploder"] + "\" );");
|
|
}
|
|
else
|
|
{
|
|
cfxprintln(var_04 + "ent = createExploder( \" + var_06.var_880E["fxid"] + "\" );");
|
|
}
|
|
}
|
|
|
|
if(var_06.var_880E["type"] == "soundfx")
|
|
{
|
|
cfxprintln(var_04 + "ent = createLoopSound();");
|
|
}
|
|
|
|
if(var_06.var_880E["type"] == "soundfx_interval")
|
|
{
|
|
cfxprintln(var_04 + "ent = createIntervalSound();");
|
|
}
|
|
|
|
if(var_06.var_880E["type"] == "reactive_fx")
|
|
{
|
|
cfxprintln(var_04 + "ent = createReactiveEnt();");
|
|
}
|
|
|
|
cfxprintln(var_04 + "ent set_origin_and_angles( " + var_06.var_880E["origin"] + ", " + var_06.var_880E["angles"] + " );");
|
|
func_619B(var_06,var_04,param_02);
|
|
cfxprintln("");
|
|
}
|
|
|
|
cfxprintln("}");
|
|
cfxprintln(" ");
|
|
cfxprintlnend(param_02,param_03,param_01);
|
|
}
|
|
|
|
//Function Number: 84
|
|
func_20E3()
|
|
{
|
|
var_00 = 0.1;
|
|
foreach(var_02 in level.createfxent)
|
|
{
|
|
var_03 = [];
|
|
var_04 = [];
|
|
for(var_05 = 0;var_05 < 3;var_05++)
|
|
{
|
|
var_03[var_05] = var_02.var_880E["origin"][var_05];
|
|
var_04[var_05] = var_02.var_880E["angles"][var_05];
|
|
if(var_03[var_05] < var_00 && var_03[var_05] > var_00 * -1)
|
|
{
|
|
var_03[var_05] = 0;
|
|
}
|
|
|
|
if(var_04[var_05] < var_00 && var_04[var_05] > var_00 * -1)
|
|
{
|
|
var_04[var_05] = 0;
|
|
}
|
|
}
|
|
|
|
var_02.var_880E["origin"] = (var_03[0],var_03[1],var_03[2]);
|
|
var_02.var_880E["angles"] = (var_04[0],var_04[1],var_04[2]);
|
|
}
|
|
}
|
|
|
|
//Function Number: 85
|
|
func_382A(param_00)
|
|
{
|
|
var_01 = func_382B(param_00);
|
|
var_02 = [];
|
|
foreach(var_05, var_04 in var_01)
|
|
{
|
|
var_02[var_05] = [];
|
|
}
|
|
|
|
foreach(var_07 in level.createfxent)
|
|
{
|
|
var_08 = 0;
|
|
foreach(var_05, param_00 in var_01)
|
|
{
|
|
if(var_07.var_880E["type"] != param_00)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_08 = 1;
|
|
var_02[var_05][var_02[var_05].size] = var_07;
|
|
break;
|
|
}
|
|
}
|
|
|
|
var_0B = [];
|
|
for(var_0C = 0;var_0C < var_01.size;var_0C++)
|
|
{
|
|
foreach(var_07 in var_02[var_0C])
|
|
{
|
|
var_0B[var_0B.size] = var_07;
|
|
}
|
|
}
|
|
|
|
return var_0B;
|
|
}
|
|
|
|
//Function Number: 86
|
|
func_382B(param_00)
|
|
{
|
|
var_01 = [];
|
|
if(param_00 == "fx")
|
|
{
|
|
var_01[0] = "loopfx";
|
|
var_01[1] = "oneshotfx";
|
|
var_01[2] = "exploder";
|
|
}
|
|
else
|
|
{
|
|
var_01[0] = "soundfx";
|
|
var_01[1] = "soundfx_interval";
|
|
var_01[2] = "reactive_fx";
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 87
|
|
func_47D3(param_00,param_01)
|
|
{
|
|
var_02 = func_382B(param_01);
|
|
foreach(var_04 in var_02)
|
|
{
|
|
if(param_00.var_880E["type"] == var_04)
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 88
|
|
func_20EA()
|
|
{
|
|
var_00 = [];
|
|
var_00[0] = "soundfx";
|
|
var_00[1] = "loopfx";
|
|
var_00[2] = "oneshotfx";
|
|
var_00[3] = "exploder";
|
|
var_00[4] = "soundfx_interval";
|
|
var_00[5] = "reactive_fx";
|
|
var_01 = [];
|
|
foreach(var_04, var_03 in var_00)
|
|
{
|
|
var_01[var_04] = [];
|
|
}
|
|
|
|
foreach(var_06 in level.createfxent)
|
|
{
|
|
var_07 = 0;
|
|
foreach(var_04, var_09 in var_00)
|
|
{
|
|
if(var_06.var_880E["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_00.size;var_0C++)
|
|
{
|
|
foreach(var_06 in var_01[var_0C])
|
|
{
|
|
var_0B[var_0B.size] = var_06;
|
|
}
|
|
}
|
|
|
|
level.createfxent = var_0B;
|
|
}
|
|
|
|
//Function Number: 89
|
|
cfxprintlnstart()
|
|
{
|
|
common_scripts\utility::fileprint_launcher_start_file();
|
|
}
|
|
|
|
//Function Number: 90
|
|
cfxprintln(param_00)
|
|
{
|
|
common_scripts\utility::fileprint_launcher(param_00);
|
|
}
|
|
|
|
//Function Number: 91
|
|
cfxprintlnend(param_00,param_01,param_02)
|
|
{
|
|
var_03 = 1;
|
|
if(param_01 != "" || param_00)
|
|
{
|
|
var_03 = 0;
|
|
}
|
|
|
|
if(common_scripts\utility::issp())
|
|
{
|
|
var_04 = common_scripts\utility::func_39CA() + param_01 + "_" + param_02 + ".gsc";
|
|
if(param_00)
|
|
{
|
|
var_04 = "backup_" + param_02 + ".gsc";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_04 = common_scripts\utility::func_39CA() + param_02 + "_" + var_03 + ".gsc";
|
|
if(param_00)
|
|
{
|
|
var_04 = "backup.gsc";
|
|
}
|
|
}
|
|
|
|
common_scripts\utility::func_3224("/share/raw/maps/createfx/" + var_04,var_03);
|
|
}
|
|
|
|
//Function Number: 92
|
|
func_61BE()
|
|
{
|
|
add_button("mouse1");
|
|
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("shift");
|
|
add_kb_button("ctrl");
|
|
add_kb_button("escape");
|
|
add_kb_button("F1");
|
|
add_kb_button("F5");
|
|
add_kb_button("F4");
|
|
add_kb_button("F2");
|
|
add_kb_button("a");
|
|
add_kb_button("g");
|
|
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("s");
|
|
add_kb_button("u");
|
|
add_kb_button("v");
|
|
add_kb_button("x");
|
|
add_kb_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("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");
|
|
add_kb_button("-");
|
|
add_kb_button("=");
|
|
add_kb_button(",");
|
|
add_kb_button(".");
|
|
add_kb_button("[");
|
|
add_kb_button("]");
|
|
add_kb_button("leftarrow");
|
|
add_kb_button("rightarrow");
|
|
add_kb_button("uparrow");
|
|
add_kb_button("downarrow");
|
|
}
|
|
|
|
//Function Number: 93
|
|
func_4ED5(param_00)
|
|
{
|
|
if(isdefined(level.var_658.lockedlist[param_00]))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return func_4A71(param_00);
|
|
}
|
|
|
|
//Function Number: 94
|
|
func_4A71(param_00)
|
|
{
|
|
return level.createfx_inputlocked && isdefined(level.button_is_kb[param_00]);
|
|
}
|
|
|
|
//Function Number: 95
|
|
add_button(param_00)
|
|
{
|
|
if(func_4ED5(param_00))
|
|
{
|
|
}
|
|
|
|
if(!isdefined(level.buttonisheld[param_00]))
|
|
{
|
|
if(level.player buttonpressed(param_00))
|
|
{
|
|
level.buttonisheld[param_00] = 1;
|
|
level.buttonclick[param_00] = 1;
|
|
}
|
|
}
|
|
|
|
if(!level.player buttonpressed(param_00))
|
|
{
|
|
level.buttonisheld[param_00] = undefined;
|
|
}
|
|
}
|
|
|
|
//Function Number: 96
|
|
add_kb_button(param_00)
|
|
{
|
|
level.button_is_kb[param_00] = 1;
|
|
add_button(param_00);
|
|
}
|
|
|
|
//Function Number: 97
|
|
func_18D4(param_00,param_01)
|
|
{
|
|
return buttonpressed_internal(param_00) || buttonpressed_internal(param_01);
|
|
}
|
|
|
|
//Function Number: 98
|
|
buttonpressed_internal(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(func_4A71(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return level.player buttonpressed(param_00);
|
|
}
|
|
|
|
//Function Number: 99
|
|
button_is_held(param_00,param_01)
|
|
{
|
|
if(isdefined(param_01))
|
|
{
|
|
if(isdefined(level.buttonisheld[param_01]))
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return isdefined(level.buttonisheld[param_00]);
|
|
}
|
|
|
|
//Function Number: 100
|
|
button_is_clicked(param_00,param_01)
|
|
{
|
|
if(isdefined(param_01))
|
|
{
|
|
if(isdefined(level.buttonclick[param_01]))
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return isdefined(level.buttonclick[param_00]);
|
|
}
|
|
|
|
//Function Number: 101
|
|
func_455D()
|
|
{
|
|
level.var_658.hudelems = [];
|
|
level.var_658.hudelem_count = 30;
|
|
var_00 = [];
|
|
var_01 = [];
|
|
var_00[0] = 0;
|
|
var_01[0] = 0;
|
|
var_00[1] = 1;
|
|
var_01[1] = 1;
|
|
var_00[2] = -2;
|
|
var_01[2] = 1;
|
|
var_00[3] = 1;
|
|
var_01[3] = -1;
|
|
var_00[4] = -2;
|
|
var_01[4] = -1;
|
|
level.var_1D57 = newhudelem();
|
|
level.var_1D57.alpha = 0;
|
|
for(var_02 = 0;var_02 < level.var_658.hudelem_count;var_02++)
|
|
{
|
|
var_03 = [];
|
|
for(var_04 = 0;var_04 < 1;var_04++)
|
|
{
|
|
var_05 = newhudelem();
|
|
var_05.alignx = "left";
|
|
var_05.location = 0;
|
|
var_05.foreground = 1;
|
|
var_05.fontscale = 1.4;
|
|
var_05.sort = 20 - var_04;
|
|
var_05.alpha = 1;
|
|
var_05.x = 0 + var_00[var_04];
|
|
var_05.y = 60 + var_01[var_04] + var_02 * 15;
|
|
if(var_04 > 0)
|
|
{
|
|
var_05.color = (0,0,0);
|
|
}
|
|
|
|
var_03[var_03.size] = var_05;
|
|
}
|
|
|
|
level.var_658.hudelems[var_02] = var_03;
|
|
}
|
|
|
|
var_03 = [];
|
|
for(var_04 = 0;var_04 < 5;var_04++)
|
|
{
|
|
var_05 = newhudelem();
|
|
var_05.alignx = "center";
|
|
var_05.location = 0;
|
|
var_05.foreground = 1;
|
|
var_05.fontscale = 1.4;
|
|
var_05.sort = 20 - var_04;
|
|
var_05.alpha = 1;
|
|
var_05.x = 320 + var_00[var_04];
|
|
var_05.y = 80 + var_01[var_04];
|
|
if(var_04 > 0)
|
|
{
|
|
var_05.color = (0,0,0);
|
|
}
|
|
|
|
var_03[var_03.size] = var_05;
|
|
}
|
|
|
|
level.createfx_centerprint = var_03;
|
|
}
|
|
|
|
//Function Number: 102
|
|
func_4532()
|
|
{
|
|
var_00 = newhudelem();
|
|
var_00.location = 0;
|
|
var_00.alignx = "center";
|
|
var_00.aligny = "middle";
|
|
var_00.foreground = 1;
|
|
var_00.fontscale = 2;
|
|
var_00.sort = 20;
|
|
var_00.alpha = 1;
|
|
var_00.x = 320;
|
|
var_00.y = 233;
|
|
}
|
|
|
|
//Function Number: 103
|
|
func_1D10()
|
|
{
|
|
level.var_1D57 clearalltextafterhudelem();
|
|
for(var_00 = 0;var_00 < level.var_658.hudelem_count;var_00++)
|
|
{
|
|
for(var_01 = 0;var_01 < 1;var_01++)
|
|
{
|
|
}
|
|
}
|
|
|
|
level.fxhudelements = 0;
|
|
}
|
|
|
|
//Function Number: 104
|
|
func_6EEA(param_00)
|
|
{
|
|
for(var_01 = 0;var_01 < 1;var_01++)
|
|
{
|
|
}
|
|
|
|
level.fxhudelements++;
|
|
}
|
|
|
|
//Function Number: 105
|
|
func_45C0()
|
|
{
|
|
if(!isdefined(level.var_658.tool_hudelems))
|
|
{
|
|
level.var_658.tool_hudelems = [];
|
|
}
|
|
|
|
if(!isdefined(level.var_658.tool_hud_visible))
|
|
{
|
|
level.var_658.tool_hud_visible = 1;
|
|
}
|
|
|
|
if(!isdefined(level.var_658.tool_hud))
|
|
{
|
|
level.var_658.tool_hud = "";
|
|
}
|
|
}
|
|
|
|
//Function Number: 106
|
|
func_55C1(param_00)
|
|
{
|
|
foreach(var_03, var_02 in level.var_658.tool_hudelems)
|
|
{
|
|
if(isdefined(var_02.value_hudelem))
|
|
{
|
|
var_02.value_hudelem destroy();
|
|
}
|
|
|
|
var_02 destroy();
|
|
level.var_658.tool_hudelems[var_03] = undefined;
|
|
}
|
|
|
|
level.var_658.tool_hud = param_00;
|
|
}
|
|
|
|
//Function Number: 107
|
|
current_mode_hud(param_00)
|
|
{
|
|
return level.var_658.tool_hud == param_00;
|
|
}
|
|
|
|
//Function Number: 108
|
|
clear_tool_hud()
|
|
{
|
|
func_55C1("");
|
|
}
|
|
|
|
//Function Number: 109
|
|
func_55C2(param_00)
|
|
{
|
|
var_01 = newhudelem();
|
|
var_01.alignx = "left";
|
|
var_01.location = 0;
|
|
var_01.foreground = 1;
|
|
var_01.fontscale = 1.2;
|
|
var_01.alpha = 1;
|
|
var_01.x = 0;
|
|
var_01.y = 320 + param_00 * 15;
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 110
|
|
get_tool_hudelem(param_00)
|
|
{
|
|
if(isdefined(level.var_658.tool_hudelems[param_00]))
|
|
{
|
|
return level.var_658.tool_hudelems[param_00];
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
//Function Number: 111
|
|
func_6FAD(param_00,param_01)
|
|
{
|
|
var_02 = get_tool_hudelem(param_00);
|
|
if(!isdefined(var_02))
|
|
{
|
|
var_02 = func_55C2(level.var_658.tool_hudelems.size);
|
|
level.var_658.tool_hudelems[param_00] = var_02;
|
|
var_02.text = param_00;
|
|
}
|
|
|
|
if(isdefined(param_01))
|
|
{
|
|
if(isdefined(var_02.value_hudelem))
|
|
{
|
|
var_03 = var_02.value_hudelem;
|
|
}
|
|
else
|
|
{
|
|
var_03 = func_55C2(level.var_658.tool_hudelems.size);
|
|
var_03.x = var_03.x + 80;
|
|
var_03.y = var_02.y;
|
|
var_02.value_hudelem = var_03;
|
|
}
|
|
|
|
if(isdefined(var_03.text) && var_03.text == param_01)
|
|
{
|
|
}
|
|
|
|
var_03.text = param_01;
|
|
}
|
|
}
|
|
|
|
//Function Number: 112
|
|
select_by_substring()
|
|
{
|
|
var_00 = getdvar("select_by_substring");
|
|
if(var_00 == "")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
setdvar("select_by_substring","");
|
|
var_01 = [];
|
|
foreach(var_04, var_03 in level.createfxent)
|
|
{
|
|
if(issubstr(var_03.var_880E["fxid"],var_00))
|
|
{
|
|
var_01[var_01.size] = var_04;
|
|
}
|
|
}
|
|
|
|
if(var_01.size == 0)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
func_260B();
|
|
func_6D6D(var_01);
|
|
foreach(var_06 in var_01)
|
|
{
|
|
var_03 = level.createfxent[var_06];
|
|
func_6D6C(var_06,var_03);
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 113
|
|
func_6D6D(param_00)
|
|
{
|
|
foreach(var_02 in param_00)
|
|
{
|
|
var_03 = level.createfxent[var_02];
|
|
func_6D6C(var_02,var_03);
|
|
}
|
|
}
|
|
|
|
//Function Number: 114
|
|
func_260B()
|
|
{
|
|
foreach(var_02, var_01 in level.var_658.selected_fx_ents)
|
|
{
|
|
deselect_entity(var_02,var_01);
|
|
}
|
|
} |