These now serialize a NetGUID tracked by the PackageMap, as other replicated references to objects do. Effectively acts as a weak pointer in the replication case now as well. Soft pointers to stably-named objects continue to replicate their string path.
Added EngineTest cases for replicated soft pointers.
#jira UE-144886
#rb brian.bekich
#preflight 632a22f6b40000c8f08c6e4d
[CL 22105246 by ryan gerleve in ue5-main branch]
Another consequence of using doubles everywhere in Blueprints is that delegate binding can fail if a native delegate signature uses floats. The initial attempt at fixing this would update modify function pins in the current Blueprint to use PC_Float as a subcategory if it was used in a delegate binding. Unfortunately, this doesn't work if we're binding to a function in a different BP class. Attempting to fix up those functions would dirty several Blueprints, and likely confuse users.
The approach that we take here creates a proxy delegate function that matches the underlying signature. The proxy's function graph will then call the original bound function, which implicitly handles any double/float conversions. Additionally, we'll perform a "capture" of any actors that we need to call the bound function on. The compiler will add a new hidden property for the actor class, which we set in the original graph that had the bound delegate. The proxy function graph will then read this property when it calls the original function.
#jira UE-145634
#preflight 63191b1cb069eea9ab594ea2
#rb phillip.kavan
[CL 22087332 by dave jones2 in ue5-main branch]
- Fixed issue where custom property overrides was not properly initialzied for iris if set before beginplay/beginreplication
- Cleaned up delegates propagating custom property overrides to iris-replicationsystem
- Marked interface methods in IRepChangedPropertyTracker to be deprecated in the future and added routing of SetCustomActive override via FNetPropertyConditionManager::SetPropertyActiveOverride to allow for future removal of the interface
#jira https://jira.it.epicgames.com/browse/UE-158358
#rb Peter.Engstrom
#preflight 63285ec98131e92d65975851
[CL 22072998 by Mattias Hornlund in ue5-main branch]
This change does a few things:
* Improves compile times because the gen.cpp is inlined so less header parsing is required.
* Allows us to forward declare more types in the headers where we were not able to because the gen.cpp files did not have all the required headers included. The gen.cpp files required the header that generated it to include all the types because of the constructor and desructor in the gen.cpp need to know the full type.
#jira
#preflight 6323b43f8131e92d65aed1d9
[CL 22064061 by bryan sefcik in ue5-main branch]
Core - Refactoring the Object Handle event callbacks so that we can hook and unhook them with delegates/delegatehandles.
Core - Adding support for detecting loads via object handles as a new event distinct from resolution callback.
Core - Expanding the utility functions on FObjectRef so that we can resolve it in a myraid of fashions to get the path, the class path, the full path and the export path.
[REVIEW] [at]Zousar.Shaker, [at]Joe.Pribele
[CL 22063982 by nick darnell in ue5-main branch]
Class - When iterating the classes sparse values, don't accidentally load deferred objects, or crash because you're reinterpret casting the value of something that isn't a pointer.
[REVIEW] [at]Zousar.Shaker, [at]Joe.Pribele
[CL 22063963 by nick darnell in ue5-main branch]