// IW6 GSC SOURCE // Generated by https://github.com/xensik/gsc-tool main() { level.shark_functions = []; level.shark_functions["init"] = animscripts\shark\shark_init::main; level.shark_functions["move"] = animscripts\shark\shark_move::main; level.shark_functions["stop"] = animscripts\shark\shark_stop::main; level.shark_functions["pain"] = animscripts\shark\shark_pain::main; level.shark_functions["scripted"] = animscripts\shark\shark_scripted::main; level.shark_functions["scripted_init"] = animscripts\shark\shark_scripted::init; level.shark_functions["reactions"] = animscripts\shark\shark_reactions::main; level.shark_functions["flashed"] = animscripts\shark\shark_flashed::main; level.shark_functions["death"] = animscripts\shark\shark_death::main; level.shark_functions["combat"] = animscripts\shark\shark_combat::main; maps\ship_graveyard_util::shark_collision_setup(); maps\_player_rig::init_player_rig( "viewhands_player_us_udt" ); maps\_utility::intro_screen_create( &"SHIP_GRAVEYARD_INTROSCREEN_LINE_1", &"SHIP_GRAVEYARD_INTROSCREEN_LINE_2", &"SHIP_GRAVEYARD_INTROSCREEN_LINE_5" ); maps\_utility::intro_screen_custom_func( ::custom_intro_screen_func ); level.debris = [ "shpg_machinery_baggage_container_dmg" ]; foreach ( var_1 in level.debris ) precachemodel( var_1 ); precacheitem( "remote_torpedo_tablet" ); precacheitem( "underwater_torpedo" ); precachemodel( "vehicle_boat_underneath_1" ); precachemodel( "vehicle_boat_underneath_2" ); precachemodel( "vehicle_mini_sub_iw6" ); precachemodel( "body_seal_udt_dive_a" ); precachemodel( "vehicle_lcs" ); precachemodel( "vehicle_lcs_flir" ); precachemodel( "vehicle_lcs_destroyed_front" ); precachemodel( "vehicle_lcs_destroyed_back" ); precachemodel( "shpg_udt_headgear_player_a" ); precachemodel( "fullbody_tigershark" ); precachemodel( "vehicle_mi_28_destroyed" ); precachemodel( "weapon_parabolic_knife" ); precachemodel( "viewmodel_knife" ); precachemodel( "com_barrel_benzin2" ); precachemodel( "shpg_wrkdoor_a1_obj" ); precachemodel( "shpg_lighthouse_top" ); precachemodel( "shpg_lighthouse_glass" ); precachemodel( "shpg_lighthouse_glass_broken" ); precachemodel( "weapon_underwater_torch" ); precachemodel( "props_scuba_hose_a" ); precachemodel( "viewmodel_torpedo" ); precachemodel( "shpg_dbreach_pipe_a" ); precachemodel( "shpg_viewmodel_scuba_mask_cr01" ); precachemodel( "shpg_viewmodel_scuba_mask_cr02" ); precachemodel( "shpg_viewmodel_scuba_mask_cr03" ); precachemodel( "viewmodel_underwater_torch" ); precachemodel( "shpg_wrkdoor_a1_normal" ); precachemodel( "shpg_wrkdoor_a1_broken01" ); precachemodel( "shpg_wrkdoor_a1_broken02" ); precachemodel( "torpedo_crtplane" ); precachemodel( "shpg_bang_stick" ); precachemodel( "body_fed_udt_assault_a_ally_trailer" ); precacheshellshock( "depth_charge_hit" ); precacheshellshock( "sonar_ping" ); precacheshellshock( "sonar_ping_light" ); precacheshellshock( "nearby_crash_underwater" ); precacheshellshock( "shipg_player_drown" ); precacherumble( "damage_light" ); precacherumble( "damage_heavy" ); precacherumble( "tank_rumble_fading" ); precacherumble( "subtle_tank_rumble" ); precacherumble( "littoral_ship_rumble" ); precacherumble( "heavy_3s" ); precacherumble( "light_1s" ); precachestring( &"SHIP_GRAVEYARD_HINT_TORPEDO" ); precachestring( &"SHIP_GRAVEYARD_HINT_DROWN" ); precachestring( &"SHIP_GRAVEYARD_HINT_X" ); precachestring( &"SHIP_GRAVEYARD_HINT_RT" ); precachestring( &"SHIP_GRAVEYARD_HINT_SPRINT" ); precachestring( &"SHIP_GRAVEYARD_HINT_DOWN_GAMEPAD" ); precachestring( &"SHIP_GRAVEYARD_HINT_DOWN_STANCE" ); precachestring( &"SHIP_GRAVEYARD_HINT_DOWN_CROUCH" ); precachestring( &"SHIP_GRAVEYARD_HINT_DOWN_HOLD_CROUCH" ); precachestring( &"SHIP_GRAVEYARD_HINT_UP_GAMEPAD" ); precachestring( &"SHIP_GRAVEYARD_HINT_UP_STAND" ); precachestring( &"SHIP_GRAVEYARD_HINT_TRENCH" ); precachestring( &"SHIP_GRAVEYARD_E3_TIME" ); precachestring( &"SHIP_GRAVEYARD_HINT_FLASHLIGHT" ); precachestring( &"SHIP_GRAVEYARD_HINT_WELD" ); precachestring( &"SHIP_GRAVEYARD_HINT_DIVE" ); precachestring( &"SHIP_GRAVEYARD_HINT_TGT_NOTFOUND" ); precachestring( &"SHIP_GRAVEYARD_HINT_TGT_BLOCKED" ); precacheshader( "gasmask_overlay" ); precacheshader( "halo_overlay_scuba_steam" ); precacheshader( "halo_overlay_water" ); precacheshader( "blank" ); precacheshader( "overlay_grain" ); precacheshader( "torpedo_center" ); precacheshader( "torpedo_centerbox" ); precacheshader( "torpedo_centerline" ); precacheshader( "torpedo_databit_1" ); precacheshader( "torpedo_databit_2" ); precacheshader( "torpedo_databit_3" ); precacheshader( "torpedo_frame_center" ); precacheshader( "torpedo_frame_center_bottom" ); precacheshader( "torpedo_frame_edge" ); precacheshader( "torpedo_frame_edge_l" ); precacheshader( "torpedo_frame_edge_r" ); precacheshader( "torpedo_frame_lines_ll" ); precacheshader( "torpedo_frame_lines_lr" ); precacheshader( "torpedo_frame_lines_ul" ); precacheshader( "torpedo_frame_lines_ur" ); precacheshader( "torpedo_horizonline" ); precacheshader( "torpedo_sidebracket_l" ); precacheshader( "torpedo_sidebracket_r" ); precacheshader( "torpedo_connection_bar" ); precacheshader( "torpedo_connection_frame" ); precacheshader( "torpedo_connection_text" ); precacheshader( "apache_targeting_circle" ); precacheshader( "white" ); maps\_swim_player::init_player_swim(); maps\_swim_ai::init_ai_swim(); maps\_drone_ai::init(); maps\_utility::template_level( "ship_graveyard" ); maps\_utility::add_hint_string( "hint_down_gamepad", &"SHIP_GRAVEYARD_HINT_DOWN_GAMEPAD", maps\ship_graveyard_util::hintdown_test ); maps\_utility::add_hint_string( "hint_down_stance", &"SHIP_GRAVEYARD_HINT_DOWN_STANCE", maps\ship_graveyard_util::hintdown_test ); maps\_utility::add_hint_string( "hint_down_crouch", &"SHIP_GRAVEYARD_HINT_DOWN_CROUCH", maps\ship_graveyard_util::hintdown_test ); maps\_utility::add_hint_string( "hint_down_hold_crouch", &"SHIP_GRAVEYARD_HINT_DOWN_HOLD_CROUCH", maps\ship_graveyard_util::hintdown_test ); maps\_utility::add_hint_string( "hint_up_gamepad", &"SHIP_GRAVEYARD_HINT_UP_GAMEPAD", maps\ship_graveyard_util::hintup_test ); maps\_utility::add_hint_string( "hint_up_stand", &"SHIP_GRAVEYARD_HINT_UP_STAND", maps\ship_graveyard_util::hintup_test ); maps\_utility::add_hint_string( "hint_sprint", &"SHIP_GRAVEYARD_HINT_SPRINT", maps\ship_graveyard_util::hintsprint_test ); maps\_utility::add_hint_string( "hint_flashlight", &"SHIP_GRAVEYARD_HINT_FLASHLIGHT", maps\ship_graveyard_util::hintflashlight_test ); maps\_utility::add_hint_string( "hint_notfound", &"SHIP_GRAVEYARD_HINT_TGT_NOTFOUND" ); maps\_utility::add_hint_string( "hint_blocked", &"SHIP_GRAVEYARD_HINT_TGT_BLOCKED" ); maps\_utility::add_start( "start_tutorial", ::start_tutorial, undefined, ::tutorial_setup ); maps\_utility::add_start( "start_swim", ::start_swim, undefined, ::intro_setup ); maps\_utility::add_start( "start_wreck_approach", ::start_wreck_approach, undefined, ::wreck_approach_setup ); maps\_utility::add_start( "start_small_wreck", ::start_small_wreck, undefined, ::small_wreck_setup ); maps\_utility::add_start( "start_stealth_1", ::start_stealth_1, undefined, ::stealth_area_1_setup ); maps\_utility::add_start( "start_stealth_2", ::start_stealth_2, undefined, ::stealth_area_2_setup ); maps\_utility::add_start( "start_cave", ::start_cave, undefined, ::cave_setup ); maps\_utility::add_start( "start_sonar", ::start_sonar, undefined, ::sonar_setup ); maps\_utility::add_start( "start_sonar_mines", ::start_sonar_mines, undefined, ::sonar_mine_setup ); maps\_utility::add_start( "start_new_trench", ::start_new_trench, undefined, ::new_trench_setup ); maps\_utility::add_start( "start_new_canyon", ::start_new_canyon, undefined, ::new_canyon_setup ); maps\_utility::add_start( "start_depth_charges", ::start_depth_charges, undefined, ::depth_charges_setup ); maps\_utility::add_start( "start_big_wreck", ::start_big_wreck, undefined, ::big_wreck_setup ); maps\_utility::add_start( "start_big_wreck_2", ::start_big_wreck_2, undefined, ::big_wreck_2_setup ); maps\_utility::add_start( "end_tunnel_swim", ::start_end_tunnel_swim, undefined, maps\ship_graveyard_code::end_tunnel_swim ); maps\_utility::add_start( "test_area_1", ::start_test_1, undefined ); maps\_utility::add_start( "test_area_2", ::start_test_2, undefined ); maps\_utility::set_default_start( "start_tutorial" ); maps\ship_graveyard_anim::main(); maps\_utility::setsaveddvar_cg_ng( "r_specularColorScale", 2.5, 3.5 ); if ( maps\_utility::is_gen4() ) { } if ( getdvar( "createfx", "" ) == "on" ) { level.struct_class_names = undefined; common_scripts\utility::struct_class_init(); var_3 = common_scripts\utility::getstruct( "lighthouse_node", "targetname" ); var_4 = spawn( "script_model", ( 0, 0, 0 ) ); var_4 setmodel( "vehicle_lcs_destroyed_front" ); var_4.animname = "lcs_front"; var_4 maps\_anim::setanimtree(); var_5 = spawn( "script_model", ( 0, 0, 0 ) ); var_5 setmodel( "vehicle_lcs_destroyed_back" ); var_5.animname = "lcs_back"; var_5 maps\_anim::setanimtree(); var_3 maps\_anim::anim_first_frame( [ var_4, var_5 ], "lighthouse_fall" ); level.struct_class_names = undefined; } maps\createart\ship_graveyard_art::main(); maps\ship_graveyard_fx::main(); maps\ship_graveyard_precache::main(); thread maps\ship_graveyard_fx::mask_interactives(); maps\_load::main(); if ( level.xenon ) setsaveddvar( "r_texFilterProbeBilinear", 1 ); if ( !maps\_utility::is_gen4() ) setsaveddvar( "sm_sunshadowscale", 0.55 ); if ( maps\_utility::is_gen4() ) { maps\_art::disable_ssao_over_time( 40 ); setsaveddvar( "r_tessellationFactor", 40 ); } maps\ship_graveyard_audio::main(); init_level_flags(); maps\ship_graveyard_util::paired_death_restart(); thread set_dof_for_player_mask(); maps\_swim_player::init_player_swim_anims(); level.water_level_z = common_scripts\utility::get_target_ent( "water_level_org" ); level.water_level_z = level.water_level_z.origin[2]; level.default_goalradius = 64; maps\ship_graveyard_stealth::stealth_init(); level.player thread maps\ship_graveyard_stealth::player_stealth(); level.balloon_count = 0; common_scripts\utility::array_thread( getentarray( "salvage_cargo", "script_noteworthy" ), maps\ship_graveyard_util::salvage_cargo_setup ); common_scripts\utility::array_thread( getentarray( "moveup_when_clear", "targetname" ), maps\ship_graveyard_util::move_up_when_clear ); common_scripts\utility::array_thread( getentarray( "trigger_depth_charges", "targetname" ), maps\ship_graveyard_util::trigger_depth_charges ); common_scripts\utility::array_thread( getentarray( "dyn_balloon", "targetname" ), maps\ship_graveyard_util::dyn_balloon_think ); common_scripts\utility::array_thread( getentarray( "dyn_balloon_new", "targetname" ), maps\ship_graveyard_util::new_dyn_balloon_think ); common_scripts\utility::array_thread( getentarray( "shark_go", "targetname" ), maps\ship_graveyard_util::shark_go_trig ); common_scripts\utility::array_thread( getentarray( "trigger_multiple_fx_volume_off", "classname" ), maps\ship_graveyard_util::trigger_multiple_fx_volume_off_target ); common_scripts\utility::array_thread( getentarray( "cull_trigger", "targetname" ), maps\ship_graveyard_util::cull_trigger_logic ); maps\_utility::array_spawn_function( vehicle_getspawnerarray(), maps\ship_graveyard_util::vehicle_setup ); maps\_utility::array_spawn_function( getspawnerarray(), maps\ship_graveyard_util::make_swimmer ); maps\_utility::array_spawn_function( getspawnerarray(), maps\ship_graveyard_util::add_headlamp ); maps\_utility::array_spawn_function( getspawnerarray(), maps\ship_graveyard_stealth::ai_stealth_init ); maps\_utility::array_spawn_function( getspawnerarray(), maps\ship_graveyard_util::track_death ); maps\_utility::array_spawn_function( getspawnerarray(), maps\ship_graveyard_util::read_parameters ); maps\_utility::array_spawn_function( getentarray( "actor_test_enemy_shark_dog", "classname" ), maps\ship_graveyard_util::teleport_to_target ); maps\_utility::array_spawn_function( getentarray( "actor_test_enemy_shark_dog", "classname" ), maps\_swim_ai::underwater_blood ); maps\_utility::array_spawn_function_noteworthy( "jumper", maps\ship_graveyard_util::jump_into_water ); maps\_utility::array_spawn_function_noteworthy( "ground_hug_sdv", maps\ship_graveyard_util::sdv_silt_kickup ); maps\_utility::array_spawn_function_targetname( "sdv_follow", maps\ship_graveyard_code::sdv_follow_spotted_react ); maps\_utility::array_spawn_function_targetname( "sdv_follow", maps\ship_graveyard_util::sdv_patrol_setup ); maps\_utility::array_spawn_function_targetname( "sdv_follow", common_scripts\utility::flag_set, "small_wreck_sdv_spawned" ); maps\_utility::array_spawn_function_targetname( "sdv_follow", maps\ship_graveyard_util::sdv_play_sound_on_entity ); maps\_utility::array_spawn_function_targetname( "sdv_follow_2", maps\ship_graveyard_util::sdv_patrol_setup ); maps\_utility::array_spawn_function_targetname( "sdv_follow_2", maps\ship_graveyard_code::sdv_follow_2_passby_audio ); maps\_utility::array_spawn_function_targetname( "stealth_2_sub_1", maps\ship_graveyard_code::sdv_stealth_2_sub_1_passby_audio ); maps\_utility::array_spawn_function_targetname( "stealth_2_sub_2", maps\ship_graveyard_code::sdv_stealth_2_sub_2_passby_audio ); maps\_utility::array_spawn_function_targetname( "a1_patrol_1", maps\ship_graveyard_code::a1_patrol_1_setup ); maps\_utility::array_spawn_function_targetname( "a1_patrol_2", maps\ship_graveyard_code::a1_patrol_1_setup ); maps\_utility::array_spawn_function_targetname( "stealth_1_riser", maps\ship_graveyard_util::teleport_to_target ); maps\_utility::array_spawn_function_targetname( "stealth_1_zodiac", maps\ship_graveyard_code::stealth_1_zodiac_setup ); maps\_utility::array_spawn_function_targetname( "stealth_1_riser", maps\_utility::set_moveplaybackrate, 0.85 ); maps\_utility::array_spawn_function_targetname( "stealth_2_guys", maps\ship_graveyard_util::teleport_to_target ); maps\_utility::array_spawn_function_targetname( "stealth_2_guys_b", maps\ship_graveyard_util::teleport_to_target ); maps\_utility::array_spawn_function_targetname( "stealth_2_guys_b", maps\ship_graveyard_util::stop_path_on_damage ); maps\_utility::array_spawn_function_targetname( "stealth_2_backup", maps\ship_graveyard_util::teleport_to_target ); maps\_utility::array_spawn_function_targetname( "sonar_boat_cave", maps\ship_graveyard_util::littoral_ship_lights ); maps\_utility::array_spawn_function_targetname( "sonar_boat_cave", maps\ship_graveyard_code::sonar_ping_light_think ); maps\_utility::array_spawn_function_targetname( "sonar_boat_cave", maps\ship_graveyard_code::sonar_boat_cave_think ); maps\_utility::array_spawn_function_targetname( "sonar_boat_cave", maps\ship_graveyard_code::sonar_boat_cave_quake ); maps\_utility::array_spawn_function_targetname( "sonar_boat_cave", maps\ship_graveyard_code::sonar_boat_think ); maps\_utility::array_spawn_function_targetname( "sonar_boat", maps\ship_graveyard_code::sonar_boat_audio_e3 ); maps\_utility::array_spawn_function_targetname( "lcs_abovewater", maps\ship_graveyard_util::lcs_intro_setup ); maps\_utility::array_spawn_function_targetname( "sonar_boat", maps\ship_graveyard_util::lcs_setup ); maps\_utility::array_spawn_function_targetname( "sonar_boat_cave", maps\ship_graveyard_util::lcs_setup ); maps\_utility::array_spawn_function_targetname( "sonar_boat_late", maps\ship_graveyard_util::lcs_setup ); maps\_utility::array_spawn_function_targetname( "intro_shark_model_veh", maps\ship_graveyard_util::shark_vehicle ); maps\_utility::array_spawn_function_targetname( "big_wreck_shark_model_veh", maps\ship_graveyard_util::shark_vehicle ); maps\_utility::array_spawn_function_targetname( "nc_enemies_1", maps\ship_graveyard_util::teleport_to_target ); maps\_utility::array_spawn_function_targetname( "nc_enemies_2", maps\ship_graveyard_util::go_to_nodes_off_sub ); maps\_utility::array_spawn_function_targetname( "new_canyon_jump_1", maps\ship_graveyard_code::canyon_jumper_setup ); maps\_utility::array_spawn_function_targetname( "dc_enemies_1", maps\ship_graveyard_util::teleport_to_target ); maps\_utility::add_earthquake( "small", 0.3, 0.6, 2048 ); maps\_utility::add_earthquake( "med", 0.6, 0.7, 2048 ); maps\_utility::add_earthquake( "large", 0.7, 1.4, 2048 ); maps\ship_graveyard_util::spawn_baker(); maps\ship_graveyard_util::underwater_setup(); createthreatbiasgroup( "ignoring_baker" ); createthreatbiasgroup( "baker" ); setignoremegroup( "baker", "ignoring_baker" ); level.baker setthreatbiasgroup( "baker" ); thread maps\ship_graveyard_code::sonar_wreck_think(); thread maps\ship_graveyard_code::stealth_2_middle_boat_think(); thread maps\ship_graveyard_code::baker_weld_door(); thread maps\ship_graveyard_code::cave_flashlight_logic(); level.sonar_wreck_crash_after = getentarray( "sonar_wreck_crash_after", "targetname" ); common_scripts\utility::array_call( level.sonar_wreck_crash_after, ::hide ); maps\_colors::add_cover_node( "Path 3D" ); maps\_colors::add_cover_node( "Cover Stand 3D" ); maps\_colors::add_cover_node( "Cover Right 3D" ); maps\_colors::add_cover_node( "Cover Left 3D" ); maps\_colors::add_cover_node( "Cover Up 3D" ); createthreatbiasgroup( "easy_kills" ); setthreatbias( "easy_kills", "allies", 500 ); createthreatbiasgroup( "not_a_threat" ); setthreatbias( "not_a_threat", "axis", 10 ); maps\_utility::battlechatter_off( "axis" ); maps\_utility::battlechatter_off( "allies" ); level.player notifyonplayercommand( "fire weapon", "+attack" ); level.player notifyonplayercommand( "fire weapon", "+attack_akimbo_accessible" ); level.player notifyonplayercommand( "used ads", "+toggleads_throw" ); level.player notifyonplayercommand( "used ads", "+speed_throw" ); level.oldff_block = getdvar( "ai_friendlyFireBlockDuration" ); level.player notifyonplayercommand( "melee_button_pressed", "+melee" ); level.player notifyonplayercommand( "melee_button_pressed", "+melee_breath" ); level.player notifyonplayercommand( "melee_button_pressed", "+melee_zoom" ); level.shark_attack_playbackrate = 6; level.player.gs.custombreathingtime = 0.85; var_6 = getent( "grab_torpedo", "targetname" ); var_6 common_scripts\utility::trigger_off(); setsaveddvar( "r_hudOutlineWidth", 2 ); setsaveddvar( "r_hudOutlineEnable", 1 ); common_scripts\utility::create_dvar( "demo_mode", 0 ); thread objectives(); level.weld_use_trigger = common_scripts\utility::get_target_ent( "weld_use_trigger" ); level.weld_use_trigger common_scripts\utility::trigger_off(); setsaveddvar( "fx_alphathreshold", 5 ); setdvar( "shpg_torpedo_tries", 0 ); if ( !maps\_utility::is_gen4() ) { var_7 = getentarray( "trigger_multiple_depthoffield", "classname" ); common_scripts\utility::array_thread( var_7, common_scripts\utility::trigger_off ); } } objectives() { objective_add( maps\_utility::obj( "1" ), "current", &"SHIP_GRAVEYARD_OBJ_1" ); common_scripts\utility::flag_wait( "sonar_boat_explode" ); objective_state( maps\_utility::obj( "1" ), "done" ); common_scripts\utility::flag_wait( "drown_unlink_player" ); objective_add( maps\_utility::obj( "2" ), "current", &"SHIP_GRAVEYARD_OBJ_2" ); common_scripts\utility::flag_wait( "the_end" ); objective_state( maps\_utility::obj( "2" ), "done" ); } set_motion_blur() { if ( maps\_utility::is_gen4() ) { setsaveddvar( "r_mbEnable", 2 ); setsaveddvar( "r_mbCameraRotationInfluence", 2 ); setsaveddvar( "r_mbCameraTranslationInfluence", 0.01 ); setsaveddvar( "r_mbModelVelocityScalar", 0.7 ); setsaveddvar( "r_mbStaticVelocityScalar", 0.2 ); } } set_dof_for_player_mask() { if ( maps\_utility::is_gen4() ) { level.player setviewmodeldepthoffield( 0, 17.0112 ); level.player enableforceviewmodeldof(); } } custom_intro_screen_func() { common_scripts\utility::flag_wait( "start_swim" ); wait 6; maps\_introscreen::introscreen( 1 ); } init_level_flags() { common_scripts\utility::flag_init( "pause_dynamic_dof" ); common_scripts\utility::flag_init( "greenlight_next_phase" ); common_scripts\utility::flag_init( "start_swim" ); common_scripts\utility::flag_init( "baker_at_wreck" ); common_scripts\utility::flag_init( "wreck_approach_guys_dead" ); common_scripts\utility::flag_init( "clear_to_enter_wreck" ); common_scripts\utility::flag_init( "small_wreck_sdv_spawned" ); common_scripts\utility::flag_init( "baker_at_small_wreck" ); common_scripts\utility::flag_init( "move_to_stealth_1" ); common_scripts\utility::flag_init( "clear_to_enter_cave" ); common_scripts\utility::flag_init( "cave_sonar" ); common_scripts\utility::flag_init( "start_sonar_pings" ); common_scripts\utility::flag_init( "sonar_clear_to_go" ); common_scripts\utility::flag_init( "welding_done" ); common_scripts\utility::flag_init( "start_trench" ); common_scripts\utility::flag_init( "start_big_wreck" ); common_scripts\utility::flag_init( "depth_charge_muffle" ); common_scripts\utility::flag_init( "sonar_boat_explode" ); common_scripts\utility::flag_init( "mine_moveup" ); common_scripts\utility::flag_init( "first_damage_state" ); common_scripts\utility::flag_init( "wreck_tilt" ); common_scripts\utility::flag_init( "pause_sonar_pings" ); common_scripts\utility::flag_init( "baker_ready_at_sharks" ); common_scripts\utility::flag_init( "start_new_trench" ); common_scripts\utility::flag_init( "trench_allow_things_to_crash" ); common_scripts\utility::flag_init( "shark_a_clear" ); common_scripts\utility::flag_init( "shark_b_clear" ); common_scripts\utility::flag_init( "shark_a_clear_comeback" ); common_scripts\utility::flag_init( "shark_b_clear_comeback" ); common_scripts\utility::flag_init( "shark_b_clear_2" ); common_scripts\utility::flag_init( "shark_room_player_can_go" ); common_scripts\utility::flag_init( "shark_eating_player" ); common_scripts\utility::flag_init( "shark_always_eat_front" ); common_scripts\utility::flag_init( "player_can_rise" ); common_scripts\utility::flag_init( "player_can_fall" ); common_scripts\utility::flag_init( "player_can_sprint" ); common_scripts\utility::flag_init( "ai_ready_to_weld" ); common_scripts\utility::flag_init( "player_ready_to_weld" ); common_scripts\utility::flag_init( "player_on_torpedo" ); common_scripts\utility::flag_init( "player_holding_torpedo" ); common_scripts\utility::flag_init( "go_to_surface" ); common_scripts\utility::flag_init( "baker_past_sharks" ); common_scripts\utility::flag_init( "baker_prepare_to_leave_flag" ); common_scripts\utility::flag_init( "player_warp_hesh" ); common_scripts\utility::flag_init( "grabbed_torpedo" ); common_scripts\utility::flag_init( "go_into_cave_vo" ); common_scripts\utility::flag_init( "to_cave_vo_begin" ); common_scripts\utility::flag_init( "stop_npc_weld_sfx_loop" ); common_scripts\utility::flag_init( "stop_player_weld_sfx_loop" ); common_scripts\utility::flag_init( "fade_sound_player_torch1" ); common_scripts\utility::flag_init( "fade_sound_player_torch2" ); common_scripts\utility::flag_init( "fade_sound_player_torch3" ); common_scripts\utility::flag_init( "fade_sound_player_torch4" ); common_scripts\utility::flag_init( "fade_sound_player_torch5" ); common_scripts\utility::flag_init( "big_wreck_wait_turnaround" ); common_scripts\utility::flag_init( "turn_on_bubbles_after_torpedo" ); common_scripts\utility::flag_init( "torpedo_out" ); common_scripts\utility::flag_init( "player_chose_auto" ); common_scripts\utility::flag_init( "picked_torpedo_mode" ); common_scripts\utility::flag_init( "wreck_jumpers_alive" ); common_scripts\utility::flag_init( "wreck_patrol_in" ); common_scripts\utility::flag_init( "exiting_to_end" ); common_scripts\utility::flag_init( "spotted_at_wreck" ); common_scripts\utility::flag_init( "end_of_cave_path" ); common_scripts\utility::flag_init( "stealth2_approach_guys_damaged" ); level.deadly_sharks = []; } start_test_1() { maps\ship_graveyard_util::set_start_positions( "test_area_1" ); common_scripts\utility::flag_set( "start_swim" ); maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "test_sub" ); } start_test_2() { maps\ship_graveyard_util::set_start_positions( "shoot_mines" ); common_scripts\utility::flag_set( "start_swim" ); level.player maps\_utility::vision_set_fog_changes( "shpg_lcs_detonation", 1 ); thread lcs_exploder_loop(); } lcs_exploder_loop() { for (;;) { common_scripts\utility::exploder( "lighthouse_lcs_detonation" ); wait 5; } } start_test_above_1() { maps\ship_graveyard_util::set_start_positions( "test_abovewater_start" ); } start_test_above_2() { maps\ship_graveyard_util::set_start_positions( "test_abovewater_start" ); level.player disableweapons(); level.player allowcrouch( 0 ); level.player allowprone( 0 ); level.player allowjump( 0 ); level.player maps\_utility::player_speed_percent( 10, 0.1 ); level.baker maps\_utility::set_generic_idle_anim( "surface_swim_idle" ); level.player_view_pitch_down = getdvar( "player_view_pitch_down" ); level.player maps\_underwater::player_scuba_mask(); setsaveddvar( "player_view_pitch_down", 5 ); level.player enableslowaim( 0.5, 0.5 ); var_0 = getentarray( "bobbing_object", "targetname" ); common_scripts\utility::array_thread( var_0, maps\ship_graveyard_surface::pitch_and_roll ); level.ground_ref_ent = common_scripts\utility::spawn_tag_origin(); level.player playersetgroundreferenceent( level.ground_ref_ent ); level.ground_ref_ent.script_max_left_angle = 8; level.ground_ref_ent.script_duration = 2; level.ground_ref_ent thread maps\ship_graveyard_surface::pitch_and_roll(); var_1 = common_scripts\utility::get_target_ent( "start_fishing_boat" ); var_1.script_max_left_angle = 8; var_1.script_duration = 4; var_1 thread maps\ship_graveyard_surface::pitch_and_roll(); wait 0.1; level.player freezecontrols( 0 ); } start_greenlight() { maps\_hud_util::start_overlay( "black" ); setdvar( "greenlight", 1 ); maps\ship_graveyard_util::set_start_positions( "start_tutorial" ); common_scripts\utility::flag_set( "start_swim" ); } start_tutorial() { maps\_hud_util::start_overlay( "white" ); setdvar( "greenlight", 0 ); maps\ship_graveyard_util::set_start_positions( "start_tutorial" ); common_scripts\utility::flag_set( "start_swim" ); } start_swim() { maps\ship_graveyard_util::set_start_positions( "start_swim" ); common_scripts\utility::flag_set( "start_swim" ); } start_wreck_approach() { maps\ship_graveyard_util::set_start_positions( "start_wreck_approach" ); common_scripts\utility::flag_set( "start_swim" ); thread maps\ship_graveyard_code::wreck_zodiac_event(); wait 1; while ( distance2d( level.player.origin, level.baker.origin ) < 300 ) wait 0.05; common_scripts\utility::flag_set( "baker_at_wreck" ); } start_small_wreck() { maps\ship_graveyard_util::set_start_positions( "start_small_wreck" ); common_scripts\utility::flag_set( "start_swim" ); common_scripts\utility::flag_set( "clear_to_enter_wreck" ); } start_stealth_1() { maps\ship_graveyard_util::set_start_positions( "stealth_area_1" ); common_scripts\utility::flag_set( "start_swim" ); common_scripts\utility::flag_set( "move_to_stealth_1" ); level.baker thread maps\_utility::follow_path_and_animate( common_scripts\utility::get_target_ent( "baker_stealth_1_path" ) ); } start_stealth_2() { maps\ship_graveyard_util::set_start_positions( "stealth_area_2" ); common_scripts\utility::flag_set( "start_swim" ); thread maps\ship_graveyard_code::baker_move_to_stealth_2(); } start_cave() { maps\ship_graveyard_util::set_start_positions( "cave_event" ); common_scripts\utility::flag_set( "start_swim" ); common_scripts\utility::flag_set( "clear_to_enter_cave" ); } start_sonar() { maps\ship_graveyard_util::set_start_positions( "sonar_event" ); common_scripts\utility::flag_set( "start_swim" ); common_scripts\utility::flag_set( "inside_cave" ); common_scripts\utility::flag_set( "end_of_cave_path" ); thread maps\ship_graveyard_code::sonar_boat_e3(); } start_sonar_mines() { maps\ship_graveyard_util::set_start_positions( "shoot_mines" ); common_scripts\utility::flag_set( "start_swim" ); common_scripts\utility::flag_set( "sonar_clear_to_go" ); maps\_utility::delaythread( 1, common_scripts\utility::flag_clear, "sonar_clear_to_go" ); var_0 = maps\_vehicle::spawn_vehicle_from_targetname( "sonar_boat_late" ); var_0 thread maps\ship_graveyard_util::littoral_ship_lights(); level.sonar_boat = var_0; } start_trench() { maps\ship_graveyard_util::set_start_positions( "trench" ); common_scripts\utility::flag_set( "start_swim" ); thread maps\_hud_util::fade_out( 0 ); maps\_utility::delaythread( 0.2, common_scripts\utility::flag_set, "start_trench" ); } start_canyon() { maps\ship_graveyard_util::set_start_positions( "canyon" ); common_scripts\utility::flag_set( "start_swim" ); maps\ship_graveyard_stealth::stealth_disable(); } start_big_wreck() { maps\ship_graveyard_util::set_start_positions( "big_wreck" ); common_scripts\utility::flag_set( "start_swim" ); maps\ship_graveyard_stealth::stealth_disable(); level.baker.moveplaybackrate = 1.5; level.baker.movetransitionrate = level.baker.moveplaybackrate; level.baker thread maps\_utility::follow_path_and_animate( common_scripts\utility::get_target_ent( "baker_enter_big_wreck_middle" ) ); } start_big_wreck_2() { maps\ship_graveyard_util::set_start_positions( "big_wreck_2" ); common_scripts\utility::flag_set( "start_swim" ); common_scripts\utility::flag_set( "inside_big_wreck" ); maps\ship_graveyard_stealth::stealth_disable(); level.baker.moveplaybackrate = 1; level.baker.movetransitionrate = level.baker.moveplaybackrate; var_0 = common_scripts\utility::get_target_ent( "dead_body_spawner" ); var_0 thread maps\ship_graveyard_util::dead_body_spawner(); thread maps\ship_graveyard_code::big_wreck_fake_shake(); } start_new_trench() { maps\ship_graveyard_util::set_start_positions( "new_trench" ); common_scripts\utility::flag_set( "start_swim" ); thread maps\_hud_util::fade_out( 0 ); maps\_utility::delaythread( 0.2, common_scripts\utility::flag_set, "start_new_trench" ); } start_new_canyon() { maps\ship_graveyard_util::set_start_positions( "new_canyon" ); common_scripts\utility::flag_set( "start_swim" ); maps\ship_graveyard_stealth::stealth_disable(); level.baker thread maps\_utility::follow_path_and_animate( common_scripts\utility::get_target_ent( "new_canyon_start_path" ), 0 ); } start_depth_charges() { maps\ship_graveyard_util::set_start_positions( "depth_charges" ); common_scripts\utility::flag_set( "start_swim" ); maps\ship_graveyard_stealth::stealth_disable(); level.baker maps\_utility::set_force_color( "r" ); } start_end_tunnel_swim() { maps\ship_graveyard_util::set_start_positions( "end_tunnel_swim" ); common_scripts\utility::flag_set( "start_swim" ); maps\ship_graveyard_stealth::stealth_disable(); thread maps\_utility::music_play( "mus_shipgrave_collapse_travel" ); level.baker.goalradius = 128; level.baker.moveplaybackrate = 1.1; level.baker.movetransitionrate = level.baker.moveplaybackrate; level.baker.pathrandompercent = 0; level.baker maps\_utility::disable_exits(); level.baker thread maps\_anim::anim_generic_run( level.baker, "swimming_idle_to_aiming_move_180" ); wait 0.5; level.baker thread maps\ship_graveyard_util::dyn_swimspeed_enable(); level.baker thread maps\_utility::follow_path_and_animate( common_scripts\utility::get_target_ent( "baker_end_level_path_start" ) ); level.baker maps\_utility::delaythread( 2, maps\_utility::enable_exits ); thread maps\ship_graveyard_code::end_dialogue(); thread maps\ship_graveyard_code::depth_charge_death(); } start_end_surface() { maps\ship_graveyard_util::set_start_positions( "end_tunnel_above_surface" ); maps\ship_graveyard_stealth::stealth_disable(); common_scripts\utility::flag_set( "go_to_surface" ); } above_water_start_setup() { maps\ship_graveyard_surface::main(); } tutorial_setup() { common_scripts\utility::flag_wait( "start_swim" ); level.player maps\_utility::vision_set_fog_changes( "", 0.1 ); thread common_scripts\utility::play_sound_in_space( "scn_player_dive_in_e3", level.player.origin ); level.player unlink(); level.baker unlink(); level.baker maps\_utility::anim_stopanimscripted(); level.baker notify( "kill surface unlink" ); if ( isdefined( level.player_rig ) ) level.player_rig delete(); setsaveddvar( "player_swimSpeed", 75 ); level.player disableweapons(); wait 0.1; thread maps\ship_graveyard_code::wreck_zodiac_event(); thread give_back_aim_over_time(); wait 0.1; thread maps\ship_graveyard_code::tutorial_player_recover(); wait 0.1; thread maps\ship_graveyard_code::intro_track_player_gunfire(); thread maps\ship_graveyard_util::sardines_path_sound( "sardines_first_path" ); level.player setwatersheeting( 1, 2 ); maps\_hud_util::fade_in( 1, "white" ); level.baker.goalradius = 128; level.baker.goalheight = 128; level.baker.moveplaybackrate = 1; level.baker thread maps\_utility::follow_path_and_animate( common_scripts\utility::get_target_ent( "tutorial_path" ) ); wait 3; maps\_utility::smart_radio_dialogue( "shipg_hsh_descending" ); wait 1.5; level.baker.moveplaybackrate = 0.8; maps\_utility::smart_radio_dialogue( "shipg_hsh_fiftymeters" ); wait 3; maps\ship_graveyard_util::baker_glint_on(); maps\_utility::smart_radio_dialogue( "shipg_bkr_approach" ); thread maps\_utility::music_play( "mus_shipgrave_stealth1" ); level.baker.moveplaybackrate = 1; level notify( "disable_tutorial_slow_aim" ); level.player disableslowaim(); level.shark_heartbeat_distances = [ 650, 250, 200, 150 ]; } give_back_aim_over_time() { level endon( "disable_tutorial_slow_aim" ); level.player enableslowaim( 0.1, 0.1 ); wait 3; var_0 = 0; while ( var_0 < 1 ) { level.player enableslowaim( var_0, var_0 ); var_0 = var_0 + 0.01; wait 0.15; } } fade_in_blue( var_0, var_1 ) { var_2 = maps\_hud_util::get_optional_overlay( var_1 ); var_2 fadeovertime( var_0 ); var_2.color = ( 0, 0, 0.4 ); var_2.alpha = 0; } intro_setup() { common_scripts\utility::flag_wait( "start_intro" ); level.baker.moveplaybackrate = 1; level.baker.movetransitionrate = level.baker.moveplaybackrate; level.baker thread maps\ship_graveyard_util::dyn_swimspeed_enable(); thread maps\ship_graveyard_code::intro_dialgue(); thread maps\ship_graveyard_code::baker_path_to_wreck(); } wreck_approach_setup() { level endon( "stop_for_e3" ); common_scripts\utility::flag_wait( "start_small_wreck" ); if ( maps\_utility::is_gen4() ) thread maps\_utility::lerp_saveddvar( "r_tessellationFactor", 60, 8 ); common_scripts\utility::flag_clear( "allow_killfirms" ); thread maps\ship_graveyard_util::delete_fish_in_volume( "fish_start_area" ); level.shark_heartbeat_distances = [ 400, 250, 200, 150 ]; thread maps\ship_graveyard_code::baker_approach(); thread maps\ship_graveyard_code::baker_wreck_cleanup(); thread maps\ship_graveyard_code::baker_enter_wreck(); thread maps\ship_graveyard_code::wreck_hint_up(); } small_wreck_setup() { level endon( "stop_for_e3" ); common_scripts\utility::flag_wait( "entering_small_wreck" ); thread maps\ship_graveyard_code::wreck_spotted_reaction(); thread maps\ship_graveyard_code::wreck_cargo_surprise(); thread maps\ship_graveyard_code::transition_to_stealth_1(); } stealth_area_1_setup() { level endon( "stop_for_e3" ); if ( maps\ship_graveyard_util::greenlight_check() ) return; common_scripts\utility::flag_wait( "start_stealth_area_1" ); level.baker maps\ship_graveyard_util::dyn_swimspeed_disable(); common_scripts\utility::flag_set( "allow_killfirms" ); maps\_utility::delaythread( 1, common_scripts\utility::flag_clear, "no_shark_heartbeat" ); maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "sdv_follow_2" ); thread maps\ship_graveyard_code::stealth_1_encounter(); thread maps\ship_graveyard_code::stealth_1_dialogue(); } stealth_area_2_setup() { level endon( "stop_for_e3" ); if ( maps\ship_graveyard_util::greenlight_check() ) return; common_scripts\utility::flag_wait( "start_stealth_area_2" ); maps\_utility::autosave_stealth(); thread maps\ship_graveyard_code::stealth_2_encounter(); thread maps\ship_graveyard_code::stealth_2_dialogue(); } cave_setup() { level endon( "stop_for_e3" ); if ( maps\ship_graveyard_util::greenlight_check() ) return; common_scripts\utility::flag_wait_any( "clear_to_enter_cave", "cave_sonar" ); maps\_utility::autosave_stealth(); if ( common_scripts\utility::flag( "cave_sonar" ) ) { var_0 = getaiarray( "axis" ); foreach ( var_2 in var_0 ) var_2 kill(); } level.baker.moveplaybackrate = 1; level.baker.movetransitionrate = level.baker.moveplaybackrate; thread maps\ship_graveyard_code::cave_dialogue(); thread maps\ship_graveyard_code::sonar_approach(); thread maps\ship_graveyard_code::cave_dust(); thread setup_lcs_audio(); } setup_lcs_audio() { common_scripts\utility::flag_wait( "cave_sonar" ); thread maps\ship_graveyard_code::sonar_boat_audio(); thread maps\ship_graveyard_code::sonar_boat_one_shot_audio(); } sonar_setup() { common_scripts\utility::flag_wait( "start_sonar" ); foreach ( var_1 in level.deadly_sharks ) var_1 delete(); var_3 = maps\_utility::getvehiclearray(); foreach ( var_5 in var_3 ) { if ( var_5.vehicletype != "lcs" ) var_5 delete(); } level.baker.pathrandompercent = 0; setsaveddvar( "glass_linear_vel", "100 300" ); thread maps\ship_graveyard_code::first_sonar_ping(); thread maps\ship_graveyard_code::weaponized_sonar_pings(); thread maps\ship_graveyard_code::sonar_door_think(); thread maps\ship_graveyard_util::sardines_path_sound( "lighthouse_sardines", "scn_fish_swim_away_lighthouse" ); } sonar_mine_setup() { common_scripts\utility::flag_wait( "start_sonar_mines" ); setdvar( "shpg_torpedo_tries", 0 ); common_scripts\utility::array_thread( getentarray( "dyn_balloon", "targetname" ), maps\ship_graveyard_util::dyn_balloon_delete ); thread maps\ship_graveyard_code::torpedo_the_ship(); common_scripts\utility::waitframe(); if ( maps\ship_graveyard_code::player_safe_from_sonar() ) { level.sonar_times_hit = 0; maps\_utility::autosave_by_name( "sonar_mines" ); } } new_trench_setup() { common_scripts\utility::flag_wait( "start_new_trench" ); thread maps\ship_graveyard_util::delete_fish_in_volume( "area_1_fx_vol" ); level.player setclienttriggeraudiozone( "ship_graveyard_rescue", 6 ); setsaveddvar( "ai_friendlyFireBlockDuration", 0 ); thread maps\ship_graveyard_new_trench::main(); thread maps\ship_graveyard_code::base_alarm(); thread maps\ship_graveyard_util::sardines_path_sound( "sardines_after_helicrash", "scn_fish_swim_away_silent" ); } new_canyon_setup() { common_scripts\utility::flag_wait( "start_new_canyon" ); setsaveddvar( "ai_friendlyFireBlockDuration", level.oldff_block ); thread maps\ship_graveyard_new_trench::canyon_main(); } depth_charges_setup() { common_scripts\utility::flag_wait( "start_depth_charges" ); setsaveddvar( "ai_friendlyFireBlockDuration", 0 ); level.baker.baseaccuracy = 3; thread maps\ship_graveyard_code::depth_charges(); thread maps\ship_graveyard_code::boat_fall_trigs(); thread maps\ship_graveyard_util::sardines_path_sound( "sardines_depthcharges_path", "scn_fish_swim_away_silent" ); } big_wreck_setup() { common_scripts\utility::flag_wait( "start_big_wreck" ); foreach ( var_1 in level.deadly_sharks ) var_1 delete(); level.deadly_sharks = []; setsaveddvar( "glass_linear_vel", "20 40" ); common_scripts\utility::flag_clear( "_stealth_spotted" ); setsaveddvar( "player_swimSpeed", 75 ); common_scripts\utility::flag_set( "depth_charge_muffle" ); common_scripts\utility::flag_set( "shark_always_eat_front" ); level.baker.moveplaybackrate = 1; level.baker.movetransitionrate = level.baker.moveplaybackrate; var_3 = common_scripts\utility::get_target_ent( "dead_body_spawner" ); var_3 thread maps\ship_graveyard_util::dead_body_spawner(); if ( maps\_utility::is_gen4() ) { thread maps\_utility::lerp_saveddvar( "r_tessellationFactor", 25, 10 ); thread maps\_art::tess_set_goal( 300, 300, 1 ); } thread maps\ship_graveyard_code::big_wreck_dialogue(); thread maps\ship_graveyard_code::big_wreck_fake_shake(); thread maps\ship_graveyard_code::big_wreck_kill_when_outside(); thread maps\ship_graveyard_code::big_wreck_baker_stealth(); } big_wreck_2_setup() { level.baker maps\_utility::set_battlechatter( 0 ); thread maps\ship_graveyard_code::big_wreck_shark(); thread maps\ship_graveyard_code::shark_room(); common_scripts\utility::flag_wait( "start_big_wreck_2" ); common_scripts\utility::flag_set( "shark_always_eat_front" ); maps\_utility::autosave_stealth(); setsaveddvar( "player_swimVerticalSpeed", 55 ); thread maps\ship_graveyard_code::big_wreck_2_dialogue(); thread maps\ship_graveyard_code::big_wreck_collapse(); common_scripts\utility::flag_wait( "player_past_sharks" ); setsaveddvar( "glass_linear_vel", "100 300" ); common_scripts\utility::flag_clear( "depth_charge_muffle" ); wait 1; thread maps\ship_graveyard_code::random_depth_charges( "depth_charge_constant_2", 4, 8 ); }