diff --git a/Environment/volcanoes.xml b/Environment/volcanoes.xml
index b9ffb4726..d069a614c 100644
--- a/Environment/volcanoes.xml
+++ b/Environment/volcanoes.xml
@@ -33,5 +33,10 @@
0
+
+ 0
+ 0
+
+
diff --git a/Models/Volcanoes/Surtsey/ash.png b/Models/Volcanoes/Surtsey/ash.png
new file mode 100755
index 000000000..acf8bcfdc
Binary files /dev/null and b/Models/Volcanoes/Surtsey/ash.png differ
diff --git a/Models/Volcanoes/Surtsey/main_crater.xml b/Models/Volcanoes/Surtsey/main_crater.xml
new file mode 100755
index 000000000..3ef11a070
--- /dev/null
+++ b/Models/Volcanoes/Surtsey/main_crater.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+ surtsey_smoke.xml
+
+ 0.0
+ 0.0
+ 0.0
+ 0
+
+
+
+ /environment/volcanoes/surtsey/main-activity
+ 1
+
+
+
+
+
+ surtsey_main_ash_eruption.xml
+
+ 0.0
+ 0.0
+ 0.0
+ 0
+
+
+
+ /environment/volcanoes/surtsey/main-activity
+ 2
+
+
+
+
+
+ surtsey_main_ash_eruption_secondary.xml
+
+ 0.0
+ 0.0
+ 0.0
+ 0
+
+
+
+ /environment/volcanoes/surtsey/main-activity
+ 2
+
+
+
+
+
+ surtsey_smoke_small.xml
+
+ 50.0
+ 500.0
+ 0.0
+ 0
+
+
+
+ /environment/volcanoes/surtsey/side-activity
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Models/Volcanoes/Surtsey/smoke_turbulent.png b/Models/Volcanoes/Surtsey/smoke_turbulent.png
new file mode 100755
index 000000000..f71a7ad83
Binary files /dev/null and b/Models/Volcanoes/Surtsey/smoke_turbulent.png differ
diff --git a/Models/Volcanoes/Surtsey/surtsey.nas b/Models/Volcanoes/Surtsey/surtsey.nas
new file mode 100755
index 000000000..22797a89e
--- /dev/null
+++ b/Models/Volcanoes/Surtsey/surtsey.nas
@@ -0,0 +1,71 @@
+ var surtsey_ash_loop_flag = 0;
+
+ var surtsey_main_factor = 1.0;
+ var surtsey_main_probability = 0.985;
+
+ var surtsey_pos = geo.Coord.new().set_latlon(63.30510848, -20.6054166);
+
+
+ var surtsey_ash_loop = func (timer) {
+
+ if (surtsey_ash_loop_flag == 0)
+ {
+ print("Ending Surtsey ash eruption simulation.");
+ return;
+ }
+
+ if (timer < 0.0)
+ {
+
+ if (rand() > 0.6)
+ {
+ setprop("/environment/volcanoes/surtsey/ash-main-alpha", (rand() - 0.5) * 40.0);
+ setprop("/environment/volcanoes/surtsey/ash-main-beta", (rand() - 0.5) * 40.0);
+ }
+ else
+ {
+ setprop("/environment/volcanoes/surtsey/ash-main-alpha", 0.0);
+ setprop("/environment/volcanoes/surtsey/ash-main-beta", 0.0);
+ }
+ timer = 2.0 + 3.0 * rand();
+ }
+
+ var aircraft_pos = geo.aircraft_position();
+ var dist = aircraft_pos.distance_to(surtsey_pos);
+ var turbulence = 100000.0/(dist * dist);
+ if (turbulence > 1.0) {turbulence = 1.0;}
+
+ setprop("/environment/volcanoes/turbulence", turbulence);
+
+ timer = timer - 0.1;
+
+ settimer(func {surtsey_ash_loop(timer);}, 0.1);
+ }
+
+
+ surtsey_state_manager = func {
+
+ var state_main = getprop("/environment/volcanoes/surtsey/main-activity");
+
+ if ( (state_main > 1) and (surtsey_ash_loop_flag == 0))
+ {
+ print ("Starting Surtsey ash eruption simulation.");
+ surtsey_ash_loop_flag = 1;
+ surtsey_ash_loop(0.0);
+ }
+ else if ((state_main < 2) and (surtsey_ash_loop_flag == 1))
+ {
+ surtsey_ash_loop_flag = 0;
+ setprop("/environment/volcanoes/turbulence", 0);
+
+ }
+
+
+
+
+ }
+
+ # call state manager once to get correct autosaved behavior, otherwise use listener
+
+ surtsey_state_manager();
+ setlistener("/environment/volcanoes/surtsey/main-activity", surtsey_state_manager);
\ No newline at end of file
diff --git a/Models/Volcanoes/Surtsey/surtsey_main_ash_eruption.xml b/Models/Volcanoes/Surtsey/surtsey_main_ash_eruption.xml
new file mode 100755
index 000000000..525b3a873
--- /dev/null
+++ b/Models/Volcanoes/Surtsey/surtsey_main_ash_eruption.xml
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+ surtsey-main-ash-eruption
+ ash.png
+ false
+ false
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+ global
+
+
+ point
+
+
+
+ 0
+ 5
+ 0
+ 360
+
+ 320
+ 150
+
+
+ 0
+ 0
+ -20
+ 0
+ 0
+ 20
+
+
+
+
+
+ 8
+ 1
+
+
+
+ billboard
+
+
+
+
+
+ /rendering/scene/diffuse/green
+
+
+ /rendering/scene/diffuse/green
+
+
+ /rendering/scene/diffuse/green
+
+
+ 0.5
+
+
+
+ 150.0
+
+
+
+
+
+ /rendering/scene/diffuse/green
+
+
+ /rendering/scene/diffuse/green
+
+
+ /rendering/scene/diffuse/green
+
+
+ 0.3
+
+
+
+ 1000.0
+
+
+
+ 120
+
+ 6.15
+ 0.05
+
+
+
+ air
+ false
+ true
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Models/Volcanoes/Surtsey/surtsey_main_ash_eruption_secondary.xml b/Models/Volcanoes/Surtsey/surtsey_main_ash_eruption_secondary.xml
new file mode 100755
index 000000000..e1c7e05a6
--- /dev/null
+++ b/Models/Volcanoes/Surtsey/surtsey_main_ash_eruption_secondary.xml
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+ surtsey-main-ash-eruption-secondary
+ ash.png
+ false
+ false
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+ global
+
+
+ point
+
+
+
+ 0
+ 5
+ 0
+ 360
+
+ 240
+ 100
+
+
+ 0
+ 0
+ -20
+ 0
+ 0
+ 20
+
+
+
+
+
+ 10
+ 1
+
+
+
+ billboard
+
+
+
+
+
+ /rendering/scene/diffuse/green
+
+
+ /rendering/scene/diffuse/green
+
+
+ /rendering/scene/diffuse/green
+
+
+ 0.5
+
+
+
+ 80.0
+
+
+
+
+
+ /rendering/scene/diffuse/green
+
+
+ /rendering/scene/diffuse/green
+
+
+ /rendering/scene/diffuse/green
+
+
+ 0.3
+
+
+
+ 350.0
+
+
+
+ 80
+
+ 6.15
+ 0.05
+
+
+
+ air
+ false
+ true
+
+
+
+
+
+
+ surtsey-main-ash-eruption-secondary
+ rotate
+ /environment/volcanoes/surtsey/ash-main-alpha
+ 1
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 1
+ 0
+
+
+
+
+ surtsey-main-ash-eruption-secondary
+ rotate
+ /environment/volcanoes/surtsey/ash-main-beta
+ 1
+
+ 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+
+
+
+
\ No newline at end of file
diff --git a/Models/Volcanoes/Surtsey/surtsey_smoke.xml b/Models/Volcanoes/Surtsey/surtsey_smoke.xml
new file mode 100755
index 000000000..f6a5b4241
--- /dev/null
+++ b/Models/Volcanoes/Surtsey/surtsey_smoke.xml
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+ surtsey-smoke
+ smoke_turbulent.png
+ false
+ false
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+ local
+
+
+ point
+
+
+
+ 90
+ 90
+ 0
+ 0
+
+ 20
+ 10
+
+
+ 0
+ 0
+ -40
+ 0
+ 0
+ 40
+
+
+
+
+
+ 1
+ 1
+
+
+
+ billboard
+
+
+
+
+
+ /rendering/scene/diffuse/green
+
+
+ /rendering/scene/diffuse/green
+
+
+ /rendering/scene/diffuse/green
+
+
+ 0.6
+
+
+
+ 50.0
+
+
+
+
+
+ /rendering/scene/diffuse/green
+
+
+ /rendering/scene/diffuse/green
+
+
+ /rendering/scene/diffuse/green
+
+
+ 0.1
+
+
+
+ 350.0
+
+
+
+ 120
+
+ 1.0
+ 2.50
+
+
+
+ air
+ true
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/Models/Volcanoes/Surtsey/surtsey_smoke_small.xml b/Models/Volcanoes/Surtsey/surtsey_smoke_small.xml
new file mode 100755
index 000000000..9a33f2050
--- /dev/null
+++ b/Models/Volcanoes/Surtsey/surtsey_smoke_small.xml
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+ surtsey-smoke-small
+ smoke_turbulent.png
+ false
+ false
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+ global
+
+
+ point
+
+
+
+ 90
+ 90
+ 0
+ 0
+
+ 20
+ 10
+
+
+ 0
+ 0
+ -40
+ 0
+ 0
+ 40
+
+
+
+
+
+ 4
+ 1
+
+
+
+ billboard
+
+
+
+
+
+ /rendering/scene/diffuse/green
+
+
+ /rendering/scene/diffuse/green
+
+
+ /rendering/scene/diffuse/green
+
+
+ 0.6
+
+
+
+ 10.0
+
+
+
+
+
+ /rendering/scene/diffuse/green
+
+
+ /rendering/scene/diffuse/green
+
+
+ /rendering/scene/diffuse/green
+
+
+ 0.1
+
+
+
+ 50.0
+
+
+
+ 30
+
+ 1.0
+ 2.50
+
+
+
+ air
+ true
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/Nasal/volcano.nas b/Nasal/volcano.nas
index b447df1c3..04c126d45 100644
--- a/Nasal/volcano.nas
+++ b/Nasal/volcano.nas
@@ -143,6 +143,13 @@ geo.put_model("Models/Volcanoes/Katla/main_crater.xml", 63.65750, -19.182871 );
}
+var set_surtsey = func {
+
+io.include("Models/Volcanoes/Surtsey/surtsey.nas");
+geo.put_model("Models/Volcanoes/Surtsey/main_crater.xml", 63.30510848, -20.6054166 );
+
+}
+
# volcano definitions
var kilauea = volcano.new("Kilauea", 19.39, -155.20);
@@ -169,6 +176,11 @@ var katla = volcano.new("Katla", 63.65750, -19.182871);
katla.set = set_katla;
append(volcano_manager.volcano_array, katla);
+var surtsey = volcano.new("Surtsey", 63.305, -20.605);
+surtsey.set = set_surtsey;
+append(volcano_manager.volcano_array, surtsey);
+
+
# start the manager when autosaved (need some delay for terrain loading to finish)
settimer(func {volcano_manager.start();}, 5.0);
diff --git a/gui/dialogs/volcano-surtsey.xml b/gui/dialogs/volcano-surtsey.xml
new file mode 100644
index 000000000..bf1aad75b
--- /dev/null
+++ b/gui/dialogs/volcano-surtsey.xml
@@ -0,0 +1,141 @@
+
+
+
+ Surtsey
+ vbox
+ 1
+ false
+ 400
+
+
+ 6
+
+
+
+
+
+
+
+ 4
+
+
+
+
+
+ table
+
+
+
+ left
+ 0
+ 0
+
+
+
+
+ 0
+ 1
+
+
+
+ central
+ 0
+ 2
+ 0
+ 2
+ 1
+ true
+ /environment/volcanoes/surtsey/main-activity
+
+ dialog-apply
+ central
+
+
+
+
+
+ 0
+ 3
+
+
+
+
+ left
+ 1
+ 0
+
+
+
+
+ 1
+ 1
+
+
+
+ side
+ 1
+ 2
+ 0
+ 1
+ 1
+ true
+ /environment/volcanoes/surtsey/side-activity
+
+ dialog-apply
+ side
+
+
+
+
+
+ 1
+ 3
+
+
+
+
+
+
+
+
+ 12
+
+
+
+
+
+ 20
+
+
+
+ table
+
+
+
+
+
+
+
+