From dd44318c9a4986a6af7a67cc483cb39b56d1e8e8 Mon Sep 17 00:00:00 2001 From: "Nikolai V. Chr" Date: Mon, 25 Sep 2023 22:08:40 +0200 Subject: [PATCH] Update shooting SAMs --- BUK-M2/BUK-M2-set.xml | 2 +- BUK-M2/Dialogs/control-panel.xml | 330 -------------------- BUK-M2/Dialogs/menu.xml | 39 --- BUK-M2/Sim/mice.xml | 74 ----- BUK-M2/Systems/fbw.xml | 46 --- BUK-M2/Systems/fdm.xml | 69 ----- Frigate/Dialogs/control-panel.xml | 330 -------------------- Frigate/Dialogs/menu.xml | 39 --- Frigate/Nasal/damage.nas | 102 ++++-- Frigate/Nasal/fdm.nas | 2 +- Frigate/Nasal/radar-logic.nas | 197 ++++++------ Frigate/Sim/mice.xml | 74 ----- Frigate/Systems/fbw.xml | 54 ---- Frigate/Systems/fdm.xml | 410 ------------------------- MIM-104D/Models/mim104D-1.xcf | Bin 0 -> 117574 bytes MIM-104D/Models/mim104D-2.xcf | Bin 0 -> 133034 bytes MIM-104D/Models/mim104D-3.xcf | Bin 0 -> 250704 bytes depot/Dialogs/menu.xml | 39 --- depot/Dialogs/type.xml | 116 ------- depot/Nasal/damage.nas | 102 ++++-- depot/Nasal/fdm.nas | 2 +- depot/Systems/fbw.xml | 46 --- depot/Systems/fdm.xml | 69 ----- gci-radar/Nasal/damage.nas | 102 ++++-- gci-radar/Nasal/gci.nas | 2 +- gci-radar/Nasal/radar-logic.nas | 197 ++++++------ gci-radar/Systems/fbw.xml | 46 --- gci-radar/Systems/fdm.xml | 69 ----- groundtarget/Dialogs/control-panel.xml | 330 -------------------- groundtarget/Dialogs/menu.xml | 39 --- groundtarget/Nasal/damage.nas | 102 ++++-- groundtarget/Nasal/dialogs.nas | 16 - groundtarget/Nasal/fdm.nas | 2 +- groundtarget/Sim/mice.xml | 74 ----- groundtarget/Sim/views.xml | 280 ----------------- groundtarget/Systems/fbw.xml | 46 --- groundtarget/Systems/fdm.xml | 69 ----- 37 files changed, 463 insertions(+), 3053 deletions(-) delete mode 100644 BUK-M2/Dialogs/control-panel.xml delete mode 100644 BUK-M2/Dialogs/menu.xml delete mode 100644 BUK-M2/Sim/mice.xml delete mode 100644 BUK-M2/Systems/fbw.xml delete mode 100644 BUK-M2/Systems/fdm.xml delete mode 100644 Frigate/Dialogs/control-panel.xml delete mode 100644 Frigate/Dialogs/menu.xml delete mode 100644 Frigate/Sim/mice.xml delete mode 100644 Frigate/Systems/fbw.xml delete mode 100644 Frigate/Systems/fdm.xml create mode 100644 MIM-104D/Models/mim104D-1.xcf create mode 100644 MIM-104D/Models/mim104D-2.xcf create mode 100644 MIM-104D/Models/mim104D-3.xcf delete mode 100644 depot/Dialogs/menu.xml delete mode 100644 depot/Dialogs/type.xml delete mode 100644 depot/Systems/fbw.xml delete mode 100644 depot/Systems/fdm.xml delete mode 100644 gci-radar/Systems/fbw.xml delete mode 100644 gci-radar/Systems/fdm.xml delete mode 100644 groundtarget/Dialogs/control-panel.xml delete mode 100644 groundtarget/Dialogs/menu.xml delete mode 100644 groundtarget/Nasal/dialogs.nas delete mode 100644 groundtarget/Sim/mice.xml delete mode 100644 groundtarget/Sim/views.xml delete mode 100644 groundtarget/Systems/fbw.xml delete mode 100644 groundtarget/Systems/fdm.xml diff --git a/BUK-M2/BUK-M2-set.xml b/BUK-M2/BUK-M2-set.xml index 92bb3c2..7a980dd 100644 --- a/BUK-M2/BUK-M2-set.xml +++ b/BUK-M2/BUK-M2-set.xml @@ -19,7 +19,7 @@ pinto, Nikolai V. Chr. BUK-M2 - BUK-M2 is a modern Russian self-propelled surface to air missile system. + BUK-M2 (SA-17) is a modern Russian self-propelled surface to air missile system. alpha 0.1 diff --git a/BUK-M2/Dialogs/control-panel.xml b/BUK-M2/Dialogs/control-panel.xml deleted file mode 100644 index e6a5f9e..0000000 --- a/BUK-M2/Dialogs/control-panel.xml +++ /dev/null @@ -1,330 +0,0 @@ - - - - - - - control-panel - vbox - 250 - false - - - hbox - - true - - - - true - - - - - - - - vbox - 6 - - - - - - table - - - - 0 - 1 - - - - - - - - - - 2 - 1 - - - - - - - - - - 4 - 0 - - - - - 4 - 1 - - - - - - - - - - - - - - - - - vbox - 6 - - - - - - vbox - - - left - - /controls/lighting/deck-lights - true - - dialog-apply - - - property-toggle - - - - - left - - /carrier/antennas/enabled - true - - dialog-apply - - - property-toggle - - - - - - - - - vbox - 6 - - - - - - vbox - - - left - - /carrier/fdm/settings/movement - true - - dialog-apply - - - property-toggle - - - - - left - - /carrier/phalanx/settings/show-debug-aim - true - - dialog-apply - - - property-toggle - - - - - - - - - hbox - 6 - - true - - - - - diff --git a/BUK-M2/Dialogs/menu.xml b/BUK-M2/Dialogs/menu.xml deleted file mode 100644 index a34d397..0000000 --- a/BUK-M2/Dialogs/menu.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - true - - - - - dialog-show - control-panel - - - - - - - diff --git a/BUK-M2/Sim/mice.xml b/BUK-M2/Sim/mice.xml deleted file mode 100644 index 2f2bf35..0000000 --- a/BUK-M2/Sim/mice.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/BUK-M2/Systems/fbw.xml b/BUK-M2/Systems/fbw.xml deleted file mode 100644 index 107c064..0000000 --- a/BUK-M2/Systems/fbw.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - FBW Throttle - gain - 80.0 - - /controls/engines/engine[0]/throttle - - - /carrier/fbw/target/groundspeed-kt - - - - - FBW Rudder - gain - 8.0 - - /controls/flight/rudder - - - /surface-positions/rudder-pos-norm - - - - diff --git a/BUK-M2/Systems/fdm.xml b/BUK-M2/Systems/fdm.xml deleted file mode 100644 index 7a847c8..0000000 --- a/BUK-M2/Systems/fdm.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - FDM Groundspeed - noise-spike - - /carrier/fbw/target/groundspeed-kt - - - /velocities/groundspeed-kt - - - - 7 - - - - - FDM True Heading For Flags - gain - - /orientation/heading-deg - - - /orientation/true-heading-deg - - - - - - - - - - diff --git a/Frigate/Dialogs/control-panel.xml b/Frigate/Dialogs/control-panel.xml deleted file mode 100644 index e6a5f9e..0000000 --- a/Frigate/Dialogs/control-panel.xml +++ /dev/null @@ -1,330 +0,0 @@ - - - - - - - control-panel - vbox - 250 - false - - - hbox - - true - - - - true - - - - - - - - vbox - 6 - - - - - - table - - - - 0 - 1 - - - - - - - - - - 2 - 1 - - - - - - - - - - 4 - 0 - - - - - 4 - 1 - - - - - - - - - - - - - - - - - vbox - 6 - - - - - - vbox - - - left - - /controls/lighting/deck-lights - true - - dialog-apply - - - property-toggle - - - - - left - - /carrier/antennas/enabled - true - - dialog-apply - - - property-toggle - - - - - - - - - vbox - 6 - - - - - - vbox - - - left - - /carrier/fdm/settings/movement - true - - dialog-apply - - - property-toggle - - - - - left - - /carrier/phalanx/settings/show-debug-aim - true - - dialog-apply - - - property-toggle - - - - - - - - - hbox - 6 - - true - - - - - diff --git a/Frigate/Dialogs/menu.xml b/Frigate/Dialogs/menu.xml deleted file mode 100644 index a34d397..0000000 --- a/Frigate/Dialogs/menu.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - true - - - - - dialog-show - control-panel - - - - - - - diff --git a/Frigate/Nasal/damage.nas b/Frigate/Nasal/damage.nas index 44b753a..81e859c 100644 --- a/Frigate/Nasal/damage.nas +++ b/Frigate/Nasal/damage.nas @@ -27,8 +27,6 @@ var mlw_max=getprop("payload/d-config/mlw_max"); # var auto_flare_caller = getprop("payload/d-config/auto_flare_caller"); # If damage.nas should detect flare releases, or if function is called from somewhere in aircraft ############################################################################################################################ -var TRUE = 1; -var FALSE = 0; var hp = hp_max; setprop("sam/damage", math.max(0,100*hp/hp_max));#used in HUD @@ -164,7 +162,9 @@ var warheads = { "pilot": [93, 0.00,1,0],# ejected pilot "BETAB-500ShP": [94, 1160.00,1,0], "Flare": [95, 0.00,0,0], - "3M9": [96, 125.00,0,0],# 3M9 Missile used with 2K12/SA-6 + "3M9": [96, 125.00,0,0],# 3M9M3 Missile used with 2K12/SA-6 + "5V28V": [97, 478.00,0,0],# Missile used with S-200D/SA-5 + "AIM-9X": [98, 20.80,0,0], }; var AIR_RADAR = "air"; @@ -189,7 +189,8 @@ var radar_signatures = { "E-8R": AIR_RADAR, "EC-137D": AIR_RADAR, "Mig-28": AIR_RADAR, - "SA-6": AIR_RADAR,#Air radar tone chosen so that there is at least some lock tone until asset-specific is created + "SA-6": "gnd-06",#Air radar tone chosen so that there is at least some lock tone until asset-specific is created + "s-200": "gnd-05", "ZSU-23-4M": "gnd-23", "S-75": "gnd-02", "buk-m2": "gnd-11", @@ -203,7 +204,7 @@ var radar_signatures = { var id2warhead = []; var launched = {};# callsign: elapsed-sec var approached = {};# callsign: uniqueID -var heavy_smoke = [61,62,63,65,92,96]; +var heavy_smoke = [61,62,63,65,92,96,97]; var k = keys(warheads); @@ -241,6 +242,10 @@ for(var myid = 0;myid 450) { - printf("Missile Approach Warning from %03d degrees.", bearing); - damageLog.push(sprintf("Missile Approach Warning from %03d degrees from %s.", bearing, notification.Callsign)); - if (rwr_to_screen) screen.log.write(sprintf("Missile Approach Warning from %03d degrees.", bearing), 1,1,0);# temporary till someone models a RWR in RIO seat + if (radarOn) { + #printf("Missile Approach Warning from %03d degrees.", bearing); + damageLog.push(sprintf("Missile Approach Warning from %03d degrees from %s.", bearing, notification.Callsign)); + if (rwr_to_screen) screen.log.write(sprintf("Missile Approach Warning from %03d degrees.", bearing), 1,0.5,0);# temporary till someone models a RWR in RIO seat + } else { + #printf("Missile Approach Warning"); + damageLog.push(sprintf("Missile Approach Warning from %s.", notification.Callsign)); + if (rwr_to_screen) screen.log.write(sprintf("Missile Approach Warning (semi-active)."), 1,0.5,0);# temporary till someone models a RWR in RIO seat + } approached[notification.Callsign~notification.UniqueIdentity] = elapsed; - if (m28_auto) mig28.engagedBy(notification.Callsign); + if (m28_auto) mig28.engagedBy(notification.Callsign, 1); } return emesary.Transmitter.ReceiptStatus_OK; } @@ -415,7 +433,7 @@ var DamageRecipient = # debug.dump(notification); # # - if (tacview_supported and tacview.starttime and getprop("sim/multiplay/txhost") != "mpserver.opredflag.com") { + if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and notification.SecondaryKind > 20) { # its a warhead @@ -439,9 +457,10 @@ var DamageRecipient = var callsign = processCallsign(getprop("sim/multiplay/callsign")); if (notification.RemoteCallsign == callsign and getprop("payload/armament/msg") == 1) { #damage enabled and were getting hit - if (m28_auto) mig28.engagedBy(notification.Callsign); + if (notification.SecondaryKind < 0 and hitable_by_cannon) { # cannon hit + if (m28_auto) mig28.engagedBy(notification.Callsign, 0); var probability = id2shell[-1*notification.SecondaryKind-1][1]; var typ = id2shell[-1*notification.SecondaryKind-1][2]; var hit_count = notification.Distance; @@ -457,6 +476,7 @@ var DamageRecipient = } } elsif (notification.SecondaryKind > 20) { # its a warhead + if (m28_auto) mig28.engagedBy(notification.Callsign, 1); var dist = notification.Distance; var wh = id2warhead[notification.SecondaryKind - 21]; var type = wh[4];#test code @@ -549,21 +569,18 @@ var DamageRecipient = } if (notification.Kind == CREATE and getprop("payload/armament/enable-craters") == 1 and statics["obj_"~notification.UniqueIdentity] == nil) { if (notification.SecondaryKind == 0) {# TODO: make a hash with all the models - var crater_model = getprop("payload/armament/models") ~ "crater_small.xml"; - var static = geo.put_model(crater_model, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); + var static = geo.put_model(crater_model0, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); if (static != nil) { statics["obj_"~notification.UniqueIdentity] = [static, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading, notification.SecondaryKind]; #static is a PropertyNode inside /models } } elsif (notification.SecondaryKind == 1) { - var crater_model = getprop("payload/armament/models") ~ "crater_big.xml"; - var static = geo.put_model(crater_model, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); + var static = geo.put_model(crater_model1, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); if (static != nil) { statics["obj_"~notification.UniqueIdentity] = [static, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading, notification.SecondaryKind]; } } elsif (notification.SecondaryKind == 2) { - var crater_model = getprop("payload/armament/models") ~ "bomb_hit_smoke.xml"; - var static = geo.put_model(crater_model, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); + var static = geo.put_model(crater_model2, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); if (static != nil) { statics["obj_"~notification.UniqueIdentity] = [static, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading, notification.SecondaryKind]; } @@ -863,6 +880,7 @@ var flare_update_time = 0.4; var flare_duration = 8; var flare_terminal_speed = 50;#m/s var flares_max_process_per_loop = 4; +var flare_sequencer = -120; var flare_sorter = func(a, b) { if(a[0] < b[0]){ @@ -945,7 +963,9 @@ var flare_released = func { getprop("orientation/heading-deg"), FT2M*getprop("velocities/speed-down-fps"), FT2M*math.sqrt(getprop("velocities/speed-north-fps")*getprop("velocities/speed-north-fps")+getprop("velocities/speed-east-fps")*getprop("velocities/speed-east-fps")), - int(rand()*240)-120]; + flare_sequencer]; + flare_sequencer += 1; + if (flare_sequencer > 120) flare_sequencer = -120; append(flare_list, flare); var msg = notifications.ObjectInFlightNotification.new("ffly", flare[6], MOVE, 21+95); msg.Flags = 0; @@ -1233,7 +1253,7 @@ var processCallsigns = func () { var painted = 0; var paint_list = []; foreach (var player; players) { - if(player.getChild("valid") != nil and player.getChild("valid").getValue() == TRUE and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { + if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); @@ -1247,6 +1267,7 @@ var processCallsigns = func () { } if (getprop("sim/time/elapsed-sec")-MAW_elapsed > 1.1) { setprop("payload/armament/MAW-active", 0);# resets every 1.1 seconds without warning + setprop("payload/armament/MAW-semiactive", 0); } # spike handling: @@ -1293,16 +1314,16 @@ processCallsignsTimer.start(); var code_ct = func () { #ANTIC if (getprop("payload/armament/msg")) { - setprop("sim/rendering/redout/enabled", TRUE); + setprop("sim/rendering/redout/enabled", 1); #call(func{fgcommand('dialog-close', multiplayer.dialog.dialog.prop())},nil,var err= []);# props.Node.new({"dialog-name": "location-in-air"})); - call(func{multiplayer.dialog.del();},nil,var err= []); + if (!m28_auto) call(func{multiplayer.dialog.del();},nil,var err= []); if (!getprop("gear/gear[0]/wow")) { call(func{fgcommand('dialog-close', props.Node.new({"dialog-name": "WeightAndFuel"}))},nil,var err2 = []); call(func{fgcommand('dialog-close', props.Node.new({"dialog-name": "system-failures"}))},nil,var err2 = []); call(func{fgcommand('dialog-close', props.Node.new({"dialog-name": "instrument-failures"}))},nil,var err2 = []); } setprop("sim/freeze/fuel",0); - setprop("/sim/speed-up", 1); + if (!m28_auto) setprop("/sim/speed-up", 1); setprop("/gui/map/draw-traffic", 0); setprop("/sim/marker-pins/traffic", 0); setprop("/sim/gui/dialogs/map-canvas/draw-TFC", 0); @@ -1317,7 +1338,7 @@ code_ctTimer.simulatedTime = 1; -setprop("/sim/failure-manager/display-on-screen", FALSE); +setprop("/sim/failure-manager/display-on-screen", 0); code_ctTimer.start(); @@ -1337,6 +1358,22 @@ var re_init = func (node) { } stopLaunch(); damageLog.push("Aircraft was repaired due to re-init."); + + # Remove all 3D craters and re-place them. Due to re-init can remove some of them. + + foreach (var thekey ; keys(statics)) { + var sta = statics[thekey]; + if (sta[0] != nil) { + sta[0].remove(); + if (sta[5] == 0) {# TODO: make a hash with all the models + sta[0] = geo.put_model(crater_model0, sta[1], sta[2], sta[3], sta[4]); + } elsif (sta[5] == 1) { + sta[0] = geo.put_model(crater_model1, sta[1], sta[2], sta[3], sta[4]); + } elsif (sta[5] == 2) { + sta[0] = geo.put_model(crater_model2, sta[1], sta[2], sta[3], sta[4]); + } + } + } } #================================================================== @@ -1405,6 +1442,7 @@ setlistener("sim/signals/exit", writeDamageLog, 0, 0); #screen.property_display.add("payload/armament/MAW-bearing"); #screen.property_display.add("payload/armament/MAW-active"); +#screen.property_display.add("payload/armament/MAW-semiactive"); #screen.property_display.add("payload/armament/MLW-bearing"); #screen.property_display.add("payload/armament/MLW-count"); #screen.property_display.add("payload/armament/MLW-launcher"); @@ -1412,6 +1450,8 @@ setlistener("sim/signals/exit", writeDamageLog, 0, 0); #screen.property_display.add("payload/armament/spike-air"); #screen.property_display.add("payload/armament/spike-gnd-20"); #screen.property_display.add("payload/armament/spike-gnd-02"); +#screen.property_display.add("payload/armament/spike-gnd-05"); +#screen.property_display.add("payload/armament/spike-gnd-06"); #screen.property_display.add("payload/armament/spike-gnd-11"); #screen.property_display.add("payload/armament/spike-gnd-23"); #screen.property_display.add("payload/armament/spike-gnd-p2"); diff --git a/Frigate/Nasal/fdm.nas b/Frigate/Nasal/fdm.nas index 5f0b23d..4cdf778 100644 --- a/Frigate/Nasal/fdm.nas +++ b/Frigate/Nasal/fdm.nas @@ -14,7 +14,7 @@ # along with this program. If not, see . #io.include("Aircraft/ExpansionPack/Nasal/init.nas"); - +srand();# seed the random generator with systime #with("updateloop"); # Number of iterations per second diff --git a/Frigate/Nasal/radar-logic.nas b/Frigate/Nasal/radar-logic.nas index ca6aa5e..6b92c8b 100644 --- a/Frigate/Nasal/radar-logic.nas +++ b/Frigate/Nasal/radar-logic.nas @@ -15,9 +15,6 @@ if ((major == 2017 and minor == 2 and pica >= 1) or (major == 2017 and minor > 2 pickingMethod = 1; } -var FALSE = 0; -var TRUE = 1; - var AIR = 0; var MARINE = 1; var SURFACE = 2; @@ -73,6 +70,9 @@ var Contact = { obj.range = obj.rdrProp.getNode("range-nm"); obj.bearing = obj.rdrProp.getNode("bearing-deg"); obj.elevation = obj.rdrProp.getNode("elevation-deg"); + obj.ubody = obj.rdrProp.getNode("velocities/uBody-fps"); + obj.vbody = obj.rdrProp.getNode("velocities/vBody-fps"); + obj.wbody = obj.rdrProp.getNode("velocities/wBody-fps"); #}); obj.deviation = nil; @@ -84,27 +84,63 @@ var Contact = { return obj; }, + + get_uBody: func { + var body = nil; + if (me.ubody != nil) { + body = me.ubody.getValue(); + } + if(body == nil) { + body = me.get_Speed()*KT2FPS; + } + return body; + }, + + get_vBody: func { + var body = nil; + if (me.ubody != nil) { + body = me.vbody.getValue(); + } + if(body == nil) { + body = 0; + } + return body; + }, + + get_wBody: func { + var body = nil; + if (me.ubody != nil) { + body = me.wbody.getValue(); + } + if(body == nil) { + body = 0; + } + return body; + }, isValid: func () { var valid = me.valid.getValue(); if (valid == nil) { - valid = FALSE; + valid = 0; } if (me.callsign.getValue() != me.orig_callsign) { - valid = FALSE; + valid = 0; } return valid; }, isPainted: func () { - if (me.painted == nil) { - me.painted = me.node.getNode("painted"); + if (getprop("/carrier/sunk") == 1) { + return 0; } - if (me.painted == nil) { - return nil; + return isNotBehindTerrain(me.node)[0]; + }, + + isCommandActive: func { + if (getprop("/carrier/sunk") == 1) { + return 0; } - var p = me.painted.getValue(); - return p; + return isNotBehindTerrain(me.node)[0]; }, getUnique: func () { @@ -124,6 +160,7 @@ var Contact = { if(e == nil or e == 0) { # AI/MP has no radar properties var self = geo.aircraft_position(); + self.set_alt(self.alt()+fire_control.radar_elevation_above_terrain_m); me.get_Coord(); var angleInv = clamp(self.distance_to(me.coord)/self.direct_distance_to(me.coord), -1, 1); e = (self.alt()>me.coord.alt()?-1:1)*math.acos(angleInv)*R2D; @@ -343,108 +380,48 @@ var Contact = { }; var isNotBehindTerrain = func( mp ) { + var pos = mp.getNode("position"); + var alt = pos.getNode("altitude-ft").getValue(); + var lat = pos.getNode("latitude-deg").getValue(); + var lon = pos.getNode("longitude-deg").getValue(); + if(alt == nil or lat == nil or lon == nil) { + return [0,0]; # invisible and not in front of terrain + } + var aircraftPos = geo.Coord.new().set_latlon(lat, lon, alt*FT2M); -########### - var pos = mp.getNode("position"); - var alt = pos.getNode("altitude-ft").getValue(); - var lat = pos.getNode("latitude-deg").getValue(); - var lon = pos.getNode("longitude-deg").getValue(); - if(alt == nil or lat == nil or lon == nil) { - return isVisible = 0; - } - var aircraftPos = geo.Coord.new().set_latlon(lat, lon, alt*0.3048); -################# - if (pickingMethod == 1) { - var myPos = geo.aircraft_position(); - myPos.set_latlon(myPos.lat(),myPos.lon(),myPos.alt()+50); - var xyz = {"x":myPos.x(), "y":myPos.y(), "z":myPos.z()}; - var dir = {"x":aircraftPos.x()-myPos.x(), "y":aircraftPos.y()-myPos.y(), "z":aircraftPos.z()-myPos.z()}; + var myPos = geo.aircraft_position(); - # Check for terrain between own aircraft and other: - v = get_cart_ground_intersection(xyz, dir); - if (v == nil) { - return 1; - #printf("No terrain, planes has clear view of each other"); - } else { - var terrain = geo.Coord.new(); - terrain.set_latlon(v.lat, v.lon, v.elevation); - var maxDist = myPos.direct_distance_to(aircraftPos); - var terrainDist = myPos.direct_distance_to(terrain); - if (terrainDist < maxDist) { - #printf("terrain found between SAM and aircraft %.1f meter away.", terrainDist); - return 0; - } else { - #print("The planes has clear view of each other"); - return 1; - } + myPos.set_alt(myPos.alt()+fire_control.radar_elevation_above_terrain_m); + + var target_distance = myPos.direct_distance_to(aircraftPos); + + call(func { + if (target_distance*0.001 > 3.57*(math.sqrt(myPos.alt())+math.sqrt(alt*FT2M))) { + # behind earth curvature + #print("behind earth curvature"); + return [0,0]; # invisible and not in front of terrain } + },nil,nil,var err =[]); + + var xyz = {"x":myPos.x(), "y":myPos.y(), "z":myPos.z()}; + var dir = {"x":aircraftPos.x()-myPos.x(), "y":aircraftPos.y()-myPos.y(), "z":aircraftPos.z()-myPos.z()}; + + # Check for terrain between own aircraft and other: + v = get_cart_ground_intersection(xyz, dir); + if (v == nil) { + return [1,0]; # visible and not in front of terrain + #printf("No terrain, planes has clear view of each other"); + } else { + var terrain = geo.Coord.new(); + terrain.set_latlon(v.lat, v.lon, v.elevation); + var maxDist = myPos.direct_distance_to(aircraftPos); + var terrainDist = myPos.direct_distance_to(terrain); + if (terrainDist < maxDist-1) { + #printf("terrain found between me and aircraft %.1f meter away.", terrainDist); + return [0,0]; # visible and not in front of terrain } else { - var isVisible = 0; - var MyCoord = geo.aircraft_position(); - - # Because there is no terrain on earth that can be between these 2 - if(MyCoord.alt() < 8900 and aircraftPos.alt() < 8900) - { - # Temporary variable - # A (our plane) coord in meters - var a = MyCoord.x(); - var b = MyCoord.y(); - var c = MyCoord.z(); - # B (target) coord in meters - var d = aircraftPos.x(); - var e = aircraftPos.y(); - var f = aircraftPos.z(); - var difa = d - a; - var difb = e - b; - var difc = f - c; - # direct Distance in meters - var myDistance = math.sqrt( math.pow((d-a),2) + math.pow((e-b),2) + math.pow((f-c),2)); #calculating distance ourselves to avoid another call to geo.nas (read: speed, probably). - var Aprime = geo.Coord.new(); - - # Here is to limit FPS drop on very long distance - var L = 500; - if(myDistance > 50000) - { - L = myDistance / 15; - } - var step = L; - var maxLoops = int(myDistance / L); - - isVisible = 1; - # This loop will make travel a point between us and the target and check if there is terrain - for(var i = 1 ; i <= maxLoops ; i += 1) - { - #calculate intermediate step - #basically dividing the line into maxLoops number of steps, and checking at each step - #to ascii-art explain it: - # |us|----------|step 1|-----------|step 2|--------|step 3|----------|them| - #there will be as many steps as there is i - #every step will be equidistant - - #also, if i == 0 then the first step will be our plane - - var x = ((difa/(maxLoops+1))*i)+a; - var y = ((difb/(maxLoops+1))*i)+b; - var z = ((difc/(maxLoops+1))*i)+c; - #print("i:" ~ i ~ "|x,y,z | " ~ x ~ "," ~ y ~ "," ~ z); - Aprime.set_xyz(x,y,z); - var AprimeTerrainAlt = geo.elevation(Aprime.lat(), Aprime.lon()); - if(AprimeTerrainAlt == nil) - { - AprimeTerrainAlt = 0; - } - - if(AprimeTerrainAlt > Aprime.alt()) - { - #print("behind terrain"); - return 0; - } - } - } - else - { - isVisible = 1; - } - return isVisible; + #print("The planes has clear view of each other"); + return [1,1]; # visible and in front of terrain } + } } \ No newline at end of file diff --git a/Frigate/Sim/mice.xml b/Frigate/Sim/mice.xml deleted file mode 100644 index 2f2bf35..0000000 --- a/Frigate/Sim/mice.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/Frigate/Systems/fbw.xml b/Frigate/Systems/fbw.xml deleted file mode 100644 index 42678fb..0000000 --- a/Frigate/Systems/fbw.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - FBW Throttle - gain - 30.0 - - /controls/engines/engine[0]/throttle - - - /carrier/fbw/target/groundspeed-kt - - - - - Flight Deck Antennas Position - noise-spike - - - /carrier/antennas/enabled - - 0.0 - - - 1.0 - - - /carrier/antennas/antenna-pos-norm - - - - 0.2 - - - diff --git a/Frigate/Systems/fdm.xml b/Frigate/Systems/fdm.xml deleted file mode 100644 index 172191b..0000000 --- a/Frigate/Systems/fdm.xml +++ /dev/null @@ -1,410 +0,0 @@ - - - - - - - - - FDM Groundspeed - noise-spike - - /carrier/fbw/target/groundspeed-kt - - - /velocities/groundspeed-kt - - - - 0.075 - - - - - FDM True Heading For Flags - gain - - /orientation/heading-deg - - - /orientation/true-heading-deg - - - - - - - - - - FDM Wave Heading - gain - - - - - - /environment/sea/surface/wind-from-east-fps - /environment/sea/surface/wind-from-north-fps - - - /orientation/heading-deg - - - - -90 - 90 - - - - /carrier/fdm/output/wave-heading - - - - - - FDM Wave Perpendicular Normalized - gain - - -
- - /carrier/fdm/output/wave-heading - - 90.0 -
-
- - - /carrier/fdm/output/wave-perpendicular-norm - -
- - - - FDM Wave Strength - gain - - - - - - - /environment/sea/surface/wind-from-east-fps - 2.0 - - - /environment/sea/surface/wind-from-north-fps - 2.0 - - - - - - 0.5924838012958964 - - - - - /carrier/fdm/output/wave-speed-kt - - - - - FDM Heel Wave Factor - gain - - -
- - - /carrier/fdm/output/wave-speed-kt - - - - /carrier/fdm/output/wave-heading - - - - - /carrier/fdm/settings/max-heel-oscillation-wave-kt - - /carrier/fdm/settings/max-heel-oscillation-wave-kt -
-
- - - /carrier/fdm/output/heel-wave-factor - -
- - - FDM Trim Wave Factor - gain - - -
- - - - /carrier/fdm/output/wave-speed-kt - - - - /carrier/fdm/output/wave-heading - - - - - /velocities/groundspeed-kt - - /carrier/fdm/settings/max-trim-oscillation-wave-kt - - /carrier/fdm/settings/max-trim-oscillation-wave-kt -
-
- - - /carrier/fdm/output/trim-wave-factor - -
- - - - - - - - FDM Rudder - noise-spike - - /controls/flight/rudder - - - /surface-positions/rudder-pos-norm - - - - 0.2 - - - - - FDM Turn Centrifugal Force - gain - - - -
- /velocities/groundspeed-kt - 30.0 -
- /surface-positions/rudder-pos-norm - /carrier/fdm/settings/bank-limit - -1.0 -
-
- - - /carrier/fdm/target/roll-deg - -
- - - - FDM Turn PID - - /carrier/roll-deg - - - /carrier/fdm/target/roll-deg - - - /carrier/fdm/output/roll-deg - - - 0.5 - 2.0 - - /carrier/fdm/settings/bank-limit - -1.0 - - - /carrier/fdm/settings/bank-limit - - - - - - - FDM Heeling Force Oscillator - damped-oscillation - false - - 0.0 - - - /carrier/fdm/settings/heel-frequency - - - - - /carrier/fdm/settings/heel-frequency - /carrier/fdm/settings/heel-overshoot - - - - - /carrier/fdm/output/heel-osci - - - - - - FDM Heeling Degree - gain - - - - /carrier/fdm/output/heel-osci - /carrier/fdm/settings/heel-overshoot - - - - - /carrier/fdm/output/heel-deg - - - - - - FDM Roll - gain - - - /carrier/fdm/settings/movement - - /carrier/fdm/output/roll-deg - - /carrier/fdm/output/heel-deg - - /carrier/fdm/output/heel-wave-factor - - - - - 0.0 - - - /carrier/roll-deg - - - - - - - - - - FDM Trimming Force Oscillator - damped-oscillation - false - - 0.0 - - - /carrier/fdm/settings/trim-frequency - - - - - /carrier/fdm/settings/trim-frequency - /carrier/fdm/settings/trim-overshoot - - - - - /carrier/fdm/output/trim-osci - - - - - - FDM Trimming Degree - gain - - - - /carrier/fdm/output/trim-osci - /carrier/fdm/settings/trim-overshoot - - - - - /carrier/fdm/output/trim-deg - - - - - FDM Pitch - gain - - - /carrier/fdm/settings/movement - - /carrier/fdm/output/trim-deg - - /carrier/fdm/output/trim-wave-factor - - - - 0.0 - - - /carrier/pitch-deg - - - -
diff --git a/MIM-104D/Models/mim104D-1.xcf b/MIM-104D/Models/mim104D-1.xcf new file mode 100644 index 0000000000000000000000000000000000000000..65d94b0594591b38e6c747bd443bc519036e589f GIT binary patch literal 117574 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�FQO6oSr^fQd#-Wao}F*t$==G(I*yHnwk{chuTvj{SIiLV+v>b&=XOFepwaeOV?)l-~kx>QE@O=H^JO=CCUl49ss zpk>K-=b8EU78Dj10XZs4JT&BqEDz+b8uv&TWKcVTT`GXGvyv)PZ^mx0H2D0TvgYK{=P@4$XRw|>g41k zyx{TiadGZgGwz=FgoMOofLAtlRe>1_g?CX~4)6+-w^GAG;47s~kJ z1xy&6L250BnsK zXY^VbzId2!Nff{|uk_}?>hK)$Id+oY4$-QoW}pD5n5l;z-U}H3MFT3eU5l=D)YFHK zl6QtlpWl`Il5&-d{F&*)#H-W?1n`~ctnnSD<{fyItv^RW_&x)MLoEcaqP|>|*Ntsm zsNC3oQpSMUA+&%Dmv&+2U=zd7pnSb;xDOzf`e5UWOzuqI&|U$tKnwxgr;$9e!T4Fu zBwdCuA+}zYOCfbtr1OydrLZ}s=)o=EIOf3kodmgDLW4mOZ2-BzRRNACARy>p1mW^a zs~Uv<6_X^SA6n)KKc}>cOfaSf7l=$S6$%{83F22y5h-B^$}GSS(}`%gK*lULxInlH zkVk|J^f4OifszKG%o&qJxXhD)e-Q-G%o&4!93K2*y7>>y_nc&s(TtCO1KU?+)}Zjo zOo5_$q2RZGK|zg8BuZdgSV6Bbw96mhG-UyOx<(WVzW{>?W{Qn_r~hRI^jd(SUIOT= z;sQzpkb z0TSp9L%7ZUXE88U5>(ZK4dByw2aW?qwNYM#VAzA#!E6aj(N0h!%b`f1z>bUq$PVMW zKA>Enkxd_x^3MRsK}w)p!`H_{n1H^B$U>zAAYXmMAggW55G37h1rIZ(t_uP?Fnke} z059sy3IZc*MO2gyMx6~b10#Ei5HjK(B227{LMVA`fQW^cr*lAPEdXNT%@82LL4qzo z*{U(p71AulNo~PECd}NwYoFrw>6{Tz4tQ>+thimP&@oJqnf(y%0CUQYd zm^r(cu>o%rlm^z!)~L(@?Bx_mE^H1nSAqk1IukfFvJuQ%YR*Cto}Pz%IyB}D`H7?u z9)WL@!Khk_@RZEL@;U(8d&a?RlyX%*NidfKc;3Go{8bdJ>Vx4}LvUbk;vAt$?AMjb6RKz8SVZEKI+VZ>)uGC|fY1jm^OYJ^@&`&M zNE!14nnVRGGz40E%Ui9UrN)@*SzCEa-vEI0MBxpHPrM%pq(^l*Juv{V!o6sdX(2&n zFCae6z}Na_e3=Ljkf^UxARtn?9S@faPg7N{So^@RycWK1P_5ZN0rB`va@PCpA)QU&4661wp02wjTh55CsV8iGH3q0rVvy z{XW1#A`7Stqq1n$53nGh5{b*wrH+6-@ckD;0r3RVC=}od>vv6AAa!6ABnVo706+m9 zT?h!mG#H270XPLTf~wVw1>hjZz>H8Z4RNI!1Av9%CfIxmfr-3UwWdt4ssu;`aZyGz zSmKarA?y#E-vP*lB-p4bp~9L%LzFt5 zHfJ=H(^W!i$gg21VK~PE`y=`1x`!B)c;~#p{}eL_g8>o*`HM-1==UQt$z3SKB6B_R zAmoBH9Bq~!4DbPx;7kGQ3Js0l?F_TmSE=4z31pP)|>Jo;3uKw%}XRV*P* zikLjR;?oN%s7ayDN`FzZ#1>lVOJLwmT^c_TKCy+SQYOC~mhut$AkZVzX^sN#3n2@A zrN$9!XlE?cIJB(~8BzFr8Db_4RnfK-_&m`}8af%KP&y~OR_T18Jv{X8X07<)LW*=6 zP_tHShZvcwb}$?Xp!R`o2}T)gxO_2bK@GJQ{R2=-rPV7S=F+lS`4iY)S+T5kp{_M8 zN*=mo30EbD9Sz{qCE-vwiH8cMr;$&TSYo@vehgS4wjhNT+TtUjF`SPbjuzyU*0)DW zPg!m!WWd)&Z-hxdc&4!EMm`1bGNBr#BqZUcm(C+Pw02S?mkfjMOK6t}XhM4cSVuMp zMzad5nxTH8pr!T4v|T)svlEf zt|s8^0`NU9k1FRDO0w~=(2B@~ru!UX z3=VfFN0^Ephj3~l)xeu|!N%~oVJB=O~NGTeIRL;dmq9vu_maH=E3|+7(dy=|l+Glay7+#n<`AAgYRa^>U z4Sm$s={sR>_9Q%d&=3v$jPV0{*^0V5_=wImV83NAjkQ$y=m~gS0Ih?`KrX=sMOL*w z*p^kY9&jkZ1@G`EE25L}(RuN{fh|Gzfa0Vu8A|i>nXfkD5h(QZo5vry@wL2tq_u zFin$ToXk%!n3;N+0ewniHHoHpngmni^GGTrNv@ZuQE8|u$xA0!G!gd5e2R=gLgklz zpsN)W+T8S{SeKQ6r{u6I&gT(+y!$&_>MHc(co;1|CRt0tT#JA|3w~{G8dJx?MwyR= z!phYM9(Od?;xRIJTd`uoO!}>+xMH=^tDmFdju==no4&_X;aHMPjp^qoJvkm6VGk^q zA63OuDp<2f1XM3CBPHJJg2`@y9RY&DxPE#No0+`mv}BfI!MvHYXuSZED8qeStqovB=Vh=QhXF%plA`S>;6w{?x~aCJ zBp(IEdBFJf|CDXfNm z34&aBH8nYAQ_IUi1g}sX$pw=pwU6!|lGIgYMU@;P=qI(B zI&v_?VQ;LhtdbQcp9v40{Box3Zf|a=Mw?|R%^IBq^&ja*b`AD+wbkIsMQLmVIUkJs z9&l=WPw|1+3oy+z^4l{^Lu7OP3fHbnnxoIm;PA+IB^+JZ12iD+)3i*0=>u&WjvqNR zLsMdN{aI$LGB|cbh+L5d3@ym)d1S_PuxMzLBri#l(@X7mXs%zAyH5EX#P2TowYAoR z>lVBonm!zC<4*%^C&m{CAgBxuFWl>KptsVz1#T+Vl3>pRR~6d*g<~ZF1lU~MLnR}& zA23>6cAR!CIbnQ~9bpq$EZCeq<5jzrEiyS_5=-@#QG(#o` zw_8V2L?VxAiO?+MBr3FN*AjF=^J#|G1#I^PfbpY?}M?)9$1?UTSLx4sC9;~K^wDYgnED4 zG=w`dYFVrghi0;+#o27O zn5{3jwNr;f8w4h@jYwdYvVWY$D+7H<(caq9+}J=Rj8(H$?Wi$pUsCFq7VbY_$Dv;s zTB%GZD-~_bQb%JJQg)T@yuV~@ ziVJeHGtyF$6XWBcHgUTx7c601FS)5WiBE|9s%<##0DcT>{Q#|1V4|M{vlXk`cqu(4 z5tc62PUCsZZ7@>t;BmY0EG%X+VO=A(Ev?4WH5H|>w_!kx+hu{IbP45Ggw1MbDpPM< z=xl33wMvWfb5JXo=7S~8&QB74jBIlv~smVzRFatt##CKR$g83clk*NamQhx-?CCqGt zechdH5O|I5C?tgBkW%ZMEF?GGrpNUD6V=pIJ3(o6NDahYw2$hL;h_wl^7C@CGhouh zPD@Hmv=SUpY@3N@(s!uqqOvO|uK=$X%&R8$jqKS)Bdm_LmL^(Gg~nHIPIhKSMtZs@ z&4iBbACV>(YWKpTlG5@>GcT38vz^Ido>j#W4b5OtVPQdmH{UGyc3}}lr|1QtSJZO= zOQwz39#kD=cfkOxxrr|k^q5tZl@%4qXrX<>zAu$Zh#_$5} z8XD~HgMk@J$2*H08XFqC^=89AH8v>)D&F3nUK+n~KI1fn#Cl4>j50igLksZMgQn1F zb$CI~H#`5Ss~ZG;P8GwuwB4LcTr$OB=AvmF<}EcL4Gj$r4h&fR&OS@b0seVt*j6*E zPl}#yX;~*zBxXKjpr=0Qw)e*Dv0!v?@8~|UI@mvTfL~adgzcm-^3#bA&M>(s-eX1a z{(@4xLxWD|N&E&pW`6_t2~a6fu1w+9!Pprn`o(7A8Z_?5PgvVNESG6lXd4zX=?M#j z1J_aKF-r&s=4=oI0w+FTmJ~%lO|YIk4GYOd6Bd)sIq$4PtR`vIv31%bpE~8yNqx?o zOP)m+Y%b}WX=^18&z(ow zW{6wmr=7_qO<4$0BS>_p@S8`Uq-lw5FA`SvJMc+=%r+;nP4y!mm-rtQ6B1Ab#26mj z3uP1nMTBUviv2$uVV8r~BQyrFephOJL?JVy(Ek&X4is;Ik!VVbdWKC=EU;i77GsiK zv~Cw;5^BoBu|##2@BdM2J5~AHOy_Mw6{U_xdAa@{)`6QN#v(!*qD8vWyoZd%sejAy z|0}3EwTO$Tpa=>72r;Sb4w-pS{gv(iK|xUo_y8eGl8^zqtrtH7Z9ZaV`5(vtai>6= zj?nTP>UY|O!w{RAe<zNDxi2Wx$72O5kZh!j@MbC^&|xOB%J3}82D8JMT)Yq1*7 zA+HW$Tw`F}(TXK{39SMNfMWu})P#>W_6A_>fk{_yZ0)x8T*aJ+?`uPqSll7d8aKzD z!3P8;kF{k5>43ixHvKea$bHxbk@E*goUUV!T!Gmy%_oW37UzIDiNKRrPGDV3>YX@U zN)acs3s-2OOU@v8hNaZIAm-^SSm_-ne;B$1XiVb7Vh)QGVF-&F1vX&}L@rE;bAX50JV<-FC#7^;qD+E(VpTIg3L6hkym8yAo3TD=@W&jE= zFzdEZg&8ly4{|6jEFXpdzyn}Lmm<(XkH6M@g-&Y^wNN5wC+gh4|C zl?VMciyvtn1~rKC_sq&P_^-eg2;PyyUZTO;kf4gj?p@>XE4{o1)`kSp;qtDDLnjs? z83qy5hQH?B6UsGpWRUh&9SRCNu#O1YvtN0;4hO-Z^x>0i(`y7-ERlJIV}*jkl|X|~ z)ot|>48N%xRSnhNj7fpsL40T14WhQ7e0#Ie0pcKgd`4VogTI1NqWxiO$KAkZjHjs$ zpzrIDtPw^nLtQ)jN%slEpuVVW8wmF&!{XD6Y?s>*t>h=l5^=CCZoe6JMdXdvPq0^H z&>&E0C(u>8HgHe}BA3)!x$IV>lY#WlO|RQ}+|6`ls9cx2(gSY6IG*JSj@QCrbW82zAVI8z_#}}7MWLRt~2mN{4X@mU? z*e-1^Dygf?)qWrFOaMig%40xD^S^|TCkf{$28gOR} z!AMuZ%8G;LN=n(wV6j698JzI=0gt%oWDSwIn1k5t6uRhCxr6Z_R!>zVw`k9u%Bn={ zR;Y!Ju~L;sPa^B^U#J)_RJAjlW-H8IyU!$z#ABwY2dutWo6s^}jF0H+Q|wvDtKbP7 zLYIkmF9tx7Q*HCH@Xuc%} ze?Won2tAP6N>=JX4n81O8<7{a`f%u)2v}a3*|1t9Vu*jxSSKIQ0!CGf1KD=BkRU!t zB{SPCf+lGs0HJ3ZN-=_Y0xO?*!R|TuN%(-^LoOlWf!RwMyD{_%A=Y+r`iWfw<$IFe zAo+xtG>5T}USM>mEqY>s@9QdPD_~jyF%h4i~-_*T_TV)z~FH4iB6>GHByq8 z?s(ze)b@%Y26`mHs7-)JJfDW^M=A`c8?Z%kdf@vsB9-{YAdv)qIoxutmT%~HYmu3ZZ zG-|UX1CPi6kq!e#Mm0?d3l39Jn9Mw+{J=O0eJL$d9#iFA)ubP>Wx{a6Vi3NeG5Ltm z5mPAXN;szukslOm_2>~)+YUzpan1sJsnR?MPc#_P7SK+F@B@o2h=(c1QR&vIzqZp9$?sV@=!RplZ*ti4xGcllq)l( z61kBUL+Dv}JW%L$w!o!LW-6r&CJsu%mqgQe(C2h_le!I)O}ImmcR}RcbkUQl$AN!h zoN%Wa>oURp#ikVhVl>$QMka?clb$8%1wd(o6<=|kUOvGtCgT#00QQE|yXa6~qW4hbqgf^{w-cLLn^W21yjG}#i$*u%#F2P`5K3wCiKAXH1xTTjl- zAyj$A)D;AG_t^1c2!&QzXqIi_;}He`hYn&7NX;xA70?61I8d7@QpBm?MUCl-VGoQ$ z#`cXMP&CCQAZo+K#O~cd83*c>&jM(CLH_RUvj&3L*&`;KkX=ajI?bgz+glpy$@E4G z!25>3L#rhKB)I|*fe^FFp09FClHORq|*af2IA~RKnp4&zzEz|5psW# zn2FP2nj5iuw(a>I@G1V98fOP4L>mchBYj{2D^CUbFMh3ne8UZuW!_Kd+XF8Id^zxy z0V!*r@>m4`z9^q55>Nvduo)uj*4j@o=TofikFrHW@PC>B76dt6b&=oAXd+Uhc;W`$n4 z%6O6 zrH;yU(N{y(aOTBG+J#lK@hn_yNd%+;#q+rq)PoP$B90yV!k$^^Ek)7OftRKG zX`BM%5g2@=i@_coLBgU1Xq@;bgeIM|ACc_Dct8P>3GgKFV`e9A8DV|W)&=&wF#pA1fOsW2 zPpQVkd^KUeSqwvvR+Sg*XlQpJjrD=jlm@dLWdut55=Md@02uem&_Jpc2Oi*0W;MVMMex*;?W*zcOc{0~N ziNdBGiiIXt6CrB~yOBaQlUC4&_cjZUFhPwCR8`SN9`XpD!%3AxP0&>#3ZUYyfjI_~ z4*E-yN@|&r@g{6IfTUvW5n{C|TAPML2lkGK>2>mi-tOrkX`3a8JOT8ny_Li9NywN* zQQ>$XmTnZDDDEtu005Qqt>D*P>_j4-03*b?UfNYVDRS&hrU7~g=Cg9buE=w*{zQ}e zR2sJ&S!FwZCoXH}WYH<=I#` zCrbOu0fSJ>fR2U~HmvBQq$`p_2#M;`uEK6~?2H^RCE zb%-E0PqyZUHZ3X?XbFxXoD$s&QI1gPHmw0e1wzp(5v?exz0N@kkDLUIVF$yLO8CSc zFYGfM^m&3US!Crx-dt>zh8PirLPJhZXmrF-yBeaefej6|fHf+Z>XxH3Vbu&z2-2r7 zMjZJW3f)!<6-r?MBC-`LFc1-+GUzL6jfm0FO$$R&3lyjHLs}T>kVW zv_nPtwU1|XQhBC4+h~23(tW|iNgatKT^AwB$b*u?hhBz4*$M!gjiUY2p;~DAOjVb1 zj-&IHV^}$Uc&3togdDHx#7^LHp-^#c14lz5GaVYrmt7R^st`vy$XC5JbZUuKgxu>O zU*ekT2vj>%xy(@~p~gCNsN{P>YujOE1DM7KKDNlTr+js%X>4tkW-^^u@4 z4jroVwaZDJI27VY6`?yz z;b|u_Td|d4pq(vrllqug9xJ6~&I7B|DXG|sCHSw<^^hEpMUg`_DS>L}K|QKZq*a09 z5$PbtBa!YzHv>bN>SJO(upUZOZj$uLvx4>NKylP02gXvltOD&!A#ILO2I@@JxwbOr z6agH!eJ@eia=NV!RNkK;6sdmEw#^n0kZt!kh|}b$owd+ULA?fz3DtHEC<|zO(%L5{ zfl^r@fm9aI)PqV19$_khaEm5}9@J4$$0LDMaEUT&>If8yDo~fy2KAWMnbl&yrAng8 z4H^h$DuJSwfNhE#PKrz=Fm&GM0hK8OFS8`7*PwG#>XRDyqPs$SA=tc#%8r^634{U! zmMY!5#%RQWOeK)jr#cO0AW~BXUZ#6CWd))$t!5}B#a!VMk5xsk)qXeY&s@WLLPx=`1) z5~qt^mVS+>Em%Yhy}r5Dy5$sDf?j+Q1gckam zii^UOTG`e$m%^W*YDA>2x`d(OMjTO%kWiY>;C&LaBvBGdXs9dHfLw#mL*yX#G?AL^ z5?}>rMY^)~qMDFhQOr;&jYsJ6 zgsCKHw^%|si@rV4xl&lrGx~nHOwZ z8B^C_uES55@V3cp7R*jT-Fyh2?!*qoVga7>#V$qMx>LDfu0J8jx-x`-%?MCHWlh7U zuvZaqofK^tG>j^H8CcUK@jy9xn-`6%7*WvP1hyjLa6XZb9}6djH3T8kZW|7yqQ+bY z4PR*7!o~*f*$032Rpf@n@wvFe4;f(~InYGnli-uZlmPfw?(($-2MUKZ4h>a^9C}J5 ze~|Y@j|}?|DIV!-wKWeTh)aIW28SUBaaSOt;&I>Wq}s|{|C!3cwlEp&p~X%yjEO*V zQ${Y-Fo;%iPW#=orLpAn08vutYN}?EHV3FvbZ)dQ zh%7}a%9g?t9IS1WL5}Vy$TDR4!?x1w$$+{~j<`_bR^~Fh+0ixSQjSxiu)!gbvB%IH zNJNX&VTsa^QS7>a2QN}*d!!&0B~q>e758?K-lrO*qS!|rKq@rdL0xdHLK##u30|B4 zSP<%6G4A2m0piWRVduIn#)zz}9J|2Ew&2(WRg-X(>nf`awjf#+B{a%T@?Zurnc~3= ztgO>1<%DA>6koyQa%ut$rnE_wQbEbf$JXd^j_!$wK}8h%n6D9zkpTA14uq01l!qOI zgI!L4$j>05(g}sJJ>GR58pl^}3%o8}AH(iFyiXWv7z5j5s53OAf8PT!lukmmg(pV7 zN^5O-K)3j6^1zg*WLnD8Di|XyQ#o8DVw6$iu)SZ@96}9EMBlzj?_+#WwW0^JSH}ns zcWrbhR)I>Fp$D0MX=v#p)5I|B3OQ6U3E1N>;??8vCR!wFHj@E=-2h;N^-II!JJd@f zRe==%CmU%_sInOEuY5T<-Z^Wk_czXEg`$LBaW$!_c~Pbt6~$bCBs?>6ZWT?BnoM3X z-$-S&Qp%n@Bc>#ofgw6fpL$}$dy(LAh9)*vhHM~_OZY25-{{VFApvW z&9Un9s0zYdfx}fW;m9N#ny2+g60ayags&on`Kw@;FSL8Nfs&bp^u(jO|%uCT&V;VaS!Aa?9k}4z6y%INUe7e)0V9b z55~Ev9~WKurWa~+r9gLC_(gp>k0{-O56Q17H9HS1WpEIxM<%0MJ-{y=%%P~^syiz$bR=0f}8rpmcUTKk_G?}0?6Eu;!+k9yV^dIU3SG&H6&`h#g z&`L2cB^4H*1f?grF#7NcIjxqAbUO0Lky7Av3ko7CQ>3>bm1I1jxWto!V$Z9#q(BRM z!AX`22sGV;BjTuEGE0F9S5a}a$1mzDL@udt9P70ve zQ(nK=mFr*#r1M-~<-VZZ=JiWK=}=5R$?WK(jFf-suGGNDfMQ!cf=Z9)f2c>?vSq?! zKAbCv;!|;XsC!dR9x}1XgR&1k35#(+YRJ2p^j#JjpId@DicdEtl<}60y*C^o z$3b1H{XFcCIF}+DyZH0aHp|f^Azu|#SED|#Z;GX=RXI$A^F?uhAvw$ATp%ouS!Gbs@8W4IBMqq5ymXMC(uge#${2 zpO^R_gHKI*&s68)DCUG_k63_i&ZB6XnxOa#w&@ma<{u}wL9rwb9U~_JMqsoTL(b*? zC*WQi?mNLTi8x$Ho`HO*9Dc&#p^#g|8cZJHBzCYz=$8}^lua4)qZQy&<7j=z)C@{@ zNl@c|8mAZ8Hf0Q@WnQiSiX8@dOH>*iMt;wT9uvVQ{@&eONw8m`$D$KDw0}=;D7IV%b3*c-a!)Fi5gjv92#s z8h}GPSlRYkRSO*^4X`U4YAA;2wnkA%5J;Q!@HWAPghVTet9p7+(nM3)m0&!pzG$gZ zVpoA2v{0By2SM&SP|prB=2Re+q%t`*Rph6}>P{E^uS_oGdC&spV94s>rDg}rLmV^` zN@@YmB@x{itw~fU)&HXKlZlL>tg5_9m>;0fPjrXg1lG!)2y?fo&92|n0P7`+y-j6Q zKm>Rjip}+j3I(nVWl7k~tN@D)jVnVvrBQ4Z7@?UVuFODN_n=UFt~T-+YS$p7UX##} zjzH8vc3j}-VT}Y9TgV~xl{HX-N{3^^=n^vm$=7;=Jfvs6w3b5aL?qPKi73SmY9OH^ znXoc#O@}JUgtcjTShQ`^l!!JVS3<)TQ`!U-N`YyOhGte=TgZ6sFVG2m_)7rM6sY zyt=T11%LwiQ;&?TB3?)-9d*NBNzg+mstnz@Qtxv7ejvX#4?E=MjgXO+-NIkXjK7wBm{`|mZ zy8&Ed%}%p}TgGv9JI(g|=XbGxLq2yv$Yf6J(5DWc>|4h7srF#=9}7P;ual0C(@lBhUF2WQ zlli*cR+C%v^pI{Ua=&lCJgfWUXYOe^-3(OD#%|RKaJFMxeL|00_1vga%ka^5Z69Pw zBg}FeG49gIV|&_GYgrMbKz74a&Dt$IBb!Mo6Dk_@$9%tyVzh7fc0LlhEC5q*#f*)_ zoj-|kl6lE0b<5GI5`(QkzE06=F-)3mYa`u~)#rJgy6k68UH)a_!0( zfsZ4g&X4mqj5P1_tsA?oPZ=X^(*F9?Nn#F6OXfafGxpjC$=s8BclXgiGXG@m-q-ET z^4tN+<@tmBKgD=VV-K*{G+TE`^{HILrFZzb)AWEs{mksffoWD$ zK=~ka4`XmHE*>92+8zb97k^^m^VogT{o@okHaDGRoK8TzzVX6;9LlZKp--7m=EIqT z#6n}z4h{sY$G;!NCEkO8sXAC!5x~R0>3D$PF|r+bPT;H3k-|@PoERfZLLOLDCRE|E z!+({By_k8KDLiT&LtJey{P^XddAYqjWUVlPFYya+MiVd#R+kuO(7M2t70Xa!ipiY^{GMp7w*7#owDj!s zL6}t&&SM*3&7jqC;#NCtw5EX4zOCQNmW(K{otv-M5Y%C4yOVGMW z;j$_i2kkK6R*DBux!)mD?`XwF%wnVA^%-yL4B|G%Tfi-NU53e{1)8X&yP8Jy6DI!D zcUja4gFpdUu~>g1_|b7_T{&-y2Fw$?X)+C()Vn#FP&h#?39QCgSpnP9(m~s5oJyvb z`K53URdV+q)Ll^xZP6S>D9{#bJ_%&-#EBHrR&rd#D@QE;(ATG>VliKi{)(}cVs6z8 zV`~L>g+ck9_ia7Ch*mcHbnV*JtLc^G zjpFMquNA>9HdC=^ut(=;rEs*;n<-GoR-DmS0gQxXHJ9E??-oHpmTtG*D&KC0j#UC4 zS-RJ7x8+Xb-Q|00s*MYc^WEH)>Z-Oaw9dD2{jz3ZvHUl6znqJuLn!H<6w68irMUhe z@R}gA(9%=A$H)8GEXBY^U3>)s+#PIR?8>}bR1ZxUbK8k`a~e5p9Im* znRJkm@L}3&4&oi~mXZ|XBWfiL-xv7L;dM?_fftCN(Q*YjA}#D{ZRgKqTD&NPG(pcfld%D*?G+#K5ABArJfYqt7KEM zIoXo*C1#)X?zTY|v1Nh*=`LQPbg|qE7?7D&{Q3UkKnmh68A>qhN?=AN7`-Qz_Z(cu zLgG#uhz<)rd5>kZFx&)Ry*x5fq;fKvj3tOf6Wqp^vYbQ*Wi0IM z&DQOWt3^O}>AocF%~HNi$;`vq!?px#$}HA=DO}dXFcSw2h}n&s)6*%w_bCw06l1_d zUn&Tm?}^|kOE=bpGaCzODJ^EpX+e3r9k~n+rHdprEYpI#iCAiQ=IKmob7}zl^I?N=QO#V+z@#VBHf!JzljEy zSiK_kiuf<4)Ju&}$2ZM5bjcmQeMXI2UeM=72zJHm#T&(&#aqSOr8oKR-7Okrj_>1* z644UT(w*|%hI{2X@#sp`a{S#m*D~Ks5~}fD!(8+H8geMj^Q}C>+On|Nu&3_(D5|yl z!J{lBC5m1$S2g0a7zx;o;qW*m?IriDb<5ct;4SqU7LLdWYqgWN!bKiW#oW7oS}s?y zyzY6s8@(rF`?g5{iB8$84OE>JI>z)WU;Uz8Bs7m4YEibI4QTP2~E96vZN#mm@5MRbU z{p^;0X`vHAsZ1WRAM5UAbL4q>XqLJtF#Z02z~CAdmdO}-!?=b?Cd$Sm*F;e&-!RoS zbe#2;-A$6no5ojC&Se;+jqhQ&y*30p)wV=IiHvBo4TN;C>WF;M5Op80eJ3rb`9ztP zkNm+ZQa}$Gw#H_8R+_Pzwox+MV=iv3sV<3W5tS`J+a}9hPwQdUhEdwH>UUJ%shB9Y zM#hV0r>J`2?pD_yxgLDCV&-ykquYoT=TMl-g-X~g<5qmK)>a=@bjn!20b<|45DH;y z`p7YMkT8Iz%=K**f$zNvr;J`?>Z&P^yD2rxh_m18s(!8dy$V)%;svUn?Elo{IWY)9 z8hTzyYEcM;6?yHAPIxUDpuWU`X;i_LYJf>9|0JHFK?+%=H^n+@6wjNg|6JJ%ZgBPp z2t^|(S~GSeNP4L>*pDjM7#?FK_%|Ackrq6ARyWtZ&eqIf4P78%=B}7v6lU;rLa85 zBQVeH#aeV%d3i}p$lEm|vI~PaWg0Dcr}3y%e^&eFSoJeLN|{y_7bdEoF?cY$L60sI zDKG57sjh?}U1{L}7qpAXuUFeEW6$xmnEc6C-uhzkt^Mt1#-8JgUVr7S)9XU}+}Lw` z(d)0gbsd5=xxXyUnCA|W8G1%iY1W9EaMP7n(nw{|@Td=9Lxn(H91k!iCOkoIaP_$T#qOrpZXP(5sxKg)LW0{@nT%L3L|Il4e0mpDPy?in87;E3KqDscvOJn@B*{ z=Bgb-)@V^>sPbMZ*_tQ7l_InKwYD`9;8}`{WT_IkUNe*5v3_O96eIgn6cKzB#O7K=$d$big}Y^3K|%oB@bU+H5! zcwkAyv&RmO4{oH73X*=kcZV$R>7)BA0~MP!0E1Efvd75@NJ#0pC*HK*} zb$jdTt1lfpI5ya`8fl(Ftm2J}r;qI0wY96Q9HBRFyiQ}2JLyTf6|Ef$D!+T~_|*8& z#?Hom52>xQFC3`!Z)h)jNNrs>b$IXamUXLe7t?}smhhe4y}g$W=tm6bZC#=hqXXUT zC>$+x_tq74Vx*4+Jv4VmotW9ZW7C=@Ziuy2A1jqh9}bOe>+V2?*{Y`0hcid_@7lV) zwd5i7;gwU?`DWyvt<}fYhnG)GjccO^(N0DetnXcIB@c0s&;|9KjgAmqIRB#cU5eBe zTkuWBA^JY#A@2iyU*B5vkdMRcB)hU1;cT-nc;huXF)_4pb>sF3-M;4IzyNy4I&nth zKwI0*3+-{;1}UaPfKm0vIvZi$G-aElU8~XAVIf*$4>3CZ?AjgX$!4ux&}M3+6|>gZ z&XY6V-8>d+(0<$TKPGx3g_mVvB88{ypfXdLbnK>bWO;VbfTB+&4Lzf#6eB4SB{{6N z@+$qPkaG2yg+Fx35}sMoO)3$Xr!+B3n?;@Hk|mE?zIY!9)kyDH^m95qkA`y563*n7 zX_q9fZwbk1by;hBR=PHlxLJqEI(i>G4NP{?ldX}?w5T$aA^vhLprYbWhEUSctWV{k zZFD?2Z3ArGa(SRA*KveRC=w6-5Q_%rvDY1~b`M^hpXa4T@{YWWD9$ zQ76G#O$N&JdlIi|uej>W_uvbsLyBoZ`s70r`^2SeCNh=wHjb8D_GS+)NDQZg)}rc^ z?I|R&mK;`8Bc(l+4~mp`jt>PNn;k0_G&x=jibl$VNGokeMXx;Qn9_VdSx|apIk07Y z3OV3v7ZkfpH>86`c9nQHz`iCZWTb_Fb$qFGzEUI#sA`~FdaATy1Z9C|=v9s>Hs5M8 z{F}Dda8f;p%UuR@)sD6x&T?CJPOd1Y6?{}`1qHijMtf8T)KK9o#H@*PsvQvC6(983@*69o++!{cwE!ptl&tdV<`7!o8tAsn}A(>Yi;7a|7Gk zuTbOa9w53Iqt`>78;8aZ9ee3j;|}-pZ0aM1uy<%;>bN$7Js7byz1t_IPMmY@t;d?z zZrZVX+E}=(G>dKCF*)-h%v_C>$6D5I-nqv(x*n^|$MU}J{?nKJ+b?exJGcz7O9tNU z_h~rq>v)JfyYMNUgLM^KED2Iprx*XvXT zCBtGoGsKBxb`KAWttw_Qo>}5qE1TA&5!3YN9OputnRraAr6)`(#F(ud^4U+s zG#O(?#B*<)`gWQ}sXc3Tk<&R($N_;>km;e$n-`gktpxp4#}jf99HwFxV?M=vWObur z{`8X`uhTPkD=ljCo)Kiu$AfrJ)y#sLw?&6IX=k&;r-Sy$9?$XRHCd6K2xA)G!a!zS z(zA`sIQ8sUT~N>L>G`~xpq@`jusGQ!sdqW_xVL+?j#%_VYn4efWsjxINfR^fR4=+6zuK zXu8<&g7a-+?%te{Y;&A%e-C})azGRlBk*2xvuSX(0^=6@nACz(&9SqXObpAnqJhf~ z`$Rlnp^4qRd5gHX`lJS?YX;6E;?Xu0H#6VP!Lksr-F=uoG;ql!V=u8@1D^_4H6z^i zGI6h2OoZEvnX8X5ZPsE8kQ^^WUEK|{MQB;+U;S)h!zbvtel%eSdQlLYkX?LbaT{l?`BqO zVpVjAU0i3m6Qdb5f_yzD{jY!Akgn&FFq{}^8w zxRwi7b5c~tWgIP`vk5Yh+lo5bSwDGiT|~r&nk{Wau!fR_|B=QZJrha|xtiHOAVCum zwRhm_g`Z0u0-TLJq+{c-(=7a_Nk*hIL73+65xpG3BOMim0qqb`;A5VYObB9hyyNK9 zr2WWgd8fw;k5EKNl!4sAEJkb3fNjXyTGnnE-ovS%Q@Usr3awh#H?sGzX#GqiEL2>z ze(NqK0~d^UZ=q6a*VbM8Iqz#$>9tC2UHz2<;PmZ;Zneto8wN%X9(&2p=N@9hFm{Mj zyfNM_#C&0JeCmYA_MEvb)X3yuVmdpS50G_Wa0x8hU1!9RwBUgcna7MLUD*QOq@?;^lA8t~dKTONE5;T-v z?X#Nl0x`s(IfmCv06Q)s>#m-I~UWD>QP(WFu+P<+pftesZldI z+GzC=4$BBf-Tj$LW7S7^&!9fdz1+vDOM4NDI!BPK4cV6^)6W6#V?cckCi}LrQ{DUa}Fv@R6`A1Ryag=`= z<)20Q=TZJelz$!N+fm++@;gz!6XnAwzZc~{M)|`ie;nmcqx>Msr6@m%^3y1vc=;fW zvLVWrDBGi46J=MFJyCA9lK+?&Jo7bKXj%UM{9;^|zs%Syw*OUOF_~Sq@(afFi`x6Y W7Uv7jk&*x0yu}}S>ECR;3jYlZHu<6e literal 0 HcmV?d00001 diff --git a/MIM-104D/Models/mim104D-2.xcf b/MIM-104D/Models/mim104D-2.xcf new file mode 100644 index 0000000000000000000000000000000000000000..64196d3515a08e28cda6982555e741e65f36be19 GIT binary patch literal 133034 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 P{<7=*f3fa=^5pzahloUz literal 0 HcmV?d00001 diff --git a/depot/Dialogs/menu.xml b/depot/Dialogs/menu.xml deleted file mode 100644 index a34d397..0000000 --- a/depot/Dialogs/menu.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - true - - - - - dialog-show - control-panel - - - - - - - diff --git a/depot/Dialogs/type.xml b/depot/Dialogs/type.xml deleted file mode 100644 index 7659853..0000000 --- a/depot/Dialogs/type.xml +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - type - vbox - 250 - false - - - hbox - - true - - - - true - - - - - - - - vbox - 6 - - true - - - - - - - - - - - - - diff --git a/depot/Nasal/damage.nas b/depot/Nasal/damage.nas index 44b753a..81e859c 100644 --- a/depot/Nasal/damage.nas +++ b/depot/Nasal/damage.nas @@ -27,8 +27,6 @@ var mlw_max=getprop("payload/d-config/mlw_max"); # var auto_flare_caller = getprop("payload/d-config/auto_flare_caller"); # If damage.nas should detect flare releases, or if function is called from somewhere in aircraft ############################################################################################################################ -var TRUE = 1; -var FALSE = 0; var hp = hp_max; setprop("sam/damage", math.max(0,100*hp/hp_max));#used in HUD @@ -164,7 +162,9 @@ var warheads = { "pilot": [93, 0.00,1,0],# ejected pilot "BETAB-500ShP": [94, 1160.00,1,0], "Flare": [95, 0.00,0,0], - "3M9": [96, 125.00,0,0],# 3M9 Missile used with 2K12/SA-6 + "3M9": [96, 125.00,0,0],# 3M9M3 Missile used with 2K12/SA-6 + "5V28V": [97, 478.00,0,0],# Missile used with S-200D/SA-5 + "AIM-9X": [98, 20.80,0,0], }; var AIR_RADAR = "air"; @@ -189,7 +189,8 @@ var radar_signatures = { "E-8R": AIR_RADAR, "EC-137D": AIR_RADAR, "Mig-28": AIR_RADAR, - "SA-6": AIR_RADAR,#Air radar tone chosen so that there is at least some lock tone until asset-specific is created + "SA-6": "gnd-06",#Air radar tone chosen so that there is at least some lock tone until asset-specific is created + "s-200": "gnd-05", "ZSU-23-4M": "gnd-23", "S-75": "gnd-02", "buk-m2": "gnd-11", @@ -203,7 +204,7 @@ var radar_signatures = { var id2warhead = []; var launched = {};# callsign: elapsed-sec var approached = {};# callsign: uniqueID -var heavy_smoke = [61,62,63,65,92,96]; +var heavy_smoke = [61,62,63,65,92,96,97]; var k = keys(warheads); @@ -241,6 +242,10 @@ for(var myid = 0;myid 450) { - printf("Missile Approach Warning from %03d degrees.", bearing); - damageLog.push(sprintf("Missile Approach Warning from %03d degrees from %s.", bearing, notification.Callsign)); - if (rwr_to_screen) screen.log.write(sprintf("Missile Approach Warning from %03d degrees.", bearing), 1,1,0);# temporary till someone models a RWR in RIO seat + if (radarOn) { + #printf("Missile Approach Warning from %03d degrees.", bearing); + damageLog.push(sprintf("Missile Approach Warning from %03d degrees from %s.", bearing, notification.Callsign)); + if (rwr_to_screen) screen.log.write(sprintf("Missile Approach Warning from %03d degrees.", bearing), 1,0.5,0);# temporary till someone models a RWR in RIO seat + } else { + #printf("Missile Approach Warning"); + damageLog.push(sprintf("Missile Approach Warning from %s.", notification.Callsign)); + if (rwr_to_screen) screen.log.write(sprintf("Missile Approach Warning (semi-active)."), 1,0.5,0);# temporary till someone models a RWR in RIO seat + } approached[notification.Callsign~notification.UniqueIdentity] = elapsed; - if (m28_auto) mig28.engagedBy(notification.Callsign); + if (m28_auto) mig28.engagedBy(notification.Callsign, 1); } return emesary.Transmitter.ReceiptStatus_OK; } @@ -415,7 +433,7 @@ var DamageRecipient = # debug.dump(notification); # # - if (tacview_supported and tacview.starttime and getprop("sim/multiplay/txhost") != "mpserver.opredflag.com") { + if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and notification.SecondaryKind > 20) { # its a warhead @@ -439,9 +457,10 @@ var DamageRecipient = var callsign = processCallsign(getprop("sim/multiplay/callsign")); if (notification.RemoteCallsign == callsign and getprop("payload/armament/msg") == 1) { #damage enabled and were getting hit - if (m28_auto) mig28.engagedBy(notification.Callsign); + if (notification.SecondaryKind < 0 and hitable_by_cannon) { # cannon hit + if (m28_auto) mig28.engagedBy(notification.Callsign, 0); var probability = id2shell[-1*notification.SecondaryKind-1][1]; var typ = id2shell[-1*notification.SecondaryKind-1][2]; var hit_count = notification.Distance; @@ -457,6 +476,7 @@ var DamageRecipient = } } elsif (notification.SecondaryKind > 20) { # its a warhead + if (m28_auto) mig28.engagedBy(notification.Callsign, 1); var dist = notification.Distance; var wh = id2warhead[notification.SecondaryKind - 21]; var type = wh[4];#test code @@ -549,21 +569,18 @@ var DamageRecipient = } if (notification.Kind == CREATE and getprop("payload/armament/enable-craters") == 1 and statics["obj_"~notification.UniqueIdentity] == nil) { if (notification.SecondaryKind == 0) {# TODO: make a hash with all the models - var crater_model = getprop("payload/armament/models") ~ "crater_small.xml"; - var static = geo.put_model(crater_model, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); + var static = geo.put_model(crater_model0, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); if (static != nil) { statics["obj_"~notification.UniqueIdentity] = [static, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading, notification.SecondaryKind]; #static is a PropertyNode inside /models } } elsif (notification.SecondaryKind == 1) { - var crater_model = getprop("payload/armament/models") ~ "crater_big.xml"; - var static = geo.put_model(crater_model, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); + var static = geo.put_model(crater_model1, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); if (static != nil) { statics["obj_"~notification.UniqueIdentity] = [static, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading, notification.SecondaryKind]; } } elsif (notification.SecondaryKind == 2) { - var crater_model = getprop("payload/armament/models") ~ "bomb_hit_smoke.xml"; - var static = geo.put_model(crater_model, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); + var static = geo.put_model(crater_model2, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); if (static != nil) { statics["obj_"~notification.UniqueIdentity] = [static, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading, notification.SecondaryKind]; } @@ -863,6 +880,7 @@ var flare_update_time = 0.4; var flare_duration = 8; var flare_terminal_speed = 50;#m/s var flares_max_process_per_loop = 4; +var flare_sequencer = -120; var flare_sorter = func(a, b) { if(a[0] < b[0]){ @@ -945,7 +963,9 @@ var flare_released = func { getprop("orientation/heading-deg"), FT2M*getprop("velocities/speed-down-fps"), FT2M*math.sqrt(getprop("velocities/speed-north-fps")*getprop("velocities/speed-north-fps")+getprop("velocities/speed-east-fps")*getprop("velocities/speed-east-fps")), - int(rand()*240)-120]; + flare_sequencer]; + flare_sequencer += 1; + if (flare_sequencer > 120) flare_sequencer = -120; append(flare_list, flare); var msg = notifications.ObjectInFlightNotification.new("ffly", flare[6], MOVE, 21+95); msg.Flags = 0; @@ -1233,7 +1253,7 @@ var processCallsigns = func () { var painted = 0; var paint_list = []; foreach (var player; players) { - if(player.getChild("valid") != nil and player.getChild("valid").getValue() == TRUE and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { + if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); @@ -1247,6 +1267,7 @@ var processCallsigns = func () { } if (getprop("sim/time/elapsed-sec")-MAW_elapsed > 1.1) { setprop("payload/armament/MAW-active", 0);# resets every 1.1 seconds without warning + setprop("payload/armament/MAW-semiactive", 0); } # spike handling: @@ -1293,16 +1314,16 @@ processCallsignsTimer.start(); var code_ct = func () { #ANTIC if (getprop("payload/armament/msg")) { - setprop("sim/rendering/redout/enabled", TRUE); + setprop("sim/rendering/redout/enabled", 1); #call(func{fgcommand('dialog-close', multiplayer.dialog.dialog.prop())},nil,var err= []);# props.Node.new({"dialog-name": "location-in-air"})); - call(func{multiplayer.dialog.del();},nil,var err= []); + if (!m28_auto) call(func{multiplayer.dialog.del();},nil,var err= []); if (!getprop("gear/gear[0]/wow")) { call(func{fgcommand('dialog-close', props.Node.new({"dialog-name": "WeightAndFuel"}))},nil,var err2 = []); call(func{fgcommand('dialog-close', props.Node.new({"dialog-name": "system-failures"}))},nil,var err2 = []); call(func{fgcommand('dialog-close', props.Node.new({"dialog-name": "instrument-failures"}))},nil,var err2 = []); } setprop("sim/freeze/fuel",0); - setprop("/sim/speed-up", 1); + if (!m28_auto) setprop("/sim/speed-up", 1); setprop("/gui/map/draw-traffic", 0); setprop("/sim/marker-pins/traffic", 0); setprop("/sim/gui/dialogs/map-canvas/draw-TFC", 0); @@ -1317,7 +1338,7 @@ code_ctTimer.simulatedTime = 1; -setprop("/sim/failure-manager/display-on-screen", FALSE); +setprop("/sim/failure-manager/display-on-screen", 0); code_ctTimer.start(); @@ -1337,6 +1358,22 @@ var re_init = func (node) { } stopLaunch(); damageLog.push("Aircraft was repaired due to re-init."); + + # Remove all 3D craters and re-place them. Due to re-init can remove some of them. + + foreach (var thekey ; keys(statics)) { + var sta = statics[thekey]; + if (sta[0] != nil) { + sta[0].remove(); + if (sta[5] == 0) {# TODO: make a hash with all the models + sta[0] = geo.put_model(crater_model0, sta[1], sta[2], sta[3], sta[4]); + } elsif (sta[5] == 1) { + sta[0] = geo.put_model(crater_model1, sta[1], sta[2], sta[3], sta[4]); + } elsif (sta[5] == 2) { + sta[0] = geo.put_model(crater_model2, sta[1], sta[2], sta[3], sta[4]); + } + } + } } #================================================================== @@ -1405,6 +1442,7 @@ setlistener("sim/signals/exit", writeDamageLog, 0, 0); #screen.property_display.add("payload/armament/MAW-bearing"); #screen.property_display.add("payload/armament/MAW-active"); +#screen.property_display.add("payload/armament/MAW-semiactive"); #screen.property_display.add("payload/armament/MLW-bearing"); #screen.property_display.add("payload/armament/MLW-count"); #screen.property_display.add("payload/armament/MLW-launcher"); @@ -1412,6 +1450,8 @@ setlistener("sim/signals/exit", writeDamageLog, 0, 0); #screen.property_display.add("payload/armament/spike-air"); #screen.property_display.add("payload/armament/spike-gnd-20"); #screen.property_display.add("payload/armament/spike-gnd-02"); +#screen.property_display.add("payload/armament/spike-gnd-05"); +#screen.property_display.add("payload/armament/spike-gnd-06"); #screen.property_display.add("payload/armament/spike-gnd-11"); #screen.property_display.add("payload/armament/spike-gnd-23"); #screen.property_display.add("payload/armament/spike-gnd-p2"); diff --git a/depot/Nasal/fdm.nas b/depot/Nasal/fdm.nas index 40df393..5815e41 100644 --- a/depot/Nasal/fdm.nas +++ b/depot/Nasal/fdm.nas @@ -14,7 +14,7 @@ # along with this program. If not, see . #io.include("Aircraft/ExpansionPack/Nasal/init.nas"); - +srand();# seed the random generator with systime #with("updateloop"); # Number of iterations per second diff --git a/depot/Systems/fbw.xml b/depot/Systems/fbw.xml deleted file mode 100644 index 107c064..0000000 --- a/depot/Systems/fbw.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - FBW Throttle - gain - 80.0 - - /controls/engines/engine[0]/throttle - - - /carrier/fbw/target/groundspeed-kt - - - - - FBW Rudder - gain - 8.0 - - /controls/flight/rudder - - - /surface-positions/rudder-pos-norm - - - - diff --git a/depot/Systems/fdm.xml b/depot/Systems/fdm.xml deleted file mode 100644 index 7a847c8..0000000 --- a/depot/Systems/fdm.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - FDM Groundspeed - noise-spike - - /carrier/fbw/target/groundspeed-kt - - - /velocities/groundspeed-kt - - - - 7 - - - - - FDM True Heading For Flags - gain - - /orientation/heading-deg - - - /orientation/true-heading-deg - - - - - - - - - - diff --git a/gci-radar/Nasal/damage.nas b/gci-radar/Nasal/damage.nas index 44b753a..81e859c 100644 --- a/gci-radar/Nasal/damage.nas +++ b/gci-radar/Nasal/damage.nas @@ -27,8 +27,6 @@ var mlw_max=getprop("payload/d-config/mlw_max"); # var auto_flare_caller = getprop("payload/d-config/auto_flare_caller"); # If damage.nas should detect flare releases, or if function is called from somewhere in aircraft ############################################################################################################################ -var TRUE = 1; -var FALSE = 0; var hp = hp_max; setprop("sam/damage", math.max(0,100*hp/hp_max));#used in HUD @@ -164,7 +162,9 @@ var warheads = { "pilot": [93, 0.00,1,0],# ejected pilot "BETAB-500ShP": [94, 1160.00,1,0], "Flare": [95, 0.00,0,0], - "3M9": [96, 125.00,0,0],# 3M9 Missile used with 2K12/SA-6 + "3M9": [96, 125.00,0,0],# 3M9M3 Missile used with 2K12/SA-6 + "5V28V": [97, 478.00,0,0],# Missile used with S-200D/SA-5 + "AIM-9X": [98, 20.80,0,0], }; var AIR_RADAR = "air"; @@ -189,7 +189,8 @@ var radar_signatures = { "E-8R": AIR_RADAR, "EC-137D": AIR_RADAR, "Mig-28": AIR_RADAR, - "SA-6": AIR_RADAR,#Air radar tone chosen so that there is at least some lock tone until asset-specific is created + "SA-6": "gnd-06",#Air radar tone chosen so that there is at least some lock tone until asset-specific is created + "s-200": "gnd-05", "ZSU-23-4M": "gnd-23", "S-75": "gnd-02", "buk-m2": "gnd-11", @@ -203,7 +204,7 @@ var radar_signatures = { var id2warhead = []; var launched = {};# callsign: elapsed-sec var approached = {};# callsign: uniqueID -var heavy_smoke = [61,62,63,65,92,96]; +var heavy_smoke = [61,62,63,65,92,96,97]; var k = keys(warheads); @@ -241,6 +242,10 @@ for(var myid = 0;myid 450) { - printf("Missile Approach Warning from %03d degrees.", bearing); - damageLog.push(sprintf("Missile Approach Warning from %03d degrees from %s.", bearing, notification.Callsign)); - if (rwr_to_screen) screen.log.write(sprintf("Missile Approach Warning from %03d degrees.", bearing), 1,1,0);# temporary till someone models a RWR in RIO seat + if (radarOn) { + #printf("Missile Approach Warning from %03d degrees.", bearing); + damageLog.push(sprintf("Missile Approach Warning from %03d degrees from %s.", bearing, notification.Callsign)); + if (rwr_to_screen) screen.log.write(sprintf("Missile Approach Warning from %03d degrees.", bearing), 1,0.5,0);# temporary till someone models a RWR in RIO seat + } else { + #printf("Missile Approach Warning"); + damageLog.push(sprintf("Missile Approach Warning from %s.", notification.Callsign)); + if (rwr_to_screen) screen.log.write(sprintf("Missile Approach Warning (semi-active)."), 1,0.5,0);# temporary till someone models a RWR in RIO seat + } approached[notification.Callsign~notification.UniqueIdentity] = elapsed; - if (m28_auto) mig28.engagedBy(notification.Callsign); + if (m28_auto) mig28.engagedBy(notification.Callsign, 1); } return emesary.Transmitter.ReceiptStatus_OK; } @@ -415,7 +433,7 @@ var DamageRecipient = # debug.dump(notification); # # - if (tacview_supported and tacview.starttime and getprop("sim/multiplay/txhost") != "mpserver.opredflag.com") { + if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and notification.SecondaryKind > 20) { # its a warhead @@ -439,9 +457,10 @@ var DamageRecipient = var callsign = processCallsign(getprop("sim/multiplay/callsign")); if (notification.RemoteCallsign == callsign and getprop("payload/armament/msg") == 1) { #damage enabled and were getting hit - if (m28_auto) mig28.engagedBy(notification.Callsign); + if (notification.SecondaryKind < 0 and hitable_by_cannon) { # cannon hit + if (m28_auto) mig28.engagedBy(notification.Callsign, 0); var probability = id2shell[-1*notification.SecondaryKind-1][1]; var typ = id2shell[-1*notification.SecondaryKind-1][2]; var hit_count = notification.Distance; @@ -457,6 +476,7 @@ var DamageRecipient = } } elsif (notification.SecondaryKind > 20) { # its a warhead + if (m28_auto) mig28.engagedBy(notification.Callsign, 1); var dist = notification.Distance; var wh = id2warhead[notification.SecondaryKind - 21]; var type = wh[4];#test code @@ -549,21 +569,18 @@ var DamageRecipient = } if (notification.Kind == CREATE and getprop("payload/armament/enable-craters") == 1 and statics["obj_"~notification.UniqueIdentity] == nil) { if (notification.SecondaryKind == 0) {# TODO: make a hash with all the models - var crater_model = getprop("payload/armament/models") ~ "crater_small.xml"; - var static = geo.put_model(crater_model, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); + var static = geo.put_model(crater_model0, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); if (static != nil) { statics["obj_"~notification.UniqueIdentity] = [static, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading, notification.SecondaryKind]; #static is a PropertyNode inside /models } } elsif (notification.SecondaryKind == 1) { - var crater_model = getprop("payload/armament/models") ~ "crater_big.xml"; - var static = geo.put_model(crater_model, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); + var static = geo.put_model(crater_model1, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); if (static != nil) { statics["obj_"~notification.UniqueIdentity] = [static, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading, notification.SecondaryKind]; } } elsif (notification.SecondaryKind == 2) { - var crater_model = getprop("payload/armament/models") ~ "bomb_hit_smoke.xml"; - var static = geo.put_model(crater_model, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); + var static = geo.put_model(crater_model2, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); if (static != nil) { statics["obj_"~notification.UniqueIdentity] = [static, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading, notification.SecondaryKind]; } @@ -863,6 +880,7 @@ var flare_update_time = 0.4; var flare_duration = 8; var flare_terminal_speed = 50;#m/s var flares_max_process_per_loop = 4; +var flare_sequencer = -120; var flare_sorter = func(a, b) { if(a[0] < b[0]){ @@ -945,7 +963,9 @@ var flare_released = func { getprop("orientation/heading-deg"), FT2M*getprop("velocities/speed-down-fps"), FT2M*math.sqrt(getprop("velocities/speed-north-fps")*getprop("velocities/speed-north-fps")+getprop("velocities/speed-east-fps")*getprop("velocities/speed-east-fps")), - int(rand()*240)-120]; + flare_sequencer]; + flare_sequencer += 1; + if (flare_sequencer > 120) flare_sequencer = -120; append(flare_list, flare); var msg = notifications.ObjectInFlightNotification.new("ffly", flare[6], MOVE, 21+95); msg.Flags = 0; @@ -1233,7 +1253,7 @@ var processCallsigns = func () { var painted = 0; var paint_list = []; foreach (var player; players) { - if(player.getChild("valid") != nil and player.getChild("valid").getValue() == TRUE and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { + if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); @@ -1247,6 +1267,7 @@ var processCallsigns = func () { } if (getprop("sim/time/elapsed-sec")-MAW_elapsed > 1.1) { setprop("payload/armament/MAW-active", 0);# resets every 1.1 seconds without warning + setprop("payload/armament/MAW-semiactive", 0); } # spike handling: @@ -1293,16 +1314,16 @@ processCallsignsTimer.start(); var code_ct = func () { #ANTIC if (getprop("payload/armament/msg")) { - setprop("sim/rendering/redout/enabled", TRUE); + setprop("sim/rendering/redout/enabled", 1); #call(func{fgcommand('dialog-close', multiplayer.dialog.dialog.prop())},nil,var err= []);# props.Node.new({"dialog-name": "location-in-air"})); - call(func{multiplayer.dialog.del();},nil,var err= []); + if (!m28_auto) call(func{multiplayer.dialog.del();},nil,var err= []); if (!getprop("gear/gear[0]/wow")) { call(func{fgcommand('dialog-close', props.Node.new({"dialog-name": "WeightAndFuel"}))},nil,var err2 = []); call(func{fgcommand('dialog-close', props.Node.new({"dialog-name": "system-failures"}))},nil,var err2 = []); call(func{fgcommand('dialog-close', props.Node.new({"dialog-name": "instrument-failures"}))},nil,var err2 = []); } setprop("sim/freeze/fuel",0); - setprop("/sim/speed-up", 1); + if (!m28_auto) setprop("/sim/speed-up", 1); setprop("/gui/map/draw-traffic", 0); setprop("/sim/marker-pins/traffic", 0); setprop("/sim/gui/dialogs/map-canvas/draw-TFC", 0); @@ -1317,7 +1338,7 @@ code_ctTimer.simulatedTime = 1; -setprop("/sim/failure-manager/display-on-screen", FALSE); +setprop("/sim/failure-manager/display-on-screen", 0); code_ctTimer.start(); @@ -1337,6 +1358,22 @@ var re_init = func (node) { } stopLaunch(); damageLog.push("Aircraft was repaired due to re-init."); + + # Remove all 3D craters and re-place them. Due to re-init can remove some of them. + + foreach (var thekey ; keys(statics)) { + var sta = statics[thekey]; + if (sta[0] != nil) { + sta[0].remove(); + if (sta[5] == 0) {# TODO: make a hash with all the models + sta[0] = geo.put_model(crater_model0, sta[1], sta[2], sta[3], sta[4]); + } elsif (sta[5] == 1) { + sta[0] = geo.put_model(crater_model1, sta[1], sta[2], sta[3], sta[4]); + } elsif (sta[5] == 2) { + sta[0] = geo.put_model(crater_model2, sta[1], sta[2], sta[3], sta[4]); + } + } + } } #================================================================== @@ -1405,6 +1442,7 @@ setlistener("sim/signals/exit", writeDamageLog, 0, 0); #screen.property_display.add("payload/armament/MAW-bearing"); #screen.property_display.add("payload/armament/MAW-active"); +#screen.property_display.add("payload/armament/MAW-semiactive"); #screen.property_display.add("payload/armament/MLW-bearing"); #screen.property_display.add("payload/armament/MLW-count"); #screen.property_display.add("payload/armament/MLW-launcher"); @@ -1412,6 +1450,8 @@ setlistener("sim/signals/exit", writeDamageLog, 0, 0); #screen.property_display.add("payload/armament/spike-air"); #screen.property_display.add("payload/armament/spike-gnd-20"); #screen.property_display.add("payload/armament/spike-gnd-02"); +#screen.property_display.add("payload/armament/spike-gnd-05"); +#screen.property_display.add("payload/armament/spike-gnd-06"); #screen.property_display.add("payload/armament/spike-gnd-11"); #screen.property_display.add("payload/armament/spike-gnd-23"); #screen.property_display.add("payload/armament/spike-gnd-p2"); diff --git a/gci-radar/Nasal/gci.nas b/gci-radar/Nasal/gci.nas index ba6d5fa..56a6e99 100644 --- a/gci-radar/Nasal/gci.nas +++ b/gci-radar/Nasal/gci.nas @@ -1,6 +1,6 @@ # (c) 2018 pinto # license: gplv2+ - +srand();# seed the random generator with systime # v0.2b # will only report the closest bad guy, does no threat assessment. # todo: diff --git a/gci-radar/Nasal/radar-logic.nas b/gci-radar/Nasal/radar-logic.nas index 0e46e0a..0a43172 100644 --- a/gci-radar/Nasal/radar-logic.nas +++ b/gci-radar/Nasal/radar-logic.nas @@ -15,9 +15,6 @@ if ((major == 2017 and minor == 2 and pica >= 1) or (major == 2017 and minor > 2 pickingMethod = 1; } -var FALSE = 0; -var TRUE = 1; - var AIR = 0; var MARINE = 1; var SURFACE = 2; @@ -73,6 +70,9 @@ var Contact = { obj.range = obj.rdrProp.getNode("range-nm"); obj.bearing = obj.rdrProp.getNode("bearing-deg"); obj.elevation = obj.rdrProp.getNode("elevation-deg"); + obj.ubody = obj.rdrProp.getNode("velocities/uBody-fps"); + obj.vbody = obj.rdrProp.getNode("velocities/vBody-fps"); + obj.wbody = obj.rdrProp.getNode("velocities/wBody-fps"); #}); obj.deviation = nil; @@ -84,27 +84,63 @@ var Contact = { return obj; }, + + get_uBody: func { + var body = nil; + if (me.ubody != nil) { + body = me.ubody.getValue(); + } + if(body == nil) { + body = me.get_Speed()*KT2FPS; + } + return body; + }, + + get_vBody: func { + var body = nil; + if (me.ubody != nil) { + body = me.vbody.getValue(); + } + if(body == nil) { + body = 0; + } + return body; + }, + + get_wBody: func { + var body = nil; + if (me.ubody != nil) { + body = me.wbody.getValue(); + } + if(body == nil) { + body = 0; + } + return body; + }, isValid: func () { var valid = me.valid.getValue(); if (valid == nil) { - valid = FALSE; + valid = 0; } if (me.callsign.getValue() != me.orig_callsign) { - valid = FALSE; + valid = 0; } return valid; }, isPainted: func () { - if (me.painted == nil) { - me.painted = me.node.getNode("painted"); + if (getprop("/carrier/sunk") == 1) { + return 0; } - if (me.painted == nil) { - return nil; + return isNotBehindTerrain(me.node)[0]; + }, + + isCommandActive: func { + if (getprop("/carrier/sunk") == 1) { + return 0; } - var p = me.painted.getValue(); - return p; + return isNotBehindTerrain(me.node)[0]; }, getUnique: func () { @@ -124,6 +160,7 @@ var Contact = { if(e == nil or e == 0) { # AI/MP has no radar properties var self = geo.aircraft_position(); + self.set_alt(self.alt()+fire_control.radar_elevation_above_terrain_m); me.get_Coord(); var angleInv = clamp(self.distance_to(me.coord)/self.direct_distance_to(me.coord), -1, 1); e = (self.alt()>me.coord.alt()?-1:1)*math.acos(angleInv)*R2D; @@ -343,108 +380,48 @@ var Contact = { }; var isNotBehindTerrain = func( mp ) { + var pos = mp.getNode("position"); + var alt = pos.getNode("altitude-ft").getValue(); + var lat = pos.getNode("latitude-deg").getValue(); + var lon = pos.getNode("longitude-deg").getValue(); + if(alt == nil or lat == nil or lon == nil) { + return [0,0]; # invisible and not in front of terrain + } + var aircraftPos = geo.Coord.new().set_latlon(lat, lon, alt*FT2M); -########### - var pos = mp.getNode("position"); - var alt = pos.getNode("altitude-ft").getValue(); - var lat = pos.getNode("latitude-deg").getValue(); - var lon = pos.getNode("longitude-deg").getValue(); - if(alt == nil or lat == nil or lon == nil) { - return isVisible = 0; - } - var aircraftPos = geo.Coord.new().set_latlon(lat, lon, alt*0.3048); -################# - if (pickingMethod == 1) { - var myPos = geo.aircraft_position(); - myPos.set_latlon(myPos.lat(),myPos.lon(),myPos.alt()+50); - var xyz = {"x":myPos.x(), "y":myPos.y(), "z":myPos.z()}; - var dir = {"x":aircraftPos.x()-myPos.x(), "y":aircraftPos.y()-myPos.y(), "z":aircraftPos.z()-myPos.z()}; + var myPos = geo.aircraft_position(); - # Check for terrain between own aircraft and other: - v = get_cart_ground_intersection(xyz, dir); - if (v == nil) { - return 1; - #printf("No terrain, planes has clear view of each other"); - } else { - var terrain = geo.Coord.new(); - terrain.set_latlon(v.lat, v.lon, v.elevation); - var maxDist = myPos.direct_distance_to(aircraftPos); - var terrainDist = myPos.direct_distance_to(terrain); - if (terrainDist < maxDist) { - #printf("terrain found between SAM and aircraft %.1f meter away.", terrainDist); - return 0; - } else { - #print("The planes has clear view of each other"); - return 1; - } + myPos.set_alt(myPos.alt()+fire_control.radar_elevation_above_terrain_m); + + var target_distance = myPos.direct_distance_to(aircraftPos); + + call(func { + if (target_distance*0.001 > 3.57*(math.sqrt(myPos.alt())+math.sqrt(alt*FT2M))) { + # behind earth curvature + #print("behind earth curvature"); + return [0,0]; # invisible and not in front of terrain } + },nil,nil,var err =[]); + + var xyz = {"x":myPos.x(), "y":myPos.y(), "z":myPos.z()}; + var dir = {"x":aircraftPos.x()-myPos.x(), "y":aircraftPos.y()-myPos.y(), "z":aircraftPos.z()-myPos.z()}; + + # Check for terrain between own aircraft and other: + v = get_cart_ground_intersection(xyz, dir); + if (v == nil) { + return [1,0]; # visible and not in front of terrain + #printf("No terrain, planes has clear view of each other"); + } else { + var terrain = geo.Coord.new(); + terrain.set_latlon(v.lat, v.lon, v.elevation); + var maxDist = myPos.direct_distance_to(aircraftPos); + var terrainDist = myPos.direct_distance_to(terrain); + if (terrainDist < maxDist-1) { + #printf("terrain found between me and aircraft %.1f meter away.", terrainDist); + return [0,0]; # visible and not in front of terrain } else { - var isVisible = 0; - var MyCoord = geo.aircraft_position(); - - # Because there is no terrain on earth that can be between these 2 - if(MyCoord.alt() < 8900 and aircraftPos.alt() < 8900) - { - # Temporary variable - # A (our plane) coord in meters - var a = MyCoord.x(); - var b = MyCoord.y(); - var c = MyCoord.z(); - # B (target) coord in meters - var d = aircraftPos.x(); - var e = aircraftPos.y(); - var f = aircraftPos.z(); - var difa = d - a; - var difb = e - b; - var difc = f - c; - # direct Distance in meters - var myDistance = math.sqrt( math.pow((d-a),2) + math.pow((e-b),2) + math.pow((f-c),2)); #calculating distance ourselves to avoid another call to geo.nas (read: speed, probably). - var Aprime = geo.Coord.new(); - - # Here is to limit FPS drop on very long distance - var L = 500; - if(myDistance > 50000) - { - L = myDistance / 15; - } - var step = L; - var maxLoops = int(myDistance / L); - - isVisible = 1; - # This loop will make travel a point between us and the target and check if there is terrain - for(var i = 1 ; i <= maxLoops ; i += 1) - { - #calculate intermediate step - #basically dividing the line into maxLoops number of steps, and checking at each step - #to ascii-art explain it: - # |us|----------|step 1|-----------|step 2|--------|step 3|----------|them| - #there will be as many steps as there is i - #every step will be equidistant - - #also, if i == 0 then the first step will be our plane - - var x = ((difa/(maxLoops+1))*i)+a; - var y = ((difb/(maxLoops+1))*i)+b; - var z = ((difc/(maxLoops+1))*i)+c; - #print("i:" ~ i ~ "|x,y,z | " ~ x ~ "," ~ y ~ "," ~ z); - Aprime.set_xyz(x,y,z); - var AprimeTerrainAlt = geo.elevation(Aprime.lat(), Aprime.lon()); - if(AprimeTerrainAlt == nil) - { - AprimeTerrainAlt = 0; - } - - if(AprimeTerrainAlt > Aprime.alt()) - { - #print("behind terrain"); - return 0; - } - } - } - else - { - isVisible = 1; - } - return isVisible; + #print("The planes has clear view of each other"); + return [1,1]; # visible and in front of terrain } + } } \ No newline at end of file diff --git a/gci-radar/Systems/fbw.xml b/gci-radar/Systems/fbw.xml deleted file mode 100644 index 107c064..0000000 --- a/gci-radar/Systems/fbw.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - FBW Throttle - gain - 80.0 - - /controls/engines/engine[0]/throttle - - - /carrier/fbw/target/groundspeed-kt - - - - - FBW Rudder - gain - 8.0 - - /controls/flight/rudder - - - /surface-positions/rudder-pos-norm - - - - diff --git a/gci-radar/Systems/fdm.xml b/gci-radar/Systems/fdm.xml deleted file mode 100644 index 7a847c8..0000000 --- a/gci-radar/Systems/fdm.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - FDM Groundspeed - noise-spike - - /carrier/fbw/target/groundspeed-kt - - - /velocities/groundspeed-kt - - - - 7 - - - - - FDM True Heading For Flags - gain - - /orientation/heading-deg - - - /orientation/true-heading-deg - - - - - - - - - - diff --git a/groundtarget/Dialogs/control-panel.xml b/groundtarget/Dialogs/control-panel.xml deleted file mode 100644 index e6a5f9e..0000000 --- a/groundtarget/Dialogs/control-panel.xml +++ /dev/null @@ -1,330 +0,0 @@ - - - - - - - control-panel - vbox - 250 - false - - - hbox - - true - - - - true - - - - - - - - vbox - 6 - - - - - - table - - - - 0 - 1 - - - - - - - - - - 2 - 1 - - - - - - - - - - 4 - 0 - - - - - 4 - 1 - - - - - - - - - - - - - - - - - vbox - 6 - - - - - - vbox - - - left - - /controls/lighting/deck-lights - true - - dialog-apply - - - property-toggle - - - - - left - - /carrier/antennas/enabled - true - - dialog-apply - - - property-toggle - - - - - - - - - vbox - 6 - - - - - - vbox - - - left - - /carrier/fdm/settings/movement - true - - dialog-apply - - - property-toggle - - - - - left - - /carrier/phalanx/settings/show-debug-aim - true - - dialog-apply - - - property-toggle - - - - - - - - - hbox - 6 - - true - - - - - diff --git a/groundtarget/Dialogs/menu.xml b/groundtarget/Dialogs/menu.xml deleted file mode 100644 index a34d397..0000000 --- a/groundtarget/Dialogs/menu.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - true - - - - - dialog-show - control-panel - - - - - - - diff --git a/groundtarget/Nasal/damage.nas b/groundtarget/Nasal/damage.nas index 44b753a..81e859c 100644 --- a/groundtarget/Nasal/damage.nas +++ b/groundtarget/Nasal/damage.nas @@ -27,8 +27,6 @@ var mlw_max=getprop("payload/d-config/mlw_max"); # var auto_flare_caller = getprop("payload/d-config/auto_flare_caller"); # If damage.nas should detect flare releases, or if function is called from somewhere in aircraft ############################################################################################################################ -var TRUE = 1; -var FALSE = 0; var hp = hp_max; setprop("sam/damage", math.max(0,100*hp/hp_max));#used in HUD @@ -164,7 +162,9 @@ var warheads = { "pilot": [93, 0.00,1,0],# ejected pilot "BETAB-500ShP": [94, 1160.00,1,0], "Flare": [95, 0.00,0,0], - "3M9": [96, 125.00,0,0],# 3M9 Missile used with 2K12/SA-6 + "3M9": [96, 125.00,0,0],# 3M9M3 Missile used with 2K12/SA-6 + "5V28V": [97, 478.00,0,0],# Missile used with S-200D/SA-5 + "AIM-9X": [98, 20.80,0,0], }; var AIR_RADAR = "air"; @@ -189,7 +189,8 @@ var radar_signatures = { "E-8R": AIR_RADAR, "EC-137D": AIR_RADAR, "Mig-28": AIR_RADAR, - "SA-6": AIR_RADAR,#Air radar tone chosen so that there is at least some lock tone until asset-specific is created + "SA-6": "gnd-06",#Air radar tone chosen so that there is at least some lock tone until asset-specific is created + "s-200": "gnd-05", "ZSU-23-4M": "gnd-23", "S-75": "gnd-02", "buk-m2": "gnd-11", @@ -203,7 +204,7 @@ var radar_signatures = { var id2warhead = []; var launched = {};# callsign: elapsed-sec var approached = {};# callsign: uniqueID -var heavy_smoke = [61,62,63,65,92,96]; +var heavy_smoke = [61,62,63,65,92,96,97]; var k = keys(warheads); @@ -241,6 +242,10 @@ for(var myid = 0;myid 450) { - printf("Missile Approach Warning from %03d degrees.", bearing); - damageLog.push(sprintf("Missile Approach Warning from %03d degrees from %s.", bearing, notification.Callsign)); - if (rwr_to_screen) screen.log.write(sprintf("Missile Approach Warning from %03d degrees.", bearing), 1,1,0);# temporary till someone models a RWR in RIO seat + if (radarOn) { + #printf("Missile Approach Warning from %03d degrees.", bearing); + damageLog.push(sprintf("Missile Approach Warning from %03d degrees from %s.", bearing, notification.Callsign)); + if (rwr_to_screen) screen.log.write(sprintf("Missile Approach Warning from %03d degrees.", bearing), 1,0.5,0);# temporary till someone models a RWR in RIO seat + } else { + #printf("Missile Approach Warning"); + damageLog.push(sprintf("Missile Approach Warning from %s.", notification.Callsign)); + if (rwr_to_screen) screen.log.write(sprintf("Missile Approach Warning (semi-active)."), 1,0.5,0);# temporary till someone models a RWR in RIO seat + } approached[notification.Callsign~notification.UniqueIdentity] = elapsed; - if (m28_auto) mig28.engagedBy(notification.Callsign); + if (m28_auto) mig28.engagedBy(notification.Callsign, 1); } return emesary.Transmitter.ReceiptStatus_OK; } @@ -415,7 +433,7 @@ var DamageRecipient = # debug.dump(notification); # # - if (tacview_supported and tacview.starttime and getprop("sim/multiplay/txhost") != "mpserver.opredflag.com") { + if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and notification.SecondaryKind > 20) { # its a warhead @@ -439,9 +457,10 @@ var DamageRecipient = var callsign = processCallsign(getprop("sim/multiplay/callsign")); if (notification.RemoteCallsign == callsign and getprop("payload/armament/msg") == 1) { #damage enabled and were getting hit - if (m28_auto) mig28.engagedBy(notification.Callsign); + if (notification.SecondaryKind < 0 and hitable_by_cannon) { # cannon hit + if (m28_auto) mig28.engagedBy(notification.Callsign, 0); var probability = id2shell[-1*notification.SecondaryKind-1][1]; var typ = id2shell[-1*notification.SecondaryKind-1][2]; var hit_count = notification.Distance; @@ -457,6 +476,7 @@ var DamageRecipient = } } elsif (notification.SecondaryKind > 20) { # its a warhead + if (m28_auto) mig28.engagedBy(notification.Callsign, 1); var dist = notification.Distance; var wh = id2warhead[notification.SecondaryKind - 21]; var type = wh[4];#test code @@ -549,21 +569,18 @@ var DamageRecipient = } if (notification.Kind == CREATE and getprop("payload/armament/enable-craters") == 1 and statics["obj_"~notification.UniqueIdentity] == nil) { if (notification.SecondaryKind == 0) {# TODO: make a hash with all the models - var crater_model = getprop("payload/armament/models") ~ "crater_small.xml"; - var static = geo.put_model(crater_model, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); + var static = geo.put_model(crater_model0, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); if (static != nil) { statics["obj_"~notification.UniqueIdentity] = [static, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading, notification.SecondaryKind]; #static is a PropertyNode inside /models } } elsif (notification.SecondaryKind == 1) { - var crater_model = getprop("payload/armament/models") ~ "crater_big.xml"; - var static = geo.put_model(crater_model, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); + var static = geo.put_model(crater_model1, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); if (static != nil) { statics["obj_"~notification.UniqueIdentity] = [static, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading, notification.SecondaryKind]; } } elsif (notification.SecondaryKind == 2) { - var crater_model = getprop("payload/armament/models") ~ "bomb_hit_smoke.xml"; - var static = geo.put_model(crater_model, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); + var static = geo.put_model(crater_model2, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading); if (static != nil) { statics["obj_"~notification.UniqueIdentity] = [static, notification.Position.lat(), notification.Position.lon(), notification.Position.alt(), notification.Heading, notification.SecondaryKind]; } @@ -863,6 +880,7 @@ var flare_update_time = 0.4; var flare_duration = 8; var flare_terminal_speed = 50;#m/s var flares_max_process_per_loop = 4; +var flare_sequencer = -120; var flare_sorter = func(a, b) { if(a[0] < b[0]){ @@ -945,7 +963,9 @@ var flare_released = func { getprop("orientation/heading-deg"), FT2M*getprop("velocities/speed-down-fps"), FT2M*math.sqrt(getprop("velocities/speed-north-fps")*getprop("velocities/speed-north-fps")+getprop("velocities/speed-east-fps")*getprop("velocities/speed-east-fps")), - int(rand()*240)-120]; + flare_sequencer]; + flare_sequencer += 1; + if (flare_sequencer > 120) flare_sequencer = -120; append(flare_list, flare); var msg = notifications.ObjectInFlightNotification.new("ffly", flare[6], MOVE, 21+95); msg.Flags = 0; @@ -1233,7 +1253,7 @@ var processCallsigns = func () { var painted = 0; var paint_list = []; foreach (var player; players) { - if(player.getChild("valid") != nil and player.getChild("valid").getValue() == TRUE and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { + if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); @@ -1247,6 +1267,7 @@ var processCallsigns = func () { } if (getprop("sim/time/elapsed-sec")-MAW_elapsed > 1.1) { setprop("payload/armament/MAW-active", 0);# resets every 1.1 seconds without warning + setprop("payload/armament/MAW-semiactive", 0); } # spike handling: @@ -1293,16 +1314,16 @@ processCallsignsTimer.start(); var code_ct = func () { #ANTIC if (getprop("payload/armament/msg")) { - setprop("sim/rendering/redout/enabled", TRUE); + setprop("sim/rendering/redout/enabled", 1); #call(func{fgcommand('dialog-close', multiplayer.dialog.dialog.prop())},nil,var err= []);# props.Node.new({"dialog-name": "location-in-air"})); - call(func{multiplayer.dialog.del();},nil,var err= []); + if (!m28_auto) call(func{multiplayer.dialog.del();},nil,var err= []); if (!getprop("gear/gear[0]/wow")) { call(func{fgcommand('dialog-close', props.Node.new({"dialog-name": "WeightAndFuel"}))},nil,var err2 = []); call(func{fgcommand('dialog-close', props.Node.new({"dialog-name": "system-failures"}))},nil,var err2 = []); call(func{fgcommand('dialog-close', props.Node.new({"dialog-name": "instrument-failures"}))},nil,var err2 = []); } setprop("sim/freeze/fuel",0); - setprop("/sim/speed-up", 1); + if (!m28_auto) setprop("/sim/speed-up", 1); setprop("/gui/map/draw-traffic", 0); setprop("/sim/marker-pins/traffic", 0); setprop("/sim/gui/dialogs/map-canvas/draw-TFC", 0); @@ -1317,7 +1338,7 @@ code_ctTimer.simulatedTime = 1; -setprop("/sim/failure-manager/display-on-screen", FALSE); +setprop("/sim/failure-manager/display-on-screen", 0); code_ctTimer.start(); @@ -1337,6 +1358,22 @@ var re_init = func (node) { } stopLaunch(); damageLog.push("Aircraft was repaired due to re-init."); + + # Remove all 3D craters and re-place them. Due to re-init can remove some of them. + + foreach (var thekey ; keys(statics)) { + var sta = statics[thekey]; + if (sta[0] != nil) { + sta[0].remove(); + if (sta[5] == 0) {# TODO: make a hash with all the models + sta[0] = geo.put_model(crater_model0, sta[1], sta[2], sta[3], sta[4]); + } elsif (sta[5] == 1) { + sta[0] = geo.put_model(crater_model1, sta[1], sta[2], sta[3], sta[4]); + } elsif (sta[5] == 2) { + sta[0] = geo.put_model(crater_model2, sta[1], sta[2], sta[3], sta[4]); + } + } + } } #================================================================== @@ -1405,6 +1442,7 @@ setlistener("sim/signals/exit", writeDamageLog, 0, 0); #screen.property_display.add("payload/armament/MAW-bearing"); #screen.property_display.add("payload/armament/MAW-active"); +#screen.property_display.add("payload/armament/MAW-semiactive"); #screen.property_display.add("payload/armament/MLW-bearing"); #screen.property_display.add("payload/armament/MLW-count"); #screen.property_display.add("payload/armament/MLW-launcher"); @@ -1412,6 +1450,8 @@ setlistener("sim/signals/exit", writeDamageLog, 0, 0); #screen.property_display.add("payload/armament/spike-air"); #screen.property_display.add("payload/armament/spike-gnd-20"); #screen.property_display.add("payload/armament/spike-gnd-02"); +#screen.property_display.add("payload/armament/spike-gnd-05"); +#screen.property_display.add("payload/armament/spike-gnd-06"); #screen.property_display.add("payload/armament/spike-gnd-11"); #screen.property_display.add("payload/armament/spike-gnd-23"); #screen.property_display.add("payload/armament/spike-gnd-p2"); diff --git a/groundtarget/Nasal/dialogs.nas b/groundtarget/Nasal/dialogs.nas deleted file mode 100644 index 835a812..0000000 --- a/groundtarget/Nasal/dialogs.nas +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright (C) 2015 onox -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -var control_panel = gui.Dialog.new("sim/gui/dialogs/control-panel/dialog", "Aircraft/CVN-70/Dialogs/control-panel.xml"); diff --git a/groundtarget/Nasal/fdm.nas b/groundtarget/Nasal/fdm.nas index 56665f7..1dd10db 100644 --- a/groundtarget/Nasal/fdm.nas +++ b/groundtarget/Nasal/fdm.nas @@ -12,7 +12,7 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see . - +srand();# seed the random generator with systime #io.include("Aircraft/ExpansionPack/Nasal/init.nas"); #with("updateloop"); diff --git a/groundtarget/Sim/mice.xml b/groundtarget/Sim/mice.xml deleted file mode 100644 index 2f2bf35..0000000 --- a/groundtarget/Sim/mice.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/groundtarget/Sim/views.xml b/groundtarget/Sim/views.xml deleted file mode 100644 index 5bc0d87..0000000 --- a/groundtarget/Sim/views.xml +++ /dev/null @@ -1,280 +0,0 @@ - - - - - - - - 1 - - - -200.0 - - - Cockpit View - false - - - - Helicopter View - - -5 - 21.925 - - - - - Chase View - false - - - - Chase View Without Yaw - false - - - - Hangar View - lookfrom - true - - true - 0 - - 2 - 15 - 113 - - 60 - 0.1f - - - - - Phalanx Forward Left - lookfrom - false - - true - 0 - - -21.1147 - 16.8345 - -121.2666 - - 90 - 60 - 0.1f - - - - - Phalanx Forward Right - lookfrom - false - - true - 0 - - 23.1336 - 16.6478 - -112.684 - - 90 - 60 - 0.1f - - - - - Phalanx Aft - lookfrom - false - - true - 0 - - 23.3165 - 18.1198 - 134.344 - - 90 - 60 - 0.1f - - - - - Landing Signal Officer View - lookfrom - false - - true - 0 - - 180 - -19.7208 - 21.925 - 100.307 - 2.5 - 60 - 0.1f - - - - - Approach View - lookfrom - false - - - /position/latitude-deg - /position/longitude-deg - /position/altitude-ft - /orientation/heading-runway-deg - /orientation/pitch-deg - /orientation/roll-deg - - -15.4979 - 21.9 - -8.315 - - 180 - 3 - 25 - 0.1f - - - - - Flight Deck Aft View - lookfrom - false - - true - 0 - - 10 - 21.925 - 42 - - 163 - 5 - 60 - 0.1f - - - - - Flight Deck Forward View - lookfrom - false - - true - 0 - - 0 - 21.925 - -35 - - 180 - 10 - 60 - 0.1f - - - - - Bubble View - lookfrom - true - - true - 0 - - 4.1 - 20.325 - -93 - - 180 - 0 - 60 - 0.1f - - - - - Goofers' View - lookfrom - false - - true - 0 - - 27.074 - 35.3325 - 42.67 - - 136 - -11 - 40 - 0.1f - - - - - Primary Flight Control View - lookfrom - true - - true - 0 - - 23.2669 - 35.082 - 20.1064 - - -5 - 60 - 0.1f - - - - - Bridge View - lookfrom - true - - true - 0 - - 29.2083 - 33.235233 - 19.45 - - -2 - 45 - 0.1f - - - - diff --git a/groundtarget/Systems/fbw.xml b/groundtarget/Systems/fbw.xml deleted file mode 100644 index 107c064..0000000 --- a/groundtarget/Systems/fbw.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - FBW Throttle - gain - 80.0 - - /controls/engines/engine[0]/throttle - - - /carrier/fbw/target/groundspeed-kt - - - - - FBW Rudder - gain - 8.0 - - /controls/flight/rudder - - - /surface-positions/rudder-pos-norm - - - - diff --git a/groundtarget/Systems/fdm.xml b/groundtarget/Systems/fdm.xml deleted file mode 100644 index 7a847c8..0000000 --- a/groundtarget/Systems/fdm.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - FDM Groundspeed - noise-spike - - /carrier/fbw/target/groundspeed-kt - - - /velocities/groundspeed-kt - - - - 7 - - - - - FDM True Heading For Flags - gain - - /orientation/heading-deg - - - /orientation/true-heading-deg - - - - - - - - - -