From d7aba531d7966afe35b3d4c9c63d10cdc068c38f Mon Sep 17 00:00:00 2001 From: Regalis Date: Tue, 21 Feb 2017 20:46:08 +0200 Subject: [PATCH] Server port included in refresh and remove requests to master server, spectators see indicators for both subs during combat missions --- Subsurface/Source/Networking/GameServer.cs | 2 ++ Subsurface/Source/Screens/GameScreen.cs | 19 ++++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/Subsurface/Source/Networking/GameServer.cs b/Subsurface/Source/Networking/GameServer.cs index afe584ad8..f6c108f75 100644 --- a/Subsurface/Source/Networking/GameServer.cs +++ b/Subsurface/Source/Networking/GameServer.cs @@ -227,6 +227,7 @@ namespace Barotrauma.Networking var request = new RestRequest("masterserver3.php", Method.GET); request.AddParameter("action", "refreshserver"); + request.AddParameter("serverport", Port); request.AddParameter("gamestarted", gameStarted ? 1 : 0); request.AddParameter("currplayers", connectedClients.Count); request.AddParameter("maxplayers", config.MaximumConnections); @@ -2009,6 +2010,7 @@ namespace Barotrauma.Networking { var request = new RestRequest("masterserver2.php", Method.GET); request.AddParameter("action", "removeserver"); + request.AddParameter("serverport", Port); restClient.Execute(request); restClient = null; diff --git a/Subsurface/Source/Screens/GameScreen.cs b/Subsurface/Source/Screens/GameScreen.cs index ba9f23f3c..1493dd02b 100644 --- a/Subsurface/Source/Screens/GameScreen.cs +++ b/Subsurface/Source/Screens/GameScreen.cs @@ -217,8 +217,17 @@ namespace Barotrauma if (GameMain.GameSession != null) GameMain.GameSession.Draw(spriteBatch); - if (Character.Controlled == null && Submarine.MainSub != null && !GUI.DisableHUD) - DrawSubmarineIndicator(spriteBatch, Submarine.MainSub); + if (Character.Controlled == null && !GUI.DisableHUD) + { + for (int i = 0; i < Submarine.MainSubs.Length; i++) + { + if (Submarine.MainSubs[i] != null) + { + Color indicatorColor = i == 0 ? Color.LightBlue * 0.5f : Color.Red * 0.5f; + DrawSubmarineIndicator(spriteBatch, Submarine.MainSubs[i], indicatorColor); + } + } + } GUI.Draw((float)deltaTime, spriteBatch, cam); @@ -437,7 +446,7 @@ namespace Barotrauma } - private void DrawSubmarineIndicator(SpriteBatch spriteBatch, Submarine submarine) + private void DrawSubmarineIndicator(SpriteBatch spriteBatch, Submarine submarine, Color color) { Vector2 subDiff = submarine.WorldPosition - cam.WorldViewCenter; @@ -449,11 +458,11 @@ namespace Barotrauma cam.WorldToScreen(cam.WorldViewCenter) + new Vector2(normalizedSubDiff.X * GameMain.GraphicsWidth * 0.4f, -normalizedSubDiff.Y * GameMain.GraphicsHeight * 0.4f); - GUI.SubmarineIcon.Draw(spriteBatch, iconPos, Color.LightBlue * 0.5f); + GUI.SubmarineIcon.Draw(spriteBatch, iconPos, color); Vector2 arrowOffset = normalizedSubDiff * GUI.SubmarineIcon.size.X * 0.7f; arrowOffset.Y = -arrowOffset.Y; - GUI.Arrow.Draw(spriteBatch, iconPos + arrowOffset, Color.LightBlue * 0.5f, MathUtils.VectorToAngle(arrowOffset) + MathHelper.PiOver2); + GUI.Arrow.Draw(spriteBatch, iconPos + arrowOffset, color, MathUtils.VectorToAngle(arrowOffset) + MathHelper.PiOver2); } }