- Changed DECORATE replacements so that they aren't overridden by Dehacked.

SVN r1391 (trunk)
This commit is contained in:
Randy Heit 2009-02-03 05:46:55 +00:00
parent c11f1a7fdc
commit 0b95b47f87
2 changed files with 12 additions and 1 deletions

View file

@ -1,3 +1,6 @@
February 2, 2009
- Changed DECORATE replacements so that they aren't overridden by Dehacked.
February 2, 2009 (Changes by Graf Zahl) February 2, 2009 (Changes by Graf Zahl)
- Fixed: The damage factor for 'normal' damage is supposed to be applied to - Fixed: The damage factor for 'normal' damage is supposed to be applied to
all damage types that don't have a specific damage factor. all damage types that don't have a specific damage factor.

View file

@ -2585,7 +2585,7 @@ void FinishDehPatch ()
AActor *defaults2 = GetDefaultByType (subclass); AActor *defaults2 = GetDefaultByType (subclass);
memcpy (defaults2, defaults1, sizeof(AActor)); memcpy (defaults2, defaults1, sizeof(AActor));
// Make a copy the replaced class's state labels // Make a copy of the replaced class's state labels
FStateDefinitions statedef; FStateDefinitions statedef;
statedef.MakeStateDefines(type); statedef.MakeStateDefines(type);
@ -2598,8 +2598,16 @@ void FinishDehPatch ()
// Use the DECORATE replacement feature to redirect all spawns // Use the DECORATE replacement feature to redirect all spawns
// of the original class to the new one. // of the original class to the new one.
FActorInfo *old_replacement = type->ActorInfo->Replacement;
type->ActorInfo->Replacement = subclass->ActorInfo; type->ActorInfo->Replacement = subclass->ActorInfo;
subclass->ActorInfo->Replacee = type->ActorInfo; subclass->ActorInfo->Replacee = type->ActorInfo;
// If this actor was already replaced by another actor, copy that
// replacement over to this item.
if (old_replacement != NULL)
{
subclass->ActorInfo->Replacement = old_replacement;
}
DPrintf ("%s replaces %s\n", subclass->TypeName.GetChars(), type->TypeName.GetChars()); DPrintf ("%s replaces %s\n", subclass->TypeName.GetChars(), type->TypeName.GetChars());
} }