diff --git a/Subsurface/Source/GUI/LoadingScreen.cs b/Subsurface/Source/GUI/LoadingScreen.cs index d4ec357a7..5a05eb8c3 100644 --- a/Subsurface/Source/GUI/LoadingScreen.cs +++ b/Subsurface/Source/GUI/LoadingScreen.cs @@ -134,6 +134,14 @@ namespace Barotrauma } + public void Update() + { + if (Hull.renderer != null) + { + Hull.renderer.ScrollWater(); + } + } + bool drawn; public IEnumerable DoLoading(IEnumerable loader) { diff --git a/Subsurface/Source/GameMain.cs b/Subsurface/Source/GameMain.cs index e4e698b5d..be3d99187 100644 --- a/Subsurface/Source/GameMain.cs +++ b/Subsurface/Source/GameMain.cs @@ -308,7 +308,11 @@ namespace Barotrauma bool paused = false; - if (hasLoaded && !titleScreenOpen) + if (titleScreenOpen) + { + TitleScreen.Update(); + } + else if (hasLoaded) { SoundPlayer.Update(); diff --git a/Subsurface/Source/Map/Levels/WaterRenderer.cs b/Subsurface/Source/Map/Levels/WaterRenderer.cs index 828255172..4a295cea5 100644 --- a/Subsurface/Source/Map/Levels/WaterRenderer.cs +++ b/Subsurface/Source/Map/Levels/WaterRenderer.cs @@ -63,10 +63,7 @@ namespace Barotrauma waterEffect.Parameters["xWavePos"].SetValue(wavePos); waterEffect.Parameters["xBlurDistance"].SetValue(blurAmount); //waterEffect.CurrentTechnique.Passes[0].Apply(); - - wavePos.X += 0.0001f; - wavePos.Y += 0.0001f; - + #if WINDOWS waterEffect.Parameters["xTexture"].SetValue(texture); spriteBatch.Draw(waterTexture, new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.White); @@ -77,6 +74,12 @@ namespace Barotrauma spriteBatch.End(); } + public void ScrollWater() + { + wavePos.X += 0.0001f; + wavePos.Y += 0.0001f; + } + public void Render(GraphicsDevice graphicsDevice, Camera cam, RenderTarget2D texture, Matrix transform) { if (vertices == null) return; diff --git a/Subsurface/Source/Screens/GameScreen.cs b/Subsurface/Source/Screens/GameScreen.cs index 3da0c27a0..c2f72688f 100644 --- a/Subsurface/Source/Screens/GameScreen.cs +++ b/Subsurface/Source/Screens/GameScreen.cs @@ -83,6 +83,11 @@ namespace Barotrauma /// Provides a snapshot of timing values. public override void Update(double deltaTime) { + if (Hull.renderer != null) + { + Hull.renderer.ScrollWater(); + } + //the accumulator code is based on this article: //http://gafferongames.com/game-physics/fix-your-timestep/ Physics.accumulator += deltaTime; diff --git a/Subsurface/Source/Screens/MainMenuScreen.cs b/Subsurface/Source/Screens/MainMenuScreen.cs index 669de6e02..e71552bc0 100644 --- a/Subsurface/Source/Screens/MainMenuScreen.cs +++ b/Subsurface/Source/Screens/MainMenuScreen.cs @@ -490,6 +490,8 @@ namespace Barotrauma public override void Update(double deltaTime) { + GameMain.TitleScreen.Update(); + foreach (GUIButton button in menuButtons) { button.Update((float)deltaTime); diff --git a/Subsurface/Source/Screens/ServerListScreen.cs b/Subsurface/Source/Screens/ServerListScreen.cs index c8474dbf7..afb89fee0 100644 --- a/Subsurface/Source/Screens/ServerListScreen.cs +++ b/Subsurface/Source/Screens/ServerListScreen.cs @@ -336,6 +336,8 @@ namespace Barotrauma public override void Update(double deltaTime) { + GameMain.TitleScreen.Update(); + menu.Update((float)deltaTime); GUI.Update((float)deltaTime);