diff --git a/Subsurface/Content/Items/Clothes/captainLegs.png b/Subsurface/Content/Items/Clothes/captainLegs.png index 6b327f6b3..4c22114e8 100644 Binary files a/Subsurface/Content/Items/Clothes/captainLegs.png and b/Subsurface/Content/Items/Clothes/captainLegs.png differ diff --git a/Subsurface/Source/DebugConsole.cs b/Subsurface/Source/DebugConsole.cs index 9eb9a94c1..bd98b5e8a 100644 --- a/Subsurface/Source/DebugConsole.cs +++ b/Subsurface/Source/DebugConsole.cs @@ -252,7 +252,14 @@ namespace Subsurface break; case "savemap": if (commands.Length < 2) break; - Submarine.SaveCurrent("Content/SavedMaps/" + string.Join(" ", commands.Skip(1))+".gz"); + + string fileName = string.Join(" ", commands.Skip(1)); + if (fileName.Contains("../")) + { + DebugConsole.ThrowError("Illegal symbols in filename (../)"); + return; + } + Submarine.SaveCurrent("Content/SavedMaps/" + fileName +".gz"); NewMessage("map saved", Color.Green); break; case "loadmap": diff --git a/Subsurface/Source/Screens/MainMenu.cs b/Subsurface/Source/Screens/MainMenu.cs index 8ea5324b3..7383741ff 100644 --- a/Subsurface/Source/Screens/MainMenu.cs +++ b/Subsurface/Source/Screens/MainMenu.cs @@ -148,7 +148,7 @@ namespace Subsurface new GUITextBlock(new Rectangle(0, 0, 0, 30), "Join Server", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.JoinServer]); - new GUITextBlock(new Rectangle(0, 30, 0, 30), "Name:", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.JoinServer]); + new GUITextBlock(new Rectangle(0, 30, 0, 30), "Your Name:", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.JoinServer]); clientNameBox = new GUITextBox(new Rectangle(0, 60, 200, 30), Color.White, Color.Black, Alignment.CenterX, Alignment.CenterX, null, menuTabs[(int)Tabs.JoinServer]); new GUITextBlock(new Rectangle(0, 100, 0, 30), "Server IP:", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.JoinServer]); @@ -164,7 +164,7 @@ namespace Subsurface new GUITextBlock(new Rectangle(0, 0, 0, 30), "Host Server", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.HostServer]); - new GUITextBlock(new Rectangle(0, 30, 0, 30), "Name:", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.HostServer]); + new GUITextBlock(new Rectangle(0, 30, 0, 30), "Server Name:", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.HostServer]); serverNameBox = new GUITextBox(new Rectangle(0, 60, 200, 30), Color.White, Color.Black, Alignment.CenterX, Alignment.CenterX, null, menuTabs[(int)Tabs.HostServer]); new GUITextBlock(new Rectangle(0, 100, 0, 30), "Server port:", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.HostServer]); diff --git a/Subsurface/Source/Screens/NetLobbyScreen.cs b/Subsurface/Source/Screens/NetLobbyScreen.cs index 7324cebc4..e70fef24d 100644 --- a/Subsurface/Source/Screens/NetLobbyScreen.cs +++ b/Subsurface/Source/Screens/NetLobbyScreen.cs @@ -149,7 +149,7 @@ namespace Subsurface int columnX = 0; new GUITextBlock(new Rectangle(columnX, 120, columnWidth, 30), "Selected submarine:", GUI.style, infoFrame); - subList = new GUIListBox(new Rectangle(columnX, 150, columnWidth, 200), Color.White, GUI.style, infoFrame); + subList = new GUIListBox(new Rectangle(columnX, 150, columnWidth, infoFrame.Rect.Height - 150 - 80), Color.White, GUI.style, infoFrame); subList.OnSelected = SelectMap; if (Submarine.SavedSubmarines.Count > 0) @@ -176,7 +176,7 @@ namespace Subsurface //gamemode ------------------------------------------------------------------ new GUITextBlock(new Rectangle(columnX, 120, 0, 30), "Selected game mode: ", GUI.style, infoFrame); - modeList = new GUIListBox(new Rectangle(columnX, 150, columnWidth, 200), GUI.style, infoFrame); + modeList = new GUIListBox(new Rectangle(columnX, 150, columnWidth, infoFrame.Rect.Height - 150 - 80), GUI.style, infoFrame); foreach (GameModePreset mode in GameModePreset.list) { @@ -297,11 +297,11 @@ namespace Subsurface GUITextBlock jobText = new GUITextBlock(new Rectangle(0,0,0,20), job.Name, GUI.style, Alignment.Left, Alignment.Right, jobList); jobText.UserData = job; - GUIButton upButton = new GUIButton(new Rectangle(0, 0, 20, 20), "u", GUI.style, jobText); + GUIButton upButton = new GUIButton(new Rectangle(0, 0, 15, 15), "u", GUI.style, jobText); upButton.UserData = -1; upButton.OnClicked += ChangeJobPreference; - GUIButton downButton = new GUIButton(new Rectangle(25, 0, 20, 20), "d", GUI.style, jobText); + GUIButton downButton = new GUIButton(new Rectangle(25, 0, 15, 15), "d", GUI.style, jobText); downButton.UserData = 1; downButton.OnClicked += ChangeJobPreference; } diff --git a/Subsurface/Subsurface.csproj b/Subsurface/Subsurface.csproj index 11e83d44d..25c8a0204 100644 --- a/Subsurface/Subsurface.csproj +++ b/Subsurface/Subsurface.csproj @@ -234,6 +234,9 @@ + + PreserveNewest + PreserveNewest diff --git a/Subsurface/changelog.txt b/Subsurface/changelog.txt new file mode 100644 index 000000000..61b893645 --- /dev/null +++ b/Subsurface/changelog.txt @@ -0,0 +1,33 @@ + +--------------------------------------------------------------------------------------------------------- +v0.1.1 +--------------------------------------------------------------------------------------------------------- + +Multiplayer: + - player names are shown + - assigning jobs and selecting job preferences works now (jobs are assigned when the round starts) + - a menu that shows the crew members and their jobs and skills + - reduced lag spikes + - fixed a bug that caused disconnected players to stay in the player list + - server admin can see which player is the traitor + +Items: + - plasma cutter / welding tool bugfixes and some light & sound effects + - stun grenades, detonators and c4 blocks work now + - captain's uniform + - items can be placed inside railgun shells (explosives for example) + - buttons can be attached and detached + - on-screen message when trying to use a button without the right ID card + - wire sprites don't overlap and "flicker" on top of each other anymore + - trying to set the color of a lightcomponent to an invalid value doesn't crash the game anymore + +Submarine: + - some signs on the walls of Aegir to make navigation a bit easier + - moved the railgun and changed the rotation limits to increase it's area of effect while preventing + shooting at the windows + - fixed waypoint selection bug in submarine editor + - the ".gz" extension is automatically added when saving a map + +Other: + - decreased fall/impact damage + - dead characters can be looted diff --git a/Subsurface/readme.txt b/Subsurface/readme.txt index 716523cd8..58e9c8186 100644 --- a/Subsurface/readme.txt +++ b/Subsurface/readme.txt @@ -4,16 +4,16 @@ www.undertowgames.com/subsurface Copyright © Undertow Games 2015 Controls: -WASD - move -Shift - run -E - use/activate items and devices -Right click - aim with equipped item -Left click - use equipped item -Tab - select/deselect the chat box in multiplayer mode -F3 - open/close console +WASD - move +Shift - run +E - use/activate items and devices +Right click - aim with equipped item +Left click - use equipped item +Tab - select/deselect the chat box in multiplayer mode +F3 - open/close console See the wiki for more detailed info and instructions: -http://subsurface.wikia.com/wiki/Subsurface_Wiki +http://subsurface.gamepedia.com ------------------------------------------------------------------------ diff --git a/Subsurface_Solution.v12.suo b/Subsurface_Solution.v12.suo index 257584790..73e957d42 100644 Binary files a/Subsurface_Solution.v12.suo and b/Subsurface_Solution.v12.suo differ