try-finally multiple UniqueEvents.ToList() to avoid issues(Destination array was not long enough. Check the destination index, length, and the array's lower bounds)
This commit is contained in:
@@ -1218,6 +1218,8 @@ namespace Barotrauma.Networking
|
|||||||
|
|
||||||
errorLines.Add("");
|
errorLines.Add("");
|
||||||
errorLines.Add("EntitySpawner events:");
|
errorLines.Add("EntitySpawner events:");
|
||||||
|
try
|
||||||
|
{
|
||||||
foreach (var entityEvent in entityEventManager.UniqueEvents.ToList())
|
foreach (var entityEvent in entityEventManager.UniqueEvents.ToList())
|
||||||
{
|
{
|
||||||
if (entityEvent.Entity is EntitySpawner)
|
if (entityEvent.Entity is EntitySpawner)
|
||||||
@@ -1230,6 +1232,11 @@ namespace Barotrauma.Networking
|
|||||||
" (" + spawnData.ID + ", " + spawnData.Entity.ID + ")");
|
" (" + spawnData.ID + ", " + spawnData.Entity.ID + ")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
errorLines.Add("Catch event snapshot failed.");
|
||||||
|
}
|
||||||
|
|
||||||
errorLines.Add("");
|
errorLines.Add("");
|
||||||
errorLines.Add("Last debug messages:");
|
errorLines.Add("Last debug messages:");
|
||||||
|
|||||||
@@ -169,6 +169,8 @@ namespace Barotrauma
|
|||||||
|
|
||||||
#if SERVER
|
#if SERVER
|
||||||
if (GameMain.Server != null && Entity.Spawner != null)
|
if (GameMain.Server != null && Entity.Spawner != null)
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
if (GameMain.Server.EntityEventManager.UniqueEvents.ToList().Any(ev => ev.Entity == item))
|
if (GameMain.Server.EntityEventManager.UniqueEvents.ToList().Any(ev => ev.Entity == item))
|
||||||
{
|
{
|
||||||
@@ -178,9 +180,13 @@ namespace Barotrauma
|
|||||||
GameMain.Server.EntityEventManager.UniqueEvents.RemoveAll(ev => ev.Entity == item);
|
GameMain.Server.EntityEventManager.UniqueEvents.RemoveAll(ev => ev.Entity == item);
|
||||||
GameMain.Server.EntityEventManager.Events.RemoveAll(ev => ev.Entity == item);
|
GameMain.Server.EntityEventManager.Events.RemoveAll(ev => ev.Entity == item);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
Entity.Spawner.CreateNetworkEvent(new EntitySpawner.SpawnEntity(item));
|
Entity.Spawner.CreateNetworkEvent(new EntitySpawner.SpawnEntity(item));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (jobItem.Equip)
|
if (jobItem.Equip)
|
||||||
|
|||||||
Reference in New Issue
Block a user