mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-07-04 21:27:51 -05:00
1313 lines
28 KiB
Plaintext
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);
|
|
}
|
|
} |