diff --git a/S-300/Dialogs/control-panel.xml b/S-300/Dialogs/control-panel.xml
new file mode 100644
index 0000000..e6a5f9e
--- /dev/null
+++ b/S-300/Dialogs/control-panel.xml
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+ 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/S-300/Dialogs/menu.xml b/S-300/Dialogs/menu.xml
new file mode 100644
index 0000000..a34d397
--- /dev/null
+++ b/S-300/Dialogs/menu.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/S-300/Hud/hud.xml b/S-300/Hud/hud.xml
new file mode 100644
index 0000000..c7f64b9
--- /dev/null
+++ b/S-300/Hud/hud.xml
@@ -0,0 +1,571 @@
+
+
+
+
+ Vinson HUD
+
+ false
+
+
+
+
+ Ladder
+ pitch
+ -60
+ -90
+ 120
+ 180
+
+
+
+ /sim/current-view/name
+ Approach View
+
+
+
+
+ /orientation/roll-deg
+ -1.0
+
+
+
+ /orientation/pitch-deg
+ -1.0
+
+
+ 30
+ 8
+ 1.0
+ 100
+ 0
+ 0.0
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/S-300/Models/fire.png b/S-300/Models/fire.png
new file mode 100644
index 0000000..db05bc3
Binary files /dev/null and b/S-300/Models/fire.png differ
diff --git a/S-300/Models/fire.xml b/S-300/Models/fire.xml
new file mode 100644
index 0000000..00cecb3
--- /dev/null
+++ b/S-300/Models/fire.xml
@@ -0,0 +1,87 @@
+
+
+
+
+
+ fire.png
+
+
+ sim/multiplay/generic/int[0]
+ 1
+
+
+ true
+ false
+
+ 0
+
+ world
+
+ point
+
+
+ 80
+ 30
+ -180
+ 180
+
+ 20
+ 40
+
+
+
+
+ 40
+ 60
+
+
+ billboard
+
+
+
+
+ 0.6
+
+
+ 0.6
+
+
+ 0.6
+
+
+ 0.4
+
+
+
+ 1.2
+
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+
+ 4.0
+
+
+
+ 3
+
+ 1.3
+ 0.03
+
+
+
+
+
diff --git a/S-300/Models/s-300.ac b/S-300/Models/s-300.ac
new file mode 100644
index 0000000..5344ead
--- /dev/null
+++ b/S-300/Models/s-300.ac
@@ -0,0 +1,1585 @@
+AC3Db
+MATERIAL "Material" rgb 0.268 0.640 0.042 amb 1.000 1.000 1.000 emis 0.000 0.000 0.000 spec 0.500 0.500 0.500 shi 12 trans 0.000
+OBJECT world
+name "Blender_exporter_v2.26__s-300.ac"
+kids 6
+OBJECT poly
+name "Cube"
+data 4
+Cube
+crease 40.0
+numvert 8
+0.74234 0.04204 0.92056
+0.74234 2.04204 0.92056
+0.74234 0.04204 -2.47523
+0.74234 2.04204 -2.47523
+11.8343 0.04204 0.92056
+11.8343 2.04204 0.92056
+11.8343 0.04204 -2.47523
+11.8343 2.04204 -2.47523
+numsurf 6
+SURF 0X0
+mat 0
+refs 4
+0 0 0
+1 0 0
+3 0 0
+2 0 0
+SURF 0X0
+mat 0
+refs 4
+2 0 0
+3 0 0
+7 0 0
+6 0 0
+SURF 0X0
+mat 0
+refs 4
+6 0 0
+7 0 0
+5 0 0
+4 0 0
+SURF 0X0
+mat 0
+refs 4
+4 0 0
+5 0 0
+1 0 0
+0 0 0
+SURF 0X0
+mat 0
+refs 4
+2 0 0
+6 0 0
+4 0 0
+0 0 0
+SURF 0X0
+mat 0
+refs 4
+7 0 0
+3 0 0
+1 0 0
+5 0 0
+kids 0
+OBJECT poly
+name "Cube.001"
+data 8
+Cube.001
+crease 40.0
+numvert 8
+10.02034 1.91351 0.86595
+10.02034 3.41472 0.86595
+10.02034 1.91351 -2.41709
+10.02034 3.41472 -2.41709
+11.80262 1.91351 0.86595
+11.80262 3.41472 0.86595
+11.80262 1.91351 -2.41709
+11.80262 3.41472 -2.41709
+numsurf 6
+SURF 0X0
+mat 0
+refs 4
+0 0 0
+1 0 0
+3 0 0
+2 0 0
+SURF 0X0
+mat 0
+refs 4
+2 0 0
+3 0 0
+7 0 0
+6 0 0
+SURF 0X0
+mat 0
+refs 4
+6 0 0
+7 0 0
+5 0 0
+4 0 0
+SURF 0X0
+mat 0
+refs 4
+4 0 0
+5 0 0
+1 0 0
+0 0 0
+SURF 0X0
+mat 0
+refs 4
+2 0 0
+6 0 0
+4 0 0
+0 0 0
+SURF 0X0
+mat 0
+refs 4
+7 0 0
+3 0 0
+1 0 0
+5 0 0
+kids 0
+OBJECT poly
+name "Cylinder"
+data 8
+Cylinder
+crease 40.0
+numvert 64
+0 0 -0.6
+0 11 -0.6
+0.11705 0 -0.58847
+0.11705 11 -0.58847
+0.22961 0 -0.55433
+0.22961 11 -0.55433
+0.33334 0 -0.49888
+0.33334 11 -0.49888
+0.42426 0 -0.42426
+0.42426 11 -0.42426
+0.49888 0 -0.33334
+0.49888 11 -0.33334
+0.55433 0 -0.22961
+0.55433 11 -0.22961
+0.58847 0 -0.11705
+0.58847 11 -0.11705
+0.6 0 -0
+0.6 11 -0
+0.58847 0 0.11705
+0.58847 11 0.11705
+0.55433 0 0.22961
+0.55433 11 0.22961
+0.49888 0 0.33334
+0.49888 11 0.33334
+0.42426 0 0.42426
+0.42426 11 0.42426
+0.33334 0 0.49888
+0.33334 11 0.49888
+0.22961 0 0.55433
+0.22961 11 0.55433
+0.11705 0 0.58847
+0.11705 11 0.58847
+-0 0 0.6
+-0 11 0.6
+-0.11705 0 0.58847
+-0.11705 11 0.58847
+-0.22961 0 0.55433
+-0.22961 11 0.55433
+-0.33334 0 0.49888
+-0.33334 11 0.49888
+-0.42426 0 0.42426
+-0.42426 11 0.42426
+-0.49888 0 0.33334
+-0.49888 11 0.33334
+-0.55433 0 0.22961
+-0.55433 11 0.22961
+-0.58847 0 0.11705
+-0.58847 11 0.11705
+-0.6 0 -0
+-0.6 11 -0
+-0.58847 0 -0.11705
+-0.58847 11 -0.11705
+-0.55433 0 -0.22961
+-0.55433 11 -0.22961
+-0.49888 0 -0.33334
+-0.49888 11 -0.33334
+-0.42426 0 -0.42426
+-0.42426 11 -0.42426
+-0.33334 0 -0.49888
+-0.33334 11 -0.49888
+-0.22961 0 -0.55433
+-0.22961 11 -0.55433
+-0.11705 0 -0.58847
+-0.11705 11 -0.58847
+numsurf 34
+SURF 0X0
+mat 0
+refs 4
+0 0 0
+1 0 0
+3 0 0
+2 0 0
+SURF 0X0
+mat 0
+refs 4
+2 0 0
+3 0 0
+5 0 0
+4 0 0
+SURF 0X0
+mat 0
+refs 4
+4 0 0
+5 0 0
+7 0 0
+6 0 0
+SURF 0X0
+mat 0
+refs 4
+6 0 0
+7 0 0
+9 0 0
+8 0 0
+SURF 0X0
+mat 0
+refs 4
+8 0 0
+9 0 0
+11 0 0
+10 0 0
+SURF 0X0
+mat 0
+refs 4
+10 0 0
+11 0 0
+13 0 0
+12 0 0
+SURF 0X0
+mat 0
+refs 4
+12 0 0
+13 0 0
+15 0 0
+14 0 0
+SURF 0X0
+mat 0
+refs 4
+14 0 0
+15 0 0
+17 0 0
+16 0 0
+SURF 0X0
+mat 0
+refs 4
+16 0 0
+17 0 0
+19 0 0
+18 0 0
+SURF 0X0
+mat 0
+refs 4
+18 0 0
+19 0 0
+21 0 0
+20 0 0
+SURF 0X0
+mat 0
+refs 4
+20 0 0
+21 0 0
+23 0 0
+22 0 0
+SURF 0X0
+mat 0
+refs 4
+22 0 0
+23 0 0
+25 0 0
+24 0 0
+SURF 0X0
+mat 0
+refs 4
+24 0 0
+25 0 0
+27 0 0
+26 0 0
+SURF 0X0
+mat 0
+refs 4
+26 0 0
+27 0 0
+29 0 0
+28 0 0
+SURF 0X0
+mat 0
+refs 4
+28 0 0
+29 0 0
+31 0 0
+30 0 0
+SURF 0X0
+mat 0
+refs 4
+30 0 0
+31 0 0
+33 0 0
+32 0 0
+SURF 0X0
+mat 0
+refs 4
+32 0 0
+33 0 0
+35 0 0
+34 0 0
+SURF 0X0
+mat 0
+refs 4
+34 0 0
+35 0 0
+37 0 0
+36 0 0
+SURF 0X0
+mat 0
+refs 4
+36 0 0
+37 0 0
+39 0 0
+38 0 0
+SURF 0X0
+mat 0
+refs 4
+38 0 0
+39 0 0
+41 0 0
+40 0 0
+SURF 0X0
+mat 0
+refs 4
+40 0 0
+41 0 0
+43 0 0
+42 0 0
+SURF 0X0
+mat 0
+refs 4
+42 0 0
+43 0 0
+45 0 0
+44 0 0
+SURF 0X0
+mat 0
+refs 4
+44 0 0
+45 0 0
+47 0 0
+46 0 0
+SURF 0X0
+mat 0
+refs 4
+46 0 0
+47 0 0
+49 0 0
+48 0 0
+SURF 0X0
+mat 0
+refs 4
+48 0 0
+49 0 0
+51 0 0
+50 0 0
+SURF 0X0
+mat 0
+refs 4
+50 0 0
+51 0 0
+53 0 0
+52 0 0
+SURF 0X0
+mat 0
+refs 4
+52 0 0
+53 0 0
+55 0 0
+54 0 0
+SURF 0X0
+mat 0
+refs 4
+54 0 0
+55 0 0
+57 0 0
+56 0 0
+SURF 0X0
+mat 0
+refs 4
+56 0 0
+57 0 0
+59 0 0
+58 0 0
+SURF 0X0
+mat 0
+refs 4
+58 0 0
+59 0 0
+61 0 0
+60 0 0
+SURF 0X0
+mat 0
+refs 32
+3 0 0
+1 0 0
+63 0 0
+61 0 0
+59 0 0
+57 0 0
+55 0 0
+53 0 0
+51 0 0
+49 0 0
+47 0 0
+45 0 0
+43 0 0
+41 0 0
+39 0 0
+37 0 0
+35 0 0
+33 0 0
+31 0 0
+29 0 0
+27 0 0
+25 0 0
+23 0 0
+21 0 0
+19 0 0
+17 0 0
+15 0 0
+13 0 0
+11 0 0
+9 0 0
+7 0 0
+5 0 0
+SURF 0X0
+mat 0
+refs 4
+60 0 0
+61 0 0
+63 0 0
+62 0 0
+SURF 0X0
+mat 0
+refs 4
+62 0 0
+63 0 0
+1 0 0
+0 0 0
+SURF 0X0
+mat 0
+refs 32
+0 0 0
+2 0 0
+4 0 0
+6 0 0
+8 0 0
+10 0 0
+12 0 0
+14 0 0
+16 0 0
+18 0 0
+20 0 0
+22 0 0
+24 0 0
+26 0 0
+28 0 0
+30 0 0
+32 0 0
+34 0 0
+36 0 0
+38 0 0
+40 0 0
+42 0 0
+44 0 0
+46 0 0
+48 0 0
+50 0 0
+52 0 0
+54 0 0
+56 0 0
+58 0 0
+60 0 0
+62 0 0
+kids 0
+OBJECT poly
+name "Cylinder.001"
+data 12
+Cylinder.001
+crease 40.0
+numvert 64
+0 0 -2.05918
+0 11 -2.05918
+0.11705 0 -2.04765
+0.11705 11 -2.04765
+0.22961 0 -2.01351
+0.22961 11 -2.01351
+0.33334 0 -1.95806
+0.33334 11 -1.95806
+0.42426 0 -1.88344
+0.42426 11 -1.88344
+0.49888 0 -1.79252
+0.49888 11 -1.79252
+0.55433 0 -1.68879
+0.55433 11 -1.68879
+0.58847 0 -1.57623
+0.58847 11 -1.57623
+0.6 0 -1.45918
+0.6 11 -1.45918
+0.58847 0 -1.34212
+0.58847 11 -1.34212
+0.55433 0 -1.22957
+0.55433 11 -1.22957
+0.49888 0 -1.12584
+0.49888 11 -1.12584
+0.42426 0 -1.03491
+0.42426 11 -1.03491
+0.33334 0 -0.9603
+0.33334 11 -0.9603
+0.22961 0 -0.90485
+0.22961 11 -0.90485
+0.11705 0 -0.87071
+0.11705 11 -0.87071
+-0 0 -0.85918
+-0 11 -0.85918
+-0.11705 0 -0.87071
+-0.11705 11 -0.87071
+-0.22961 0 -0.90485
+-0.22961 11 -0.90485
+-0.33334 0 -0.9603
+-0.33334 11 -0.9603
+-0.42426 0 -1.03491
+-0.42426 11 -1.03491
+-0.49888 0 -1.12584
+-0.49888 11 -1.12584
+-0.55433 0 -1.22957
+-0.55433 11 -1.22957
+-0.58847 0 -1.34212
+-0.58847 11 -1.34212
+-0.6 0 -1.45918
+-0.6 11 -1.45918
+-0.58847 0 -1.57623
+-0.58847 11 -1.57623
+-0.55433 0 -1.68879
+-0.55433 11 -1.68879
+-0.49888 0 -1.79252
+-0.49888 11 -1.79252
+-0.42426 0 -1.88344
+-0.42426 11 -1.88344
+-0.33334 0 -1.95806
+-0.33334 11 -1.95806
+-0.22961 0 -2.01351
+-0.22961 11 -2.01351
+-0.11705 0 -2.04765
+-0.11705 11 -2.04765
+numsurf 34
+SURF 0X0
+mat 0
+refs 4
+0 0 0
+1 0 0
+3 0 0
+2 0 0
+SURF 0X0
+mat 0
+refs 4
+2 0 0
+3 0 0
+5 0 0
+4 0 0
+SURF 0X0
+mat 0
+refs 4
+4 0 0
+5 0 0
+7 0 0
+6 0 0
+SURF 0X0
+mat 0
+refs 4
+6 0 0
+7 0 0
+9 0 0
+8 0 0
+SURF 0X0
+mat 0
+refs 4
+8 0 0
+9 0 0
+11 0 0
+10 0 0
+SURF 0X0
+mat 0
+refs 4
+10 0 0
+11 0 0
+13 0 0
+12 0 0
+SURF 0X0
+mat 0
+refs 4
+12 0 0
+13 0 0
+15 0 0
+14 0 0
+SURF 0X0
+mat 0
+refs 4
+14 0 0
+15 0 0
+17 0 0
+16 0 0
+SURF 0X0
+mat 0
+refs 4
+16 0 0
+17 0 0
+19 0 0
+18 0 0
+SURF 0X0
+mat 0
+refs 4
+18 0 0
+19 0 0
+21 0 0
+20 0 0
+SURF 0X0
+mat 0
+refs 4
+20 0 0
+21 0 0
+23 0 0
+22 0 0
+SURF 0X0
+mat 0
+refs 4
+22 0 0
+23 0 0
+25 0 0
+24 0 0
+SURF 0X0
+mat 0
+refs 4
+24 0 0
+25 0 0
+27 0 0
+26 0 0
+SURF 0X0
+mat 0
+refs 4
+26 0 0
+27 0 0
+29 0 0
+28 0 0
+SURF 0X0
+mat 0
+refs 4
+28 0 0
+29 0 0
+31 0 0
+30 0 0
+SURF 0X0
+mat 0
+refs 4
+30 0 0
+31 0 0
+33 0 0
+32 0 0
+SURF 0X0
+mat 0
+refs 4
+32 0 0
+33 0 0
+35 0 0
+34 0 0
+SURF 0X0
+mat 0
+refs 4
+34 0 0
+35 0 0
+37 0 0
+36 0 0
+SURF 0X0
+mat 0
+refs 4
+36 0 0
+37 0 0
+39 0 0
+38 0 0
+SURF 0X0
+mat 0
+refs 4
+38 0 0
+39 0 0
+41 0 0
+40 0 0
+SURF 0X0
+mat 0
+refs 4
+40 0 0
+41 0 0
+43 0 0
+42 0 0
+SURF 0X0
+mat 0
+refs 4
+42 0 0
+43 0 0
+45 0 0
+44 0 0
+SURF 0X0
+mat 0
+refs 4
+44 0 0
+45 0 0
+47 0 0
+46 0 0
+SURF 0X0
+mat 0
+refs 4
+46 0 0
+47 0 0
+49 0 0
+48 0 0
+SURF 0X0
+mat 0
+refs 4
+48 0 0
+49 0 0
+51 0 0
+50 0 0
+SURF 0X0
+mat 0
+refs 4
+50 0 0
+51 0 0
+53 0 0
+52 0 0
+SURF 0X0
+mat 0
+refs 4
+52 0 0
+53 0 0
+55 0 0
+54 0 0
+SURF 0X0
+mat 0
+refs 4
+54 0 0
+55 0 0
+57 0 0
+56 0 0
+SURF 0X0
+mat 0
+refs 4
+56 0 0
+57 0 0
+59 0 0
+58 0 0
+SURF 0X0
+mat 0
+refs 4
+58 0 0
+59 0 0
+61 0 0
+60 0 0
+SURF 0X0
+mat 0
+refs 32
+3 0 0
+1 0 0
+63 0 0
+61 0 0
+59 0 0
+57 0 0
+55 0 0
+53 0 0
+51 0 0
+49 0 0
+47 0 0
+45 0 0
+43 0 0
+41 0 0
+39 0 0
+37 0 0
+35 0 0
+33 0 0
+31 0 0
+29 0 0
+27 0 0
+25 0 0
+23 0 0
+21 0 0
+19 0 0
+17 0 0
+15 0 0
+13 0 0
+11 0 0
+9 0 0
+7 0 0
+5 0 0
+SURF 0X0
+mat 0
+refs 4
+60 0 0
+61 0 0
+63 0 0
+62 0 0
+SURF 0X0
+mat 0
+refs 4
+62 0 0
+63 0 0
+1 0 0
+0 0 0
+SURF 0X0
+mat 0
+refs 32
+0 0 0
+2 0 0
+4 0 0
+6 0 0
+8 0 0
+10 0 0
+12 0 0
+14 0 0
+16 0 0
+18 0 0
+20 0 0
+22 0 0
+24 0 0
+26 0 0
+28 0 0
+30 0 0
+32 0 0
+34 0 0
+36 0 0
+38 0 0
+40 0 0
+42 0 0
+44 0 0
+46 0 0
+48 0 0
+50 0 0
+52 0 0
+54 0 0
+56 0 0
+58 0 0
+60 0 0
+62 0 0
+kids 0
+OBJECT poly
+name "Cylinder.002"
+data 12
+Cylinder.002
+crease 40.0
+numvert 64
+-1.31958 0 -0.6
+-1.31958 11 -0.6
+-1.20252 0 -0.58847
+-1.20252 11 -0.58847
+-1.08997 0 -0.55433
+-1.08997 11 -0.55433
+-0.98624 0 -0.49888
+-0.98624 11 -0.49888
+-0.89531 0 -0.42426
+-0.89531 11 -0.42426
+-0.8207 0 -0.33334
+-0.8207 11 -0.33334
+-0.76525 0 -0.22961
+-0.76525 11 -0.22961
+-0.73111 0 -0.11705
+-0.73111 11 -0.11705
+-0.71958 0 -0
+-0.71958 11 -0
+-0.73111 0 0.11705
+-0.73111 11 0.11705
+-0.76525 0 0.22961
+-0.76525 11 0.22961
+-0.8207 0 0.33334
+-0.8207 11 0.33334
+-0.89531 0 0.42426
+-0.89531 11 0.42426
+-0.98624 0 0.49888
+-0.98624 11 0.49888
+-1.08997 0 0.55433
+-1.08997 11 0.55433
+-1.20252 0 0.58847
+-1.20252 11 0.58847
+-1.31958 0 0.6
+-1.31958 11 0.6
+-1.43663 0 0.58847
+-1.43663 11 0.58847
+-1.54919 0 0.55433
+-1.54919 11 0.55433
+-1.65292 0 0.49888
+-1.65292 11 0.49888
+-1.74384 0 0.42426
+-1.74384 11 0.42426
+-1.81846 0 0.33334
+-1.81846 11 0.33334
+-1.87391 0 0.22961
+-1.87391 11 0.22961
+-1.90805 0 0.11705
+-1.90805 11 0.11705
+-1.91958 0 -0
+-1.91958 11 -0
+-1.90805 0 -0.11705
+-1.90805 11 -0.11705
+-1.8739 0 -0.22961
+-1.8739 11 -0.22961
+-1.81846 0 -0.33334
+-1.81846 11 -0.33334
+-1.74384 0 -0.42426
+-1.74384 11 -0.42426
+-1.65292 0 -0.49888
+-1.65292 11 -0.49888
+-1.54919 0 -0.55433
+-1.54919 11 -0.55433
+-1.43663 0 -0.58847
+-1.43663 11 -0.58847
+numsurf 34
+SURF 0X0
+mat 0
+refs 4
+0 0 0
+1 0 0
+3 0 0
+2 0 0
+SURF 0X0
+mat 0
+refs 4
+2 0 0
+3 0 0
+5 0 0
+4 0 0
+SURF 0X0
+mat 0
+refs 4
+4 0 0
+5 0 0
+7 0 0
+6 0 0
+SURF 0X0
+mat 0
+refs 4
+6 0 0
+7 0 0
+9 0 0
+8 0 0
+SURF 0X0
+mat 0
+refs 4
+8 0 0
+9 0 0
+11 0 0
+10 0 0
+SURF 0X0
+mat 0
+refs 4
+10 0 0
+11 0 0
+13 0 0
+12 0 0
+SURF 0X0
+mat 0
+refs 4
+12 0 0
+13 0 0
+15 0 0
+14 0 0
+SURF 0X0
+mat 0
+refs 4
+14 0 0
+15 0 0
+17 0 0
+16 0 0
+SURF 0X0
+mat 0
+refs 4
+16 0 0
+17 0 0
+19 0 0
+18 0 0
+SURF 0X0
+mat 0
+refs 4
+18 0 0
+19 0 0
+21 0 0
+20 0 0
+SURF 0X0
+mat 0
+refs 4
+20 0 0
+21 0 0
+23 0 0
+22 0 0
+SURF 0X0
+mat 0
+refs 4
+22 0 0
+23 0 0
+25 0 0
+24 0 0
+SURF 0X0
+mat 0
+refs 4
+24 0 0
+25 0 0
+27 0 0
+26 0 0
+SURF 0X0
+mat 0
+refs 4
+26 0 0
+27 0 0
+29 0 0
+28 0 0
+SURF 0X0
+mat 0
+refs 4
+28 0 0
+29 0 0
+31 0 0
+30 0 0
+SURF 0X0
+mat 0
+refs 4
+30 0 0
+31 0 0
+33 0 0
+32 0 0
+SURF 0X0
+mat 0
+refs 4
+32 0 0
+33 0 0
+35 0 0
+34 0 0
+SURF 0X0
+mat 0
+refs 4
+34 0 0
+35 0 0
+37 0 0
+36 0 0
+SURF 0X0
+mat 0
+refs 4
+36 0 0
+37 0 0
+39 0 0
+38 0 0
+SURF 0X0
+mat 0
+refs 4
+38 0 0
+39 0 0
+41 0 0
+40 0 0
+SURF 0X0
+mat 0
+refs 4
+40 0 0
+41 0 0
+43 0 0
+42 0 0
+SURF 0X0
+mat 0
+refs 4
+42 0 0
+43 0 0
+45 0 0
+44 0 0
+SURF 0X0
+mat 0
+refs 4
+44 0 0
+45 0 0
+47 0 0
+46 0 0
+SURF 0X0
+mat 0
+refs 4
+46 0 0
+47 0 0
+49 0 0
+48 0 0
+SURF 0X0
+mat 0
+refs 4
+48 0 0
+49 0 0
+51 0 0
+50 0 0
+SURF 0X0
+mat 0
+refs 4
+50 0 0
+51 0 0
+53 0 0
+52 0 0
+SURF 0X0
+mat 0
+refs 4
+52 0 0
+53 0 0
+55 0 0
+54 0 0
+SURF 0X0
+mat 0
+refs 4
+54 0 0
+55 0 0
+57 0 0
+56 0 0
+SURF 0X0
+mat 0
+refs 4
+56 0 0
+57 0 0
+59 0 0
+58 0 0
+SURF 0X0
+mat 0
+refs 4
+58 0 0
+59 0 0
+61 0 0
+60 0 0
+SURF 0X0
+mat 0
+refs 32
+3 0 0
+1 0 0
+63 0 0
+61 0 0
+59 0 0
+57 0 0
+55 0 0
+53 0 0
+51 0 0
+49 0 0
+47 0 0
+45 0 0
+43 0 0
+41 0 0
+39 0 0
+37 0 0
+35 0 0
+33 0 0
+31 0 0
+29 0 0
+27 0 0
+25 0 0
+23 0 0
+21 0 0
+19 0 0
+17 0 0
+15 0 0
+13 0 0
+11 0 0
+9 0 0
+7 0 0
+5 0 0
+SURF 0X0
+mat 0
+refs 4
+60 0 0
+61 0 0
+63 0 0
+62 0 0
+SURF 0X0
+mat 0
+refs 4
+62 0 0
+63 0 0
+1 0 0
+0 0 0
+SURF 0X0
+mat 0
+refs 32
+0 0 0
+2 0 0
+4 0 0
+6 0 0
+8 0 0
+10 0 0
+12 0 0
+14 0 0
+16 0 0
+18 0 0
+20 0 0
+22 0 0
+24 0 0
+26 0 0
+28 0 0
+30 0 0
+32 0 0
+34 0 0
+36 0 0
+38 0 0
+40 0 0
+42 0 0
+44 0 0
+46 0 0
+48 0 0
+50 0 0
+52 0 0
+54 0 0
+56 0 0
+58 0 0
+60 0 0
+62 0 0
+kids 0
+OBJECT poly
+name "Cylinder.003"
+data 12
+Cylinder.003
+crease 40.0
+numvert 64
+-1.32545 0 -2.05025
+-1.32545 11 -2.05025
+-1.20839 0 -2.03872
+-1.20839 11 -2.03872
+-1.09584 0 -2.00458
+-1.09584 11 -2.00458
+-0.99211 0 -1.94913
+-0.99211 11 -1.94913
+-0.90119 0 -1.87451
+-0.90119 11 -1.87451
+-0.82657 0 -1.78359
+-0.82657 11 -1.78359
+-0.77112 0 -1.67986
+-0.77112 11 -1.67986
+-0.73698 0 -1.5673
+-0.73698 11 -1.5673
+-0.72545 0 -1.45025
+-0.72545 11 -1.45025
+-0.73698 0 -1.3332
+-0.73698 11 -1.3332
+-0.77112 0 -1.22064
+-0.77112 11 -1.22064
+-0.82657 0 -1.11691
+-0.82657 11 -1.11691
+-0.90119 0 -1.02599
+-0.90119 11 -1.02599
+-0.99211 0 -0.95137
+-0.99211 11 -0.95137
+-1.09584 0 -0.89592
+-1.09584 11 -0.89592
+-1.2084 0 -0.86178
+-1.2084 11 -0.86178
+-1.32545 0 -0.85025
+-1.32545 11 -0.85025
+-1.4425 0 -0.86178
+-1.4425 11 -0.86178
+-1.55506 0 -0.89592
+-1.55506 11 -0.89592
+-1.65879 0 -0.95137
+-1.65879 11 -0.95137
+-1.74971 0 -1.02599
+-1.74971 11 -1.02599
+-1.82433 0 -1.11691
+-1.82433 11 -1.11691
+-1.87978 0 -1.22064
+-1.87978 11 -1.22064
+-1.91392 0 -1.3332
+-1.91392 11 -1.3332
+-1.92545 0 -1.45025
+-1.92545 11 -1.45025
+-1.91392 0 -1.5673
+-1.91392 11 -1.5673
+-1.87978 0 -1.67986
+-1.87978 11 -1.67986
+-1.82433 0 -1.78359
+-1.82433 11 -1.78359
+-1.74971 0 -1.87451
+-1.74971 11 -1.87451
+-1.65879 0 -1.94913
+-1.65879 11 -1.94913
+-1.55506 0 -2.00458
+-1.55506 11 -2.00458
+-1.4425 0 -2.03872
+-1.4425 11 -2.03872
+numsurf 34
+SURF 0X0
+mat 0
+refs 4
+0 0 0
+1 0 0
+3 0 0
+2 0 0
+SURF 0X0
+mat 0
+refs 4
+2 0 0
+3 0 0
+5 0 0
+4 0 0
+SURF 0X0
+mat 0
+refs 4
+4 0 0
+5 0 0
+7 0 0
+6 0 0
+SURF 0X0
+mat 0
+refs 4
+6 0 0
+7 0 0
+9 0 0
+8 0 0
+SURF 0X0
+mat 0
+refs 4
+8 0 0
+9 0 0
+11 0 0
+10 0 0
+SURF 0X0
+mat 0
+refs 4
+10 0 0
+11 0 0
+13 0 0
+12 0 0
+SURF 0X0
+mat 0
+refs 4
+12 0 0
+13 0 0
+15 0 0
+14 0 0
+SURF 0X0
+mat 0
+refs 4
+14 0 0
+15 0 0
+17 0 0
+16 0 0
+SURF 0X0
+mat 0
+refs 4
+16 0 0
+17 0 0
+19 0 0
+18 0 0
+SURF 0X0
+mat 0
+refs 4
+18 0 0
+19 0 0
+21 0 0
+20 0 0
+SURF 0X0
+mat 0
+refs 4
+20 0 0
+21 0 0
+23 0 0
+22 0 0
+SURF 0X0
+mat 0
+refs 4
+22 0 0
+23 0 0
+25 0 0
+24 0 0
+SURF 0X0
+mat 0
+refs 4
+24 0 0
+25 0 0
+27 0 0
+26 0 0
+SURF 0X0
+mat 0
+refs 4
+26 0 0
+27 0 0
+29 0 0
+28 0 0
+SURF 0X0
+mat 0
+refs 4
+28 0 0
+29 0 0
+31 0 0
+30 0 0
+SURF 0X0
+mat 0
+refs 4
+30 0 0
+31 0 0
+33 0 0
+32 0 0
+SURF 0X0
+mat 0
+refs 4
+32 0 0
+33 0 0
+35 0 0
+34 0 0
+SURF 0X0
+mat 0
+refs 4
+34 0 0
+35 0 0
+37 0 0
+36 0 0
+SURF 0X0
+mat 0
+refs 4
+36 0 0
+37 0 0
+39 0 0
+38 0 0
+SURF 0X0
+mat 0
+refs 4
+38 0 0
+39 0 0
+41 0 0
+40 0 0
+SURF 0X0
+mat 0
+refs 4
+40 0 0
+41 0 0
+43 0 0
+42 0 0
+SURF 0X0
+mat 0
+refs 4
+42 0 0
+43 0 0
+45 0 0
+44 0 0
+SURF 0X0
+mat 0
+refs 4
+44 0 0
+45 0 0
+47 0 0
+46 0 0
+SURF 0X0
+mat 0
+refs 4
+46 0 0
+47 0 0
+49 0 0
+48 0 0
+SURF 0X0
+mat 0
+refs 4
+48 0 0
+49 0 0
+51 0 0
+50 0 0
+SURF 0X0
+mat 0
+refs 4
+50 0 0
+51 0 0
+53 0 0
+52 0 0
+SURF 0X0
+mat 0
+refs 4
+52 0 0
+53 0 0
+55 0 0
+54 0 0
+SURF 0X0
+mat 0
+refs 4
+54 0 0
+55 0 0
+57 0 0
+56 0 0
+SURF 0X0
+mat 0
+refs 4
+56 0 0
+57 0 0
+59 0 0
+58 0 0
+SURF 0X0
+mat 0
+refs 4
+58 0 0
+59 0 0
+61 0 0
+60 0 0
+SURF 0X0
+mat 0
+refs 32
+3 0 0
+1 0 0
+63 0 0
+61 0 0
+59 0 0
+57 0 0
+55 0 0
+53 0 0
+51 0 0
+49 0 0
+47 0 0
+45 0 0
+43 0 0
+41 0 0
+39 0 0
+37 0 0
+35 0 0
+33 0 0
+31 0 0
+29 0 0
+27 0 0
+25 0 0
+23 0 0
+21 0 0
+19 0 0
+17 0 0
+15 0 0
+13 0 0
+11 0 0
+9 0 0
+7 0 0
+5 0 0
+SURF 0X0
+mat 0
+refs 4
+60 0 0
+61 0 0
+63 0 0
+62 0 0
+SURF 0X0
+mat 0
+refs 4
+62 0 0
+63 0 0
+1 0 0
+0 0 0
+SURF 0X0
+mat 0
+refs 32
+0 0 0
+2 0 0
+4 0 0
+6 0 0
+8 0 0
+10 0 0
+12 0 0
+14 0 0
+16 0 0
+18 0 0
+20 0 0
+22 0 0
+24 0 0
+26 0 0
+28 0 0
+30 0 0
+32 0 0
+34 0 0
+36 0 0
+38 0 0
+40 0 0
+42 0 0
+44 0 0
+46 0 0
+48 0 0
+50 0 0
+52 0 0
+54 0 0
+56 0 0
+58 0 0
+60 0 0
+62 0 0
+kids 0
diff --git a/S-300/Models/s-300.xml b/S-300/Models/s-300.xml
new file mode 100644
index 0000000..71f63d4
--- /dev/null
+++ b/S-300/Models/s-300.xml
@@ -0,0 +1,299 @@
+
+
+
+
+ s-300.ac
+
+
+ select
+ missile1
+
+
+ active
+ 1
+
+
+
+
+
+ select
+ missile2
+
+
+ active
+ 2
+
+
+
+
+
+ select
+ missile3
+
+
+ active
+ 3
+
+
+
+
+
+ select
+ missile4
+
+
+ active
+ 4
+
+
+
+
+
+ Aircraft/S-300/Models/smoke.xml
+
+ 3.26307
+ -0.84611
+ 2.85616
+ 0
+
+
+
+
+ Aircraft/S-300/Models/fire.xml
+
+ 3.26307
+ -0.84611
+ 2.85616
+ 0
+
+
+
+
+ Aircraft/S-300/Models/smoke.xml
+
+ 3.26307
+ 0.84611
+ 2.85616
+ 0
+
+
+
+
+ Aircraft/S-300/Models/fire.xml
+
+ 3.26307
+ 0.84611
+ 2.85616
+ 0
+
+
+
+
+ Aircraft/S-300/Models/smoke.xml
+
+ -0.80986
+ 0.00064
+ 3.24007
+ 0
+
+
+
+
+ Aircraft/S-300/Models/fire.xml
+
+ -0.80986
+ 0.00064
+ 3.24007
+ 0
+
+
+
+
+ Aircraft/S-300/Models/smoke.xml
+
+ -3.97300
+ 0.00023
+ 1.83017
+ 0
+
+
+
+
+ Aircraft/S-300/Models/fire.xml
+
+ -3.97300
+ 0.00023
+ 1.83017
+ 0
+
+
+
+
+ Aircraft/S-300/Models/smoke.xml
+
+ -4.26653
+ -1.82402
+ 1.44961
+ 0
+
+
+
+
+ Aircraft/S-300/Models/fire.xml
+
+ -4.26653
+ -1.82402
+ 1.44961
+ 0
+
+
+
+
+ Aircraft/S-300/Models/smoke.xml
+
+ -4.26653
+ 1.82402
+ 1.44961
+ 0
+
+
+
+
+ Aircraft/S-300/Models/fire.xml
+
+ -4.26653
+ 1.82402
+ 1.44961
+ 0
+
+
+
+
+ Aircraft/S-300/Models/smoke.xml
+
+ -0.63979
+ -2.14385
+ 0.05906
+ 0
+
+
+
+
+ Aircraft/S-300/Models/fire.xml
+
+ -0.63979
+ -2.14385
+ 0.05906
+ 0
+
+
+
+
+ Aircraft/S-300/Models/smoke.xml
+
+ -0.63979
+ 2.14385
+ 0.05906
+ 0
+
+
+
+
+ Aircraft/S-300/Models/fire.xml
+
+ -0.63979
+ 2.14385
+ 0.05906
+ 0
+
+
+
+
+
+
+
+
+
diff --git a/S-300/Models/smoke.png b/S-300/Models/smoke.png
new file mode 100644
index 0000000..d2a4d96
Binary files /dev/null and b/S-300/Models/smoke.png differ
diff --git a/S-300/Models/smoke.xml b/S-300/Models/smoke.xml
new file mode 100644
index 0000000..5c25318
--- /dev/null
+++ b/S-300/Models/smoke.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+ smoke.png
+
+
+ sim/multiplay/generic/int[0]
+ 1
+
+
+ false
+ false
+ billboard
+ world
+
+
+ pointdamage.fail_systems(10000);
+
+
+ 65
+ 35
+ -20
+ 20
+
+ 500
+ 10
+
+
+ 0
+ 0
+ -180
+ 0
+ 0
+ 360
+
+
+
+
+ 50
+ 1
+
+
+
+
+
+ 0.0
+ 0.0
+ 0.0
+ 0.08
+
+
+ 5
+
+
+
+
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+ 15.0
+
+
+
+ 4
+
+ 0.0085
+ 0.50
+
+
+ air
+ true
+ true
+
+
+
+
diff --git a/S-300/Nasal/damage.nas b/S-300/Nasal/damage.nas
new file mode 100644
index 0000000..db0eea5
--- /dev/null
+++ b/S-300/Nasal/damage.nas
@@ -0,0 +1,522 @@
+#
+# Install: Include this code into an aircraft to make it damagable. (remember to add it to the -set file)
+#
+# Authors: Nikolai V. Chr. and Pinto (with improvement by Onox)
+#
+#
+
+
+############################ Config ######################################################################################
+var full_damage_dist_m = 3;# Can vary from aircraft to aircraft depending on how many failure modes it has.
+ # Many modes (like Viggen) ought to have lower number like zero.
+ # Few modes (like F-14) ought to have larger number such as 3.
+ # For assets this should be average radius of the asset.
+var use_hitpoints_instead_of_failure_modes_bool = 1;# mainly used by assets that don't have failure modes.
+var hp_max = 80;# given a direct hit, how much pounds of warhead is needed to kill. Only used if hitpoints is enabled.
+var hitable_by_air_munitions = 0; # if anti-air can do damage
+var hitable_by_cannon = 1; # if cannon can do damage
+var hitable_by_ground_munitions = 1;# if anti-ground/marine can do damage
+var is_fleet = 0; # Is really 7 ships, 3 of which has offensive missiles.
+##########################################################################################################################
+
+##
+## TODO:
+## Include mechanics for hitting fleet
+## Move all to emesary
+##
+
+
+var TRUE = 1;
+var FALSE = 0;
+
+var hp = hp_max;
+setprop("sam/damage", math.max(0,100*hp/hp_max));#used in HUD
+
+var cannon_types = {
+ #
+ # 0.20 means a direct hit will disable 20% of the failure modes on average.
+ # or, 0.20 also means a direct hit can do 20 hitpoints damage.
+ #
+ " M70 rocket hit": 0.250, #135mm
+ " S-5 rocket hit": 0.200, # 55mm
+ " M55 cannon shell hit": 0.100, # 30mm
+ " KCA cannon shell hit": 0.100, # 30mm
+ " Gun Splash On ": 0.100, # 30mm
+ " GSh-30 hit": 0.100, # 30mm
+ " GAU-8/A hit": 0.100, # 30mm
+ " BK27 cannon hit": 0.070, # 27mm
+ " GSh-23 hit": 0.065, # 23mm
+ " M61A1 shell hit": 0.050, # 20mm
+ " 50 BMG hit": 0.015, # 12.7mm (non-explosive)
+ " 7.62 hit": 0.005, # 7.62mm (non-explosive)
+};
+
+# lbs of warheads is explosive+fragmentation+fuse, so total warhead mass.
+
+var warhead_lbs = {
+ # Anti-ground/marine warheads (sorted alphabetically)
+ "AGM-65": 126.00,
+ "AGM-84": 488.00,
+ "AGM-88": 146.00,
+ "AGM65": 200.00,
+ "AGM-154A": 493.00,
+ "AGM-158": 1000.00,
+ "ALARM": 450.00,
+ "AM39-Exocet": 364.00,
+ "AS-37-Martel": 330.00,
+ "AS30L": 529.00,
+ "CBU-87": 100.00,# bomblet warhead. Mix of armour piecing and HE. 100 due to need to be able to kill buk-m2.
+ "Exocet": 364.00,
+ "FAB-100": 92.59,
+ "FAB-250": 202.85,
+ "FAB-500": 564.38,
+ "GBU-12": 190.00,
+ "GBU-24": 945.00,
+ "GBU-31": 945.00,
+ "GBU-54": 190.00,
+ "GBU12": 190.00,
+ "GBU16": 450.00,
+ "HVAR": 7.50,#P51
+ "KAB-500": 564.38,
+ "Kh-25MP": 197.53,
+ "Kh-66": 244.71,
+ "LAU-68": 10.00,
+ "M71": 200.00,
+ "M71R": 200.00,
+ "M90": 10.00,# bomblet warhead. x3 of real mass.
+ "MK-82": 192.00,
+ "MK-83": 445.00,
+ "MK-84": 945.00,
+ "OFAB-100": 92.59,
+ "RB-04E": 661.00,
+ "RB-05A": 353.00,
+ "RB-15F": 440.92,
+ "RB-75": 126.00,
+ "RN-14T": 800.00, #fictional, thermobaeric replacement for the RN-24 nuclear bomb
+ "RN-18T": 1200.00, #fictional, thermobaeric replacement for the RN-28 nuclear bomb
+ "RS-2US": 28.66,
+ "S-21": 245.00,
+ "S-24": 271.00,
+ "SCALP": 992.00,
+ "Sea Eagle": 505.00,
+ "SeaEagle": 505.00,
+ "STORMSHADOW": 850.00,
+ "ZB-250": 236.99,
+ "ZB-500": 473.99,
+};
+
+var warhead_air_lbs = {
+ # Anti-air warheads (sorted alphabetically)
+ "aim-120": 44.00,
+ "AIM-120": 44.00,
+ "AIM-54": 135.00,
+ "aim-7": 88.00,
+ "AIM-7": 88.00,
+ "aim-9": 20.80,
+ "AIM-9": 20.80,
+ "AIM120": 44.00,
+ "AIM132": 22.05,
+ "AIM9": 20.80,
+ "KN-06": 315.00,
+ "M317": 145.00,
+ "Magic-2": 27.00,
+ "Matra MICA": 30.00,
+ "Matra R550 Magic 2": 27.00,
+ "MATRA-R530": 55.00,
+ "MatraMica": 30.00,
+ "MatraMicaIR": 30.00,
+ "MatraR550Magic2": 27.00,
+ "Meteor": 55.00,
+ "MICA-EM": 30.00,
+ "MICA-IR": 30.00,
+ "R-13M": 16.31,
+ "R-27R1": 85.98,
+ "R-27T1": 85.98,
+ "R-3R": 16.31,
+ "R-3S": 16.31,
+ "R-55": 20.06,
+ "R-60": 6.60,
+ "R-60M": 7.70,
+ "R-73E": 16.31,
+ "R-77": 49.60,
+ "R74": 16.00,
+ "RB-05A": 353.00,
+ "RB-24": 20.80,
+ "RB-24J": 20.80,
+ "RB-71": 88.00,
+ "RB-74": 20.80,
+ "RB-99": 44.00,
+ "S530D": 66.00,
+};
+
+var cluster = {
+ # cluster munition list
+ "M90": nil,
+ "CBU-87": nil,
+};
+
+var fireMsgs = {
+
+ # F14
+ " FOX3 at": nil, # radar
+ " FOX2 at": nil, # heat
+ " FOX1 at": nil, # semi-radar
+
+ # Generic
+ " Fox 1 at": nil, # semi-radar
+ " Fox 2 at": nil, # heat
+ " Fox 3 at": nil, # radar
+ " Greyhound at": nil, # cruise missile
+ " Bombs away at": nil, # bombs
+ " Bruiser at": nil, # anti-ship
+ " Rifle at": nil, # TV guided
+ " Sniper at": nil, # anti-radiation
+
+ # SAM, fleet and missile frigate
+ " Bird away at": nil, # G/A
+
+ # F15
+ " aim7 at": nil,
+ " aim9 at": nil,
+ " aim120 at": nil,
+};
+
+var incoming_listener = func {# test "Leto: AGM-88 exploded: 4.4 meters from: OPFORd4:."
+ var history = getprop("/sim/multiplay/chat-history");
+ var hist_vector = split("\n", history);
+ if (size(hist_vector) > 0) {
+ var last = hist_vector[size(hist_vector)-1];
+ var last_vector = split(":", last);
+ var author = last_vector[0];
+ var callsign = getprop("sim/multiplay/callsign");
+ callsign = size(callsign) < 8 ? callsign : left(callsign,7);
+ if (size(last_vector) > 1 and author != callsign) {
+ # not myself
+ #print("not me");
+ var m2000 = FALSE;
+ if (find(" at " ~ callsign ~ ". Release ", last_vector[1]) != -1) {
+ # a m2000 is firing at us
+ m2000 = TRUE;
+ }
+ if (contains(fireMsgs, last_vector[1]) or m2000 == TRUE) {
+ # air2air being fired
+ warn(last_vector,m2000,callsign,author);
+ } elsif (getprop("payload/armament/msg")) {
+ var last1 = split(" ", last_vector[1]);
+ if(size(last1) > 2 and last1[size(last1)-1] == "exploded" ) {
+ #print("missile hitting someone");
+ if (size(last_vector) > 3 and last_vector[3] == " "~callsign) {
+ #print("that someone is me!");
+ var type = last1[1];
+ if (type == "Matra" or type == "Sea") {
+ for (var i = 2; i < size(last1)-1; i += 1) {
+ type = type~" "~last1[i];
+ }
+ }
+ var number = split(" ", last_vector[2]);
+ var distance = num(number[1]);
+ #print(type~"|");
+ if(distance != nil) {
+ var dist = distance;
+
+ if (contains(cluster, type)) {
+ # cluster munition
+ var lbs = warhead_lbs[type];
+ var maxDist = maxDamageDistFromWarhead(lbs);
+ var distance = math.max(0,rand()*5-full_damage_dist_m);#being 0 to 5 meters from a bomblet on average.
+ var diff = math.max(0, maxDist-distance);
+ diff = diff * diff;
+ var probability = diff / (maxDist*maxDist);
+ if (use_hitpoints_instead_of_failure_modes_bool) {
+ var hpDist = maxDamageDistFromWarhead(hp_max);
+ probability = (maxDist/hpDist)*probability;
+ }
+ var failed = fail_systems(probability, hp_max);
+ var percent = 100 * prob;
+ printf("Took %.1f%% damage from %s clusterbomb at %0.1f meters from bomblet. %s systems was hit", percent,type,distance,failed);
+ nearby_explosion();
+ return;
+ }
+
+ distance = math.max(distance-full_damage_dist_m, 0);
+
+ var maxDist = 0;# distance where the explosion dont hurt us anymore
+ var lbs = 0;
+
+ if (hitable_by_ground_munitions and contains(warhead_lbs, type)) {
+ lbs = warhead_lbs[type];
+ maxDist = maxDamageDistFromWarhead(lbs);#3*sqrt(lbs)
+ } elsif (hitable_by_air_munitions and contains(warhead_air_lbs, type)) {
+ lbs = warhead_air_lbs[type];
+ maxDist = maxDamageDistFromWarhead(lbs);
+ } else {
+ return;
+ }
+
+ var diff = maxDist-distance;
+ if (diff < 0) {
+ diff = 0;
+ }
+ diff = diff * diff;
+
+ var probability = diff / (maxDist*maxDist);
+
+ if (use_hitpoints_instead_of_failure_modes_bool) {
+ var hpDist = maxDamageDistFromWarhead(hp_max);
+ probability = (maxDist/hpDist)*probability;
+ }
+
+ var failed = fail_systems(probability, hp_max);
+ var percent = 100 * probability;
+ printf("Took %.1f%% damage from %s missile at %0.1f meters. %s systems was hit", percent,type,dist,failed);
+ nearby_explosion();
+
+ ####
+ # I don't remember all the considerations that went into our original warhead damage model.
+ # But looking at the formula it looks like they all do 100% damage at 0 meter hit,
+ # and warhead size is only used to determine the decrease of damage with distance increase.
+ # It sorta gets the job done though, so I am hesitant to advocate that warheads above a certain
+ # size should give 100% damage for some distance, and that warheads smaller than certain size should
+ # not give 100% damage even on direct hit.
+ # Anyway, for hitpoint based assets, this is now the case. Maybe we should consider to also do something
+ # similar for failure mode based aircraft. ~Nikolai
+ ####
+
+ ## example 1: ##
+ # 300 lbs warhead, 50 meters distance
+ # maxDist=52
+ # diff = 52-50 = 2
+ # diff^2 = 4
+ # prob = 4/2700 = 0.15%
+
+ ## example 2: ##
+ # 300 lbs warhead, 25 meters distance
+ # maxDist=52
+ # diff = 52-25 = 27
+ # diff^2 = 729
+ # prob = 729/2700 = 27%
+ }
+ }
+ } elsif (hitable_by_cannon and cannon_types[last_vector[1]] != nil) {
+ if (size(last_vector) > 2 and last_vector[2] == " "~callsign) {
+ if (size(last_vector) < 4) {
+ # msg is either missing number of hits, or has no trailing dots from spam filter.
+ print('"'~last~'" is not a legal hit message, tell the shooter to upgrade his OPRF plane :)');
+ return;
+ }
+ var last3 = split(" ", last_vector[3]);
+ if(size(last3) > 2 and size(last3[2]) > 2 and last3[2] == "hits" ) {
+ var probability = cannon_types[last_vector[1]];
+ var hit_count = num(last3[1]);
+ if (hit_count != nil) {
+ var damaged_sys = 0;
+ for (var i = 1; i <= hit_count; i = i + 1) {
+ var failed = fail_systems(probability);
+ damaged_sys = damaged_sys + failed;
+ }
+
+ printf("Took %.1f%% x %2d damage from cannon! %s systems was hit.", probability*100, hit_count, damaged_sys);
+ nearby_explosion();
+ }
+ } else {
+ var probability = cannon_types[last_vector[1]];
+ #print("probability: " ~ probability);
+
+ var failed = fail_systems(probability * 3);# Old messages is assumed to be 3 hits
+ printf("Took %.1f%% x 3 damage from cannon! %s systems was hit.", probability*100, failed);
+ nearby_explosion();
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+var maxDamageDistFromWarhead = func (lbs) {
+ # Calc at what distance the warhead will do zero damage every time.
+ var dist = 3*math.sqrt(lbs);
+ return dist;
+}
+
+var fail_systems = func (probability, factor = 100) {#this factor needs tuning after all asset hitpoints have been evaluated.
+ if (is_fleet) {
+ return fail_fleet_systems(probability, factor);
+ } elsif (use_hitpoints_instead_of_failure_modes_bool) {
+ hp -= factor * probability*(0.75+rand()*0.25);# from 75 to 100% damage
+ printf("HP: %d/%d", hp, hp_max);
+ setprop("sam/damage", math.max(0,100*hp/hp_max));#used in HUD
+ if ( hp < 0 ) {
+ setprop("/carrier/sunk/",1);#we are dead
+ setprop("/sim/multiplay/generic/int[2]",1);#radar off
+ setprop("/sim/multiplay/generic/int[0]",1);#smoke on
+ setprop("/sim/messages/copilot", getprop("sim/multiplay/callsign")~" dead.");
+ }
+ return -1;
+ } else {
+ var failure_modes = FailureMgr._failmgr.failure_modes;
+ var mode_list = keys(failure_modes);
+ var failed = 0;
+ foreach(var failure_mode_id; mode_list) {
+ if (rand() < probability) {
+ FailureMgr.set_failure_level(failure_mode_id, 1);
+ failed += 1;
+ }
+ }
+ return failed;
+ }
+};
+
+hp_f = [hp_max,hp_max,hp_max,hp_max,hp_max,hp_max,hp_max];
+
+var fail_fleet_systems = func (probability, factor) {
+ var no = 7;
+ while (no > 6 or hp_f[no] < 0) {
+ no = int(rand()*7);
+ if (hp_f[no] < 0) {
+ if (rand() > 0.9) {
+ armament.defeatSpamFilter("You shot one of our already sinking ships, you are just mean.");
+ hp_f[no] -= factor * probability*(0.75+rand()*0.25);# from 75 to 100% damage
+ print("HP["~no~"]: " ~ hp_f[no] ~ "/" ~ hp_max);
+ return;
+ }
+ }
+ }
+ hp_f[no] -= factor * probability*(0.75+rand()*0.25);# from 75 to 100% damage
+ printf("HP[%d]: %d/%d", no, hp_f[no], hp_max);
+ #setprop("sam/damage", math.max(0,100*hp/hp_max));#used in HUD
+ if ( hp_f[no] < 0 ) {
+ setprop("/sim/multiplay/generic/bool["~(no+40)~"]",1);
+ armament.defeatSpamFilter("So you sank one of our ships, we will get you for that!");
+ if (!getprop("/carrier/disabled") and hp_f[0]<0 and hp_f[1]<0 and hp_f[2]<0) {
+ setprop("/carrier/disabled",1);
+ armament.defeatSpamFilter("Captain our offensive capability is crippled!");
+ }
+ if (hp_f[0]<0 and hp_f[1]<0 and hp_f[2]<0 and hp_f[3]<0 and hp_f[4]<0 and hp_f[5]<0 and hp_f[6]<0) {
+ setprop("/carrier/sunk",1);
+ setprop("/sim/multiplay/generic/int[2]",1);#radar off
+ setprop("/sim/messages/copilot", getprop("sim/multiplay/callsign")~" dead.");
+ armament.defeatSpamFilter("S.O.S. Heeelp");
+ } else {
+ armament.defeatSpamFilter("This is not over yet..");
+ }
+ }
+ return -1;
+};
+
+var warn = func (last_vector,m2000,callsign,author) {
+ if (size(last_vector) > 2 or m2000 == TRUE) {
+ #print("Missile launch detected at"~last_vector[2]~" from "~author);
+ if (m2000 == TRUE or last_vector[2] == " "~callsign) {
+ # its being fired at me
+ #print("Incoming!");
+ var enemy = getCallsign(author);
+ if (enemy != nil) {
+ #print("enemy identified");
+ var bearingNode = enemy.getNode("radar/bearing-deg");
+ if (bearingNode != nil) {
+ #print("bearing to enemy found");
+ var bearing = bearingNode.getValue();
+ var heading = getprop("orientation/heading-deg");
+ var clock = bearing - heading;
+ while(clock < 0) {
+ clock = clock + 360;
+ }
+ while(clock > 360) {
+ clock = clock - 360;
+ }
+ #print("incoming from "~clock);
+ if (clock >= 345 or clock < 15) {
+ playIncomingSound("12");
+ } elsif (clock >= 15 and clock < 45) {
+ playIncomingSound("1");
+ } elsif (clock >= 45 and clock < 75) {
+ playIncomingSound("2");
+ } elsif (clock >= 75 and clock < 105) {
+ playIncomingSound("3");
+ } elsif (clock >= 105 and clock < 135) {
+ playIncomingSound("4");
+ } elsif (clock >= 135 and clock < 165) {
+ playIncomingSound("5");
+ } elsif (clock >= 165 and clock < 195) {
+ playIncomingSound("6");
+ } elsif (clock >= 195 and clock < 225) {
+ playIncomingSound("7");
+ } elsif (clock >= 225 and clock < 255) {
+ playIncomingSound("8");
+ } elsif (clock >= 255 and clock < 285) {
+ playIncomingSound("9");
+ } elsif (clock >= 285 and clock < 315) {
+ playIncomingSound("10");
+ } elsif (clock >= 315 and clock < 345) {
+ playIncomingSound("11");
+ } else {
+ playIncomingSound("");
+ }
+ return;
+ }
+ }
+ }
+ }
+}
+
+var playIncomingSound = func (clock) {
+ setprop("sound/incoming"~clock, 1);
+ settimer(func {stopIncomingSound(clock);},3);
+}
+
+var stopIncomingSound = func (clock) {
+ setprop("sound/incoming"~clock, 0);
+}
+
+var nearby_explosion = func {
+ setprop("damage/sounds/nearby-explode-on", 0);
+ settimer(nearby_explosion_a, 0);
+}
+
+var nearby_explosion_a = func {
+ setprop("damage/sounds/nearby-explode-on", 1);
+ settimer(nearby_explosion_b, 0.5);
+}
+
+var nearby_explosion_b = func {
+ setprop("damage/sounds/nearby-explode-on", 0);
+}
+
+var callsign_struct = {};
+var getCallsign = func (callsign) {
+ var node = callsign_struct[callsign];
+ return node;
+}
+
+var processCallsigns = func () {
+ callsign_struct = {};
+ var players = props.globals.getNode("ai/models").getChildren();
+ 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) {
+ var callsign = player.getChild("callsign").getValue();
+ callsign_struct[callsign] = player;
+ }
+ }
+ settimer(processCallsigns, 5);
+}
+
+processCallsigns();
+
+setlistener("/sim/multiplay/chat-history", incoming_listener, 0, 0);
+
+# prevent flooding the pilots screen with failure modes that fail when getting hit.
+setprop("/sim/failure-manager/display-on-screen", FALSE);
+
+var re_init = func {
+ # repair the aircraft at relocation to another airport.
+
+ var failure_modes = FailureMgr._failmgr.failure_modes;
+ var mode_list = keys(failure_modes);
+
+ foreach(var failure_mode_id; mode_list) {
+ FailureMgr.set_failure_level(failure_mode_id, 0);
+ }
+}
+
+setlistener("/sim/signals/reinit", re_init, 0, 0);
\ No newline at end of file
diff --git a/S-300/Nasal/fdm.nas b/S-300/Nasal/fdm.nas
new file mode 100644
index 0000000..0421fce
--- /dev/null
+++ b/S-300/Nasal/fdm.nas
@@ -0,0 +1,78 @@
+# 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 .
+
+#io.include("Aircraft/ExpansionPack/Nasal/init.nas");
+
+#with("updateloop");
+
+# Number of iterations per second
+var frequency = 60.0;
+
+# Change in heading per second at full rudder deflection
+var heading_ps = 0.5;
+
+time_last = 0;
+sim_speed = 1;
+
+setprop("/carrier/pitch-deg",0);
+setprop("/carrier/pitch-offset",0);
+setprop("/carrier/roll-deg",0);
+setprop("/carrier/roll-offset",0);
+setprop("/carrier/sunk",0);
+
+var PositionUpdater = func () {
+
+ var position = geo.aircraft_position();
+
+ var time_now = getprop("/sim/time/elapsed-sec");
+ var dt = (time_now - time_last) * sim_speed;
+ if (dt == 0) return;
+
+ time_last = time_now;
+
+ var heading = getprop("/orientation/heading-deg");
+ var speed = getprop("/velocities/groundspeed-kt");
+ var rudder = getprop("/surface-positions/rudder-pos-norm");
+
+ var distance = speed * globals.KT2MPS * dt;
+ position.apply_course_distance(heading, distance);
+
+ # Set new position
+ setprop("/position/latitude-deg", position.lat());
+ setprop("/position/longitude-deg", position.lon());
+ setprop("/position/altitude-ft", getprop("/position/ground-elev-ft"));
+
+
+ if ( getprop("/carrier/sunk") == 0 ) {
+
+ # Update heading
+ var course = heading + rudder * heading_ps * dt;
+ setprop("/orientation/heading-deg", course);
+
+ } else {
+ return;
+ }
+
+ #set pitch
+ setprop("/orientation/pitch-deg",getprop("/carrier/pitch-deg") + getprop("/carrier/pitch-offset"));
+
+ #set roll
+ setprop("/orientation/roll-deg",getprop("/carrier/roll-deg") + getprop("/carrier/roll-offset"));
+
+ settimer( PositionUpdater, 1/frequency );
+
+};
+
+PositionUpdater();
\ No newline at end of file
diff --git a/S-300/S-300-set.xml b/S-300/S-300-set.xml
new file mode 100644
index 0000000..2eec9a0
--- /dev/null
+++ b/S-300/S-300-set.xml
@@ -0,0 +1,369 @@
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+ 15.0
+
+
+ 0.5
+ 4.0
+
+
+ 0.32
+ 0.45
+
+
+ 30.0
+
+
+ 20.0
+
+ true
+
+
+
+
+
+ pinto
+ S-300
+ S-300 (SA-10) is a Russian self-propelled surface to air missile system.
+ alpha
+ 0.1
+
+ null
+
+ KPN-D
+ KPN
+
+
+ Aircraft/S-300/Models/s-300.xml
+
+
+ true
+
+
+
+ Sounds/sound.xml
+
+
+
+ true
+
+
+
+ Aircraft/S-300/splash1.png
+
+
+
+
+ exterior
+ true
+ gui/1.png
+
+
+ exterior
+ true
+ gui/2.png
+
+
+
+
+ true
+
+ 0.0
+ 0.0
+ false
+
+ 100.0
+ 2000.0
+
+
+
+ Aircraft/S-300/Hud/hud.xml
+ true
+
+ 11.0
+
+
+
+
+ true
+
+
+
+
+ Systems/fbw.xml
+
+
+ Systems/fdm.xml
+
+
+
+ Systems/views.xml
+
+
+
+ 500
+
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+ enemies/e1
+ enemies/e2
+ enemies/e3
+ enemies/e4
+ enemies/e5
+ enemies/e6
+ enemies/e7
+ enemies/e8
+ enemies/e9
+ enemies/e10
+ enemies/e11
+ enemies/e12
+
+
+
+
+
+ 0
+ false
+
+
+ 0
+ 0
+ 0
+
+ false
+
+
+
+ 0
+ 0
+ 0
+
+ false
+
+
+
+ 0
+ 0
+ 0
+
+ false
+
+
+
+ 0
+ 0
+ 0
+
+ false
+
+
+
+
+
+
+ Main Store
+
+ none
+
+ M317
+ 50
+
+
+
+
+ Aircraft/S-300/Models/Armament/Weapons/
+ true
+ true
+ rotors/main/blade[0]/flap-deg
+ rotors/main/blade[1]/flap-deg
+ rotors/main/blade[2]/flap-deg
+ true
+ 1
+ controls/armament
+ station
+ true
+ true
+
+ 0.00
+ 0.15
+ 0.1
+ radar
+ APN
+ true
+ 85
+ 360
+ 220
+ 22
+ 90000
+ 77000
+ 0.25
+ 8.0
+ 3920
+ 315
+ 2800
+ 0.20
+ 2.11349
+ 2
+ 0.25
+ 160
+ true
+ 3000
+ 75000
+ 0.85
+ 200
+ true
+ 7.5
+ false
+ 90
+ 0.95
+ 3
+ A
+ Bird away
+ true
+
+
+
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+
+
+
+ -1
+ -1
+ -1
+ -1
+ -1
+ -1
+ -1
+ -1
+ 4
+ 600
+ 100
+
+
+
+ Leto
+ swamp
+ pinto
+ fb237
+ Wilco-1
+ Kokos
+ J-Mav16
+ S
+ Raider1
+ Slobb
+ 5H1N0B1
+ SNOWY1
+
+
+ 0
+ 1
+
+
+
+ Aircraft/S-300/Nasal/fdm.nas
+
+
+ Aircraft/S-300/Nasal/damage.nas
+
+
+ Aircraft/S-300/Nasal/radar-logic.nas
+
+
+ Aircraft/S-300/Nasal/vector.nas
+
+
+ Aircraft/S-300/Nasal/guided-missiles.nas
+
+
+ Aircraft/S-300/Nasal/fire-control.nas
+
+
+
+
diff --git a/S-300/Sim/mice.xml b/S-300/Sim/mice.xml
new file mode 100644
index 0000000..2f2bf35
--- /dev/null
+++ b/S-300/Sim/mice.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/S-300/Sounds/sound.xml b/S-300/Sounds/sound.xml
new file mode 100644
index 0000000..39516e7
--- /dev/null
+++ b/S-300/Sounds/sound.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+ missile
+ Aircraft/S-300/Sounds/launch.wav
+ once
+
+ payload/armament/kn-06/sound-fire-on-off
+
+ 50
+ 15000
+
+ 0.01
+ 0.01
+ 0.01
+
+
+ 1
+ 1
+
+
+
+
diff --git a/S-300/Systems/fbw.xml b/S-300/Systems/fbw.xml
new file mode 100644
index 0000000..107c064
--- /dev/null
+++ b/S-300/Systems/fbw.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+ FBW Throttle
+ gain
+ 80.0
+
+ /controls/engines/engine[0]/throttle
+
+
+
+
+
+ FBW Rudder
+ gain
+ 8.0
+
+ /controls/flight/rudder
+
+
+
+
+
diff --git a/S-300/Systems/fdm.xml b/S-300/Systems/fdm.xml
new file mode 100644
index 0000000..7a847c8
--- /dev/null
+++ b/S-300/Systems/fdm.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+ FDM Groundspeed
+ noise-spike
+
+ /carrier/fbw/target/groundspeed-kt
+
+
+
+
+ 7
+
+
+
+
+ FDM True Heading For Flags
+ gain
+
+ /orientation/heading-deg
+
+
+
+
+
+
+
+
+
+
+
diff --git a/S-300/gui/1.png b/S-300/gui/1.png
new file mode 100644
index 0000000..6448d28
Binary files /dev/null and b/S-300/gui/1.png differ
diff --git a/S-300/gui/2.png b/S-300/gui/2.png
new file mode 100644
index 0000000..4367ab7
Binary files /dev/null and b/S-300/gui/2.png differ
diff --git a/S-300/gui/dialogs/enemies.xml b/S-300/gui/dialogs/enemies.xml
new file mode 100644
index 0000000..67f39af
--- /dev/null
+++ b/S-300/gui/dialogs/enemies.xml
@@ -0,0 +1,348 @@
+
+
+ enemies
+ false
+ vbox
+ true
+ true
+ 250
+ 550
+
+
+ hbox
+ 1
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ 25
+
+
+
+ 250
+ 25
+
+ enemies/e1
+ true
+ left
+
+ dialog-apply
+
+
+ 1
+ 0.5
+ 0.5
+
+
+
+ enemies/opfor-switch
+
+
+ enemies/friend-switch
+
+
+
+
+ 250
+ 25
+
+ enemies/e2
+ true
+ left
+
+ dialog-apply
+
+
+ 1
+ 0.5
+ 0.5
+
+
+
+ enemies/opfor-switch
+
+
+ enemies/friend-switch
+
+
+
+
+ 250
+ 25
+
+ enemies/e3
+ true
+ left
+
+ dialog-apply
+
+
+ 1
+ 0.5
+ 0.5
+
+
+
+ enemies/opfor-switch
+
+
+ enemies/friend-switch
+
+
+
+
+ 250
+ 25
+
+ enemies/e4
+ true
+ left
+
+ dialog-apply
+
+
+ 1
+ 0.5
+ 0.5
+
+
+
+ enemies/opfor-switch
+
+
+ enemies/friend-switch
+
+
+
+
+ 250
+ 25
+
+ enemies/e5
+ true
+ left
+
+ dialog-apply
+
+
+ 1
+ 0.5
+ 0.5
+
+
+
+ enemies/opfor-switch
+
+
+ enemies/friend-switch
+
+
+
+
+ 250
+ 25
+
+ enemies/e6
+ true
+ left
+
+ dialog-apply
+
+
+ 1
+ 0.5
+ 0.5
+
+
+
+ enemies/opfor-switch
+
+
+ enemies/friend-switch
+
+
+
+
+ 250
+ 25
+
+ enemies/e7
+ true
+ left
+
+ dialog-apply
+
+
+ 1
+ 0.5
+ 0.5
+
+
+
+ enemies/opfor-switch
+
+
+ enemies/friend-switch
+
+
+
+
+ 250
+ 25
+
+ enemies/e8
+ true
+ left
+
+ dialog-apply
+
+
+ 1
+ 0.5
+ 0.5
+
+
+
+ enemies/opfor-switch
+
+
+ enemies/friend-switch
+
+
+
+
+ 250
+ 25
+
+ enemies/e9
+ true
+ left
+
+ dialog-apply
+
+
+ 1
+ 0.5
+ 0.5
+
+
+
+ enemies/opfor-switch
+
+
+ enemies/friend-switch
+
+
+
+
+ 250
+ 25
+
+ enemies/e10
+ true
+ left
+
+ dialog-apply
+
+
+ 1
+ 0.5
+ 0.5
+
+
+
+ enemies/opfor-switch
+
+
+ enemies/friend-switch
+
+
+
+
+ 250
+ 25
+
+ enemies/e11
+ true
+ left
+
+ dialog-apply
+
+
+ 1
+ 0.5
+ 0.5
+
+
+
+ enemies/opfor-switch
+
+
+ enemies/friend-switch
+
+
+
+
+ 250
+ 25
+
+ enemies/e12
+ true
+ left
+
+ dialog-apply
+
+
+ 1
+ 0.5
+ 0.5
+
+
+
+ enemies/opfor-switch
+
+
+ enemies/friend-switch
+
+
+
+
+ 12
+ 12
+ /enemies/opfor-switch
+
+
+ dialog-apply
+
+
+
+ 12
+ 12
+ /enemies/friend-switch
+
+
+ dialog-apply
+
+
+
\ No newline at end of file
diff --git a/S-300/gui/dialogs/prio.xml b/S-300/gui/dialogs/prio.xml
new file mode 100644
index 0000000..072157e
--- /dev/null
+++ b/S-300/gui/dialogs/prio.xml
@@ -0,0 +1,148 @@
+
+
+ priority
+ false
+ vbox
+ true
+ false
+ 125
+ 200
+
+
+ 1
+ hbox
+
+
+
+ 1
+
+
+
+ table
+
+
+ right
+ 0
+ 0
+
+
+ 0
+ 1
+ priority0
+ true
+
+ nasal
+
+
+
+
+
+ right
+ 1
+ 0
+
+
+ 1
+ 1
+ priority1
+ true
+
+ nasal
+
+
+
+
+
+ right
+ 2
+ 0
+
+
+ 2
+ 1
+ priority2
+ true
+
+ nasal
+
+
+
+
+
+ right
+ 3
+ 0
+
+
+ 3
+ 1
+ priority3
+ true
+
+ nasal
+
+
+
+
+
+ right
+ 4
+ 0
+
+
+ 4
+ 1
+ priority4
+ true
+
+ nasal
+
+
+
+
+
+ right
+ 5
+ 0
+
+
+ 5
+ 1
+ priority5
+ true
+
+ nasal
+
+
+
+
+
+ right
+ 6
+ 0
+
+
+ 6
+ 1
+ priority6
+ true
+
+ nasal
+
+
+
+
+
\ No newline at end of file
diff --git a/S-300/splash1.png b/S-300/splash1.png
new file mode 100644
index 0000000..6d75567
Binary files /dev/null and b/S-300/splash1.png differ
diff --git a/S-300/thumbnail.jpg b/S-300/thumbnail.jpg
new file mode 100644
index 0000000..3580984
Binary files /dev/null and b/S-300/thumbnail.jpg differ