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

1484 lines
64 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
binoculars_init( var_0 )
{
precacheshader( "cnd_face_recog_border_01" );
precacheshader( "cnd_binocs_hud_photo_001" );
precacheshader( "cnd_binocs_hud_photo_002" );
precacheshader( "cnd_binocs_hud_photo_003" );
precacheshader( "cnd_binocs_hud_photo_004" );
precacheshader( "cnd_binocs_hud_photo_005" );
precacheshader( "cnd_binocs_hud_photo_006" );
precacheshader( "cnd_binocs_hud_photo_007" );
precacheshader( "cnd_binocs_hud_photo_008" );
precacheshader( "cnd_binocs_hud_photo_009" );
precacheshader( "cnd_binocs_hud_photo_010" );
precacheshader( "cnd_binocs_hud_photo_011" );
precacheshader( "cnd_binocs_hud_photo_012" );
precacheshader( "overlay_static" );
precacheshader( "white" );
precacheshader( "red_block" );
precacheshader( "cnd_face_recog_reticle_01" );
precacheshader( "cnd_face_recog_reticle_02" );
precacheshader( "cnd_face_recog_reticle_03" );
precacheshader( "cnd_face_recog_reticle_03a" );
precacheshader( "cnd_face_recog_reticle_data_base" );
precacheshader( "cnd_face_recog_reticle_id" );
precacheshader( "cnd_face_recog_frame_01" );
precachemodel( "soccer_ball_static" );
precachemodel( "tag_turret" );
precachemodel( "cnd_facial_rcg_01" );
precachemodel( "cnd_facial_rcg_02" );
precachemodel( "cnd_facial_rcg_03" );
precachemodel( "cnd_facial_rcg_01_non_hvt" );
precachemodel( "cnd_facial_rcg_02_non_hvt" );
precachemodel( "cnd_facial_rcg_03_non_hvt" );
precacheturret( "player_view_controller_binoculars" );
precacheitem( "binoculars_tech" );
precacheshader( "hud_icon_scan_binocs" );
precacheshader( "pip_scene_overlay" );
precachestring( &"CORNERED_READY" );
precachestring( &"CORNERED_NO" );
precachestring( &"CORNERED_MATCH" );
precachestring( &"CORNERED_DATA" );
precachestring( &"CORNERED_SCANNING_DOT" );
precachestring( &"CORNERED_SCANNING_DOT_DOT" );
precachestring( &"CORNERED_SCANNING_DOT_DOT_DOT" );
precachestring( &"CORNERED_IDENTIFIED" );
common_scripts\utility::flag_init( "scan_target_not_facing" );
common_scripts\utility::flag_init( "hvt_confirmed" );
level.default_visionset = var_0;
self.binocular_profile_materials = [];
self.binocular_profile_materials[self.binocular_profile_materials.size] = "cnd_binocs_hud_photo_001";
self.binocular_profile_materials[self.binocular_profile_materials.size] = "cnd_binocs_hud_photo_002";
self.binocular_profile_materials[self.binocular_profile_materials.size] = "cnd_binocs_hud_photo_003";
self.binocular_profile_materials[self.binocular_profile_materials.size] = "cnd_binocs_hud_photo_004";
self.binocular_profile_materials[self.binocular_profile_materials.size] = "cnd_binocs_hud_photo_005";
self.binocular_profile_materials[self.binocular_profile_materials.size] = "cnd_binocs_hud_photo_006";
self.binocular_profile_materials[self.binocular_profile_materials.size] = "cnd_binocs_hud_photo_007";
self.binocular_profile_materials[self.binocular_profile_materials.size] = "cnd_binocs_hud_photo_008";
self.binocular_profile_materials[self.binocular_profile_materials.size] = "cnd_binocs_hud_photo_009";
self.binocular_profile_materials[self.binocular_profile_materials.size] = "cnd_binocs_hud_photo_010";
self.binocular_profile_materials[self.binocular_profile_materials.size] = "cnd_binocs_hud_photo_011";
self.binocular_profile_materials[self.binocular_profile_materials.size] = "cnd_binocs_hud_photo_012";
self.binocular_body_features_left = [];
self.binocular_body_features_left[self.binocular_body_features_left.size] = "J_Hip_LE";
self.binocular_body_features_left[self.binocular_body_features_left.size] = "J_Wrist_LE";
self.binocular_body_features_left[self.binocular_body_features_left.size] = "J_Elbow_LE";
self.binocular_body_features_right = [];
self.binocular_body_features_right[self.binocular_body_features_right.size] = "J_Hip_RI";
self.binocular_body_features_right[self.binocular_body_features_right.size] = "J_Wrist_RI";
self.binocular_body_features_right[self.binocular_body_features_right.size] = "J_Elbow_RI";
self.binoculars_linked_to_target = 0;
binoculars_pip_init();
}
give_binoculars()
{
if ( isdefined( self.has_binoculars ) && self.has_binoculars )
return;
self.has_binoculars = 1;
self.binoculars_active = 0;
self.show_binoc_scan_hint = 1;
self.default_fov = getdvarint( "cg_fov" );
binoculars_set_default_zoom_level( 0 );
binoculars_set_vision_set( "cornered_binoculars" );
thread binoculars_hud();
}
take_binoculars()
{
if ( isdefined( self.has_binoculars ) && !self.has_binoculars )
return;
self.has_binoculars = 0;
self.show_binoc_scan_hint = undefined;
while ( isdefined( self.binoculars_clearing_hud ) && self.binoculars_clearing_hud )
wait 0.05;
self notify( "stop_using_binoculars" );
self notify( "take_binoculars" );
if ( isdefined( self.binoculars_active ) && self.binoculars_active )
{
if ( self hasweapon( "binoculars_tech" ) )
self takeweapon( "binoculars_tech" );
binoculars_clear_hud();
}
self setweaponhudiconoverride( "actionslot1", "none" );
}
binoculars_set_default_zoom_level( var_0 )
{
self.binoculars_default_zoom_level = var_0;
}
binoculars_set_vision_set( var_0 )
{
self.binoculars_vision_set = var_0;
if ( isdefined( self.binoculars_active ) && self.binoculars_active )
self visionsetnakedforplayer( self.binoculars_vision_set, 5.0 );
}
binoculars_hud()
{
self endon( "take_binoculars" );
self notifyonplayercommand( "use_binoculars", "+actionslot 1" );
self notifyonplayercommand( "binocular_zoom", "+sprint_zoom" );
self notifyonplayercommand( "binocular_zoom", "+melee_zoom" );
self setweaponhudiconoverride( "actionslot1", "hud_icon_scan_binocs" );
self.binoculars_hud_item = [];
for (;;)
{
self waittill( "use_binoculars" );
self.last_weapon = self getcurrentprimaryweapon();
self giveweapon( "binoculars_tech" );
self switchtoweapon( "binoculars_tech" );
common_scripts\utility::_disableweaponswitch();
self playsound( "item_nightvision_on" );
binoculars_init_hud();
wait 0.9;
common_scripts\utility::_disableweapon();
self takeweapon( "binoculars_tech" );
common_scripts\utility::waittill_either( "use_binoculars", "stop_using_binoculars" );
if ( isdefined( self.binoculars_zooming ) && self.binoculars_zooming )
self waittill( "binoculars_done_zooming" );
self notify( "stop_using_binoculars" );
level notify( "stop_allies_kill_tagged_enemies_without_player_watcher" );
level notify( "stop_allies_kill_tagged_enemies_watcher" );
binoculars_clear_hud();
}
}
binoculars_init_hud()
{
self endon( "take_binoculars" );
setsaveddvar( "ammoCounterHide", "1" );
setsaveddvar( "actionSlotsHide", "1" );
setsaveddvar( "hud_showStance", "0" );
setsaveddvar( "cg_drawCrosshair", 0 );
self notify( "binoculars_init_hud" );
self allowmelee( 0 );
self.binocular_target = spawn( "script_model", self getorigin() );
self.binocular_target setmodel( "soccer_ball_static" );
self.binocular_target hide();
self.binocular_target notsolid();
target_set( self.binocular_target );
target_hidefromplayer( self.binocular_target, self );
self.binoculars_active = 1;
thread zoom_lerp_dof();
self.binoculars_hud_item["binocular_border"] = maps\_hud_util::create_client_overlay( "cnd_face_recog_border_01", 1, self );
self.binoculars_hud_item["binocular_frame"] = maps\_hud_util::create_client_overlay( "cnd_face_recog_frame_01", 0.66, self );
self.binoculars_hud_item["reticle"] = maps\_hud_util::createicon( "cnd_face_recog_reticle_01", 16, 16 );
self.binoculars_hud_item["reticle"] set_default_hud_parameters();
self.binoculars_hud_item["reticle"].alignx = "center";
self.binoculars_hud_item["reticle"].aligny = "middle";
self.binoculars_hud_item["reticle"].alpha = 0.66;
self.binoculars_hud_item["reticle_targetting"] = maps\_hud_util::createicon( "cnd_face_recog_reticle_02", 60, 60 );
self.binoculars_hud_item["reticle_targetting"] set_default_hud_parameters();
self.binoculars_hud_item["reticle_targetting"].alignx = "center";
self.binoculars_hud_item["reticle_targetting"].aligny = "middle";
self.binoculars_hud_item["reticle_targetting"].alpha = 0.0;
self.binocular_reticle_target = spawn( "script_origin", self.origin );
self.binoculars_hud_item["reticle_targetting"] settargetent( self.binocular_reticle_target );
self.binoculars_hud_item["reticle_targetting"] setwaypoint( 1, 0 );
self.binoculars_hud_item["reticle_scanning"] = maps\_hud_util::createicon( "cnd_face_recog_reticle_03", 300, 300 );
self.binoculars_hud_item["reticle_scanning"] set_default_hud_parameters();
self.binoculars_hud_item["reticle_scanning"].alignx = "center";
self.binoculars_hud_item["reticle_scanning"].aligny = "middle";
self.binoculars_hud_item["reticle_scanning"].alpha = 0.0;
self.binoculars_hud_item["reticle_scanning_frame"] = maps\_hud_util::createicon( "cnd_face_recog_reticle_03a", 300, 300 );
self.binoculars_hud_item["reticle_scanning_frame"] set_default_hud_parameters();
self.binoculars_hud_item["reticle_scanning_frame"].alignx = "left";
self.binoculars_hud_item["reticle_scanning_frame"].aligny = "middle";
self.binoculars_hud_item["reticle_scanning_frame"].x = -2;
self.binoculars_hud_item["reticle_scanning_frame"].y = -40;
self.binoculars_hud_item["reticle_scanning_frame"].alpha = 0.0;
self.binoculars_hud_item["reticle_scanning_status"] = maps\_hud_util::createclientfontstring( "small", 1.3 );
self.binoculars_hud_item["reticle_scanning_status"].x = 9;
self.binoculars_hud_item["reticle_scanning_status"].y = -150;
self.binoculars_hud_item["reticle_scanning_status"].alignx = "left";
self.binoculars_hud_item["reticle_scanning_status"].aligny = "middle";
self.binoculars_hud_item["reticle_scanning_status"].horzalign = "center";
self.binoculars_hud_item["reticle_scanning_status"].vertalign = "middle";
self.binoculars_hud_item["reticle_scanning_status"].color = ( 1, 1, 1 );
self.binoculars_hud_item["reticle_scanning_status"].alpha = 0.0;
self.binoculars_hud_item["reticle_scanning_status"].sort = self.binoculars_hud_item["reticle_scanning_frame"].sort + 10;
self.binoculars_hud_item["reticle_scanning_status"] settext( &"CORNERED_READY" );
if ( isdefined( self.binoculars_vision_set ) )
self visionsetnakedforplayer( self.binoculars_vision_set, 0.0 );
thread maps\cornered_audio::aud_binoculars( "on" );
thread maps\cornered_audio::aud_binoculars( "bg_loop" );
thread binoculars_calculate_range();
thread static_overlay();
thread monitor_binoculars_zoom();
thread binoculars_angles_display();
thread binocular_reticle_target_reaction();
thread binoculars_scan_for_targets();
thread binoculars_zoom_display();
thread binoculars_monitor_scanning();
}
binoculars_clear_hud()
{
if ( isdefined( self.binoculars_zooming ) && self.binoculars_zooming )
self waittill( "binoculars_done_zooming" );
thread maps\cornered_audio::aud_binoculars( "off" );
self notify( "stop_binocular_bg_loop_sound" );
self.binoculars_clearing_hud = 1;
binoculars_unlock_from_target();
self.binoculars_active = 0;
self playsound( "item_nightvision_off" );
static_overlay();
self allowmelee( 1 );
setsaveddvar( "ammoCounterHide", "0" );
setsaveddvar( "actionSlotsHide", "0" );
setsaveddvar( "hud_showStance", "1" );
setsaveddvar( "cg_drawCrosshair", 1 );
common_scripts\utility::_enableweapon();
common_scripts\utility::_enableweaponswitch();
self switchtoweapon( self.last_weapon );
var_0 = getarraykeys( self.binoculars_hud_item );
foreach ( var_2 in var_0 )
{
self.binoculars_hud_item[var_2] destroy();
self.binoculars_hud_item[var_2] = undefined;
}
if ( isdefined( self.binoculars_face_scanning_models ) )
{
foreach ( var_5 in self.binoculars_face_scanning_models )
{
foreach ( var_7 in var_5 )
var_7 delete();
}
self.binoculars_face_scanning_models = undefined;
}
foreach ( var_11 in target_getarray() )
target_remove( var_11 );
self.binocular_target delete();
self.binocular_target = undefined;
self.blend_struct = undefined;
maps\_art::dof_disable_script( 0.0 );
setsaveddvar( "cg_fov", self.default_fov );
self disableslowaim();
if ( isdefined( self.binoculars_vision_set ) )
self visionsetnakedforplayer( level.default_visionset, 0.0 );
self.binoculars_clearing_hud = 0;
}
binoculars_scan_for_targets()
{
self endon( "stop_using_binoculars" );
self endon( "binoculars_hud_off" );
self endon( "take_binoculars" );
var_0 = 0;
self.binoculars_scan_target = undefined;
for (;;)
{
if ( self.current_binocular_zoom_level == 1 && !self.binocular_zooming && !self.binoculars_linked_to_target )
{
if ( isdefined( self.binoculars_trace["entity"] ) && isai( self.binoculars_trace["entity"] ) && self.binoculars_trace["entity"] isbadguy() && bullettracepassed( self geteye(), self.binoculars_trace["entity"] gettagorigin( "J_Head" ), 0, undefined ) )
{
var_0 = 1;
if ( !isdefined( self.binoculars_scan_target ) || self.binoculars_scan_target != self.binoculars_trace["entity"] )
thread binoculars_scan_target_points( self.binoculars_trace["entity"] );
}
}
if ( !var_0 )
{
self.binoculars_scan_target = undefined;
self notify( "end_scan_target_points" );
self.binoculars_hud_item["reticle_targetting"].alpha = 0.0;
if ( self.binocular_reticle_target islinked() )
self.binocular_reticle_target unlink();
self enableslowaim( 0.5, 0.3 );
}
var_0 = 0;
wait 0.05;
}
}
binoculars_scan_target_points( var_0 )
{
self endon( "stop_using_binoculars" );
self endon( "binoculars_hud_off" );
self endon( "take_binoculars" );
self notify( "end_scan_target_points" );
self endon( "end_scan_target_points" );
self enableslowaim( 0.35, 0.1 );
self.binoculars_scan_target = var_0;
if ( self.binocular_reticle_target islinked() )
self.binocular_reticle_target unlink();
thread maps\cornered_audio::aud_binoculars( "seeker_on" );
self.binocular_reticle_target.origin = var_0 gettagorigin( "J_Head" ) - ( 0, 0, 7 );
self.binocular_reticle_target linkto( var_0, "J_Head" );
setsaveddvar( "waypointIconHeight", 36 );
setsaveddvar( "waypointIconWidth", 36 );
wait 0.05;
self.binoculars_hud_item["reticle_targetting"].alpha = 1.0;
}
binoculars_reticle_lerp_to_tag( var_0, var_1, var_2 )
{
self endon( "stop_using_binoculars" );
self endon( "binoculars_hud_off" );
self endon( "take_binoculars" );
var_3 = var_2 / 0.05;
var_4 = self.binocular_reticle_target.origin;
for ( var_5 = 1; var_5 <= var_3; var_5++ )
{
self.binocular_reticle_target.origin = var_4 + ( var_0 gettagorigin( var_1 ) - var_4 - ( 0, 0, 7 ) ) * ( var_5 / var_3 );
wait 0.05;
}
}
binoculars_calculate_range()
{
self endon( "stop_using_binoculars" );
self endon( "binoculars_hud_off" );
self endon( "take_binoculars" );
self.binoculars_hud_item["range"] = maps\_hud_util::createclientfontstring( "small", 1.2 );
self.binoculars_hud_item["range"].x = 75;
self.binoculars_hud_item["range"].y = -25;
self.binoculars_hud_item["range"].alignx = "right";
self.binoculars_hud_item["range"].aligny = "top";
self.binoculars_hud_item["range"].horzalign = "center";
self.binoculars_hud_item["range"].vertalign = "top";
self.binoculars_hud_item["range"].color = ( 1, 1, 1 );
self.binoculars_hud_item["range"].alpha = 1.0;
self.binoculars_hud_item["range"].glowcolor = ( 1, 1, 1 );
self.binoculars_hud_item["range"].glowalpha = 0.0;
for (;;)
{
var_0 = anglestoforward( self getplayerangles() );
if ( self islinked() && isdefined( self.linked_world_space_forward ) )
var_0 = self.linked_world_space_forward;
self.binoculars_trace = bullettrace( self geteye(), self geteye() + var_0 * 50000, 1, self, 1, 1 );
var_1 = distance( self geteye(), self.binoculars_trace["position"] );
var_1 = var_1 * 0.0254;
var_1 = int( var_1 * 100 ) * 0.01;
if ( var_1 > 1000.0 )
self.binoculars_hud_item["range"] settext( "1000+ M" );
else if ( var_1 - int( var_1 ) == 0.0 )
self.binoculars_hud_item["range"] settext( var_1 + ".00 M" );
else if ( var_1 * 10 - int( var_1 * 10 ) == 0.0 )
self.binoculars_hud_item["range"] settext( var_1 + "0 M" );
else
self.binoculars_hud_item["range"] settext( var_1 + " M" );
wait 0.05;
}
}
binoculars_remove_target_on_death( var_0 )
{
self notify( "end_remove_target_on_death" );
self endon( "end_remove_target_on_death" );
self endon( "stop_using_binoculars" );
self endon( "binoculars_hud_off" );
self endon( "take_binoculars" );
var_0 waittill( "death" );
if ( isdefined( self.binocular_target ) && target_istarget( self.binocular_target ) )
target_hidefromplayer( self.binocular_target, self );
}
binoculars_lock_to_target( var_0 )
{
self endon( "stop_using_binoculars" );
self endon( "binoculars_hud_off" );
self endon( "take_binoculars" );
if ( !self islinked() )
{
self.binoculars_linked_to_target = 1;
if ( !isdefined( self.player_view_controller_model ) )
{
self.player_view_controller_model = spawn( "script_model", self.origin );
self.player_view_controller_model setmodel( "tag_origin" );
}
self.player_view_controller_model.origin = self.origin;
self.player_view_controller_model.angles = self getplayerangles();
if ( !isdefined( self.player_view_controller ) )
self.player_view_controller = maps\_utility::get_player_view_controller( self.player_view_controller_model, "tag_origin", ( 0, 0, 0 ), "player_view_controller_binoculars" );
if ( !isdefined( self.turret_look_at_ent ) )
{
self.turret_look_at_ent = spawn( "script_model", self.origin );
self.turret_look_at_ent setmodel( "tag_origin" );
}
self.turret_look_at_ent.origin = self.origin + anglestoforward( self getplayerangles() ) * 1000;
self.player_view_controller snaptotargetentity( self.turret_look_at_ent );
self.prev_origin = self.origin;
self playerlinktoabsolute( self.player_view_controller, "tag_aim" );
self.player_view_controller settargetentity( self.binocular_target, self.origin - self geteye() );
self.binoculars_hud_item["reticle"].alpha = 0.0;
self.binoculars_hud_item["reticle_targetting"].alpha = 0.0;
self.binoculars_hud_item["reticle_scanning"].alpha = 1.0;
self.binoculars_hud_item["reticle_scanning_frame"].alpha = 1.0;
self.binoculars_hud_item["reticle_scanning_status"].alpha = 1.0;
binoculars_pip_enable();
var_1 = 0;
while ( self.binoculars_linked_to_target && var_1 < 0.5 )
{
self.player_view_controller settargetentity( self.binocular_target, self.origin - self geteye() );
var_1 = var_1 + 0.05;
wait 0.05;
}
}
}
binoculars_unlock_from_target()
{
if ( isdefined( self.binoculars_linked_to_target ) && self.binoculars_linked_to_target )
{
self unlink();
self.binoculars_linked_to_target = 0;
if ( isdefined( self.prev_origin ) )
{
self setorigin( self.prev_origin );
self.prev_origin = undefined;
}
if ( isdefined( self.player_view_controller ) )
{
self.player_view_controller delete();
self.player_view_controller = undefined;
}
if ( isdefined( self.player_view_controller_model ) )
{
self.player_view_controller_model delete();
self.player_view_controller_model = undefined;
}
if ( isdefined( self.turret_look_at_ent ) )
{
self.turret_look_at_ent delete();
self.turret_look_at_ent = undefined;
}
self.binoculars_hud_item["reticle"].alpha = 0.66;
self.binoculars_hud_item["reticle_targetting"].alpha = 0.0;
self.binoculars_hud_item["reticle_scanning"].alpha = 0.0;
self.binoculars_hud_item["reticle_scanning_frame"].alpha = 0.0;
self.binoculars_hud_item["reticle_scanning_status"].alpha = 0.0;
binoculars_pip_disable();
}
}
binocular_status_update( var_0, var_1 )
{
self endon( "stop_using_binoculars" );
self endon( "take_binoculars" );
self notify( "binoculars_status_updated" );
self endon( "binoculars_status_updated" );
if ( isdefined( var_1 ) && var_1 )
{
var_2 = 1;
var_3 = 1;
for (;;)
{
switch ( var_2 )
{
case 1:
var_0 = &"CORNERED_SCANNING_DOT";
break;
case 2:
var_0 = &"CORNERED_SCANNING_DOT_DOT";
break;
case 3:
var_0 = &"CORNERED_SCANNING_DOT_DOT_DOT";
break;
}
self.binoculars_hud_item["reticle_scanning_status"] settext( var_0 );
var_2 = var_2 + var_3;
if ( var_2 > 3 || var_2 < 1 )
{
var_2 = 2;
var_3 = var_3 * -1;
}
wait 0.15;
}
}
else
self.binoculars_hud_item["reticle_scanning_status"] settext( var_0 );
}
binocular_face_scanning( var_0 )
{
self endon( "stop_using_binoculars" );
self endon( "take_binoculars" );
self endon( "stop_scanning" );
self endon( "scanning_complete" );
self.binoculars_hud_item["profile"] = maps\_hud_util::createicon( self.binocular_profile_materials[0], 70, 70 );
self.binoculars_hud_item["profile"] set_default_hud_parameters();
self.binoculars_hud_item["profile"].alignx = "left";
self.binoculars_hud_item["profile"].aligny = "top";
self.binoculars_hud_item["profile"].horzalign = "center";
self.binoculars_hud_item["profile"].vertalign = "middle";
self.binoculars_hud_item["profile"].x = 142;
self.binoculars_hud_item["profile"].y = -137;
self.binoculars_hud_item["profile"].alpha = 0.9;
self.binoculars_hud_item["profile"].sort = self.binoculars_hud_item["reticle_scanning_frame"].sort + 1;
self.binoculars_hud_item["no"] = maps\_hud_util::createclientfontstring( "small", 1.3 );
self.binoculars_hud_item["no"].x = 178;
self.binoculars_hud_item["no"].y = -107;
self.binoculars_hud_item["no"].alignx = "center";
self.binoculars_hud_item["no"].aligny = "middle";
self.binoculars_hud_item["no"].horzalign = "center";
self.binoculars_hud_item["no"].vertalign = "middle";
self.binoculars_hud_item["no"].color = ( 1, 1, 1 );
self.binoculars_hud_item["no"].alpha = 0.0;
self.binoculars_hud_item["no"].sort = self.binoculars_hud_item["reticle_scanning_frame"].sort + 10;
self.binoculars_hud_item["no"] settext( &"CORNERED_NO" );
self.binoculars_hud_item["data"] = maps\_hud_util::createclientfontstring( "small", 1.3 );
self.binoculars_hud_item["data"].x = 178;
self.binoculars_hud_item["data"].y = -95;
self.binoculars_hud_item["data"].alignx = "center";
self.binoculars_hud_item["data"].aligny = "middle";
self.binoculars_hud_item["data"].horzalign = "center";
self.binoculars_hud_item["data"].vertalign = "middle";
self.binoculars_hud_item["data"].color = ( 1, 1, 1 );
self.binoculars_hud_item["data"].alpha = 0.0;
self.binoculars_hud_item["data"].sort = self.binoculars_hud_item["reticle_scanning_frame"].sort + 10;
self.binoculars_hud_item["data"] settext( &"CORNERED_DATA" );
for (;;)
{
self.binocular_profile_materials = common_scripts\utility::array_randomize( self.binocular_profile_materials );
foreach ( var_2 in self.binocular_profile_materials )
{
if ( !common_scripts\utility::flag( "scan_target_not_facing" ) )
{
if ( isdefined( var_0.binocular_facial_profile ) && var_0.binocular_facial_profile == var_2 )
continue;
self.binoculars_hud_item["profile"] setshader( var_2, self.binoculars_hud_item["profile"].width, self.binoculars_hud_item["profile"].height );
self.binoculars_hud_item["no"].alpha = 0;
self.binoculars_hud_item["data"].alpha = 0;
self.binoculars_hud_item["profile"].alpha = 1;
wait 0.05;
continue;
}
self.binoculars_hud_item["no"].alpha = 1;
self.binoculars_hud_item["data"].alpha = 1;
self.binoculars_hud_item["profile"].alpha = 0;
wait 0.05;
}
}
}
binocular_face_scanning_lines( var_0 )
{
self endon( "stop_using_binoculars" );
self endon( "take_binoculars" );
self endon( "stop_scanning" );
self endon( "scanning_complete" );
self.binoculars_face_scanning_models = [];
self.binoculars_face_scanning_models[0] = [];
self.binoculars_face_scanning_models[1] = [];
self.binoculars_face_scanning_models[0][0] = spawn( "script_model", var_0 gettagorigin( "J_Head" ) );
self.binoculars_face_scanning_models[0][0].angles = var_0 gettagangles( "J_Head" );
self.binoculars_face_scanning_models[0][0] setmodel( "cnd_facial_rcg_01_non_hvt" );
self.binoculars_face_scanning_models[0][0] linkto( var_0, "J_Head" );
self.binoculars_face_scanning_models[0][0] hideallparts();
self.binoculars_face_scanning_models[0][1] = spawn( "script_model", var_0 gettagorigin( "J_Head" ) );
self.binoculars_face_scanning_models[0][1].angles = var_0 gettagangles( "J_Head" );
self.binoculars_face_scanning_models[0][1] setmodel( "cnd_facial_rcg_02_non_hvt" );
self.binoculars_face_scanning_models[0][1] linkto( var_0, "J_Head" );
self.binoculars_face_scanning_models[0][1] hideallparts();
self.binoculars_face_scanning_models[0][2] = spawn( "script_model", var_0 gettagorigin( "J_Head" ) );
self.binoculars_face_scanning_models[0][2].angles = var_0 gettagangles( "J_Head" );
self.binoculars_face_scanning_models[0][2] setmodel( "cnd_facial_rcg_03_non_hvt" );
self.binoculars_face_scanning_models[0][2] linkto( var_0, "J_Head" );
self.binoculars_face_scanning_models[0][2] hideallparts();
self.binoculars_face_scanning_models[1][0] = spawn( "script_model", var_0 gettagorigin( "J_Head" ) );
self.binoculars_face_scanning_models[1][0].angles = var_0 gettagangles( "J_Head" );
self.binoculars_face_scanning_models[1][0] setmodel( "cnd_facial_rcg_01" );
self.binoculars_face_scanning_models[1][0] linkto( var_0, "J_Head" );
self.binoculars_face_scanning_models[1][0] hideallparts();
self.binoculars_face_scanning_models[1][1] = spawn( "script_model", var_0 gettagorigin( "J_Head" ) );
self.binoculars_face_scanning_models[1][1].angles = var_0 gettagangles( "J_Head" );
self.binoculars_face_scanning_models[1][1] setmodel( "cnd_facial_rcg_02" );
self.binoculars_face_scanning_models[1][1] linkto( var_0, "J_Head" );
self.binoculars_face_scanning_models[1][1] hideallparts();
self.binoculars_face_scanning_models[1][2] = spawn( "script_model", var_0 gettagorigin( "J_Head" ) );
self.binoculars_face_scanning_models[1][2].angles = var_0 gettagangles( "J_Head" );
self.binoculars_face_scanning_models[1][2] setmodel( "cnd_facial_rcg_03" );
self.binoculars_face_scanning_models[1][2] linkto( var_0, "J_Head" );
self.binoculars_face_scanning_models[1][2] hideallparts();
self.binoculars_hud_item["percentage"] = maps\_hud_util::createclientfontstring( "small", 1.3 );
self.binoculars_hud_item["percentage"].x = 203;
self.binoculars_hud_item["percentage"].y = -150;
self.binoculars_hud_item["percentage"].alignx = "right";
self.binoculars_hud_item["percentage"].aligny = "middle";
self.binoculars_hud_item["percentage"].horzalign = "center";
self.binoculars_hud_item["percentage"].vertalign = "middle";
self.binoculars_hud_item["percentage"].color = ( 1, 1, 1 );
self.binoculars_hud_item["percentage"].alpha = 1.0;
self.binoculars_hud_item["percentage"].sort = self.binoculars_hud_item["reticle_scanning_frame"].sort + 10;
self.binoculars_hud_item["percentage_bar"] = maps\_hud_util::createicon( "red_block", 1, 14 );
self.binoculars_hud_item["percentage_bar"] set_default_hud_parameters();
self.binoculars_hud_item["percentage_bar"].alignx = "left";
self.binoculars_hud_item["percentage_bar"].aligny = "bottom";
self.binoculars_hud_item["percentage_bar"].horzalign = "center";
self.binoculars_hud_item["percentage_bar"].vertalign = "middle";
self.binoculars_hud_item["percentage_bar"].x = 6;
self.binoculars_hud_item["percentage_bar"].y = -144;
self.binoculars_hud_item["percentage_bar"].alpha = 0.0;
self.binoculars_hud_item["percentage_bar"].sort = self.binoculars_hud_item["reticle_scanning_frame"].sort - 10;
thread binocular_status_update( &"CORNERED_SCANNING_DOT", 1 );
var_1 = 0;
if ( isdefined( var_0.binocular_hvt ) && var_0.binocular_hvt )
var_1 = 1;
var_2 = [];
var_3 = getnumparts( self.binoculars_face_scanning_models[var_1][0].model );
for ( var_4 = 0; var_4 < var_3; var_4++ )
var_2[var_4] = getpartname( self.binoculars_face_scanning_models[var_1][0].model, var_4 );
var_5 = 8;
var_6 = [];
var_6[0] = 0;
var_6[1] = 0;
while ( var_2.size > 0 && isdefined( var_0 ) && bullettracepassed( self geteye(), var_0 gettagorigin( "J_Head" ), 0, undefined ) )
{
if ( vectordot( anglestoforward( self getplayerangles() ), anglestoforward( var_0 gettagangles( "tag_eye" ) ) ) > 0.0 )
{
if ( !common_scripts\utility::flag( "scan_target_not_facing" ) )
thread binocular_status_update( &"CORNERED_READY" );
common_scripts\utility::flag_set( "scan_target_not_facing" );
self notify( "stop_binocular_scan_loop_sound" );
if ( !isdefined( self.scan_loop_red_sound ) )
thread maps\cornered_audio::aud_binoculars( "scan_loop_red" );
for ( var_4 = 0; var_4 <= 1; var_4++ )
{
self.binoculars_face_scanning_models[var_1][var_4 + 1] showpart( getpartname( self.binoculars_face_scanning_models[var_1][var_4 + 1].model, var_6[var_4] ) );
if ( var_6[var_4] >= var_5 )
self.binoculars_face_scanning_models[var_1][var_4 + 1] hidepart( getpartname( self.binoculars_face_scanning_models[var_1][var_4 + 1].model, var_6[var_4] - var_5 ) );
else
self.binoculars_face_scanning_models[var_1][var_4 + 1] hidepart( getpartname( self.binoculars_face_scanning_models[var_1][var_4 + 1].model, getnumparts( self.binoculars_face_scanning_models[var_1][var_4 + 1].model ) + var_6[var_4] - var_5 ) );
var_6[var_4]++;
if ( var_6[var_4] >= getnumparts( self.binoculars_face_scanning_models[var_1][var_4 + 1].model ) )
var_6[var_4] = 0;
}
wait 0.05;
continue;
}
if ( common_scripts\utility::flag( "scan_target_not_facing" ) )
thread binocular_status_update( &"CORNERED_SCANNING_DOT", 1 );
common_scripts\utility::flag_clear( "scan_target_not_facing" );
if ( !isdefined( self.scan_loop_sound ) )
thread maps\cornered_audio::aud_binoculars( "scan_loop" );
self notify( "stop_binocular_scan_loop_red_sound" );
var_7 = randomint( var_2.size );
self.binoculars_face_scanning_models[var_1][0] showpart( var_2[var_7] );
self.binoculars_face_scanning_models[var_1][1] hideallparts();
self.binoculars_face_scanning_models[var_1][2] hideallparts();
var_2 = maps\_utility::array_remove_index( var_2, var_7 );
self.binoculars_hud_item["percentage_bar"] setshader( "red_block", int( 201 * ( 1.0 - var_2.size / var_3 ) ), self.binoculars_hud_item["percentage_bar"].height );
self.binoculars_hud_item["percentage_bar"].alpha = 1.0;
self.binoculars_hud_item["percentage"] settext( int( 100 * ( 1.0 - var_2.size / var_3 ) ) );
wait 0.1;
}
if ( var_2.size == 0 )
{
self notify( "binoculars_facial_scan_finished" );
thread binocular_status_update( &"CORNERED_IDENTIFIED" );
}
else
self notify( "stop_scanning" );
}
binocular_face_scanning_lines_complete( var_0 )
{
self endon( "stop_using_binoculars" );
self endon( "take_binoculars" );
self endon( "stop_scanning" );
wait( var_0 );
thread maps\cornered_audio::aud_binoculars( "seeker_move" );
if ( isdefined( self.binoculars_face_scanning_models ) )
{
foreach ( var_2 in self.binoculars_face_scanning_models )
{
foreach ( var_4 in var_2 )
var_4 delete();
}
self.binoculars_face_scanning_models = undefined;
}
}
binocular_face_scanning_data()
{
self endon( "stop_using_binoculars" );
self endon( "take_binoculars" );
self notify( "face_scanning_data" );
self endon( "face_scanning_data" );
var_0 = 35;
var_1 = 1;
var_2 = 0.75;
for ( var_3 = 0; var_3 < var_0; var_3++ )
{
if ( isdefined( self.binoculars_hud_item["profile_data_line_" + var_3] ) )
self.binoculars_hud_item["profile_data_line_" + var_3] destroy();
self.binoculars_hud_item["profile_data_line_" + var_3] = maps\_hud_util::createicon( "white", 1, 64 );
self.binoculars_hud_item["profile_data_line_" + var_3] set_default_hud_parameters();
self.binoculars_hud_item["profile_data_line_" + var_3].alignx = "center";
self.binoculars_hud_item["profile_data_line_" + var_3].aligny = "bottom";
self.binoculars_hud_item["profile_data_line_" + var_3].horzalign = "center";
self.binoculars_hud_item["profile_data_line_" + var_3].vertalign = "middle";
self.binoculars_hud_item["profile_data_line_" + var_3].x = 144 + var_3 * 2;
self.binoculars_hud_item["profile_data_line_" + var_3].y = var_1;
self.binoculars_hud_item["profile_data_line_" + var_3].color = ( 1, 1, 1 );
self.binoculars_hud_item["profile_data_line_" + var_3].alpha = var_2;
self.binoculars_hud_item["profile_data_line_" + var_3].sort = self.binoculars_hud_item["reticle_scanning_frame"].sort - 1;
}
var_4 = randomfloatrange( -90.0, 90.0 );
var_5 = randomfloatrange( 10.0, 25.0 );
while ( !self.binoculars_scanning_complete && !self.binoculars_stop_scanning )
{
var_4 = var_4 + var_5 * 4;
if ( common_scripts\utility::flag( "scan_target_not_facing" ) )
{
if ( randomint( 10 ) > 8 )
var_5 = randomfloatrange( 10.0, 25.0 );
for ( var_3 = 0; var_3 < var_0; var_3++ )
{
self.binoculars_hud_item["profile_data_line_" + var_3].height = int( clamp( 6 * ( sin( var_4 - var_5 * ( var_3 + 1 ) ) + 1.0 ) + pow( randomfloatrange( 0.0, 6.0 ), 2 ), 0, 64 ) );
self.binoculars_hud_item["profile_data_line_" + var_3] setshader( "white", self.binoculars_hud_item["profile_data_line_" + var_3].width, self.binoculars_hud_item["profile_data_line_" + var_3].height );
}
}
else
{
for ( var_3 = 0; var_3 < var_0; var_3++ )
{
self.binoculars_hud_item["profile_data_line_" + var_3].height = int( clamp( ( sin( var_4 - var_5 * ( var_3 + 1 ) ) + 1.0 + randomfloatrange( 0.0, 0.1 ) ) * 32, 0, 64 ) );
self.binoculars_hud_item["profile_data_line_" + var_3] setshader( "white", self.binoculars_hud_item["profile_data_line_" + var_3].width, self.binoculars_hud_item["profile_data_line_" + var_3].height );
}
}
wait 0.05;
}
while ( !self.binoculars_stop_scanning )
{
for ( var_3 = 0; var_3 < var_0; var_3++ )
{
self.binoculars_hud_item["profile_data_line_" + var_3].height = self.binoculars_hud_item["profile_data_line_" + var_3].height * randomfloatrange( 0.8, 0.95 );
if ( self.binoculars_hud_item["profile_data_line_" + var_3].height < 1 )
{
self.binoculars_hud_item["profile_data_line_" + var_3].alpha = 0.0;
continue;
}
if ( self.binoculars_hud_item["profile_data_line_" + var_3].y != var_1 )
self.binoculars_hud_item["profile_data_line_" + var_3].y = var_1 + self.binoculars_hud_item["profile_data_line_" + var_3].height;
self.binoculars_hud_item["profile_data_line_" + var_3] setshader( "white", self.binoculars_hud_item["profile_data_line_" + var_3].width, int( self.binoculars_hud_item["profile_data_line_" + var_3].height ) );
}
wait 0.05;
}
for ( var_3 = 0; var_3 < var_0; var_3++ )
{
self.binoculars_hud_item["profile_data_line_" + var_3] destroy();
self.binoculars_hud_item["profile_data_line_" + var_3] = undefined;
}
}
binoculars_monitor_scanning_button()
{
self.show_binoc_scan_hint = 1;
for (;;)
{
while ( !self attackbuttonpressed() )
common_scripts\utility::waitframe();
self notify( "scanning" );
self.show_binoc_scan_hint = 0;
while ( self attackbuttonpressed() )
common_scripts\utility::waitframe();
self notify( "stop_scanning" );
self.show_binoc_scan_hint = 1;
}
}
binoculars_monitor_scanning()
{
self endon( "stop_using_binoculars" );
self endon( "take_binoculars" );
thread binoculars_monitor_scanning_button();
for (;;)
{
while ( !self attackbuttonpressed() || self.current_binocular_zoom_level == 0 )
wait 0.05;
if ( isdefined( self.binoculars_scan_target ) && isdefined( self.binocular_target.linked_to_ent ) && self.binocular_target.linked_to_ent == self.binoculars_scan_target )
{
var_0 = self.binoculars_scan_target;
if ( !bullettracepassed( self geteye(), var_0 gettagorigin( "J_Head" ), 0, undefined ) )
{
wait 0.05;
continue;
}
thread binoculars_lock_to_target( var_0 );
thread scan_blur();
while ( self attackbuttonpressed() && isdefined( var_0 ) && isdefined( self.binoculars_linked_to_target ) && self.binoculars_linked_to_target && !target_isincircle( self.binocular_target, self, getdvarint( "cg_fov" ), 50 ) && bullettracepassed( self geteye(), var_0 gettagorigin( "J_Head" ), 0, undefined ) )
wait 0.05;
if ( !bullettracepassed( self geteye(), var_0 gettagorigin( "J_Head" ), 0, undefined ) )
{
wait 0.05;
var_0 = undefined;
}
if ( !self attackbuttonpressed() || !isdefined( var_0 ) )
{
binoculars_unlock_from_target();
self notify( "stop_scanning" );
continue;
}
self notify( "scanning_target" );
self.binoculars_scanning_complete = 0;
self.binoculars_stop_scanning = 0;
thread binocular_face_scanning( var_0 );
thread binocular_face_scanning_lines( var_0 );
thread binocular_face_scanning_data();
var_1 = common_scripts\utility::waittill_any_return( "binoculars_facial_scan_finished", "stop_scanning" );
self notify( "stop_binocular_scan_loop_sound" );
self notify( "stop_binocular_scan_loop_red_sound" );
var_2 = 0.0;
if ( var_1 == "binoculars_facial_scan_finished" )
{
self notify( "scanning_complete" );
self.binoculars_scanning_complete = 1;
if ( isdefined( var_0.binocular_facial_profile ) )
self.binoculars_hud_item["profile"] setshader( var_0.binocular_facial_profile, self.binoculars_hud_item["profile"].width, self.binoculars_hud_item["profile"].height );
else
{
if ( !isdefined( self.binoculars_hud_item["no"] ) )
self.binoculars_hud_item["no"] = maps\_hud_util::createclientfontstring( "small", 1.3 );
self.binoculars_hud_item["no"].x = 178;
self.binoculars_hud_item["no"].y = -107;
self.binoculars_hud_item["no"].alignx = "center";
self.binoculars_hud_item["no"].aligny = "middle";
self.binoculars_hud_item["no"].horzalign = "center";
self.binoculars_hud_item["no"].vertalign = "middle";
self.binoculars_hud_item["no"].color = ( 1, 1, 1 );
self.binoculars_hud_item["no"].alpha = 1.0;
self.binoculars_hud_item["no"].sort = self.binoculars_hud_item["reticle_scanning_frame"].sort + 10;
self.binoculars_hud_item["no"] settext( &"CORNERED_NO" );
self.binoculars_hud_item["match"] = maps\_hud_util::createclientfontstring( "small", 1.3 );
self.binoculars_hud_item["match"].x = 178;
self.binoculars_hud_item["match"].y = -95;
self.binoculars_hud_item["match"].alignx = "center";
self.binoculars_hud_item["match"].aligny = "middle";
self.binoculars_hud_item["match"].horzalign = "center";
self.binoculars_hud_item["match"].vertalign = "middle";
self.binoculars_hud_item["match"].color = ( 1, 1, 1 );
self.binoculars_hud_item["match"].alpha = 1.0;
self.binoculars_hud_item["match"].sort = self.binoculars_hud_item["reticle_scanning_frame"].sort + 10;
self.binoculars_hud_item["match"] settext( &"CORNERED_MATCH" );
self.binoculars_hud_item["profile"].alpha = 0;
}
while ( self attackbuttonpressed() && var_2 < 0.5 )
{
var_2 = var_2 + 0.05;
wait 0.05;
}
}
if ( var_2 >= 0.5 )
{
self notify( "scanning_upload_verified" );
if ( isdefined( var_0.binocular_hvt ) && var_0.binocular_hvt )
{
self notify( "hvt_confirmed" );
common_scripts\utility::flag_set( "hvt_confirmed" );
thread maps\cornered_audio::aud_binoculars( "positive" );
}
else
thread maps\cornered_audio::aud_binoculars( "negative" );
thread binocular_face_scanning_lines_complete( 0.5 );
while ( self attackbuttonpressed() && bullettracepassed( self geteye(), var_0 gettagorigin( "J_Head" ), 0, undefined ) )
wait 0.05;
}
else
self notify( "stop_scanning" );
if ( isdefined( self.binoculars_face_scanning_models ) )
{
foreach ( var_4 in self.binoculars_face_scanning_models )
{
foreach ( var_6 in var_4 )
var_6 delete();
}
self.binoculars_face_scanning_models = undefined;
}
self.binoculars_stop_scanning = 1;
common_scripts\utility::flag_clear( "scan_target_not_facing" );
self.binoculars_hud_item["profile"] destroy();
self.binoculars_hud_item["profile"] = undefined;
if ( isdefined( self.binoculars_hud_item["no"] ) )
{
self.binoculars_hud_item["no"] destroy();
self.binoculars_hud_item["no"] = undefined;
}
if ( isdefined( self.binoculars_hud_item["match"] ) )
{
self.binoculars_hud_item["match"] destroy();
self.binoculars_hud_item["match"] = undefined;
}
if ( isdefined( self.binoculars_hud_item["data"] ) )
{
self.binoculars_hud_item["data"] destroy();
self.binoculars_hud_item["data"] = undefined;
}
if ( isdefined( self.binoculars_hud_item["percentage_bar"] ) )
{
self.binoculars_hud_item["percentage_bar"] destroy();
self.binoculars_hud_item["percentage_bar"] = undefined;
}
if ( isdefined( self.binoculars_hud_item["percentage"] ) )
{
self.binoculars_hud_item["percentage"] destroy();
self.binoculars_hud_item["percentage"] = undefined;
}
binoculars_unlock_from_target();
continue;
}
self waittill( "stop_scanning" );
}
}
static_overlay()
{
self.binoculars_hud_item["static"] = newclienthudelem( self );
self.binoculars_hud_item["static"].x = 0;
self.binoculars_hud_item["static"].y = 0;
self.binoculars_hud_item["static"].alignx = "left";
self.binoculars_hud_item["static"].aligny = "top";
self.binoculars_hud_item["static"].horzalign = "fullscreen";
self.binoculars_hud_item["static"].vertalign = "fullscreen";
self.binoculars_hud_item["static"] setshader( "overlay_static", 640, 480 );
self.binoculars_hud_item["static"].alpha = 0.75;
self.binoculars_hud_item["static"].sort = -3;
self.binoculars_hud_item["static"] fadeovertime( 0.05 );
self.binoculars_hud_item["static"].alpha = 0.9;
wait 0.05;
self.binoculars_hud_item["static"] fadeovertime( 0.15 );
self.binoculars_hud_item["static"].alpha = 0.0;
wait 0.15;
self.binoculars_hud_item["static"] destroy();
self.binoculars_hud_item["static"] = undefined;
}
monitor_binoculars_zoom()
{
self endon( "stop_using_binoculars" );
self endon( "take_binoculars" );
self.current_binocular_zoom_level = self.binoculars_default_zoom_level;
self.binocular_zoom_levels = 2;
self.first_zoom_level_fov = 2;
for (;;)
{
self waittill( "binocular_zoom" );
if ( !self attackbuttonpressed() || self.current_binocular_zoom_level == 0 )
{
self.binocular_zooming = 1;
if ( self.current_binocular_zoom_level == 0 )
{
self notify( "binoculars_zoom_lerp" );
self enableslowaim( 0.5, 0.3 );
thread maps\cornered_audio::aud_binoculars( "zoom_in" );
thread zoom_blur( 1.4 );
thread max_zoom_dof();
self.binoculars_zooming = 1;
self lerpfov( self.first_zoom_level_fov, 1.5 );
for ( var_0 = 1; var_0 <= 30.0; var_0++ )
{
self.binoculars_hud_item["zoom_level_1"] settext( "" + ( var_0 * 10 + 20 ) );
self.binoculars_hud_item["zoom_level_2"] settext( "" + ( var_0 * 10 + 10 ) );
self.binoculars_hud_item["zoom_level_3"] settext( "" + var_0 * 10 );
self.binoculars_hud_item["zoom_level_4"] settext( "" + common_scripts\utility::ter_op( var_0 * 10 - 10 >= 0, var_0 * 10 - 10, "" ) );
self.binoculars_hud_item["zoom_level_5"] settext( "" + common_scripts\utility::ter_op( var_0 * 10 - 20 >= 0, var_0 * 10 - 20, "" ) );
wait 0.05;
}
self.binoculars_zooming = 0;
self notify( "binoculars_done_zooming" );
}
else
{
maps\_art::dof_disable_script( 0.0 );
self disableslowaim();
thread maps\cornered_audio::aud_binoculars( "zoom_out" );
setsaveddvar( "cg_fov", 65 );
}
self.current_binocular_zoom_level++;
if ( self.current_binocular_zoom_level >= self.binocular_zoom_levels )
{
self.current_binocular_zoom_level = 0;
self.binoculars_hud_item["zoom_level_1"] settext( "20" );
self.binoculars_hud_item["zoom_level_2"] settext( "10" );
self.binoculars_hud_item["zoom_level_3"] settext( "0" );
self.binoculars_hud_item["zoom_level_4"] settext( "" );
self.binoculars_hud_item["zoom_level_5"] settext( "" );
}
else
{
self.binoculars_hud_item["zoom_level_1"] settext( "320" );
self.binoculars_hud_item["zoom_level_2"] settext( "310" );
self.binoculars_hud_item["zoom_level_3"] settext( "300" );
self.binoculars_hud_item["zoom_level_4"] settext( "290" );
self.binoculars_hud_item["zoom_level_5"] settext( "280" );
}
self.binocular_zooming = 0;
}
}
}
zoom_blur( var_0 )
{
setblur( 10, 0.1 );
wait 0.1;
setblur( 0, var_0 );
}
scan_blur()
{
setblur( 5, 0.0 );
common_scripts\utility::waittill_any( "stop_scanning", "stop_using_binoculars", "take_binoculars", "binoculars_lerp_dof" );
setblur( 0, 0.0 );
}
zoom_lerp_dof()
{
self notify( "binoculars_lerp_dof" );
self endon( "binoculars_lerp_dof" );
maps\_art::dof_enable_script( 50, 100, 10, 100, 200, 6, 0.0 );
maps\_art::dof_disable_script( 0.5 );
}
max_zoom_dof()
{
maps\_art::dof_enable_script( level.dof["base"]["current"]["nearStart"], level.dof["base"]["current"]["nearEnd"], 10, 11000, 12000, 10, 0.1 );
}
binoculars_zoom_display()
{
self.binoculars_hud_item["zoom_level_1"] = maps\_hud_util::createclientfontstring( "small", 0.8 );
self.binoculars_hud_item["zoom_level_1"].x = 63;
self.binoculars_hud_item["zoom_level_1"].y = -223;
self.binoculars_hud_item["zoom_level_1"].alignx = "right";
self.binoculars_hud_item["zoom_level_1"].aligny = "middle";
self.binoculars_hud_item["zoom_level_1"].horzalign = "left";
self.binoculars_hud_item["zoom_level_1"].vertalign = "middle";
self.binoculars_hud_item["zoom_level_1"].color = ( 1, 1, 1 );
self.binoculars_hud_item["zoom_level_1"].alpha = 0.5;
self.binoculars_hud_item["zoom_level_1"] setvalue( 20 );
self.binoculars_hud_item["zoom_level_2"] = maps\_hud_util::createclientfontstring( "small", 0.9 );
self.binoculars_hud_item["zoom_level_2"].x = 63;
self.binoculars_hud_item["zoom_level_2"].y = -112;
self.binoculars_hud_item["zoom_level_2"].alignx = "right";
self.binoculars_hud_item["zoom_level_2"].aligny = "middle";
self.binoculars_hud_item["zoom_level_2"].horzalign = "left";
self.binoculars_hud_item["zoom_level_2"].vertalign = "middle";
self.binoculars_hud_item["zoom_level_2"].color = ( 1, 1, 1 );
self.binoculars_hud_item["zoom_level_2"].alpha = 0.5;
self.binoculars_hud_item["zoom_level_2"] setvalue( 10 );
self.binoculars_hud_item["zoom_level_3"] = maps\_hud_util::createclientfontstring( "small", 1.2 );
self.binoculars_hud_item["zoom_level_3"].x = 64;
self.binoculars_hud_item["zoom_level_3"].y = -1;
self.binoculars_hud_item["zoom_level_3"].alignx = "right";
self.binoculars_hud_item["zoom_level_3"].aligny = "middle";
self.binoculars_hud_item["zoom_level_3"].horzalign = "left";
self.binoculars_hud_item["zoom_level_3"].vertalign = "middle";
self.binoculars_hud_item["zoom_level_3"].color = ( 1, 1, 1 );
self.binoculars_hud_item["zoom_level_3"].alpha = 1.0;
self.binoculars_hud_item["zoom_level_3"] setvalue( 0 );
self.binoculars_hud_item["zoom_level_4"] = maps\_hud_util::createclientfontstring( "small", 0.9 );
self.binoculars_hud_item["zoom_level_4"].x = 63;
self.binoculars_hud_item["zoom_level_4"].y = 109;
self.binoculars_hud_item["zoom_level_4"].alignx = "right";
self.binoculars_hud_item["zoom_level_4"].aligny = "middle";
self.binoculars_hud_item["zoom_level_4"].horzalign = "left";
self.binoculars_hud_item["zoom_level_4"].vertalign = "middle";
self.binoculars_hud_item["zoom_level_4"].color = ( 1, 1, 1 );
self.binoculars_hud_item["zoom_level_4"].alpha = 0.5;
self.binoculars_hud_item["zoom_level_4"] settext( "" );
self.binoculars_hud_item["zoom_level_5"] = maps\_hud_util::createclientfontstring( "small", 0.8 );
self.binoculars_hud_item["zoom_level_5"].x = 63;
self.binoculars_hud_item["zoom_level_5"].y = 220;
self.binoculars_hud_item["zoom_level_5"].alignx = "right";
self.binoculars_hud_item["zoom_level_5"].aligny = "middle";
self.binoculars_hud_item["zoom_level_5"].horzalign = "left";
self.binoculars_hud_item["zoom_level_5"].vertalign = "middle";
self.binoculars_hud_item["zoom_level_5"].color = ( 1, 1, 1 );
self.binoculars_hud_item["zoom_level_5"].alpha = 0.333;
self.binoculars_hud_item["zoom_level_5"] settext( "" );
}
binoculars_angles_display()
{
self endon( "stop_using_binoculars" );
self endon( "take_binoculars" );
self.binoculars_hud_item["angles_seconds_symbol"] = maps\_hud_util::createclientfontstring( "small", 1.2 );
self.binoculars_hud_item["angles_seconds_symbol"].x = -18;
self.binoculars_hud_item["angles_seconds_symbol"].y = -25;
self.binoculars_hud_item["angles_seconds_symbol"].alignx = "right";
self.binoculars_hud_item["angles_seconds_symbol"].aligny = "top";
self.binoculars_hud_item["angles_seconds_symbol"].horzalign = "center";
self.binoculars_hud_item["angles_seconds_symbol"].vertalign = "top";
self.binoculars_hud_item["angles_seconds_symbol"].color = ( 1, 1, 1 );
self.binoculars_hud_item["angles_seconds_symbol"].alpha = 1.0;
self.binoculars_hud_item["angles_seconds_symbol"].glowcolor = ( 1, 1, 1 );
self.binoculars_hud_item["angles_seconds_symbol"].glowalpha = 0.0;
self.binoculars_hud_item["angles_seconds_symbol"] settext( "\"" );
self.binoculars_hud_item["angles_seconds"] = maps\_hud_util::createclientfontstring( "small", 1.2 );
self.binoculars_hud_item["angles_seconds"].x = -23;
self.binoculars_hud_item["angles_seconds"].y = -25;
self.binoculars_hud_item["angles_seconds"].alignx = "right";
self.binoculars_hud_item["angles_seconds"].aligny = "top";
self.binoculars_hud_item["angles_seconds"].horzalign = "center";
self.binoculars_hud_item["angles_seconds"].vertalign = "top";
self.binoculars_hud_item["angles_seconds"].color = ( 1, 1, 1 );
self.binoculars_hud_item["angles_seconds"].alpha = 1.0;
self.binoculars_hud_item["angles_seconds"].glowcolor = ( 1, 1, 1 );
self.binoculars_hud_item["angles_seconds"].glowalpha = 0.0;
self.binoculars_hud_item["angles_minutes_symbol"] = maps\_hud_util::createclientfontstring( "small", 1.2 );
self.binoculars_hud_item["angles_minutes_symbol"].x = -43;
self.binoculars_hud_item["angles_minutes_symbol"].y = -25;
self.binoculars_hud_item["angles_minutes_symbol"].alignx = "right";
self.binoculars_hud_item["angles_minutes_symbol"].aligny = "top";
self.binoculars_hud_item["angles_minutes_symbol"].horzalign = "center";
self.binoculars_hud_item["angles_minutes_symbol"].vertalign = "top";
self.binoculars_hud_item["angles_minutes_symbol"].color = ( 1, 1, 1 );
self.binoculars_hud_item["angles_minutes_symbol"].alpha = 1.0;
self.binoculars_hud_item["angles_minutes_symbol"].glowcolor = ( 1, 1, 1 );
self.binoculars_hud_item["angles_minutes_symbol"].glowalpha = 0.0;
self.binoculars_hud_item["angles_minutes_symbol"] settext( "'" );
self.binoculars_hud_item["angles_minutes"] = maps\_hud_util::createclientfontstring( "small", 1.2 );
self.binoculars_hud_item["angles_minutes"].x = -46;
self.binoculars_hud_item["angles_minutes"].y = -25;
self.binoculars_hud_item["angles_minutes"].alignx = "right";
self.binoculars_hud_item["angles_minutes"].aligny = "top";
self.binoculars_hud_item["angles_minutes"].horzalign = "center";
self.binoculars_hud_item["angles_minutes"].vertalign = "top";
self.binoculars_hud_item["angles_minutes"].color = ( 1, 1, 1 );
self.binoculars_hud_item["angles_minutes"].alpha = 1.0;
self.binoculars_hud_item["angles_minutes"].glowcolor = ( 1, 1, 1 );
self.binoculars_hud_item["angles_minutes"].glowalpha = 0.0;
self.binoculars_hud_item["angles_degree_symbol"] = maps\_hud_util::createclientfontstring( "small", 1.3 );
self.binoculars_hud_item["angles_degree_symbol"].x = -67;
self.binoculars_hud_item["angles_degree_symbol"].y = -27;
self.binoculars_hud_item["angles_degree_symbol"].alignx = "center";
self.binoculars_hud_item["angles_degree_symbol"].aligny = "top";
self.binoculars_hud_item["angles_degree_symbol"].horzalign = "center";
self.binoculars_hud_item["angles_degree_symbol"].vertalign = "top";
self.binoculars_hud_item["angles_degree_symbol"].color = ( 1, 1, 1 );
self.binoculars_hud_item["angles_degree_symbol"].alpha = 1.0;
self.binoculars_hud_item["angles_degree_symbol"].glowcolor = ( 1, 1, 1 );
self.binoculars_hud_item["angles_degree_symbol"].glowalpha = 0.0;
self.binoculars_hud_item["angles_degree_symbol"] settext( &"CORNERED_BINOCULARS_DEGREE_SYMBOL" );
self.binoculars_hud_item["angles_degrees"] = maps\_hud_util::createclientfontstring( "small", 1.2 );
self.binoculars_hud_item["angles_degrees"].x = -70;
self.binoculars_hud_item["angles_degrees"].y = -25;
self.binoculars_hud_item["angles_degrees"].alignx = "right";
self.binoculars_hud_item["angles_degrees"].aligny = "top";
self.binoculars_hud_item["angles_degrees"].horzalign = "center";
self.binoculars_hud_item["angles_degrees"].vertalign = "top";
self.binoculars_hud_item["angles_degrees"].color = ( 1, 1, 1 );
self.binoculars_hud_item["angles_degrees"].alpha = 1.0;
self.binoculars_hud_item["angles_degrees"].glowcolor = ( 1, 1, 1 );
self.binoculars_hud_item["angles_degrees"].glowalpha = 0.0;
self.binoculars_hud_item["heading"] = maps\_hud_util::createclientfontstring( "small", 1.0 );
self.binoculars_hud_item["heading"].x = 0;
self.binoculars_hud_item["heading"].y = -17;
self.binoculars_hud_item["heading"].alignx = "center";
self.binoculars_hud_item["heading"].aligny = "top";
self.binoculars_hud_item["heading"].horzalign = "center";
self.binoculars_hud_item["heading"].vertalign = "top";
self.binoculars_hud_item["heading"].color = ( 1, 1, 1 );
self.binoculars_hud_item["heading"].alpha = 1.0;
self.binoculars_hud_item["heading"].glowcolor = ( 1, 1, 1 );
self.binoculars_hud_item["heading"].glowalpha = 0.0;
var_0 = getnorthyaw();
for (;;)
{
var_1 = abs( angleclamp( 0 - self getplayerangles()[1] ) - var_0 );
var_2 = ( var_1 - int( var_1 ) ) * 60.0;
var_3 = ( var_2 - int( var_2 ) ) * 60.0;
var_4 = "" + int( var_2 );
if ( var_2 < 10 )
var_4 = "0" + int( var_2 );
var_5 = "" + int( var_3 );
if ( var_3 < 10 )
var_5 = "0" + int( var_3 );
self.binoculars_hud_item["angles_seconds"] settext( var_5 );
self.binoculars_hud_item["angles_minutes"] settext( var_4 );
self.binoculars_hud_item["angles_degrees"] settext( int( var_1 ) );
if ( var_1 > 337.5 || var_1 < 22.5 )
self.binoculars_hud_item["heading"] settext( "N" );
else if ( var_1 < 67.5 )
self.binoculars_hud_item["heading"] settext( "NE" );
else if ( var_1 < 112.5 )
self.binoculars_hud_item["heading"] settext( "E" );
else if ( var_1 < 157.5 )
self.binoculars_hud_item["heading"] settext( "SE" );
else if ( var_1 < 202.5 )
self.binoculars_hud_item["heading"] settext( "S" );
else if ( var_1 < 247.5 )
self.binoculars_hud_item["heading"] settext( "SW" );
else if ( var_1 < 292.5 )
self.binoculars_hud_item["heading"] settext( "W" );
else
self.binoculars_hud_item["heading"] settext( "NW" );
wait 0.05;
}
}
binocular_reticle_target_reaction()
{
self endon( "stop_using_binoculars" );
self endon( "take_binoculars" );
var_0 = 0;
var_1 = 0;
var_2 = 1;
var_3 = 1;
var_4 = 0;
var_5 = undefined;
for (;;)
{
if ( ( !isdefined( self.binocular_zooming ) || isdefined( self.binocular_zooming ) && !self.binocular_zooming ) && ( !self.binocular_target islinked() || !self attackbuttonpressed() ) )
{
if ( isdefined( self.binoculars_trace ) && isdefined( self.binoculars_scan_target ) )
{
if ( !isdefined( var_5 ) || var_5 != self.binoculars_scan_target )
{
var_4 = 0;
if ( self.binocular_target islinked() )
self.binocular_target unlink();
self.binocular_target.origin = self.binoculars_scan_target gettagorigin( "tag_eye" ) - ( 0, 0, 3 );
self.binocular_target.angles = self.binoculars_scan_target gettagangles( "tag_eye" );
self.binocular_target linkto( self.binoculars_scan_target, "tag_eye" );
self.binocular_target.linked_to_ent = self.binoculars_scan_target;
thread binoculars_remove_target_on_death( self.binoculars_scan_target );
var_5 = self.binoculars_scan_target;
}
}
else
{
var_4 = 1;
var_5 = undefined;
}
}
wait 0.05;
}
}
binoculars_pip_init()
{
level.pip = level.player newpip();
level.pip.enable = 0;
}
binoculars_pip_enable()
{
level.pip.enableshadows = 1;
level.pip.tag = "tag_origin";
level.pip.width = 194;
level.pip.height = 193;
level.pip.x = 320 - level.pip.width / 2;
level.pip.y = 240 - level.pip.height / 2;
if ( maps\_utility::is_gen4() )
{
level.pip.rendertotexture = 1;
self.binoculars_hud_item["pip"] = maps\_hud_util::createicon( "pip_scene_overlay", int( level.pip.width ), int( level.pip.height ) );
self.binoculars_hud_item["pip"] set_default_hud_parameters();
self.binoculars_hud_item["pip"].alignx = "center";
self.binoculars_hud_item["pip"].aligny = "middle";
self.binoculars_hud_item["pip"].alpha = 1;
self.binoculars_hud_item["pip"].sort = self.binoculars_hud_item["pip"].sort - 200;
self.binoculars_hud_item["pip"].foreground = 0;
}
else
level.pip.rendertotexture = 0;
if ( isdefined( level.pip.entity ) )
{
level.pip.entity delete();
level.pip.entity = undefined;
}
level.pip.entity = spawn( "script_model", self geteye() );
level.pip.entity setmodel( "tag_origin" );
level.pip.entity.angles = self getplayerangles();
level.pip.entity linktoplayerview( self, "tag_origin", ( distance( self.binocular_target.origin, self geteye() ) - 300, 0, 0 ), ( 0, 0, 0 ), 0 );
level.pip.freecamera = 1;
level.pip.tag = "tag_origin";
level.pip.fov = 5;
level.pip.enable = 1;
thread binoculars_pip_update_position();
}
binoculars_pip_update_position()
{
level.pip endon( "pip_disabled" );
while ( isdefined( self.binocular_target ) )
{
level.pip.entity delete();
level.pip.entity = spawn( "script_model", self geteye() );
level.pip.entity setmodel( "tag_origin" );
level.pip.entity.angles = self getplayerangles();
level.pip.entity linktoplayerview( self, "tag_origin", ( distance( self.binocular_target.origin, self geteye() ) - 300, 0, 0 ), ( 0, 0, 0 ), 0 );
wait 0.05;
}
}
binoculars_pip_disable()
{
level.pip notify( "pip_disabled" );
level.pip.enable = 0;
if ( isdefined( self.binoculars_hud_item["pip"] ) )
{
self.binoculars_hud_item["pip"] destroy();
self.binoculars_hud_item["pip"] = undefined;
}
if ( isdefined( level.pip.entity ) )
{
level.pip.entity delete();
level.pip.entity = undefined;
}
}
set_default_hud_parameters()
{
self.alignx = "left";
self.aligny = "top";
self.horzalign = "center";
self.vertalign = "middle";
self.hidewhendead = 0;
self.hidewheninmenu = 1;
self.sort = 205;
self.foreground = 1;
self.alpha = 0.65;
}