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

647 lines
16 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\sp\_doorpush.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 22
* Decompile Time: 999 ms
* Timestamp: 10/27/2023 12:24:14 AM
*******************************************************************/
//Function Number: 1
func_8FE0()
{
level.var_EC87["player_rig"] = #animtree;
level.var_EC85["player_rig"]["right_push"] = %shipcrib_player_door_right_push;
level.var_EC85["player_rig"]["right_pull"] = %shipcrib_player_door_right_pull;
level.var_EC85["player_rig"]["left_push"] = %shipcrib_player_door_left_push;
level.var_EC85["player_rig"]["left_pull"] = %shipcrib_player_door_left_pull;
level.var_EC85["player_rig"]["left_push_long_open"] = %shipcrib_plr_door_left_push_long;
level.var_EC85["player_rig"]["left_push_long_hold"][0] = %shipcrib_plr_door_left_push_long_hold;
level.var_EC85["player_rig"]["left_push_long_close"] = %shipcrib_plr_door_left_push_long_close_bridge;
level.var_EC85["player_rig"]["right_push_long_open"] = %shipcrib_plr_door_right_push_long;
level.var_EC85["player_rig"]["right_push_long_hold"][0] = %shipcrib_plr_door_right_push_long_hold;
level.var_EC85["player_rig"]["right_push_long_close"] = %shipcrib_plr_door_right_push_long_close;
level.var_EC85["player_rig"]["armory_enter_open"] = %shipcrib_plr_door_right_push_long;
level.var_EC85["player_rig"]["armory_enter_hold"][0] = %shipcrib_plr_door_right_push_long_hold;
level.var_EC85["player_rig"]["armory_enter_close"] = %shipcrib_plr_door_right_push_long_close_armory;
}
//Function Number: 2
func_8FDF()
{
level.var_EC87["door"] = #animtree;
level.var_EC85["door"]["right_push"] = %shipcrib_door_right_push_open;
level.var_EC85["door"]["right_pull"] = %shipcrib_door_right_pull_open;
level.var_EC85["door"]["left_push"] = %shipcrib_door_left_push_open;
level.var_EC85["door"]["left_pull"] = %shipcrib_door_left_pull_open;
level.var_EC85["door"]["left_push_long_open"] = %shipcrib_door_left_push_long_open;
level.var_EC85["door"]["left_push_long_hold"][0] = %shipcrib_door_left_push_long_hold;
level.var_EC85["door"]["left_push_long_close"] = %shipcrib_door_left_push_long_close;
level.var_EC85["door"]["right_push_long_open"] = %shipcrib_door_right_push_long_open;
level.var_EC85["door"]["right_push_long_hold"][0] = %shipcrib_door_right_push_long_hold;
level.var_EC85["door"]["right_push_long_close"] = %shipcrib_door_right_push_long_close;
level.var_EC85["door"]["armory_enter_open"] = %shipcrib_door_right_push_long_open;
level.var_EC85["door"]["armory_enter_hold"][0] = %shipcrib_door_right_push_long_hold;
level.var_EC85["door"]["armory_enter_close"] = %shipcrib_door_right_push_long_close;
}
//Function Number: 3
func_5A38()
{
scripts\sp\_dooruse::func_5A4B();
var_00 = [];
var_00 = scripts\common\utility::array_combine(var_00,scripts\common\utility::getstructarray("doors_hinged","targetname"));
foreach(var_02 in var_00)
{
var_02 scripts\sp\_utility::func_65E0("push_triggered");
var_02 scripts\sp\_utility::func_65E0("pull_triggered");
var_02.var_5A3C = getent(var_02.target,"targetname");
var_02.var_5A3C method_83D0(#animtree);
var_02.var_5A3C.var_1FBB = "door";
var_02.var_5A32 = "notbusy";
var_02.var_5A39 = "normal";
if(isdefined(var_02.var_EE79))
{
var_03 = strtok(var_02.var_EE79," ");
var_02.var_5A33 = var_03[0];
if(isdefined(var_03[1]))
{
var_02.var_5A50 = var_03[1];
level.var_5A2B[var_02.var_5A50] = var_02;
}
}
else
{
var_02.var_5A33 = "unlocked";
}
switch(var_02.script_noteworthy)
{
case "hinged_left":
var_02.var_8FDD = "left";
break;
case "hinged_right":
var_02.var_8FDD = "right";
break;
default:
var_02.var_8FDD = "left";
break;
}
var_02 func_8FE0();
var_02 func_8FDF();
var_02.var_DB15 = var_02.origin + anglestoright(var_02.angles) * 50;
var_02.var_DB15 = var_02.var_DB15 + anglestoforward(var_02.angles) * -24;
var_02.var_DB14 = var_02.angles;
var_02.var_5A40 = scripts\common\utility::spawn_tag_origin(var_02.var_5A3C gettagorigin("interact_push"),var_02.var_5A3C gettagangles("interact_push"));
var_02.var_5A40 linkto(var_02.var_5A3C);
var_02.var_5A3F = scripts\common\utility::spawn_tag_origin(var_02.var_5A3C gettagorigin("interact_pull"),var_02.var_5A3C gettagangles("interact_pull"));
var_02.var_5A3F linkto(var_02.var_5A3C);
var_02 func_48C7();
var_02.var_5A4F = squared(80);
if(isdefined(var_02.var_5A3C.target))
{
var_04 = getentarray(var_02.var_5A3C.target,"targetname");
foreach(var_06 in var_04)
{
if(var_06.classname == "script_brushmodel")
{
var_02.var_5A30 = var_06;
}
var_06 linkto(var_02.var_5A3C,"j_hinge1");
}
}
if(isdefined(var_02.var_5A50))
{
var_02.var_ECCE = lib_0EFB::func_7994("shipcrib_door_screen","script_noteworthy",var_02.var_5A50);
}
var_02.var_ECCA = [];
foreach(var_06 in var_02.var_ECCE)
{
if(var_06.classname != "script_model")
{
var_02.var_ECCE = scripts\common\utility::func_22A9(var_02.var_ECCE,var_06);
var_02.var_ECCA = scripts\common\utility::array_add(var_02.var_ECCA,var_06);
}
}
var_02.var_5A40 thread func_9013(var_02,"push_triggered");
var_02.var_5A3F thread func_9013(var_02,"pull_triggered");
var_02 thread func_5A4E();
}
}
//Function Number: 4
func_5A55(param_00)
{
switch(param_00)
{
case "unlocked":
self.var_5A3C method_8387("door_unlocked");
self.var_5A3C method_8187("door_locked");
self.var_5A3C method_8187("door_inactive");
func_48C7();
func_5A42(param_00);
break;
case "locked":
self.var_5A3C method_8387("door_locked");
self.var_5A3C method_8187("door_unlocked");
self.var_5A3C method_8187("door_inactive");
func_DFE5();
func_5A42(param_00);
break;
case "automatic":
self.var_5A3C method_8187("door_unlocked");
self.var_5A3C method_8187("door_locked");
self.var_5A3C method_8187("door_inactive");
func_DFE5();
func_5A42(param_00);
break;
case "open":
self.var_5A3C method_8387("door_inactive");
self.var_5A3C method_8187("door_unlocked");
self.var_5A3C method_8187("door_locked");
func_DFE5();
func_5A42(param_00);
break;
}
}
//Function Number: 5
func_5A42(param_00)
{
self endon("death");
if(!isdefined(self.var_ECCE) || self.var_ECCE.size == 0)
{
return;
}
scripts\common\utility::func_227D(self.var_ECCE,::method_8184);
switch(param_00)
{
case "unlocked":
scripts\common\utility::func_227D(self.var_ECCE,::method_8387,"tag_unlocked");
scripts\common\utility::array_thread(self.var_ECCA,::scripts\sp\_lights::func_AB83,0.009,0.05);
scripts\common\utility::array_thread(self.var_ECCA,::scripts\sp\_lights::func_3C57,(0.26,0.98,0.18),0.05);
break;
case "locked":
scripts\common\utility::func_227D(self.var_ECCE,::method_8387,"tag_locked");
scripts\common\utility::array_thread(self.var_ECCA,::scripts\sp\_lights::func_AB83,0.009,0.05);
scripts\common\utility::array_thread(self.var_ECCA,::scripts\sp\_lights::func_3C57,(0.98,0.18,0.26),0.05);
break;
case "automatic":
scripts\common\utility::func_227D(self.var_ECCE,::method_8387,"tag_unlocked");
break;
case "open":
scripts\common\utility::func_227D(self.var_ECCE,::method_8387,"tag_unlocked");
scripts\common\utility::array_thread(self.var_ECCA,::scripts\sp\_lights::func_AB83,0.009,0.05);
scripts\common\utility::array_thread(self.var_ECCA,::scripts\sp\_lights::func_3C57,(0.26,0.98,0.18),0.05);
break;
}
}
//Function Number: 6
func_48C7()
{
switch(self.var_5A39)
{
case "aggressive":
var_00 = 360;
var_01 = 1;
var_02 = distance2d(self.origin,level.player.origin) * 1.5;
break;
default:
var_00 = 45;
var_01 = undefined;
var_02 = 200;
break;
}
self.var_5A40 lib_0E46::func_48C4(undefined,undefined,undefined,var_00,var_02,50,var_01,undefined,undefined,undefined,undefined,undefined,undefined,1);
self.var_5A3F lib_0E46::func_48C4(undefined,undefined,undefined,var_00,var_02,50,var_01,undefined,undefined,undefined,undefined,undefined,undefined,1);
self.var_5A39 = "normal";
}
//Function Number: 7
func_DFE5()
{
self.var_5A40 lib_0E46::func_DFE3();
self.var_5A3F lib_0E46::func_DFE3();
}
//Function Number: 8
func_9013(param_00,param_01)
{
param_00 endon("death");
self endon("death");
for(;;)
{
param_00 scripts\sp\_utility::func_65DD("push_triggered");
param_00 scripts\sp\_utility::func_65DD("pull_triggered");
self waittill("trigger");
param_00 scripts\sp\_utility::func_65E1(param_01);
param_00 func_DFE5();
}
}
//Function Number: 9
func_5A4E()
{
self endon("death");
self endon("other_side_triggered");
thread func_5A55(self.var_5A33);
for(;;)
{
if(self.var_5A33 == "open" && self.var_5A32 != "busy")
{
self.var_5A32 = "busy";
thread func_5A55(self.var_5A33);
func_5A34("open");
}
else if(self.var_5A33 == "unlocked" || self.var_5A33 == "automatic")
{
if((scripts\sp\_utility::func_65DB("push_triggered") || scripts\sp\_utility::func_65DB("pull_triggered")) && self.var_5A32 != "busy")
{
self.var_5A32 = "busy";
if(isdefined(self.var_5A52))
{
self.var_1212 = undefined;
if(self.var_5A53 == "pushpull")
{
self.var_1212 = self.var_5A52;
}
else if(self.var_5A53 == "push")
{
if(scripts\sp\_utility::func_65DB("push_triggered"))
{
self.var_1212 = self.var_5A52;
}
}
else if(self.var_5A53 == "pull")
{
if(scripts\sp\_utility::func_65DB("pull_triggered"))
{
self.var_1212 = self.var_5A52;
}
}
func_DFE5();
if(isdefined(self.var_1212))
{
if(self.var_5A54)
{
self.var_5A52 = undefined;
}
self [[ self.var_1212 ]]();
self.var_1212 = undefined;
}
}
else
{
func_DFE5();
func_5A34();
}
thread func_48C7();
}
else if((!scripts\sp\_utility::func_65DB("push_triggered") || !scripts\sp\_utility::func_65DB("pull_triggered")) && self.var_5A32 != "notbusy")
{
self.var_5A32 = "notbusy";
thread func_5A55(self.var_5A33);
func_5A34("close");
}
}
else if(self.var_5A33 == "locked" && self.var_5A32 != "notbusy")
{
self.var_5A32 = "notbusy";
thread func_5A55(self.var_5A33);
func_5A34("close");
}
scripts\common\utility::func_136F7();
}
}
//Function Number: 10
func_5A34(param_00)
{
if(func_5A3D(self))
{
var_01 = "pull";
}
else
{
var_01 = "push";
}
var_02 = self.var_8FDD + "_" + var_01;
if(isdefined(param_00))
{
switch(param_00)
{
case "open":
self.var_5A3C method_82A2(self.var_5A3C scripts\sp\_utility::func_7DC1(var_02));
break;
case "close":
self.var_5A3C method_82A4(self.var_5A3C scripts\sp\_utility::func_7DC1(var_02),1,0,0);
break;
}
}
func_11EB(var_02);
}
//Function Number: 11
func_5A3D(param_00)
{
var_01 = scripts\sp\_utility::func_7951(param_00.origin,param_00.angles,level.player.origin);
if(var_01 > 0)
{
return 1;
}
return 0;
}
//Function Number: 12
func_5A2E(param_00,param_01,param_02)
{
if(isstring(param_00))
{
var_03 = level.var_5A2B[param_00];
}
else
{
var_03 = param_01;
}
if(isdefined(param_02))
{
var_03.var_5A39 = param_02;
}
var_03.var_5A33 = param_01;
var_03.var_5A32 = "notbusy";
var_03 thread func_5A55(var_03.var_5A33);
}
//Function Number: 13
func_5A2C(param_00)
{
if(!isdefined(param_00))
{
}
self.var_5A3A = param_00;
}
//Function Number: 14
func_5A52(param_00,param_01,param_02,param_03)
{
var_04 = level.var_5A2B[param_00];
var_04 endon("death");
if(!isdefined(param_03))
{
param_03 = "pushpull";
}
var_04.var_5A53 = param_03;
var_04.var_5A52 = param_01;
if(!isdefined(param_02))
{
var_04.var_5A54 = 1;
return;
}
var_04.var_5A54 = param_02;
}
//Function Number: 15
func_794A(param_00)
{
return level.var_5A2B[param_00];
}
//Function Number: 16
func_AB71(param_00,param_01,param_02,param_03,param_04,param_05)
{
param_00 endon("death");
if(!isdefined(param_05))
{
param_05 = 2;
}
var_06 = door_pcfov_disableweapons();
param_00.var_5A30 connectpaths();
param_00 thread scripts\sp\_utility::func_C12D("safe_to_pass",2.3);
param_00 func_11EB(param_01,param_02,param_03,param_04,param_05);
param_00.var_5A30 disconnectpaths();
if(var_06)
{
level.player enableweapons();
}
}
//Function Number: 17
door_pcfov_disableweapons()
{
var_00 = 0;
if(!level.console)
{
var_01 = getdvarfloat("com_fovUserScale");
var_02 = level.player getcurrentweapon();
if(var_01 > 1.25 && var_02 != "none" && var_02 != "iw7_gunless")
{
level.player method_80AA();
var_00 = 1;
}
}
return var_00;
}
//Function Number: 18
func_5A2D(param_00,param_01)
{
param_00 = func_794A(param_00);
param_00 endon("death");
param_00.var_5A39 = param_01;
param_00 func_DFE5();
param_00 thread func_48C7();
}
//Function Number: 19
func_5A2F(param_00)
{
}
//Function Number: 20
func_5A4D(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = "push";
}
if(!isdefined(param_01))
{
param_01 = 0;
}
if(param_01)
{
func_794A(param_00) waittill("safe_to_pass");
}
lib_0B6A::func_EC04();
switch(param_02)
{
case "push":
self method_80F1(func_794A(param_00).var_DB15,func_794A(param_00).var_DB14);
self method_82EF(self.origin);
break;
case "pull":
self method_80F1(func_794A(param_00).var_DB15,func_794A(param_00).var_DB14);
self method_82EF(self.origin);
break;
}
}
//Function Number: 21
func_5A36(param_00,param_01)
{
var_02 = func_794A(param_00);
var_02 endon("death");
var_02 func_DFE5();
if(isarray(param_01))
{
foreach(var_04 in param_01)
{
scripts\common\utility::flag_wait(var_04);
}
}
else
{
scripts\common\utility::flag_wait(param_01);
}
var_02 thread func_48C7();
}
//Function Number: 22
func_11EB(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(param_01))
{
param_01 = 0.4;
}
var_05 = scripts\sp\_utility::func_10639("player_rig");
var_06 = level.player method_84C6("currentViewModel");
if(isdefined(var_06))
{
var_05 setmodel(var_06);
}
var_05 hide();
var_07 = [];
var_07["door"] = self.var_5A3C;
var_07["player_rig"] = var_05;
if(isdefined(param_03))
{
lib_0B06::func_1EC1(var_07,param_00 + "_open");
}
else
{
lib_0B06::func_1EC1(var_07,param_00);
}
level.player playsound("shipcrib_door_plr_move_to_door");
level.player playerlinktoblend(var_05,"tag_player",param_01,0.2,0.2);
if(isdefined(param_02))
{
self thread [[ param_02 ]]();
}
wait(param_01);
var_05 show();
if(isdefined(param_03))
{
switch(self.var_8FDD)
{
case "left":
level.player playsound("shipcrib_door_left_hinge_push_long_handle_down_open");
break;
case "right":
level.player playsound("shipcrib_door_right_hinge_push_long_handle_down_open");
break;
}
lib_0B06::func_1F2C(var_07,param_00 + "_open");
thread lib_0B06::func_1EE7(var_07,param_00 + "_hold","stop_loop");
wait(param_04);
self notify("stop_loop");
switch(self.var_8FDD)
{
case "left":
self.var_5A3C thread scripts\sp\_utility::play_sound_on_tag("shipcrib_door_left_hinge_push_long_release_and_close","door_locked");
level.player playsound("shipcrib_door_left_hinge_push_long_plr_move_finish");
break;
case "right":
self.var_5A3C thread scripts\sp\_utility::play_sound_on_tag("shipcrib_door_right_hinge_push_long_release_and_close","door_locked");
level.player playsound("shipcrib_door_right_hinge_push_long_plr_move_finish");
break;
}
lib_0B06::func_1F2C(var_07,param_00 + "_close");
}
else
{
switch(param_00)
{
case "left_push":
level.player playsound("shipcrib_door_left_hinge_push_handle_down_open");
self.var_5A3C scripts\common\utility::func_5127(2.6,::scripts\sp\_utility::play_sound_on_tag,"shipcrib_door_left_hinge_push_release_and_close","door_locked");
break;
case "left_pull":
level.player playsound("shipcrib_door_left_hinge_pull_handle_down_open");
self.var_5A3C scripts\common\utility::func_5127(2.4,::scripts\sp\_utility::play_sound_on_tag,"shipcrib_door_left_hinge_pull_release_and_close","door_locked");
break;
case "right_push":
level.player playsound("shipcrib_door_right_hinge_push_handle_down_open");
self.var_5A3C scripts\common\utility::func_5127(2.6,::scripts\sp\_utility::play_sound_on_tag,"shipcrib_door_right_hinge_push_release_and_close","door_locked");
break;
case "right_pull":
level.player playsound("shipcrib_door_right_hinge_pull_handle_down_open");
self.var_5A3C scripts\common\utility::func_5127(2.4,::scripts\sp\_utility::play_sound_on_tag,"shipcrib_door_right_hinge_pull_release_and_close","door_locked");
break;
}
lib_0B06::func_1F2C(var_07,param_00);
}
level notify("door_lerp_finished");
var_05 delete();
level.player unlink();
}