799 lines
20 KiB
Plaintext
799 lines
20 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
precache_cam_names( var_0 )
|
|
{
|
|
if ( !isdefined( var_0 ) || !isarray( var_0 ) )
|
|
return;
|
|
|
|
level._remoteturret_loc_table = var_0;
|
|
var_1 = get_terminals();
|
|
|
|
foreach ( var_3 in var_1 )
|
|
{
|
|
var_4 = var_3 common_scripts\utility::get_linked_ents();
|
|
|
|
foreach ( var_6 in var_4 )
|
|
{
|
|
if ( isdefined( var_0[var_6.script_startname] ) )
|
|
precachestring( var_0[var_6.script_startname] );
|
|
}
|
|
}
|
|
}
|
|
|
|
init()
|
|
{
|
|
precacheshader( "uav_crosshair" );
|
|
precacheshader( "uav_vertical_meter" );
|
|
precacheshader( "uav_horizontal_meter" );
|
|
precacheshader( "overlay_grain" );
|
|
precacheshader( "uav_arrow_up" );
|
|
precacheshader( "uav_arrow_left" );
|
|
precacheshader( "ac130_thermal_overlay_bar" );
|
|
var_0 = get_terminals();
|
|
common_scripts\utility::array_thread( var_0, ::remote_turret_terminal_think );
|
|
|
|
foreach ( var_2 in level.players )
|
|
var_2 maps\_utility::ent_flag_init( "on_remote_turret" );
|
|
|
|
common_scripts\utility::flag_init( "_remoteturret_manual_getoff" );
|
|
common_scripts\utility::flag_init( "_remoteturret_nofade" );
|
|
common_scripts\utility::flag_set( "_remoteturret_manual_getoff" );
|
|
}
|
|
|
|
get_terminals()
|
|
{
|
|
return getentarray( "remote_turret_terminal", "targetname" );
|
|
}
|
|
|
|
remote_turret_terminal_think()
|
|
{
|
|
var_0 = spawn( "script_model", self.origin );
|
|
self.trigger = var_0;
|
|
self.lastturretindex = 0;
|
|
self._remote_turrets = common_scripts\utility::get_linked_ents();
|
|
common_scripts\utility::array_thread( self._remote_turrets, ::setup_turret, self );
|
|
var_0.angles = self.angles;
|
|
var_0 setmodel( "com_laptop_2_open_obj" );
|
|
var_0 makeusable();
|
|
var_0 sethintstring( &"PLATFORM_HOLD_TO_USE" );
|
|
|
|
for (;;)
|
|
{
|
|
var_0 waittill( "trigger", var_1 );
|
|
var_0 common_scripts\utility::trigger_off();
|
|
var_1 thread maps\_utility::play_sound_on_entity( "intelligence_pickup" );
|
|
var_1 thread remote_turret_loop( self );
|
|
var_1 waittill( "get_off_turret" );
|
|
var_0 common_scripts\utility::trigger_on();
|
|
}
|
|
}
|
|
|
|
remote_turret_loop( var_0 )
|
|
{
|
|
self endon( "transfer_terminal" );
|
|
|
|
if ( common_scripts\utility::flag( "_remoteturret_manual_getoff" ) )
|
|
self notifyonplayercommand( "get_off_turret", "+stance" );
|
|
|
|
if ( var_0._remote_turrets.size > 1 )
|
|
thread turret_switch_input_loop( var_0 );
|
|
|
|
thread remote_turret_enable( var_0._remote_turrets[var_0.lastturretindex], var_0 );
|
|
thread cancel_on_player_damage();
|
|
self waittill( "get_off_turret" );
|
|
thread remote_turret_disable( var_0._remote_turrets[var_0.lastturretindex], var_0 );
|
|
maps\_utility::ent_flag_waitopen( "on_remote_turret" );
|
|
}
|
|
|
|
turret_switch_input_loop( var_0 )
|
|
{
|
|
self endon( "no_switching_allowed" );
|
|
self endon( "get_off_turret" );
|
|
self notifyonplayercommand( "next_turret", "weapnext" );
|
|
waittillframeend;
|
|
|
|
for (;;)
|
|
{
|
|
self waittill( "next_turret" );
|
|
|
|
if ( maps\_utility::ent_flag( "on_remote_turret" ) )
|
|
remote_turret_next( var_0 );
|
|
}
|
|
}
|
|
|
|
setup_turret( var_0 )
|
|
{
|
|
var_1 = self;
|
|
var_1 makeunusable();
|
|
var_1.issentrygun = 1;
|
|
|
|
if ( isdefined( var_1.target ) )
|
|
{
|
|
var_2 = var_1 common_scripts\utility::get_target_ent();
|
|
var_1.last_look_origin = var_2.origin;
|
|
}
|
|
|
|
if ( !isdefined( var_1.leftarc ) )
|
|
var_1.leftarc = 70;
|
|
|
|
if ( !isdefined( var_1.rightarc ) )
|
|
var_1.rightarc = 70;
|
|
|
|
if ( !isdefined( var_1.toparc ) )
|
|
var_1.toparc = 60;
|
|
|
|
if ( !isdefined( var_1.bottomarc ) )
|
|
var_1.bottomarc = 60;
|
|
|
|
var_1 setrightarc( var_1.rightarc );
|
|
var_1 setleftarc( var_1.rightarc );
|
|
var_1 settoparc( var_1.toparc );
|
|
var_1 setbottomarc( var_1.bottomarc );
|
|
var_1.terminal = var_0;
|
|
var_1.turret = spawnturret( "misc_turret", var_1.origin, var_1.weaponinfo );
|
|
var_1.turret.angles = var_1.angles;
|
|
var_1.turret setmodel( var_1.model );
|
|
var_1.turret hide();
|
|
var_1.turret makeunusable();
|
|
var_1.turret setdefaultdroppitch( 0 );
|
|
}
|
|
|
|
player_turret_shoot( var_0 )
|
|
{
|
|
var_0 endon( "stop_use_turret" );
|
|
|
|
for (;;)
|
|
{
|
|
while ( !self attackbuttonpressed() )
|
|
wait 0.05;
|
|
|
|
var_0 shootturret();
|
|
var_0 notify( "create_badplace" );
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
player_look_aim( var_0, var_1 )
|
|
{
|
|
var_0 endon( "stop_use_turret" );
|
|
var_2 = getaiarray( "axis" );
|
|
var_3 = var_0 gettagorigin( "tag_player" );
|
|
var_0 setmode( "manual" );
|
|
var_0 settargetentity( var_1 );
|
|
|
|
for (;;)
|
|
{
|
|
var_4 = self getplayerangles();
|
|
var_5 = anglestoforward( var_4 );
|
|
var_6 = var_3 + var_5 * 999999;
|
|
var_1.origin = var_6;
|
|
var_0.last_look_origin = var_6;
|
|
wait 0.1;
|
|
}
|
|
}
|
|
|
|
remote_turret_enable( var_0, var_1 )
|
|
{
|
|
self endon( "get_off_turret" );
|
|
var_0.attacker = self;
|
|
var_0.owner = self;
|
|
var_0 setsentryowner( self );
|
|
self freezecontrols( 1 );
|
|
self.oldangles = self getplayerangles();
|
|
self disableweapons();
|
|
holdstancechange( 0 );
|
|
rt_fade_out();
|
|
self thermalvisionon();
|
|
self remotecamerasoundscapeon();
|
|
text_titlecreate();
|
|
maps\_utility::ent_flag_set( "on_remote_turret" );
|
|
huditemshide();
|
|
thread turret_activate( var_0, var_1 );
|
|
rt_fade_in();
|
|
self freezecontrols( 0 );
|
|
}
|
|
|
|
remote_turret_disable( var_0, var_1 )
|
|
{
|
|
var_0.attacker = undefined;
|
|
var_0.owner = undefined;
|
|
self setsentryowner( undefined );
|
|
maps\_utility::ent_flag_clear( "on_remote_turret" );
|
|
|
|
if ( !common_scripts\utility::flag( "_remoteturret_nofade" ) )
|
|
rt_fade_out();
|
|
|
|
turret_deactivate( var_0, var_1 );
|
|
self enableweapons();
|
|
self thermalvisionoff();
|
|
self remotecamerasoundscapeoff();
|
|
self setplayerangles( self.oldangles );
|
|
holdstancechange( 1 );
|
|
huditemsshow();
|
|
text_titledestroy();
|
|
|
|
if ( !common_scripts\utility::flag( "_remoteturret_nofade" ) )
|
|
rt_fade_in();
|
|
}
|
|
|
|
remote_turret_next( var_0 )
|
|
{
|
|
maps\_utility::ent_flag_clear( "on_remote_turret" );
|
|
self endon( "get_off_turret" );
|
|
|
|
if ( !common_scripts\utility::flag( "_remoteturret_nofade" ) )
|
|
rt_fade_out();
|
|
|
|
turret_deactivate( var_0._remote_turrets[var_0.lastturretindex], var_0 );
|
|
var_0.lastturretindex = var_0.lastturretindex + 1;
|
|
var_0.lastturretindex = var_0.lastturretindex % var_0._remote_turrets.size;
|
|
thread turret_activate( var_0._remote_turrets[var_0.lastturretindex], var_0 );
|
|
|
|
if ( !common_scripts\utility::flag( "_remoteturret_nofade" ) )
|
|
rt_fade_in();
|
|
|
|
maps\_utility::ent_flag_set( "on_remote_turret" );
|
|
}
|
|
|
|
turret_activate( var_0, var_1 )
|
|
{
|
|
if ( isdefined( level._remoteturret_loc_table ) && isdefined( var_0.script_startname ) && isdefined( level._remoteturret_loc_table[var_0.script_startname] ) )
|
|
text_titlesettext( level._remoteturret_loc_table[var_0.script_startname] );
|
|
else
|
|
text_titlesettext( "CAMERA: " + ( var_1.lastturretindex + 1 ) );
|
|
|
|
var_0 hideonclient( self );
|
|
uav_enable_view();
|
|
var_2 = common_scripts\utility::spawn_tag_origin();
|
|
var_3 = var_0 gettagangles( "tag_origin" );
|
|
|
|
if ( isdefined( var_0.last_look_origin ) )
|
|
var_3 = vectortoangles( var_0.last_look_origin - var_0.origin );
|
|
|
|
self setplayerangles( ( var_3[0], var_3[1], self.angles[2] ) );
|
|
self playerlinkto( var_0, "tag_player", 0, var_0.rightarc * 0.9, var_0.leftarc * 0.9, var_0.toparc * 0.9, var_0.bottomarc * 0.9 );
|
|
var_0 turretfireenable();
|
|
var_0 makeusable();
|
|
var_0 useby( self );
|
|
var_0 makeunusable();
|
|
self disableturretdismount();
|
|
var_2 delete();
|
|
}
|
|
|
|
turret_deactivate( var_0, var_1 )
|
|
{
|
|
uav_disable_view();
|
|
var_0 turretfiredisable();
|
|
var_0 stopfiring();
|
|
wait 0.1;
|
|
self unlink();
|
|
self enableturretdismount();
|
|
var_0 makeusable();
|
|
var_0 useby( self );
|
|
var_0 makeunusable();
|
|
var_0 notify( "stop_use_turret" );
|
|
var_0 showonclient( self );
|
|
}
|
|
|
|
remote_turret_badplace( var_0, var_1 )
|
|
{
|
|
var_0 endon( "stop_use_turret" );
|
|
|
|
for (;;)
|
|
{
|
|
var_0 waittill( "create_badplace" );
|
|
var_2 = var_0 gettagorigin( "tag_flash" );
|
|
var_3 = var_0 gettagangles( "tag_flash" );
|
|
var_4 = var_2 + anglestoforward( var_3 ) * 9999;
|
|
var_5 = bullettrace( var_2, var_4, 0 );
|
|
badplace_cylinder( "bullet_impact", 1, var_5["position"], 256, 96, "axis" );
|
|
wait 1;
|
|
}
|
|
}
|
|
|
|
rt_fade_in()
|
|
{
|
|
if ( level.missionfailed )
|
|
return;
|
|
|
|
level notify( "now_fade_in" );
|
|
wait 0.05;
|
|
var_0 = get_white_overlay();
|
|
var_0 fadeovertime( 0.2 );
|
|
var_0.alpha = 0;
|
|
wait 0.3;
|
|
}
|
|
|
|
rt_fade_out()
|
|
{
|
|
var_0 = get_white_overlay();
|
|
var_0 fadeovertime( 0.2 );
|
|
var_0.alpha = 1;
|
|
wait 0.2;
|
|
}
|
|
|
|
get_white_overlay()
|
|
{
|
|
if ( !isdefined( self.white_overlay ) )
|
|
self.white_overlay = maps\_hud_util::create_client_overlay( "white", 0, self );
|
|
|
|
self.white_overlay.sort = -1;
|
|
self.white_overlay.foreground = 0;
|
|
return self.white_overlay;
|
|
}
|
|
|
|
huditemshide()
|
|
{
|
|
if ( level.players.size > 0 )
|
|
{
|
|
for ( var_0 = 0; var_0 < level.players.size; var_0++ )
|
|
{
|
|
if ( level.players[var_0] maps\_utility::ent_flag( "on_remote_turret" ) )
|
|
setdvar( "ui_remotemissile_playernum", var_0 + 1 );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
setsaveddvar( "compass", "0" );
|
|
setsaveddvar( "ammoCounterHide", "1" );
|
|
setsaveddvar( "actionSlotsHide", "1" );
|
|
}
|
|
}
|
|
|
|
huditemsshow()
|
|
{
|
|
if ( level.players.size > 0 )
|
|
setdvar( "ui_remotemissile_playernum", 0 );
|
|
else
|
|
{
|
|
setsaveddvar( "compass", "1" );
|
|
setsaveddvar( "ammoCounterHide", "0" );
|
|
setsaveddvar( "actionSlotsHide", "0" );
|
|
}
|
|
}
|
|
|
|
holdstancechange( var_0 )
|
|
{
|
|
if ( !var_0 )
|
|
{
|
|
var_1 = self getstance();
|
|
|
|
if ( var_1 != "prone" )
|
|
self allowprone( var_0 );
|
|
|
|
if ( var_1 != "crouch" )
|
|
self allowcrouch( var_0 );
|
|
|
|
if ( var_1 != "stand" )
|
|
{
|
|
self allowstand( var_0 );
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
self allowprone( var_0 );
|
|
self allowcrouch( var_0 );
|
|
self allowstand( var_0 );
|
|
}
|
|
}
|
|
|
|
uav_enable_view( var_0, var_1 )
|
|
{
|
|
level.uav_sort = -5;
|
|
level.uav_hud_color = ( 1, 1, 1 );
|
|
self.uav_huds = [];
|
|
self.uav_huds["static_hud"] = create_hud_static_overlay( var_0 );
|
|
self.uav_huds["scanline"] = create_hud_scanline_overlay( var_0 );
|
|
self.uav_huds["crosshair"] = create_hud_crosshair( var_0 );
|
|
setsaveddvar( "sm_sunsamplesizenear", "1" );
|
|
setsaveddvar( "sm_cameraoffset", "3400" );
|
|
thread uav_hud_scanline();
|
|
}
|
|
|
|
hud_fade_in_time( var_0, var_1 )
|
|
{
|
|
if ( !isdefined( var_0 ) )
|
|
return 0;
|
|
|
|
if ( !isdefined( var_1 ) )
|
|
var_1 = 1;
|
|
|
|
self.alpha = 0;
|
|
self fadeovertime( var_0 );
|
|
self.alpha = var_1;
|
|
return 1;
|
|
}
|
|
|
|
create_hud_static_overlay( var_0 )
|
|
{
|
|
var_1 = maps\_hud_util::create_client_overlay( "overlay_grain", 0.3, self );
|
|
var_1.sort = level.uav_sort;
|
|
|
|
if ( !var_1 hud_fade_in_time( var_0, 0.3 ) )
|
|
var_1.alpha = 0.3;
|
|
|
|
return var_1;
|
|
}
|
|
|
|
create_hud_scanline_overlay( var_0 )
|
|
{
|
|
var_1 = maps\_hud_util::create_client_overlay( "ac130_thermal_overlay_bar", 1, self );
|
|
var_1.x = 0;
|
|
var_1.y = 0;
|
|
var_1.sort = level.uav_sort + 1;
|
|
var_1.horzalign = "fullscreen";
|
|
var_1.vertalign = "fullscreen";
|
|
|
|
if ( !var_1 hud_fade_in_time( var_0, 1 ) )
|
|
var_1.alpha = 1;
|
|
|
|
return var_1;
|
|
}
|
|
|
|
create_hud_horizontal_meter( var_0 )
|
|
{
|
|
var_1 = newhudelem();
|
|
var_1.x = 320;
|
|
var_1.y = 40;
|
|
var_1.sort = level.uav_sort;
|
|
var_1.alignx = "center";
|
|
var_1.aligny = "bottom";
|
|
var_1.color = level.uav_hud_color;
|
|
var_1 setshader( "uav_horizontal_meter", 96, 16 );
|
|
var_1 hud_fade_in_time( var_0 );
|
|
return var_1;
|
|
}
|
|
|
|
create_hud_vertical_meter( var_0 )
|
|
{
|
|
var_1 = newhudelem();
|
|
var_1.x = 40;
|
|
var_1.y = 240;
|
|
var_1.sort = level.uav_sort;
|
|
var_1.alignx = "right";
|
|
var_1.aligny = "middle";
|
|
var_1.color = level.uav_hud_color;
|
|
var_1 setshader( "uav_vertical_meter", 16, 96 );
|
|
var_1 hud_fade_in_time( var_0 );
|
|
return var_1;
|
|
}
|
|
|
|
create_hud_crosshair( var_0 )
|
|
{
|
|
var_1 = maps\_hud_util::createclienticon( "uav_crosshair", 320, 240 );
|
|
var_1.sort = level.uav_sort;
|
|
var_1.elemtype = "icon";
|
|
var_1 maps\_hud_util::setparent( level.uiparent );
|
|
var_1 maps\_hud_util::setpoint( "CENTER", undefined, 0, 0 );
|
|
var_1 hud_fade_in_time( var_0 );
|
|
return var_1;
|
|
}
|
|
|
|
uav_set_target_hud_data( var_0, var_1 )
|
|
{
|
|
self.uav_huds["lower_right"][var_0].data_value setvalue( var_1 );
|
|
}
|
|
|
|
uav_set_hud_data( var_0, var_1 )
|
|
{
|
|
self.uav_huds[var_0].data_value setvalue( var_1 );
|
|
}
|
|
|
|
create_hud_upper_left( var_0 )
|
|
{
|
|
var_1 = [];
|
|
var_1["nar"] = [ &"UAV_NAR", "none" ];
|
|
var_1["white"] = [ &"UAV_WHT", "none" ];
|
|
var_1["rate"] = [ &"UAV_RATE", "none" ];
|
|
var_1["angle"] = [ &"UAV_RATIO", "none" ];
|
|
var_1["numbers"] = [ &"UAV_ABOVE_TEMP_NUMBERS", "none" ];
|
|
var_1["temp"] = [ &"UAV_TEMP", "none" ];
|
|
return create_hud_section( var_1, 10, 80, "left", var_0 );
|
|
}
|
|
|
|
create_hud_upper_right( var_0 )
|
|
{
|
|
var_1 = [];
|
|
var_1["acft"] = [ &"UAV_ACFT", "none" ];
|
|
var_1["long"] = [ &"UAV_N", "none" ];
|
|
var_1["lat"] = [ &"UAV_W", "none" ];
|
|
var_1["angle"] = [ &"UAV_HAT", "none" ];
|
|
return create_hud_section( var_1, 510, 80, "left", var_0 );
|
|
}
|
|
|
|
create_hud_lower_right( var_0 )
|
|
{
|
|
var_1 = [];
|
|
var_1["long"] = [ &"UAV_N", "none" ];
|
|
var_1["lat"] = [ &"UAV_W", "none" ];
|
|
var_2 = create_hud_section( var_1, 500, 335, "left", var_0 );
|
|
var_1 = [];
|
|
var_1["brg"] = [ &"UAV_BRG", "" ];
|
|
var_1["rng_m"] = [ &"UAV_RNG", &"UAV_M" ];
|
|
var_1["rng_nm"] = [ &"UAV_RNG", &"UAV_NM" ];
|
|
var_1["elv"] = [ &"UAV_ELV", &"UAV_F" ];
|
|
var_3 = create_hud_section( var_1, 510, 360, "right", var_0 );
|
|
|
|
foreach ( var_6, var_5 in var_3 )
|
|
var_2[var_6] = var_5;
|
|
|
|
return var_2;
|
|
}
|
|
|
|
create_hud_section( var_0, var_1, var_2, var_3, var_4 )
|
|
{
|
|
var_5 = [];
|
|
var_6 = 10 * level.uav_fontscale;
|
|
|
|
foreach ( var_10, var_8 in var_0 )
|
|
{
|
|
var_9 = newhudelem();
|
|
var_9.x = var_1;
|
|
var_9.y = var_2;
|
|
var_9.sort = level.uav_sort;
|
|
var_9.alignx = var_3;
|
|
var_9.aligny = "middle";
|
|
var_9.fontscale = level.uav_fontscale;
|
|
var_9.color = level.uav_hud_color;
|
|
var_9 settext( var_8[0] );
|
|
|
|
if ( isdefined( var_8[1] ) )
|
|
{
|
|
if ( !string_is_valid( var_8[1], "none" ) )
|
|
var_9 create_hud_data_value( var_8[1], var_4 );
|
|
}
|
|
else
|
|
var_9 create_hud_data_value( undefined, var_4 );
|
|
|
|
var_9 hud_fade_in_time( var_4 );
|
|
var_5[var_10] = var_9;
|
|
var_2 = var_2 + var_6;
|
|
}
|
|
|
|
return var_5;
|
|
}
|
|
|
|
string_is_valid( var_0, var_1 )
|
|
{
|
|
if ( isstring( var_0 ) )
|
|
{
|
|
if ( var_0 == var_1 )
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
create_hud_data_value( var_0, var_1 )
|
|
{
|
|
var_2 = 75;
|
|
|
|
if ( isdefined( var_0 ) && !string_is_valid( var_0, "" ) )
|
|
{
|
|
var_3 = newhudelem();
|
|
var_3.x = self.x + var_2;
|
|
var_3.y = self.y;
|
|
var_3.alignx = "right";
|
|
var_3.aligny = "middle";
|
|
var_3.fontscale = level.uav_fontscale;
|
|
var_3.color = level.uav_hud_color;
|
|
var_3.sort = level.uav_sort;
|
|
var_3 settext( var_0 );
|
|
self.data_value_suffix = var_3;
|
|
var_4 = 1;
|
|
|
|
if ( var_0 == &"UAV_NM" )
|
|
var_4 = 2;
|
|
|
|
var_3 hud_fade_in_time( var_1 );
|
|
var_2 = var_2 - 10 * var_4;
|
|
}
|
|
|
|
var_5 = newhudelem();
|
|
var_5.x = self.x + var_2;
|
|
var_5.y = self.y;
|
|
var_5.alignx = "right";
|
|
var_5.aligny = "middle";
|
|
var_5.fontscale = level.uav_fontscale;
|
|
var_5.color = level.uav_hud_color;
|
|
var_5.sort = level.uav_sort;
|
|
var_5 setvalue( 0 );
|
|
var_5 hud_fade_in_time( var_1 );
|
|
self.data_value = var_5;
|
|
}
|
|
|
|
create_hud_arrow( var_0, var_1 )
|
|
{
|
|
if ( var_0 == "up" )
|
|
{
|
|
var_2 = "uav_arrow_up";
|
|
var_3 = self.uav_huds["horz_meter"];
|
|
var_4 = 320;
|
|
var_5 = var_3.y + 10;
|
|
var_6 = "center";
|
|
var_7 = "top";
|
|
}
|
|
else
|
|
{
|
|
var_2 = "uav_arrow_left";
|
|
var_3 = self.uav_huds["vert_meter"];
|
|
var_4 = var_3.x + 10;
|
|
var_5 = 240;
|
|
var_6 = "left";
|
|
var_7 = "middle";
|
|
}
|
|
|
|
var_8 = newhudelem();
|
|
var_8.x = var_4;
|
|
var_8.y = var_5;
|
|
var_8.alignx = var_6;
|
|
var_8.aligny = var_7;
|
|
var_8.sort = level.uav_sort;
|
|
var_8 setshader( var_2, 16, 16 );
|
|
var_8 hud_fade_in_time( var_1 );
|
|
var_8 create_hud_arrow_value( var_0, var_1 );
|
|
return var_8;
|
|
}
|
|
|
|
create_hud_arrow_value( var_0, var_1 )
|
|
{
|
|
if ( var_0 == "up" )
|
|
{
|
|
var_2 = self.x;
|
|
var_3 = self.y + 16;
|
|
var_4 = "center";
|
|
var_5 = "top";
|
|
}
|
|
else
|
|
{
|
|
var_2 = self.x + 16;
|
|
var_3 = self.y;
|
|
var_4 = "left";
|
|
var_5 = "middle";
|
|
}
|
|
|
|
var_6 = newhudelem();
|
|
var_6.x = var_2;
|
|
var_6.y = var_3;
|
|
var_6.alignx = var_4;
|
|
var_6.aligny = var_5;
|
|
var_6.sort = level.uav_sort;
|
|
var_6 setvalue( 0 );
|
|
var_6 hud_fade_in_time( var_1 );
|
|
self.data_value = var_6;
|
|
}
|
|
|
|
uav_disable_view( var_0 )
|
|
{
|
|
if ( isdefined( self.uav_huds ) )
|
|
{
|
|
foreach ( var_2 in self.uav_huds )
|
|
{
|
|
if ( isarray( var_2 ) )
|
|
{
|
|
foreach ( var_4 in var_2 )
|
|
uav_destroy_hud( var_4, var_0 );
|
|
|
|
var_2 = undefined;
|
|
continue;
|
|
}
|
|
|
|
uav_destroy_hud( var_2, var_0 );
|
|
}
|
|
}
|
|
|
|
if ( !isdefined( var_0 ) )
|
|
var_0 = 0.05;
|
|
|
|
setsaveddvar( "sm_sunenable", 1.0 );
|
|
}
|
|
|
|
uav_destroy_hud( var_0, var_1 )
|
|
{
|
|
if ( isdefined( var_0.data_value ) )
|
|
var_0.data_value thread uav_destroy_hud_wrapper( var_1 );
|
|
|
|
if ( isdefined( var_0.data_value_suffix ) )
|
|
var_0.data_value_suffix thread uav_destroy_hud_wrapper( var_1 );
|
|
|
|
var_0 thread uav_destroy_hud_wrapper( var_1 );
|
|
}
|
|
|
|
uav_destroy_hud_wrapper( var_0 )
|
|
{
|
|
if ( isdefined( var_0 ) )
|
|
{
|
|
self fadeovertime( var_0 );
|
|
self.alpha = 0;
|
|
wait( var_0 );
|
|
}
|
|
|
|
if ( isdefined( self ) )
|
|
self destroy();
|
|
}
|
|
|
|
text_titlecreate()
|
|
{
|
|
level.text1 = maps\_hud_util::createclientfontstring( "objective", 2.0 );
|
|
level.text1 maps\_hud_util::setpoint( "TOP", undefined, 0, 10 );
|
|
}
|
|
|
|
text_titlesettext( var_0 )
|
|
{
|
|
level.text1 settext( var_0 );
|
|
}
|
|
|
|
text_titlefadeout()
|
|
{
|
|
level.text1 fadeovertime( 0.25 );
|
|
level.text1.alpha = 0;
|
|
}
|
|
|
|
text_titledestroy()
|
|
{
|
|
if ( !isdefined( level.text1 ) )
|
|
return;
|
|
|
|
level.text1 destroy();
|
|
level.text1 = undefined;
|
|
}
|
|
|
|
cancel_on_player_damage()
|
|
{
|
|
self endon( "get_off_turret" );
|
|
self.took_damage = 0;
|
|
common_scripts\utility::waittill_any( "damage", "dtest", "force_out_of_uav" );
|
|
self.took_damage = 1;
|
|
self notify( "get_off_turret" );
|
|
}
|
|
|
|
uav_hud_scanline()
|
|
{
|
|
var_0 = self.uav_huds["scanline"];
|
|
|
|
if ( !isdefined( var_0 ) )
|
|
return;
|
|
|
|
var_0 endon( "death" );
|
|
var_1 = 80;
|
|
var_2 = 280;
|
|
var_3 = 7;
|
|
var_4 = 15;
|
|
var_5 = -100;
|
|
var_6 = 580;
|
|
|
|
for (;;)
|
|
{
|
|
var_0.y = var_5;
|
|
var_7 = randomintrange( var_1, var_2 );
|
|
var_0 setshader( "ac130_thermal_overlay_bar", 640, var_7 );
|
|
var_8 = randomfloatrange( var_3, var_4 );
|
|
var_0 moveovertime( var_8 );
|
|
var_0.y = var_6;
|
|
wait( var_8 );
|
|
}
|
|
}
|
|
|
|
transfer_to_new_terminal( var_0, var_1 )
|
|
{
|
|
common_scripts\utility::flag_set( "_remoteturret_nofade" );
|
|
maps\_utility::ent_flag_clear( "on_remote_turret" );
|
|
self notify( "no_switching_allowed" );
|
|
rt_fade_out();
|
|
turret_deactivate( var_0 get_active_turret() );
|
|
self notify( "transfer_terminal" );
|
|
self notify( "get_off_turret" );
|
|
text_titledestroy();
|
|
thread remote_turret_loop( var_1 );
|
|
rt_fade_in();
|
|
maps\_utility::ent_flag_set( "on_remote_turret" );
|
|
common_scripts\utility::flag_clear( "_remoteturret_nofade" );
|
|
}
|
|
|
|
get_active_turret()
|
|
{
|
|
return self._remote_turrets[self.lastturretindex];
|
|
}
|