Fixed unknown error logs being silently ignored and fixed timers causing crashes in some weird rare circumstances
This commit is contained in:
@@ -65,6 +65,7 @@ namespace Barotrauma
|
|||||||
switch (origin)
|
switch (origin)
|
||||||
{
|
{
|
||||||
case LuaCsMessageOrigin.LuaCs:
|
case LuaCsMessageOrigin.LuaCs:
|
||||||
|
case LuaCsMessageOrigin.Unknown:
|
||||||
LogError($"[{LogPrefix} ERROR] {message}");
|
LogError($"[{LogPrefix} ERROR] {message}");
|
||||||
break;
|
break;
|
||||||
case LuaCsMessageOrigin.LuaMod:
|
case LuaCsMessageOrigin.LuaMod:
|
||||||
|
|||||||
@@ -67,40 +67,28 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public void Update()
|
public void Update()
|
||||||
{
|
{
|
||||||
try
|
List<TimedAction> timedActionsToRemove = new List<TimedAction>();
|
||||||
|
TimedAction[] timedCopy = timedActions.ToArray();
|
||||||
|
for (int i = 0; i < timedCopy.Length; i++)
|
||||||
{
|
{
|
||||||
List<TimedAction> timedActionsToRemove = new List<TimedAction>();
|
TimedAction timedAction = timedCopy[i];
|
||||||
for (int i = 0; i < timedActions.Count; i++)
|
if (Time >= timedAction.ExecutionTime)
|
||||||
{
|
{
|
||||||
TimedAction timedAction = timedActions[i];
|
try
|
||||||
if (Time >= timedAction.ExecutionTime)
|
|
||||||
{
|
{
|
||||||
try
|
timedAction.Action();
|
||||||
{
|
|
||||||
timedAction.Action();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
LuaCsLogger.HandleException(e, LuaCsMessageOrigin.CSharpMod);
|
|
||||||
}
|
|
||||||
|
|
||||||
timedActionsToRemove.Add(timedAction);
|
|
||||||
}
|
}
|
||||||
else
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
break;
|
LuaCsLogger.HandleException(e, LuaCsMessageOrigin.CSharpMod);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
foreach (TimedAction timedAction in timedActionsToRemove)
|
|
||||||
{
|
|
||||||
timedActions.Remove(timedAction);
|
timedActions.Remove(timedAction);
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
catch (NullReferenceException e)
|
{
|
||||||
{
|
break;
|
||||||
LuaCsLogger.LogError("Error while executing timers... This shouldn't happen... Why do we a NRE here???", LuaCsMessageOrigin.Unknown);
|
}
|
||||||
LuaCsLogger.HandleException(e, LuaCsMessageOrigin.Unknown);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user