326 lines
11 KiB
Plaintext
326 lines
11 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
section_main()
|
|
{
|
|
|
|
}
|
|
|
|
section_precache()
|
|
{
|
|
|
|
}
|
|
|
|
section_flag_inits()
|
|
{
|
|
common_scripts\utility::flag_init( "ending_start" );
|
|
common_scripts\utility::flag_init( "player_flipped_switch" );
|
|
common_scripts\utility::flag_init( "final_rog_fired" );
|
|
common_scripts\utility::flag_init( "player_flipped_switch_anim_done" );
|
|
common_scripts\utility::flag_init( "ending_init_done" );
|
|
common_scripts\utility::flag_init( "wait_for_return_node" );
|
|
common_scripts\utility::flag_init( "ally_has_moved" );
|
|
common_scripts\utility::flag_init( "ending_checkpoint_start" );
|
|
common_scripts\utility::flag_init( "ending_bink_ready" );
|
|
common_scripts\utility::flag_init( "bink_no_longer_fullscreen" );
|
|
common_scripts\utility::flag_init( "DEBUG_dont_fail" );
|
|
common_scripts\utility::flag_init( "failed_to_fire" );
|
|
}
|
|
|
|
ending_start()
|
|
{
|
|
common_scripts\utility::flag_set( "ending_checkpoint_start" );
|
|
setsaveddvar( "cg_cinematicFullScreen", "1" );
|
|
setsaveddvar( "cg_cinematicCanPause", "1" );
|
|
maps\loki_util::player_move_to_checkpoint_start( "rog" );
|
|
maps\loki_util::spawn_allies();
|
|
thread maps\loki_fx::loki_ending_lighting();
|
|
thread maps\loki_audio::audio_set_ending_ambience();
|
|
|
|
foreach ( var_1 in level.allies )
|
|
var_1 maps\_utility::disable_ai_color();
|
|
|
|
thread maps\loki_space_breach::set_flags_on_input();
|
|
|
|
if ( !isdefined( level.center1 ) )
|
|
maps\loki_space_breach::get_center( 1 );
|
|
|
|
if ( !isdefined( level.center2 ) )
|
|
maps\loki_space_breach::get_center( 2 );
|
|
|
|
var_3 = spawn( "script_origin", level.center1.origin );
|
|
common_scripts\utility::waitframe();
|
|
var_3.origin = var_3.origin + ( -65, 15, 20 );
|
|
var_3.angles = level.center1.angles;
|
|
maps\loki_space_breach::create_rog_controls();
|
|
level thread ending_bink_display();
|
|
common_scripts\utility::flag_set( "ROG_exit" );
|
|
maps\loki_rog::show_hide_all_static( 0 );
|
|
}
|
|
|
|
ending()
|
|
{
|
|
if ( common_scripts\utility::flag( "ending_checkpoint_start" ) )
|
|
ending_init();
|
|
|
|
ending_sequence();
|
|
}
|
|
|
|
ending_sequence()
|
|
{
|
|
thread maps\loki_audio::audio_set_ending_ambience();
|
|
thread maps\loki_audio::sfx_ending_bink_connecting();
|
|
common_scripts\utility::flag_set( "ending_start" );
|
|
|
|
if ( common_scripts\utility::flag( "ending_checkpoint_start" ) )
|
|
{
|
|
get_player_ready_to_look_at_screen();
|
|
level thread maps\loki_space_breach::rotate_control_room_top( level.controlroom_top_1, level.breach_anim_node.origin );
|
|
}
|
|
|
|
thread maps\loki_fx::loki_ending_lighting();
|
|
level.space_breathing_enabled = 1;
|
|
level.player disableweapons();
|
|
level thread ending_autosave();
|
|
thread maps\loki_audio::sfx_wait_to_play_ending_sound();
|
|
var_0 = level.player_rig;
|
|
common_scripts\utility::flag_set( "ending_init_done" );
|
|
level.player playerlinktodelta( level.player_rig, "tag_player", 1, 25, 50, 60, 15, 1 );
|
|
wait 0.1;
|
|
stopallrumbles();
|
|
|
|
if ( common_scripts\utility::flag( "ending_checkpoint_start" ) )
|
|
level thread ending_ally_anims();
|
|
|
|
level thread ending_dialogue_new();
|
|
level thread fire_final_rod();
|
|
end_level();
|
|
}
|
|
|
|
ending_init()
|
|
{
|
|
if ( !isdefined( level.player_rig ) )
|
|
level.player_rig = create_player_rig();
|
|
|
|
while ( !isdefined( level.player_rig ) )
|
|
common_scripts\utility::waitframe();
|
|
|
|
if ( !isdefined( level.breach_anim_node ) )
|
|
maps\loki_space_breach::create_anim_node();
|
|
|
|
while ( !isdefined( level.breach_anim_node ) )
|
|
common_scripts\utility::waitframe();
|
|
|
|
common_scripts\utility::flag_wait( "ending_bink_ready" );
|
|
}
|
|
|
|
get_player_ready_to_look_at_screen()
|
|
{
|
|
ending_init();
|
|
var_0 = [];
|
|
var_0["player_rig"] = level.player_rig;
|
|
level.breach_anim_node thread maps\_anim::anim_loop( var_0, "breach_rog_controls_wait_loop" );
|
|
common_scripts\utility::flag_wait( "ROG_exit" );
|
|
common_scripts\utility::waitframe();
|
|
var_1 = 0;
|
|
level.player playerlinktodelta( level.player_rig, "tag_player", 1, var_1, var_1, var_1, var_1, 1 );
|
|
common_scripts\utility::flag_wait( "bink_no_longer_fullscreen" );
|
|
level.player playerlinktodelta( level.player_rig, "tag_player", 1, 25, 50, 60, 15, 1 );
|
|
}
|
|
|
|
ending_fadeup()
|
|
{
|
|
var_0 = 0.0;
|
|
var_1 = 3.0;
|
|
var_2 = 1.5;
|
|
level thread maps\loki_rog::black_fade( var_0, var_1, var_2 );
|
|
wait( var_2 );
|
|
}
|
|
|
|
ending_fade_out()
|
|
{
|
|
var_0 = 0.0;
|
|
var_1 = 10.0;
|
|
var_2 = 0.0;
|
|
level thread maps\loki_rog::black_fade( var_0, var_1, var_2 );
|
|
wait( var_0 + 1 );
|
|
}
|
|
|
|
create_player_rig()
|
|
{
|
|
if ( !isdefined( level.center1 ) )
|
|
maps\loki_space_breach::get_center( 1 );
|
|
|
|
if ( !isdefined( level.center2 ) )
|
|
maps\loki_space_breach::get_center( 2 );
|
|
|
|
var_0 = spawn( "script_origin", level.center1.origin );
|
|
var_0.angles = level.center1.angles;
|
|
var_0.origin = var_0.origin + ( -65, 15, 20 );
|
|
var_1 = maps\_utility::spawn_anim_model( "player_rig", var_0.origin );
|
|
return var_1;
|
|
}
|
|
|
|
ending_ally_anims()
|
|
{
|
|
if ( !isdefined( level.breach_anim_node ) )
|
|
maps\loki_space_breach::create_anim_node();
|
|
|
|
while ( !isdefined( level.breach_anim_node ) )
|
|
common_scripts\utility::waitframe();
|
|
|
|
level.allies[0] stopanimscripted();
|
|
level.allies[1] stopanimscripted();
|
|
level.breach_anim_node notify( "stop_loop" );
|
|
common_scripts\utility::waitframe();
|
|
var_0 = [];
|
|
var_0["ally_1"] = level.allies[1];
|
|
level.breach_anim_node thread maps\_anim::anim_loop( var_0, "rog_intro" );
|
|
var_0 = [];
|
|
var_0["ally_0"] = level.allies[0];
|
|
level.breach_anim_node maps\_anim::anim_first_frame( var_0, "end" );
|
|
|
|
if ( !common_scripts\utility::flag( "ending_checkpoint_start" ) )
|
|
wait 4.5;
|
|
|
|
thread maps\loki_audio::sfx_loki_npc_monitor_foley( level.allies[0] );
|
|
common_scripts\utility::waitframe();
|
|
level.breach_anim_node maps\_anim::anim_single( var_0, "end" );
|
|
common_scripts\utility::flag_set( "ally_has_moved" );
|
|
level.breach_anim_node maps\_anim::anim_loop( var_0, "end_loop" );
|
|
}
|
|
|
|
ending_bink_display()
|
|
{
|
|
setsaveddvar( "cg_cinematicCanPause", "0" );
|
|
setsaveddvar( "cg_cinematicFullScreen", "0" );
|
|
stopcinematicingame();
|
|
common_scripts\utility::waitframe();
|
|
maps\loki_util::loki_autosave_now();
|
|
maps\loki_rog::show_hide_all_static( 0 );
|
|
cinematicingamesync( "loki_ending_train" );
|
|
wait 0.2;
|
|
pausecinematicingame( 1 );
|
|
common_scripts\utility::flag_set( "ending_bink_ready" );
|
|
common_scripts\utility::flag_wait( "ROG_exit" );
|
|
|
|
if ( common_scripts\utility::flag( "ending_checkpoint_start" ) )
|
|
level thread maps\loki_rog::static_flash( 2 );
|
|
|
|
wait 0.2;
|
|
setsaveddvar( "cg_cinematicFullScreen", "1" );
|
|
pausecinematicingame( 0 );
|
|
common_scripts\utility::waitframe();
|
|
common_scripts\utility::waitframe();
|
|
maps\loki_rog::show_hide_all_static( 0 );
|
|
wait 1.25;
|
|
setsaveddvar( "cg_cinematicFullScreen", "0" );
|
|
setsaveddvar( "cg_cinematicCanPause", "0" );
|
|
maps\loki_rog::show_hide_all_static( 0 );
|
|
thread maps\loki_audio::sfx_ending_bink();
|
|
common_scripts\utility::flag_set( "bink_no_longer_fullscreen" );
|
|
level waittill( "player_flipped_switch_anim_done" );
|
|
maps\loki_rog::show_hide_all_static( 1 );
|
|
stopcinematicingame();
|
|
cinematicingameloopresident( "loki_rog_intro_launching_missiles" );
|
|
|
|
while ( !iscinematicplaying() )
|
|
wait 0.1;
|
|
|
|
common_scripts\utility::waitframe();
|
|
common_scripts\utility::waitframe();
|
|
maps\loki_rog::show_hide_all_static( 0 );
|
|
}
|
|
|
|
ending_autosave()
|
|
{
|
|
common_scripts\utility::flag_wait( "bink_no_longer_fullscreen" );
|
|
}
|
|
|
|
ending_dialogue_new()
|
|
{
|
|
common_scripts\utility::flag_wait( "ending_start" );
|
|
common_scripts\utility::flag_wait( "ending_init_done" );
|
|
thread maps\_utility::smart_radio_dialogue( "loki_mrk_icarusactualdoyou" );
|
|
level.allies[0] maps\_utility::waittill_notetrack_or_damage( "vo_loki_gs3_affirmativecommand" );
|
|
var_0 = lookupsoundlength( "loki_gs3_affirmativecommand" );
|
|
wait( var_0 / 1000 );
|
|
thread maps\_utility::smart_radio_dialogue( "loki_mrk_belaypreviousordertarget_2" );
|
|
level.allies[0] maps\_utility::waittill_notetrack_or_damage( "vo_loki_gs3_wearestillreading" );
|
|
var_0 = lookupsoundlength( "loki_gs3_wearestillreading" );
|
|
wait( var_0 / 1000 );
|
|
thread maps\loki_audio::sfx_loki_ending_charging_start();
|
|
thread maps\_utility::smart_radio_dialogue( "loki_mrk_confirmedfireonthe" );
|
|
level.allies[0] maps\_utility::waittill_notetrack_or_damage( "vo_loki_gs3_targetingconfirmedcommand_2" );
|
|
var_0 = lookupsoundlength( "loki_gs3_targetingconfirmedcommand_2" );
|
|
wait( var_0 / 1000 );
|
|
level thread start_end_fail_timer( 15 );
|
|
level notify( "waiting_for_player_to_fire" );
|
|
var_1 = [ "loki_us3_thompsonfireforeffect", "loki_us3_thompsonthesatsare", "loki_us3_firenow" ];
|
|
level.allies[0] thread maps\loki_space_breach::play_nag_after_delay( 4.0, var_1, "player_flipped_switch", 1 );
|
|
maps\loki_util::waittill_fire_trigger_activate( "press_to_fire", 1, "failed_to_fire" );
|
|
var_2 = getent( "rog_terminal", "targetname" );
|
|
common_scripts\utility::flag_set( "player_flipped_switch" );
|
|
level.allies[0] notify( "stop nags" );
|
|
}
|
|
|
|
player_anim_fire_rog()
|
|
{
|
|
var_0 = [];
|
|
var_0["player_rig"] = level.player_rig;
|
|
level.breach_anim_node maps\_anim::anim_single( var_0, "end_button_push" );
|
|
}
|
|
|
|
fire_hint_button_press()
|
|
{
|
|
return !common_scripts\utility::flag( "press_to_fire" );
|
|
}
|
|
|
|
fire_final_rod()
|
|
{
|
|
common_scripts\utility::flag_wait( "player_flipped_switch" );
|
|
thread player_anim_fire_rog();
|
|
wait 3.75;
|
|
common_scripts\utility::flag_set( "player_flipped_switch_anim_done" );
|
|
common_scripts\utility::flag_set( "final_rog_fired" );
|
|
}
|
|
|
|
fire_rods()
|
|
{
|
|
var_0 = getentarray( "pretarget_rog_sats", "script_noteworthy" );
|
|
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
var_3 = "tag_rogfx_01";
|
|
playfxontag( common_scripts\utility::getfx( "loki_rog_trail_close_2_emit" ), var_2, var_3 );
|
|
}
|
|
}
|
|
|
|
start_end_fail_timer( var_0 )
|
|
{
|
|
if ( !common_scripts\utility::flag( "DEBUG_dont_fail" ) )
|
|
{
|
|
wait( var_0 - 1 );
|
|
|
|
if ( !common_scripts\utility::flag( "player_flipped_switch" ) )
|
|
{
|
|
common_scripts\utility::flag_set( "failed_to_fire" );
|
|
thread maps\loki_audio::sfx_laptop_ending_fail();
|
|
maps\loki_rog::show_hide_all_static( 1 );
|
|
wait 1.0;
|
|
setdvar( "ui_deadquote", &"LOKI_ENDING_FAIL" );
|
|
level thread maps\_utility::missionfailedwrapper();
|
|
}
|
|
}
|
|
}
|
|
|
|
end_level()
|
|
{
|
|
common_scripts\utility::flag_wait( "final_rog_fired" );
|
|
thread ending_fade_out();
|
|
wait 0.1;
|
|
setsaveddvar( "hud_drawhud", 0 );
|
|
wait 1.9;
|
|
maps\_utility::nextmission();
|
|
}
|