- removed all asserts from the interpolation objects' Destroy methods. The condition will not be true after a failed savegame write occured.
- fixed: D_ErrorCleanup must clear 'savegamerestore'. - fixed: Cleaning up when loading a savegame failed while restoring the thinker list did not work. There were two issues: * removed the asserts in GC::SweepList because they get triggered by thinkers that were not fully initialized during loading. * AActor::UnlinkFromWorld may not assume that the sector list has been initialized when this function is called. SVN r3274 (trunk)
This commit is contained in:
parent
c8b8cdd13b
commit
080e769c76
5 changed files with 30 additions and 38 deletions
|
|
@ -192,19 +192,10 @@ void DThinker::SerializeAll(FArchive &arc, bool hubLoad)
|
|||
statcount--;
|
||||
}
|
||||
}
|
||||
catch (class CDoomError &err)
|
||||
catch (class CDoomError &)
|
||||
{
|
||||
bSerialOverride = false;
|
||||
|
||||
// DestroyAllThinkers cannot be called here. It will try to delete the corrupted
|
||||
// object table left behind by the serializer and crash.
|
||||
// Trying to continue is not an option here because the garbage collector will
|
||||
// crash the next time it runs.
|
||||
// Even making this a fatal error will crash but at least the message can be seen
|
||||
// before the crash - which is not the case with all other options.
|
||||
|
||||
//DestroyAllThinkers();
|
||||
I_FatalError("%s", err.GetMessage());
|
||||
DestroyAllThinkers();
|
||||
throw;
|
||||
}
|
||||
bSerialOverride = false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue