!! Fixed a major bug that caused entity IDs to not match between server and client
This commit is contained in:
@@ -18,7 +18,10 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public ushort ID
|
public ushort ID
|
||||||
{
|
{
|
||||||
get { return id; }
|
get
|
||||||
|
{
|
||||||
|
return id;
|
||||||
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
Entity thisEntity;
|
Entity thisEntity;
|
||||||
@@ -122,5 +125,34 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
dictionary.Remove(ID);
|
dictionary.Remove(ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void DumpIds(int count)
|
||||||
|
{
|
||||||
|
List<Entity> e = new List<Entity>();
|
||||||
|
|
||||||
|
foreach (Entity ent in dictionary.Values)
|
||||||
|
{
|
||||||
|
int index = 0;
|
||||||
|
for (int i = 0; i < e.Count; i++)
|
||||||
|
{
|
||||||
|
if (e[i].id < ent.id)
|
||||||
|
{
|
||||||
|
index = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
e.Insert(index, ent);
|
||||||
|
}
|
||||||
|
|
||||||
|
int c = 0;
|
||||||
|
foreach (Entity ent in e)
|
||||||
|
{
|
||||||
|
if (c>count) break;
|
||||||
|
|
||||||
|
DebugConsole.ThrowError(ent.id+": "+ent.ToString());
|
||||||
|
c++;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -168,6 +168,11 @@ namespace Barotrauma
|
|||||||
get { return subBody == null ? false : subBody.AtDamageDepth; }
|
get { return subBody == null ? false : subBody.AtDamageDepth; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return "Barotrauma.Submarine ("+name+")";
|
||||||
|
}
|
||||||
|
|
||||||
//constructors & generation ----------------------------------------------------
|
//constructors & generation ----------------------------------------------------
|
||||||
|
|
||||||
public Submarine(string filePath, string hash = "") : base(null)
|
public Submarine(string filePath, string hash = "") : base(null)
|
||||||
@@ -199,8 +204,8 @@ namespace Barotrauma
|
|||||||
//this.mapHash = new MapHash(md5Hash);
|
//this.mapHash = new MapHash(md5Hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
base.Remove();
|
|
||||||
ID = ushort.MaxValue;
|
ID = ushort.MaxValue;
|
||||||
|
base.Remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
//drawing ----------------------------------------------------
|
//drawing ----------------------------------------------------
|
||||||
@@ -218,7 +223,7 @@ namespace Barotrauma
|
|||||||
for (int i = 0; i < MapEntity.mapEntityList.Count(); i++)
|
for (int i = 0; i < MapEntity.mapEntityList.Count(); i++)
|
||||||
{
|
{
|
||||||
if (MapEntity.mapEntityList[i].Sprite == null || MapEntity.mapEntityList[i].Sprite.Depth < 0.5f)
|
if (MapEntity.mapEntityList[i].Sprite == null || MapEntity.mapEntityList[i].Sprite.Depth < 0.5f)
|
||||||
MapEntity.mapEntityList[i].Draw(spriteBatch, editing);
|
MapEntity.mapEntityList[i].Draw(spriteBatch, editing, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -242,7 +247,7 @@ namespace Barotrauma
|
|||||||
for (int i = 0; i < MapEntity.mapEntityList.Count(); i++)
|
for (int i = 0; i < MapEntity.mapEntityList.Count(); i++)
|
||||||
{
|
{
|
||||||
if (MapEntity.mapEntityList[i].Sprite == null || MapEntity.mapEntityList[i].Sprite.Depth >= 0.5f)
|
if (MapEntity.mapEntityList[i].Sprite == null || MapEntity.mapEntityList[i].Sprite.Depth >= 0.5f)
|
||||||
MapEntity.mapEntityList[i].Draw(spriteBatch, editing);
|
MapEntity.mapEntityList[i].Draw(spriteBatch, editing, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -680,8 +685,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
GameMain.LightManager.OnMapLoaded();
|
GameMain.LightManager.OnMapLoaded();
|
||||||
|
|
||||||
ID = ushort.MaxValue-10;
|
ID = ushort.MaxValue;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Submarine Load(string fileName)
|
public static Submarine Load(string fileName)
|
||||||
|
|||||||
Reference in New Issue
Block a user