// IW6 GSC SOURCE // Generated by https://github.com/xensik/gsc-tool _precache() { precacheshader( "apache_friendly_ai_diamond_s_w" ); precacheshader( "apache_target_vehicle" ); precacheshader( "apache_enemy_ai_target_s_w" ); precacheshader( "apache_friendly_vehicle_diamond_s_w" ); precacheshader( "apache_enemy_vehicle_target_empty" ); precacheshader( "apache_enemy_vehicle_target_offscreen" ); precacheshader( "apache_friendly_vehicle_target_offscreen" ); } _init( var_0 ) { var_1 = spawnstruct(); var_1.owner = var_0; var_1.type = "targeting"; return var_1; } _start() { } hud_color_ally() { return ( 0.3, 0.3, 0.3 ); } hud_set_target_locked( var_0 ) { if ( var_0 maps\_vehicle::isvehicle() ) { target_setdelay( var_0, 0.0, 1, 1, 0.0 ); target_setminsize( var_0, 32, 0 ); } } hud_set_target_default( var_0 ) { if ( var_0 maps\_vehicle::isvehicle() ) { target_setdelay( var_0, 0.6, 10, 25, randomfloatrange( 1.25, 2.75 ) ); target_setminsize( var_0, 16, common_scripts\utility::ter_op( isdefined( var_0.hud_player_target_hide_at_min ), var_0.hud_player_target_hide_at_min, 1 ) ); } } hud_addtargets( var_0, var_1 ) { if ( !isdefined( var_0 ) || !isarray( var_0 ) ) return; var_1 = common_scripts\utility::ter_op( isdefined( var_1 ), var_1, 0.0 ); var_2 = "apache_friendly_ai_diamond_s_w"; var_3 = undefined; var_4 = undefined; var_5 = ( 0, 0, 0 ); var_6 = "both"; var_7 = 0; var_8 = 0; var_9 = 0; var_10 = -1; var_11 = -1; var_12 = 1; var_13 = 1; var_14 = 0; var_15 = undefined; var_16 = -1; var_17 = undefined; foreach ( var_19 in var_0 ) { if ( target_istarget( var_19 ) ) target_remove( var_19 ); if ( !isdefined( var_19 ) || isdefined( var_19.shader ) || target_getarray().size >= 64 ) continue; if ( ismissile( var_19 ) ) { var_2 = "apache_enemy_vehicle_target_empty"; var_7 = 1; var_9 = 1; var_14 = 1; var_16 = 60; } else if ( isai( var_19 ) || isscriptmodel( var_19 ) ) { if ( var_19 onteam( "allies" ) ) { var_2 = "apache_enemy_vehicle_target_empty"; var_7 = 1; var_5 = ( 0, 0, 32 ); var_9 = 1; var_14 = 1; var_16 = 45; var_15 = hud_color_ally(); } else { var_2 = "apache_enemy_vehicle_target_empty"; var_6 = "enhanced"; var_5 = ( 0, 0, 32 ); var_9 = 1; var_14 = 1; var_11 = 24; } } else if ( var_19 maps\_vehicle::isvehicle() ) { var_6 = "enhanced"; var_2 = "apache_enemy_vehicle_target_empty"; var_14 = 1; var_9 = 1; var_8 = 0; var_15 = undefined; var_5 = ( 0, 0, 64 ); var_11 = 64; var_16 = 150; var_17 = 0.6; if ( var_19 onteam( "allies" ) ) { var_2 = "apache_enemy_vehicle_target_empty"; var_3 = "apache_friendly_vehicle_target_offscreen"; var_7 = 1; var_9 = 1; var_14 = 1; var_15 = hud_color_ally(); if ( issubstr( var_19.classname, "apache" ) ) { var_5 = ( 0, 0, -72 ); var_16 = 100; } } else { var_3 = "apache_enemy_vehicle_target_offscreen"; if ( issubstr( var_19.classname, "hind" ) ) { var_5 = ( 0, 0, -72 ); var_12 = isdefined( var_19.script_parameters ) && issubstr( var_19.script_parameters, "target_hide_at_min" ); } } } else { var_2 = "apache_friendly_ai_diamond_s_w"; var_5 = ( 0, 0, 32 ); } var_20 = spawnstruct(); var_20.active_mode = var_6; var_20.active = var_7; var_20.offscreen_shader = var_3; var_20.offscreen_shader_blink = var_4; if ( var_13 ) { if ( !target_alloc_limit_fail_passed( var_19, var_5 ) ) return; target_setshader( var_19, var_2 ); target_setscaledrendermode( var_19, 0 ); if ( var_9 ) target_drawsingle( var_19 ); if ( var_14 ) target_drawsquare( var_19, var_16 ); if ( var_8 ) target_drawcornersonly( var_19, 1 ); if ( isdefined( var_15 ) ) target_setcolor( var_19, var_15 ); if ( isdefined( var_17 ) ) target_setdelay( var_19, var_17, 10, 25, randomfloatrange( 1.25, 2.75 ) ); target_setmaxsize( var_19, var_11 ); target_setminsize( var_19, var_10, var_12 ); target_flush( var_19 ); if ( !var_12 ) var_19.hud_player_target_hide_at_min = var_12; } else { target_set( var_19, var_5 ); target_setshader( var_19, var_2 ); } if ( isdefined( var_3 ) ) target_setoffscreenshader( var_19, var_3 ); var_20.visibleto = []; foreach ( var_22 in level.players ) var_20.visibleto[var_22 getentitynumber()] = undefined; if ( !isdefined( var_20.weapon ) ) var_20.weapon = []; var_20.weapon["lockOn_missile"] = spawnstruct(); var_20.weapon["lockOn_missile"].islockedon = []; var_19._target = var_20; thread hud_target_ondeath( var_19 ); if ( var_1 > 0 ) wait( var_1 ); } } ismissile( var_0 ) { if ( isdefined( var_0 ) && isdefined( var_0.classname ) && issubstr( var_0.classname, "rocket" ) ) return 1; return 0; } isscriptmodel( var_0 ) { if ( isdefined( var_0 ) && isdefined( var_0.classname ) && var_0.classname == "script_model" ) return 1; return 0; } hud_showtargets( var_0 ) { var_1 = self.owner; foreach ( var_3 in var_0 ) { if ( isdefined( var_3 ) && target_istarget( var_3 ) ) { var_4 = var_3._target; var_4.visibleto[var_1 getentitynumber()] = 1; var_3 thread hud_outlineenable(); } } } hud_outlineenable() { if ( isdefined( self.team ) && self.team == "allies" || isdefined( self.script_team ) && self.script_team == "allies" ) { if ( !isai( self ) ) thread hud_outline_enable_withinview( "friendly", cos( 20 ) ); return; } var_0 = "enemy"; if ( isdefined( level.player.riding_heli ) && self == level.player.riding_heli ) return; if ( isdefined( self.mgturret ) ) { foreach ( var_2 in self.mgturret ) var_2 maps\_utility::set_hudoutline( var_0, 1 ); } maps\_utility::set_hudoutline( var_0, 1 ); self waittill( "death" ); if ( isdefined( self ) ) self hudoutlinedisable(); } hud_outline_enable_withinview( var_0, var_1 ) { self notify( "hud_outline_enable_withinView" ); self endon( "hud_outline_enable_withinView" ); self endon( "death" ); var_2 = 0; var_3 = 1; while ( var_3 ) { wait 0.05; var_4 = ( target_isincircle( self, level.player, 66, 130 ) || distancesquared( level.player geteye(), self.origin ) < 9000000 ) && ( level.player attackbuttonpressed() || level.player fragbuttonpressed() ); var_3 = isdefined( level.player.riding_heli ); if ( var_2 ) { if ( !var_4 || !var_3 ) { var_2 = 0; self hudoutlinedisable(); if ( isdefined( self.mgturret ) ) { foreach ( var_6 in self.mgturret ) var_6 hudoutlinedisable(); } } continue; } if ( var_4 && var_3 ) { var_2 = 1; maps\_utility::set_hudoutline( var_0, 1 ); if ( isdefined( self.mgturret ) ) { foreach ( var_6 in self.mgturret ) var_6 maps\_utility::set_hudoutline( var_0, 1 ); } } } } hud_hidetargets( var_0 ) { var_1 = self.owner; foreach ( var_3 in var_0 ) { if ( isdefined( var_3 ) && target_istarget( var_3 ) ) { var_4 = var_3._target; var_4.visibleto[var_1 getentitynumber()] = undefined; if ( isdefined( var_3.mgturret ) ) common_scripts\utility::array_call( var_3.mgturret, ::hudoutlinedisable ); var_3 hudoutlinedisable(); target_hidefromplayer( var_3, var_1 ); } } } onteam( var_0 ) { if ( maps\_vehicle::isvehicle() ) return isdefined( self.script_team ) && self.script_team == var_0; else return isdefined( self.team ) && self.team == var_0; return 0; } hud_target_ondeath( var_0 ) { var_0 waittill( "death" ); if ( isdefined( var_0 ) && target_istarget( var_0 ) ) { if ( !isai( var_0 ) ) hud_hidetargets( [ var_0 ] ); target_remove( var_0 ); } } target_islockedontome( var_0 ) { if ( !isdefined( self._target ) ) return 0; var_1 = var_0 getentitynumber(); var_2 = 0; foreach ( var_4 in self._target.weapon ) { if ( isdefined( var_4.islockedon[var_1] ) ) return 1; } return 0; } _end() { var_0 = self.owner; var_0 notify( "LISTEN_end_targeting" ); var_1 = target_getarray(); var_2 = var_0 getentitynumber(); if ( level.players.size > 1 ) { foreach ( var_4 in var_1 ) { target_remove( var_4 ); if ( isdefined( var_4._target ) ) var_4._target = undefined; } } else { foreach ( var_4 in var_1 ) { target_hidefromplayer( var_4, var_0 ); if ( isdefined( var_4._target ) ) { foreach ( var_8 in var_4._target.weapon ) var_8.islockedon[var_2] = undefined; } } } } gt_op( var_0, var_1, var_2 ) { if ( isdefined( var_0 ) && isdefined( var_1 ) ) return common_scripts\utility::ter_op( var_0 > var_1, var_0, var_1 ); if ( isdefined( var_0 ) && !isdefined( var_1 ) ) return var_0; if ( !isdefined( var_0 ) && isdefined( var_1 ) ) return var_1; return var_2; } target_alloc_limit_fail_passed( var_0, var_1 ) { if ( target_getarray().size >= 64 ) { thread maps\_utility::missionfailedwrapper(); return 0; } target_alloc( var_0, var_1 ); return 1; }