- let skip_super use the AActor assignment operator. The blanket memcpy it used was clobbering some data.

- moved the Finalize method from PClassActor to AActor. Now that defaults get their vtbl pointer initialized this will actually work.
This commit is contained in:
Christoph Oelckers 2017-02-07 18:12:38 +01:00
commit 776509e68a
10 changed files with 15 additions and 26 deletions

View file

@ -429,20 +429,20 @@ void PClassActor::SetDropItems(DDropItem *drops)
//
//==========================================================================
void PClassActor::Finalize(FStateDefinitions &statedef)
void AActor::Finalize(FStateDefinitions &statedef)
{
AActor *defaults = (AActor*)Defaults;
AActor *defaults = this;
try
{
statedef.FinishStates(this, defaults);
statedef.FinishStates(GetClass(), defaults);
}
catch (CRecoverableError &)
{
statedef.MakeStateDefines(NULL);
throw;
}
statedef.InstallStates(this, defaults);
statedef.InstallStates(GetClass(), defaults);
statedef.MakeStateDefines(NULL);
}