Newly installed versions of the engine will now attempt to copy the project-agnostic config settings from a previous engine installation. This happens by way of a versioned manifest that copies old versions when the manifest does not exist, or is a different version. This code path is benign for non-installed versions of the engine (or FPaths::ShouldSaveToUserDir() is false).
EditorGameAgnosticSettings and EditorUserSettings ini paths have been renamed to EditorSettings and EditorPerProjectUserSettings respectively to better convey their purpose. In general, most settings should be saved in EditorSettings (project-agnostic) so that they apply regardless of which project is open. We have some way to go migrating existing settings for this to be the case, however.
Some previously per-project configuration files are now project-agnostic (such as Editor.ini, EditorKeyBindings.ini, and EditorLayout.ini)
GEditor->Access...Settings and GEditor->Get...Settings have been removed in favor of direct access of the CDO through GetMutableDefault<> and GetDefault<> respectively. Global config ini filenames that are not set up are now neither loaded nor saved on build machines, to handle the problem of indeterminate state more generically.
This addresses UETOOL-270 (Most editor preferences should be project-agnostic)
[CL 2517558 by Andrew Rodham in Main branch]
Added alternate keyboard bindings to gameplay debugger, for keyboards without numpad (can be enabled in gameplay debugger settings). It uses Alt + [regular number] shortcuts.
[CL 2510117 by sebastian kowalczyk in Main branch]
- IsNetRelevantFor
- GetNetPriority
- GetNetDormancy
- Added GetNetOwner to remove cast to Pawn/PlayerController in ServerReplicateActors
- constify a few functions (GetNetConnection, IsRelevancyOwnerFor)
- Updated FNetViewer to properly handle non player controller "viewers"
[CL 2501704 by Josh Markiewicz in Main branch]
Rob asked me to back out GENERATED_*_BODY -> GENERATED_BODY change for now until the "_Validate and _Implementation auto-generation" discussion is over.
#codereview Robert.Manuszewski
[CL 2481343 by Jaroslaw Palczynski in Main branch]
We've changed the way vtable ptr are obtained for UClasses. Right now we use special empty constructor to get it, so we don't have to use normal one which was causing troubles. This special vtable helper constructor is generated automatically for most cases, but sometimes it's not possible (e.g. no default constructor for members types). In such case there is a possibility to override that generated constructor and write a custom one. The signature is UCustomClass::UCustomClass(FVTableHelper& Helper) and it needs to call base class'es constructor with the same parameter. Please do not use these constructors for anything else. There is no guarantee the object will be in correct state after calling this.
You can still disable this functionality if something breaks, just set WITH_HOT_RELOAD_CTORS to 0.
[CL 2466152 by Jaroslaw Palczynski in Main branch]
- While working on it I've also fixed GameplayDebugger's path corridor gathering to clear porperly and to be able to detect when AI uses the same path object, but the path has been updated since the last time its navigation corridor has been stored by GameplayDebugger.
- also includes minor refactor to navmesh debug drawing
[CL 2420345 by Mieszko Zielinski in Main branch]
* Multicast delegate Add* calls now return FDelegateHandles, and Remove* calls are now all deprecated, except for a new Remove function which takes a FDelegateHandle.
* New FConsoleManager::RegisterConsoleVariableSink_Handle and UnregisterConsoleVariableSink_Handle functions which work in terms of FConsoleVariableSinkHandle.
* Timer calls which don't take FTimerHandles are deprecated.
* FTicker::AddTicker now returns an FDelegateHandle and is removed by an overloaded Remove function.
* DEFINE_ONLINE_DELEGATE* macros now define _Handle variants of the Add/Remove functions which return/take handles.
* Various other handle-based registration changes.
* Some unity build fixes.
* Some simplification of delegate code.
* Fixes for lots of existing code to use handle-based registration and unregistration.
#codereview robert.manuszewski
[CL 2400883 by Steve Robb in Main branch]
Added GameplayDebugger settings to editor (AI Tools section) - it's usefull feature to controll default properties.
Fixed LogVisualizer as experimental menu entry in UE4 Editor
[CL 2371500 by sebastian kowalczyk in Main branch]
AActor::IsNetRelevantFor is now const and takes const parameters
UNetDriver::IsLevelInitializedForActor is now const and takes const parameters
UNetConnection::ClientHasInitializedLevelFor is now const
FNetGUIDCache::SupportsObject is now const
#codereview john.pollard
[CL 2350109 by Ryan Gerleve in Main branch]