Added new define as an overall toggle - defaults to off.
If turned on the functionality can be disabled using a console variable
#rb sara.schvartzman
#jira UE-145106
#preflight https://horde.devtools.epicgames.com/job/6230657b306f46da147a3188
#ROBOMERGE-OWNER: halfdan.ingvarsson
#ROBOMERGE-AUTHOR: helge.mathee
#ROBOMERGE-SOURCE: CL 19384087 via CL 19384325 via CL 19385988 via CL 19397856 via CL 19397869
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19403124 by halfdan ingvarsson in ue5-main branch]
#rb trivial
#jira UE-145308
#preflight 6229f57a695c94f981fc3e68
#ROBOMERGE-AUTHOR: tim.smith
#ROBOMERGE-SOURCE: CL 19335005 in //UE5/Release-5.0/... via CL 19335525
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19348720 by tim smith in ue5-main branch]
#rb Steve.Robb
#preflight 6216795ec152c67496dd3acf
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19170586 via CL 19170837 via CL 19170842 via CL 19170845 via CL 19170992
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)
[CL 19171072 by robert manuszewski in ue5-main branch]
#rb Steve.Robb
#preflight 621515f40f71e491ccc7d14b
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19075982 via CL 19098326 via CL 19104715 via CL 19104912 via CL 19110027
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)
[CL 19147883 by robert manuszewski in ue5-main branch]
Setters and getters are native functions called by FProperties when setting property values with *_InContainer functions.
Setters and getter function names can be manually specified with Setter = Func and Getter = Func keywords inside of UPROEPRTY macro but they will also be automatically parsed if the name is not explicitly specified if the setter or getter function name matches SetPropertyName and GetPropertyName pattern.
The latter behavior can be disabled in UHT's DefaultEngine.ini by setting AutomaticSettersAndGetters=False.
ImportText and ExportTextItem functions have been deprecated and should be replaced with *_InContainer or *_Direct variants.
#rb Steve.Robb
#preflight 6210a377a83e0bcefd03d9e1
#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19070318 via CL 19098059 via CL 19104650 via CL 19104661 via CL 19110012
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)
[CL 19147839 by marc audy in ue5-main branch]
2) Added new struct and class specifiers to account for settings being extracted from the engine code.
3) UHT no longer depends on pre-existing classes in the engine but will use them when it needs to create the engine instances of the classes.
#rb joe.kirchoff, janathan.adamczewski
#rnx
#preflight 620fa0316c6c638c07ddca93
[CL 19049306 by Tim Smith in ue5-main branch]
previous change at CL 18866227 was backed out because it broke the bot1 cooks: https://horde.devtools.epicgames.com/log/61ffcf94676584e71ea0ab7e?lineindex=104697
Basically GetBoolMetaDataHierarchical returns the wrong thing and the return pin can no longer be broken up and so the blueprint won't compile.
#jira UE-141083
#rb helge.mathee sara.schvartzman ben.hoffman
#preflight https://horde.devtools.epicgames.com/job/62018bbd62420bfd0493e404
#ROBOMERGE-AUTHOR: jack.cai
#ROBOMERGE-SOURCE: CL 18907822 via CL 18907834 via CL 18907851 via CL 18918946 via CL 18919865
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v916-18915374)
[CL 18919918 by jack cai in ue5-main branch]
The process of cooking would ensure that every BP derived from a C++ base using sparse class data would have its own sparse class data instance, as the serialization function would create an instance on save/load. This could potentially result in a lot of redundant instances that don't override any data from their archetype.
These changes allow the API for accessing sparse class data to optionally fallback to using the archetype data when possible (controlled via the EGetSparseClassDataMethod enum), though any existing code already using GetOrCreateSparseClassData (or the UHT wrapper) will continue to always create a new instance.
BPGC serialization has been updated to only save the sparse class data when it has overridden data from its archetype, and the loading code will now avoid creating the instance when no override data has been saved. This allows new code to take advantage of EGetSparseClassDataMethod by choosing to reference the archetype data instead, and the engine has also been updated to avoid calling GetOrCreateSparseClassData where possible.
Anything that requires a mutable sparse class data instance should still use GetOrCreateSparseClassData (or the UHT wrapper that doesn't take EGetSparseClassDataMethod), as otherwise you may edit data belonging to your archetype (which is why GetSparseClassData returns const data).
#preflight 61b28ecdc01c89f906c4d72f
#rb Fred.Kimberley, Thomas.Sarkanen
#ROBOMERGE-AUTHOR: jamie.dale
#ROBOMERGE-SOURCE: CL 18442650 via CL 18443219 via CL 18443223 via CL 18443224 via CL 18444418 via CL 18445355
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18445518 by jamie dale in ue5-release-engine-test branch]
[at]*tim.tillotson
#rb tim.smith
#preflight 61b277aedd082817e81d0866
#ROBOMERGE-AUTHOR: matt.breindel
#ROBOMERGE-SOURCE: CL 18426836 via CL 18428164 via CL 18428184 via CL 18428205 via CL 18435149 via CL 18437401
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18437876 by matt breindel in ue5-release-engine-test branch]
#rb trivial
#jira none
#preflight 61a7d0ec800738dbfbab589c
#ROBOMERGE-AUTHOR: tim.smith
#ROBOMERGE-SOURCE: CL 18343712 in //UE5/Release-5.0/... via CL 18343742
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18343777 by tim smith in ue5-release-engine-test branch]
Tim.Smith
[FYI] Tim.Smith
#preflight skip
#ROBOMERGE-AUTHOR: daniel.lamb
#ROBOMERGE-SOURCE: CL 18325461 via CL 18326818 via CL 18326973 via CL 18327001 via CL 18328442 via CL 18328531
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18328632 by daniel lamb in ue5-release-engine-test branch]