This appears to be a really old holdover from early UE4 development. It was originally introduced in CL 1258792 to satisfy a lingering Engine dependency. However, that dependency was eventually removed in CL 3119255, which this change probably should've been lumped with.
#jira nojira
#rb marc.audy, robert.manuszewski
[CL 16351204 by dave jones2 in ue5-main branch]
This ensure has been hit twice, and in both cases the calling code would have correctly handled the false return value, and we needed to alter it to avoid the ensure.
#rb Josh.Adams
#rnx
[CL 16324168 by Matt Peters in ue5-main branch]
- number of supplied parameters less or more than the number of specifiers used in format string
- invalid format string specifiers used
#rb Matt.Peters
[CL 16315056 by ionut matasaru in ue5-main branch]
Mostly casting directly to the correct type but caught a few bugs in selected types that are now fixed)
Also made such conversions warnings within the Chaos and ChaosCore modules, may promote to error once we're sure it's buliding fine.
#rb cedric.caillaud
#jira UE-88355
#preflight 609a5e934cb94000015ae9f1
[CL 16268359 by Benn Gallagher in ue5-main branch]
This will cause the old bulkdata objects to be upgraded when loaded in the editor and saved out in the new format when the package is next saved.
#rb PJ.Kack
#rnx
#preflight 609a4df10ba7b600015e0da2
* UE5CookerObjectVersion
- Note that this work was done in CL 16266112 (it was easier to update this on the DevCooker branch)
- Moved UE_USE_VIRTUALBULKDATA to VirtualizationManager.
- Moved the virtualization versions to UE5MainStreamObjectVersion.
- Note that no package would have been saved with UE_USE_VIRTUALBULKDATA so it is safe to just move the versions.
* UE5MainStreamObjectVersion
- Added the virtialization versions here
- Fixed up some white space issues
* VirtualizationManager
- UE_USE_VIRTUALBULKDATA is now controlled from here.
- When disabled (set to 0) a new code path UE_VBD_TO_OLD_BULKDATA_PATH will be enabled that will attempt to allow packages saved with VBD to be reverted safely.
-- This requires that a new version be added to FUE5MainStreamObjectVersion, there is a static assert to warn people about this.
* VirtualizedBulkData
- Added a new method ::ConvertToOldBulkData which will load the VBD payload from disk and then pass it to the old bulkdata object provided. This is not as efficient as the OldBulkData->VBD path but is only provided as an emergancy way for us to back out if needed, we do not expect this code to actually be used.
- Fixed a bug where converting an empty bulkdata object to VBD would give a warning about invalid guids. If the provided bulkdata object is empty then it is likely that we will not have generated a unique guid for it anyway. A VBD object with no payload would expect to have an unset FPayloadId AND an invalid bulkdata identifier anyway so we can just do that and only warn in the case that a valid payload has no valid guid provided. This has a bonus of making the code easier to read as well.
* StaticMeshSourceData
- Updated MESHDATAKEY_STATICMESH_DERIVEDDATA_VER when UE_USE_VIRTUALBULKDATA is enabled again.
-- This probably isn't required but in theory some of our tests could've written mesh description data to the DDC with the old key, so we should update it to play it safe.
* Texture
- Converted to use FUE5MainStreamObjectVersion for it's version number
- Added a code path that will allow us to convert back to using old style bulkdata if UE_USE_VIRTUALBULKDATA is disabled and UE_VBD_TO_OLD_BULKDATA_PATH is enabled.
*MeshDescription
- Converted to use FUE5MainStreamObjectVersion for it's version number
-- Note that we don't have to tell the archive that we are using this because this was already happening.
- Added a code path that will allow us to convert back to using old style bulkdata if UE_USE_VIRTUALBULKDATA is disabled and UE_VBD_TO_OLD_BULKDATA_PATH is enabled.
[CL 16266408 by paul chipchase in ue5-main branch]
- Moved UE_USE_VIRTUALBULKDATA to VirtualizationManager.h as it will no longer control versioning in any fashion.
- Remove virtualization versions from FUE5CookerObjectVersion (which were never enabled so this is safe to do)
- This is a partial extraction from the CL that will enable virtualized bulkdata but it will be easier to do some of the cleanup in DevCooker first and cherrypick to main then do a full merge up back to DevCooker to avoid a number of merging issues.
- Note that with this submit enabling UE_USE_VIRTUALBULKDATA will not work until the main submit to main, however nobody should be enabling that so it shouldn't matter.
#rb PJ.Kack
#rnx
#preflight 609a35e00fb8f20001688598
#ushell-cherrypick of 16265784 by paul.chipchase
[CL 16266112 by paul chipchase in ue5-main branch]
This was due to TFieldIterator skipping interfaces by default, which is what the various FindField/Property functions use internally.
This change also cleans-up TFieldIterator so that you can control its behavior with a single flags value (rather than 3), via a new constructor that takes a EFieldIterationFlags value (now the default constructor), with the older-style EFieldIteratorFlags values being proxied from the older multi-parameter constructor.
#preflight 60947bffc6c42e0001298c56
#rb Marc.Audy
[CL 16238110 by Jamie Dale in ue5-main branch]