Applied settings are now written as a string rather than an int
Also added UObject::GetDefaultConfigFilename()
[CL 2305291 by Andrew Rodham in Main branch]
- Fix SSettingsEditor reload config object regression
- Remove double-padding when editing a settings page that has a checkout prompt
- Fix pending hardware targeting settings not showing up if you change pages and come back
- Fix height pop in SSetingsEditorCheckoutNotice when status query finishes
[CL 2303657 by Michael Noland in Main branch]
- changed rigcontrol to trasnformbase as right now it only does transform base, and in the future we should add more controllers
- added clear bone name
- added "reset base pose" option for opting back to original mesh pose
- fixed so that rig nodes doesn't have to be mapped
[CL 2302778 by Lina Halper in Main branch]
- Add a settings builder/gatherer class that either builds a description of what the meta-settings will change, or actually applies the changes
- Display the pending changes
- First pass on actual settings controlled by the hardware+graphics level meta-settings (very WIP)
#codereview andrew.rodham
[CL 2302104 by Michael Noland in Main branch]
This is controlled by the macro "WITH_CASE_PRESERVING_NAME", which is currently just set to "WITH_EDITORONLY_DATA" so that it works in editor builds (and UHT).
Added an extra NAME_INDEX entry to FName to store a second string table index for a case-variant string. The previous Index value (now called ComparisonIndex) is still used for comparison purposes (as FNames are still case-insensitive).
The Init process for an FName now works like this:
1) It will find or add a string table entry for the given string (not matching case) - this entry index is stored in ComparisonIndex.
2) It will then compare the string table entry string against the given string (matching case) to see if it also needs to add a case-variant entry for the FName.
3) If it does, it finds or adds a second string table entry (matching case) for the string - this entry index is stored in DisplayIndex.
Hard-coded FNames (those listed in UnrealNames.h) do not support case-variants (due to existing network replication rules for hard-coded FNames), so they skip steps 2 and 3.
I added FMinimalName, which is the same size as FName was previously. This shouldn't really be used (and as such, is deliberately awkward to make/use) as it loses the case-preserving behaviour of FName, however it was required for some things (like stats) that had a hard-coded upper limit on FName size.
I added FScriptName, which always contains the extra display index (even when WITH_CASE_PRESERVING_NAME is disabled). This is used by Blueprint bytecode, as the types used by Blueprint bytecode must be a consistent size between all build configurations.
Other changes:
- Fixed up any places that were passing an Index into the FName constructor which was supposed to take an EName.
- Some places were doing this to make the number unique when replicating an object, but this was losing the case-variant information, so I had to fix them.
- FName will now assert if the EName constructor is used with an value outside the range of hard-coded FNames.
- Ensured that assets, actors, and blueprint components could all be renamed in a way that only changed their case, and that these changes were correctly persisted.
- Added FLinkerNamePairKeyFuncs and TLinkerNameMapKeyFuncs for use with TSet and TMap.
- These allow ULinkerSave and ULinkerLoad to correctly write out case-variants for FNames, and also fixes an issue where the linker would erroneously write out duplicate string table entries for FNames which had a different number (causing package bloat).
- Bumped VER_MIN_SCRIPTVM_UE4 so that all Blueprint bytecode is recompiled using FScriptName.
ReviewedBy Robert.Manuszewski, Gil.Gribb
[CL 2300730 by Jamie Dale in Main branch]
- Also rename SpringArmComponent.bUseControllerViewRotation to bUsePawnViewRotation for consistency (default was already false).
- IMPORTANT UPGRADE NOTE: C++ projects using CameraComponents should ensure that they initialize bUsePawnViewRotation with the correct value if previously there was no initialization, since the default behavior has changed.
- The correct way to be backwards-compatible for CameraComponents is demonstrated in the C++ project templates:
- add "_DEPRECATED" to any initialization of bUseControllerViewRotation (which becomes bUseControllerViewRotation_DEPRECATED).
- add initialization of bUsePawnViewRotation to your desired default value.
- if there was no previous initialization of bUsePawnViewRotation in code, then you MUST add initialization to "true" if you wish to maintain the same behavior as before (since the default has changed).
[CL 2298842 by Zak Middleton in Main branch]
This is an API breaking change. If you previously experimented with media assets, you will have to rebuild your Blueprints, UMG widgets, etc. If you don't want to lose your existing Blueprints, you can add the following line to your project's Engine.ini, which will map the old class name to the new one (you will still need to replace existing MediaAsset nodes with MediaPlayer nodes):
[/Script/Engine.Engine]
+ActiveClassRedirects=(OldClassName="MediaAsset",NewClassName="MediaPlayer")
[CL 2291399 by Max Preussner in Main branch]
Also removed tabs from the project browser dialogs when they're not necessary. Fixed up some incorrect icon sizes to work with the new layout.
[CL 2290664 by Andrew Rodham in Main branch]