#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
This is CL#2904759 from //Fortnite/Main
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2904398 on 2016/03/10 by Bob.Tellez
#UE4 OnlineBeaconClients are now destroyed when net cleanup happens instead of normal destruction time so the behave more like PlayerControllers. Also added some low level protection from closing already closed beacons.
#rb Josh.Markiewicz
#codreview Josh.Markiewicz
#JIRA FORT-20703
Change 2904339 on 2016/03/10 by Daniel.Broder
Added support for allowing an actor to determine whether it is selectable or not (rather than relying purely on editor modes).
One example use-case is a Transient actor created by WorldSettings for Fortnite which can otherwise be selected, edited, and even copied and pasted to a non-Transient form (which can be done accidentally and cause bugs).
Change made after discussion with Bob.
#CodeReview Bob.Tellez
#UE4
Change 2903020 on 2016/03/10 by John.Abercrombie
Added blueprint function to set named params for use when running an EQS query from BP
- Phil is going to test this out for me.
#rb me (Mieszko wrote this)
#codereview Phil.Cole, Mieszko.Zielinski
Change 2902440 on 2016/03/09 by Ben.Zeigler
#Jira FORT-20149
Fix package map issue where if the client package map received a reference to a package that was already in the async loading queue due to an unrelated async load call, it would not register it correctly, which would lead to error messages and actors potentially not being initialized.
#codereview john.pollard
#RB bob.tellez
Change 2900138 on 2016/03/08 by Bob.Tellez
#UE4 Updated the following Parameter value functions to respect the bOverride flag
GetStaticSwitchParameterValue
GetStaticComponentMaskParameterValue
GetTerrainLayerWeightParameterValue
#rb Nick.Penwarden
Change 2899839 on 2016/03/08 by Lukasz.Furman
fixed navmesh projection on actors with overlap response to world channels
#rb Mieszko.Zielinski
#codereview Zak.Middleton
Change 2899743 on 2016/03/08 by Lukasz.Furman
fixed handling multiple blocking hits in navwalking's geometry conforming
blocking response was used in previous implementation accepting first hit, scoring mutliple points requires getting them all with overlap response
#fortnite FORT-21546
#rb Mieszko.Zielinski
#codereview Zak.Middleton
Change 2898194 on 2016/03/07 by Chris.Gagnon
Added the ability to filter DataTable Assets by their row using the metadata.
meta = (RowType=MyRowName)
#RB Saad.Nader
#codereview Saad.Nader, Jamie.Dale
Change 2895102 on 2016/03/04 by Ben.Zeigler
#JIRA FORT-20290
Fix issue where if a server received a 408 on a verify auth call, it would get stuck in the "in progress" state, and would never try to verify auth again until the auth timed out
Add additional logging to auth queries, to track this and other issues. The new log lines are permanent, but StartExtraLogging should be disabled before merging back to main
#codereview josh.markiewicz
Change 2891302 on 2016/03/02 by Bob.Tellez
#UE4 The spawned NavGraph actors in CreateNavigationDataInstance were getting immediately marked pending kill due to the existance of the FortNavGraph actors placed in the NavMeshBounds map. Marking an actor pending kill instead of calling destroy actor is dangerous since DestroyActor does many other things including removing the actor from the networked actors list. Failure to remove from this list caused FORT-21458. This change both removes the existing FortNavGraph actors from the registered list and better handles cleaning up NavigationData removed for this reason.
#rb Ben.Zeigler
#codereview Lukasz.Furman
Change 2887908 on 2016/03/01 by Chris.Gagnon
Added Event Track to UMG Sequencer.
Added PlayTo functionality for targeting the end point of a played animation.
#RB Frank.Fella
#codereview Frank.Fella, Nick.Darnell
Change 2887686 on 2016/03/01 by Joel.Crabbe
Fixed issue with replication comparison object not necessarily being the correct, blueprint-defined, defaults-edited version. Changed GetClass()->GetDefaultObject to GetArchetype() for comparison value.
#codereview Ben.Zeigler
Change 2886847 on 2016/02/29 by Bob.Tellez
#UE4 Fixed a bug where pasting multiple lines of text into the property matrix would leave the \\r character in the string in windows platforms.
#codereview Richard.TalbotWatkin
Change 2886414 on 2016/02/29 by Lukasz.Furman
fixed start point of composite path's update
#fortnite FORT-21380
#rb Mieszko.Zielinski
Change 2886250 on 2016/02/29 by Bob.Tellez
#UE4 Adding !IsInSlateThread to assert in SuspendLoading/ResumeLoading. I suspect this may be the cause of a race condition involving flushing async loading during startup.
#codereview Robert.Manuszewski
Change 2885942 on 2016/02/29 by Bob.Tellez
#UE4 Disabling per-instance mesh painting on instanced static mesh components.
#rb Jack.Porter
[CL 2909292 by Bob Tellez in Main branch]
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2806454 on 2015/12/16 by Bob.Tellez
#UE4 Getting crash reporting working again on linux servers. Since -Unattended is now being passed BEFORE the target folder, the cmd line parsing code was failing so now it parses tokens and switches in a more general way. Also, diagnostics.txt had the incorrect case, since the d is supposed to be capitolized and the crash report processor is case sensitive.
#rb Ben.Zeigler
#codereview Dmitry.Rekman
Change 2805502 on 2015/12/16 by Ben.Zeigler
#UE4 Move ValidateEnumProperties into ValidateGeneratedClass, it was happening too early in the generation process so was being called at an invalid time.
As a result of this ValidateEnumProperties will not be called correctly for compile on load blueprints, that issue is covered in UE-24569
#codereview mike.beach, bob.tellez
Change 2805288 on 2015/12/16 by David.Nikdel
#HTTP #HttpRetry
- Add new Failed_ConnectionError code to EHttpRequestStatus to distinguish between connection errors and protocol errors.
- Changed HTTP retry logic a little bit
* If a response was received, retry on service-specific explicit HTTP codes (defaults to empty)
* If a response was not received and we did not send a full request, automatically retry
* If a response was not received and a request may have been sent, retry if the verb is GET or HEAD (should be idempotent)
- Adjusted Curl/IOS/Mac/PS4/WinInet to try and distinguish Failed_ConnectionError where possible
* Other systems will default to Failed which is ok (ConnectionError is an opportunistic categorization)
* Opened a PS4 ticket to try to improve detection, but unfortunately there's no way (currently) to distinguish between send timeout, connection timeout, and receive timeout, the latter being the problematic case.
- Removed the concept of global/default HTTP retry status codes. No system has enough knowledge to set those globally.
* Individual requests still specify explicit "retryable" codes and McpServiceBase sets that on each request on a per-service basis
#RB: Sam.Zamani
#CodeReview: Sam.Zamani, Josh.Markiewicz, Alex.Fennell, Dmitry.Rekman, Sam.Spiro
#Fixes: FORT-17804
Change 2803864 on 2015/12/15 by Bob.Tellez
#UE4 Changed usage of !UE_SERVER to !IsRunningDedicatedServer in cases where we are preventing load attempts on UFonts. This is so running an editor build with -server works the same as running a cooked server.
#rb Dmitry.Rekman
#codereview Nick.Darnell
Change 2803677 on 2015/12/15 by Billy.Bramer
- Expose equality and inequality operators for gameplay attributes
#rb Todd.Eckert
Change 2802881 on 2015/12/14 by Bob.Tellez
#UE4 InheritableComponentHandler no longer keeps records for components that we are no longer inheriting.
#rb Phillip.Kavan, Maciej.Mroz
#codereview Phillip.Kavan, Maciej.Mroz
Change 2801636 on 2015/12/14 by Bob.Tellez
#UE4 Returning package insert order for non-imports back to being after those of matching priorities unconditionally since this is what you want even when you are not using the asset registry to preload packages.
#codereview Graeme.Thornton
Change 2800400 on 2015/12/11 by Jonathan.Lindquist
Submitting a new Pivot Painter Edition
- now renders to textures
- improved workflow
- greater capabilities
Change 2799579 on 2015/12/11 by John.Abercrombie
[AUTOMERGE]
Fixed EQS BP query wrappers getting GCed before wrapped query finishes #UE4
Fixes FORT-18649 - Patrols don't spawn consistently
- The patrol blueprint was waiting (endlessly) for an EQS query to finish but because the wrapper could be GC-ed while the EQS query was running the delegate would never fire
#rb me (this code was written by MieszkoZ)
(removed code review for integration of Mieszko.Zielinski, Phil.Cole, Dominic.Barile)
--------
Integrated using branch UE4-Fortnite-To-UE4-FortniteReleases/0.10 (reversed) of change#2799575 by John.Abercrombie on 2015/12/11 09:55:11.
Change 2799018 on 2015/12/10 by Bob.Tellez
#UE4 The asset registry tags stripped from cooked builds is now a blacklist by default that includes only the FiB tag. You can opt-in to using the whitelist by flipping the bUseAssetRegistryTagsWhitelistInsteadOfBlacklist flag.
#rb Fred.Kimberley
#codereview Peter.Knepley
Change 2798926 on 2015/12/10 by Bob.Tellez
#UE4 Removed some showflags from the list of "Fixed" showflags since they were actually in use at runtime in Fortnite in a scene capture.
#jira FORT-18514
#codereview Martin.Mittring
Change 2797758 on 2015/12/10 by Mark.Satterthwaite
Defer calls to AUGraphUpdate into FCoreAudioDevice::UpdateHardware - this call will synchronise the calling thread with the CoreAudio thread/run-loop so that the CoreAudio graph is safe to modify and this may incur a significant stall. This means it is far more efficient to amortise the cost of all changes to the graph with a single call. To ensure correctness the audio format conversion components are cached and disposed of after the call to AUGraphUpdate so that any existing operations on the CoreAudio thread are completed prior to disposal.
Change 2781204 on 2015/11/25 by Dmitry.Rekman
Linux: use jemalloc by default if available.
- Alleviates one of the reasons for player disconnect (FORT-18048), which was machines running OOM.
#rb Bob.Tellez
#codereview Bob.Tellez, Ben.Zeigler
Change 2779398 on 2015/11/24 by Mark.Satterthwaite
Switch the default graphics API on Mac back to OpenGL, but allow Metal to run with -metal (or -metalsm5 for experimental SM5 support).
UETOOL-213 - Minimize Slate FString -> FText conversion (remove SLATE_TEXT_ATTRIBUTE)
This fixes any editor/engine specific code that was passing text to Slate as FString rather than FText.
[CL 2399803 by Jamie Dale in Main branch]
The display name, filter string, and tooltips for the property editor (and associated detail customizations) are now stored as FText rather than FString. This allows us to remove SLATE_TEXT_ARGUMENT from the detail customization widgets.
[CL 2372595 by Jamie Dale in Main branch]
* Moved Slate.h into SlateBasics.h and began shifting less commonly used headers into SlateExtras.h.
* Slate.h now simply includes SlateBasics.h and SlateExtras.h.
* Slate.h includes a deprecated warning now to indicate that SlateBasics.h + specific includes should be used instead.
* Moved dozens of inlined functions using Slate widgets into .cpp files to avoid header dependencies.
* All code samples now include SlateBasics.h and SlateExtras.h so future shifts will not break most those projects, but not trigger the deprecation warning of including Slate.h.
#BUN
[CL 2329610 by Wes Hunt in Main branch]
#proj UE4
#branch UE4
#summary The width of a datatable combo button is no longer constrained
#extra Also added a tooltip in case the details panel is still too narrow
#reviewedby Thomas.Sarkanen, Max.Preussner
[CL 2046483 by Jamie Dale in Main branch]