From 9a69126b1c473f21834dce1e1daf01683e4fc747 Mon Sep 17 00:00:00 2001 From: Regalis Date: Sat, 31 Dec 2016 13:26:50 +0200 Subject: [PATCH] Fixed OnMapLoaded not being called on MapEntities that don't belong to any sub (due to this, gaps weren't created on doors in alien ruins until the game starts running, which occasionally caused entity ID mismatches between clients and the server), changelog update --- Subsurface/Source/Map/Levels/Level.cs | 33 ++++----------------------- Subsurface/changelog.txt | 13 +++++++++++ 2 files changed, 17 insertions(+), 29 deletions(-) diff --git a/Subsurface/Source/Map/Levels/Level.cs b/Subsurface/Source/Map/Levels/Level.cs index 03496ccdc..da3c4e9f1 100644 --- a/Subsurface/Source/Map/Levels/Level.cs +++ b/Subsurface/Source/Map/Levels/Level.cs @@ -448,35 +448,7 @@ namespace Barotrauma renderer.SetWallVertices(CaveGenerator.GenerateWallShapes(cells)); renderer.PlaceSprites(generationParams.BackgroundSpriteAmount); - - /* - wrappingWalls = new WrappingWall[2, 2]; - - Rectangle ignoredArea = new Rectangle((int)startPosition.X, 0, (int)(endPosition.X - startPosition.X), borders.Height); - - for (int side = 0; side < 2; side++) - { - for (int i = 0; i < 2; i++) - { - wrappingWalls[side, i] = new WrappingWall(pathCells, cells, ignoredArea, - (side == 0 ? -1 : 1) * (i + 1)); - - List wrappingWallVertices; - CaveGenerator.GeneratePolygons(wrappingWalls[side, i].Cells, out wrappingWallVertices, false); - - wrappingWalls[side, i].SetBodyVertices(wrappingWallVertices.ToArray()); - wrappingWalls[side, i].SetWallVertices(CaveGenerator.GenerateWallShapes(wrappingWalls[side, i].Cells)); - } - - } - for (int side = 0; side < 2; side++) - { - for (int i = 0; i < 2; i++) - { - cells.AddRange(wrappingWalls[side, i].Cells); - } - }*/ - + ShaftBody = BodyFactory.CreateEdge(GameMain.World, ConvertUnits.ToSimUnits(new Vector2(borders.X, 0)), ConvertUnits.ToSimUnits(new Vector2(borders.Right, 0))); @@ -498,6 +470,9 @@ namespace Barotrauma edge.site2 = null; } } + + //initialize MapEntities that aren't in any sub (e.g. items inside ruins) + MapEntity.MapLoaded(null); Debug.WriteLine("Generatelevel: " + sw2.ElapsedMilliseconds + " ms"); sw2.Restart(); diff --git a/Subsurface/changelog.txt b/Subsurface/changelog.txt index 759fcc61e..9e02f1fe3 100644 --- a/Subsurface/changelog.txt +++ b/Subsurface/changelog.txt @@ -1,3 +1,16 @@ +--------------------------------------------------------------------------------------------------------- +v0.5.4.3 +--------------------------------------------------------------------------------------------------------- + +- a new enemy +- some new sound effects by Omniary +- some structure-specific damage sounds +- the size of docked subs is taken into account when determining the spawn position of the sub (large +multi-part subs shouldn't spawn inside walls anymore) +- explosion damage is calculated based on the distance to the closest surface of a limb instead of the +center position of the limb (i.e. large monsters can be damaged by smaller explosions) +- fixed a null reference exception caused by wires + --------------------------------------------------------------------------------------------------------- v0.5.4.2 ---------------------------------------------------------------------------------------------------------