#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]
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3079316 on 2016/08/05 by Ben.Marsh
Better PCH selection in ShaderFormatOpenGL and MetalShaderFormat - make sure Core is the first included header.
Change 3080579 on 2016/08/08 by Ben.Marsh
Slate: Move DEBUG_TAB_MANAGEMENT into SDockingTabStack.h to remove circular include dependency with DockingPrivate.h.
Change 3080587 on 2016/08/08 by Ben.Marsh
StandaloneRenderer: Move platform includes into a separate header so we can make individual headers self-contained, without having a circular dependency on StandaloneRendererPrivate.h.
Change 3080789 on 2016/08/08 by Ben.Marsh
Move BuildGraph tasks for chunking, posting builds, labeling builds, and merging manifests into the MCP project. While we do provide public interfaces for this functionality, we don't currently expect anyone outside Epic to be using them.
Change 3080815 on 2016/08/08 by Ben.Marsh
BuildGraph: Add a -GenerateDocs option, which writes out an HTML file constructed from C# XML documentation containing all the task information.
Change 3081374 on 2016/08/08 by Ben.Marsh
UBT: Invalidate the makefile if any UHT headers are deleted. Should fix issue where files are moved from one module to another, and the original module no longer contains any generated headers. Its include path needs to be removed from the compile environment.
Change 3083152 on 2016/08/09 by Ben.Marsh
PR #2667: Add Intel C++ Compiler support to Windows build (Contributed by JeffRous)
Change 3084039 on 2016/08/10 by Ben.Marsh
BuildGraph: Add additional markup for parameter attributes. Also improve some documation.
Change 3084240 on 2016/08/10 by Ben.Marsh
Plugins: Allow plugins in the project folder to replace plugins in the engine folder with the same name. Prohibit multiple plugins with the same name at other times.
Change 3084337 on 2016/08/10 by Ben.Marsh
UBT: Specify the -precompile option when generating project files for a target, so we include all valid modules for intellisense.
Change 3085594 on 2016/08/11 by Ben.Marsh
Change modules which reference a public header for their PCH to use a private PCH instead, even if it just includes the public header for now.
Change 3085999 on 2016/08/11 by Ben.Marsh
Add some missing #pragma once directives.
Change 3086146 on 2016/08/11 by Ben.Marsh
Core: Move prototype and linkage specifier for ConsoleCommandLibrary_* functions into header matching cpp file.
Change 3086172 on 2016/08/11 by Ben.Marsh
Fixup some C-style header guards to use #pragma once instead.
Change 3087289 on 2016/08/12 by Ben.Marsh
Split out UPackage and UMetaData into their own headers (they're already implemented in separate CPP files)
Change 3087310 on 2016/08/12 by Ben.Marsh
Move method stubs for FNullSlateSoundDevice into a CPP file, since they're exported from the SlateCore module.
Change 3087341 on 2016/08/12 by Ben.Marsh
UdpMessaging: Move PCH before #if PLATFORM_DESKTOP; it will only be defined if the definition is included.
Change 3087457 on 2016/08/12 by Ben.Marsh
Core: Reorganize the FTransform and FMatrix headers: Transform.h now includes TransformNonVectorized.h or TransformVectorized.h as appropriate, and UnrealMatrix.h is now Matrix.inl (and included from Matrix.h).
Change 3088407 on 2016/08/13 by Ben.Marsh
Replace use of Windows SIZE_T define with the regular C++ size_t.
Change 3088416 on 2016/08/13 by Ben.Marsh
Include a header from all .generated.cpp files (GeneratedCppIncludes.h) which includes all the basic types required to compile them, rather than assuming that the module PCH will include everything.
Also include the real declarations of noexport classes in Object.h (now renamed to NoExportTypes.h for clarity) when the CPP macro is defined, so the .generated.deps.h file will automatically have the correct definitions for them at compile time rather than relying on them being in the private PCH.
Finally, rename UObject.h to Object.h for consistency with the naming convention for all other UObject classes. UObject.h still exists for now, but outputs a deprecated message if included.
Change 3088544 on 2016/08/14 by Ben.Marsh
Core: Move the definition of the TEXT() macro into Platform.h, to avoid having to include OS headers to get it.
Change 3088552 on 2016/08/14 by Ben.Marsh
Fix compile errors for some modules that don't already include CoreUObject.h.
Change 3088925 on 2016/08/15 by Ben.Marsh
Remove circular include dependencies from VulkanRHI.
Change 3088926 on 2016/08/15 by Ben.Marsh
Remove duplicate definition for WITH_FIXED_AREA_ENTERING_COST from EngineDefines.h - always uses the definition from DetourNavMeshQuery.h instead.
Change 3088930 on 2016/08/15 by Ben.Marsh
Remove circular include dependency from PhysX.
Change 3088935 on 2016/08/15 by Ben.Marsh
OnlineSubsystemUtils: Move CPP files out of public header directory.
Change 3088965 on 2016/08/15 by Ben.Marsh
Add private PCH to Landscape, MoviePlayer, TaskGraph, XAudio2 and RealtimeProfiler modules.
Change 3088966 on 2016/08/15 by Ben.Marsh
Engine: Move CPP files out of public header directories.
Change 3089520 on 2016/08/15 by Ben.Marsh
BuildGraph: Change documentation command to output markdown.
Change 3090299 on 2016/08/16 by Ben.Marsh
D3D12RHI: Move around some implementations to fix circular header dependencies which are masked by delayed template instantiation.
Change 3090303 on 2016/08/16 by Ben.Marsh
Engine: Add a template specialization for TPointerIsConvertibleFromTo<AActor, const volatile UObject> to fix dependency on complete AActor definition for static assert in TWeakPointer<AActor>, which only appears if including Level.h without Actor.h. Delayed template instantiation usually masks this issue.
Change 3091861 on 2016/08/17 by Ben.Marsh
Remove circular header dependencies, and fix ambiguous include paths in OSVR.
Change 3092068 on 2016/08/17 by Ben.Marsh
Moving VulkanDynamicRHI into its own header.
Change 3093133 on 2016/08/18 by Ben.Marsh
EC: Include additional context lines for Clang errors.
Change 3093147 on 2016/08/18 by Ben.Marsh
UBT: Add an error message when attempting to do a single-file compile with the wrong target selected.
Change 3093228 on 2016/08/18 by Ben.Marsh
Remove redundant setting for remote server name from XML config, and set it to a valid machine in the engine config.
[CL 3093264 by Ben Marsh in Main branch]
#lockdown Nick.Penwarden
#rb rob.cannaday
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3025090 on 2016/06/23 by Rob.Cannaday
Move OnlineSubsystemGooglePlay into plugins
Change 3025127 on 2016/06/23 by Rob.Cannaday
Move OnlineSubsystemIOS into plugins
Change 3025314 on 2016/06/23 by Rob.Cannaday
Move OnlineSubsystemWeChat into plugins
Change 3025380 on 2016/06/23 by Rob.Cannaday
Move OnlineSubsystemMcp into plugins
Change 3025400 on 2016/06/23 by Rob.Cannaday
Move PluginFlow into plugins
Change 3025430 on 2016/06/23 by Rob.Cannaday
Move OnlineFramework (Hotfix, Lobby, Party, Qos) into plugins
Change 3025453 on 2016/06/23 by Rob.Cannaday
Move OnlineSubsystem into plugins
Change 3025462 on 2016/06/23 by Rob.Cannaday
Move OnlineSubsystemAmazon into plugins
Change 3025480 on 2016/06/23 by Rob.Cannaday
Move OnlineSubsystemFacebook into plugins
Change 3025487 on 2016/06/23 by Rob.Cannaday
Move OnlineSubsystemNull into plugins
Change 3025493 on 2016/06/23 by Rob.Cannaday
Move OnlineSubsystemSteam into plugins
Change 3025512 on 2016/06/23 by Rob.Cannaday
Move OnlineSubsystemUtils (OnlineBlueprintSupport, OnlineSubsystemUtils) into plugins
Change 3025520 on 2016/06/23 by Rob.Cannaday
Move OnlineSubsystemPS4 into plugins
Change 3025526 on 2016/06/23 by Rob.Cannaday
Move OnlineSubsystemLive into plugins
Change 3025542 on 2016/06/23 by Rob.Cannaday
Move OnlineSubsystemThunderhead into plugins (disabled)
Change 3025547 on 2016/06/23 by Rob.Cannaday
Delete NewsFeed
Change 3028420 on 2016/06/27 by Rob.Cannaday
Online Subsystem pluginization changes
Change 3028457 on 2016/06/27 by Rob.Cannaday
Add ShooterOnlineSessionClient.*
Remove copy/paste from previous checkin
Change 3029282 on 2016/06/27 by Rob.Cannaday
Merging //UE4/Dev-Main to Dev-Online-Plugins-v3 (//Tasks/UE4/Dev-Online-Plugins-v3) (around CL 3028391)
Change 3029363 on 2016/06/27 by Rob.Cannaday
UT build fixes for pluginization
Change 3032885 on 2016/06/29 by Rob.Cannaday
Remove bCompileMCPOss and bCompileSteamOss
Change 3033072 on 2016/06/29 by Rob.Cannaday
Merging //UE4/Dev-Main to Dev-Online-Plugins-v3 (//Tasks/UE4/Dev-Online-Plugins-v3) (around CL 3032885)
Change 3033368 on 2016/06/29 by Rob.Cannaday
Fix references to online subsystem files in their former location
Change 3037635 on 2016/07/05 by Rob.Cannaday
Add online plugins to WEX uproject
Change 3038147 on 2016/07/05 by Rob.Cannaday
Merging //UE4/Dev-Main to Dev-Online-Plugins-v3 (//Tasks/UE4/Dev-Online-Plugins-v3)
Also adds Match3
Change 3038152 on 2016/07/05 by Rob.Cannaday
Fixup UnrealMatch3 OSS references
Change 3044558 on 2016/07/11 by Rob.Cannaday
Move OnlineBlueprintCallProxyBase to Engine/Public/Net to remove dependency for OnlineSubsystemUtils in Engine.
Change 3044596 on 2016/07/11 by Rob.Cannaday
#jira OGSSOCIAL-226 Investigate Slate solution to fade per line instead of per message
Allow users to add a custom FTextLayout to Text boxes
Change 3045306 on 2016/07/11 by Rob.Cannaday
Merging //UE4/Dev-Main to Dev-Online-Plugins-v3 (//Tasks/UE4/Dev-Online-Plugins-v3)
Change 3045424 on 2016/07/11 by Rob.Cannaday
Add OnlineSubsystem plugins to Ocean.uproject
#jira OGS-391
Change 3045478 on 2016/07/11 by Rob.Cannaday
Crash fix when creating a split screen player via DebugCreatePlayer 1
null check UniqueId
#jira OGS-392
Change 3046785 on 2016/07/12 by Rob.Cannaday
Move new hotfix files into plugin
Change 3047014 on 2016/07/12 by Rob.Cannaday
Fix for VOIP not working
#jira OGS-393
Change 3047248 on 2016/07/12 by Rob.Cannaday
Fix build warning of member variable initialiization order.
Change 3047294 on 2016/07/12 by Rob.Cannaday
Fix for ensure on shutdown in Qos module
#jira UE-33150
[CL 3047349 by Rob Cannaday in Main branch]
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2939164 on 2016/04/10 by John.Barrett
Updated base UNetConnection netcode to be bit-based, rather than byte-based (to optimize packet size with PacketHandler's and Oodle) - this CL is interdependent with subsequent CL's.
Fixed an issue with FBitReader, when inserting a non-byte-aligned number of bits, where it would fail to zero the unused bits, in the last byte - this led to corrupt reads, in the new termination bit code (subsequent CL).
Added better overflow detection for FBitWriter - plus other additional asserts.
Fixed a potential bug with control channel messages, where non-byte-aligned control channel messages that were queued for later sending, were stored as byte-aligned, causing bad (too large) data to be sent.
Optimized MAX_PACKET_HEADER_BITS to save a bit.
Change 2939169 on 2016/04/10 by John.Barrett
NetcodeUnitTest maintenance.
Added unit test for testing bit reader/writer limits.
Added 'LogHex' debug command, for logging a hex-editor-style dump of selected memory data - without requiring a dependency on NetcodeUnitTest.
Change 2939170 on 2016/04/10 by John.Barrett
Added work-in-progress DoS/DDoS unit test.
Change 2943718 on 2016/04/14 by John.Pollard
Allow override of replay session ID + start using match ID for replays
Change 2944678 on 2016/04/14 by Ryan.Gerleve
Merging using Release-4.11_to_Dev-Networking:
4.11 hotfix change: fix for an assert that can occur when network clients call AActor::SetReplicates. SetReplicates will now only modify RemoteRole if Role is Authority and warn otherwise.
#jira UE-27646
Change 2946909 on 2016/04/18 by John.Pollard
Misc seamless travel cleanup + sanity checks
* Cleanup the naming of variables and logic used to pick which actors will transfer to new world during seamless travel to more explicitly convey intent
* Warn when there is no context for a world when destroying actors, it's likely that this world is the floating world during seamless travel, and if we hit this case, something is likely in a bad state
Change 2948883 on 2016/04/19 by John.Pollard
GitHub request: https://jira.ol.epicgames.net/browse/UE-29385
Change 2952109 on 2016/04/21 by John.Barrett
Fixed false positive with FBitWriter overflow error log, in PackageMap code.
Change 2953639 on 2016/04/22 by John.Barrett
Fixed shadowed local variable - UE-29829
Change 2958267 on 2016/04/27 by John.Pollard
Make vision manager more resilient to bad network data from old replays
Change 2958410 on 2016/04/27 by John.Pollard
Fix incorrect warning when ReceivedBunch fails for replays
Change 2958411 on 2016/04/27 by John.Pollard
Replay backwards compatibility fixes.
* Mark custom properties/RPC's as incompatible if there was an error reading them in the stream, and ignore from there on out.
* Don't close connection when failing to read properties on clients now that we can skip over this info easily.
Change 2960134 on 2016/04/28 by Ryan.Gerleve
Protect against adding null player controllers to the out list of UEngine::GetAllLocalPlayerControllers.
See https://udn.unrealengine.com/questions/289948/uenginegetalllocalplayercontrollers-pushes-a-null.html
Change 2960617 on 2016/04/29 by John.Barrett
Made way for engine version code refactor.
Change 2961050 on 2016/04/29 by John.Pollard
Log when we send hello to server in pending net game
Change 2961468 on 2016/04/29 by John.Pollard
ReplayCompat: Show name of incompatible property when logging + log when we don't read correct number of bits + cleanup
Change 2964357 on 2016/05/03 by John.Barrett
Optimized netcode SerializeInt\WriteIntWrapped, to allow compile-time calculation of the data bit size.
The runtime calculated version of these functions, has been adjusted to not assert on 1-bit sized writes - to fix a false positive in Paragon.
Adjusted some FMath functions, to allow CONSTEXPR for compile-time calculation.
Change 2964361 on 2016/05/03 by John.Barrett
Update unit test to work with new integer serialization code.
Change 2964831 on 2016/05/03 by John.Barrett
Back out net serialization changes for now.
Change 2964832 on 2016/05/03 by John.Barrett
Back out unit test net serialization change.
Change 2964838 on 2016/05/03 by John.Barrett
Fix Paragon false positive netcode assert.
Change 2966257 on 2016/05/04 by John.Pollard
Unify network version logic + move to core
* Move network version logic to core
* Formalized concept of compatible network/replay changelist
* Fixed up UDemoNetDriver to work with new version concepts
* Fixed up Orion/other samples in the same way
* This is first step to officially supporting backwards compatility for replays, and possibly networking in general (would be opt-in if so)
Change 2966657 on 2016/05/04 by John.Pollard
Deprecate GEngineNetVersion, GEngineMinNetVersion and GEngineNegotiationVersion
Change 2968945 on 2016/05/06 by John.Pollard
Print name of object that has NULL level
Change 2970529 on 2016/05/09 by Bart.Bressler
Add an optional "CapturePercentage" command line parameter that has a percentage chance of generating capture files per connection
Change 2971233 on 2016/05/09 by Bart.Bressler
Update Oodle DLLs in Orion
Change 2975585 on 2016/05/12 by Bart.Bressler
- Keep track of STAT_NumNetActors on clients as well as servers
- Change STAT_NumActors to just be the world actor count instead of using FActorIterator (FActorIterator was causing a hitch)
Change 2979207 on 2016/05/16 by Bart.Bressler
Remove FActorIterator loop around world actor count retrieval in UNetDriver::TickFlush
Change 2981198 on 2016/05/17 by John.Pollard
Changes to support FN replays
* Save streaming levels within network stream
* Don't load streaming level if it's already in the list
* Remove need for meta data
Change 2981201 on 2016/05/17 by John.Pollard
Forgot to check in
Change 2982075 on 2016/05/18 by John.Pollard
Cache network checksum so we don't spam log (we call this function more now)
Change 2982092 on 2016/05/18 by John.Pollard
Lower verbosity of log
Change 2986571 on 2016/05/23 by Bart.Bressler
Fix issue where oodle wasn't getting enabled in shipping correctly
Change 2988628 on 2016/05/24 by Bart.Bressler
When processing captures with the Oodle commandlet, only check files that end with "ucap" (there might be gzipped files that have the exact same filenames, for example)
Change 2988838 on 2016/05/24 by Bart.Bressler
- Add script to pull down captures from S3
- Add script to do the whole process from pulling down captures to generating dictionaries
Change 2994575 on 2016/05/31 by John.Pollard
Include networkversion.h in UnrealNetwork.h, this is so that older code will continue to compile that relied on network version code that used to be in this file
Change 2996026 on 2016/06/01 by John.Pollard
Add network version to FArchive
Change 2996043 on 2016/06/01 by John.Pollard
Store network version on NetConnection/Bunch, replays properly initialize these to current replay network versions
Change 2996081 on 2016/06/01 by John.Pollard
Remove unused FInBunch constructor
Change 2996544 on 2016/06/01 by John.Pollard
Make sure network version is correct for external data + set on connection after checkpoint
Change 2996731 on 2016/06/01 by John.Pollard
Set game network version for Orion
Change 2997042 on 2016/06/01 by John.Pollard
Fix issue when game server times out, and replay service turns off live replay flag, and we fail to download last chunk + more log info when replay http chunk downloading fails
Change 2997908 on 2016/06/02 by Ryan.Gerleve
Use the smoothed mesh transform for characters when recording client replays.
Since the root component's transform may only be updated periodically, this greatly improves the quality of character movement.
Change 2998001 on 2016/06/02 by Ryan.Gerleve
Set the NetDriverName in the replay spectator's constructor.
The replay spectator will always be associated with a DemoNetDriver and this fixes cases where GetNetMode could return the wrong value before the net driver name was set (such as during BeginPlay).
Also inverted the logic in IsForPlayback() to make it more intuitive.
Change 2998636 on 2016/06/02 by John.Pollard
If we don't have enough external replay samples, use the best one
Change 2998637 on 2016/06/02 by John.Pollard
Clamp replay time
Change 2998705 on 2016/06/02 by John.Pollard
Replay fixes:
* Fix issue when scrubbing to time 0, and first chunk takes longer than normal to download
* Better streaming logic that works better with new backend delay logic
* Better handling when replay flips from live to not live
* Don't update StreamTimeRangeStart/End unless we got those values in the header response
* Handle when we fail to download a chunk and HighPriorityEndTime is active
Change 2998832 on 2016/06/02 by Ryan.Gerleve
Fix an issue that could cause the replay spectator controller to not get the notification that the spectator class has been received while recording a client replay.
Change 2999054 on 2016/06/02 by Ryan.Gerleve
Added ability to set a maximum desired time budget for replay recording. Once the budget is reached, remaining actors will have to wait until the next frame to try to replicate.
Change 2999057 on 2016/06/02 by Ryan.Gerleve
Fixed an issue that could cause the main game world to use the incorrect vision manager when deathcam was enabled and the replay recording time budget was set very aggressively.
In this case, AOrionVisionManager2::PostInitializeComponents would be called before the spectator player controller was spawned in the playback world, causing it to fail to find the local player and not initializing GKillcamVisionManager correctly.
Change 2999749 on 2016/06/03 by Ryan.Gerleve
RPCs will now be recorded in client replays.
Cleaned up actor role swapping logic for client recording and re-use it for RPCs.
Change 3000051 on 2016/06/03 by Ryan.Gerleve
Fix Paragon server crash.
#jira UE-31618
Change 3001361 on 2016/06/05 by Ryan.Gerleve
Added support for prioritizing actors during replay recording to get better results when a maximum desired recording time is set.
Added virtual function GetReplayPriority to Actor, similar to GetNetPriority, but allows different priorities for live networking and replays.
Moved FCompareFActorPriority to a header so that the DemoNetDriver can use it.
Change 3001365 on 2016/06/05 by Ryan.Gerleve
Paragon now uses a desired recording time limit and enables actor prioritization for recording the deathcam replay.
Change 3002094 on 2016/06/06 by Ryan.Gerleve
Missed file from a main merge fixup.
Change 3002417 on 2016/06/06 by Ryan.Gerleve
Disabling a check to work around UE-31636 for now.
Change 3002547 on 2016/06/06 by John.Barrett
Added improved 'DebugDump' command option to the Oodle trainer commandlet - this takes UE4 .ucap capture files, and batch converts them into Oodle-example-code compatible .bin files.
Use through the new BatchDebugDump.bat file.
Change 3002989 on 2016/06/06 by John.Pollard
Add ability to skip missing/changed properties in FFastArraySerializer
Change 3003072 on 2016/06/06 by John.Pollard
Fix crash related to new replay backwards compatibility changes
#lockdown Nick.Penwarden
[CL 3004618 by John Pollard in Main branch]
FNullNetworkReplayStreamer can now play back live replays.
--------
Integrated using branch UE4-Orion-To-UE4 of change#2677431 by Ryan.Gerleve on 2015/09/02 15:08:36.
[CL 2677495 by Ryan Gerleve in Main branch]
2620313 - Fix issue where we would get disconnected from the replay server if we paused for too long. Fixes OR-2753.
2628891 - First pass on bug replay events:
- pressing J when in a game saves a bug event
- loading that replay enumerates all bug events and adds them to the timeline bar
2630827 - Bugs on the replay timeline are clickable and will teleport the camera to the location where the bug was entered. Code is messy and needs cleanup.
2638789 - Add text box to replay list widget that filters replays by an event group
[CL 2638900 by Bart Bressler in Main branch]
Integrating PeteK changes to allow custom events in replays
2623455 - Replay changes to allow custom events
#codereview david.ratti
[CL 2635371 by Bart Bressler in Main branch]
The engine now notifies the replay system about players who join in progress.
--------
Integrated using branch UT_To_UE4 of change#2592351 by Ryan.Gerleve on 2015/06/18 14:22:24.
[CL 2592935 by Ryan Gerleve in Main branch]
Fixes UE-6803, consumers no longer have to call Exec() to get this functionality.
Handlers for the "demorec", "demostop", and "demoplay" commands now use the new API.
NullNetworkReplayStreaming now stores and reports the replay's FriendlyName.
#codereview john.pollard
[CL 2528622 by Ryan Gerleve in Main branch]
FNullNetworkReplayStreamer::EnumerateStreams now respects the version passed in (you can pass in 0 to enumerate all versions).
FNullNetworkReplayStreamer::GetTotalDemoTime now returns the correct value.
Fixes UE-13611 and UE-13612.
[CL 2521362 by Ryan Gerleve in Main branch]
Demorec command and URL option name parameter is now optional, if it isn't provided the streamer implementation will automatically generate CustomName, and the FriendlyName will be the map name
Logic to auto-generate demo names moved out of ShooterGame and into NullNetworkReplayStreaming
[CL 2506853 by Ryan Gerleve in Main branch]
FNullNetworkReplayStreamer now stores the demo header in a separate file to facilitate scrubbing to the beginning of the replay stream.
DemoNetDriver now handles errors when StartStreaming calls the FOnStreamDelegate inside its implementation. Fixes getting stuck on the loading screen in ShooterGame if FNullNetworkReplayStreamer::StartStreaming fails.
[CL 2506027 by Ryan Gerleve in Main branch]
Implemented in the Null module, stubbed for the HTTP module.
ShooterGame now uses these functions in the demo list menu.
[CL 2445451 by Ryan Gerleve in Main branch]
* Actual engine network version is now used when uploading streams
* Fixed bug when replay server would shutdown and engine would continually keep trying to upload streams
[CL 2440743 by John Pollard in Main branch]