iw6-scripts/maps/skyway.gsc
6arelyFuture ef3d077deb
Some checks failed
lint / Lint on Linux (push) Failing after 9s
build: try to fix this
2024-09-01 12:17:11 +02:00

589 lines
21 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
main()
{
level.timestep = 0.05;
level.credits_only = 0;
if ( getdvarint( "ui_play_credits" ) == 1 )
{
level.credits_only = 1;
level.credits_active = 1;
common_scripts\utility::flag_init( "disable_autosaves" );
common_scripts\utility::flag_set( "disable_autosaves" );
}
maps\_credits::initcredits( "all" );
maps\_utility::set_console_status();
if ( level.ps3 || level.xenon )
{
setsaveddvar( "g_onlyPlayerAreaEntities", 1 );
setsaveddvar( "cg_skipDObjFilterIntoCells", 1 );
setsaveddvar( "r_clampLodScale", 1.0 );
level.ignorewash = 1;
}
if ( level.ps3 )
{
setsaveddvar( "traceScheduler_throttleTraces", 1 );
setsaveddvar( "g_disableBulletPenetration", 1 );
}
maps\_utility::template_level( "skyway" );
maps\createart\skyway_art::main();
maps\skyway_fx::main();
maps\skyway_anim::main();
maps\_utility::set_default_start( "hangar" );
maps\_utility::default_start( ::start_hangar );
maps\_utility::add_start( "hangar_nomove", ::start_hangar_nomove, "hangar_nomove", ::main_hangar, "skyway_intro_tr" );
maps\_utility::add_start( "sat1_nomove", ::start_sat_nomove, "sat1_nomove", ::main_sat1, "skyway_intro_tr" );
maps\_utility::add_start( "sat2_nomove", ::start_sat_nomove, "sat2_nomove", ::main_sat2, "skyway_intro_tr" );
maps\_utility::add_start( "rooftops_nomove", ::start_rt_nomove, "rooftops_nomove", ::main_rooftops, "skyway_intro_tr" );
maps\_utility::add_start( "rooftop_combat_nomove", ::start_rt_combat_nomove, "rooftop_combat_nomove", ::main_roof_combat, "skyway_intro_tr" );
maps\_utility::add_start( "locomotive_nomove", ::start_loco_nomove, "locomotive_nomove", ::main_loco, "skyway_outro_tr" );
maps\_utility::add_start( "loco_standoff_nomove", ::start_loco_standoff_nomove, "loco_standoff_nomove", ::main_loco_standoff, "skyway_outro_tr" );
maps\_utility::add_start( "hangar", ::start_hangar, "hangar", ::main_hangar, "skyway_intro_tr" );
maps\_utility::add_start( "sat1", ::start_sat, "sat1", ::main_sat1, "skyway_intro_tr" );
maps\_utility::add_start( "sat2", ::start_sat, "sat2", ::main_sat2, "skyway_intro_tr" );
maps\_utility::add_start( "rooftops", ::start_rooftops, "rooftops", ::main_rooftops, "skyway_intro_tr" );
maps\_utility::add_start( "rooftop_combat", ::start_roof_combat, "rooftop_combat", ::main_roof_combat, "skyway_intro_tr" );
maps\_utility::add_start( "locomotive", ::start_loco, "locomotive", ::main_loco, "skyway_outro_tr" );
maps\_utility::add_start( "loco_standoff", ::start_loco_standoff, "loco_standoff", ::main_loco_standoff, "skyway_outro_tr" );
maps\_utility::add_start( "end_wreck", ::start_end_wreck, "end_wreck", ::main_end_wreck, "skyway_outro_tr" );
maps\_utility::add_start( "end_swim", ::start_end_swim, "end_swim", ::main_end_swim, "skyway_outro_tr" );
maps\_utility::add_start( "end_beach", ::start_end_beach, "end_beach", ::main_end_beach, "skyway_outro_tr" );
maps\_utility::add_start( "end_beach_final", ::start_end_beach, "end_beach_final", ::main_end_beach, "skyway_outro_tr" );
mission_precache();
maps\_utility::intro_screen_create( &"SKYWAY_INTROSCREEN_TITLE", &"SKYWAY_INTROSCREEN_TIME", &"SKYWAY_INTROSCREEN_LOC", &"SKYWAY_INTROSCREEN_NAME" );
maps\_utility::intro_screen_custom_func( ::introscreen );
maps\_utility::transient_init( "skyway_intro_tr" );
maps\_utility::transient_init( "skyway_outro_tr" );
maps\_load::main();
mission_flag_inits();
mission_global_inits();
setsaveddvar( "moving_platform_rotational_antilag", 1 );
maps\_utility::setsaveddvar_cg_ng( "r_specularColorScale", 2.5, 9.01 );
setsaveddvar( "r_fastmodelprimarylightcheck", 1 );
if ( maps\_utility::is_gen4() )
{
setsaveddvar( "r_mbfastEnable", 1 );
setsaveddvar( "r_mbFastPreset", 0 );
setsaveddvar( "r_mbEnable", 2 );
setsaveddvar( "r_mbCameraRotationInfluence", 1 );
setsaveddvar( "r_mbCameraTranslationInfluence", 0.01 );
setsaveddvar( "r_mbModelVelocityScalar", 0 );
setsaveddvar( "r_mbStaticVelocityScalar", 0.01 );
setsaveddvar( "r_umbraAccurateOcclusionThreshold", -1 );
thread enable_mb_scripted_ents();
}
if ( maps\_utility::is_gen4() )
thread level_motionblur_changes();
maps\skyway_audio::main();
thread maps\skyway_util::player_sway();
thread maps\skyway_util::player_const_quake();
thread maps\skyway_util::player_rumble();
level.player thread maps\skyway_util::ammo_hack();
var_0 = [ "train_hangar", "train_sat_1", "train_sat_2", "train_rt0", "train_rt1", "train_rt2", "train_rt3", "train_loco" ];
level._train = maps\skyway_util::train_build( var_0, "player_train_new_anim" );
level._train thread train_pathing();
if ( !level.credits_only )
thread objectives();
level.player maps\skyway_util::create_view_particle_source();
maps\_utility::add_extra_autosave_check( "fallen_cant_get_up", maps\skyway_util::fall_check, "player not on train -- possibly falling off" );
thread maps\skyway_util::wind_watcher();
var_1 = getspawnerarray();
common_scripts\utility::array_thread( var_1, maps\_utility::add_spawn_function, maps\skyway_vignette::vignette_setup );
common_scripts\utility::array_thread( var_1, maps\_utility::add_spawn_function, maps\skyway_util_ai::opfor_killer_tracker );
maps\skyway_ambient_a10::a10_precache();
maps\skyway_ambient_a10::a10_spawn_funcs();
maps\skyway_util::spawn_allies( "spawner_allies" );
if ( maps\skyway_util::start_point_is_after( "end_swim" ) )
maps\skyway_util::spawn_boss( "actor_boss_injured" );
else
maps\skyway_util::spawn_boss();
mission_post_inits();
thread vision_sets();
thread level_scripted_visionsets();
setsaveddvar( "r_sky_fog_intensity", "0.32" );
setsaveddvar( "r_sky_fog_min_angle", "49.19" );
setsaveddvar( "r_sky_fog_max_angle", "80.17" );
thread level_dof_changes();
thread maps\skyway_util::death_watcher();
thread maps\skyway_util::test_func_on_button();
common_scripts\utility::create_dvar( "magicword", "You shall not pass!" );
level.player thread maps\_utility::playerwatch_unresolved_collision();
level.dopickyautosavechecks = 0;
maps\_utility::set_console_status();
}
mission_precache()
{
maps\skyway_hangar_intro::section_precache();
maps\skyway_sat::section_precache();
maps\skyway_rooftops::section_precache();
maps\skyway_rooftop_combat::section_precache();
maps\skyway_loco::section_precache();
maps\skyway_end_wreck::section_precache();
maps\skyway_end_swim::section_precache();
maps\skyway_endbeach::section_precache();
maps\skyway_precache::main();
maps\_utility::add_hint_string( "15_mins_before", &"SKYWAY_INTROSCREEN_TIMEBEFORE", ::introscreen_hint );
precachemodel( "viewhands_gs_stealth" );
precachemodel( "viewhands_player_gs_stealth" );
precacheitem( "fads" );
precacheitem( "pdw" );
precacheitem( "panzerfaust3_player" );
precacheitem( "semtex_grenade" );
precacheshellshock( "default_nosound" );
precacherumble( "steady_rumble" );
}
mission_flag_inits()
{
maps\skyway_hangar_intro::section_flag_inits();
maps\skyway_sat::section_flag_inits();
maps\skyway_rooftops::section_flag_inits();
maps\skyway_rooftop_combat::section_flag_inits();
maps\skyway_loco::section_flag_inits();
maps\skyway_end_wreck::section_flag_inits();
maps\skyway_end_swim::section_flag_inits();
maps\skyway_endbeach::section_flag_inits();
common_scripts\utility::flag_init( "sw_introscreen_complete" );
common_scripts\utility::flag_init( "flag_quake" );
common_scripts\utility::flag_init( "flag_kill_plane" );
common_scripts\utility::flag_init( "flag_player_view_rotating" );
common_scripts\utility::flag_init( "flag_pause_ambient_train_shakes" );
common_scripts\utility::flag_init( "flag_in_tunnel" );
common_scripts\utility::flag_init( "flag_stop_ambient_airbursts" );
common_scripts\utility::flag_init( "flag_queue_ambient_rog" );
common_scripts\utility::flag_init( "flag_killer_tracker" );
}
mission_post_inits()
{
maps\skyway_hangar_intro::section_post_inits();
maps\skyway_sat::section_post_inits();
maps\skyway_rooftops::section_post_inits();
maps\skyway_rooftop_combat::section_post_inits();
maps\skyway_loco::section_post_inits();
maps\skyway_end_wreck::section_post_inits();
maps\skyway_end_swim::section_post_inits();
maps\skyway_endbeach::section_post_inits();
thread maps\skyway_rooftop_combat::rt_run_cleanup_proc();
}
mission_global_inits()
{
level._allies = [];
level._enemies = [];
level.kill_count = [];
createthreatbiasgroup( "player" );
level.player setthreatbiasgroup( "player" );
}
vision_sets()
{
}
start_hangar()
{
if ( !level.credits_only )
thread maps\skyway_audio::level_start_amb();
maps\skyway_hangar_intro::start();
}
start_hangar_nomove()
{
level.debug_no_move = 1;
thread maps\skyway_util::player_sway_blendto( 0, 0, 0 );
thread maps\skyway_audio::level_start_amb();
maps\skyway_hangar_intro::start();
}
main_hangar()
{
level.player maps\_utility::stop_playerwatch_unresolved_collision();
maps\skyway_hangar_intro::main();
level.player thread maps\skyway_util::flag_wait_func( "flag_hangar_intro_done", maps\_utility::playerwatch_unresolved_collision );
}
start_sat()
{
level.player setclienttriggeraudiozone( "skyway_train_ext", 0.5 );
thread maps\skyway_audio::skyway_train_ambience();
maps\skyway_sat::start();
}
start_sat_nomove()
{
thread maps\skyway_audio::skyway_train_ambience();
level.debug_no_move = 1;
thread maps\skyway_util::player_sway_blendto( 0, 0, 0 );
start_sat();
}
main_sat1()
{
maps\skyway_sat::main_sat1();
}
main_sat2()
{
maps\skyway_sat::main_sat2();
}
start_rooftops()
{
level.player setclienttriggeraudiozone( "skyway_train_ext", 0.5 );
thread maps\skyway_audio::skyway_train_ambience();
maps\skyway_rooftops::start();
}
start_rt_nomove()
{
level.player setclienttriggeraudiozone( "skyway_train_ext", 0.5 );
thread maps\skyway_audio::skyway_train_ambience();
level.debug_no_move = 1;
thread maps\skyway_util::player_sway_blendto( 0, 0, 0 );
maps\skyway_rooftops::start();
}
main_rooftops()
{
maps\skyway_rooftops::main();
}
start_roof_combat()
{
level.player setclienttriggeraudiozone( "skyway_train_ext", 0.5 );
thread maps\skyway_audio::skyway_train_ambience();
maps\skyway_rooftop_combat::start();
}
start_rt_combat_nomove()
{
level.player setclienttriggeraudiozone( "skyway_train_ext", 0.5 );
thread maps\skyway_audio::skyway_train_ambience();
level.debug_no_move = 1;
thread maps\skyway_util::player_sway_blendto( 0, 0, 0 );
maps\skyway_rooftop_combat::start();
}
main_roof_combat()
{
maps\skyway_rooftop_combat::main();
}
start_loco()
{
level.player setclienttriggeraudiozone( "skyway_train_ext", 0.5 );
thread maps\skyway_audio::skyway_train_ambience();
maps\skyway_loco::start_loco();
}
start_loco_nomove()
{
level.player setclienttriggeraudiozone( "skyway_train_ext", 0.5 );
thread maps\skyway_audio::skyway_train_ambience();
level.debug_no_move = 1;
thread maps\skyway_util::player_sway_blendto( 0, 0, 0 );
maps\skyway_loco::start_loco();
}
main_loco()
{
maps\skyway_loco::main_loco();
}
start_loco_standoff_nomove()
{
level.debug_no_move = 1;
thread maps\skyway_util::player_sway_blendto( 0, 0, 0 );
maps\skyway_loco::start_loco_standoff();
}
start_loco_standoff()
{
maps\skyway_loco::start_loco_standoff();
}
main_loco_standoff()
{
level.player maps\_utility::stop_playerwatch_unresolved_collision();
maps\skyway_loco::main_loco_standoff();
}
start_end_wreck()
{
level.player setclienttriggeraudiozone( "skyway_flooding_cart", 0.5 );
level.debug_no_move = 1;
thread maps\skyway_util::player_sway_blendto( 0, 0, 0 );
maps\skyway_end_wreck::start();
}
main_end_wreck()
{
level.player maps\skyway_util::stop_current_car_watcher();
level.player maps\_utility::stop_playerwatch_unresolved_collision();
maps\skyway_end_wreck::main();
}
start_end_swim()
{
level.player setclienttriggeraudiozone( "skyway_underwater", 0.5 );
level.debug_no_move = 1;
thread maps\skyway_util::player_sway_blendto( 0, 0, 0 );
maps\skyway_end_swim::start();
}
main_end_swim()
{
level.player maps\_utility::stop_playerwatch_unresolved_collision();
maps\skyway_end_swim::main();
}
start_end_beach()
{
level.player setclienttriggeraudiozone( "skyway_beach_start", 0.5 );
level.debug_no_move = 1;
thread maps\skyway_util::player_sway_blendto( 0, 0, 0 );
maps\skyway_endbeach::start();
}
main_end_beach()
{
level.player maps\_utility::stop_playerwatch_unresolved_collision();
maps\skyway_endbeach::main();
}
objectives()
{
switch ( level.start_point )
{
case "hangar_nomove":
case "hangar":
level waittill( "stop_chyron" );
objective_add( maps\_utility::obj( "obj_find_boss" ), "current", &"SKYWAY_OBJ_FINDBOSS" );
case "sat1":
case "sat1_nomove":
common_scripts\utility::flag_wait( "flag_sat2_end" );
objective_add( maps\_utility::obj( "obj_get_to_roof" ), "current", &"SKYWAY_OBJ_GETTOROOF" );
common_scripts\utility::flag_wait( "flag_rooftops_start" );
maps\_utility::objective_complete( maps\_utility::obj( "obj_get_to_roof" ) );
case "rooftops":
case "rooftops_nomove":
common_scripts\utility::flag_wait( "flag_helo_start" );
wait 3;
objective_add( maps\_utility::obj( "obj_take_out_helos" ), "current", &"SKYWAY_OBJ_TAKEOUTHELOS" );
common_scripts\utility::flag_wait( "flag_helo_end" );
if ( !common_scripts\utility::flag( "flag_helo_fail" ) )
maps\_utility::objective_complete( maps\_utility::obj( "obj_take_out_helos" ) );
else
objective_state( maps\_utility::obj( "obj_take_out_helos" ), "failed" );
case "locomotive":
case "rooftop_combat":
case "locomotive_nomove":
case "rooftop_combat_nomove":
common_scripts\utility::flag_wait( "flag_breach_final_tracks" );
if ( maps\_utility::obj_exists( "obj_find_boss" ) )
{
maps\_utility::objective_complete( maps\_utility::obj( "obj_find_boss" ) );
}
case "end_beach":
case "end_swim":
case "end_wreck":
case "loco_standoff":
case "loco_standoff_nomove":
return;
}
}
train_pathing()
{
wait 0.2;
if ( isdefined( level.debug_no_move ) && level.debug_no_move )
return;
thread maps\skyway_util::train_setup_teleport_triggers( self );
maps\_utility::delaythread( 0.05, maps\skyway_util::train_path );
thread track_show_hide();
switch ( level.start_point )
{
case "hangar_nomove":
case "hangar":
maps\skyway_util::train_queue_path_anim_loop( [ "intro" ], "anim_track_bc_start", "anim_track_bc_start" );
common_scripts\utility::flag_wait( "flag_hangar_door_open" );
case "sat2":
case "sat1":
case "sat2_nomove":
case "sat1_nomove":
maps\skyway_util::train_queue_path_anims( [ "bc_1", "bc_2", "bc_3" ], "anim_track_bc_start", "anim_track_bc_end", "clear", 1, 0 );
case "rooftops":
case "rooftops_nomove":
maps\skyway_util::train_queue_path_anim_loop( [ "loop_a1", "loop_a2" ], "anim_track_loop_a_start", "anim_track_loop_a_end", undefined, undefined, 1 );
common_scripts\utility::flag_wait( "flag_tunnel_ready" );
case "rooftop_combat":
case "rooftop_combat_nomove":
maps\skyway_util::train_queue_path_anims( [ "ab_1", "ab_2" ], "anim_track_ab_start", "anim_track_ab_end", undefined, undefined, 1 );
case "locomotive":
case "locomotive_nomove":
maps\skyway_util::train_queue_path_anim_loop( [ "bb_1", "bb_2" ], "anim_track_loop_b_start", "anim_track_loop_b_end", undefined, undefined, 0 );
common_scripts\utility::flag_wait( "flag_breach_final_tracks" );
case "loco_standoff":
case "loco_standoff_nomove":
maps\skyway_util::train_queue_path_anim( "end_stop", "anim_track_ending", "anim_track_ending", "clear", 1, 0 );
maps\skyway_util::train_queue_path_anim_loop( [ "end_hang", "end_hang" ], "anim_track_ending", "anim_track_ending" );
common_scripts\utility::flag_wait( "flag_bridge_rog" );
maps\skyway_util::train_queue_path_anim( "end_rog", "anim_track_ending", "anim_track_ending", "clear", 1, 0 );
case "end_beach":
case "end_swim":
case "end_wreck":
}
}
track_show_hide()
{
var_0["intro"] = getentarray( "model_hide_intro", "targetname" );
var_0["canyon_to_tunnel"] = getentarray( "model_hide_canyon_to_tunnel", "targetname" );
var_0["end"] = getentarray( "model_hide_end", "targetname" );
foreach ( var_2 in var_0 )
common_scripts\utility::array_call( var_2, ::hide );
thread fake_teleport_notify();
switch ( level.start_point )
{
case "rooftops":
case "sat2":
case "sat1":
case "rooftops_nomove":
case "sat2_nomove":
case "sat1_nomove":
case "hangar_nomove":
case "hangar":
common_scripts\utility::array_call( var_0["intro"], ::show );
maps\skyway_util::waittill_notify_func( "anim_track_loop_a_start", common_scripts\utility::array_thread, var_0["intro"], maps\skyway_util::hide_if_defined );
case "locomotive":
case "rooftop_combat":
case "locomotive_nomove":
case "rooftop_combat_nomove":
thread maps\skyway_util::waittill_notify_func( "anim_track_ab_start", common_scripts\utility::array_thread, var_0["canyon_to_tunnel"], maps\skyway_util::show_if_defined );
level maps\skyway_util::waittill_notify_func( "notify_end_breach_slide", common_scripts\utility::array_thread, var_0["canyon_to_tunnel"], maps\skyway_util::hide_if_defined );
case "end_beach":
case "end_swim":
case "end_wreck":
case "loco_standoff":
case "loco_standoff_nomove":
common_scripts\utility::array_call( var_0["end"], ::show );
}
}
fake_teleport_notify()
{
wait 0.1;
self notify( self.path.start.targetname );
}
dobj_manager()
{
wait 0.05;
switch ( level.start_point )
{
case "sat2":
case "sat1":
case "sat2_nomove":
case "sat1_nomove":
case "hangar_nomove":
case "hangar":
maps\skyway_util::show_train_geo( [ "train_hangar", "train_sat_1", "train_sat_2" ], [ "script_model" ] );
common_scripts\utility::flag_wait( "flag_rooftops_start" );
case "loco_standoff":
case "locomotive":
case "rooftop_combat":
case "rooftops":
case "loco_standoff_nomove":
case "locomotive_nomove":
case "rooftop_combat_nomove":
case "rooftops_nomove":
maps\skyway_util::show_train_geo( [ "train_sat_1", "train_sat_2", "train_rt0", "train_rt1", "train_rt2", "train_rt3", "train_loco" ], [ "script_model" ] );
}
}
introscreen()
{
if ( level.credits_only )
return;
thread maps\skyway_util::black_overlay( 5.5 );
wait 1;
level.player playsound( "scn_skyway_intro_hit" );
thread maps\_utility::stylized_center_text( &"SKYWAY_INTROSCREEN_TIMEBEFORE", 4 );
thread maps\_introscreen::introscreen( 1 );
level notify( "notify_start_intro" );
wait 3.5;
common_scripts\utility::flag_set( "sw_introscreen_complete" );
common_scripts\utility::flag_set( "introscreen_complete" );
}
introscreen_hint()
{
return 0;
}
level_dof_changes()
{
}
level_motionblur_changes()
{
common_scripts\utility::flag_wait( "flag_hangar_start" );
setsaveddvar( "r_mbEnable", "2" );
setsaveddvar( "r_mbViewModelEnable", "0" );
maps\skyway_util::set_motionblur_values( 0.08, 0.15, 0.59, 0.59, 0.1 );
common_scripts\utility::flag_wait( "flag_hangar_screen_smash" );
setsaveddvar( "r_mbEnable", "1" );
maps\skyway_util::set_motionblur_values( 0.06, 0, 1, 0, 0.2 );
common_scripts\utility::flag_wait( "flag_vision_tunnel" );
setsaveddvar( "r_mbEnable", "0" );
maps\skyway_util::set_motionblur_values( 0.16, 1, 0.15, 0.0, 0.5 );
common_scripts\utility::flag_wait( "flag_end_wreck_start" );
setsaveddvar( "r_mbEnable", "2" );
maps\skyway_util::set_motionblur_values( 0.06, 0.15, 0.3, 0.59, 1 );
}
level_scripted_visionsets()
{
maps\_utility::vision_set_fog_changes( "skyway", 0.05 );
common_scripts\utility::flag_wait( "flag_hangar_start" );
maps\_utility::vision_set_fog_changes( "skyway_hangar", 1 );
maps\_art::sunflare_changes( "hangar", 0 );
common_scripts\utility::flag_wait( "flag_hangar_door_open" );
maps\_utility::vision_set_fog_changes( "skyway", 1 );
}
enable_mb_scripted_ents()
{
var_0 = getentarray( "has_mblur", "script_noteworthy" );
foreach ( var_2 in var_0 )
var_2 motionblurhqenable();
}