iw6-scripts/maps/enemyhq_code.gsc
2024-02-13 13:20:49 +01:00

1684 lines
47 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
spawn_targetname_at_struct_targetname( var_0, var_1 )
{
var_2 = getent( var_0, "targetname" );
var_3 = common_scripts\utility::getstruct( var_1, "targetname" );
if ( isdefined( var_2 ) && isdefined( var_3 ) )
{
var_2.origin = var_3.origin;
if ( isdefined( var_3.angles ) )
var_2.angles = var_3.angles;
var_4 = var_2 maps\_utility::spawn_ai();
return var_4;
}
if ( isdefined( var_2 ) )
{
var_4 = var_2 maps\_utility::spawn_ai();
iprintlnbold( "Add a script struct called: " + var_1 + " to spawn him in the correct location." );
var_4 teleport( level.player.origin, level.player.angles );
return var_4;
}
iprintlnbold( "failed to spawn " + var_0 + " at " + var_1 );
return undefined;
}
array_spawn_targetname_allow_fail( var_0, var_1 )
{
var_2 = getentarray( var_0, "targetname" );
var_3 = array_spawn_allow_fail( var_2, var_1 );
return var_3;
}
array_spawn_allow_fail( var_0, var_1 )
{
var_2 = [];
foreach ( var_4 in var_0 )
{
var_4.count = 1;
var_5 = var_4 maps\_utility::spawn_ai( var_1 );
if ( isdefined( var_5 ) )
var_2[var_2.size] = var_5;
}
return var_2;
}
init_color_trigger_listeners( var_0, var_1 )
{
if ( !isdefined( var_1 ) )
var_1 = 0;
if ( var_1 )
{
if ( !isdefined( level.payback_color_trigger_disable_previous ) )
level.payback_color_trigger_disable_previous = [];
level.payback_color_trigger_disable_previous[var_0] = 1;
}
var_2 = getentarray( var_0, "script_noteworthy" );
foreach ( var_4 in var_2 )
{
if ( var_1 )
{
var_5 = strtok( var_4.targetname, "_" );
var_6 = var_5[var_5.size - 1];
var_4.payback_color_value = int( var_6 );
}
var_4 thread ehq_color_trigger_listener();
}
}
ehq_color_trigger_listener()
{
self endon( "disable_trigger" );
self.payback_color_trigger_active = 1;
self waittill( "trigger" );
var_0 = [];
if ( isdefined( level.payback_color_trigger_disable_previous ) && isdefined( level.payback_color_trigger_disable_previous[self.script_noteworthy] ) )
{
var_1 = getentarray( self.script_noteworthy, "script_noteworthy" );
foreach ( var_3 in var_1 )
{
if ( var_3.payback_color_trigger_active && var_3.payback_color_value <= self.payback_color_value )
{
var_0[var_0.size] = var_3;
var_3.payback_color_trigger_active = 0;
}
}
}
else
var_0 = getentarray( self.targetname, "targetname" );
foreach ( var_3 in var_0 )
{
var_3 notify( "disable_trigger" );
var_3 common_scripts\utility::trigger_off();
}
}
retreat_from_vol_to_vol( var_0, var_1, var_2, var_3 )
{
var_4 = getent( var_0, "targetname" );
var_5 = var_4 maps\_utility::get_ai_touching_volume( "axis" );
var_6 = getent( var_1, "targetname" );
var_7 = getnode( var_6.target, "targetname" );
foreach ( var_9 in var_5 )
{
if ( isdefined( var_9 ) && isalive( var_9 ) )
{
var_9.forcegoal = 0;
var_9.fixednode = 0;
var_9.pathrandompercent = randomintrange( 75, 100 );
var_9 setgoalnode( var_7 );
var_9 setgoalvolumeauto( var_6 );
}
}
}
wait_goal()
{
self waittill( "goal" );
self.ignoreall = 0;
}
ai_array_killcount_flag_set( var_0, var_1, var_2, var_3 )
{
maps\_utility::waittill_dead_or_dying( var_0, var_1, var_3 );
common_scripts\utility::flag_set( var_2 );
}
d_dialogue_queue( var_0, var_1 )
{
if ( !isdefined( var_1 ) )
var_1 = self.script_friendname;
iprintlnbold( var_1 + ": " + var_0 );
}
die_quietly()
{
if ( isdefined( self.magic_bullet_shield ) && self.magic_bullet_shield == 1 )
maps\_utility::stop_magic_bullet_shield();
self.no_pain_sound = 1;
self.diequietly = 1;
maps\_utility::die();
}
set_move_rate( var_0 )
{
self.moveplaybackrate = var_0;
self.movetransitionrate = var_0;
}
safe_activate_trigger_with_targetname( var_0 )
{
var_1 = 64;
var_2 = getent( var_0, "targetname" );
if ( isdefined( var_2 ) && !isdefined( var_2.trigger_off ) )
{
var_2 maps\_utility::activate_trigger();
if ( isdefined( var_2.spawnflags ) && var_2.spawnflags & var_1 )
var_2 common_scripts\utility::trigger_off();
}
}
safe_activate_triggers_with_targetname( var_0, var_1 )
{
var_2 = 64;
if ( !isdefined( var_1 ) )
var_1 = 0;
var_3 = getentarray( var_0, "targetname" );
if ( !isdefined( level.atrium_player_outside ) )
level.atrium_player_outside = 0;
foreach ( var_5 in var_3 )
{
if ( isdefined( var_5 ) && !isdefined( var_5.trigger_off ) )
{
var_6 = 1;
if ( var_1 )
{
if ( isdefined( var_5.script_parameters ) )
{
if ( level.atrium_player_outside == 1 && var_5.script_parameters == "inside" || level.atrium_player_outside == 0 && var_5.script_parameters == "outside" )
var_6 = 0;
}
}
if ( var_6 )
var_5 maps\_utility::activate_trigger();
if ( isdefined( var_5.spawnflags ) && var_5.spawnflags & var_2 )
var_5 common_scripts\utility::trigger_off();
}
}
}
safe_disable_trigger_with_targetname( var_0 )
{
var_1 = getent( var_0, "targetname" );
if ( isdefined( var_1 ) )
var_1 common_scripts\utility::trigger_off();
}
safe_delete_trigger_with_targetname( var_0 )
{
var_1 = getent( var_0, "targetname" );
if ( isdefined( var_1 ) )
var_1 delete();
}
set_flag_on_killcount( var_0, var_1, var_2, var_3 )
{
maps\_utility::waittill_dead_or_dying( var_0, var_1 );
common_scripts\utility::flag_set( var_2 );
}
radio_dialog_add_and_go( var_0, var_1 )
{
maps\_utility::radio_add( var_0 );
maps\_utility::radio_dialogue( var_0, var_1 );
}
char_dialog_add_and_go( var_0 )
{
level.scr_sound[self.animname][var_0] = var_0;
maps\_utility::dialogue_queue( var_0 );
}
raven_player_can_see_ai( var_0, var_1 )
{
var_2 = gettime();
if ( !isdefined( var_1 ) )
var_1 = 0;
if ( isdefined( var_0.playerseesmetime ) && var_0.playerseesmetime + var_1 >= var_2 )
return var_0.playerseesme;
var_0.playerseesmetime = var_2;
if ( !common_scripts\utility::within_fov( level.player.origin, level.player.angles, var_0.origin, 0.766 ) )
{
var_0.playerseesme = 0;
return 0;
}
var_3 = level.player geteye();
var_4 = var_0.origin;
if ( sighttracepassed( var_3, var_4, 0, level.player ) )
{
var_0.playerseesme = 1;
return 1;
}
var_5 = var_0 geteye();
if ( sighttracepassed( var_3, var_5, 0, level.player ) )
{
var_0.playerseesme = 1;
return 1;
}
var_6 = ( var_5 + var_4 ) * 0.5;
if ( sighttracepassed( var_3, var_6, 0, level.player ) )
{
var_0.playerseesme = 1;
return 1;
}
var_0.playerseesme = 0;
return 0;
}
debug_show_ai_counts()
{
level notify( "end_debug_counts" );
level endon( "end_debug_counts" );
level.osprey_debug_ai = 1;
var_0 = -1;
var_1 = -1;
while ( level.osprey_debug_ai )
{
var_2 = getaiarray( "axis" );
var_3 = getaiarray( "allies" );
if ( var_0 != var_2.size || var_1 != var_3.size )
{
iprintln( "Ax:" + var_2.size + " Al:" + var_3.size );
var_0 = var_2.size;
var_1 = var_3.size;
}
wait 0.05;
}
}
ambient_animate( var_0, var_1, var_2, var_3 )
{
var_4 = undefined;
var_5 = undefined;
if ( !isdefined( var_3 ) )
var_3 = 1;
if ( isdefined( var_2 ) && var_2 == 1 )
var_6 = maps\_utility::dronespawn_bodyonly( self );
else
{
var_2 = 0;
var_6 = maps\_utility::spawn_ai();
}
if ( isdefined( var_6 ) )
{
var_6 endon( "death" );
if ( var_2 == 0 )
{
if ( isdefined( var_1 ) )
var_6 thread prepare_to_be_shot( var_1, var_3 );
var_6 maps\_utility::set_allowdeath( 1 );
}
if ( isdefined( self.animation ) )
{
var_6.animname = "generic";
if ( var_2 == 0 && var_3 == 1 )
var_6 maps\_utility::set_generic_idle_anim( "scientist_idle" );
if ( isdefined( self.target ) )
{
var_4 = common_scripts\utility::getstruct( self.target, "targetname" );
if ( !isdefined( var_4 ) )
var_5 = getnode( self.target, "targetname" );
if ( isdefined( var_4 ) )
var_4 thread maps\_anim::anim_generic_loop( var_6, self.animation );
if ( isdefined( var_5 ) )
{
var_6 maps\_utility::disable_arrivals();
var_6 maps\_utility::disable_turnanims();
var_6 maps\_utility::disable_exits();
var_6 maps\_utility::set_run_anim( self.animation );
if ( isdefined( var_0 ) && var_0 == 1 )
var_6 thread delete_on_complete( 1 );
}
}
else if ( isarray( level.scr_anim["generic"][self.animation] ) )
var_6 thread maps\_anim::anim_generic_loop( var_6, self.animation );
else
{
var_6 maps\_utility::disable_turnanims();
var_6.ignoreall = 1;
if ( var_2 == 0 )
var_6.allowdeath = 1;
var_6 thread maps\_anim::anim_single_solo( var_6, self.animation );
if ( isdefined( var_0 ) && var_0 == 1 )
var_6 thread delete_on_complete( 0 );
}
}
}
return var_6;
}
physics_fountain( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7 )
{
var_8 = length( var_2 );
var_9 = vectornormalize( var_2 );
var_1 endon( "death" );
if ( !isdefined( level.phys_fountain ) )
level.phys_fountain = [];
while ( var_6 > 0 )
{
var_10 = rotatevector( var_9, var_1.angles );
var_10 = var_10 * var_8 + var_1.origin;
var_11 = rotatevector( var_3, var_1.angles ) * var_7;
var_12 = spawn( "script_model", var_10 );
var_12.angles = ( 0, 0, 0 );
var_12 setmodel( var_0 );
var_12 physicslaunchclient( var_10, var_11 );
thread cleanup_phys_obj( var_12, var_5 );
wait( var_4 );
var_6--;
}
}
cleanup_phys_obj( var_0, var_1 )
{
wait( var_1 );
var_0 delete();
}
delete_on_complete( var_0 )
{
if ( !var_0 )
{
self waittillmatch( "single anim", "end" );
self notify( "killanimscript" );
}
else
self waittill( "reached_path_end" );
if ( !raven_player_can_see_ai( self ) )
self delete();
}
hint_blow_charges_wait()
{
if ( common_scripts\utility::flag( level.c4_cancel_flag ) )
return 1;
return 0;
}
sniperuse_hint_wait()
{
if ( common_scripts\utility::flag( level.sniper_cancel_flag ) )
return 1;
return 0;
}
sniper_hint( var_0, var_1 )
{
wait( var_1 );
if ( !common_scripts\utility::flag( var_0 ) )
{
level.sniper_cancel_flag = var_0;
thread maps\_utility::display_hint( "sniperuse_hint" );
}
}
c4_hint( var_0, var_1 )
{
wait( var_1 );
if ( !common_scripts\utility::flag( var_0 ) )
{
level.c4_cancel_flag = var_0;
thread maps\_utility::display_hint( "blow_charges" );
}
}
do_nag_dialog( var_0, var_1 )
{
if ( isstring( var_0 ) )
thread maps\_utility::add_dialogue_line( var_0, var_1 );
else if ( var_0 == level.player )
radio_dialog_add_and_go( var_1 );
else
var_0 char_dialog_add_and_go( var_1 );
}
nag_player_until_flag( var_0, var_1, var_2, var_3, var_4, var_5 )
{
level endon( "death" );
var_6 = maps\_utility::make_array( var_2, var_3, var_4, var_5 );
do_nag_dialog( var_0, var_6[0] );
var_7 = 1;
var_8 = 4;
wait( var_8 );
while ( !common_scripts\utility::flag( var_1 ) )
{
do_nag_dialog( var_0, var_6[var_7] );
var_8 = var_8 * 2;
var_7++;
if ( !isdefined( var_6[var_7] ) )
var_7 = 0;
wait( var_8 );
}
}
prepare_to_be_shot( var_0, var_1 )
{
self endon( "death" );
level waittill( var_0 );
self.ignoreme = 0;
self.ignoreall = 0;
maps\_utility::anim_stopanimscripted();
if ( var_1 == 1 )
maps\_utility::set_generic_idle_anim( "scientist_idle" );
maps\_utility::enable_arrivals();
maps\_utility::enable_exits();
maps\_utility::enable_turnanims();
}
reassign_goal_volume( var_0, var_1 )
{
if ( !isarray( var_0 ) )
var_0 = maps\_utility::make_array( var_0 );
var_0 = maps\_utility::array_removedead_or_dying( var_0 );
var_2 = getent( var_1, "targetname" );
foreach ( var_4 in var_0 )
var_4 setgoalvolumeauto( var_2 );
}
set_black_fade( var_0, var_1, var_2 )
{
level endon( "set_black_fade" );
if ( isdefined( var_2 ) && var_2 )
{
while ( level.player maps\_utility::issliding() )
wait 0.05;
}
if ( !isdefined( var_0 ) )
var_0 = 1;
var_0 = max( 0.0, min( 1.0, var_0 ) );
if ( !isdefined( var_1 ) )
var_1 = 1;
var_1 = max( 0.01, var_1 );
if ( !isdefined( level.hud_black ) )
{
level.hud_black = newhudelem();
level.hud_black.x = 0;
level.hud_black.y = 0;
level.hud_black.horzalign = "fullscreen";
level.hud_black.vertalign = "fullscreen";
level.hud_black.foreground = 1;
level.hud_black.sort = -999;
level.hud_black setshader( "black", 650, 490 );
level.hud_black.alpha = 0.0;
}
level.hud_black fadeovertime( var_1 );
level.hud_black.alpha = max( 0.0, min( 1.0, var_0 ) );
if ( var_0 <= 0 )
{
wait( var_1 );
level.hud_black destroy();
level.hud_black = undefined;
}
}
setupplayerforanimations( var_0 )
{
if ( !isdefined( var_0 ) )
var_0 = "stand";
if ( level.player isthrowinggrenade() )
wait 1.2;
level.player disableweapons();
level.player allowjump( 0 );
level.player allowmelee( 0 );
level.player disableoffhandweapons();
level.player allowsprint( 0 );
level.player allowads( 0 );
if ( var_0 != "stand" )
level.player allowstand( 0 );
if ( var_0 != "crouch" )
level.player allowcrouch( 0 );
if ( var_0 != "prone" )
level.player allowprone( 0 );
if ( level.player getstance() != var_0 )
{
level.player setstance( var_0 );
wait 0.4;
}
}
setupplayerforgameplay()
{
level.player allowsprint( 1 );
level.player allowprone( 1 );
level.player allowcrouch( 1 );
level.player allowstand( 1 );
level.player enableoffhandweapons();
level.player allowmelee( 1 );
level.player allowads( 1 );
level.player allowjump( 1 );
level.player enableweapons();
}
keegan_swap_head_to_mask()
{
self detach( self.headmodel, "" );
self attach( "head_hesh_stealth_z", "", 1 );
self.headmodel = "head_hesh_stealth_z";
}
player_enter_truck_progression( var_0 )
{
var_1 = getent( "TRIG_get_in_truck", "targetname" );
var_1 sethintstring( &"ENEMY_HQ_GETINTRUCK" );
var_2 = common_scripts\utility::getstruct( "STRUCT_get_in_truck", "targetname" );
maps\player_scripted_anim_util::waittill_trigger_activate_looking_at( var_1, var_2 );
common_scripts\utility::flag_set( "FLAG_player_enter_truck" );
thread keegan_enter_truck_scene();
level.player setstance( "stand" );
level.player allowcrouch( 0 );
player_enter_truck_func( var_0 );
}
keegan_enter_truck_scene()
{
common_scripts\utility::flag_wait( "FLAG_keegan_start_mask_anim" );
level.player_truck notify( "stop_keegan_loop" );
level.player_truck maps\_anim::anim_single_solo( level.allies[1], "enter_truck", "tag_driver" );
level.player_truck thread maps\_anim::anim_loop_solo( level.allies[1], "enter_truck_loop", "stop_keegan_loop", "tag_driver" );
}
vehicle_play_guy_anim( var_0, var_1, var_2, var_3 )
{
var_4 = maps\_vehicle_aianim::anim_pos( self, var_2 );
var_5 = var_1 maps\_utility::getanim( var_0 );
var_1 notify( "newanim" );
var_1 endon( "newanim" );
var_1 endon( "death" );
maps\_anim::anim_single_solo( var_1, var_0, var_4.sittag );
if ( !isdefined( var_3 ) || var_3 == 1 )
maps\_vehicle_aianim::guy_idle( var_1, var_2 );
}
player_enter_truck_func( var_0 )
{
level notify( "end_truck_nag" );
thread maps\enemyhq_audio::aud_truck_enter();
thread maps\enemyhq_intro::spawn_trucks();
thread maps\_utility::autosave_now();
level.player enabledeathshield( 1 );
level.player allowsprint( 0 );
thread maps\enemyhq_atrium::wall_chunks_hide();
var_1 = common_scripts\utility::getstruct( "player_teleport_atrium", "targetname" );
level.truck_player_arms = maps\_utility::spawn_anim_model( "player_rig" );
level.truck_player_arms.animname = "player_rig";
level.grenades = level.player getweaponammoclip( "fraggrenade" );
level.player takeweapon( "fraggrenade" );
setsaveddvar( "ammoCounterHide", 1 );
level.player disableweaponswitch();
level.player giveweapon( "test_detonator_black_ice", 0, 0, 0, 1 );
level.player setweaponammoclip( "test_detonator_black_ice", 0 );
level.player switchtoweapon( "test_detonator_black_ice" );
level.player givemaxammo( "sc2010+reflex_sp" );
level.player disableweapons();
level.truck_player_arms.animname = "player_rig";
var_0.animname = "truck";
level.truck_player_arms setmodel( "viewhands_player_us_rangers" );
level.truck_player_arms hide();
level.truck_player_arms linkto( var_0, "tag_passenger" );
level.truck_player_arms thread maps\_anim::anim_first_frame_solo( level.truck_player_arms, "player_enter_truck" );
level.player playerlinktoblend( level.truck_player_arms, "tag_player", 0.5 );
level.player forcemovingplatformentity( var_0 );
var_0 thread maps\_anim::anim_single_solo( level.truck_player_arms, "player_enter_truck", "tag_passenger" );
var_0 thread maps\_anim::anim_single_solo( var_0, "player_enter_truck" );
wait 0.25;
level.player playerlinktoabsolute( level.truck_player_arms, "tag_player" );
level.truck_player_arms show();
wait 2.5;
level.player playerlinktodelta( level.truck_player_arms, "tag_player", 1, 15, 15, 15, 15, 1 );
level.truck_player_arms waittillmatch( "single anim", "end" );
level.player playerlinktodelta( level.truck_player_arms, "tag_player", 1, 115, 15, 27, 15 );
level.truck_player_arms hide();
common_scripts\utility::flag_wait( "bring_up_clacker" );
level notify( "bring_up_clacker" );
c4_hint( "FLAG_clacked_the_clacker", 0.5 );
level.player disableweaponswitch();
thread call_flag_when_clacked();
level.player enableweapons();
level.player_truck thread listen_player_jolt_vehicles();
thread call_jolt_by_flag();
level.dog thread maps\enemyhq_intro::dog_additional_drivein_anims();
setsaveddvar( "ammoCounterHide", 1 );
level.player waittill( "detonate" );
common_scripts\utility::flag_set( "FLAG_blow_sticky_01" );
common_scripts\utility::flag_wait( "FLAG_player_bust_windshield" );
level.player setstance( "stand" );
level.player allowcrouch( 0 );
screenshake( level.player.origin, 7, 2, 4, 1.25, 0, 0.15, 500, 3, 3, 4, 1.1 );
thread play_rumble_seconds( "damage_heavy", 1 );
thread maps\enemyhq_audio::aud_bust_windshield();
var_2 = spawn( "script_model", level.truck_player_arms gettagorigin( "tag_weapon_right" ) );
var_2.angles = level.truck_player_arms gettagangles( "tag_weapon_right" );
var_2 linkto( level.truck_player_arms, "tag_weapon_right" );
var_2 setmodel( "weapon_sc2010" );
var_3 = spawn( "script_model", var_2 gettagorigin( "tag_red_dot" ) );
var_3 setmodel( "viewmodel_reddot_reflex_iw6" );
var_3.origin = var_2 gettagorigin( "tag_red_dot" );
var_3.angles = var_2 gettagangles( "tag_red_dot" );
var_3 linkto( var_2, "tag_red_dot" );
var_4 = [];
var_4[0] = level.truck_player_arms;
var_4[1] = var_0;
level.truck_player_arms show();
var_0 thread maps\_anim::anim_single_solo( var_4[0], "player_smash_windshield", "tag_passenger" );
level.player playerlinktodelta( level.truck_player_arms, "tag_player", 0.2, 5, 5, 5, 5, 1 );
var_0 setflaggedanimrestart( "vehicle_anim_flag", var_0 maps\_utility::getanim( "player_smash_windshield" ) );
var_0 clearanim( var_0 maps\_utility::getanim( "player_enter_truck" ), 0.2 );
var_4[0] waittillmatch( "single anim", "end" );
level.player playerlinktodelta( level.truck_player_arms, "tag_player", 0.2, 45, 45, 27, 10, 1 );
common_scripts\utility::flag_set( "FLAG_blow_sticky_03" );
level.player takeweapon( "test_detonator_black_ice" );
level.player enableweapons();
level.player switchtoweaponimmediate( "sc2010+reflex_sp" );
level.player givemaxammo( "sc2010+reflex_sp" );
level.truck_player_arms hide();
common_scripts\utility::flag_set( "FLAG_player_gun_up" );
common_scripts\utility::waitframe();
level.player enableweapons();
level.player switchtoweaponimmediate( "sc2010+reflex_sp" );
setsaveddvar( "ammoCounterHide", 0 );
var_2 delete();
if ( isdefined( var_3 ) )
var_3 delete();
common_scripts\utility::flag_wait( "FLAG_truck_exploder_start" );
common_scripts\utility::flag_wait( "FLAG_start_pathblockers" );
common_scripts\utility::flag_wait( "FLAG_stop_hit_reactions" );
level.player disableweapons();
thread player_bust_thru_scene( var_1, var_0 );
common_scripts\utility::flag_wait( "drive_in_done" );
level.player enableweaponswitch();
level notify( "end_jolt_vehicles_thread" );
common_scripts\utility::waitframe();
level.player_truck thread listen_player_jolt_jumps();
}
call_flag_when_clacked()
{
level.player waittill( "detonate" );
level notify( "c4_detonated" );
common_scripts\utility::flag_set( "FLAG_clacked_the_clacker" );
}
player_enter_truck_atrium_startpoint( var_0 )
{
var_1 = common_scripts\utility::getstruct( "player_teleport_atrium", "targetname" );
level.truck_player_arms = maps\_utility::spawn_anim_model( "player_rig" );
level.truck_player_arms.animname = "player_rig";
var_0.animname = "truck";
level.truck_player_arms linkto( var_0, "tag_passenger" );
level.player playerlinktodelta( level.truck_player_arms, "tag_player", 1, 70, 70, 35, 35, 1 );
level.player disableweapons();
level.truck_player_arms setmodel( "viewhands_player_us_rangers" );
level.truck_player_arms hide();
thread player_bust_thru_scene( var_1, var_0 );
}
player_bust_thru_scene( var_0, var_1 )
{
common_scripts\utility::flag_wait( "FLAG_bust_thru_prep" );
level.player setweaponammoclip( "sc2010+reflex_sp", 30 );
level.player givemaxammo( "sc2010+reflex_sp" );
level.player enabledeathshield( 0 );
level.player enableinvulnerability();
level notify( "drive_in_done" );
wait 0.05;
common_scripts\utility::flag_set( "drive_in_done" );
var_2 = maps\_utility::get_ai_group_ai( "field_chaos_guys" );
foreach ( var_4 in var_2 )
var_4 delete();
level.truck_player_arms show();
level.player_truck maps\_vehicle::vehicle_stop_named( "atrium_truck_stop", 1, 1 );
level.player playerlinktodelta( level.truck_player_arms, "tag_player", 1, 17, 10, 8, 8, 1 );
var_1 thread maps\_anim::anim_single_solo( level.truck_player_arms, "bust_thru_prep", "tag_passenger" );
level.allies[0] thread char_dialog_add_and_go( "enemyhq_mrk_comininhot" );
thread play_rumble_seconds( "damage_heavy", 2.5 );
common_scripts\utility::flag_wait( "kick_off_atrium_combat" );
level.player disableweapons();
level.truck_player_arms unlink();
thread maps\enemyhq_audio::aud_exit_truck();
var_0 maps\_anim::anim_single_solo( level.truck_player_arms, "bust_thru" );
common_scripts\utility::flag_set( "FLAG_player_exit_truck" );
level.player maps\_utility::set_ignoreme( 0 );
level.truck_player_arms delete();
level.allies[0] thread char_dialog_add_and_go( "enemyhq_mrk_bishopisthroughthis" );
level.player allowcrouch( 1 );
level.player allowsprint( 1 );
level notify( "end_jolt_jumps_thread" );
thread dog_hint();
thread handle_hesh_teleport();
level notify( "player_exited_truck" );
level.player disableweapons();
common_scripts\utility::trigger_off( "TRIG_player_exit_truck", "targetname" );
level.player enableweapons();
level.player switchtoweaponimmediate( "sc2010+reflex_sp" );
level.player unlink();
level.player forcemovingplatformentity( undefined );
level.player giveweapon( "fraggrenade" );
level.player setweaponammoclip( "fraggrenade", level.grenades );
thread maps\enemyhq_atrium::wall_chunks_show();
wait 3;
level.player disableinvulnerability();
}
dog_hint_check()
{
return 0;
}
dog_hint()
{
common_scripts\utility::flag_wait( "FLAG_atrium_dog_hint" );
thread maps\_utility::display_hint_timeout( "riley_hint", 3 );
}
handle_hesh_teleport()
{
var_0 = getnode( "NODE_ally2_teleport_atrium", "targetname" );
level.allies[2] unlink();
level.player_truck notify( "stop_baker_loop" );
level.allies[2] maps\_utility::anim_stopanimscripted();
common_scripts\utility::waitframe();
level.allies[2] forceteleport( var_0.origin, var_0.angles );
}
listen_player_press_x()
{
level endon( "player_exited_truck" );
for (;;)
{
if ( level.player usebuttonpressed() )
common_scripts\utility::flag_set( "FLAG_player_exit_truck" );
wait 0.05;
}
}
turn_exit_trigger_on()
{
wait 4;
common_scripts\utility::trigger_on( "TRIG_player_exit_truck", "targetname" );
}
create_overlay_element( var_0, var_1 )
{
var_2 = newhudelem();
var_2.x = 0;
var_2.y = 0;
var_2 setshader( var_0, 640, 480 );
var_2.alignx = "left";
var_2.aligny = "top";
var_2.horzalign = "fullscreen";
var_2.vertalign = "fullscreen";
var_2.alpha = var_1;
var_2.foreground = 1;
var_2.sort = 2;
return var_2;
}
restore_ignoreme( var_0 )
{
self endon( "death" );
self endon( "dog_attacks_ai" );
var_0 waittill( "cancel_attack" );
self setthreatbiasgroup( "axis" );
}
dog_command_attack( var_0, var_1 )
{
var_0.ignoreme = 0;
var_0 setthreatbiasgroup( "dog_targets" );
var_0 thread restore_ignoreme( self );
self.favoriteenemy = var_0;
self.ignoreall = 0;
self getenemyinfo( var_0 );
self setgoalentity( var_0 );
var_2 = var_0 common_scripts\utility::waittill_any_return( "dog_attacks_ai", "death" );
return var_2;
}
dog_attack_targets_by_priority( var_0, var_1, var_2 )
{
level endon( "death" );
if ( !isdefined( var_2 ) )
var_2 = 0;
for ( var_3 = 0; !common_scripts\utility::flag( var_1 ) && var_3 < var_0.size; var_3++ )
{
var_4 = var_0[var_3];
if ( isdefined( var_4 ) )
{
if ( level.dog dog_command_attack( var_4, level.player ) == "dog_attacks_ai" )
{
if ( var_2 == 0 )
return;
}
}
}
}
handle_dog_modes()
{
level endon( "death" );
for (;;)
{
self waittill( "trigger", var_0 );
if ( var_0 == level.dog )
{
common_scripts\utility::trigger_off();
switch ( self.targetname )
{
case "start_dog_sniffing":
if ( isdefined( self.target ) )
{
var_1 = getnode( self.target, "targetname" );
var_0 maps\_utility_dogs::enable_dog_sniff();
wait 0.1;
var_0 setgoalnode( var_1 );
}
else if ( level.dog dog_using_colors() )
{
var_2 = var_0.pathgoalpos;
if ( !isdefined( var_2 ) )
var_2 = var_0.goalpos;
var_0 maps\_utility::disable_ai_color();
var_0 setgoalpos( var_0.origin + anglestoforward( var_0.angles ) * 24 );
var_0 maps\_utility_dogs::enable_dog_sniff();
wait 0.1;
var_0 setgoalpos( var_2 );
var_0 maps\_utility::enable_ai_color();
}
else
var_0 maps\_utility_dogs::enable_dog_sniff();
var_0 notify( "start_sniffing" );
break;
case "stop_dog_sniffing":
if ( isdefined( self.target ) )
{
var_1 = getnode( self.target, "targetname" );
var_0 maps\_utility_dogs::disable_dog_sniff();
wait 0.1;
var_0 setgoalnode( var_1 );
}
else if ( level.dog dog_using_colors() )
{
var_2 = var_0.pathgoalpos;
var_0 maps\_utility::disable_ai_color();
var_0 setgoalpos( var_0.origin + anglestoforward( var_0.angles ) * 24 );
var_0 maps\_utility_dogs::disable_dog_sniff();
wait 0.1;
var_0 setgoalpos( var_2 );
var_0 maps\_utility::enable_ai_color();
}
else
var_0 maps\_utility_dogs::disable_dog_sniff();
var_0 notify( "stop_sniffing" );
break;
case "start_dog_sneak":
var_0 maps\_utility_dogs::enable_dog_sneak();
var_0 notify( "start_sneaking" );
break;
case "stop_dog_sneak":
var_0 maps\_utility_dogs::disable_dog_sneak();
var_0 notify( "stop_sneaking" );
break;
}
}
}
}
toggle_ally_outlines( var_0 )
{
}
listen_player_jolt_vehicles()
{
level endon( "end_jolt_vehicles_thread" );
for (;;)
{
self waittill( "veh_jolt", var_0 );
thread screen_shake_vehicles();
thread reaction_anims();
wait 2;
}
}
call_jolt_by_flag()
{
for (;;)
{
common_scripts\utility::flag_wait( "veh_jolt" );
level.player_truck notify( "veh_jolt" );
common_scripts\utility::flag_clear( "veh_jolt" );
wait 0.05;
}
}
listen_player_jolt_jumps()
{
level endon( "end_jolt_jumps_thread" );
for (;;)
{
self waittill( "veh_jolt", var_0 );
thread screen_shake_jumps();
}
}
debug_jolt_jumps()
{
level endon( "end_jolt_jumps_thread" );
for (;;)
{
wait 0.25;
iprintln( "running jumps thread" );
}
}
debug_jolt_vehs()
{
level endon( "end_jolt_vehicles_thread" );
for (;;)
{
wait 0.25;
iprintln( "running vehs thread" );
}
}
#using_animtree("player");
reaction_anims()
{
var_0 = [];
var_0[0] = level.allies[1];
level.truck_player_arms setanim( %ehq_truck_drivein_hit_player, 0.9, 1, 1 );
}
screen_shake_vehicles()
{
thread maps\enemyhq_audio::aud_vehicle_jolt();
thread play_rumble_seconds( "damage_heavy", 2 );
screenshake( level.player.origin, 6, 2, 15, 2, 0, 1.25, 500, 5, 3, 7, 1.1 );
}
screen_shake_jumps()
{
thread maps\enemyhq_audio::aud_screen_shake_jumps();
thread play_rumble_seconds( "damage_heavy", 1 );
}
screenshakefade( var_0, var_1, var_2, var_3 )
{
if ( !isdefined( var_2 ) )
var_2 = 0;
if ( !isdefined( var_3 ) )
var_3 = 0;
var_4 = var_1 * 10;
var_5 = var_2 * 10;
if ( var_5 > 0 )
var_6 = var_0 / var_5;
else
var_6 = var_0;
var_7 = var_3 * 10;
var_8 = var_4 - var_7;
if ( var_7 > 0 )
var_9 = var_0 / var_7;
else
var_9 = var_0;
var_10 = 0.1;
var_0 = 0;
for ( var_11 = 0; var_11 < var_4; var_11++ )
{
if ( var_11 <= var_5 )
var_0 = var_0 + var_6;
if ( var_11 > var_8 )
var_0 = var_0 - var_9;
earthquake( var_0, var_10, level.player.origin, 500 );
wait( var_10 );
}
}
play_rumble_seconds( var_0, var_1 )
{
for ( var_2 = 0; var_2 < var_1 * 20; var_2++ )
{
level.player playrumbleonentity( var_0 );
wait 0.05;
}
}
delete_ai_at_path_end()
{
self endon( "death" );
self waittill( "reached_path_end" );
delete_ai();
}
ignoreall_false_at_path_end()
{
self endon( "death" );
self waittill( "reached_path_end" );
self.ignoreall = 0;
}
delete_ai()
{
var_0[0] = self;
level thread maps\_utility::ai_delete_when_out_of_sight( var_0, 512 );
}
carry_bishop()
{
wait 0.05;
self.moveplaybackrate = 1;
setsaveddvar( "ai_friendlyFireBlockDuration", 0 );
maps\_utility::disable_cqbwalk();
self.disablearrivals = 1;
self.disableexits = 1;
self.nododgemove = 1;
maps\_utility::pathrandompercent_set( 0 );
self pushplayer( 1 );
self.dontmelee = 1;
self.ignorerandombulletdamage = 1;
maps\_utility::disable_danger_react();
maps\_utility::setflashbangimmunity( 1 );
self.dontavoidplayer = 1;
self.badplaceawareness = 0;
self.disableplayeradsloscheck = 1;
maps\_utility::disable_surprise();
maps\_utility::disable_careful();
ignore_everything();
self.disablefriendlyfirereaction = 1;
maps\_utility::set_generic_run_anim( "wounded_carry_carrier", 1 );
maps\_utility::set_idle_anim( "wounded_carry_idle" );
thread maps\_anim::anim_generic_loop( level.bishop, "wounded_carry_wounded", "stop_anim", "tag_origin" );
level.bishop linkto( self, "tag_origin" );
thread sync_carry_walk_anims();
}
#using_animtree("generic_human");
sync_carry_walk_anims()
{
self endon( "stop_anim" );
level.bishop endon( "stop_anim" );
while ( isdefined( self ) && isdefined( level.bishop ) )
{
var_0 = self getanimtime( %wounded_carry_fastwalk_carrier );
if ( isdefined( var_0 ) && var_0 > 0 )
level.bishop setanimtime( %wounded_carry_fastwalk_wounded_relative, var_0 );
wait 0.05;
}
}
ignore_everything()
{
self.ignoreall = 1;
self.grenadeawareness = 0;
self.ignoreexplosionevents = 1;
self.ignorerandombulletdamage = 1;
self.ignoresuppression = 1;
self.disablebulletwhizbyreaction = 1;
maps\_utility::disable_pain();
self.og_newenemyreactiondistsq = self.newenemyreactiondistsq;
self.newenemyreactiondistsq = 0;
}
clear_ignore_everything()
{
self.ignoreall = 0;
self.grenadeawareness = 1;
self.ignoreexplosionevents = 0;
self.ignorerandombulletdamage = 0;
self.ignoresuppression = 0;
self.fixednode = 1;
self.disablebulletwhizbyreaction = 0;
maps\_utility::enable_pain();
if ( isdefined( self.og_newenemyreactiondistsq ) )
self.newenemyreactiondistsq = self.og_newenemyreactiondistsq;
}
gasmask_on_npc( var_0 )
{
if ( !isdefined( var_0 ) )
var_0 = 1;
if ( var_0 )
self attach( "prop_sas_gasmask_attach", "j_head", 1 );
else
{
self.gasmask = spawn( "script_model", ( 0, 0, 0 ) );
self.gasmask setmodel( "prop_sas_gasmask_attach" );
self.gasmask linkto( self, "tag_eye", ( -4.027, 0, -2.948 ), ( -90, -90, 180 ) );
}
self.gasmask_on = 1;
}
bob_mask( var_0 )
{
self endon( "stop_mask_bob" );
var_1 = 0;
var_2 = level.player getplayerangles();
var_3 = 0;
var_4 = 0;
var_5 = 0.05;
for (;;)
{
if ( isdefined( var_0 ) )
{
var_6 = level.player getplayerangles();
var_7 = level.player getvelocity();
var_8 = var_7[2];
var_7 = var_7 - var_7 * ( 0, 0, 1 );
var_9 = length( var_7 );
var_10 = level.player getstance();
var_11 = clamp( var_9, 0, 280 ) / 280;
var_12 = 0.1 + var_11 * 0.25;
var_13 = 0.1 + var_11 * 0.25;
var_14 = 1.0;
if ( var_10 == "crouch" )
var_14 = 0.75;
if ( var_10 == "prone" )
var_14 = 0.4;
if ( var_10 == "stand" )
var_14 = 1.0;
var_15 = 5.0;
var_16 = 0.9;
var_17 = level.player playerads();
var_18 = var_15 * ( 1.0 - var_17 ) + var_16 * var_17;
var_18 = var_18 * ( 1 + var_11 * 2 );
var_19 = 5;
var_20 = var_19 * var_12 * var_14;
var_21 = var_19 * var_13 * var_14;
var_1 = var_1 + var_5 * 1000.0 * var_18;
var_22 = 57.2958;
var_23 = sin( var_1 * 0.001 * var_22 );
var_24 = sin( var_1 * 0.0007 * var_22 );
var_25 = angleclamp180( var_6[1] - var_2[1] );
var_25 = clamp( var_25, -10, 10 );
var_26 = var_25 / 10 * var_19 * ( 1 - var_12 );
var_27 = var_26 - var_4;
var_4 = var_4 + clamp( var_27, -1.0, 1.0 );
var_28 = clamp( var_8, -200, 200 ) / 200 * var_19 * ( 1 - var_13 );
var_29 = var_28 - var_3;
var_3 = var_3 + clamp( var_29, -0.6, 0.6 );
var_0 moveovertime( 0.05 );
var_0.x = clamp( var_23 * var_20 + var_4 - var_19, 0 - 2 * var_19, 0 );
var_0.y = clamp( var_24 * var_21 + var_3 - var_19, 0 - 2 * var_19, 0 );
var_2 = var_6;
}
wait( var_5 );
}
}
gasmask_hud_on( var_0 )
{
wait 0.333;
if ( !isdefined( var_0 ) )
var_0 = 1;
if ( var_0 )
{
set_black_fade( 1.0, 0.25 );
wait 0.25;
}
common_scripts\utility::array_thread( level.allies, ::gasmask_on_npc );
self.gasmask_hud_elem = newhudelem();
self.gasmask_hud_elem.x = 0;
self.gasmask_hud_elem.y = 0;
self.gasmask_hud_elem.horzalign = "fullscreen";
self.gasmask_hud_elem.vertalign = "fullscreen";
self.gasmask_hud_elem.foreground = 0;
self.gasmask_hud_elem.sort = -1;
self.gasmask_hud_elem setshader( "gasmask_overlay_delta2", 650, 490 );
self.gasmask_hud_elem.alpha = 1.0;
self.gasmask_hud_elem.enablehudlighting = 1;
if ( var_0 )
{
wait 0.25;
set_black_fade( 0.0, 0.25 );
}
thread bob_mask( self.gasmask_hud_elem );
}
gasmask_hud_off( var_0 )
{
wait 0.333;
if ( !isdefined( var_0 ) )
var_0 = 1;
if ( var_0 )
{
set_black_fade( 1.0, 0.25 );
wait 0.25;
}
self notify( "stop_mask_bob" );
self.gasmask_hud_elem destroy();
self.gasmask_hud_elem = undefined;
level.player notify( "stop_breathing" );
if ( var_0 )
{
wait 0.25;
set_black_fade( 0.0, 0.25 );
}
}
gasmask_breathing()
{
var_0 = 1.0;
self endon( "stop_breathing" );
for (;;)
{
maps\_utility::play_sound_on_entity( "pybk_breathing_gasmask" );
wait( var_0 );
}
}
gas_mask_on_player_anim()
{
level.player endon( "death" );
thread maps\enemyhq_audio::aud_gas_mask_on();
level.player disableweaponswitch();
level.player disableusability();
level.player disableoffhandweapons();
setsaveddvar( "ammoCounterHide", 1 );
wait 0.25;
level.player.last_weapon = level.player getcurrentweapon();
level.player disableweapons();
wait 0.5;
if ( level.player.last_weapon == "alt_ak47_grenadier" )
level.player.last_weapon = "ak47_grenadier";
if ( level.player.last_weapon == "alt_m4m203_acog_payback" )
level.player.last_weapon = "m4m203_acog_payback";
if ( level.player.last_weapon == "alt_m4_grenadier" )
level.player.last_weapon = "m4_grenadier";
var_0 = undefined;
var_1 = undefined;
if ( level.player.last_weapon != "none" )
{
var_0 = level.player getweaponammostock( level.player.last_weapon );
var_1 = level.player getweaponammoclip( level.player.last_weapon );
}
level.player takeweapon( level.player.last_weapon );
level.player giveweapon( "scuba_mask_on" );
level.player enableweapons();
level.player switchtoweapon( "scuba_mask_on" );
level.player maps\_utility::delaythread( 0.75, ::gasmask_hud_on );
wait 2.5;
level.player takeweapon( "scuba_mask_on" );
level.player giveweapon( level.player.last_weapon, 0, 0, 0, 1 );
if ( level.player.last_weapon != "none" )
{
level.player setweaponammostock( level.player.last_weapon, var_0 );
level.player setweaponammoclip( level.player.last_weapon, var_1 );
level.player switchtoweapon( level.player.last_weapon );
}
level.player enableusability();
level.player enableweaponswitch();
level.player enableoffhandweapons();
setsaveddvar( "ammoCounterHide", 0 );
}
gas_mask_off_player_anim()
{
level endon( "death" );
level.player disableweaponswitch();
level.player disableusability();
level.player disableoffhandweapons();
setsaveddvar( "ammoCounterHide", 1 );
wait 0.25;
level.player.last_weapon = level.player getcurrentweapon();
level.player disableweapons();
wait 0.5;
if ( level.player.last_weapon == "alt_ak47_grenadier" )
level.player.last_weapon = "ak47_grenadier";
if ( level.player.last_weapon == "alt_m4m203_acog_payback" )
level.player.last_weapon = "m4m203_acog_payback";
if ( level.player.last_weapon == "alt_m4_grenadier" )
level.player.last_weapon = "m4_grenadier";
var_0 = undefined;
var_1 = undefined;
if ( level.player.last_weapon != "none" )
{
var_0 = level.player getweaponammostock( level.player.last_weapon );
var_1 = level.player getweaponammoclip( level.player.last_weapon );
}
level.player takeweapon( level.player.last_weapon );
level.player giveweapon( "scuba_mask_off" );
level.player enableweapons();
level.player switchtoweapon( "scuba_mask_off" );
level.player maps\_utility::delaythread( 0.02, ::gasmask_hud_off );
wait 2.5;
level.player takeweapon( "scuba_mask_off" );
level.player giveweapon( level.player.last_weapon, 0, 0, 0, 1 );
if ( level.player.last_weapon != "none" )
{
level.player setweaponammostock( level.player.last_weapon, var_0 );
level.player setweaponammoclip( level.player.last_weapon, var_1 );
level.player switchtoweapon( level.player.last_weapon );
}
level.player enableusability();
level.player enableweaponswitch();
level.player enableoffhandweapons();
setsaveddvar( "ammoCounterHide", 0 );
maps\_utility::autosave_now();
}
get_killed( var_0 )
{
if ( !isalive( var_0 ) )
return;
if ( isdefined( var_0.magic_bullet_shield ) && var_0.magic_bullet_shield == 1 )
var_0 maps\_utility::stop_magic_bullet_shield();
var_0.allowdeath = 1;
var_0.a.nodeath = 1;
var_0 maps\_utility::set_battlechatter( 0 );
var_0 kill();
}
corpse_setup( var_0, var_1, var_2 )
{
var_3 = maps\_utility::spawn_ai( 1 );
var_3 maps\_utility::gun_remove();
var_3.animname = "generic";
var_4 = var_3 maps\_utility::getanim( var_1 );
if ( !isdefined( var_0 ) )
var_0 = self;
var_0 maps\_anim::anim_generic_first_frame( var_3, var_1 );
var_5 = maps\_vehicle_aianim::convert_guy_to_drone( var_3 );
var_5 setanim( var_4, 1, 0.2 );
var_5 notsolid();
if ( isdefined( var_2 ) )
{
common_scripts\utility::flag_wait( var_2 );
var_5 delete();
}
else
return var_5;
}
stream_waterfx( var_0, var_1 )
{
self endon( "death" );
var_2 = 0;
if ( isdefined( var_1 ) )
var_2 = 1;
if ( isdefined( var_0 ) )
{
common_scripts\utility::flag_assert( var_0 );
level endon( var_0 );
}
for (;;)
{
wait( randomfloatrange( 0.15, 0.3 ) );
var_3 = self.origin + ( 0, 0, 150 );
var_4 = self.origin - ( 0, 0, 150 );
var_5 = bullettrace( var_3, var_4, 0, undefined );
if ( var_5["surfacetype"] != "water" )
continue;
var_6 = "water_movement";
if ( isplayer( self ) )
{
if ( distance( self getvelocity(), ( 0, 0, 0 ) ) < 5 )
var_6 = "water_stop";
}
else if ( isdefined( level._effect["water_" + self.a.movement] ) )
var_6 = "water_" + self.a.movement;
var_7 = common_scripts\utility::getfx( var_6 );
var_3 = var_5["position"];
var_8 = ( 0, self.angles[1], 0 );
var_9 = anglestoforward( var_8 );
var_10 = anglestoup( var_8 );
playfx( var_7, var_3, var_10, var_9 );
if ( var_6 != "water_stop" && var_2 )
thread common_scripts\utility::play_sound_in_space( var_1, var_3 );
}
}
lock_player_control_until_flag( var_0 )
{
if ( common_scripts\utility::flag( var_0 ) )
return;
if ( !isdefined( level.dog_lock_check ) )
level.dog_lock_check = 0;
level.dog_lock_check++;
level.dog maps\_utility::ent_flag_set( "pause_dog_command" );
level.dog_lock_flag = var_0;
self.ally_owner.dog_hud_active[0] = 0;
level.player notify( "cancel_designate" );
common_scripts\utility::flag_wait( var_0 );
level.dog_lock_flag = undefined;
level.dog_lock_check--;
if ( level.dog_lock_check == 0 )
unlock_player_control();
self.ally_owner.dog_hud_active[0] = 1;
}
lock_player_control( var_0 )
{
level.dog maps\_utility::ent_flag_set( "pause_dog_command" );
return;
}
unlock_player_control()
{
level.dog maps\_utility::ent_flag_clear( "pause_dog_command" );
}
clear_dog_scripted_mode( var_0 )
{
unlock_player_control();
}
disable_control()
{
self notify( "disable_dog_control" );
self.controlled_dog = undefined;
self enableoffhandweapons();
setdvar( "ui_dog_grenade", 0 );
}
set_dog_scripted_mode( var_0 )
{
lock_player_control();
}
dog_using_colors()
{
return isdefined( self.script_forcecolor ) || isdefined( self.script_old_forcecolor );
}
handle_leave_team_fail( var_0, var_1 )
{
level endon( "stop_leave_fails" );
thread handle_leave_team_too_far_fail( var_1 );
var_2 = [];
var_2[0] = "enemyhq_mrk_logangetbackhere";
var_2[1] = "enemyhq_mrk_whereareyougoing";
for (;;)
{
common_scripts\utility::flag_wait( var_0 );
var_3 = 0;
while ( common_scripts\utility::flag( var_0 ) )
{
if ( var_3 >= var_2.size )
{
setdvar( "ui_deadquote", &"ENEMY_HQ_YOU_LEFT_YOUR_TEAM_BEHIND" );
maps\_utility::missionfailedwrapper();
break;
}
thread radio_dialog_add_and_go( var_2[var_3] );
var_3++;
wait 6;
}
}
}
handle_leave_team_too_far_fail( var_0 )
{
level endon( "stop_leave_fails" );
common_scripts\utility::flag_wait( var_0 );
setdvar( "ui_deadquote", &"ENEMY_HQ_YOU_LEFT_YOUR_TEAM_BEHIND" );
maps\_utility::missionfailedwrapper();
}