This currently requires that either the old or new elements have no external references, as redirecting two elements with external references will require support for redirection within the element framework itself
#jira UE-107415
#rb Brooke.Hubert, Chris.Gagnon
#rnx
#ROBOMERGE-SOURCE: CL 15371192 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)
[CL 15371240 by jamie dale in ue5-main branch]
- PostReinitProperties is called when a subobject has it's properties overwritten a second time during a direct copy from a CDO
- PostApplyToComponent is called when a component has it's properties overwritten by a user construction script
#rb Francis.Hurteau, Robert.Manuszewski, Steve.Robb
[CL 15280318 by danny couture in ue5-main branch]
Address the following serialization issues:
1) Ensure ObjectPtr Property can convert from SoftObjectProperty and anything else that Object Property can convert from by removing its ConvertFromType override.
2) Fix serialization of wrapped pointers through archives that don't derive from FArchiveUObject, but still expect to be able to serialize both raw and wrapped object references (FNetBitWriter, FExportArchive, and FObjectAndNameAsStringProxyArchive).
3) Restore assert in base FArchive serialization of wrapped object pointer which I had erroneously made in CL15130804 now that it is clear that it is not safe to be relying on silently not writing/reading a wrapped object pointer (even if that may be the default behavior for a raw pointer).
4) Bump Niagara custom version guid to avoid issues with incorrectly serialized data in DDC.
#jira UE-106943
#rb devin.doucette
#fyi rob.krajcarski
[CL 15178163 by Zousar Shaker in ue5-main branch]
Fix issue where constructor for FSoftObjectPath was using FObjectHandle variant in unintended cases in configurations with lazy load disabled. This led to errors when using the "package override" feature.
#jira UE-106944
#rb devin.doucette
#fyi jeanfrancois.dube
[CL 15168014 by Zousar Shaker in ue5-main branch]
Change the FObjectPtrProperty reflection type to derive from FObjectProperty type (instead of TFObjectPropertyBase) to avoid incompatibility with code that uses the reflection system to operate on specifically FObjectProperty fields. Also removed the override of the GetID virtual method to allow ObjectPtr properties to have the same identifying name as Object properties. This ensures there's no serialization incompatibility when moving between Object<->ObjectPtr or ObjectPtr->(Object compatible type) in the serialization and reflection code.
#jira UE-106329
#rb devin.doucette
[CL 15132777 by Zousar Shaker in ue5-main branch]
1) Save1 had reversed condition around SetLoadedPath: it _should_ be done if IsMountedPath.
2) Save2 needs the calls to SetPersistentGuid and SetLoadedPath that were added to Save1.
#rb Francis.Hurteau
#rnx
[CL 15132572 by Matt Peters in ue5-main branch]
+ Added more debug info when asserting about mismatched struct sizes
#fyi Chris.Bunner
#rb trivial
#jira UE-102728
[CL 14914898 by Robert Manuszewski in ue5-main branch]
Note: This keeps the fix for incorrect nested DefaultSceneRoot ICH override template names in place, since that was a separate issue.
#rnx
#rb None
#jira UE-87133, UESP-4238
#fyi Jon.Nabozny
[CL 14897958 by Phillip Kavan in ue5-main branch]
This addresses a regression that could manifest in some cases where the CDO has not yet been created, and is a bit closer to the original implementation.
#rnx
#rb None
#jira UE-87133
#fyi Patrick.Enfedaque
[CL 14888213 by Phillip Kavan in ue5-main branch]
Change summary:
- Reordered FComponentOverrideRecord struct fields so that the key is serialized before the template object. Archetype lookups on the template object are now dependent on the key being valid as we now route these through the record table.
- ICH override template object serialization is now deferred in non-EDL builds (i.e. editor) as part of loading the Blueprint class asset. This ensures that the ICH override record key is valid in older assets before we let the linker instance the export object for the ICH override template object on load; per the above, this depends on a successful archetype lookup for its instantiation.
- Modified the signature of UClass::FindArchetype() to include an additional ObjectFlags input argument.
- Revised GetArchetypeFromRequiredInfoImpl() to now route ICH override template object archetype lookups through the owning class in place of the "old way" of doing a brute force subobject search through the outer class chain, which would sometimes fail and fall back to incorrectly return the archetype class's default object, resulting in data loss issues on load.
- Revised UBlueprintGeneratedClass::FindArchetype() to route ICH override template object archetype lookups through the parent class hierarchy, using the ICH override record's key to retrieve the original template as the basis for finding a match. This ensures that lookups won't fail due to things like SCS variable name changes in the base class and also that we now can properly handle archetype lookups for ICH records that override an inherited default scene root.
#jira UE-87133
#rb Marc.Audy
[CL 14886445 by Phillip Kavan in ue5-main branch]