Fixed unknown error logs being silently ignored and fixed timers causing crashes in some weird rare circumstances

This commit is contained in:
EvilFactory
2023-01-06 12:05:00 -03:00
parent e9092d5620
commit 90a68edb4e
2 changed files with 14 additions and 25 deletions

View File

@@ -65,6 +65,7 @@ namespace Barotrauma
switch (origin)
{
case LuaCsMessageOrigin.LuaCs:
case LuaCsMessageOrigin.Unknown:
LogError($"[{LogPrefix} ERROR] {message}");
break;
case LuaCsMessageOrigin.LuaMod:

View File

@@ -67,40 +67,28 @@ namespace Barotrauma
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>();
for (int i = 0; i < timedActions.Count; i++)
TimedAction timedAction = timedCopy[i];
if (Time >= timedAction.ExecutionTime)
{
TimedAction timedAction = timedActions[i];
if (Time >= timedAction.ExecutionTime)
try
{
try
{
timedAction.Action();
}
catch (Exception e)
{
LuaCsLogger.HandleException(e, LuaCsMessageOrigin.CSharpMod);
}
timedActionsToRemove.Add(timedAction);
timedAction.Action();
}
else
catch (Exception e)
{
break;
LuaCsLogger.HandleException(e, LuaCsMessageOrigin.CSharpMod);
}
}
foreach (TimedAction timedAction in timedActionsToRemove)
{
timedActions.Remove(timedAction);
}
}
catch (NullReferenceException e)
{
LuaCsLogger.LogError("Error while executing timers... This shouldn't happen... Why do we a NRE here???", LuaCsMessageOrigin.Unknown);
LuaCsLogger.HandleException(e, LuaCsMessageOrigin.Unknown);
else
{
break;
}
}
}