fix crash if a cs mod errors in the dispose method
This commit is contained in:
@@ -29,8 +29,17 @@ namespace Barotrauma
|
|||||||
LoadedMods.Add(this);
|
LoadedMods.Add(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose() {
|
public void Dispose()
|
||||||
Stop();
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Stop();
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
GameMain.LuaCs.HandleException(e, null, LuaCsSetup.ExceptionType.CSharp);
|
||||||
|
}
|
||||||
|
|
||||||
LoadedMods.Remove(this);
|
LoadedMods.Remove(this);
|
||||||
IsDisposed = true;
|
IsDisposed = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -318,9 +318,13 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
UserData.UnregisterType(type, true);
|
UserData.UnregisterType(type, true);
|
||||||
}
|
}
|
||||||
foreach (var mod in ACsMod.LoadedMods.ToArray()) mod.Dispose();
|
|
||||||
ACsMod.LoadedMods.Clear();
|
|
||||||
|
|
||||||
|
foreach (var mod in ACsMod.LoadedMods.ToArray())
|
||||||
|
{
|
||||||
|
mod.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
ACsMod.LoadedMods.Clear();
|
||||||
|
|
||||||
if (Thread.CurrentThread == GameMain.MainThread)
|
if (Thread.CurrentThread == GameMain.MainThread)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user