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]
# Also exposed the typed element selection set to the queries API in ITF.
# Implemented a stash/pop selection on the typed element selection set for modes to use.
#Jira UE-107091
#rb jamie.dale chris.gagnon ryan.schmidt
#ROBOMERGE-SOURCE: CL 15359303 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)
[CL 15360406 by brooke hubert 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]
1) Use safe bool idiom - fails due to ambiguity with implicit cast operator to T*
2) Use constexpr comparison operators with validation that the TYPE_OF_NULL parameter is always zero - can't find a way to accomplish this with function parameters at compile time.
The issue arises only when a type has conversion operator to a bool (explicit or implicit), and removal of that operator just leads to other problems where a TObjectPtr must be resolved before it can be checked against null, which is something that I've tried to avoid in anticipation of lazy load. If we end up abandoning the idea of null checking a TObjectPtr without resolving it, we can revisit this code and strip out this workaround.
#jira UE-107385
#rb none
[CL 15259425 by Zousar Shaker in ue5-main branch]
Fix another issue of an FArchive that serializes object references without deriving from FArchiveUObject. This one affects serialization to/from text assets. Confirmed I can export an asset containing object references to text format when the fields are of wrapped pointer type. Comparing the resulting output to a text export of the same asset when the fields are raw pointers show no diffs aside from Guid and Localization which are shown to vary from export-to-export or editor session to editor session.
NOTE: Unlike lazy/soft/weak pointers, I want serialization of wrapped pointers to match serialization of raw pointers, so I don't create a separate indexed array for it in the text output, it goes into the same "Objects" array as raw object pointers.
#rb devin.doucette
#fyi graeme.thornton
[CL 15201151 by Zousar Shaker 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]
Avoid an assert experienced when wrapped object pointers are used in named values via the StructuredArchive's FArchiveFromStructuredArchive adapter. This change ensures that the wrapped pointers are serialized directly instead of through the adapter. The groundwork for avoiding the adapter was already there, but what was missing was the operator necessary to convert from the templated TObjectPtr class to the private non-templated FObjectPtr base class used by serialization. I suspect this same issue may also be happening for other types like TLazyObjectPtr which don't implement the necessary operator to convert to their private base type used in serialization.
#jira UE-106345
#rb devin.doucette
#fyi johan.torp
[CL 15162153 by Zousar Shaker in ue5-main branch]