Altitude (terrain) readout now shows the altitude above underwater terrain when splashed down.
Altitude (terrain) readout now shows the altitude above underwater terrain when splashed down.

--- a/KerbalEngineer/Flight/Readouts/ReadoutLibrary.cs
+++ b/KerbalEngineer/Flight/Readouts/ReadoutLibrary.cs
@@ -98,8 +98,9 @@
                 readouts.Add(new TimeToAtmosphere());
 
                 // Surface
-                readouts.Add(new AltitudeSeaLevel());
-                readouts.Add(new AltitudeTerrain());
+				readouts.Add(new AltitudeSeaLevel());
+				readouts.Add(new AltitudeTerrain());
+				readouts.Add(new AltitudeUnderWater());
                 readouts.Add(new VerticalSpeed());
                 readouts.Add(new VerticalAcceleration());
                 readouts.Add(new HorizontalSpeed());

--- a/KerbalEngineer/Flight/Readouts/Surface/AltitudeTerrain.cs
+++ b/KerbalEngineer/Flight/Readouts/Surface/AltitudeTerrain.cs
@@ -1,7 +1,7 @@
 // 
 //     Kerbal Engineer Redux
 // 
-//     Copyright (C) 2014 CYBUTEK
+//     Copyright (C) 2016 CYBUTEK
 // 
 //     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
@@ -12,52 +12,36 @@
 //     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 <http://www.gnu.org/licenses/>.
-// 
-
-#region Using Directives
-
-#endregion
+//  
 
 namespace KerbalEngineer.Flight.Readouts.Surface
 {
-    #region Using Directives
-
     using Extensions;
     using Sections;
-
-    #endregion
+    using Vessel = global::Vessel;
 
     public class AltitudeTerrain : ReadoutModule
     {
-        #region Constructors
-
         public AltitudeTerrain()
         {
-            this.Name = "Altitude (Terrain)";
-            this.Category = ReadoutCategory.GetCategory("Surface");
-            this.HelpString = "Shows the vessel's altitude above the terrain.";
-            this.IsDefault = true;
+            Name = "Altitude (Terrain)";
+            Category = ReadoutCategory.GetCategory("Surface");
+            HelpString = "Shows the vessel's altitude above the terrain and water's surface, or altitude above underwater terrain whilst splashed down.";
+            IsDefault = true;
         }
-
-        #endregion
-
-        #region Methods
 
         public override void Draw(SectionModule section)
         {
-            if (FlightGlobals.ActiveVessel.terrainAltitude > 0.0)
+            if (FlightGlobals.ActiveVessel.terrainAltitude > 0.0 || FlightGlobals.ActiveVessel.situation == Vessel.Situations.SPLASHED)
             {
-                this.DrawLine((FlightGlobals.ship_altitude - FlightGlobals.ActiveVessel.terrainAltitude).ToDistance(), section.IsHud);
+                DrawLine((FlightGlobals.ship_altitude - FlightGlobals.ActiveVessel.terrainAltitude).ToDistance(), section.IsHud);
             }
             else
             {
-                this.DrawLine((FlightGlobals.ship_altitude).ToDistance(), section.IsHud);
+                DrawLine((FlightGlobals.ship_altitude).ToDistance(), section.IsHud);
             }
         }
-
-        #endregion
     }
 }

--- /dev/null
+++ b/KerbalEngineer/Flight/Readouts/Surface/AltitudeUnderWater.cs
@@ -1,1 +1,55 @@
+// 
+//     Kerbal Engineer Redux
+// 
+//     Copyright (C) 2014 CYBUTEK
+// 
+//     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 <http://www.gnu.org/licenses/>.
+// 
 
+#region Using Directives
+
+using KerbalEngineer.Extensions;
+using KerbalEngineer.Flight.Sections;
+
+#endregion
+
+namespace KerbalEngineer.Flight.Readouts.Surface
+{
+    public class AltitudeUnderWater : ReadoutModule
+    {
+        #region Constructors
+
+        public AltitudeUnderWater()
+        {
+            this.Name = "Altitude (Terrain Under Water)";
+            this.Category = ReadoutCategory.GetCategory("Surface");
+            this.HelpString = "While splashed shows the vessel's altitude to the under water Terrain.";
+            this.IsDefault = false;
+        }
+
+        #endregion
+
+        #region Methods: public
+
+        public override void Draw(SectionModule section)
+        {
+			if (ScienceUtil.GetExperimentSituation (FlightGlobals.ActiveVessel) == ExperimentSituations.SrfSplashed) 
+			{
+				this.DrawLine ((-(FlightGlobals.ActiveVessel.terrainAltitude - FlightGlobals.ship_altitude)).ToDistance (), section.IsHud);
+			}
+        }
+
+        #endregion
+    }
+}

--- a/KerbalEngineer/KerbalEngineer.csproj
+++ b/KerbalEngineer/KerbalEngineer.csproj
@@ -97,6 +97,7 @@
     <Compile Include="Flight\Readouts\Rendezvous\SemiMajorAxis.cs" />
     <Compile Include="Flight\Readouts\Rendezvous\TimeToRelativeDescendingNode.cs" />
     <Compile Include="Flight\Readouts\Rendezvous\TimeToRelativeAscendingNode.cs" />
+    <Compile Include="Flight\Readouts\Surface\AltitudeUnderWater.cs" />
     <Compile Include="Flight\Readouts\Surface\ImpactBiome.cs" />
     <Compile Include="Flight\Readouts\Surface\Slope.cs" />
     <Compile Include="Flight\Readouts\Surface\Biome.cs" />