diff --git a/Subsurface/Barotrauma.csproj b/Subsurface/Barotrauma.csproj index d8487f80e..d9ae80cc0 100644 --- a/Subsurface/Barotrauma.csproj +++ b/Subsurface/Barotrauma.csproj @@ -1049,6 +1049,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -1648,6 +1651,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/Subsurface/Content/Content.mgcb b/Subsurface/Content/Content.mgcb index 3b1a5e869..48c1e7111 100644 --- a/Subsurface/Content/Content.mgcb +++ b/Subsurface/Content/Content.mgcb @@ -49,3 +49,8 @@ /processorParam:DebugMode=Auto /build:damageshader.fx +#begin utg_4.mp4 +/importer:H264Importer +/processor:VideoProcessor +/build:utg_4.mp4 + diff --git a/Subsurface/Content/utg_4.mp4 b/Subsurface/Content/utg_4.mp4 new file mode 100644 index 000000000..1f606677d Binary files /dev/null and b/Subsurface/Content/utg_4.mp4 differ diff --git a/Subsurface/Content/utg_4.xnb b/Subsurface/Content/utg_4.xnb new file mode 100644 index 000000000..a9e458b1b Binary files /dev/null and b/Subsurface/Content/utg_4.xnb differ diff --git a/Subsurface/Source/Camera.cs b/Subsurface/Source/Camera.cs index dc04f3e7f..77dea4601 100644 --- a/Subsurface/Source/Camera.cs +++ b/Subsurface/Source/Camera.cs @@ -7,6 +7,8 @@ namespace Barotrauma { public class Camera { + public static bool FollowSub = true; + const float DefaultZoom = 1.0f; const float ZoomSmoothness = 8.0f; const float MoveSmoothness = 8.0f; @@ -186,7 +188,7 @@ namespace Barotrauma if (GameMain.Config.KeyBind(InputType.Up).IsDown()) moveCam.Y += moveSpeed; } - if (Screen.Selected == GameMain.GameScreen) + if (Screen.Selected == GameMain.GameScreen && FollowSub) { var closestSub = Submarine.FindClosest(WorldViewCenter); if (closestSub != null) diff --git a/Subsurface/Source/Characters/Character.cs b/Subsurface/Source/Characters/Character.cs index 847cb072f..ab6ce84a7 100644 --- a/Subsurface/Source/Characters/Character.cs +++ b/Subsurface/Source/Characters/Character.cs @@ -1588,6 +1588,8 @@ namespace Barotrauma Vector2 closestItemPos = closestItem != null ? closestItem.DrawPosition : Vector2.Zero; closestItemPos.Y = -closestItemPos.Y; GUI.DrawLine(spriteBatch, closestItemPos - new Vector2(0, 5), closestItemPos + new Vector2(0, 5), Color.Lime, 0, 10); + + if (this == controlled || GUI.DisableHUD) return; Vector2 pos = DrawPosition; pos.Y = -pos.Y; @@ -1601,7 +1603,6 @@ namespace Barotrauma if (this == controlled) return; - if (info != null) { Vector2 namePos = new Vector2(pos.X, pos.Y - 110.0f - (5.0f / cam.Zoom)) - GUI.Font.MeasureString(Info.Name) * 0.5f / cam.Zoom; diff --git a/Subsurface/Source/Characters/CharacterHUD.cs b/Subsurface/Source/Characters/CharacterHUD.cs index 8f81e6214..39a3156a3 100644 --- a/Subsurface/Source/Characters/CharacterHUD.cs +++ b/Subsurface/Source/Characters/CharacterHUD.cs @@ -34,6 +34,8 @@ namespace Barotrauma public static void AddToGUIUpdateList(Character character) { + if (GUI.DisableHUD) return; + if (cprButton != null && cprButton.Visible) cprButton.AddToGUIUpdateList(); if (suicideButton != null && suicideButton.Visible) suicideButton.AddToGUIUpdateList(); @@ -118,6 +120,8 @@ namespace Barotrauma damageOverlay = new Sprite("Content/UI/damageOverlay.png", Vector2.Zero); } + if (GUI.DisableHUD) return; + if (character.Inventory != null) { for (int i = 0; i < character.Inventory.Items.Length - 1; i++) diff --git a/Subsurface/Source/DebugConsole.cs b/Subsurface/Source/DebugConsole.cs index 0cb827891..96b064fac 100644 --- a/Subsurface/Source/DebugConsole.cs +++ b/Subsurface/Source/DebugConsole.cs @@ -510,6 +510,12 @@ namespace Barotrauma Submarine.MainSub.GodMode = !Submarine.MainSub.GodMode; break; + case "lockx": + Submarine.LockX = !Submarine.LockX; + break; + case "locky": + Submarine.LockY = !Submarine.LockY; + break; case "dumpids": try { @@ -683,6 +689,14 @@ namespace Barotrauma case "debugdraw": GameMain.DebugDraw = !GameMain.DebugDraw; break; + case "disablehud": + case "hud": + GUI.DisableHUD = !GUI.DisableHUD; + GameMain.Instance.IsMouseVisible = !GameMain.Instance.IsMouseVisible; + break; + case "followsub": + Camera.FollowSub = !Camera.FollowSub; + break; case "drawaitargets": case "showaitargets": AITarget.ShowAITargets = !AITarget.ShowAITargets; diff --git a/Subsurface/Source/GUI/GUI.cs b/Subsurface/Source/GUI/GUI.cs index ed3373261..18723768d 100644 --- a/Subsurface/Source/GUI/GUI.cs +++ b/Subsurface/Source/GUI/GUI.cs @@ -64,6 +64,8 @@ namespace Barotrauma get { return arrow; } } + public static bool DisableHUD; + public static void Init(ContentManager content) { Font = ToolBox.TryLoadFont("SpriteFont1", content); @@ -497,8 +499,9 @@ namespace Barotrauma DebugConsole.Draw(spriteBatch); if (GUIComponent.MouseOn != null && !string.IsNullOrWhiteSpace(GUIComponent.MouseOn.ToolTip)) GUIComponent.MouseOn.DrawToolTip(spriteBatch); - - cursor.Draw(spriteBatch, PlayerInput.LatestMousePosition); + + if (!GUI.DisableHUD) + cursor.Draw(spriteBatch, PlayerInput.LatestMousePosition); } public static void AddToGUIUpdateList() diff --git a/Subsurface/Source/GUI/LoadingScreen.cs b/Subsurface/Source/GUI/LoadingScreen.cs index b30e1b720..f635b71f2 100644 --- a/Subsurface/Source/GUI/LoadingScreen.cs +++ b/Subsurface/Source/GUI/LoadingScreen.cs @@ -1,6 +1,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; +using Microsoft.Xna.Framework.Media; using System; using System.Collections.Generic; using System.Diagnostics; @@ -23,6 +24,9 @@ namespace Barotrauma private float? loadState; + Video splashScreenVideo; + VideoPlayer videoPlayer; + public Vector2 TitleSize { get { return new Vector2(titleTexture.Width, titleTexture.Height); } @@ -49,10 +53,23 @@ namespace Barotrauma get; set; } - public LoadingScreen(GraphicsDevice graphics) { + if (GameMain.Config.EnableSplashScreen) + { + try + { + splashScreenVideo = GameMain.Instance.Content.Load