Fixed some items with a body disappearing when flipping a sub. Closes #273

This commit is contained in:
Joonas Rikkonen
2018-02-22 17:43:40 +02:00
parent 1ebadf1f80
commit 05408d5ec0
@@ -679,10 +679,12 @@ namespace Barotrauma
Item.UpdateHulls(); Item.UpdateHulls();
List<Item> bodyItems = Item.ItemList.FindAll(it => it.Submarine == this && it.body != null); List<Item> bodyItems = Item.ItemList.FindAll(it => it.Submarine == this && it.body != null);
foreach (MapEntity e in MapEntity.mapEntityList) List<MapEntity> subEntities = MapEntity.mapEntityList.FindAll(me => me.Submarine == this);
foreach (MapEntity e in subEntities)
{ {
if (e.MoveWithLevel || e.Submarine != this || e is Item) continue; if (e.MoveWithLevel || e is Item) continue;
if (e is LinkedSubmarine) if (e is LinkedSubmarine)
{ {
@@ -701,10 +703,9 @@ namespace Barotrauma
} }
} }
for (int i = 0; i < MapEntity.mapEntityList.Count; i++) foreach (MapEntity mapEntity in subEntities)
{ {
if (MapEntity.mapEntityList[i].Submarine != this) continue; mapEntity.Move(-HiddenSubPosition);
MapEntity.mapEntityList[i].Move(-HiddenSubPosition);
} }
Vector2 pos = new Vector2(subBody.Position.X, subBody.Position.Y); Vector2 pos = new Vector2(subBody.Position.X, subBody.Position.Y);
@@ -719,10 +720,9 @@ namespace Barotrauma
} }
entityGrid = Hull.GenerateEntityGrid(this); entityGrid = Hull.GenerateEntityGrid(this);
for (int i = 0; i < MapEntity.mapEntityList.Count; i++) foreach (MapEntity mapEntity in subEntities)
{ {
if (MapEntity.mapEntityList[i].Submarine != this) continue; mapEntity.Move(HiddenSubPosition);
MapEntity.mapEntityList[i].Move(HiddenSubPosition);
} }
foreach (Item item in Item.ItemList) foreach (Item item in Item.ItemList)