Files
IL-GSC/GHOSTS/XBOX/SP/maps/_space_player.gsc
2023-10-27 03:49:01 -04:00

1313 lines
28 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_space_player.gsc
* Game: Call of Duty: Ghosts
* Platform: Console
* Function Count: 39
* Decompile Time: 636 ms
* Timestamp: 10/27/2023 1:37:29 AM
*******************************************************************/
//Function Number: 1
init_player_space()
{
precacheshellshock("underwater_swim");
precachemodel("viewhands_us_space");
precachemodel("viewhands_player_us_space");
precacherumble("light_1s");
common_scripts\utility::func_3385("spacesprint");
common_scripts\utility::func_3385("boostAnim");
common_scripts\utility::func_3385("wall_push_flag_left");
common_scripts\utility::func_3385("floor_push");
common_scripts\utility::func_3385("no_push_zone");
common_scripts\utility::func_3385("stop_wall_pushing");
common_scripts\utility::func_3385("wall_push_tweak_player");
common_scripts\utility::func_3385("set_player_interior_speed");
common_scripts\utility::func_3385("set_player_exterior_speed");
common_scripts\utility::func_3385("clear_to_tweak_player");
common_scripts\utility::func_3385("enable_player_thruster_audio");
common_scripts\utility::func_3385("prologue_ready_for_thrusters");
level.sfx_player_breathing_started = 0;
}
//Function Number: 2
func_4591()
{
func_5F14();
}
//Function Number: 3
func_73FC()
{
}
//Function Number: 4
enable_player_space()
{
function_0168("cg_footsteps",0);
function_0168("cg_equipmentSounds",0);
function_0168("cg_landingSounds",0);
thread func_73FC();
level.var_8D38 = (0,0,0);
level.var_2A92 = (0,0,0);
thread moving_water();
thread impulse_push();
self.var_5EA4 = common_scripts\utility::func_7836();
thread maps\_space::func_5F13();
thread func_7746();
function_0168("player_spaceEnabled","1");
thread func_648D();
self method_8276(1);
level.var_773A = 15;
level.var_7742 = 80;
level.space_accel = 75;
level.var_7748 = 65;
level.var_7747 = 85;
function_0168("player_swimFriction",level.var_773A);
function_0168("player_swimAcceleration",level.space_accel);
function_0168("player_swimVerticalFriction",45);
function_0168("player_swimVerticalSpeed",65);
function_0168("player_swimVerticalAcceleration",85);
function_0168("player_swimSpeed",level.var_7742);
thread direction_change_smoothing();
thread func_7743();
function_0168("player_sprintUnlimited","1");
wait(1);
if(isdefined(level.player.var_3FE7) && level.player.var_3FE7 == 1)
{
var_00 = maps\_utility::func_777F("player_rig");
var_00 method_82C8();
var_00.origin = level.player.origin;
var_00.angles = level.player.angles;
var_00 method_8021(level.player,"tag_origin",(0,0,0),(0,0,0),1);
var_00 hide();
thread func_8BFB(var_00);
thread func_78FF();
thread contuing_to_move_check();
}
}
//Function Number: 5
func_2778()
{
level notify("disable_space");
self notify("disable_space");
function_0168("cg_footsteps",1);
function_0168("cg_equipmentSounds",1);
function_0168("cg_landingSounds",1);
function_0168("player_swimFriction",30);
function_0168("player_swimAcceleration",100);
function_0168("player_swimVerticalFriction",40);
function_0168("player_swimVerticalSpeed",120);
function_0168("player_swimVerticalAcceleration",160);
function_0168("player_swimSpeed",80);
function_0168("player_sprintUnlimited","1");
function_0168("player_swimWaterCurrent",(0,0,0));
function_0168("player_spaceEnabled","0");
thread maps\_space::func_5F18();
thread maps\_space::space_hud_enable(0);
self method_8275(1);
self allowsprint(1);
self method_8276(0);
}
//Function Number: 6
player_location_check(param_00)
{
if(!isdefined(param_00))
{
}
switch(param_00)
{
case "exterior":
level.var_7742 = level.var_7742 * 1.5;
function_0168("player_swimSpeed",level.var_7742);
break;
case "interior":
level.var_7742 = level.var_7742 / 1.5;
function_0168("player_swimSpeed",level.var_7742);
break;
}
}
//Function Number: 7
func_648D()
{
level endon("stop_weapon_drop_scripts");
if(level.script == "loki" || level.script == "odin" || level.script == "prologue")
{
for(;;)
{
var_00 = level.player getcurrentweapon();
if(var_00 == "arx160_space+acog_sp+glarx160_sp" || var_00 == "microtar_space_interior+acogsmg_sp" || var_00 == "microtar_space+acogsmg_sp" || var_00 == "microtar_space_interior+acogsmg_sp+spaceshroud_sp" || var_00 == "microtar_space+acogsmg_sp+spaceshroud_sp")
{
level.player waittill("reload_start");
if(level.player isreloading() == 1)
{
var_01 = spawn("script_model",(0,0,0));
var_01 setmodel("tag_origin");
if(var_00 == "microtar_space_interior+acogsmg_sp+spaceshroud_sp" || var_00 == "microtar_space_interior+acogsmg_sp")
{
wait(1.3);
var_01 method_8021(self,"magazine0_JNT",(0,0,0),(0,0,0),1);
playfxontag(common_scripts\utility::func_3AB9("space_clip_reload"),var_01,"tag_origin");
}
else if(var_00 == "microtar_space+acogsmg_sp+spaceshroud_sp" || var_00 == "microtar_space+acogsmg_sp")
{
}
else
{
wait(0.7);
var_01 method_8021(self,"J_WristTwist_LE",(0,-10,0),(-30,-20,0),1);
playfxontag(common_scripts\utility::func_3AB9("space_clip_reload_arx"),var_01,"tag_origin");
}
wait(1);
var_01 delete();
}
}
wait(0.75);
}
}
}
//Function Number: 8
func_8BFB(param_00)
{
level endon("wall_push_over");
level endon("start_transition_to_youngblood");
thread func_7C4D(param_00);
while(!common_scripts\utility::flag("stop_wall_pushing"))
{
common_scripts\utility::flag_wait("wall_push_flag");
common_scripts\utility::func_33A0("no_push_zone");
var_01 = undefined;
var_02 = undefined;
var_03 = getentarray("wall_push_org","targetname");
foreach(var_05 in var_03)
{
var_06 = distancesquared(level.player.origin,var_05.origin);
if(!isdefined(var_01) || var_06 < var_01)
{
var_01 = var_06;
var_02 = var_05;
}
}
switch(var_02.script_parameters)
{
case "left":
random_player_wall_push(var_02,param_00);
break;
case "up":
break;
case "down":
random_player_wall_pushdownup(var_02,param_00);
break;
}
wait(0.1);
}
param_00 unlink();
param_00 delete();
}
//Function Number: 9
func_7C4D(param_00)
{
common_scripts\utility::flag_wait("stop_wall_pushing");
level notify("wall_push_over");
param_00 unlink();
param_00 delete();
}
//Function Number: 10
func_78FF()
{
level endon("disable_space");
level.timecheck = 0;
for(;;)
{
var_00 = level.player getnormalizedmovement();
if(var_00[0] > 0.4)
{
wait(0.1);
level.timecheck = level.timecheck + 0.1;
continue;
}
level.timecheck = 0;
wait(0.1);
}
}
//Function Number: 11
contuing_to_move_check()
{
level endon("start_transition_to_youngblood");
level.bmovingstraight = 0;
var_00 = level.player getorigin();
var_01[0] = var_00[0];
var_01[1] = var_00[1];
var_02[0] = var_01[0];
var_02[1] = var_01[1];
for(;;)
{
var_00 = level.player getorigin();
var_01[0] = var_00[0];
var_01[1] = var_00[1];
for(var_03 = 0;var_03 < 2;var_03++)
{
if(var_01[var_03] < 0)
{
var_01[var_03] = var_01[var_03] * -1;
}
if(var_02[var_03] < 0)
{
var_02[var_03] = var_02[var_03] * -1;
}
var_04 = var_01[var_03] - var_02[var_03];
var_05 = var_02[var_03] - var_01[var_03];
if((var_01[var_03] - var_02[var_03] >= 2 || var_01[var_03] - var_02[var_03] <= -2) && level.player isreloading() == 0 && level.player maps\_utility::func_4864() == 0)
{
level.bmovingstraight = 1;
break;
}
else
{
level.bmovingstraight = 0;
}
}
wait(0.01);
var_02[0] = var_01[0];
var_02[1] = var_01[1];
}
}
//Function Number: 12
random_player_wall_push(param_00,param_01)
{
var_02 = [];
var_02["player_rig"] = param_01;
var_03 = param_00.angles[1];
var_04 = 0;
var_05 = 40;
if(var_03 <= 0)
{
var_03 = var_03 + 360;
}
var_06 = 0;
while(common_scripts\utility::flag("wall_push_flag"))
{
var_07 = randomintrange(1,10);
var_08 = level.player getnormalizedmovement();
var_09 = level.player getnormalizedmovement();
level.player maps\_anim::anim_first_frame(var_02,"viewmodel_space_l_arm_sidepush");
var_0A = level.player.angles[1];
if(var_0A <= 0)
{
var_0A = var_0A + 360;
}
if(var_03 + var_05 > 360)
{
var_04 = var_03 + var_05 - 360;
if(var_0A > var_03 || var_0A < var_04)
{
var_06 = 1;
}
}
else if(var_0A > var_03 - var_05 && var_0A < var_03 + var_05)
{
var_06 = 1;
}
if(var_07 < 6)
{
}
var_0B = 1;
if(common_scripts\utility::flag("spacesprint"))
{
var_0B = 1.1;
}
if(var_06 == 1 && var_09[0] > 0.4 && level.timecheck > 1 && level.bmovingstraight == 1)
{
param_01 show();
var_08;
common_scripts\utility::flag_set("wall_push_tweak_player");
if(level.script == "odin" || level.script == "prologue")
{
level.player playsound("space_plr_wall_push");
}
wait(1);
thread anim_boost();
wait(0.67);
var_02 hide();
wait(1);
}
var_07 = 0;
wait(0.05);
}
}
//Function Number: 13
random_player_wall_pushdownup(param_00,param_01)
{
var_02 = [];
var_02["player_rig"] = param_01;
var_03 = param_00.angles[1];
var_04 = 0;
var_05 = 40;
if(var_03 <= 0)
{
var_03 = var_03 + 360;
}
var_06 = 0;
while(common_scripts\utility::flag("wall_push_flag"))
{
var_07 = randomintrange(1,10);
var_08 = level.player getangles();
var_09 = level.player getnormalizedmovement();
level.player maps\_anim::anim_first_frame(var_02,"viewmodel_space_l_arm_downpush");
var_0A = level.player.angles[1];
if(var_0A <= 0)
{
var_0A = var_0A + 360;
}
if(var_03 + var_05 > 360)
{
var_04 = var_03 + var_05 - 360;
if(var_0A > var_03 - var_05 || var_0A < var_04)
{
if(var_08[0] > -10 && var_08[0] < 30)
{
var_06 = 1;
}
}
}
else if(var_0A > var_03 - var_05 && var_0A < var_03 + var_05)
{
if(var_08[0] > -20 && var_08[0] < 30)
{
var_06 = 1;
}
}
if(var_07 < 6)
{
}
var_0B = 1;
if(common_scripts\utility::flag("spacesprint"))
{
var_0B = 1.1;
}
if(var_06 == 1 && var_09[0] > 0.4 && level.timecheck > 1 && level.bmovingstraight == 1)
{
param_01 show();
var_08;
common_scripts\utility::flag_set("wall_push_tweak_player");
if(level.script == "odin" || level.script == "prologue")
{
level.player playsound("space_plr_wall_push");
}
wait(1);
thread anim_up_down_boost();
wait(0.67);
var_02 hide();
wait(1);
}
var_07 = 0;
wait(0.05);
}
}
//Function Number: 14
anim_up_down_boost()
{
common_scripts\utility::flag_set("boostAnim");
function_0168("player_swimSpeed",level.var_7742 * 1.1);
wait(0.7);
common_scripts\utility::func_337C("boostAnim");
function_0168("player_swimSpeed",level.var_7742);
}
//Function Number: 15
anim_boost()
{
common_scripts\utility::flag_set("boostAnim");
function_0168("player_swimSpeed",level.var_7742 * 1.1);
wait(0.5);
common_scripts\utility::func_337C("boostAnim");
function_0168("player_swimSpeed",level.var_7742);
}
//Function Number: 16
moving_water()
{
var_00 = getentarray("moving_water_flags","script_noteworthy");
foreach(var_02 in var_00)
{
thread func_54DF(var_02);
}
}
//Function Number: 17
func_54DF(param_00)
{
level endon("disable_space");
var_01 = 40;
var_02 = getent(param_00.target,"targetname");
var_03 = anglestoforward(var_02.angles) * var_01;
for(;;)
{
common_scripts\utility::flag_wait(param_00.script_flag);
level.var_8D38 = var_03;
common_scripts\utility::func_33A0(param_00.script_flag);
level.var_8D38 = (0,0,0);
}
}
//Function Number: 18
func_5F14()
{
level.var_6AED["layerhands"] = #animtree;
level.var_6AF3["playerhands"] = "viewhands_player_us_space";
}
//Function Number: 19
direction_change_smoothing()
{
level endon("start_transition_to_youngblood");
level endon("disable_space");
self endon("death");
var_00 = level.player getnormalizedmovement();
var_01 = var_00;
if(!isdefined(level.wall_friction_enabled))
{
level.wall_friction_enabled = 1;
}
if(!isdefined(level.wall_friction_trace_dist))
{
level.wall_friction_trace_dist = 5;
}
if(!isdefined(level.var_8BF3))
{
level.var_8BF3 = 2;
}
for(;;)
{
var_00 = level.player getnormalizedmovement();
if(var_00[0] > 0.15)
{
var_02 = "positive";
}
else
{
var_02 = "neutral";
}
if(var_00[1] > 0.15)
{
var_03 = "positive";
}
else
{
var_03 = "neutral";
}
if(var_00[0] < -0.15)
{
var_02 = "negative";
}
if(var_00[1] < -0.15)
{
var_03 = "negative";
}
if(var_01[0] > 0.15)
{
var_04 = "positive";
}
else
{
var_04 = "neutral";
}
if(var_01[1] > 0.15)
{
var_05 = "positive";
}
else
{
var_05 = "neutral";
}
if(var_01[0] < -0.15)
{
var_04 = "negative";
}
if(var_01[1] < -0.15)
{
var_05 = "negative";
}
var_06 = 0;
if(level.wall_friction_enabled)
{
var_07 = vectornormalize(level.player getvelocity());
var_08 = anglestoright(vectortoangles(var_07));
var_09 = anglestoup(vectortoangles(var_07));
var_0A = level.var_8BF3;
var_0B = level.player.origin + (var_08[0] * var_0A,var_08[1] * var_0A,var_08[2] * var_0A);
var_0B = var_0B + (var_09[0] * var_0A,var_09[1] * var_0A,var_09[2] * var_0A);
var_0C = level.player.origin - (var_08[0] * var_0A,var_08[1] * var_0A,var_08[2] * var_0A);
var_0C = var_0C - (var_09[0] * var_0A,var_09[1] * var_0A,var_09[2] * var_0A);
var_0A = level.wall_friction_trace_dist;
var_0D = var_0B + (var_07[0] * var_0A,var_07[1] * var_0A,var_07[2] * var_0A);
var_0E = level.player aiphysicstrace(var_0B,var_0D);
if(var_0D != var_0E)
{
var_06 = 1;
}
else
{
var_0D = var_0C + (var_07[0] * var_0A,var_07[1] * var_0A,var_07[2] * var_0A);
var_0E = level.player aiphysicstrace(var_0C,var_0D);
if(var_0D != var_0E)
{
var_06 = 1;
}
}
}
if(level.wall_friction_enabled && var_06 == 1)
{
function_0168("player_swimFriction",120);
wait(0.15);
}
else if((var_03 == "neutral" && var_02 == "neutral") || var_05 == "positive" && var_04 == "positive" && var_03 == "positive" && var_02 == "positive" || var_05 == "negative" && var_04 == "negative" && var_03 == "negative" && var_02 == "negative" || var_05 == "negative" && var_04 == "positive" && var_03 == "negative" && var_02 == "positive" || var_05 == "positive" && var_04 == "negative" && var_03 == "positive" && var_02 == "negative")
{
if(getdvarint("player_swimFriction",15) != level.var_773A)
{
function_0168("player_swimFriction",level.var_773A);
}
if(getdvarint("player_swimAcceleration",66) != 66)
{
function_0168("player_swimAcceleration",66);
}
}
else
{
function_0168("player_swimFriction",120);
function_0168("player_swimAcceleration",200);
wait(0.1);
}
if(var_02 != "neutral" && var_03 != "neutral ")
{
var_01 = var_00;
}
wait(0.1);
}
}
//Function Number: 20
func_7743()
{
level endon("disable_space");
var_00 = 0;
for(;;)
{
if(level.player issprinting())
{
if(var_00 == 0)
{
level.player playrumbleonentity("light_1s");
wait(0.05);
level.player stoprumble("light_1s");
var_00 = 1;
}
}
else
{
var_00 = 0;
}
wait(0.05);
}
}
//Function Number: 21
func_797E(param_00)
{
level endon("sprinting");
for(;;)
{
if(param_00 > 1)
{
function_0168("player_swimSpeed",level.var_7742 * param_00);
param_00 = param_00 - 0.05;
}
else
{
}
wait(0.05);
}
}
//Function Number: 22
impulse_push()
{
level endon("disable_space");
for(;;)
{
level.player waittill("damage",var_00,var_01,var_02,var_03,var_04);
common_scripts\utility::func_337C("clear_to_tweak_player");
var_05 = [];
var_05[0] = var_02[0];
var_05[1] = var_02[1];
var_05[2] = var_02[2];
var_06 = 0.25;
var_07 = 3000;
var_08 = 1;
if(var_04 == "MOD_EXPLOSIVE" || var_04 == "MOD_GRENADE" || var_04 == "MOD_GRENADE_SPLASH")
{
var_06 = 0.5;
var_07 = 7000;
var_08 = 1;
}
for(var_09 = 0;var_09 < 3;var_09++)
{
var_05[var_09] = var_05[var_09] * 0.25 * var_00 * var_06;
if(var_05[var_09] > var_07)
{
var_05[var_09] = var_07;
}
if(var_05[var_09] < 0 - var_07)
{
var_05[var_09] = 0 - var_07;
}
}
function_0168("player_swimWaterCurrent",(var_05[0],var_05[1],var_05[2]));
wait(var_08);
for(var_09 = 0;var_09 < 3;var_09++)
{
for(var_09 = 0;var_09 < 3;var_09++)
{
var_05[var_09] = var_05[var_09] * 0.5;
}
function_0168("player_swimWaterCurrent",(var_05[0],var_05[1],var_05[2]));
wait(var_08 * 0.25);
}
function_0168("player_swimWaterCurrent",(0,0,0));
common_scripts\utility::flag_set("clear_to_tweak_player");
}
}
//Function Number: 23
player_recoil()
{
for(;;)
{
self waittill("weapon_fired");
var_00 = level.player getcurrentweapon();
if(var_00 == "microtar_space")
{
common_scripts\utility::func_337C("clear_to_tweak_player");
var_01 = self getangles();
var_02 = anglestoforward(var_01);
var_03 = [];
var_03[0] = var_02[0];
var_03[1] = var_02[1];
var_03[2] = var_02[2];
var_04 = 2500;
var_05 = 1;
for(var_06 = 0;var_06 < 3;var_06++)
{
var_03[var_06] = var_03[var_06] * var_04 * -1;
}
function_0168("player_swimWaterCurrent",(var_03[0],var_03[1],var_03[2]));
wait(var_05);
for(var_06 = 0;var_06 < 3;var_06++)
{
for(var_06 = 0;var_06 < 3;var_06++)
{
var_03[var_06] = var_03[var_06] * 0.5;
}
function_0168("player_swimWaterCurrent",(var_03[0],var_03[1],var_03[2]));
wait(var_05 * 0.25);
}
function_0168("player_swimWaterCurrent",(0,0,0));
common_scripts\utility::flag_set("clear_to_tweak_player");
}
}
}
//Function Number: 24
func_7746()
{
level endon("disable_space");
common_scripts\utility::flag_set("enable_player_thruster_audio");
level.var_80C6 = 1;
level.thruster_sprint_timer = 1;
level.thruster_sprint = spawn("script_origin",(0,0,0));
level.var_80C5 = spawn("script_origin",(0,0,0));
level.axes = ["x","y","z_up","z_down"];
level.player thread func_5F48();
level.player thread func_80C4();
level waittill("kill_thrusters");
level.thruster_sprint delete();
level.var_80C5 delete();
}
//Function Number: 25
func_5F16()
{
wait(0.02);
if(level.sfx_player_breathing_started == 0)
{
level.sfx_player_breathing_started = 1;
if(!issplitscreen())
{
thread player_space_breathe_sound();
}
if(self == level.player)
{
thread player_space_breathe_sound();
}
}
}
//Function Number: 26
player_space_breathe_sound()
{
level endon("start_transition_to_youngblood");
self endon("death");
self notify("start_scuba_breathe");
self endon("start_scuba_breathe");
self endon("stop_scuba_breathe");
level.pressurized = 0;
level.var_773E = 0;
for(;;)
{
if(level.var_773E == 1)
{
wait(0.75);
}
else if(level.var_773E == 2)
{
wait(0.01);
}
else if(level.var_773E == 3)
{
wait(0.25);
}
else
{
wait(2.75);
}
if(level.space_breathing_enabled == 1)
{
if(level.pressurized == 0)
{
if(level.var_773E == 1 || level.var_773E == 2)
{
self playlocalsound("space_breathe_player_fast_inhale","scuba_breathe_sound_done");
}
else if(level.var_773E == 3)
{
self playlocalsound("space_breathe_player_inhale_slomo","scuba_breathe_sound_done");
}
else
{
self playlocalsound("space_breathe_player_inhale","scuba_breathe_sound_done");
}
self waittill("scuba_breathe_sound_done");
}
if(level.pressurized == 0)
{
if(level.var_773E == 1 || level.var_773E == 2)
{
self playlocalsound("space_breathe_player_fast_exhale","scuba_breathe_sound_done");
}
else if(level.var_773E == 3)
{
self playlocalsound("space_breathe_player_exhale_slomo","scuba_breathe_sound_done");
}
else
{
self playlocalsound("space_breathe_player_exhale","scuba_breathe_sound_done");
}
self waittill("scuba_breathe_sound_done");
}
}
}
}
//Function Number: 27
attach_audio_points_to_player()
{
level endon("kill_thrusters");
for(;;)
{
common_scripts\utility::flag_wait("enable_player_thruster_audio");
level._thruster_rig = spawn("script_model",(0,0,0));
level._thruster_rig.origin = self.origin;
level._thruster_rig.angles = self.angles;
level._thruster_rig setmodel("viewhands_us_space");
level._thruster_rig method_82C8();
level._thruster_rig hide();
level._thruster_rig method_8021(self,"tag_player",(0,0,0),(0,0,0),1);
for(var_00 = 0;var_00 < 6;var_00++)
{
var_01 = spawn("script_model",(0,0,0));
var_01 setmodel("tag_origin");
if(var_00 == 0)
{
var_01.origin = level._thruster_rig gettagorigin("tag_jet_top");
var_01 linkto(level._thruster_rig,"tag_jet_top",(0,0,0),(0,0,0));
}
else if(var_00 == 1)
{
var_01.origin = level._thruster_rig gettagorigin("tag_jet_bottom");
var_01 linkto(level._thruster_rig,"tag_jet_bottom",(0,0,0),(0,0,0));
}
else if(var_00 == 2)
{
var_01.origin = level._thruster_rig gettagorigin("tag_jet_front");
var_01 linkto(level._thruster_rig,"tag_jet_front",(0,0,0),(0,0,0));
}
else if(var_00 == 3)
{
var_01.origin = level._thruster_rig gettagorigin("tag_jet_left");
var_01 linkto(level._thruster_rig,"tag_jet_left",(0,0,0),(0,0,0));
}
else if(var_00 == 4)
{
var_01.origin = level._thruster_rig gettagorigin("tag_jet_right");
var_01 linkto(level._thruster_rig,"tag_jet_right",(0,0,0),(0,0,0));
}
else if(var_00 == 5)
{
var_01.origin = level._thruster_rig gettagorigin("tag_jet_back");
var_01 linkto(level._thruster_rig,"tag_jet_back",(0,0,0),(0,0,0));
}
var_01 thread func_80C4(var_00);
level._thruster_ents[var_00] = var_01;
}
common_scripts\utility::func_33A0("enable_player_thruster_audio");
foreach(var_01 in level._thruster_ents)
{
var_01 notify("stop");
var_01 delete();
}
level._thruster_rig delete();
}
}
//Function Number: 28
func_80C4()
{
level endon("kill_thrusters");
self endon("death");
self.var_6158 = [];
self.var_6158["x"] = 0;
self.var_6158["y"] = 0;
self.var_6158["z_up"] = 0;
self.var_6158["z_down"] = 0;
if(isdefined(level.var_61E7) && level.var_61E7 == 1)
{
common_scripts\utility::flag_wait("prologue_ready_for_thrusters");
}
for(;;)
{
self waittill("thruster_update",var_00,var_01);
level.bob_value = var_00;
if("z_up" == var_01 || "z_down" == var_01)
{
level.bob_axis = "z";
}
else
{
level.bob_axis = var_01;
}
if(castint(var_00) != self.var_6158[var_01])
{
thread func_5D33(abs(var_00));
}
self.var_6158[var_01] = castint(var_00);
}
}
//Function Number: 29
func_5D33(param_00)
{
switch(castint(param_00))
{
case 0:
break;
case 1:
break;
case 2:
if(level.var_80C6 > 0)
{
thread thruster_timer_logic();
level.var_80C5 stopsounds();
level.var_80C5 playsound("space_jetpack_boost_oneshot");
}
break;
case 3:
if(level.var_80C6 > 0)
{
self playsound("space_jetpack_boost_start_large");
thread thruster_timer_logic();
level.var_80C5 stopsounds();
level.var_80C5 playsound("space_jetpack_boost_oneshot_big");
}
break;
case 4:
if(level.thruster_sprint_timer > 0)
{
self playsound("space_jetpack_boost_start_sprint");
thread thruster_sprint_interval();
level.thruster_sprint stopsounds();
level.thruster_sprint playsound("space_jetpack_boost_oneshot_sprint");
}
break;
}
}
//Function Number: 30
thruster_sprint_interval()
{
level.thruster_sprint_timer = 0;
wait(0.5);
level.thruster_sprint_timer = 1;
}
//Function Number: 31
thruster_timer_logic()
{
level.var_80C6 = 0;
wait(0.1);
level.var_80C6 = 1;
}
//Function Number: 32
func_5F48()
{
level endon("kill_thrusters");
self endon("death");
for(;;)
{
common_scripts\utility::flag_wait("enable_player_thruster_audio");
var_00 = [0,0,0,0];
while(common_scripts\utility::flag("enable_player_thruster_audio"))
{
var_01 = func_5AEF();
if(var_01[0] != var_00[0] || var_01[1] != var_00[1] || var_01[2] != var_00[2] || var_01[3] != var_00[3])
{
func_6F7E(var_01,var_00);
}
var_00 = var_01;
wait(0.05);
}
}
}
//Function Number: 33
func_5AEF()
{
var_00 = [0,0,0,0];
var_01 = self getnormalizedmovement();
for(var_02 = 0;var_02 < 2;var_02++)
{
var_00[var_02] = 0;
if(abs(var_01[var_02]) > 0.1)
{
var_00[var_02] = 2;
}
if(var_00[var_02] > 0 && self issprinting())
{
var_00[var_02] = 4;
}
if(var_01[var_02] < 0)
{
var_00[var_02] = var_00[var_02] * -1;
}
}
if(self jumpbuttonpressed() || self fragbuttonpressed())
{
var_00[2] = var_00[2] + common_scripts\utility::func_803F(self fragbuttonpressed(),3,2);
}
if(func_47C9() || self secondaryoffhandbuttonpressed())
{
var_00[3] = var_00[3] + common_scripts\utility::func_803F(self secondaryoffhandbuttonpressed(),3,2);
}
return var_00;
}
//Function Number: 34
func_47C9()
{
var_00 = 0;
if(self buttonpresseddevonly("BUTTON_CROUCH") || self buttonpresseddevonly("BUTTON_PRONE") || self buttonpresseddevonly("BUTTON_B") || self buttonpresseddevonly("BUTTON_RSTICK"))
{
var_00 = 1;
}
return var_00;
}
//Function Number: 35
func_6F7E(param_00,param_01)
{
for(var_02 = 0;var_02 < param_00.size;var_02++)
{
if(param_00[var_02] != param_01[var_02])
{
level.player notify("thruster_update",param_00[var_02],level.axes[var_02]);
wait(0.05);
}
}
}
//Function Number: 36
func_39CC(param_00,param_01)
{
var_02 = [];
switch(param_00)
{
case 0:
if(param_01 >= 0)
{
var_02[var_02.size] = 5;
}
if(param_01 <= 0)
{
var_02[var_02.size] = 2;
}
break;
case 1:
if(param_01 >= 0)
{
var_02[var_02.size] = 3;
}
if(param_01 <= 0)
{
var_02[var_02.size] = 4;
}
break;
case 2:
if(param_01 >= 0)
{
var_02[var_02.size] = 1;
}
if(param_01 <= 0)
{
var_02[var_02.size] = 0;
}
break;
default:
break;
}
return var_02;
}
//Function Number: 37
debug_thruster_text(param_00,param_01)
{
var_02 = [];
if(isdefined(param_00))
{
if(0 == param_00)
{
var_02[var_02.size] = "TOP";
}
else if(1 == param_00)
{
var_02[var_02.size] = "BOTTOM";
}
else if(2 == param_00)
{
var_02[var_02.size] = "FRONT";
}
else if(3 == param_00)
{
var_02[var_02.size] = "LEFT";
}
else if(4 == param_00)
{
var_02[var_02.size] = "RIGHT";
}
else if(5 == param_00)
{
var_02[var_02.size] = "BACK";
}
}
else
{
var_02[var_02.size] = "";
}
if(isdefined(param_01))
{
if(0 == param_01)
{
var_02[var_02.size] = "OFF";
}
else if(1 == param_01)
{
var_02[var_02.size] = "LOW";
}
else if(2 == param_01)
{
var_02[var_02.size] = "MEDIUM";
}
else
{
var_02[var_02.size] = "HIGH";
}
}
else
{
var_02[var_02.size] = "";
}
return var_02;
}
//Function Number: 38
debug_test_thruster_audio()
{
for(;;)
{
for(var_00 = 1;var_00 < 4;var_00++)
{
for(var_01 = 0;var_01 < level._thruster_ents.size;var_01++)
{
var_02 = debug_thruster_text(var_01,var_00);
iprintln("Playing thruster " + var_02[0] + "\'s " + var_02[1] + " burst audio");
switch(var_00)
{
case 1:
level._thruster_ents[var_01] playsound("space_jetpack_boost_start_small");
break;
case 2:
level._thruster_ents[var_01] playsound("space_jetpack_boost_start_med");
break;
case 3:
level._thruster_ents[var_01] playsound("space_jetpack_boost_start_large");
break;
}
wait(2);
}
}
for(var_00 = 0;var_00 < 2;var_00++)
{
for(var_01 = 0;var_01 < level._thruster_ents.size;var_01++)
{
var_02 = debug_thruster_text(var_01,var_00);
switch(var_00)
{
case 0:
iprintln("Playing thruster " + var_02[0] + "\'s loop audio");
break;
case 1:
iprintln("Playing thruster " + var_02[0] + "\'s sprint loop audio");
break;
}
wait(2);
level._thruster_ents[var_01] stoploopsound();
wait(1);
}
}
}
}
//Function Number: 39
func_8E5D(param_00,param_01)
{
for(;;)
{
var_02 = level.player.origin;
if(isdefined(param_01))
{
}
else
{
}
wait(1);
}
}