Files
IL-GSC/IW/PC/ALL/scripts/mp/_door.gsc
2023-10-27 03:49:01 -04:00

804 lines
15 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\_door.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 15
* Decompile Time: 804 ms
* Timestamp: 10/27/2023 12:15:11 AM
*******************************************************************/
//Function Number: 1
func_59F5(param_00)
{
var_01 = getentarray(param_00,"targetname");
foreach(var_03 in var_01)
{
if(isdefined(var_03.var_EE79))
{
var_03 func_32E7(var_03.var_EE79);
}
var_03 func_59E7();
}
foreach(var_03 in var_01)
{
var_03 thread func_59F7();
}
}
//Function Number: 2
func_59E7()
{
var_00 = self;
var_00.var_5A2B = [];
if(isdefined(var_00.var_EDE8))
{
var_00.var_5A17 = max(0.1,float(var_00.var_EDE8) / 1000);
}
var_01 = getentarray(var_00.target,"targetname");
foreach(var_03 in var_01)
{
if(issubstr(var_03.classname,"trigger"))
{
if(!isdefined(var_00.var_12720))
{
var_00.var_12720 = [];
}
if(isdefined(var_03.var_EE79))
{
var_03 func_1277D(var_03.var_EE79);
}
if(isdefined(var_03.var_EE01))
{
var_04 = getent(var_03.var_EE01,"script_linkname");
var_03 enablelinkto();
var_03 linkto(var_04);
}
var_00.var_12720[var_00.var_12720.size] = var_03;
continue;
}
if(var_03.classname == "script_brushmodel" || var_03.classname == "script_model")
{
if(isdefined(var_03.script_noteworthy) && issubstr(var_03.script_noteworthy,"light"))
{
if(issubstr(var_03.script_noteworthy,"light_on"))
{
if(!isdefined(var_00.var_ACCE))
{
var_00.var_ACCE = [];
}
var_03 hide();
var_00.var_ACCE[var_00.var_ACCE.size] = var_03;
}
else if(issubstr(var_03.script_noteworthy,"light_off"))
{
if(!isdefined(var_00.var_ACCC))
{
var_00.var_ACCC = [];
}
var_03 hide();
var_00.var_ACCC[var_00.var_ACCC.size] = var_03;
}
else
{
}
}
else if(var_03.var_2AF & 2)
{
if(!isdefined(var_00.var_19E5))
{
var_00.var_19E5 = [];
}
var_03 notsolid();
var_03 hide();
var_03 method_829D(0);
var_00.var_19E5[var_00.var_19E5.size] = var_03;
}
else
{
var_00.var_5A2B[var_00.var_5A2B.size] = var_03;
}
continue;
}
if(var_03.classname == "script_origin")
{
var_00.var_6666 = var_03;
}
}
if(!isdefined(var_00.var_6666) && var_00.var_5A2B.size)
{
var_00.var_6666 = sortbydistance(var_00.var_5A2B,var_00.origin)[0];
}
foreach(var_07 in var_00.var_5A2B)
{
var_07.var_D6A4 = var_07.origin;
var_07.var_D6AE = scripts\common\utility::getstruct(var_07.target,"targetname").origin;
var_07.var_5717 = distance(var_07.var_D6AE,var_07.var_D6A4);
var_07.origin = var_07.var_D6AE;
var_07.var_C001 = 0;
if(isdefined(var_07.var_EE79))
{
var_07 func_59BD(var_07.var_EE79);
}
}
}
//Function Number: 3
func_59F7()
{
var_00 = self;
var_00 func_59EC(2,1);
for(;;)
{
var_00.var_10E27 = undefined;
var_00.var_10E29 = undefined;
var_00 scripts\common\utility::waittill_any_3("door_state_done","door_state_interrupted");
if(isdefined(var_00.var_10E27) && var_00.var_10E27)
{
var_01 = var_00 func_59EE(var_00.var_10E26);
var_00 func_59EC(var_01,0);
continue;
}
if(isdefined(var_00.var_10E29) && var_00.var_10E29)
{
var_00 func_59EC(4,0);
continue;
}
}
}
//Function Number: 4
func_59EE(param_00)
{
var_01 = self;
var_02 = undefined;
if(param_00 == 0)
{
var_02 = 3;
}
else if(param_00 == 2)
{
var_02 = 1;
}
else if(param_00 == 1)
{
var_02 = 0;
}
else if(param_00 == 3)
{
var_02 = 2;
}
else if(param_00 == 4)
{
var_02 = var_01.var_10E2E;
}
else
{
}
return var_02;
}
//Function Number: 5
func_59F0(param_00)
{
var_01 = self;
var_01 endon("door_state_interrupted");
var_01.var_10E27 = undefined;
if(var_01.var_10E26 == 0 || var_01.var_10E26 == 2)
{
if(!param_00)
{
foreach(var_03 in var_01.var_5A2B)
{
if(isdefined(var_03.var_11041))
{
var_03 stoploopsound();
var_03 playsoundonmovingent(var_03.var_11041);
}
}
}
if(isdefined(var_01.var_ACCE))
{
foreach(var_06 in var_01.var_ACCE)
{
var_06 show();
}
}
foreach(var_03 in var_01.var_5A2B)
{
if(var_01.var_10E26 == 0)
{
if(isdefined(var_01.var_19E5))
{
foreach(var_0A in var_01.var_19E5)
{
var_0A show();
var_0A method_829D(1);
}
}
if(var_03.var_2AF & 1)
{
var_03 disconnectpaths();
}
}
else
{
if(isdefined(var_01.var_19E5))
{
foreach(var_0A in var_01.var_19E5)
{
var_0A hide();
var_0A method_829D(0);
}
}
if(var_03.var_2AF & 1)
{
if(isdefined(var_03.script_noteworthy) && var_03.script_noteworthy == "always_disconnect")
{
var_03 disconnectpaths();
}
else
{
var_03 connectpaths();
}
}
}
if(isdefined(var_03.script_noteworthy))
{
if(var_03.script_noteworthy == "clockwise_wheel" || var_03.script_noteworthy == "counterclockwise_wheel")
{
var_03 rotatevelocity((0,0,0),0.1);
}
}
if(var_03.var_C001)
{
var_03.var_12BE7 = undefined;
}
}
var_0F = scripts\common\utility::func_116D7(var_01.var_10E26 == 0,&"MP_DOOR_USE_OPEN",&"MP_DOOR_USE_CLOSE");
var_01 sethintstring(var_0F);
var_01 makeusable();
var_01 waittill("trigger");
if(isdefined(var_01.var_32E9))
{
var_01 playsound(var_01.var_32E9);
}
}
else if(var_01.var_10E26 == 1 || var_01.var_10E26 == 3)
{
if(isdefined(var_01.var_ACCC))
{
foreach(var_06 in var_01.var_ACCC)
{
var_06 show();
}
}
var_01 makeunusable();
if(var_01.var_10E26 == 1)
{
var_01 thread func_59EF();
foreach(var_03 in var_01.var_5A2B)
{
if(isdefined(var_03.script_noteworthy))
{
var_13 = scripts\common\utility::func_116D7(isdefined(var_01.var_5A17),var_01.var_5A17,3);
var_14 = scripts\common\utility::func_116D7(var_01.var_10E26 == 1,var_03.var_D6A4,var_03.var_D6AE);
var_15 = distance(var_03.origin,var_14);
var_16 = max(0.1,var_15 / var_03.var_5717 * var_13);
var_17 = max(var_16 * 0.25,0.05);
var_18 = 360 * var_15 / 94.2;
if(var_03.script_noteworthy == "clockwise_wheel")
{
var_03 rotatevelocity((0,0,-1 * var_18 / var_16),var_16,var_17,var_17);
}
else if(var_03.script_noteworthy == "counterclockwise_wheel")
{
var_03 rotatevelocity((0,0,var_18 / var_16),var_16,var_17,var_17);
}
}
}
}
else if(var_01.var_10E26 == 3)
{
if(isdefined(var_01.var_C607) && var_01.var_C607)
{
var_01 thread func_59EF();
}
foreach(var_03 in var_01.var_5A2B)
{
if(isdefined(var_03.script_noteworthy))
{
var_13 = scripts\common\utility::func_116D7(isdefined(var_01.var_5A17),var_01.var_5A17,3);
var_14 = scripts\common\utility::func_116D7(var_01.var_10E26 == 1,var_03.var_D6A4,var_03.var_D6AE);
var_15 = distance(var_03.origin,var_14);
var_16 = max(0.1,var_15 / var_03.var_5717 * var_13);
var_17 = max(var_16 * 0.25,0.05);
var_18 = 360 * var_15 / 94.2;
if(var_03.script_noteworthy == "clockwise_wheel")
{
var_03 rotatevelocity((0,0,var_18 / var_16),var_16,var_17,var_17);
}
else if(var_03.script_noteworthy == "counterclockwise_wheel")
{
var_03 rotatevelocity((0,0,-1 * var_18 / var_16),var_16,var_17,var_17);
}
}
}
}
wait(0.1);
var_01 childthread func_59F1("garage_door_start","garage_door_loop");
var_13 = scripts\common\utility::func_116D7(isdefined(var_01.var_5A17),var_01.var_5A17,3);
var_1C = undefined;
foreach(var_03 in var_01.var_5A2B)
{
var_14 = scripts\common\utility::func_116D7(var_01.var_10E26 == 1,var_03.var_D6A4,var_03.var_D6AE);
if(var_03.origin != var_14)
{
var_16 = max(0.1,distance(var_03.origin,var_14) / var_03.var_5717 * var_13);
var_17 = max(var_16 * 0.25,0.05);
var_03 moveto(var_14,var_16,var_17,var_17);
var_03 scripts\mp\_movers::func_C13B();
if(var_03.var_C001)
{
var_03.var_12BE7 = ::scripts\mp\_movers::func_12BEE;
}
if(!isdefined(var_1C) || var_16 > var_1C)
{
var_1C = var_16;
}
}
}
if(isdefined(var_1C))
{
wait(var_1C);
}
}
else if(var_01.var_10E26 == 4)
{
foreach(var_03 in var_01.var_5A2B)
{
var_03 moveto(var_03.origin,0.05,0,0);
var_03 scripts\mp\_movers::func_C13B();
if(var_03.var_C001)
{
var_03.var_12BE7 = undefined;
}
if(isdefined(var_03.script_noteworthy))
{
if(var_03.script_noteworthy == "clockwise_wheel" || var_03.script_noteworthy == "counterclockwise_wheel")
{
var_03 rotatevelocity((0,0,0),0.05);
}
}
}
if(isdefined(var_01.var_ACCC))
{
foreach(var_06 in var_01.var_ACCC)
{
var_06 show();
}
}
var_01.var_6666 stoploopsound();
foreach(var_03 in var_01.var_5A2B)
{
if(isdefined(var_03.var_9A88))
{
var_03 playsound(var_03.var_9A88);
}
}
wait(1);
}
else
{
}
var_01.var_10E27 = 1;
foreach(var_03 in var_01.var_5A2B)
{
var_03.var_10E27 = 1;
}
var_01 notify("door_state_done");
}
//Function Number: 6
func_59F1(param_00,param_01)
{
var_02 = self;
var_03 = 1;
var_04 = 1;
var_05 = 0;
if(var_02.var_10E26 == 3 || var_02.var_10E26 == 1)
{
foreach(var_07 in var_02.var_5A2B)
{
if(isdefined(var_07.var_10D2A))
{
var_07 playsoundonmovingent(var_07.var_10D2A);
var_05 = lookupsoundlength(var_07.var_10D2A) / 1000;
var_03 = 0;
}
}
if(var_03)
{
var_05 = lookupsoundlength(param_00) / 1000;
playsoundatpos(var_02.var_6666.origin,param_00);
}
}
wait(var_05 * 0.3);
if(var_02.var_10E26 == 3 || var_02.var_10E26 == 1)
{
foreach(var_07 in var_02.var_5A2B)
{
if(isdefined(var_07.var_B048))
{
if(var_07.var_B048 != "none")
{
var_07 playloopsound(var_07.var_B048);
}
var_04 = 0;
}
}
if(var_04)
{
var_02.var_6666 playloopsound(param_01);
}
}
}
//Function Number: 7
func_59EC(param_00,param_01)
{
var_02 = self;
if(isdefined(var_02.var_10E26))
{
func_59ED(var_02.var_10E26);
var_02.var_10E2E = var_02.var_10E26;
}
var_02.var_10E26 = param_00;
var_02 thread func_59F0(param_01);
}
//Function Number: 8
func_59ED(param_00)
{
var_01 = self;
if(param_00 == 0 || param_00 == 2)
{
if(isdefined(var_01.var_ACCE))
{
foreach(var_03 in var_01.var_ACCE)
{
var_03 hide();
}
return;
}
return;
}
if(var_03 == 1 || var_03 == 3)
{
if(isdefined(var_04.var_ACCC))
{
foreach(var_05 in var_04.var_ACCC)
{
var_05 hide();
}
}
var_03.var_6666 stoploopsound();
foreach(var_08 in var_03.var_5A2B)
{
if(isdefined(var_08.var_B048))
{
var_08 stoploopsound();
}
}
return;
}
if(var_02 == 4)
{
return;
}
}
//Function Number: 9
func_59EF()
{
var_00 = self;
var_00 endon("door_state_done");
var_01 = [];
foreach(var_03 in var_00.var_12720)
{
if(var_00.var_10E26 == 1)
{
if(isdefined(var_03.var_C0B1) && var_03.var_C0B1 == 1)
{
continue;
}
}
else if(var_00.var_10E26 == 3)
{
if(isdefined(var_03.var_C0B2) && var_03.var_C0B2 == 1)
{
continue;
}
}
var_01[var_01.size] = var_03;
}
if(var_01.size > 0)
{
var_05 = var_00 func_13739(var_01);
if(!isdefined(var_05.var_6BA7) || var_05.var_6BA7 == 0)
{
var_00.var_10E29 = 1;
var_00 notify("door_state_interrupted");
}
}
}
//Function Number: 10
func_13739(param_00)
{
var_01 = self;
foreach(var_03 in param_00)
{
var_01 thread func_E467(var_03);
}
var_01 waittill("interrupted");
return var_01.var_9A8E;
}
//Function Number: 11
func_E467(param_00)
{
var_01 = self;
var_01 endon("door_state_done");
var_01 endon("interrupted");
for(;;)
{
param_00 waittill("trigger",var_02);
if(isdefined(param_00.var_DA79) && param_00.var_DA79 == 1)
{
if(isplayer(var_02))
{
var_03 = var_02 getstance();
if(var_03 != "prone")
{
continue;
}
else
{
var_04 = vectornormalize(anglestoforward(var_02.angles));
var_05 = vectornormalize(param_00.origin - var_02.origin);
var_06 = vectordot(var_04,var_05);
if(var_06 > 0)
{
continue;
}
}
}
}
break;
}
var_01.var_9A8E = var_02;
var_01 notify("interrupted");
}
//Function Number: 12
func_32E7(param_00)
{
var_01 = self;
var_01.var_32E9 = undefined;
if(!isdefined(param_00))
{
param_00 = "";
}
var_02 = strtok(param_00,";");
foreach(var_04 in var_02)
{
var_05 = strtok(var_04,"=");
if(var_05.size != 2)
{
continue;
}
if(var_05[1] == "undefined" || var_05[1] == "default")
{
var_01.var_C8F0[var_05[0]] = undefined;
continue;
}
switch(var_05[0])
{
case "open_interrupt":
var_01.var_C607 = func_11149(var_05[1]);
break;
case "button_sound":
var_01.var_32E9 = var_05[1];
break;
default:
break;
}
}
}
//Function Number: 13
func_59BD(param_00)
{
var_01 = self;
var_01.var_10D2A = undefined;
var_01.var_11041 = undefined;
var_01.var_B048 = undefined;
var_01.var_9A88 = undefined;
if(!isdefined(param_00))
{
param_00 = "";
}
var_02 = strtok(param_00,";");
foreach(var_04 in var_02)
{
var_05 = strtok(var_04,"=");
if(var_05.size != 2)
{
continue;
}
if(var_05[1] == "undefined" || var_05[1] == "default")
{
var_01.var_C8F0[var_05[0]] = undefined;
continue;
}
switch(var_05[0])
{
case "stop_sound":
var_01.var_11041 = var_05[1];
break;
case "interrupt_sound":
var_01.var_9A88 = var_05[1];
break;
case "loop_sound":
var_01.var_B048 = var_05[1];
break;
case "open_interrupt":
var_01.var_C607 = func_11149(var_05[1]);
break;
case "start_sound":
var_01.var_10D2A = var_05[1];
break;
case "unresolved_collision_nodes":
var_01.var_12BEB = function_00B4(var_05[1],"targetname");
break;
case "no_moving_unresolved_collisions":
var_01.var_C001 = func_11149(var_05[1]);
break;
default:
break;
}
}
}
//Function Number: 14
func_1277D(param_00)
{
var_01 = self;
if(!isdefined(param_00))
{
param_00 = "";
}
var_02 = strtok(param_00,";");
foreach(var_04 in var_02)
{
var_05 = strtok(var_04,"=");
if(var_05.size != 2)
{
continue;
}
if(var_05[1] == "undefined" || var_05[1] == "default")
{
var_01.var_C8F0[var_05[0]] = undefined;
continue;
}
switch(var_05[0])
{
case "not_opening":
var_01.var_C0B2 = func_11149(var_05[1]);
break;
case "not_closing":
var_01.var_C0B1 = func_11149(var_05[1]);
break;
case "prone_only":
var_01.var_DA79 = func_11149(var_05[1]);
break;
default:
break;
}
}
}
//Function Number: 15
func_11149(param_00)
{
var_01 = undefined;
switch(param_00)
{
case "true":
case "1":
var_01 = 1;
break;
case "false":
case "0":
var_01 = 0;
break;
default:
break;
}
return var_01;
}