2019-12-26 14:45:42 -05:00
// Copyright Epic Games, Inc. All Rights Reserved.
2014-03-14 14:13:41 -04:00
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#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]
2016-11-23 15:48:37 -05:00
# include "PackageReader.h"
2021-02-11 16:00:51 -04:00
# include "AssetRegistry.h"
# include "AssetRegistryPrivate.h"
# include "AssetRegistry/AssetData.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#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]
2016-11-23 15:48:37 -05:00
# include "HAL/FileManager.h"
2020-06-23 18:40:00 -04:00
# include "Internationalization/Internationalization.h"
# include "Logging/MessageLog.h"
2021-02-11 16:00:51 -04:00
# include "Misc/Guid.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#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]
2016-11-23 15:48:37 -05:00
# include "Misc/PackageName.h"
2020-06-23 18:40:00 -04:00
# include "UObject/Class.h"
2022-03-31 09:16:55 -04:00
# include "UObject/Linker.h"
2022-02-11 08:04:32 -05:00
# include "UObject/PackageTrailer.h"
2014-03-14 14:13:41 -04:00
Deprecating ANY_PACKAGE.
This change consists of multiple changes:
Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values
AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes
Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names
#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32
#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786
#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)
[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
2014-03-14 14:13:41 -04:00
FPackageReader : : FPackageReader ( )
2020-09-24 00:43:27 -04:00
: Loader ( nullptr )
, PackageFileSize ( 0 )
, AssetRegistryDependencyDataOffset ( INDEX_NONE )
2021-01-22 12:31:57 -04:00
, bLoaderOwner ( false )
2014-03-14 14:13:41 -04:00
{
2018-05-23 21:04:31 -04:00
this - > SetIsLoading ( true ) ;
this - > SetIsPersistent ( true ) ;
2014-03-14 14:13:41 -04:00
}
FPackageReader : : ~ FPackageReader ( )
{
2021-01-22 12:31:57 -04:00
if ( Loader & & bLoaderOwner )
2014-03-14 14:13:41 -04:00
{
delete Loader ;
}
}
2022-03-02 13:04:48 -05:00
bool FPackageReader : : OpenPackageFile ( FStringView InPackageFilename , EOpenPackageResult * OutErrorCode )
{
return OpenPackageFile ( FStringView ( ) , InPackageFilename , OutErrorCode ) ;
}
bool FPackageReader : : OpenPackageFile ( FStringView InLongPackageName , FStringView InPackageFilename , EOpenPackageResult * OutErrorCode )
2014-03-14 14:13:41 -04:00
{
2021-01-22 12:31:57 -04:00
check ( ! Loader ) ;
2022-03-02 13:04:48 -05:00
LongPackageName = InLongPackageName ;
2014-03-14 14:13:41 -04:00
PackageFilename = InPackageFilename ;
2016-01-19 09:54:25 -05:00
Loader = IFileManager : : Get ( ) . CreateFileReader ( * PackageFilename ) ;
2021-01-22 12:31:57 -04:00
bLoaderOwner = true ;
2016-05-19 19:35:35 -04:00
return OpenPackageFile ( OutErrorCode ) ;
2016-01-19 09:54:25 -05:00
}
2014-03-14 14:13:41 -04:00
2016-05-19 19:35:35 -04:00
bool FPackageReader : : OpenPackageFile ( FArchive * InLoader , EOpenPackageResult * OutErrorCode )
2016-01-19 09:54:25 -05:00
{
2021-01-22 12:31:57 -04:00
check ( ! Loader ) ;
2016-01-19 09:54:25 -05:00
Loader = InLoader ;
2021-01-22 12:31:57 -04:00
bLoaderOwner = false ;
2022-03-02 13:04:48 -05:00
LongPackageName . Empty ( ) ;
2016-01-19 09:54:25 -05:00
PackageFilename = Loader - > GetArchiveName ( ) ;
2016-05-19 19:35:35 -04:00
return OpenPackageFile ( OutErrorCode ) ;
2016-01-19 09:54:25 -05:00
}
2016-05-19 19:35:35 -04:00
bool FPackageReader : : OpenPackageFile ( EOpenPackageResult * OutErrorCode )
2016-01-19 09:54:25 -05:00
{
2016-05-19 19:35:35 -04:00
auto SetPackageErrorCode = [ & ] ( const EOpenPackageResult InErrorCode )
{
if ( OutErrorCode )
{
* OutErrorCode = InErrorCode ;
}
} ;
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3380068)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3358702 on 2017/03/22 by Marc.Audy
Always mark child actors pending kill when in PostLoad as often the World is too early to have a WorldContext which causes issues in DestroyActor
#jira UE-42679
Change 3358737 on 2017/03/22 by Mieszko.Zielinski
Exposed UBrainComponent::IsRunning() and UBrainComponent::IsPaused() to Blueprint #UE4
Change 3359062 on 2017/03/22 by Michael.Noland
Blueprints: Show the Save and Find in CB buttons when working with level script blueprints (they will save/show the map package)
#jira UE-30748
Change 3359066 on 2017/03/22 by Michael.Noland
PR #3348: Make fields of FAttributeMetaData editable (Contributed by hoelzl)
#jira UE-42620
Change 3359069 on 2017/03/22 by Michael.Noland
PR #3288: InverseLerp Blueprint Tooltips Clarification (Contributed by wunawuna)
#jira UE-42250
Change 3359108 on 2017/03/22 by Michael.Noland
Blueprints: Fix an issue where running the editor in a different culture could break pins on nodes that have optional arrays of pins (e.g., animation graph nodes like blend by layer)
#jira UE-36232
Change 3359235 on 2017/03/22 by Marc.Audy
Expose bShouldPerformFullTickWhenPaused to blueprints and details panel
#jira UE-17286
Change 3359324 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Disable collision on NavModifierVolumes. Previously they had an OverlapAll response and generated overlap events. They are only supposed to be used for preventing nav mesh generation, but overlap events could affect gameplay, and also are bad for performance.
(Integrate CL 3249525 from Odin).
Change 3359326 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Optimization during attachment to check bool before expensive casts and body instance fetching.
(Integrate CL 3261262 from Odin).
Change 3359327 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Make bSkipAgentHeightCheckWhenPickingNavData actually ignore height when picking data.
(Integrate CL 3231908 from Odin)
Change 3359328 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Make a static FName in UMovementComponent::OverlapTest const and move it to a namespace.
(Integrate CL 3259985 from Odin)
Change 3359329 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Fix ProjectileMovementComponent continuing to simulate (and generate hit events) after it is deactivated during simulation. HasStoppedSimulation() should check if bIsActive is false.
(Integrate CL 3260001 from Odin)
Change 3359330 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Fix accumulated forces in CharacterMovement when movement mode or activation changes.
- Added CharacterMovementComponent::ClearAccumulatedForces()
- AddForce() and related functions now avoid adding the force if in MovementMode "None". When ticking in "None", forces are cleared so they don't pile up until the next valid movement mode. Forces are also cleared if the updated component changes or when the capsule simulates physics.
- CharacterMovementComponent::Deactivate() implemented to stop movement and call ClearAccumulatedForces().
- ClearAccumulatedForces() now also clears pending launch velocity.
- Exposed ClearAccumulatedForces() to blueprints.
- AddForce() and AddImpulse() now also check that character movement is active (not deactivated, able to tick).
- ApplyAccumulatedForces() does not call ClearAccumulatedForces(), since that would prevent pending launch.
- SimulateMovement() handles pending launch and clears forces regardless of whether it's simulated proxy. Added note to investigate using ApplyAccumulatedForces() in SimulateMovement().
- Inlined ActorComponent::IsActive().
(Integrate CLs 3259933, 3266018 from Odin)
Change 3359338 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) TickCharacterPose() and clear root motion before abandoning tick in UCharacterMovementComponent::PerformMovement() when movement mode is None. Prevents root motion building up until next valid movement mode.
(Integrate CL 3271928 from Odin)
Change 3359345 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Fix characters sliding when landing on slanted surfaces or stairs, when aggressive "Perch" settings could cause a line trace (from the center of a capsule) instead of capsule trace and thereby screw up the floor distance checks.
(Integrate CL 3273026 from Odin)
Change 3359381 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Performance tweak to ApplyRadialDamageWithFalloff(). Don't rebuild FRadialDamageEvent each loop over hit actors. Added stats for BreakHitResult()/MakeHitResult() under "stat game".
(Integrate CLs 3275415, 3276810 from Odin).
Change 3359422 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Fix build (CollisionProfile included).
Change 3359442 on 2017/03/22 by Michael.Noland
Blueprints: Prevent comment boxes from clipping the last letter of some words at the edge by increasing the padding on the wrap-at position
Change 3359445 on 2017/03/22 by Michael.Noland
PR #2989: Improved BP comment nodes (Contributed by projectgheist)
#jira UE-36788
#jira UE-39118
Change 3359446 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Add support for FScopedMovementUpdate to be able to queue up overlaps that do not require reflexive bGenerateOverlapEvents. This allows custom inspection or processing of overlaps within a scoped move. Overlap events from the move will still only trigger in UpdateOverlaps() if bGenerateOverlapEvents is enabled on both components, as before.
(Integrate CL 3278307 from Odin)
Change 3359494 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Make some data in FScopedMovementUpdate protected rather than private so it can easily be subclassed, and expose a new helper SetWorldLocationAndRotation().
(Integrated CL 3280775 from Odin).
Change 3359506 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) MovementComponent::Deactivate() calls StopMovement() to clear cached velocity. It's silly that reactivation many seconds or frames later would restore that velocity. Some special handling in CharacterMovement to keep it acting as before (it cleared velocity, but did not clear the path request, leaving that alone).
(Integrate CL 3287026 from Odin).
Change 3359514 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Collision.ListComponentsWithResponseToProfile command includes pending kill objects.
(Integrate CL 3293322 from Odin)
Change 3359553 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Optimization in CharacterMovement tick to not extract transform values twice.
(Integrate CL 3299098 from Odin).
Change 3359554 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Perf: optimize UKismetMathLibrary::GetForwardVector() (converts Rotator to forward direction). This way we avoid building a matrix, and avoids 1 more SinCos call.
(Integrate CL 3296254 from Odin).
Change 3359555 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Add OnComponentCollisionSettingsChangedEvent delegate to PrimitiveComponent. Fixed SkeletalMeshComponent not calling Super implementation.
(Integrate CL 3295744 from Odin)
Change 3359561 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Perf: AActor::GetComponents() with generic type should *not* assume the output array needs space for the entire contents of OwnedComponents. If OwnedComponents.Num() > the array reserve size, this forces an allocation, even if few or no components of the requested type are found.
(Integrate CL 3299111 from Odin)
Change 3359573 on 2017/03/22 by dan.reynolds
Added BP log to the Passive Mix Modifier test platform BP
Change 3359593 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Perf: avoid allocations during creation in AAIController::PostInitializeComponents() (in development builds).
(Integrate CL 3299118 from Odin)
Change 3359595 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Perf: HasActiveCameraComponent() and HasActivePawnControlCameraComponent() don't need to fill in an array while searching for a certain component. Also see CL 3359561, which could cause each of these functions to always cause an allocation when filling in the array when num components > 24.
(Integrate CL 3299116 from Odin)
Change 3359602 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Clean up some of the new fast overlap code in PrimitiveComponent. Mostly some variable renaming, and CVar access optimization.
(Integrate CL 3340622 from Odin)
Change 3359616 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Added support for bIgnoreTouches to FCollisionQueryParams. MoveComponent uses this to avoid PhysX collision queries for overlaps in GeomSweepMulti when bGenerateOverlapEvents is off.
(Integrate CL 3340635 from Odin)
Change 3359864 on 2017/03/23 by Mieszko.Zielinski
Added a safeguard to prevent crashes resulting from people trying to name their BB keys things longer than 1024 characters #UE4
#jira UE-43120
Change 3360884 on 2017/03/23 by Zak.Middleton
#ue4 - (Merge) Audio: AUDIO_MIXER_ENABLE_DEBUG_MODE turned off in Test builds. Shipping already had it off.
(Integrate CL 3310724 from Odin)
Change 3361045 on 2017/03/23 by Zak.Middleton
#ue4 - (Merge) Audio: new cvars to help with optimization:
- au.DisableReverbSubmix
- au.DisableEQSubmix
- au.DisableParallelSourceProcessing
- au.SetAudioChannelCount
Also checked in some code to cut down on the amount of parameter setting in EQ
(Integrate of CL 3303165 in Odin by Aaron.Mcleran)
Change 3361172 on 2017/03/23 by Zak.Middleton
#ue4 - (Merge) Audio: added stat for HRTF.
(Integrate CL 3310728 from Odin)
Change 3361189 on 2017/03/23 by Zak.Middleton
#ue4 - (Merge) CVar to toggle HRTF for perf settings. Default is on.
(Integrate CL 3310926 from Odin).
Change 3361914 on 2017/03/23 by Aaron.McLeran
UE-42649 Fixing crash in cleaning up active sound in sound concurrency
-Handling edge case of an active sound not have a sound base ptr, which is possible.
Change 3361924 on 2017/03/23 by Aaron.McLeran
UE-41378 Fixing passive mix modifier bug
Change 3361978 on 2017/03/23 by Aaron.McLeran
UE-42627 Fix for when audio device is removed and getting a deadlock in computing audio clock
Change 3361989 on 2017/03/23 by Aaron.McLeran
PR #3010: Check for null GEngine on sound processing
Change 3362053 on 2017/03/23 by Zak.Middleton
#ue4 - (Merge) Audio: Perf: Avoid thousands of Array.Add() calls during processing, which on shipping still does checks to see if the allocator has to grow, and updates ArrayCount.
(Integrate CL 3311120 from Odin)
Change 3362102 on 2017/03/23 by Aaron.McLeran
PR #3182: Enabled SwitchOnEnum nodes for EAttenuationShape and EAttenuationDistanceModel
Change 3362153 on 2017/03/23 by Aaron.McLeran
UE-43286 Oculus audio plugin not working/available
Change 3362162 on 2017/03/23 by Aaron.McLeran
UE-42252 Frequent ensure in FLevelEditorViewportClient::UpdateAudioListener
Change 3362206 on 2017/03/23 by Aaron.McLeran
UE-43287 Fixing HRTF spatialization in editor viewport
- Steam Audio doesn't support multiple audio devices at the moment
- Instead of hard-coding all audio plugins to not work in main audio device (GDC temp fix), I allow audio plugins to specify if they should be used on main audio device
Change 3362775 on 2017/03/24 by mason.seay
Replaced deprecated node
Change 3363024 on 2017/03/24 by Ben.Zeigler
Fix regression in behavior of streamable manager where loading both a valid and null asset used to work but now fails. Instead added a warning for that case, but if only null are requested it still fails with an error
Change 3363030 on 2017/03/24 by Zak.Middleton
#ue4 - Lower default max sendrate for clients to 60Hz from 90Hz when net speed is high and player count is low. Throttled rate remains at 45Hz. This value has been tested in Paragon with no ill effect, and saves on bandwidth and server CPU when clients run at high framerate.
Change 3363036 on 2017/03/24 by Zak.Middleton
#ue4 - (Merge) Audio: Perf: turned a float divide into a multiply. It happens at least 32k times per audio update.
(Integrate CL 3311158 from Odin)
Change 3363541 on 2017/03/24 by Zak.Middleton
#ue4 - (Merge) Audio: Perf: remove pointer indirection, and successive TArray Add()s in GetChannelMap().
(Integrate CL 3311169 from Odin)
Change 3363642 on 2017/03/24 by Zak.Middleton
#ue4 - (Merge) Audio: Perf: Save ~5% total audio update time. Savings in "Source Output Buffers".
- Removed function call overhead to updating channel map. 64,000 function calls...
- Simplified FSourceParam::Update() to reduce branching and have 1 return site.
- Added alternative to GetChannelMap() called UpdateChannelMap() that avoids copying out values to an array. The values can then be fetched from the channel data directly.
(Integrate CL 3311235 from Odin)
Change 3364441 on 2017/03/24 by Ben.Zeigler
Fix issue where calling LoadLocalIniFile on a plugin file would result in an empty file. It was assuming engine/game dirs, now it instead pulls it out of GConfig if available.
This fixes issue where iterative cooking would fail on plugin config files
Add FindConfigFileWithBaseName to GConfig
Change 3364652 on 2017/03/25 by Phillip.Kavan
#jira UE-43210 - Fix a runtime VM crash upon removing an element from a set after consecutive add/remove iterations.
Change summary:
- Fixed FScriptSet::Add() to initialize the HashIndex member of the new element when the HashSize does not change.
Change 3365609 on 2017/03/27 by Richard.Hinckley
#jira UEDOC-4720
Fixed global enums being dropped from documentation after being extracted by Doxygen.
Change 3365737 on 2017/03/27 by Marc.Audy
Move setting of the ParentComponent property on an actor to PostRepNotifies instead of having a separate OnRep function.
Change 3365795 on 2017/03/27 by Marc.Audy
Fix compile error
Change 3365894 on 2017/03/27 by Phillip.Kavan
#jira UE-35507 - Fix for a GLEO when choosing an LSBP class as the default value for a class input pin in a non-LSBP graph.
Change summary:
- Modified FGraphPinFilter::IsClassAllowed() to disallow a given class if the type is contained within a map package that does not match the current graph context.
Change 3366067 on 2017/03/27 by Marc.Audy
Add UWorld* to PostLoadMap indicating which world has been loaded. Null if an error has occurred.
#jira UE-40228
Change 3366097 on 2017/03/27 by Marc.Audy
Fixed missed deprecation disable pairing for PostLadMap
Change 3366170 on 2017/03/27 by Aaron.McLeran
Fixing div by zero
Change 3366221 on 2017/03/27 by Aaron.McLeran
UE-43240 Removing dependency on component visualizers in runtime Phonon module.
Change 3366698 on 2017/03/27 by Marc.Audy
Fix Orion compile errors
Change 3366782 on 2017/03/27 by Aaron.McLeran
Bringing over optimizations from Odin to Dev-framework.
Original CL 3311435
Change 3366818 on 2017/03/27 by Aaron.McLeran
Bringing fix from Odin to Dev-Framework from CL 3304533
Fix for rare condition that stomps memory during source recycling.
Change 3366984 on 2017/03/27 by Michael.Noland
Blueprints: Downgraded a warning in the connection drawing policy to verbose to suppress it. It does no good to a typical user.
#jira UE-41638
Change 3367085 on 2017/03/27 by Brent.Pease
- Improve AudioMixer buffering so that only two buffers are needed instead of three, buffer submission and buffer processing are ovelapped, and a warning is issued if the audio processing thread can not keep up.
- Added time critical thread priority so that audio processing is not starved which would produce clicks and popping
- Allow the audio thread to not be created if a platform implements its own BeginGeneratingAudio() call (as happens on Android)
Change 3367434 on 2017/03/28 by Marc.Audy
Fix UT compile error
Change 3368587 on 2017/03/28 by Mike.Beach
Adding a "CookedOnly" plugin type (now used by the nativized Blueprint plugin).
Change 3368724 on 2017/03/28 by Zak.Middleton
#ue4 - MovementComponent does not ignore initial blocking overlaps when moving from SafeMoveUpdatedComponent(). Set "p.MoveIgnoreFirstBlockingOverlap" back to zero and add a new flag that prevents the depenetration test from generating hit events (to prevent the problem discovered in UE-39387).
#jira UE-41613, UE-28610
Change 3368748 on 2017/03/28 by Dan.Oconnor
Provide &FUObjectThreadContext::Get().ObjLoaded when using the compilation manager, add validation functions for finding REINST/TRASH references
Change 3368852 on 2017/03/28 by Mike.Beach
Fixing a CIS error before it happens - wrapping implementation in preprocessor defines to match declaration in header.
Change 3368873 on 2017/03/28 by Dan.Oconnor
Rather than collecting script object references, just use the ScriptObjectReferences array. This allows reference replacing archives to update ScriptObjectReferences.
Change 3368998 on 2017/03/28 by Dan.Oconnor
Setting CLASS_Interface early in the compilation process
Change 3369494 on 2017/03/29 by Marc.Audy
Fix UAT compile error
Change 3369924 on 2017/03/29 by Zak.Middleton
#ue4 - Allow CharacterMovement AdjustFloorHeight() to adjust using the line trace if in penetration. Force next floor check so it will check after it depenetrates.
#jira UE-36973
Change 3369932 on 2017/03/29 by Ben.Zeigler
#jira UE-19494 Finish asset auditing work by allowing reading back a cooked asset registry in the editor
Split off FAssetRegistryState as the struct to hold serialization and accessors, to allow loading multiple platform states at once.
Optimized runtime asset registry serialization to be around 1/3 as large as before. Dependencies are disabled by default for the runtime registry, you can re-enable with bSerializeDependencies in Engine.ini
Add FAssetPackageData which is explicitly per-package and only updated on save/load time. File size is stored in here and is computed for both editor and cooked data
Add code to AssetManagerEditorModule to allow loading pre-cooked asset registry files and reading cooked sizes. The Asset Audit window now has a platform drop down that allows reading from cooked data
Rename ChunkManifestGenerator to AssetRegistryGenerator and change it to directly hold an FAssetRegistryState internally
Add new experimental AssetRegistry mode for iterative cooking. This mode is much faster as it does not need to do it's own internal dependency checking and it can be enabled with bUseAssetRegistryForIteration
Change it so during cooking it doesn't directly load string asset references, but instead cues them for cook and uses the asset registry to find and add redirector mappings that are used during save time
Change 3370028 on 2017/03/29 by Ben.Zeigler
CIS fix
Change 3370360 on 2017/03/29 by Mike.Beach
Adding an extra field to FPlatformInfo; a 'UBTTarget' identifier intended to sync up with UBT's UnrealTargetPlatform enum (needed for programatically generating plugin platform whitelists).
Change 3370363 on 2017/03/29 by Ben.Zeigler
Fix issue where loading out of date editor asset registry cache would throw pointless errors
Change 3370414 on 2017/03/29 by Marc.Audy
Remove autos
Change 3370428 on 2017/03/29 by Ben.Zeigler
Fix linux CIS issue, remove implicit conversion from FSavePackageResultStruct back to enum result as it was creating ambiguous operators
Change 3370453 on 2017/03/29 by Marc.Audy
CIS fix
Change 3370548 on 2017/03/29 by Marc.Audy
#rn Fix issues with seamless travel in PIE and shared sub levels between different parents.
Change 3370564 on 2017/03/29 by Mieszko.Zielinski
PR #3429: fix comment typo (Contributed by kayama-shift)
Change 3370602 on 2017/03/29 by Mieszko.Zielinski
Fixed FRecastTileGenerator::Modifiers being erroneously counted twice when stating memory #UE4
Change 3370615 on 2017/03/29 by Phillip.Kavan
#jira UE-35515 - No longer crash when creating a new BP class from one or more selected Actors in which the root component is not Blueprint-spawnable.
Change summary:
- Modified FKismetEditorUtilities::AddComponentsToBlueprint() to handle deferred SceneComponent SCS node adds when the parent component was not also added (due to not being BP-spawnable).
Change 3370693 on 2017/03/29 by Michael.Noland
Fixing some bad indentation
#rnx
Change 3370740 on 2017/03/29 by Ben.Zeigler
DLC/Mod Cooking fixes, the list of packages from release build as in uncooked filename format so fixed code and made this more obvious
Fix Asset Registry to allow loading multiple source asset registries into the same state, by keeping a list of preallocated buffers
Change 3370792 on 2017/03/29 by Michael.Noland
Blueprints: Deleted some unversioned backwards compat. code that would only matter for assets older than VER_UE4_OLDEST_LOADABLE_PACKAGE
Change 3370794 on 2017/03/29 by Michael.Noland
PR #3190: Reduce some output logging
- Reduced an Oculus log from Log to Verbose because it spams quite a bit
- Corrected the spelling and the meaning of a blueprint warning when an invalid breakpoint is encountered
- Treat UInputComponent::GetAxisValue(None) as not a warning
- Switch FGenericSaveGameSystem::LoadGame to silently attempt to load the file, it returns success/failure and it isn't necessary to have a separate warning at the file i/o layer
#jira UE-41446
Change 3370831 on 2017/03/29 by Dan.Oconnor
Iteration on compilation manager
- Fix Skeleton class compilation order
- Pass ObjLoaded array to compilation manager to ensure all objects get PostLoaded
- Make sure data only classes get reinstanced, so that UpdateCustomPropertyListForPostConstruction is run correctly
Change 3370923 on 2017/03/29 by Michael.Noland
Blueprints: Added an icon to indicate whether or not a macro contains latent actions
- Note: The state of the icon is cached for performance reasons on request, with the cache being cleared when the BP containing the macro is modified or a macro graph is removed
- This does mean that editing the inner macro of a nested macro to add/remove a latent action will not show up in visualization for the outer node until the editor is restarted or the outer macro is modified
Change 3371039 on 2017/03/29 by Dan.Oconnor
Hacky fix for dropping return params when a function's return node is culled
Change 3371750 on 2017/03/30 by Richard.Hinckley
Stencil write mask exposed. Adds nine new options (all bits, plus each bit individually - write on pass or depth fail). This allows stencil overlaps to be detected by mixing masks.
Change 3372513 on 2017/03/30 by Ben.Zeigler
#jira UE-43475 Fix cooker issues with string asset references to null packages.
Fix redirector detection to follow recursive chains, and correctly strip object class from redirected string asset references.
Change 3372565 on 2017/03/30 by Richard.Hinckley
Rolling back stencil change, will be moved to Dev-Rendering.
Change 3372764 on 2017/03/30 by Marc.Audy
Do not create a duplicate sub object that is not in the annotation if a sub object of the same name and class already exists.
#jira UE-43328
#rn Fixed cases where the blueprint of a class used as a child actor could be dirtied when compiling the owning blueprint.
Change 3372847 on 2017/03/30 by Marc.Audy
Fix missing include
Change 3372994 on 2017/03/30 by Zak.Middleton
#ue4 - Fix build in Debug (checkSlow using incorrect function params).
Change 3373195 on 2017/03/30 by Mike.Beach
For nativization, changing it so we key off of the target platform-info struct instead of the platform (in preparation for defining the nativized plugin's platform whitelist).
Change 3373320 on 2017/03/30 by mason.seay
Basic for TM-Gameplay map (WIP)
Change 3373448 on 2017/03/30 by Ben.Zeigler
Fix recursive size display in audit window
Improve asset manager comments
Change 3373576 on 2017/03/30 by dan.reynolds
AEOverview Update:
Updated Passive Mix Modifier Test based on recent changes in behavior
Also added Initial Delay Time timer to test
Change 3373589 on 2017/03/30 by dan.reynolds
AEOverview Passive Mix Mod Test Map update
Change 3373624 on 2017/03/30 by Zak.Middleton
#ue4 - Increase Pawn location replication precision to 2 decimal places from 0. Prevents replicated pawns from being inside geometry by a large amount. Removed CVars controlling CharacterMovement proxy shrink amount and made those instanced properties on the component.
#jira UE-40420
Change 3374271 on 2017/03/31 by Marc.Audy
Fix deprecation warning in new UT code
Change 3374320 on 2017/03/31 by Marc.Audy
Fix HTML5 compile.
Change 3374413 on 2017/03/31 by Jeff.Farris
Added ENGINE_API to 2 functions in PlanarReflection, so projects can subclass it.
(Copied CL 3276454 from Robo Recall to Dev-Framework)
Change 3374414 on 2017/03/31 by Jeff.Farris
Added support for setting UNavigationSystem::bUpdateNavOctreeOnComponentChange
(Copied CL 3267903 from RoboRecall to Dev-Framework)
Change 3374616 on 2017/03/31 by Ben.Zeigler
Copy of Fortnite CL #3312058 to add a missing redirector. I do not understand why this is not erroring on Main, I guess my minor cook changes somehow exposed this
Change 3374664 on 2017/03/31 by Jeff.Farris
Consted AIController::GetBrainComponent()
(Copied 3239101 from Robo Recall to Dev-Framework)
Change 3374665 on 2017/03/31 by Jeff.Farris
PrimitiveComponent bIgnoreRadialImpulse and bIgnoreRadialForce are now exposed to BPs. bIgnoreRadialImpulse now respected when applying impulse to relevant movement components.
(Coped CL 3242355 from Robo Recall to Dev-Framework)
Change 3374779 on 2017/03/31 by Jeff.Farris
Exposed SetAllPhysicsAngularVelocity to blueprints
(Copied CL 3228390 from Robo Recall to Dev-Framework)
Change 3374792 on 2017/03/31 by Ben.Zeigler
#jira UE-42618
PR #3347: Improve support for FGameplayAttributeData properties in attribute sets (Contributed by hoelzl)
Change 3374844 on 2017/03/31 by Ben.Zeigler
#jira UE-42587 Fix issue where supressed gameplay effects that granted abilities would only work the first time, it now clears out of date ability handles
Change 3374925 on 2017/03/31 by Marc.Audy
Don't throw warning about missing world context for inactive worlds.
#jira UE-42679
Change 3374927 on 2017/03/31 by Michael.Noland
Editor: Added options for configuring the editor window background color and texture, which can be useful to visually distinguish the editor when switching between different branches or projects
Change 3374995 on 2017/03/31 by Michael.Noland
Editor: Rewrote CallInEditor support and promoted it so it can be used on functions in any class, not just blueprints derived from AActor:
- CallInEditor used on native UFUNCTION() declarations will now show up without having to make a BP subclass
- CallInEditor can now be used as a top-level keyword in the UFUNCTION() declaration (e.g., UFUNCTION(Category=CoolCommands, CallInEditor))
- Now shows each function as a separate button, placed in the category associated with the function
- The button strip entry is now searchable by function name or tooltip
- Prevented operating on functions that have parameters or return values, which would crash before
- Removed the duplicate copies of properties placed in the Blutility section
- Added a scoped transaction around CallInEditor execution
- Allowed functions to be marked as CallInEditor in addition to custom events (currently we don't allow editing category or tooltip on custom events...)
Editor: Moved Experimental/EarlyAccessPreview details customizations up to UObject so it can be used on any class, not just actors/components
Upgrade Note: Behavior has changed so that CallInEditor can be called on CDOs as well, this will probably be walked back in a subsequent update, at least for actors and components.
Change 3375005 on 2017/03/31 by Michael.Noland
Fixing incremental compilation error due to missing include
#rnx
Change 3375015 on 2017/03/31 by Michael.Noland
Fixing incremental compilation error due to missing include (for real)
#rnx
Change 3375045 on 2017/03/31 by Marc.Audy
Only calculate the streaming levels prefix during seamless travel if it is a PIE world
#jira UE-43485
Change 3375053 on 2017/03/31 by Ben.Zeigler
#jira UE-41988 Fix it so leaving PIE while gameplay debugger is active will disable HUD extensions properly, restoring ability to print messages to screen
Change 3375057 on 2017/03/31 by Ben.Zeigler
#jira UE-39226 Don't add to DrawDebug list for player controllers with no local player
Change 3375121 on 2017/03/31 by Michael.Noland
Added missing include for FScopedTransaction
#rnx
Change 3375222 on 2017/03/31 by mason.seay
Submitting work done to TM-Gameplay. Still WIP
Change 3375308 on 2017/03/31 by Michael.Noland
Editor: Added back CDO filtering to CallInEditor, it's too easy to explode in the BP editor. May consider allowing opt-in behavior when we revisit Blutilities
Change 3375321 on 2017/03/31 by Ben.Zeigler
#jira UE-39062 Fix issue where using the level editor toolbar to modify blueprints was not properly marking the blueprints as modified, so the constructor links weren't being updated until manually compiling or resaving
Always recompute post constructor links when calling MarkBlueprintAsModified, as it can be called from native and other places where we modified CDOs but don't have a property changed event
Change 3375372 on 2017/03/31 by Ben.Zeigler
#jira UE-39568 Change Components to specifically update LatentActions the same as Actors do, so they update properly if bUpdateWhilePaused is set
Change 3375380 on 2017/03/31 by Marc.Audy
Modify IsMainAudioDevice to deal with the case where no audio device has been created.
Change 3375402 on 2017/03/31 by Marc.Audy
Fix DuplicateWorldForPIE in the case that the OwningWorld is null.
Change 3376037 on 2017/04/02 by Phillip.Kavan
#jira UE-35332 - Preserve the least common ancestor pin type on object array function node inputs after a node refresh.
Change summary:
- Added UK2Node_CallArrayFunction::GetDynamicallyTypedPins() to consolidate the code that retrieves type-dependent parameter pins.
- Added FBlueprintEditorUtils::FindLinkedPinWithAuthoritativePinType() to consolidate the code that considers other linked pins when choosing which type to propagate to type-dependent parameter pins.
- Added FBlueprintEditorUtils::PropagatePinTypeInfo() to consolidate the common code from UK2Node_CallArrayFunction::PropagateArrayTypeInfo(); this eliminated a redundant retrieval of the target pin set.
- Refactored UK2Node_CallArrayFunction::PropagateArrayTypeInfo() to now call FBlueprintEditorUtils::PropagatePinTypeInfo() after retrieving the set of dynamically-typed pins.
- Refactored UK2Node_CallArrayFunction::NotifyPinConnectionListChanged() to remove some unnecessary iteration passes and to ensure that we propagate the authoritative (least common ancestor) pin type for object- and struct-based types.
Change 3376364 on 2017/04/03 by Richard.Hinckley
UE-40920 Fix to Paper2D flipbook timeline editor. Previously, the timeline shown was one frame shorter than the animation. Now, the timeline shows the correct frame count.
Change 3376366 on 2017/04/03 by Richard.Hinckley
UE-40920 Bugfix to Paper2D flipbook editor. The red line indicating the current frame now adjusts properly if the timeline is longer than the editor window and the scroll bar is moved to the right.
Change 3376517 on 2017/04/03 by Marc.Audy
PR #3195: Added support for GamePad on RawInput Plugin (Contributed by katze7514)
#jira UE-41499
Change 3376708 on 2017/04/03 by Mike.Beach
Moving nativized plugins into a centralized folder (so we can use it as an additional plugin lookup dir) - this is so we can ultimately keep the generated code around for debugging purposes.
Summary of changes:
- nativized plugins now moved to ...\Intermediate\Plugins\<PLATFORM>\NativizedAssets
- corresponding manifest files get saved inside the module and named to match the platform
- nativized modules now whitelisted only for the platform they were generated for
- cleanup on how we generate paths (now piping in platform name) and pass multi-cook process ids (for building manifest filenames)
- extending the 'NativizeAssets' command line, so you can use it to specify the target plugin path (utilized by UAT to coordinate the plugin path between cook & build - was previously hardcoded in multiple places).
Change 3376826 on 2017/04/03 by Phillip.Kavan
#jira UE-43330 - Fix a crash when adding an input parameter to a Custom Event node after deleting a Function Graph containing a Create Event node.
Change summary:
- Modified UK2Node_CreateDelegate::HandleAnyChangeWithoutNotifying() to check for a valid blueprint before accessing it (since the accessor is now a checked operation).
- Modified UK2Node_CreateDelegate::GetScopeClass() to also check for a valid blueprint before accessing it.
- Switched 'NULL' to 'nullptr' in a few spots.
Change 3376831 on 2017/04/03 by Ben.Zeigler
#jira UE-43500, clean up UPackage when EDL/async loading fails. This restores EDL LoadPackage to work the same as non EDL and return NULL instead of an invalid empty package
Change 3376846 on 2017/04/03 by Ben.Zeigler
#jira UE-38760 Properly refresh exec pins when removing pin from a Switch on Int node
Change 3376850 on 2017/04/03 by Dan.Oconnor
Use authoritative class to mitigate compilation order issues
Change 3376961 on 2017/04/03 by Ben.Zeigler
#jira UE-43127 Add struct ops implementations for FIntVector and FBox2d, any blueprint type needs struct ops to avoid crashes
Fix Box2d variable name in NoExportTypes
Change 3376985 on 2017/04/03 by Ben.Zeigler
#jira UE-43582 Remove Xbox-specific code from AssetRegistry because it won't work after my refactor. The serialization is much faster now and neither Bob nor I can conceive of a way this would take long enough to stall the main thread. If it it is somehow a problem, it should be wrapped in a slow task instead
Change 3377009 on 2017/04/03 by Ben.Zeigler
#jira UE-43036 Fix crash when right clicking blueprint with no parent class. Ensures are fine but crashes should be avoided so people can try to copy data out of them
Change 3377054 on 2017/04/03 by Zak.Middleton
#ue4 - Fix CharacterMovementComponent updated with very high delta time on server when initially joining. Make sure the ServerTimeStamp is initialized to current world time rather than zero to prevent large delta.
#jira UE-40344
#udn https://udn.unrealengine.com/questions/310497/large-delta-time-for-first-player-movement-update.html
Change 3377061 on 2017/04/03 by Dan.Oconnor
Fixes for issues exposed by cooking with compilation manager. When cooking we end up with more blueprints compiling at a single time, which highlighted issues reading from generated classes while they were actively regenerating.
Note that EInternalCompilerFlags::PostponeLocalsGenerationUntilPhaseTwo has only been added to mitigate risk - there is no known reason that existing compilation flows can't postpone generatation of local variables.
Change 3377073 on 2017/04/03 by Mike.Beach
CIS fix - proper initialization ordering.
Change 3377371 on 2017/04/03 by Ben.Zeigler
#jira UE-43144 Disallow creating map of FText, like bool it is not hashable
Change 3377395 on 2017/04/03 by Dan.Oconnor
Build fix - make order in source match initialization order in artifact
Change 3377417 on 2017/04/03 by Dan.Oconnor
Speculative SA fix
Change 3377496 on 2017/04/03 by Aaron.McLeran
#jira UE-43558 Cleaning up shutdown code with audio plugins.
Change 3377608 on 2017/04/03 by Zak.Middleton
#ue4 - Added function ACharacter::CacheInitialMeshOffset() to cache initial mesh offset, used as the target for network smoothing. Added a call to this function from BeginPlay() in addition to the existing call from PostInitializeComponents(), and exposed this to blueprints as well. This fixes the case of people moving the mesh in BeginPlay rather than in the editor or construction script and not having the mesh offset reflected correctly in network games.
#jira UE-38966
Change 3377880 on 2017/04/03 by Aaron.McLeran
Audio bug fixes
#jira UE-43600 Fixing sounds played by playsoundatlocation for audio volume calculations
#jira UE-43601 Fixing listener volume interpolation
#jida UE-43602 Fixing reverb/eq interpolation
Change 3377908 on 2017/04/03 by Phillip.Kavan
#jira UE-43565 - Fix a regression on type-dependent array function node pins that have more than one link.
Change summary:
- Added FBlueprintEditorUtils::FindLinkedPinWithMostDerivedPinType()
- Modified FBlueprintEditorUtils::FindLinkedPinWithAuthoritativePinType() to properly handle pins that have multiple links.
Change 3377912 on 2017/04/03 by Dan.Oconnor
Fix for missing SUBINSTANCE variables on anim BP skeletons. I elected to force SUBINSTANCE variable creation for the compilation manager codepath
Change 3377946 on 2017/04/03 by Ben.Zeigler
#jira UE-43594 Fix issue with streamable manager where a failed load would leave bAsyncLoadRequestOutstanding, which would confuse later calls to stream the same asset
Lower some error verbosity now that I believe I have tracked down the issue
Change 3377950 on 2017/04/03 by Michael.Noland
Blueprints: Prevent merge tool from crashing in SVN when looking at a file with gaps in the revision history
(May still not work correctly, but it won't crash; full fix covered by UE-43603)
#jira UE-22428
Change 3377981 on 2017/04/03 by Michael.Noland
PR #3416: UE-43005: Prevent crash due to too long name (Contributed by projectgheist)
#jira UE-43291
#jira UE-43005
Change 3378039 on 2017/04/04 by Michael.Noland
PhysX: Allowed the editor to compile when bRuntimePhysicsCooking is disabled (WITH_EDITOR is used in every place in C++ to force it in already)
Change 3378041 on 2017/04/04 by Michael.Noland
Paper2D: Adjusted under what circumstances CreatePhysicsMeshes is called on various Paper2D types to match UProceduralMeshComponent
Change 3378081 on 2017/04/04 by Dan.Oconnor
Fix Blueprint Context nodes so that they don't rely on Ar.IsBeingSaved() call before compilation
3x because of copy/paste
Change 3378094 on 2017/04/04 by Dan.Oconnor
Add missing preload call for compilation manager
Change 3378917 on 2017/04/04 by Marc.Audy
Fix static analysis (which is very dumb)
Change 3378986 on 2017/04/04 by Dan.Oconnor
Fix bad merge
Change 3379100 on 2017/04/04 by Dan.Oconnor
Fix missing CPF_ConstParm/CPF_ReferenceParm/CPF_OutParm logic in 'fast' skeleton path
#jira UE-43629
Change 3379102 on 2017/04/04 by Ben.Zeigler
Actually fix StreamableManager issues with cancelling a request messing up things in the future. We now always queue a request, even if it failed before or there is one in progress. This has to be done to avoid issues with cancelling the existing request or mounting new files after it's failed once
Now that StreamableManager will retry missing files, add failed load packages to the known missing list so it won't spam errors over and over
Change 3379147 on 2017/04/04 by Zak.Middleton
#ue4 - Improve on CL 3377608: Made Character::CacheInitialMeshOffset() take location and rotation params so you can be explicit on the values, in case you try to change these during network smoothing, where reading the relative offsets would have been skewed.
Change 3379254 on 2017/04/04 by Aaron.McLeran
Fixing sounds in audio mixer when no EQ has been set.
Change 3379760 on 2017/04/04 by Ben.Zeigler
#jira UE-43647 Don't delete failed async packages that are rooted
[CL 3380073 by Dan Oconnor in Main branch]
2017-04-04 20:49:52 -04:00
if ( Loader = = nullptr )
2014-03-14 14:13:41 -04:00
{
// Couldn't open the file
2016-05-19 19:35:35 -04:00
SetPackageErrorCode ( EOpenPackageResult : : NoLoader ) ;
2014-03-14 14:13:41 -04:00
return false ;
}
// Read package file summary from the file
2020-06-23 18:40:00 -04:00
* this < < PackageFileSummary ;
2014-03-14 14:13:41 -04:00
// Validate the summary.
// Make sure this is indeed a package
2020-06-23 18:40:00 -04:00
if ( PackageFileSummary . Tag ! = PACKAGE_FILE_TAG | | IsError ( ) )
2014-03-14 14:13:41 -04:00
{
// Unrecognized or malformed package file
2020-09-24 00:43:27 -04:00
UE_LOG ( LogAssetRegistry , Error , TEXT ( " Package %s has malformed tag " ) , * PackageFilename ) ;
2016-05-19 19:35:35 -04:00
SetPackageErrorCode ( EOpenPackageResult : : MalformedTag ) ;
2014-03-14 14:13:41 -04:00
return false ;
}
2021-11-07 23:43:01 -05:00
if ( ! PackageFileSummary . IsFileVersionValid ( ) )
{
UE_LOG ( LogAssetRegistry , Error , TEXT ( " Package %s is unversioned which cannot be opened by the current process " ) , * PackageFilename ) ;
SetPackageErrorCode ( EOpenPackageResult : : Unversioned ) ;
return false ;
}
2014-03-14 14:13:41 -04:00
// Don't read packages that are too old
2021-09-17 07:04:55 -04:00
if ( PackageFileSummary . IsFileVersionTooOld ( ) )
2014-03-14 14:13:41 -04:00
{
2021-11-07 23:43:01 -05:00
UE_LOG ( LogAssetRegistry , Error , TEXT ( " Package %s is too old. Min Version: %i Package Version: %i " ) ,
* PackageFilename , ( int32 ) VER_UE4_OLDEST_LOADABLE_PACKAGE , PackageFileSummary . GetFileVersionUE ( ) . FileVersionUE4 ) ;
SetPackageErrorCode ( EOpenPackageResult : : Unversioned ) ;
2014-03-14 14:13:41 -04:00
return false ;
}
// Don't read packages that were saved with an package version newer than the current one.
2021-11-07 23:43:01 -05:00
if ( PackageFileSummary . IsFileVersionTooNew ( ) )
2014-03-14 14:13:41 -04:00
{
2021-11-07 23:43:01 -05:00
UE_LOG ( LogAssetRegistry , Error , TEXT ( " Package %s is too new. Engine Version: %i Package Version: %i " ) ,
* PackageFilename , GPackageFileUEVersion . ToValue ( ) , PackageFileSummary . GetFileVersionUE ( ) . ToValue ( ) ) ;
SetPackageErrorCode ( EOpenPackageResult : : VersionTooNew ) ;
return false ;
}
if ( PackageFileSummary . GetFileVersionLicenseeUE ( ) > GPackageFileLicenseeUEVersion )
{
2022-03-14 13:20:30 -04:00
UE_LOG ( LogAssetRegistry , Error , TEXT ( " Package %s is too new. Licensee Version: %i Package Licensee Version: %i " ) ,
* PackageFilename , GPackageFileLicenseeUEVersion , PackageFileSummary . GetFileVersionLicenseeUE ( ) ) ;
2021-11-07 23:43:01 -05:00
2016-05-19 19:35:35 -04:00
SetPackageErrorCode ( EOpenPackageResult : : VersionTooNew ) ;
2014-03-14 14:13:41 -04:00
return false ;
}
// Check serialized custom versions against latest custom versions.
2021-01-21 16:22:06 -04:00
TArray < FCustomVersionDifference > Diffs = FCurrentCustomVersions : : Compare ( PackageFileSummary . GetCustomVersionContainer ( ) . GetAllVersions ( ) , * PackageFilename ) ;
2019-10-14 04:49:48 -04:00
for ( FCustomVersionDifference Diff : Diffs )
2014-03-14 14:13:41 -04:00
{
2019-10-14 04:49:48 -04:00
if ( Diff . Type = = ECustomVersionDifference : : Missing )
2014-03-14 14:13:41 -04:00
{
2016-05-19 19:35:35 -04:00
SetPackageErrorCode ( EOpenPackageResult : : CustomVersionMissing ) ;
return false ;
}
2020-09-24 00:43:27 -04:00
else if ( Diff . Type = = ECustomVersionDifference : : Invalid )
{
SetPackageErrorCode ( EOpenPackageResult : : CustomVersionInvalid ) ;
return false ;
}
2019-10-14 04:49:48 -04:00
else if ( Diff . Type = = ECustomVersionDifference : : Newer )
2016-05-19 19:35:35 -04:00
{
2020-09-24 00:43:27 -04:00
UE_LOG ( LogAssetRegistry , Error , TEXT ( " Package %s has newer custom version of %s " ) , * PackageFilename , * Diff . Version - > GetFriendlyName ( ) . ToString ( ) ) ;
2016-05-19 19:35:35 -04:00
SetPackageErrorCode ( EOpenPackageResult : : VersionTooNew ) ;
2014-03-14 14:13:41 -04:00
return false ;
}
}
//make sure the filereader gets the correct version number (it defaults to latest version)
2021-04-14 11:13:44 -04:00
SetUEVer ( PackageFileSummary . GetFileVersionUE ( ) ) ;
SetLicenseeUEVer ( PackageFileSummary . GetFileVersionLicenseeUE ( ) ) ;
2015-03-11 13:18:45 -04:00
SetEngineVer ( PackageFileSummary . SavedByEngineVersion ) ;
2014-03-14 14:13:41 -04:00
const FCustomVersionContainer & PackageFileSummaryVersions = PackageFileSummary . GetCustomVersionContainer ( ) ;
SetCustomVersions ( PackageFileSummaryVersions ) ;
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3380068)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3358702 on 2017/03/22 by Marc.Audy
Always mark child actors pending kill when in PostLoad as often the World is too early to have a WorldContext which causes issues in DestroyActor
#jira UE-42679
Change 3358737 on 2017/03/22 by Mieszko.Zielinski
Exposed UBrainComponent::IsRunning() and UBrainComponent::IsPaused() to Blueprint #UE4
Change 3359062 on 2017/03/22 by Michael.Noland
Blueprints: Show the Save and Find in CB buttons when working with level script blueprints (they will save/show the map package)
#jira UE-30748
Change 3359066 on 2017/03/22 by Michael.Noland
PR #3348: Make fields of FAttributeMetaData editable (Contributed by hoelzl)
#jira UE-42620
Change 3359069 on 2017/03/22 by Michael.Noland
PR #3288: InverseLerp Blueprint Tooltips Clarification (Contributed by wunawuna)
#jira UE-42250
Change 3359108 on 2017/03/22 by Michael.Noland
Blueprints: Fix an issue where running the editor in a different culture could break pins on nodes that have optional arrays of pins (e.g., animation graph nodes like blend by layer)
#jira UE-36232
Change 3359235 on 2017/03/22 by Marc.Audy
Expose bShouldPerformFullTickWhenPaused to blueprints and details panel
#jira UE-17286
Change 3359324 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Disable collision on NavModifierVolumes. Previously they had an OverlapAll response and generated overlap events. They are only supposed to be used for preventing nav mesh generation, but overlap events could affect gameplay, and also are bad for performance.
(Integrate CL 3249525 from Odin).
Change 3359326 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Optimization during attachment to check bool before expensive casts and body instance fetching.
(Integrate CL 3261262 from Odin).
Change 3359327 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Make bSkipAgentHeightCheckWhenPickingNavData actually ignore height when picking data.
(Integrate CL 3231908 from Odin)
Change 3359328 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Make a static FName in UMovementComponent::OverlapTest const and move it to a namespace.
(Integrate CL 3259985 from Odin)
Change 3359329 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Fix ProjectileMovementComponent continuing to simulate (and generate hit events) after it is deactivated during simulation. HasStoppedSimulation() should check if bIsActive is false.
(Integrate CL 3260001 from Odin)
Change 3359330 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Fix accumulated forces in CharacterMovement when movement mode or activation changes.
- Added CharacterMovementComponent::ClearAccumulatedForces()
- AddForce() and related functions now avoid adding the force if in MovementMode "None". When ticking in "None", forces are cleared so they don't pile up until the next valid movement mode. Forces are also cleared if the updated component changes or when the capsule simulates physics.
- CharacterMovementComponent::Deactivate() implemented to stop movement and call ClearAccumulatedForces().
- ClearAccumulatedForces() now also clears pending launch velocity.
- Exposed ClearAccumulatedForces() to blueprints.
- AddForce() and AddImpulse() now also check that character movement is active (not deactivated, able to tick).
- ApplyAccumulatedForces() does not call ClearAccumulatedForces(), since that would prevent pending launch.
- SimulateMovement() handles pending launch and clears forces regardless of whether it's simulated proxy. Added note to investigate using ApplyAccumulatedForces() in SimulateMovement().
- Inlined ActorComponent::IsActive().
(Integrate CLs 3259933, 3266018 from Odin)
Change 3359338 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) TickCharacterPose() and clear root motion before abandoning tick in UCharacterMovementComponent::PerformMovement() when movement mode is None. Prevents root motion building up until next valid movement mode.
(Integrate CL 3271928 from Odin)
Change 3359345 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Fix characters sliding when landing on slanted surfaces or stairs, when aggressive "Perch" settings could cause a line trace (from the center of a capsule) instead of capsule trace and thereby screw up the floor distance checks.
(Integrate CL 3273026 from Odin)
Change 3359381 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Performance tweak to ApplyRadialDamageWithFalloff(). Don't rebuild FRadialDamageEvent each loop over hit actors. Added stats for BreakHitResult()/MakeHitResult() under "stat game".
(Integrate CLs 3275415, 3276810 from Odin).
Change 3359422 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Fix build (CollisionProfile included).
Change 3359442 on 2017/03/22 by Michael.Noland
Blueprints: Prevent comment boxes from clipping the last letter of some words at the edge by increasing the padding on the wrap-at position
Change 3359445 on 2017/03/22 by Michael.Noland
PR #2989: Improved BP comment nodes (Contributed by projectgheist)
#jira UE-36788
#jira UE-39118
Change 3359446 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Add support for FScopedMovementUpdate to be able to queue up overlaps that do not require reflexive bGenerateOverlapEvents. This allows custom inspection or processing of overlaps within a scoped move. Overlap events from the move will still only trigger in UpdateOverlaps() if bGenerateOverlapEvents is enabled on both components, as before.
(Integrate CL 3278307 from Odin)
Change 3359494 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Make some data in FScopedMovementUpdate protected rather than private so it can easily be subclassed, and expose a new helper SetWorldLocationAndRotation().
(Integrated CL 3280775 from Odin).
Change 3359506 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) MovementComponent::Deactivate() calls StopMovement() to clear cached velocity. It's silly that reactivation many seconds or frames later would restore that velocity. Some special handling in CharacterMovement to keep it acting as before (it cleared velocity, but did not clear the path request, leaving that alone).
(Integrate CL 3287026 from Odin).
Change 3359514 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Collision.ListComponentsWithResponseToProfile command includes pending kill objects.
(Integrate CL 3293322 from Odin)
Change 3359553 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Optimization in CharacterMovement tick to not extract transform values twice.
(Integrate CL 3299098 from Odin).
Change 3359554 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Perf: optimize UKismetMathLibrary::GetForwardVector() (converts Rotator to forward direction). This way we avoid building a matrix, and avoids 1 more SinCos call.
(Integrate CL 3296254 from Odin).
Change 3359555 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Add OnComponentCollisionSettingsChangedEvent delegate to PrimitiveComponent. Fixed SkeletalMeshComponent not calling Super implementation.
(Integrate CL 3295744 from Odin)
Change 3359561 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Perf: AActor::GetComponents() with generic type should *not* assume the output array needs space for the entire contents of OwnedComponents. If OwnedComponents.Num() > the array reserve size, this forces an allocation, even if few or no components of the requested type are found.
(Integrate CL 3299111 from Odin)
Change 3359573 on 2017/03/22 by dan.reynolds
Added BP log to the Passive Mix Modifier test platform BP
Change 3359593 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Perf: avoid allocations during creation in AAIController::PostInitializeComponents() (in development builds).
(Integrate CL 3299118 from Odin)
Change 3359595 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Perf: HasActiveCameraComponent() and HasActivePawnControlCameraComponent() don't need to fill in an array while searching for a certain component. Also see CL 3359561, which could cause each of these functions to always cause an allocation when filling in the array when num components > 24.
(Integrate CL 3299116 from Odin)
Change 3359602 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Clean up some of the new fast overlap code in PrimitiveComponent. Mostly some variable renaming, and CVar access optimization.
(Integrate CL 3340622 from Odin)
Change 3359616 on 2017/03/22 by Zak.Middleton
#ue4 - (Merge) Added support for bIgnoreTouches to FCollisionQueryParams. MoveComponent uses this to avoid PhysX collision queries for overlaps in GeomSweepMulti when bGenerateOverlapEvents is off.
(Integrate CL 3340635 from Odin)
Change 3359864 on 2017/03/23 by Mieszko.Zielinski
Added a safeguard to prevent crashes resulting from people trying to name their BB keys things longer than 1024 characters #UE4
#jira UE-43120
Change 3360884 on 2017/03/23 by Zak.Middleton
#ue4 - (Merge) Audio: AUDIO_MIXER_ENABLE_DEBUG_MODE turned off in Test builds. Shipping already had it off.
(Integrate CL 3310724 from Odin)
Change 3361045 on 2017/03/23 by Zak.Middleton
#ue4 - (Merge) Audio: new cvars to help with optimization:
- au.DisableReverbSubmix
- au.DisableEQSubmix
- au.DisableParallelSourceProcessing
- au.SetAudioChannelCount
Also checked in some code to cut down on the amount of parameter setting in EQ
(Integrate of CL 3303165 in Odin by Aaron.Mcleran)
Change 3361172 on 2017/03/23 by Zak.Middleton
#ue4 - (Merge) Audio: added stat for HRTF.
(Integrate CL 3310728 from Odin)
Change 3361189 on 2017/03/23 by Zak.Middleton
#ue4 - (Merge) CVar to toggle HRTF for perf settings. Default is on.
(Integrate CL 3310926 from Odin).
Change 3361914 on 2017/03/23 by Aaron.McLeran
UE-42649 Fixing crash in cleaning up active sound in sound concurrency
-Handling edge case of an active sound not have a sound base ptr, which is possible.
Change 3361924 on 2017/03/23 by Aaron.McLeran
UE-41378 Fixing passive mix modifier bug
Change 3361978 on 2017/03/23 by Aaron.McLeran
UE-42627 Fix for when audio device is removed and getting a deadlock in computing audio clock
Change 3361989 on 2017/03/23 by Aaron.McLeran
PR #3010: Check for null GEngine on sound processing
Change 3362053 on 2017/03/23 by Zak.Middleton
#ue4 - (Merge) Audio: Perf: Avoid thousands of Array.Add() calls during processing, which on shipping still does checks to see if the allocator has to grow, and updates ArrayCount.
(Integrate CL 3311120 from Odin)
Change 3362102 on 2017/03/23 by Aaron.McLeran
PR #3182: Enabled SwitchOnEnum nodes for EAttenuationShape and EAttenuationDistanceModel
Change 3362153 on 2017/03/23 by Aaron.McLeran
UE-43286 Oculus audio plugin not working/available
Change 3362162 on 2017/03/23 by Aaron.McLeran
UE-42252 Frequent ensure in FLevelEditorViewportClient::UpdateAudioListener
Change 3362206 on 2017/03/23 by Aaron.McLeran
UE-43287 Fixing HRTF spatialization in editor viewport
- Steam Audio doesn't support multiple audio devices at the moment
- Instead of hard-coding all audio plugins to not work in main audio device (GDC temp fix), I allow audio plugins to specify if they should be used on main audio device
Change 3362775 on 2017/03/24 by mason.seay
Replaced deprecated node
Change 3363024 on 2017/03/24 by Ben.Zeigler
Fix regression in behavior of streamable manager where loading both a valid and null asset used to work but now fails. Instead added a warning for that case, but if only null are requested it still fails with an error
Change 3363030 on 2017/03/24 by Zak.Middleton
#ue4 - Lower default max sendrate for clients to 60Hz from 90Hz when net speed is high and player count is low. Throttled rate remains at 45Hz. This value has been tested in Paragon with no ill effect, and saves on bandwidth and server CPU when clients run at high framerate.
Change 3363036 on 2017/03/24 by Zak.Middleton
#ue4 - (Merge) Audio: Perf: turned a float divide into a multiply. It happens at least 32k times per audio update.
(Integrate CL 3311158 from Odin)
Change 3363541 on 2017/03/24 by Zak.Middleton
#ue4 - (Merge) Audio: Perf: remove pointer indirection, and successive TArray Add()s in GetChannelMap().
(Integrate CL 3311169 from Odin)
Change 3363642 on 2017/03/24 by Zak.Middleton
#ue4 - (Merge) Audio: Perf: Save ~5% total audio update time. Savings in "Source Output Buffers".
- Removed function call overhead to updating channel map. 64,000 function calls...
- Simplified FSourceParam::Update() to reduce branching and have 1 return site.
- Added alternative to GetChannelMap() called UpdateChannelMap() that avoids copying out values to an array. The values can then be fetched from the channel data directly.
(Integrate CL 3311235 from Odin)
Change 3364441 on 2017/03/24 by Ben.Zeigler
Fix issue where calling LoadLocalIniFile on a plugin file would result in an empty file. It was assuming engine/game dirs, now it instead pulls it out of GConfig if available.
This fixes issue where iterative cooking would fail on plugin config files
Add FindConfigFileWithBaseName to GConfig
Change 3364652 on 2017/03/25 by Phillip.Kavan
#jira UE-43210 - Fix a runtime VM crash upon removing an element from a set after consecutive add/remove iterations.
Change summary:
- Fixed FScriptSet::Add() to initialize the HashIndex member of the new element when the HashSize does not change.
Change 3365609 on 2017/03/27 by Richard.Hinckley
#jira UEDOC-4720
Fixed global enums being dropped from documentation after being extracted by Doxygen.
Change 3365737 on 2017/03/27 by Marc.Audy
Move setting of the ParentComponent property on an actor to PostRepNotifies instead of having a separate OnRep function.
Change 3365795 on 2017/03/27 by Marc.Audy
Fix compile error
Change 3365894 on 2017/03/27 by Phillip.Kavan
#jira UE-35507 - Fix for a GLEO when choosing an LSBP class as the default value for a class input pin in a non-LSBP graph.
Change summary:
- Modified FGraphPinFilter::IsClassAllowed() to disallow a given class if the type is contained within a map package that does not match the current graph context.
Change 3366067 on 2017/03/27 by Marc.Audy
Add UWorld* to PostLoadMap indicating which world has been loaded. Null if an error has occurred.
#jira UE-40228
Change 3366097 on 2017/03/27 by Marc.Audy
Fixed missed deprecation disable pairing for PostLadMap
Change 3366170 on 2017/03/27 by Aaron.McLeran
Fixing div by zero
Change 3366221 on 2017/03/27 by Aaron.McLeran
UE-43240 Removing dependency on component visualizers in runtime Phonon module.
Change 3366698 on 2017/03/27 by Marc.Audy
Fix Orion compile errors
Change 3366782 on 2017/03/27 by Aaron.McLeran
Bringing over optimizations from Odin to Dev-framework.
Original CL 3311435
Change 3366818 on 2017/03/27 by Aaron.McLeran
Bringing fix from Odin to Dev-Framework from CL 3304533
Fix for rare condition that stomps memory during source recycling.
Change 3366984 on 2017/03/27 by Michael.Noland
Blueprints: Downgraded a warning in the connection drawing policy to verbose to suppress it. It does no good to a typical user.
#jira UE-41638
Change 3367085 on 2017/03/27 by Brent.Pease
- Improve AudioMixer buffering so that only two buffers are needed instead of three, buffer submission and buffer processing are ovelapped, and a warning is issued if the audio processing thread can not keep up.
- Added time critical thread priority so that audio processing is not starved which would produce clicks and popping
- Allow the audio thread to not be created if a platform implements its own BeginGeneratingAudio() call (as happens on Android)
Change 3367434 on 2017/03/28 by Marc.Audy
Fix UT compile error
Change 3368587 on 2017/03/28 by Mike.Beach
Adding a "CookedOnly" plugin type (now used by the nativized Blueprint plugin).
Change 3368724 on 2017/03/28 by Zak.Middleton
#ue4 - MovementComponent does not ignore initial blocking overlaps when moving from SafeMoveUpdatedComponent(). Set "p.MoveIgnoreFirstBlockingOverlap" back to zero and add a new flag that prevents the depenetration test from generating hit events (to prevent the problem discovered in UE-39387).
#jira UE-41613, UE-28610
Change 3368748 on 2017/03/28 by Dan.Oconnor
Provide &FUObjectThreadContext::Get().ObjLoaded when using the compilation manager, add validation functions for finding REINST/TRASH references
Change 3368852 on 2017/03/28 by Mike.Beach
Fixing a CIS error before it happens - wrapping implementation in preprocessor defines to match declaration in header.
Change 3368873 on 2017/03/28 by Dan.Oconnor
Rather than collecting script object references, just use the ScriptObjectReferences array. This allows reference replacing archives to update ScriptObjectReferences.
Change 3368998 on 2017/03/28 by Dan.Oconnor
Setting CLASS_Interface early in the compilation process
Change 3369494 on 2017/03/29 by Marc.Audy
Fix UAT compile error
Change 3369924 on 2017/03/29 by Zak.Middleton
#ue4 - Allow CharacterMovement AdjustFloorHeight() to adjust using the line trace if in penetration. Force next floor check so it will check after it depenetrates.
#jira UE-36973
Change 3369932 on 2017/03/29 by Ben.Zeigler
#jira UE-19494 Finish asset auditing work by allowing reading back a cooked asset registry in the editor
Split off FAssetRegistryState as the struct to hold serialization and accessors, to allow loading multiple platform states at once.
Optimized runtime asset registry serialization to be around 1/3 as large as before. Dependencies are disabled by default for the runtime registry, you can re-enable with bSerializeDependencies in Engine.ini
Add FAssetPackageData which is explicitly per-package and only updated on save/load time. File size is stored in here and is computed for both editor and cooked data
Add code to AssetManagerEditorModule to allow loading pre-cooked asset registry files and reading cooked sizes. The Asset Audit window now has a platform drop down that allows reading from cooked data
Rename ChunkManifestGenerator to AssetRegistryGenerator and change it to directly hold an FAssetRegistryState internally
Add new experimental AssetRegistry mode for iterative cooking. This mode is much faster as it does not need to do it's own internal dependency checking and it can be enabled with bUseAssetRegistryForIteration
Change it so during cooking it doesn't directly load string asset references, but instead cues them for cook and uses the asset registry to find and add redirector mappings that are used during save time
Change 3370028 on 2017/03/29 by Ben.Zeigler
CIS fix
Change 3370360 on 2017/03/29 by Mike.Beach
Adding an extra field to FPlatformInfo; a 'UBTTarget' identifier intended to sync up with UBT's UnrealTargetPlatform enum (needed for programatically generating plugin platform whitelists).
Change 3370363 on 2017/03/29 by Ben.Zeigler
Fix issue where loading out of date editor asset registry cache would throw pointless errors
Change 3370414 on 2017/03/29 by Marc.Audy
Remove autos
Change 3370428 on 2017/03/29 by Ben.Zeigler
Fix linux CIS issue, remove implicit conversion from FSavePackageResultStruct back to enum result as it was creating ambiguous operators
Change 3370453 on 2017/03/29 by Marc.Audy
CIS fix
Change 3370548 on 2017/03/29 by Marc.Audy
#rn Fix issues with seamless travel in PIE and shared sub levels between different parents.
Change 3370564 on 2017/03/29 by Mieszko.Zielinski
PR #3429: fix comment typo (Contributed by kayama-shift)
Change 3370602 on 2017/03/29 by Mieszko.Zielinski
Fixed FRecastTileGenerator::Modifiers being erroneously counted twice when stating memory #UE4
Change 3370615 on 2017/03/29 by Phillip.Kavan
#jira UE-35515 - No longer crash when creating a new BP class from one or more selected Actors in which the root component is not Blueprint-spawnable.
Change summary:
- Modified FKismetEditorUtilities::AddComponentsToBlueprint() to handle deferred SceneComponent SCS node adds when the parent component was not also added (due to not being BP-spawnable).
Change 3370693 on 2017/03/29 by Michael.Noland
Fixing some bad indentation
#rnx
Change 3370740 on 2017/03/29 by Ben.Zeigler
DLC/Mod Cooking fixes, the list of packages from release build as in uncooked filename format so fixed code and made this more obvious
Fix Asset Registry to allow loading multiple source asset registries into the same state, by keeping a list of preallocated buffers
Change 3370792 on 2017/03/29 by Michael.Noland
Blueprints: Deleted some unversioned backwards compat. code that would only matter for assets older than VER_UE4_OLDEST_LOADABLE_PACKAGE
Change 3370794 on 2017/03/29 by Michael.Noland
PR #3190: Reduce some output logging
- Reduced an Oculus log from Log to Verbose because it spams quite a bit
- Corrected the spelling and the meaning of a blueprint warning when an invalid breakpoint is encountered
- Treat UInputComponent::GetAxisValue(None) as not a warning
- Switch FGenericSaveGameSystem::LoadGame to silently attempt to load the file, it returns success/failure and it isn't necessary to have a separate warning at the file i/o layer
#jira UE-41446
Change 3370831 on 2017/03/29 by Dan.Oconnor
Iteration on compilation manager
- Fix Skeleton class compilation order
- Pass ObjLoaded array to compilation manager to ensure all objects get PostLoaded
- Make sure data only classes get reinstanced, so that UpdateCustomPropertyListForPostConstruction is run correctly
Change 3370923 on 2017/03/29 by Michael.Noland
Blueprints: Added an icon to indicate whether or not a macro contains latent actions
- Note: The state of the icon is cached for performance reasons on request, with the cache being cleared when the BP containing the macro is modified or a macro graph is removed
- This does mean that editing the inner macro of a nested macro to add/remove a latent action will not show up in visualization for the outer node until the editor is restarted or the outer macro is modified
Change 3371039 on 2017/03/29 by Dan.Oconnor
Hacky fix for dropping return params when a function's return node is culled
Change 3371750 on 2017/03/30 by Richard.Hinckley
Stencil write mask exposed. Adds nine new options (all bits, plus each bit individually - write on pass or depth fail). This allows stencil overlaps to be detected by mixing masks.
Change 3372513 on 2017/03/30 by Ben.Zeigler
#jira UE-43475 Fix cooker issues with string asset references to null packages.
Fix redirector detection to follow recursive chains, and correctly strip object class from redirected string asset references.
Change 3372565 on 2017/03/30 by Richard.Hinckley
Rolling back stencil change, will be moved to Dev-Rendering.
Change 3372764 on 2017/03/30 by Marc.Audy
Do not create a duplicate sub object that is not in the annotation if a sub object of the same name and class already exists.
#jira UE-43328
#rn Fixed cases where the blueprint of a class used as a child actor could be dirtied when compiling the owning blueprint.
Change 3372847 on 2017/03/30 by Marc.Audy
Fix missing include
Change 3372994 on 2017/03/30 by Zak.Middleton
#ue4 - Fix build in Debug (checkSlow using incorrect function params).
Change 3373195 on 2017/03/30 by Mike.Beach
For nativization, changing it so we key off of the target platform-info struct instead of the platform (in preparation for defining the nativized plugin's platform whitelist).
Change 3373320 on 2017/03/30 by mason.seay
Basic for TM-Gameplay map (WIP)
Change 3373448 on 2017/03/30 by Ben.Zeigler
Fix recursive size display in audit window
Improve asset manager comments
Change 3373576 on 2017/03/30 by dan.reynolds
AEOverview Update:
Updated Passive Mix Modifier Test based on recent changes in behavior
Also added Initial Delay Time timer to test
Change 3373589 on 2017/03/30 by dan.reynolds
AEOverview Passive Mix Mod Test Map update
Change 3373624 on 2017/03/30 by Zak.Middleton
#ue4 - Increase Pawn location replication precision to 2 decimal places from 0. Prevents replicated pawns from being inside geometry by a large amount. Removed CVars controlling CharacterMovement proxy shrink amount and made those instanced properties on the component.
#jira UE-40420
Change 3374271 on 2017/03/31 by Marc.Audy
Fix deprecation warning in new UT code
Change 3374320 on 2017/03/31 by Marc.Audy
Fix HTML5 compile.
Change 3374413 on 2017/03/31 by Jeff.Farris
Added ENGINE_API to 2 functions in PlanarReflection, so projects can subclass it.
(Copied CL 3276454 from Robo Recall to Dev-Framework)
Change 3374414 on 2017/03/31 by Jeff.Farris
Added support for setting UNavigationSystem::bUpdateNavOctreeOnComponentChange
(Copied CL 3267903 from RoboRecall to Dev-Framework)
Change 3374616 on 2017/03/31 by Ben.Zeigler
Copy of Fortnite CL #3312058 to add a missing redirector. I do not understand why this is not erroring on Main, I guess my minor cook changes somehow exposed this
Change 3374664 on 2017/03/31 by Jeff.Farris
Consted AIController::GetBrainComponent()
(Copied 3239101 from Robo Recall to Dev-Framework)
Change 3374665 on 2017/03/31 by Jeff.Farris
PrimitiveComponent bIgnoreRadialImpulse and bIgnoreRadialForce are now exposed to BPs. bIgnoreRadialImpulse now respected when applying impulse to relevant movement components.
(Coped CL 3242355 from Robo Recall to Dev-Framework)
Change 3374779 on 2017/03/31 by Jeff.Farris
Exposed SetAllPhysicsAngularVelocity to blueprints
(Copied CL 3228390 from Robo Recall to Dev-Framework)
Change 3374792 on 2017/03/31 by Ben.Zeigler
#jira UE-42618
PR #3347: Improve support for FGameplayAttributeData properties in attribute sets (Contributed by hoelzl)
Change 3374844 on 2017/03/31 by Ben.Zeigler
#jira UE-42587 Fix issue where supressed gameplay effects that granted abilities would only work the first time, it now clears out of date ability handles
Change 3374925 on 2017/03/31 by Marc.Audy
Don't throw warning about missing world context for inactive worlds.
#jira UE-42679
Change 3374927 on 2017/03/31 by Michael.Noland
Editor: Added options for configuring the editor window background color and texture, which can be useful to visually distinguish the editor when switching between different branches or projects
Change 3374995 on 2017/03/31 by Michael.Noland
Editor: Rewrote CallInEditor support and promoted it so it can be used on functions in any class, not just blueprints derived from AActor:
- CallInEditor used on native UFUNCTION() declarations will now show up without having to make a BP subclass
- CallInEditor can now be used as a top-level keyword in the UFUNCTION() declaration (e.g., UFUNCTION(Category=CoolCommands, CallInEditor))
- Now shows each function as a separate button, placed in the category associated with the function
- The button strip entry is now searchable by function name or tooltip
- Prevented operating on functions that have parameters or return values, which would crash before
- Removed the duplicate copies of properties placed in the Blutility section
- Added a scoped transaction around CallInEditor execution
- Allowed functions to be marked as CallInEditor in addition to custom events (currently we don't allow editing category or tooltip on custom events...)
Editor: Moved Experimental/EarlyAccessPreview details customizations up to UObject so it can be used on any class, not just actors/components
Upgrade Note: Behavior has changed so that CallInEditor can be called on CDOs as well, this will probably be walked back in a subsequent update, at least for actors and components.
Change 3375005 on 2017/03/31 by Michael.Noland
Fixing incremental compilation error due to missing include
#rnx
Change 3375015 on 2017/03/31 by Michael.Noland
Fixing incremental compilation error due to missing include (for real)
#rnx
Change 3375045 on 2017/03/31 by Marc.Audy
Only calculate the streaming levels prefix during seamless travel if it is a PIE world
#jira UE-43485
Change 3375053 on 2017/03/31 by Ben.Zeigler
#jira UE-41988 Fix it so leaving PIE while gameplay debugger is active will disable HUD extensions properly, restoring ability to print messages to screen
Change 3375057 on 2017/03/31 by Ben.Zeigler
#jira UE-39226 Don't add to DrawDebug list for player controllers with no local player
Change 3375121 on 2017/03/31 by Michael.Noland
Added missing include for FScopedTransaction
#rnx
Change 3375222 on 2017/03/31 by mason.seay
Submitting work done to TM-Gameplay. Still WIP
Change 3375308 on 2017/03/31 by Michael.Noland
Editor: Added back CDO filtering to CallInEditor, it's too easy to explode in the BP editor. May consider allowing opt-in behavior when we revisit Blutilities
Change 3375321 on 2017/03/31 by Ben.Zeigler
#jira UE-39062 Fix issue where using the level editor toolbar to modify blueprints was not properly marking the blueprints as modified, so the constructor links weren't being updated until manually compiling or resaving
Always recompute post constructor links when calling MarkBlueprintAsModified, as it can be called from native and other places where we modified CDOs but don't have a property changed event
Change 3375372 on 2017/03/31 by Ben.Zeigler
#jira UE-39568 Change Components to specifically update LatentActions the same as Actors do, so they update properly if bUpdateWhilePaused is set
Change 3375380 on 2017/03/31 by Marc.Audy
Modify IsMainAudioDevice to deal with the case where no audio device has been created.
Change 3375402 on 2017/03/31 by Marc.Audy
Fix DuplicateWorldForPIE in the case that the OwningWorld is null.
Change 3376037 on 2017/04/02 by Phillip.Kavan
#jira UE-35332 - Preserve the least common ancestor pin type on object array function node inputs after a node refresh.
Change summary:
- Added UK2Node_CallArrayFunction::GetDynamicallyTypedPins() to consolidate the code that retrieves type-dependent parameter pins.
- Added FBlueprintEditorUtils::FindLinkedPinWithAuthoritativePinType() to consolidate the code that considers other linked pins when choosing which type to propagate to type-dependent parameter pins.
- Added FBlueprintEditorUtils::PropagatePinTypeInfo() to consolidate the common code from UK2Node_CallArrayFunction::PropagateArrayTypeInfo(); this eliminated a redundant retrieval of the target pin set.
- Refactored UK2Node_CallArrayFunction::PropagateArrayTypeInfo() to now call FBlueprintEditorUtils::PropagatePinTypeInfo() after retrieving the set of dynamically-typed pins.
- Refactored UK2Node_CallArrayFunction::NotifyPinConnectionListChanged() to remove some unnecessary iteration passes and to ensure that we propagate the authoritative (least common ancestor) pin type for object- and struct-based types.
Change 3376364 on 2017/04/03 by Richard.Hinckley
UE-40920 Fix to Paper2D flipbook timeline editor. Previously, the timeline shown was one frame shorter than the animation. Now, the timeline shows the correct frame count.
Change 3376366 on 2017/04/03 by Richard.Hinckley
UE-40920 Bugfix to Paper2D flipbook editor. The red line indicating the current frame now adjusts properly if the timeline is longer than the editor window and the scroll bar is moved to the right.
Change 3376517 on 2017/04/03 by Marc.Audy
PR #3195: Added support for GamePad on RawInput Plugin (Contributed by katze7514)
#jira UE-41499
Change 3376708 on 2017/04/03 by Mike.Beach
Moving nativized plugins into a centralized folder (so we can use it as an additional plugin lookup dir) - this is so we can ultimately keep the generated code around for debugging purposes.
Summary of changes:
- nativized plugins now moved to ...\Intermediate\Plugins\<PLATFORM>\NativizedAssets
- corresponding manifest files get saved inside the module and named to match the platform
- nativized modules now whitelisted only for the platform they were generated for
- cleanup on how we generate paths (now piping in platform name) and pass multi-cook process ids (for building manifest filenames)
- extending the 'NativizeAssets' command line, so you can use it to specify the target plugin path (utilized by UAT to coordinate the plugin path between cook & build - was previously hardcoded in multiple places).
Change 3376826 on 2017/04/03 by Phillip.Kavan
#jira UE-43330 - Fix a crash when adding an input parameter to a Custom Event node after deleting a Function Graph containing a Create Event node.
Change summary:
- Modified UK2Node_CreateDelegate::HandleAnyChangeWithoutNotifying() to check for a valid blueprint before accessing it (since the accessor is now a checked operation).
- Modified UK2Node_CreateDelegate::GetScopeClass() to also check for a valid blueprint before accessing it.
- Switched 'NULL' to 'nullptr' in a few spots.
Change 3376831 on 2017/04/03 by Ben.Zeigler
#jira UE-43500, clean up UPackage when EDL/async loading fails. This restores EDL LoadPackage to work the same as non EDL and return NULL instead of an invalid empty package
Change 3376846 on 2017/04/03 by Ben.Zeigler
#jira UE-38760 Properly refresh exec pins when removing pin from a Switch on Int node
Change 3376850 on 2017/04/03 by Dan.Oconnor
Use authoritative class to mitigate compilation order issues
Change 3376961 on 2017/04/03 by Ben.Zeigler
#jira UE-43127 Add struct ops implementations for FIntVector and FBox2d, any blueprint type needs struct ops to avoid crashes
Fix Box2d variable name in NoExportTypes
Change 3376985 on 2017/04/03 by Ben.Zeigler
#jira UE-43582 Remove Xbox-specific code from AssetRegistry because it won't work after my refactor. The serialization is much faster now and neither Bob nor I can conceive of a way this would take long enough to stall the main thread. If it it is somehow a problem, it should be wrapped in a slow task instead
Change 3377009 on 2017/04/03 by Ben.Zeigler
#jira UE-43036 Fix crash when right clicking blueprint with no parent class. Ensures are fine but crashes should be avoided so people can try to copy data out of them
Change 3377054 on 2017/04/03 by Zak.Middleton
#ue4 - Fix CharacterMovementComponent updated with very high delta time on server when initially joining. Make sure the ServerTimeStamp is initialized to current world time rather than zero to prevent large delta.
#jira UE-40344
#udn https://udn.unrealengine.com/questions/310497/large-delta-time-for-first-player-movement-update.html
Change 3377061 on 2017/04/03 by Dan.Oconnor
Fixes for issues exposed by cooking with compilation manager. When cooking we end up with more blueprints compiling at a single time, which highlighted issues reading from generated classes while they were actively regenerating.
Note that EInternalCompilerFlags::PostponeLocalsGenerationUntilPhaseTwo has only been added to mitigate risk - there is no known reason that existing compilation flows can't postpone generatation of local variables.
Change 3377073 on 2017/04/03 by Mike.Beach
CIS fix - proper initialization ordering.
Change 3377371 on 2017/04/03 by Ben.Zeigler
#jira UE-43144 Disallow creating map of FText, like bool it is not hashable
Change 3377395 on 2017/04/03 by Dan.Oconnor
Build fix - make order in source match initialization order in artifact
Change 3377417 on 2017/04/03 by Dan.Oconnor
Speculative SA fix
Change 3377496 on 2017/04/03 by Aaron.McLeran
#jira UE-43558 Cleaning up shutdown code with audio plugins.
Change 3377608 on 2017/04/03 by Zak.Middleton
#ue4 - Added function ACharacter::CacheInitialMeshOffset() to cache initial mesh offset, used as the target for network smoothing. Added a call to this function from BeginPlay() in addition to the existing call from PostInitializeComponents(), and exposed this to blueprints as well. This fixes the case of people moving the mesh in BeginPlay rather than in the editor or construction script and not having the mesh offset reflected correctly in network games.
#jira UE-38966
Change 3377880 on 2017/04/03 by Aaron.McLeran
Audio bug fixes
#jira UE-43600 Fixing sounds played by playsoundatlocation for audio volume calculations
#jira UE-43601 Fixing listener volume interpolation
#jida UE-43602 Fixing reverb/eq interpolation
Change 3377908 on 2017/04/03 by Phillip.Kavan
#jira UE-43565 - Fix a regression on type-dependent array function node pins that have more than one link.
Change summary:
- Added FBlueprintEditorUtils::FindLinkedPinWithMostDerivedPinType()
- Modified FBlueprintEditorUtils::FindLinkedPinWithAuthoritativePinType() to properly handle pins that have multiple links.
Change 3377912 on 2017/04/03 by Dan.Oconnor
Fix for missing SUBINSTANCE variables on anim BP skeletons. I elected to force SUBINSTANCE variable creation for the compilation manager codepath
Change 3377946 on 2017/04/03 by Ben.Zeigler
#jira UE-43594 Fix issue with streamable manager where a failed load would leave bAsyncLoadRequestOutstanding, which would confuse later calls to stream the same asset
Lower some error verbosity now that I believe I have tracked down the issue
Change 3377950 on 2017/04/03 by Michael.Noland
Blueprints: Prevent merge tool from crashing in SVN when looking at a file with gaps in the revision history
(May still not work correctly, but it won't crash; full fix covered by UE-43603)
#jira UE-22428
Change 3377981 on 2017/04/03 by Michael.Noland
PR #3416: UE-43005: Prevent crash due to too long name (Contributed by projectgheist)
#jira UE-43291
#jira UE-43005
Change 3378039 on 2017/04/04 by Michael.Noland
PhysX: Allowed the editor to compile when bRuntimePhysicsCooking is disabled (WITH_EDITOR is used in every place in C++ to force it in already)
Change 3378041 on 2017/04/04 by Michael.Noland
Paper2D: Adjusted under what circumstances CreatePhysicsMeshes is called on various Paper2D types to match UProceduralMeshComponent
Change 3378081 on 2017/04/04 by Dan.Oconnor
Fix Blueprint Context nodes so that they don't rely on Ar.IsBeingSaved() call before compilation
3x because of copy/paste
Change 3378094 on 2017/04/04 by Dan.Oconnor
Add missing preload call for compilation manager
Change 3378917 on 2017/04/04 by Marc.Audy
Fix static analysis (which is very dumb)
Change 3378986 on 2017/04/04 by Dan.Oconnor
Fix bad merge
Change 3379100 on 2017/04/04 by Dan.Oconnor
Fix missing CPF_ConstParm/CPF_ReferenceParm/CPF_OutParm logic in 'fast' skeleton path
#jira UE-43629
Change 3379102 on 2017/04/04 by Ben.Zeigler
Actually fix StreamableManager issues with cancelling a request messing up things in the future. We now always queue a request, even if it failed before or there is one in progress. This has to be done to avoid issues with cancelling the existing request or mounting new files after it's failed once
Now that StreamableManager will retry missing files, add failed load packages to the known missing list so it won't spam errors over and over
Change 3379147 on 2017/04/04 by Zak.Middleton
#ue4 - Improve on CL 3377608: Made Character::CacheInitialMeshOffset() take location and rotation params so you can be explicit on the values, in case you try to change these during network smoothing, where reading the relative offsets would have been skewed.
Change 3379254 on 2017/04/04 by Aaron.McLeran
Fixing sounds in audio mixer when no EQ has been set.
Change 3379760 on 2017/04/04 by Ben.Zeigler
#jira UE-43647 Don't delete failed async packages that are rooted
[CL 3380073 by Dan Oconnor in Main branch]
2017-04-04 20:49:52 -04:00
PackageFileSize = Loader - > TotalSize ( ) ;
2016-05-19 19:35:35 -04:00
SetPackageErrorCode ( EOpenPackageResult : : Success ) ;
2014-03-14 14:13:41 -04:00
return true ;
}
2022-03-02 13:04:48 -05:00
bool FPackageReader : : TryGetLongPackageName ( FString & OutLongPackageName ) const
{
if ( ! LongPackageName . IsEmpty ( ) )
{
OutLongPackageName = LongPackageName ;
return true ;
}
else
{
return FPackageName : : TryConvertFilenameToLongPackageName ( PackageFilename , OutLongPackageName ) ;
}
}
2022-03-14 13:20:30 -04:00
FString FPackageReader : : GetLongPackageName ( ) const
{
FString Result ;
verify ( TryGetLongPackageName ( Result ) ) ;
return Result ;
}
2020-06-23 18:40:00 -04:00
bool FPackageReader : : StartSerializeSection ( int64 Offset )
{
check ( Loader ) ;
if ( Offset < = 0 | | Offset > PackageFileSize )
{
return false ;
}
ClearError ( ) ;
Loader - > ClearError ( ) ;
Seek ( Offset ) ;
return ! IsError ( ) ;
}
# define UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING(MessageKey, PackageFileName) \
do \
{ \
FFormatNamedArguments CorruptPackageWarningArguments ; \
CorruptPackageWarningArguments . Add ( TEXT ( " FileName " ) , FText : : FromString ( PackageFileName ) ) ; \
FMessageLog ( " AssetRegistry " ) . Warning ( FText : : Format ( NSLOCTEXT ( " AssetRegistry " , MessageKey , " Cannot read AssetRegistry Data in {FileName}, skipping it. Error: " MessageKey " . " ) , CorruptPackageWarningArguments ) ) ; \
} while ( false )
2014-03-14 14:13:41 -04:00
2022-03-14 13:20:30 -04:00
bool FPackageReader : : ReadAssetRegistryData ( TArray < FAssetData * > & AssetDataList , bool & bOutIsCookedWithoutAssetData )
2014-03-14 14:13:41 -04:00
{
2022-03-14 13:20:30 -04:00
bOutIsCookedWithoutAssetData = false ;
if ( ! ! ( GetPackageFlags ( ) & PKG_FilterEditorOnly ) )
{
return ReadAssetRegistryDataFromCookedPackage ( AssetDataList , bOutIsCookedWithoutAssetData ) ;
}
2020-06-23 18:40:00 -04:00
if ( ! StartSerializeSection ( PackageFileSummary . AssetRegistryDataOffset ) )
2014-03-14 14:13:41 -04:00
{
2022-03-14 13:20:30 -04:00
if ( ! ReadAssetDataFromThumbnailCache ( AssetDataList ) )
{
// Legacy files without AR data and without a thumbnail cache are treated as having no assets
AssetDataList . Reset ( ) ;
}
return true ;
2014-03-14 14:13:41 -04:00
}
// Determine the package name and path
2020-10-09 22:42:26 -04:00
FString PackageName ;
2022-03-02 13:04:48 -05:00
if ( ! TryGetLongPackageName ( PackageName ) )
2020-10-09 22:42:26 -04:00
{
// Path was possibly unmounted
return false ;
}
2014-03-14 14:13:41 -04:00
2020-09-24 00:43:27 -04:00
using namespace UE : : AssetRegistry ;
2014-03-14 14:13:41 -04:00
2020-09-24 00:43:27 -04:00
EReadPackageDataMainErrorCode ErrorCode ;
if ( ! ReadPackageDataMain ( * this , PackageName , PackageFileSummary , AssetRegistryDependencyDataOffset , AssetDataList , ErrorCode ) )
2020-06-23 18:40:00 -04:00
{
2020-09-24 00:43:27 -04:00
switch ( ErrorCode )
{
case EReadPackageDataMainErrorCode : : InvalidObjectCount :
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " EReadPackageDataMainErrorCode::InvalidObjectCount " , PackageFilename ) ;
break ;
case EReadPackageDataMainErrorCode : : InvalidTagCount :
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " EReadPackageDataMainErrorCode::InvalidTagCount " , PackageFilename ) ;
break ;
case EReadPackageDataMainErrorCode : : InvalidTag :
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " EReadPackageDataMainErrorCode::InvalidTag " , PackageFilename ) ;
break ;
default :
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " EReadPackageDataMainErrorCode::Unknown " , PackageFilename ) ;
break ;
}
2020-06-23 18:40:00 -04:00
return false ;
}
2014-03-14 14:13:41 -04:00
2020-09-24 00:43:27 -04:00
return true ;
}
2022-03-31 09:16:55 -04:00
bool FPackageReader : : SerializeAssetRegistryDependencyData ( TBitArray < > & OutImportUsedInGame , TBitArray < > & OutSoftPackageUsedInGame ,
const TArray < FObjectImport > & ImportMap , const TArray < FName > & SoftPackageReferenceList )
2020-09-24 00:43:27 -04:00
{
if ( AssetRegistryDependencyDataOffset = = INDEX_NONE )
2014-08-21 20:30:51 -04:00
{
2020-09-24 00:43:27 -04:00
// For old package versions that did not write out the dependency flags, set default values of the flags
2022-03-31 09:16:55 -04:00
OutImportUsedInGame . Init ( true , ImportMap . Num ( ) ) ;
OutSoftPackageUsedInGame . Init ( true , SoftPackageReferenceList . Num ( ) ) ;
2020-09-24 00:43:27 -04:00
return true ;
2014-08-21 20:30:51 -04:00
}
2020-09-24 00:43:27 -04:00
if ( ! StartSerializeSection ( AssetRegistryDependencyDataOffset ) )
2014-03-14 14:13:41 -04:00
{
2020-09-24 00:43:27 -04:00
return false ;
2014-03-14 14:13:41 -04:00
}
2022-03-31 09:16:55 -04:00
if ( ! UE : : AssetRegistry : : ReadPackageDataDependencies ( * this , OutImportUsedInGame , OutSoftPackageUsedInGame ) | |
OutImportUsedInGame . Num ( ) ! = ImportMap . Num ( ) | |
OutSoftPackageUsedInGame . Num ( ) ! = SoftPackageReferenceList . Num ( ) )
2020-09-24 00:43:27 -04:00
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeAssetRegistryDependencyData " , PackageFilename ) ;
return false ;
}
2014-03-14 14:13:41 -04:00
return true ;
}
2022-03-14 13:20:30 -04:00
bool FPackageReader : : SerializePackageTrailer ( FAssetPackageData & PackageData )
2022-02-11 08:04:32 -05:00
{
2022-03-14 13:20:30 -04:00
if ( ! StartSerializeSection ( PackageFileSummary . PayloadTocOffset ) )
2022-02-11 08:04:32 -05:00
{
2022-03-14 13:20:30 -04:00
PackageData . SetHasVirtualizedPayloads ( false ) ;
return true ;
2022-02-11 08:04:32 -05:00
}
2022-03-14 13:20:30 -04:00
UE : : FPackageTrailer Trailer ;
if ( ! Trailer . TryLoad ( * this ) )
{
// This is not necessarily corrupt; TryLoad will return false if the trailer is empty
PackageData . SetHasVirtualizedPayloads ( false ) ;
return true ;
}
2022-02-11 08:04:32 -05:00
2022-05-17 07:54:28 -04:00
PackageData . SetHasVirtualizedPayloads ( Trailer . GetNumPayloads ( UE : : EPayloadStorageType : : Virtualized ) > 0 ) ;
2022-02-11 08:04:32 -05:00
return true ;
}
2015-08-21 14:21:07 -04:00
bool FPackageReader : : ReadAssetDataFromThumbnailCache ( TArray < FAssetData * > & AssetDataList )
2014-03-14 14:13:41 -04:00
{
2020-06-23 18:40:00 -04:00
if ( ! StartSerializeSection ( PackageFileSummary . ThumbnailTableOffset ) )
2014-03-14 14:13:41 -04:00
{
return false ;
}
// Determine the package name and path
2021-11-22 08:01:32 -05:00
FString PackageName ;
2022-03-02 13:04:48 -05:00
if ( ! TryGetLongPackageName ( PackageName ) )
2021-11-22 08:01:32 -05:00
{
return false ;
}
2014-03-14 14:13:41 -04:00
FString PackagePath = FPackageName : : GetLongPackagePath ( PackageName ) ;
// Load the thumbnail count
int32 ObjectCount = 0 ;
* this < < ObjectCount ;
2020-06-23 18:40:00 -04:00
const int32 MinBytesPerObject = 1 ;
if ( IsError ( ) | | ObjectCount < 0 | | PackageFileSize < Tell ( ) + ObjectCount * MinBytesPerObject )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " ReadAssetDataFromThumbnailCacheInvalidObjectCount " , PackageFilename ) ;
return false ;
}
2014-03-14 14:13:41 -04:00
// Iterate over every thumbnail entry and harvest the objects classnames
for ( int32 ObjectIdx = 0 ; ObjectIdx < ObjectCount ; + + ObjectIdx )
{
// Serialize the classname
FString AssetClassName ;
* this < < AssetClassName ;
// Serialize the object path.
FString ObjectPathWithoutPackageName ;
* this < < ObjectPathWithoutPackageName ;
// Serialize the rest of the data to get at the next object
int32 FileOffset = 0 ;
* this < < FileOffset ;
2020-06-23 18:40:00 -04:00
if ( IsError ( ) )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " ReadAssetDataFromThumbnailCacheInvalidObject " , PackageFilename ) ;
return false ;
}
2014-03-14 14:13:41 -04:00
FString GroupNames ;
FString AssetName ;
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3431384)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3252833 on 2017/01/10 by Ori.Cohen
Refactor constraint so that it can be used for external solvers. (Copying //Tasks/UE4/Dev-ImmediateModePhysics to Dev-Framework (//UE4/Dev-Framework))
Change 3256288 on 2017/01/12 by Ori.Cohen
Undo constraint refactor as we found a way around it and it made the code much harder to read/debug
Change 3373195 on 2017/03/30 by Mike.Beach
For nativization, changing it so we key off of the target platform-info struct instead of the platform (in preparation for defining the nativized plugin's platform whitelist).
Change 3381178 on 2017/04/05 by Dan.Oconnor
Make sure we don't inherit the NATIVE func flag when generating skeleton functions, also make sure all bojects outer'd to the skeleton class are marked transient
#jira UE-43616
Change 3381532 on 2017/04/05 by Marc.Audy
(4.16) Fix various cases where built lighting on child actors could be lost when loading a level
#jira UE-43553
Change 3381586 on 2017/04/05 by Mike.Beach
Now generating TArrayCaster conversions for nativized UClass arrays that need it (to handle different TSubclassOf arrays).
#jira UE-42676, UE-43257
Change 3381682 on 2017/04/05 by mason.seay
Some more changes to test map
Change 3381844 on 2017/04/05 by Dan.Oconnor
Match existing logic for CPF_ReturnParm/CPF_OutParm. Fixes compilation error in BP_TurbineBlades when using compilation manager
Change 3382054 on 2017/04/05 by Zak.Middleton
#ue4 - Optimize CharacterMovementComponent::GetPredictionData_Client_Character() and GetPredictionData_Server_Character() to remove virtual calls.
#jira UE-30998
Change 3382703 on 2017/04/06 by Lukasz.Furman
fixed missing links between navmesh polys when there are more than 4 neighbor connections
#jira UE-43524
Change 3383357 on 2017/04/06 by Marc.Audy
(4.16) Make SetHiddenInGame propagate consistently with SetVisibility
#jira UE-43709
Change 3383359 on 2017/04/06 by Dan.Oconnor
Fix last errant SKEL reference when cooking Odin
Change 3383591 on 2017/04/06 by Mike.Beach
Prevent users from setting object variables as 'config' properties (disallowed by UHT). This prevents some errors that could happen later when users nativize the Blueprint.
#jira UE-42085
Change 3384762 on 2017/04/07 by Zak.Middleton
#ue4 - Fix SpringArmComponent not restoring relative transform when bUsePawnControlRotation is turned off. Fixes the editor interaction ignoring transform of the component in the viewport after bUsePawnControlRotation is toggled on then off, since by then the world transform had been overwritten (from tick in editor) and nothing would drive transform changes from the editable value.
Toggling bUsePawnControlRotation off at runtime now restores the rotation to the initial relative rotation, not stomping it with the current pawn rotation, allowing toggling between the editable/desired base rotation and the control rotation.
#jira UE-24850
Change 3384948 on 2017/04/07 by Dan.Oconnor
Prevent GForceDisableBlueprintCompileOnLoad from causing all sorts of badness when dependencies are loaded as part of a Diff operation. Instead of setting a global flag we flag the package as LOAD_DisableCompileOnLoad
Change 3385267 on 2017/04/07 by Michael.Noland
Graph Editing: Pushed some node diffing code down from UAIGraphNode into UEdGraphNode so nodes with details panel properties will diff correctly (e.g., various animation nodes and BP switch nodes)
#jira UE-21724
Change 3385473 on 2017/04/07 by Phillip.Kavan
#jira UE-43067 - Fix broken pin wires after an Expand Node operation, along with some misc. cleanup.
Change summary:
- Fixed to use correct string for "Expand Node" transaction name.
- Modified FBlueprintEditor::OnExpandNodes() to consolidate some redundant code.
- Fixed to generate a unique node GUID for cases where the source graph is not removed after expansion.
Change 3385583 on 2017/04/07 by Dan.Oconnor
Handle CreatePropertyOnScope nullptr return values (happens for structs missing a struct property)
#jira UE-43746
Change 3386581 on 2017/04/10 by Michael.Noland
Blueprints: Further hardening FBlueprintActionInfo::GetOwnerClass()
#jira UE-43824
Change 3386615 on 2017/04/10 by Marc.Audy
Instanced properties can now properly be set on a per-instance basis in blueprint added components.
#jira UE-42066
Change 3387000 on 2017/04/10 by Marc.Audy
Fix includes for CIS
Change 3387229 on 2017/04/10 by mason.seay
More changes to TM-Gameplay
Added Save Game test (with blueprint)
Tick Interval test (with blueprint)
BP logic cleanup
Level organization
Change 3388437 on 2017/04/11 by Mike.Beach
Adding support for map/set literals in the backend (so you can use set nodes for structs containing sets/maps, without having to connect a RHS input - resets to struct defaults).
#jira UE-42617
Change 3388532 on 2017/04/11 by mason.seay
Submitting latest changes for crash repro
Change 3389026 on 2017/04/11 by Ben.Zeigler
Performance and bug fixes for incremetal cooking with asset registry, duplicate of several changes made on //Fortnite/Main
Fix it so AssetRegistry.ScanPathsAndFilesSynchronous won't scan subdirectories inside already scanned directories, this cuts down on the number of cache files
Fix 2 second stall when shutting down AssetSourceFilenameCache if it had never been previously created
Change 3389163 on 2017/04/11 by Ben.Zeigler
#jira UE-42922 Fix it so connecting function input node output pins does not clear default value, we only want to clear the value when connecting an input pin. Properly testing this fix depends on UE-43883
Change 3389205 on 2017/04/11 by Marc.Audy
Protect against a handful of GEditor usages that can now be hit in standalone
Change 3389220 on 2017/04/11 by Marc.Audy
Don't borrow ClassWithin to masquerade as ParentClass during compilation and instead just set the super struct immediately
Change 3389222 on 2017/04/11 by Michael.Noland
Framework: Adding a cvar (t.TickComponentLatentActionsWithTheComponent) to allow users to revert to the old behavior on when component latent actions tick
- Non-zero values behave the same way as actors do, ticking pending latent action when the component ticks, instead of later on in the frame (default behavior in 4.16 and beyond)
- Prior to 4.16, components behaved as if the value were 0, which meant their latent actions behaved differently to actors
This CVar will be removed in a future version, defaulting to on
#jira UE-43661
Change 3389276 on 2017/04/11 by Marc.Audy
Spelling fix and NULL to nullptr
Change 3389303 on 2017/04/11 by Mieszko.Zielinski
Made sure AIController::Posses doesn't get called when compiling Pawn BP #UE4
#jira UE-43873
Change 3390215 on 2017/04/12 by mason.seay
Removed some tests, will need further review
Change 3390638 on 2017/04/12 by Mike.Beach
Generalizing the omission of the CoerceProperty (in EmitTerm) - previously we were only omitting properties for our custom array lib. For wildcards, a coerce property should not be used as its type will not match.
NOTE: There is a slight behavior change in UEdGraphSchema_K2::ConvertPropertyToPinType(), as it will return 'wildcard' for params marked as 'ArrayTypeDependentParams' (previously would have returned 'int').
#jira UE-42747
Change 3390774 on 2017/04/12 by Ben.Zeigler
#jira UE-43911 Fix several issues with saving a runtime asset registry containing redirectors that caused crashes in cook on the fly. Don't resolve redirectors on incoming links because it will make a circular link, and fix an issue where chained redirectors would break the for loop iteration and return a bad dependency
Fix it so the asset registry written out at the beginning of CookOnTheFly uses the registry generator, otherwise it will include all of the stripped editor only tags
Change 3390778 on 2017/04/12 by Ben.Zeigler
Fix UCookOnTheFlyServer::CollectFilesToCook to check for initial unsolicited packages up front. This is required in iterative mode because it may skip cooking all explicit packages and thus miss a new startup loaded package
Change 3390782 on 2017/04/12 by Ben.Zeigler
Change RunProjectCommand to not imply -nomcp, and allow reading -clientcmdline to override setting the map parameter to 127.0.0.1 by default
Fix RunProjectCommand to remove ios-specific checks to not pass weird platform parameters, and instead never pass them
Fix PS4Platform to pass along command line when calling build cook run, args needs to be the last parameter so explicitly set -target=
Change 3390859 on 2017/04/12 by Mike.Beach
T3D class fields now export with the class's fully qualified path name (to avoid abiguity). Since we can have multiple classes with the same name (Blueprints in different folders), we have to use the class's fully qualified object path.
#jira UE-28048
Change 3390914 on 2017/04/12 by Lukasz.Furman
fixed missing navlink component's transform in exported navigation data
#jira UE-43688
Change 3391122 on 2017/04/12 by Ben.Zeigler
Add new PreloadPrimaryAssets call to AssetManager that stream the desired assets without modifying the official load/unload state. This is useful if you want to preload things in case the might be used in the future, and it also supports recursion
Fix crash calling GetAssetDataForPath with null path
Change 3391494 on 2017/04/12 by Dan.Oconnor
Fix bad references in deep object (widget) hierarchies
#jira UE-43802
Change 3391529 on 2017/04/12 by Dan.Oconnor
Fix log spam, accidently submitted
#rnx
Change 3391756 on 2017/04/12 by Dan.Oconnor
LinkExternalDependencies needs to be performed before we RefreshVariables
#jira UE-43843
Change 3392542 on 2017/04/13 by Marc.Audy
Ensure that initialized actors get cleaned up when removed from world even if that world hasn't begun play.
#jira UE-43879
Change 3392746 on 2017/04/13 by Marc.Audy
(4.16) When duplicating a blueprint node, correctly make the new node a sibling of the duplicated node, not a child of it (unless duplicating the root component).
Also resets scale of a duplicated root component to 1 to avoid a squaring of the scale for that component.
#jira UE-40218
#jira UE-42086
Change 3393253 on 2017/04/13 by Dan.Oconnor
Make sure calculated meta data is correctly set on functions generated by the compilation manager (SKEL_ class functions)
#jira UE-43883
Change 3393509 on 2017/04/13 by Mike.Beach
Removing hack'ish ResetLoaders() call that was causing undesired side-effects (resetting of a loaded package that other objects were relying on). This was originally intended to release file handles so separate editor processes could make updates and save the file (from CL 1712376). Using ResetLoaders() for this is bad though, as it has too many side effects. Instead we have to wait for GC to run. This also makes sure that GC should run as intended as the CookOnTheFly sever is idling.
#jira UE-37284
Change 3394350 on 2017/04/14 by Michael.Noland
Core: Making FDateTime and FTimespan actually reflected, so they get duplicated properly in CopyPropertiesForUnrelatedObjects, etc...
#jira UE-39921
Change 3395985 on 2017/04/17 by Phillip.Kavan
#jira UE-38280 - Fix invalid custom type selections on member fields in the User-Defined Structure Editor after a reload.
Change summary:
- Ensure that the 'SubCategoryObject' member in a UDS variable descriptor has been loaded when converting to an FEdGraphPinType.
Change 3396152 on 2017/04/17 by Marc.Audy
TickableGameObjects that have IsTickableInEditor false should not tick in the editor
#jira UE-40421
Change 3396279 on 2017/04/17 by Phillip.Kavan
#jira UE-43968 - Fix failed validation of bitmask enum types when serializing bitmask literal nodes.
Change 3396299 on 2017/04/17 by Dan.Oconnor
Fix resintancing issues exposed by running TM-Gameplay with -game. We cannot reinstance actors in levels on load because the scene is not created.
#jira UE-43859
Change 3396712 on 2017/04/17 by Marc.Audy
Call PostLoad on subobjects before copying for unrelated properties to avoid cases where an out of date object patched over in the linker has not been brought up to date
#jira UE-38234
Change 3396718 on 2017/04/17 by Mike.Beach
Adding a search bar to the components tree for Blueprints.
#epicfriday
#jira UE-17620
Change 3396999 on 2017/04/17 by Mike.Beach
In generated code, call event '_Implementation' functions directly for interface functions being invoked on self (avoids a UHT runtime error).
#jira UE-44018
Change 3397700 on 2017/04/18 by Marc.Audy
UT struct BlueprintType fixups
Change 3397701 on 2017/04/18 by Marc.Audy
Odin struct BlueprintType fixups
Change 3397703 on 2017/04/18 by Marc.Audy
Ocean struct BlueprintType fixups
Change 3397704 on 2017/04/18 by Marc.Audy
WEX struct BlueprintType fixups
Change 3397705 on 2017/04/18 by Marc.Audy
Additional UT blueprint type struct fixups
Change 3397706 on 2017/04/18 by Marc.Audy
Fortnite struct BlueprintType fixups
Change 3397708 on 2017/04/18 by Marc.Audy
Fixup Engine BlueprintType markup of structs
Change 3397709 on 2017/04/18 by Marc.Audy
Sample Game struct BlueprintType fixups
Change 3397711 on 2017/04/18 by Marc.Audy
Mark AnimNodes as BlueprintType and BlueprintInternalUseOnly
Change 3397712 on 2017/04/18 by Marc.Audy
Paragon struct BlueprintType fixups
Change 3397735 on 2017/04/18 by Marc.Audy
Definition pieces of BlueprintInternalUseOnly to fix UHT errors with structs already marked to use it
Change 3397912 on 2017/04/18 by Mike.Beach
Fix for CIS warnings about shadowed variables (fallout from CL 3396718).
Change 3398455 on 2017/04/18 by Marc.Audy
Make less critical errors log an error rather than immediately throwing allowing multiple errors to be reported in the same compile
Change 3398491 on 2017/04/18 by Marc.Audy
BPRW/BPRO in a non-BlueprintType is now a UHT error
Change 3398539 on 2017/04/18 by Marc.Audy
Fixup live link struct markups
Change 3399412 on 2017/04/19 by Marc.Audy
Fix Match3 blueprint type struct markups
Change 3399509 on 2017/04/19 by Phillip.Kavan
#jira UE-38574 - Fix AnimBlueprint function graphs marked as 'const' to treat 'self' as read-only when compiling.
Change summary:
- Modified FKismetCompilerContext::ProcessOneFunctionGraph() to use the function graph schema rather than the compiler context schema for both the function context's schema as well as testing the function for 'const'-ness. For AnimBPs, the compiler context and the function graph context can differ, so we need to make sure we are using the right one when making queries for a specific function context during compilation.
- Minor cleanup: changed the function context schema to be 'const' in order to be consistent with the function graph GetSchema() API's result. Added a few 'const' qualifiers where needed to match.
- Added a new object version in order to avoid breaking compilation of existing AnimBP function graphs that may already be violating the 'const' rule (this is the same thing that was done when 'const' was first added to "normal" BP function graphs). Just as with normal function graphs in place before the addition, a warning will be generated for existing AnimBP function graphs if they violate 'const' correctness, and an error will be generated for all new ones.
Change 3399749 on 2017/04/19 by Mike.Beach
Hiding the Nativized Blueprints plugin from the in-editor browser (prevent users from disabling it).
Change 3399774 on 2017/04/19 by Marc.Audy
ConditionalPostLoad is already called on StaticMesh earlier in the function
#rnx
Change 3400313 on 2017/04/19 by Mike.Beach
Mirroring CL 3398673 from 4.16
Now, with ICWYU, making sure that the coresponding header gets included first in nativized Blueprint files (else we get a UHT error). Had to fixup some ShooterGame specific files as a result (they had missing includes and forward declarations).
#jira UE-44124
Change 3400328 on 2017/04/19 by Mike.Beach
Missing file from mirrored change (CL 3400313 - mirroring CL 3398673 from 4.16)
#jira UE-44124
Change 3400415 on 2017/04/19 by Chad.Garyet
adding physx switch build to framework
Change 3400514 on 2017/04/19 by Mike.Beach
Back out changelist 3400313 / 3400328 (mirrored from CL 3398673 in 4.16), as it was producing "include PCH first" errors. Likely, CL 3398673 was a fix for a 4.16 specific change, altering the expected include order. We'll have to wait for this one to be integrated back.
Change 3400552 on 2017/04/19 by Marc.Audy
Undo the calling of post load prior to the CPFUO as dependent objects may not yet be loaded. Instead copy the need load flag to the new CDO subobject, similarly to how the top level CDO object copies its flags over.
#jira UE-44150
Change 3400815 on 2017/04/19 by Marc.Audy
Spelling fix (part of PR #3490)
#rnx
Change 3400918 on 2017/04/19 by Marc.Audy
Partial pull of PR #3490: Improved remapping game controls support (Contributed by projectgheist)
This portion brings in the exposure of the bindings to blueprint
#jira UE-44122
Change 3401550 on 2017/04/20 by Marc.Audy
fix kitedemo blueprint type markup
#rnx
Change 3401702 on 2017/04/20 by Mike.Beach
Make it so plugins added to a project through the .uproject's 'AdditionalPluginDirectories' list get folded into the generated code project (for visual studio, etc.).
Change 3401720 on 2017/04/20 by Mike.Beach
Add white and black lists for target type (game, client, server, etc.) to plugin module descriptors.
Change 3401725 on 2017/04/20 by Mike.Beach
Whitelisting the nativized Blueprint plugin for only the targets it was built for (game, server, or client).
Change 3401800 on 2017/04/20 by Ben.Zeigler
Add Algo::BinarySearch, LowerBound, and UpperBound. These are setup to allow binary searching a presorted array, and allow for specifying projection and sort predicates. Convert some engine code to use it
Add TSortedMap, which is a map data structure that has the same API as TMap, but is backed by a sorted array. It uses half the memory and performance is faster below n=10
Add FName::CompareIndexes so a SortedMap with FNames can be used without doing very slow string compares, and FNameSortIndexes predicate to sort by it
Add code to Algo and Container tests. Split up container tests so the new ones aren't run in smoketest as they are a bit slow
Add RemoveCurrent and SetToEnd to ArrayIterator
Change 3401849 on 2017/04/20 by Marc.Audy
Partial pull of PR #3490: Improved remapping game controls support (Contributed by projectgheist)
This portion brings bug fixes and improvements to InputKeySelector UMG widgets.
#jira UE-44122
Change 3402088 on 2017/04/20 by Marc.Audy
Focus the search box when expanding the map value type
#jira UE-44211
Change 3402251 on 2017/04/20 by Ben.Zeigler
Fix issue where SortedMap needs to be resorted after serialization, because the sorting may have changed from when it was saved out
Change 3402335 on 2017/04/20 by Ben.Zeigler
Significant changes to FAssetData serialization and memory, cuts memory significantly but will break code that was using some of the internal API that was not properly hidden before
Both Editor and Runtime cache now use the same FAssetRegistryVersion, which is now registered as a custom version
Rename FAssetData and FAssetPackage operator<< to SerializeForCache to make it clear that it isn't safe to use for general serialization
Remove GroupNames from FAssetData, it has not been useful since the UE4 package structure changed around 4.0
Rename generic-sounding but not actually generic SharedMapView class to AssetDataTagMapSharedView to indicate what it is actually used for
Change TagsAndValues to use a new array-backed TSortedMap as the base structure instead of a hash map. Also, it only allocates the map on demand, which saves significant memory at runtime as many packages have no tags
Add bFilterAssetDataWithNoTags to [AssetRegistry] ini section, if set it will only save cooked asset data if it has tags, off by default but saves significant memory if your whitelist is set up properly
Fix issue where asset registry tags updated by loading assets during cook were not being reflected in the cooked registry
Add AssetRegistry::GetAllocatedSize and add to MemReport output
Change 3402457 on 2017/04/20 by Ben.Zeigler
Enable asset registry iteration and stripping unused asset data in Fortnite. Registry iteration is already on in //Fortnite/Main, stripping is a new feature I want to test
Change 3402498 on 2017/04/20 by Ben.Zeigler
CIS fix. Why did this compile locally?
Change 3402537 on 2017/04/20 by Ben.Zeigler
Remove ensure for making AssetData for subobjects, the editor does this for thumbnail creation in some cases
Change 3402600 on 2017/04/20 by Ben.Zeigler
Add bShouldGuessTypeAndNameInEditor to manager settings, can be set false for games where type cannot be safely implied and content must be resaved
Fix up some bool setting code inside asset manager, and fix const correctness and for iterator issues
AssetManager can now discover any BlueprintCore type when bHasBlueprintClasses=true
Add AssetManager.DumpAssetRegistryInfo to output detailed asset registry usage stats
Add Primary Name to asset audit window by default
Change 3403556 on 2017/04/21 by Marc.Audy
Fix Orion input key selector override class
#rnx
Change 3404090 on 2017/04/21 by mason.seay
Applying Forcefeedback to test map
Change 3404093 on 2017/04/21 by mason.seay
Changing text in level
Change 3404139 on 2017/04/21 by mason.seay
Added Force Feedback test and made some tweaks.
Change 3404146 on 2017/04/21 by mason.seay
Added source reference to Instanced Variable test
Change 3404154 on 2017/04/21 by mason.seay
More minor tweaks
Change 3404155 on 2017/04/21 by Marc.Audy
Remove auto
#rnx
Change 3404188 on 2017/04/21 by Marc.Audy
Fixed crash changing variable type when any type other than map
#jira UE-44249
#rnx
Change 3404463 on 2017/04/21 by Ben.Zeigler
Fix asset data code to not ensure when loading an object with invalid exports, and instead print warning with name of package that needs to be resaved
Resave a map that had a redirector from a DIFFERENT package saved in it's exports. I do not understand how this happened, but it appears to be related to the lightmap BuiltData transition when old maps are opened
Change 3404465 on 2017/04/21 by Ben.Zeigler
Fix issue with trying to load editor-only asset classes in a cooked build
Fix issues with renaming or changing template Ids of assets from the editor
Always print the Duplicate Asset ID error, as if you have more than one the ensuremsg only goes off once
Change 3404481 on 2017/04/21 by Dan.Oconnor
Remove unneeded walk up hierarchy - prevent stale entries in action database if we compile a BP but don't compile its children
Change 3404510 on 2017/04/21 by Phillip.Kavan
#jira UE-35727 - Collapsed graphs containing a local variable node will no longer cause a compile error when the parent graph is renamed.
Change 3404590 on 2017/04/21 by Michael.Noland
Editor: Fixed incorrect filtering of abstract/deprecated UDeveloperSettings and UContentBrowserFrontEndFilterExtension classes caused by a typo (HasAnyCastFlags versus HasAnyClassFlags)
Change 3404593 on 2017/04/21 by Marc.Audy
Fixed another crash to do with input pin secondary combo box
#jira UE-44269
#rnx
Change 3404600 on 2017/04/21 by Michael.Noland
Core: Allow UE_GC_TRACK_OBJ_AVAILABLE to be set externally
#rnx
Change 3404602 on 2017/04/21 by Michael.Noland
Engine: Switched from an include to a forward declaration of SWidget in UDeveloperSettings to keep it slim
#rnx
Change 3404608 on 2017/04/21 by Michael.Noland
Core: Marked TNumericLimits as constexpr so they can be used in static asserts
Change 3404659 on 2017/04/21 by Michael.Noland
Engine: Adding includes back to two UDeveloperSettings subclasses
Change 3405289 on 2017/04/24 by Marc.Audy
Remove auto
#rnx
Change 3405446 on 2017/04/24 by Marc.Audy
Fix Win32 unsigned compile issue
Change 3405512 on 2017/04/24 by Mike.Beach
Piping through NativizationOptions to filename generation (so we're able to gen different files names per target: client vs. server).
Change 3406080 on 2017/04/24 by Ben.Zeigler
Deprecate UEngine::OnPostEngineInit and move to FCoreDelegates, clean up comments for the initialization delegates
Call OnPostEngineInit from commandlet initialization as well as normal execution. I thought about making a wrapper function, but the commandlet calls EditorInit directly so it wouldn't work
Bind delegate to refresh the AssetRegistry native class hierarchy after engine init so it picks up game/plugin classes. Undo ini change that was required to hack around this
Change 3406381 on 2017/04/24 by Ben.Zeigler
#jira UE-23768 Enable Run Physics With No Controller for montage test pawn. The montage pawn has no controller so wasn't correctly running physics when the root motion stopped. This flag needs to be set to allow it to correctly stop after the montage is over
Change 3406438 on 2017/04/24 by Ben.Zeigler
Fix deprecation warning
Change 3406519 on 2017/04/24 by Phillip.Kavan
#jira UE-43612 - Suppress array "Get" node fixup notifications on load when the BP Compilation Manager is enabled.
Change summary:
- Wrapped BPCM calls to FBlueprintEditorUtils::ReconstructAllNodes() and ReplaceDeprecatedNodes() duirng compile-on-load with bIsRegeneratingOnLoad = true. This matches the BP's state during compile-on-load when the BPCM is not enabled.
Change 3406565 on 2017/04/24 by Dan.Oconnor
Make sure all interface functions are added to skeleton
#jira UE-44152
Change 3407489 on 2017/04/25 by Ben.Zeigler
#jira UE-44317 Fix game-only TickableGameObjects to correctly tick in PIE
Change 3407558 on 2017/04/25 by Ben.Zeigler
Fix Fortnite cook warnings, issue had to do with the CDO being registered as a Primary Asset in conflict with the Class being registered
Fix issue with renaming a BP primary asset not finding the old name
Change 3407701 on 2017/04/25 by Dan.Oconnor
Remove unneeded null check, static analysis doen't like the inconsistency
Change 3407995 on 2017/04/25 by Marc.Audy
Fixed maps and sets not working correctly with split pin.
#jira UE-43857
Change 3408124 on 2017/04/25 by Ben.Zeigler
#jira UE-39586 Change it so the blueprint String/Name/Object to Text node creates culture invariant text, and also have them show as an expanded node with a comment explaining this
Fix Transform to actually return in the format specified in the comment, and fix comments on many text conversions
Change 3408134 on 2017/04/25 by Marc.Audy
Graph pin container type now represented by an enumeration (EPinContainerType) rather than 3 "independent" booleans.
FEdGraphPinType constructor, UEdGraphNode::CreatePin, and FKismetCompilerContext::SpawnInternalVariable that took 3 booleans deprecated and replaced with a version that takes EPinContainerType.
UEdGraphNode::CreatePin parameters reorganized so that PinName is before ContainerType and bIsReference, which default to None and false respectively
Change 3408256 on 2017/04/25 by Michael.Noland
Core: Changed UClass::ClassFlags to be of type EClassFlags for improved type safety
Change 3408282 on 2017/04/25 by Marc.Audy
(4.16) Fix incorrect positioning of instance components after duplication
#jira UE-44314
Change 3408404 on 2017/04/25 by Mike.Beach
Adding and removing the nativized plugin to/from the project when we alter the packaging nativization setting (so it gets picked up by project generation).
Change 3408445 on 2017/04/25 by Marc.Audy
Fix up missed deprecation cases
#rnx
Change 3409354 on 2017/04/26 by Marc.Audy
Fix Linux CIS failure
#rnx
Change 3409487 on 2017/04/26 by Marc.Audy
When dragging assets in to the SCS create them as siblings, not nested
#jira UE-43041
Change 3409776 on 2017/04/26 by Ben.Zeigler
#jira UE-44401 Fix issue with cooking a map containing a reparented component. In that case the child component may think it's not editor only, but it's archetype is editor only. This is not allowed in EDL, so now the child is marked as editor only as well
Change 3410168 on 2017/04/26 by Dan.Oconnor
Avoid calling virtual functions in the middle of compile
#jira UE-44243
Change 3410252 on 2017/04/26 by Lukasz.Furman
adjusted WITH_GAMEPLAY_DEBUGGER checks after IWYU changes
#ue4
Change 3410385 on 2017/04/26 by Marc.Audy
ChildActorComponent SetClass no longer fails when setting at runtime.
#jira UE-43356
Change 3410466 on 2017/04/26 by Michael.Noland
Core: Ensuring EClassFlags is 32 bit in a different way (underlying type of the enum is coming out signed even though all members are unsigned, long term fix is probably to move it to an enum class)
#rnx
Change 3410476 on 2017/04/26 by Michael.Noland
Automation: Deleting some commented out methods
#rnx
Change 3411070 on 2017/04/27 by Marc.Audy
Properly complete deprecation of old attachment API
Change 3411338 on 2017/04/27 by mason.seay
Map for Latent Action Tick Bug
Change 3411637 on 2017/04/27 by Ben.Zeigler
Back out CL #3381532 as it was causing crashes when adding new variables to blueprints, as the transaction array was being recursively modified while it was being added to
Change 3412052 on 2017/04/27 by mason.seay
Updated jump test map and pawn
Change 3412231 on 2017/04/27 by Ben.Zeigler
Fix issue where running SearchAllAssets multiple times after mounting new paths would throw away the asset registry cache, which slowed down incremental cooking substantially because the cooker mounts the autosave folder
Duplicate of CL #3411860
Change 3412233 on 2017/04/27 by Ben.Zeigler
Made FStreamableHandle::GetLoadedCount much faster by taking advantage of existing progress counter
Duplicate of CL #3411778
Change 3412235 on 2017/04/27 by Ben.Zeigler
Add code to FStringAssetReferenceThreadContext and FStringAssetReferenceSerializationScope which allows setting package name and collect options for string asset references serialized via something other than linker load
Make RedirectCollector threadsafe to avoid issues with async loading asset references
Fix it so ProcessStringAssetReferencePackageList will remove entries from the string asset array like resolve did, and rename function to indicate that
Fix it so string asset references created by asset labels do not automatically get cooked, and significantly improve the speed of labels with lots of assets
Add code to cooker and asset manager to explicitly mark non-cookable assets as NeverVook, this stops labels from ending up in the build if set that way
Added option to not recurse package dependency changes more than one level when hashes change. This ended up not being significantly faster in a realistic case so left disabled
Duplicate of CL #3412080
Change 3412352 on 2017/04/27 by Marc.Audy
Refix lighting getting wrong position when getting component instance data
Change 3412426 on 2017/04/27 by Marc.Audy
Take first steps to making ComponentToWorld private and force use of accessor
Make bWorldToComponentUpdated private
Make ComponentToWorld and bWorldToComponentUpdated mutable
Add a SetComponentToWorld function for the (likely ill-advised) places that were setting it directly.
Change 3412468 on 2017/04/27 by Marc.Audy
Remove last remnants of deprecated (4.11) custom location system
Change 3413398 on 2017/04/28 by Marc.Audy
Fix up missed deprecated attachment API uses
Change 3413403 on 2017/04/28 by Marc.Audy
Fix Orion compile error
#rnx
Change 3413448 on 2017/04/28 by Marc.Audy
Fix up kite demo component to world privataization warnings
#rnx
Change 3413792 on 2017/04/28 by Ben.Zeigler
Fix many bugs with blueprint pin default values, and add "Reset to Default Value" option to pin context menu
Deprecate and rename SetPinDefaultValue because it actually sets the Autogenerated default. This was being called in bad places and destroying the stored autogenerated defaults
#jira UE-40101 Fix expose on spawn pins to correctly update when the spawned object's defaults change
#jira UE-21642 Fix struct pin default values to properly update when the struct is changed
#jira UE-39418 Fix changed function/macro default values to properly update in already placed call nodes
Change 3413839 on 2017/04/28 by samuel.proctor
Added some Blueprint focused tests for TM-Gameplay
Change 3414030 on 2017/04/28 by Ben.Zeigler
Enable use of AssetPtr variables with Config, for native and blueprint
This incorporates CL #3302487 but also enables for blueprint usage as that code is new to framework branch
Change 3414229 on 2017/04/28 by Marc.Audy
Fixup virtuals not calling their Super
Remove some autos
#rnx
Change 3414451 on 2017/04/28 by Lukasz.Furman
static analysis fix for gameplay debugger
Change 3414482 on 2017/04/28 by Ben.Zeigler
Fix crash found where changing pin type on ConvertAsset accessed an array while deleting it
Change 3414609 on 2017/04/28 by Ben.Zeigler
#jira UE-18146 Refresh graph when disconnecting a resolve asset id node
Change 3415852 on 2017/05/01 by Marc.Audy
Remove unused code
#rnx
Change 3415856 on 2017/05/01 by Marc.Audy
auto removal
#rnx
Change 3415858 on 2017/05/01 by Marc.Audy
Fix function taking an input as reference when unneeded and causing (still unclear why it suddenly started showing up) error in cooking
#rnx
Change 3415946 on 2017/05/01 by Marc.Audy
Have K2Node_StructOperation skip the K2Node_Variable validation as it doesn't need a property (per CL# 1756451)
#rnx
Change 3415988 on 2017/05/01 by Lukasz.Furman
renamed WorldContext param in AI related static blueprint functions to remove load/cook warnings
#jira UE-44544
Change 3416030 on 2017/05/01 by Ben.Zeigler
Fix issue with WorldContext pins being broken by my pin value refactor, partial paths like "WorldContext" need to be stored as strings and not as broken object references.
Change 3416230 on 2017/05/01 by Marc.Audy
Fix spelling error
#rnx
Change 3416419 on 2017/05/01 by Phillip.Kavan
#jira UE-44213 - Nativizing a Blueprint class with a non-nativized Blueprint class subobject dependency will no longer lead to a crash at load time.
Change summary:
- Modified the FFakeImportTableHelper ctor to inject subobject CDOs into the 'SerializeBeforeCreateCDODependencies' array. This in turn ensures that EDL will serialize those subobject CDOs (if necessary) before we create the subobject's nativized owner's CDO at load time.
- Modified FEmitDefaultValueHelper::GenerateCustomDynamicClassInitialization() to emit MiscConvertedSubobject instantiations AFTER we emit the FillUsedAssetsInDynamicClass() call. This is now consistent with the code emitted for other subobjects (all of which assumes that the UsedAssets array has been initialized).
- Modified FFindAssetsToInclude::HandleObjectReference() to add UField owner CDOs in addition to the owner class to the asset dependency list. This ensures that owner CDOs will be emitted alongside the class to both the nativized asset dependency table as well as to the fake import table associated with the UDynamicClass linker for the nativized BP asset.
Change 3416425 on 2017/05/01 by Phillip.Kavan
#jira UE-44219 - Nativizing a Blueprint class with a nativized DOBP class dependency will no longer lead to a compile error at cook/nativization time.
- Modified the FGatherConvertedClassDependencies ctor to properly handle DOBPs in exclusive mode that have been explicitly enabled for nativization. Previously, this code wasn't taking that possibility into account, and as a result could lead to a missing header file in a dependent nativized class body's include set.
- Modified FGatherConvertedClassDependencies::GetFirstNativeOrConvertedClass() to remove the 'bExcludeBPDataOnly' parameter, as it was primarily just being used for a redundant exclusion check when called from the FGatherConvertedClassDependencies ctor. That call site has now been modified to start searching from the super class instead. Additionally, any DOBPs will already fail the preceding WillClassBeConverted() check if they have not been explicitly enabled for nativization in exclusive mode, and will always fail if nativizing in inclusive mode. The extra check was breaking the explicitly-enabled case, so it was removed to allow explicitly-enabled DOBPs to pass.
Notes:
- Allowing for explicitly-enabled DOBPs in exclusive mode may be removed in a future change, but since it is currently supported, the changes noted above will at least ensure that the generated code will compile properly for now.
Change 3416570 on 2017/05/01 by mason.seay
Added UMG test to map. Tweaked force feedback test
Change 3416580 on 2017/05/01 by mason.seay
Resubmitting sub levels
Change 3416597 on 2017/05/01 by Dan.Oconnor
Compilation manager iteration, adds machinery for individual blueprint compilation, adds comments, cleans up duplicated code
Change 3416636 on 2017/05/01 by Phillip.Kavan
#jira UE-44505 - Potential fix for a low-repro crash tied to the Blueprint graph context menu.
Change summary:
- Switched FBlueprintActionInfo::ActionOwner to be a weak object reference.
Change 3416960 on 2017/05/01 by Dan.Oconnor
Use compilation manager when clicking the compile button, PIE'ing, etc
Change 3417207 on 2017/05/01 by Ben.Zeigler
Fix issue with None strings causing default value parsing failures
Add SetPinDefaultValueAtConstruction needed by some other changes
Change 3417519 on 2017/05/01 by Ben.Zeigler
Fix BP compile errors caused by local variables with invalid default values. There's no reason to set autogenerated here because the nodes are transient and invisible in the UI.
There is still a problem here, local variables are not getting their default values validated when type is changed, so you end up with an integer that has the default value of a struct.
Change 3418659 on 2017/05/02 by Ben.Zeigler
#jira UE-44534 Fix it so animation node pins get properly created autogenerated default values that are based on the node struct defaults. This fixes issues when they are reset to other defaults
#jira UE-44532 Fix it so connecting an animation asset pin on a node player resets the pin value to the autogenerated default instead of the cached asset. This was causing old unused assets to get unnecessarily cooked
Fix it so any animation node with an exposed pin that is an object property will reset that object propery when the pin is exposed. This fixes UE-31015 in a generic way
Change the OptionalPinManager to take a Defaults address as well as a current address, to allow setting autogenerated defaults properly
Remove Import/ExportKismetDefaultValueToProperty as they were redundant with PropertyValueFromString and were using the wrong pin setting functions, replaced with PropertyValueFromString_Direct and calling the schema pin set functions
I need to write some backward compatibility code to fix existing nodes, I'll do that in a later checkin
Change 3418700 on 2017/05/02 by Ben.Zeigler
Actually fix None object paths for real this time. I did not test sufficiently before
Change 3418811 on 2017/05/02 by Ben.Zeigler
Fix existing animation blueprint nodes with dead asset references duplicated by pins. This code can be applied independent of the other change to fix specific games
Change 3419165 on 2017/05/02 by Dan.Oconnor
Add misc. functionality from FKismetEditorUtilities::CompileBlueprint
Change 3419202 on 2017/05/02 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3417825
#rnx
Change 3419236 on 2017/05/02 by mason.seay
Removed OnPressed event from Widget BP
Change 3419314 on 2017/05/02 by Marc.Audy
Fix bad auto-resolve
#rnx
Change 3419524 on 2017/05/02 by Marc.Audy
PR #3528: Improved Input BP library node display names (Contributed by projectgheist)
#jira UE-44587
#rn Improved Input BP library node display names
Change 3419570 on 2017/05/02 by Zak.Middleton
#ue4 - Fix typo in TFunctionRef comment/example.
Change 3419709 on 2017/05/02 by Dan.Oconnor
Fix missing category metadata on SkeletonGeneratedClass when using compilation manager
Change 3419756 on 2017/05/02 by Dan.Oconnor
Remove unintentional verbosity increase
Change 3420875 on 2017/05/03 by Marc.Audy
Make IsExecPin static
Minor optimization to IsMetaPin
#rnx
Change 3420981 on 2017/05/03 by Marc.Audy
Change tagging temporarily until other changes are done so that we don't have warnings in the meantime
#rnx
Change 3421367 on 2017/05/03 by Marc.Audy
Manually introduce changes from CL# 3398673 in 4.16 that failed to make it to Dev-Framework as a result of the integration submitted as CL# 3401725.
#rnx
Change 3421685 on 2017/05/03 by Ben.Zeigler
#jira UE-23001 Convert literal Asset ID/Class ID pins to store path as string instead of as hard object reference. Old pins are fixed on load, after resaving the hard references will go away
Refactor the way that FStringAssetReference and FAssetPtr are serialized, it now does the various fixups in FStringAssetReference::SerializePath, which is called from archivers
Change it so the asset registry reads in a list of all scanned redirectors and adds them to GRedirectCollector, this means that saving a string asset reference will automatically fix it up to point to the redirector destination
Change the default behavior of FAssetPtr serialize on ArchiveUObject to match what most of it's children want, and remove several special case hacks. It now serializes as asset reference when saving/loading, and as object for other cases
Deprecate StringAssetReferenceLoaded/StringAssetReferenceSaving delegates, replace with PreSavePath and PostLoadPath on FStringAssetReference
Make AssetLongPathname private on FStringAssetReference, it was deprecated in 4.9
Change 3421728 on 2017/05/03 by Phillip.Kavan
Mirror CL 3408285 from //UE4/Release-4.16.
#jira UE-44124
#rnx
Change 3422370 on 2017/05/03 by Dan.Oconnor
Mirror 3422359
Implement UBlueprintGeneratedClass::NeedsLoadForEditorGame to match UBlueprint, also tag a class's CDO as NeedsLoadForEditorGame.
This prevents us from failing to load a UBlueprint's GeneratedClass when running the editor with -server.
#jira UE-44659
Change 3423192 on 2017/05/04 by Ben.Zeigler
CIS Fix
Change 3423305 on 2017/05/04 by Ben.Zeigler
Fix "Missing opening parenthesis" warnings for Vector and Rotator the same way they were fixed for Transform
Change 3423358 on 2017/05/04 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3422809
#rnx
Change 3423766 on 2017/05/04 by Ben.Zeigler
#jira UE-44680 Delete some corrupted redirectors that are no longer in use
Change 3423804 on 2017/05/04 by Dan.Oconnor
Honor SaveIntermediateCompilerResults when using compilation manager
Change 3424010 on 2017/05/04 by Marc.Audy
Validate that switch string cases are unique
Change 3424011 on 2017/05/04 by Marc.Audy
Re-fix switch node default pin not appearing as an exec output
Remove unused boolean
Change 3424071 on 2017/05/04 by Ben.Zeigler
Delete FixupRedirects commandlet, replace with -FixupRedirects/FixupRedirectors option on ResavePackages. This new method is much faster than the old commandlet as it uses the asset registry vs loading all packages, fixing up all redirectors in Fortnite only took about an hour vs 12+ hours the old way
Removed some hacky bits in Core that only existed to support FixupRedirects
Change it so the AssetRegistry listens to DirectoryWatcher callbacks in commandlets now that commandlets use the asset registry properly. This won't do anything unless you tick directory watcher the way that ResavePackages does
Change 3424313 on 2017/05/04 by Dan.Oconnor
Address missing property flags on SkeletonGeneratedClass when using compilation manager
#jira UE-44705
Change 3424325 on 2017/05/04 by Phillip.Kavan
#jira UE-44222 - Move nativized UDS implementation details into its own .cpp file in order to avoid circular dependencies.
Change summary:
- Modified IKismetCompilerInterface::GenerateCppCodeForStruct() to include an output parameter for CPP source and modified FKismet2CompilerModule to match the updated API.
- Modified IBlueprintCompilerCppBackend::GenerateCodeFromStruct() to include an output parameter for CPP source and modified FBlueprintCompilerCppBackendBase to match the updated API.
- Modified FBlueprintNativeCodeGenUtils::GenerateCppCode() to adjust the call to GenerateCppCodeForStruct() to include CPP source output.
- Modified FGatherConvertedClassDependencies::DependenciesForHeader() to switch UDS property dependencies to be forward declarations rather than includes (for default value init code).
- Modified FEmitDefaultValueHelper::GenerateGetDefaultValue() to emit implementation details to the 'Body' container, and adjust the header content to be a declaration only.
- Modified FIncludeHeaderHelper::EmitInner() to exclude a potentially-redundant line for the module's .h file, for the case when the caller has included the base filename in the 'AlreadyIncluded' set.
- Modified FEmitterLocalContext::FindGloballyMappedObject() to limit the 'TryUsedAssetsList' path to UClass conversions only (since that requires a UDynamicClass target to work).
- Modified FGatherConvertedClassDependencies::DependenciesForHeader() to only include BPGC fields if they are also being converted. Eliminates an issue with missing header files in generated code.
Change 3424359 on 2017/05/04 by Ben.Zeigler
Fix issue where StreamableManager would break when requesting an async load that failed the first time. Because our game supports downloading assets during gameplay it's not safe to assume it will never load again.
Port of CL #3424159
Change 3424367 on 2017/05/04 by Ben.Zeigler
Fix some asset manager warnings to not go off in invalid cases
Change 3425270 on 2017/05/05 by Marc.Audy
Pack booleans/enums in UEdGraphNode and FOptionalPinFromProperty
#rnx
Change 3425696 on 2017/05/05 by Ben.Zeigler
#jira UE-44672 Fix it so select node option pins get populated with default values properly
#jira UE-43927 Fix it so select node opion pin type is correctly maintained accross node recreation, as opposed to deriving from the attached pins
#jira UE-44675 Fix it to correctly refresh select node when switching from bool to integer index
Change 3425833 on 2017/05/05 by Ben.Zeigler
#jira UE-31749 Fix it so Undo works properly when modifying a local variable
#jira UE-44736 Fix it so changing the type of a local variable correctly resets the default value
Change 3425890 on 2017/05/05 by Marc.Audy
Fix Copy/Paste of child actor components losing the template
#jira UE-44566
Change 3425947 on 2017/05/05 by Ben.Zeigler
This was meant to be part of last checkin
Change 3425959 on 2017/05/05 by Ben.Zeigler
#jira UE-44692 Fix it so only the sequentially last node can be removed from a Switch On Int, and for Switch On Name stop it from removing an exec pin if it's the only non-default one
Change 3425979 on 2017/05/05 by Dan.Oconnor
PVS fix
Change 3425985 on 2017/05/05 by Phillip.Kavan
Fix an uninitialized variable.
#rnx
Change 3426043 on 2017/05/05 by Ben.Zeigler
#jira UE-35583 Correctly refresh array node UI when connecting pins that change it away from wildcard
Change 3426174 on 2017/05/05 by Zak.Middleton
#ue4 - Avoid call to virtual getSimulationFilterData() to only use it when needed in PreFilter if we actually have items in the IgnoreComponents list (which is rare). The sim filter data 'word2' stores the component ID.
Change 3426621 on 2017/05/05 by Phillip.Kavan
#jira UE-44708 - Fix an issue that re-introduced component data loss in a non-nativized child Blueprint class with a nativized parent Blueprint class.
Change summary:
- Removed an unnecessary additional check I had for the presence of "-NativizeAssets" switch on the command line in UBlueprint::BeginCacheForCookedPlatformData(). This check was failing because the usage was recently changed to include an optional value. It was not needed anyway so I just removed it.
#rnx
Change 3426906 on 2017/05/05 by Ben.Zeigler
#jira UE-11189 Fix function/macro input default values to show as a pin customization instead of as a broken text box that doesn't work correctly for most types. This fixes enums and provide validation for other types
Types that don't have a customization (most structs) will now show any more, they did not work before either
#jira UE-21754 Hide function default values if pass by reference is set
Fix it so changing input parameter will also reset default value, to avoid having the wrong type value set and to work the same as local variables
Change 3426941 on 2017/05/05 by Dan.Oconnor
Fix determinstic cooking of LoadAssetClass nodes in macros
Change 3427021 on 2017/05/05 by Dan.Oconnor
Build fix, make initialization order in source match artifact
#rnx
Change 3427135 on 2017/05/05 by Phillip.Kavan
#jira UE-44702 - Restore code-based interface classes to Blueprint editor UI.
Change summary:
- Partially backed out CL# 3348513 to return to previous behavior for 4.16. The UI is no longer filtering on the __is_abstract() type trait for interface classes.
- Modified FNativeClassHeaderGenerator::ExportClassFromSourceFileInner() to emit the _getUObject() declaration for native interface types as a default implementation that returns NULL rather than as a pure virtual declaration.
#rnx
Change 3427144 on 2017/05/06 by Marc.Audy
Fix init order
#rnx
Change 3427146 on 2017/05/06 by Marc.Audy
remove stray semicolon
#rnx
Change 3427242 on 2017/05/06 by Phillip.Kavan
#jira UE-44744 - Fix a regression in which a UMG Widget Blueprint property not explicitly marked as a variable would cause Blueprint nativization to fail at package time.
Change summary:
- Modified FWidgetBlueprintCompiler::CreateClassVariablesFromBlueprint() to only add 'Category' metadata when we set the 'CPF_BlueprintVisible' flag on the UProperty, which in is now tied to whether or not the property has been explcitly marked as a variable. This avoids a UHT warning when compiling the nativized codegen that would cause packaging to fail.
#rnx
Change 3427720 on 2017/05/08 by Dan.Oconnor
Backing out 3419202
#rnx
Change 3427725 on 2017/05/08 by Dan.Oconnor
SA fix
#rnx
Change 3427734 on 2017/05/08 by Dan.Oconnor
More exhaustive GEditor null checks, to appease SA
#rnx
Change 3427882 on 2017/05/08 by Marc.Audy
Properly order all booleans in intialization
#rnx
Change 3428049 on 2017/05/08 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3427804
#rnx
Change 3428523 on 2017/05/08 by Ben.Zeigler
#jira UE-44781 Refresh function input UI when blueprint graph refreshes, needed as pins may have gone away
Change 3428563 on 2017/05/08 by Ben.Zeigler
#jira UE-44783 If setting a hard reference pin type from a string, load the referenced object.
Change 3428595 on 2017/05/08 by Dan.Oconnor
Avoid node reconstruction when we're compiling a blueprint with no linker (e.g., a duplicated blueprint)
#jira UE-44777
Change 3428599 on 2017/05/08 by Ben.Zeigler
#jira UE-44789 Fix string asset renamer to not mark IsPersistent becuase that crashes in lightmap code, change it so the path fixup doesn't require the persistent flag
Change 3428609 on 2017/05/08 by Dan.Oconnor
Improved fix for UE-44777
#jira UE-44777
#rnx
Change 3429176 on 2017/05/08 by Phillip.Kavan
#jira UE-44755 - Fix nativization build errors when packaging a game project that is not IWYU-compliant for a build target that disables PCH files.
- Mirrored from //UE4/Release-4.16 (CL# 3429030).
#rnx
Change 3429198 on 2017/05/08 by Phillip.Kavan
CIS fix.
#rnx
Change 3429583 on 2017/05/08 by Ben.Zeigler
Fix SGraphPinClass to work properly after my changes to allow unloaded assets. For Class pins we need to store separate Runtime and Editor asset data objects, as one has _C and refers to the class, and the other doesn't and refers to the blueprint. The content browser wants the editor path, the pin defaults want the runtime path.
Change default value widgets to look more like properties widgets by forcing them to act as highlighted and disabling black background
Change 3429640 on 2017/05/08 by Marc.Audy
Fix issues with select nodes in macros connected to wildcard pins.
#jira UE-44799
#rnx
Change 3429890 on 2017/05/08 by Ben.Zeigler
Fix function/macro defaults to properly propagate when changed using the new edit UI
Refactor some code out of the details customization into the k2 schema
Disable defaults UI for object/class/interface hard references as it is disabled in KismetCompiler
Change 3429947 on 2017/05/08 by Michael.Noland
Core: Backing out CL# 3394352 (marking FDateTime and FTimespan nonexport member Tick with UPROPERTY()), which will re-break UE-39921 but fix UE-44418
There appears to be a more serious underlying issue with how the CDO is instanced which needs to be addressed
#jira UE-44418
#reimplementing 3411681 from Release 4.16
Change 3429987 on 2017/05/08 by Ben.Zeigler
#jira UE-44798 Do a better job of validating object paths saved as default values, due to an old bug with local variables some object paths are saved as struct exportext
At load time clear invalid default value for local variables
Add IsValidObjectPath to FPackageName that validates the passed in path would be valid to load with LoadObject
Change 3430392 on 2017/05/09 by Marc.Audy
Fix SA CIS error
#rnx
Change 3430747 on 2017/05/09 by Ben.Zeigler
#jira UE-44836 Don't reconstruct node during callback for param value changing, this can happen during a reconstruction and recursive reconstruction is unsafe
Don't call ModifyUserDefinedPinDefaultValue unless the default value has actually changed
Change 3431027 on 2017/05/09 by Marc.Audy
Fix BPRW mark up causing Ocean warnings
#rnx
Change 3431353 on 2017/05/09 by Marc.Audy
Fix UHT error due to exposing FJsonObjectWrapper to blueprints
#rnx
[CL 3431398 by Marc Audy in Main branch]
2017-05-09 17:15:32 -04:00
if ( ! ensureMsgf ( ! ObjectPathWithoutPackageName . Contains ( TEXT ( " . " ) , ESearchCase : : CaseSensitive ) , TEXT ( " Cannot make FAssetData for sub object %s! " ) , * ObjectPathWithoutPackageName ) )
2014-03-14 14:13:41 -04:00
{
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3431384)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3252833 on 2017/01/10 by Ori.Cohen
Refactor constraint so that it can be used for external solvers. (Copying //Tasks/UE4/Dev-ImmediateModePhysics to Dev-Framework (//UE4/Dev-Framework))
Change 3256288 on 2017/01/12 by Ori.Cohen
Undo constraint refactor as we found a way around it and it made the code much harder to read/debug
Change 3373195 on 2017/03/30 by Mike.Beach
For nativization, changing it so we key off of the target platform-info struct instead of the platform (in preparation for defining the nativized plugin's platform whitelist).
Change 3381178 on 2017/04/05 by Dan.Oconnor
Make sure we don't inherit the NATIVE func flag when generating skeleton functions, also make sure all bojects outer'd to the skeleton class are marked transient
#jira UE-43616
Change 3381532 on 2017/04/05 by Marc.Audy
(4.16) Fix various cases where built lighting on child actors could be lost when loading a level
#jira UE-43553
Change 3381586 on 2017/04/05 by Mike.Beach
Now generating TArrayCaster conversions for nativized UClass arrays that need it (to handle different TSubclassOf arrays).
#jira UE-42676, UE-43257
Change 3381682 on 2017/04/05 by mason.seay
Some more changes to test map
Change 3381844 on 2017/04/05 by Dan.Oconnor
Match existing logic for CPF_ReturnParm/CPF_OutParm. Fixes compilation error in BP_TurbineBlades when using compilation manager
Change 3382054 on 2017/04/05 by Zak.Middleton
#ue4 - Optimize CharacterMovementComponent::GetPredictionData_Client_Character() and GetPredictionData_Server_Character() to remove virtual calls.
#jira UE-30998
Change 3382703 on 2017/04/06 by Lukasz.Furman
fixed missing links between navmesh polys when there are more than 4 neighbor connections
#jira UE-43524
Change 3383357 on 2017/04/06 by Marc.Audy
(4.16) Make SetHiddenInGame propagate consistently with SetVisibility
#jira UE-43709
Change 3383359 on 2017/04/06 by Dan.Oconnor
Fix last errant SKEL reference when cooking Odin
Change 3383591 on 2017/04/06 by Mike.Beach
Prevent users from setting object variables as 'config' properties (disallowed by UHT). This prevents some errors that could happen later when users nativize the Blueprint.
#jira UE-42085
Change 3384762 on 2017/04/07 by Zak.Middleton
#ue4 - Fix SpringArmComponent not restoring relative transform when bUsePawnControlRotation is turned off. Fixes the editor interaction ignoring transform of the component in the viewport after bUsePawnControlRotation is toggled on then off, since by then the world transform had been overwritten (from tick in editor) and nothing would drive transform changes from the editable value.
Toggling bUsePawnControlRotation off at runtime now restores the rotation to the initial relative rotation, not stomping it with the current pawn rotation, allowing toggling between the editable/desired base rotation and the control rotation.
#jira UE-24850
Change 3384948 on 2017/04/07 by Dan.Oconnor
Prevent GForceDisableBlueprintCompileOnLoad from causing all sorts of badness when dependencies are loaded as part of a Diff operation. Instead of setting a global flag we flag the package as LOAD_DisableCompileOnLoad
Change 3385267 on 2017/04/07 by Michael.Noland
Graph Editing: Pushed some node diffing code down from UAIGraphNode into UEdGraphNode so nodes with details panel properties will diff correctly (e.g., various animation nodes and BP switch nodes)
#jira UE-21724
Change 3385473 on 2017/04/07 by Phillip.Kavan
#jira UE-43067 - Fix broken pin wires after an Expand Node operation, along with some misc. cleanup.
Change summary:
- Fixed to use correct string for "Expand Node" transaction name.
- Modified FBlueprintEditor::OnExpandNodes() to consolidate some redundant code.
- Fixed to generate a unique node GUID for cases where the source graph is not removed after expansion.
Change 3385583 on 2017/04/07 by Dan.Oconnor
Handle CreatePropertyOnScope nullptr return values (happens for structs missing a struct property)
#jira UE-43746
Change 3386581 on 2017/04/10 by Michael.Noland
Blueprints: Further hardening FBlueprintActionInfo::GetOwnerClass()
#jira UE-43824
Change 3386615 on 2017/04/10 by Marc.Audy
Instanced properties can now properly be set on a per-instance basis in blueprint added components.
#jira UE-42066
Change 3387000 on 2017/04/10 by Marc.Audy
Fix includes for CIS
Change 3387229 on 2017/04/10 by mason.seay
More changes to TM-Gameplay
Added Save Game test (with blueprint)
Tick Interval test (with blueprint)
BP logic cleanup
Level organization
Change 3388437 on 2017/04/11 by Mike.Beach
Adding support for map/set literals in the backend (so you can use set nodes for structs containing sets/maps, without having to connect a RHS input - resets to struct defaults).
#jira UE-42617
Change 3388532 on 2017/04/11 by mason.seay
Submitting latest changes for crash repro
Change 3389026 on 2017/04/11 by Ben.Zeigler
Performance and bug fixes for incremetal cooking with asset registry, duplicate of several changes made on //Fortnite/Main
Fix it so AssetRegistry.ScanPathsAndFilesSynchronous won't scan subdirectories inside already scanned directories, this cuts down on the number of cache files
Fix 2 second stall when shutting down AssetSourceFilenameCache if it had never been previously created
Change 3389163 on 2017/04/11 by Ben.Zeigler
#jira UE-42922 Fix it so connecting function input node output pins does not clear default value, we only want to clear the value when connecting an input pin. Properly testing this fix depends on UE-43883
Change 3389205 on 2017/04/11 by Marc.Audy
Protect against a handful of GEditor usages that can now be hit in standalone
Change 3389220 on 2017/04/11 by Marc.Audy
Don't borrow ClassWithin to masquerade as ParentClass during compilation and instead just set the super struct immediately
Change 3389222 on 2017/04/11 by Michael.Noland
Framework: Adding a cvar (t.TickComponentLatentActionsWithTheComponent) to allow users to revert to the old behavior on when component latent actions tick
- Non-zero values behave the same way as actors do, ticking pending latent action when the component ticks, instead of later on in the frame (default behavior in 4.16 and beyond)
- Prior to 4.16, components behaved as if the value were 0, which meant their latent actions behaved differently to actors
This CVar will be removed in a future version, defaulting to on
#jira UE-43661
Change 3389276 on 2017/04/11 by Marc.Audy
Spelling fix and NULL to nullptr
Change 3389303 on 2017/04/11 by Mieszko.Zielinski
Made sure AIController::Posses doesn't get called when compiling Pawn BP #UE4
#jira UE-43873
Change 3390215 on 2017/04/12 by mason.seay
Removed some tests, will need further review
Change 3390638 on 2017/04/12 by Mike.Beach
Generalizing the omission of the CoerceProperty (in EmitTerm) - previously we were only omitting properties for our custom array lib. For wildcards, a coerce property should not be used as its type will not match.
NOTE: There is a slight behavior change in UEdGraphSchema_K2::ConvertPropertyToPinType(), as it will return 'wildcard' for params marked as 'ArrayTypeDependentParams' (previously would have returned 'int').
#jira UE-42747
Change 3390774 on 2017/04/12 by Ben.Zeigler
#jira UE-43911 Fix several issues with saving a runtime asset registry containing redirectors that caused crashes in cook on the fly. Don't resolve redirectors on incoming links because it will make a circular link, and fix an issue where chained redirectors would break the for loop iteration and return a bad dependency
Fix it so the asset registry written out at the beginning of CookOnTheFly uses the registry generator, otherwise it will include all of the stripped editor only tags
Change 3390778 on 2017/04/12 by Ben.Zeigler
Fix UCookOnTheFlyServer::CollectFilesToCook to check for initial unsolicited packages up front. This is required in iterative mode because it may skip cooking all explicit packages and thus miss a new startup loaded package
Change 3390782 on 2017/04/12 by Ben.Zeigler
Change RunProjectCommand to not imply -nomcp, and allow reading -clientcmdline to override setting the map parameter to 127.0.0.1 by default
Fix RunProjectCommand to remove ios-specific checks to not pass weird platform parameters, and instead never pass them
Fix PS4Platform to pass along command line when calling build cook run, args needs to be the last parameter so explicitly set -target=
Change 3390859 on 2017/04/12 by Mike.Beach
T3D class fields now export with the class's fully qualified path name (to avoid abiguity). Since we can have multiple classes with the same name (Blueprints in different folders), we have to use the class's fully qualified object path.
#jira UE-28048
Change 3390914 on 2017/04/12 by Lukasz.Furman
fixed missing navlink component's transform in exported navigation data
#jira UE-43688
Change 3391122 on 2017/04/12 by Ben.Zeigler
Add new PreloadPrimaryAssets call to AssetManager that stream the desired assets without modifying the official load/unload state. This is useful if you want to preload things in case the might be used in the future, and it also supports recursion
Fix crash calling GetAssetDataForPath with null path
Change 3391494 on 2017/04/12 by Dan.Oconnor
Fix bad references in deep object (widget) hierarchies
#jira UE-43802
Change 3391529 on 2017/04/12 by Dan.Oconnor
Fix log spam, accidently submitted
#rnx
Change 3391756 on 2017/04/12 by Dan.Oconnor
LinkExternalDependencies needs to be performed before we RefreshVariables
#jira UE-43843
Change 3392542 on 2017/04/13 by Marc.Audy
Ensure that initialized actors get cleaned up when removed from world even if that world hasn't begun play.
#jira UE-43879
Change 3392746 on 2017/04/13 by Marc.Audy
(4.16) When duplicating a blueprint node, correctly make the new node a sibling of the duplicated node, not a child of it (unless duplicating the root component).
Also resets scale of a duplicated root component to 1 to avoid a squaring of the scale for that component.
#jira UE-40218
#jira UE-42086
Change 3393253 on 2017/04/13 by Dan.Oconnor
Make sure calculated meta data is correctly set on functions generated by the compilation manager (SKEL_ class functions)
#jira UE-43883
Change 3393509 on 2017/04/13 by Mike.Beach
Removing hack'ish ResetLoaders() call that was causing undesired side-effects (resetting of a loaded package that other objects were relying on). This was originally intended to release file handles so separate editor processes could make updates and save the file (from CL 1712376). Using ResetLoaders() for this is bad though, as it has too many side effects. Instead we have to wait for GC to run. This also makes sure that GC should run as intended as the CookOnTheFly sever is idling.
#jira UE-37284
Change 3394350 on 2017/04/14 by Michael.Noland
Core: Making FDateTime and FTimespan actually reflected, so they get duplicated properly in CopyPropertiesForUnrelatedObjects, etc...
#jira UE-39921
Change 3395985 on 2017/04/17 by Phillip.Kavan
#jira UE-38280 - Fix invalid custom type selections on member fields in the User-Defined Structure Editor after a reload.
Change summary:
- Ensure that the 'SubCategoryObject' member in a UDS variable descriptor has been loaded when converting to an FEdGraphPinType.
Change 3396152 on 2017/04/17 by Marc.Audy
TickableGameObjects that have IsTickableInEditor false should not tick in the editor
#jira UE-40421
Change 3396279 on 2017/04/17 by Phillip.Kavan
#jira UE-43968 - Fix failed validation of bitmask enum types when serializing bitmask literal nodes.
Change 3396299 on 2017/04/17 by Dan.Oconnor
Fix resintancing issues exposed by running TM-Gameplay with -game. We cannot reinstance actors in levels on load because the scene is not created.
#jira UE-43859
Change 3396712 on 2017/04/17 by Marc.Audy
Call PostLoad on subobjects before copying for unrelated properties to avoid cases where an out of date object patched over in the linker has not been brought up to date
#jira UE-38234
Change 3396718 on 2017/04/17 by Mike.Beach
Adding a search bar to the components tree for Blueprints.
#epicfriday
#jira UE-17620
Change 3396999 on 2017/04/17 by Mike.Beach
In generated code, call event '_Implementation' functions directly for interface functions being invoked on self (avoids a UHT runtime error).
#jira UE-44018
Change 3397700 on 2017/04/18 by Marc.Audy
UT struct BlueprintType fixups
Change 3397701 on 2017/04/18 by Marc.Audy
Odin struct BlueprintType fixups
Change 3397703 on 2017/04/18 by Marc.Audy
Ocean struct BlueprintType fixups
Change 3397704 on 2017/04/18 by Marc.Audy
WEX struct BlueprintType fixups
Change 3397705 on 2017/04/18 by Marc.Audy
Additional UT blueprint type struct fixups
Change 3397706 on 2017/04/18 by Marc.Audy
Fortnite struct BlueprintType fixups
Change 3397708 on 2017/04/18 by Marc.Audy
Fixup Engine BlueprintType markup of structs
Change 3397709 on 2017/04/18 by Marc.Audy
Sample Game struct BlueprintType fixups
Change 3397711 on 2017/04/18 by Marc.Audy
Mark AnimNodes as BlueprintType and BlueprintInternalUseOnly
Change 3397712 on 2017/04/18 by Marc.Audy
Paragon struct BlueprintType fixups
Change 3397735 on 2017/04/18 by Marc.Audy
Definition pieces of BlueprintInternalUseOnly to fix UHT errors with structs already marked to use it
Change 3397912 on 2017/04/18 by Mike.Beach
Fix for CIS warnings about shadowed variables (fallout from CL 3396718).
Change 3398455 on 2017/04/18 by Marc.Audy
Make less critical errors log an error rather than immediately throwing allowing multiple errors to be reported in the same compile
Change 3398491 on 2017/04/18 by Marc.Audy
BPRW/BPRO in a non-BlueprintType is now a UHT error
Change 3398539 on 2017/04/18 by Marc.Audy
Fixup live link struct markups
Change 3399412 on 2017/04/19 by Marc.Audy
Fix Match3 blueprint type struct markups
Change 3399509 on 2017/04/19 by Phillip.Kavan
#jira UE-38574 - Fix AnimBlueprint function graphs marked as 'const' to treat 'self' as read-only when compiling.
Change summary:
- Modified FKismetCompilerContext::ProcessOneFunctionGraph() to use the function graph schema rather than the compiler context schema for both the function context's schema as well as testing the function for 'const'-ness. For AnimBPs, the compiler context and the function graph context can differ, so we need to make sure we are using the right one when making queries for a specific function context during compilation.
- Minor cleanup: changed the function context schema to be 'const' in order to be consistent with the function graph GetSchema() API's result. Added a few 'const' qualifiers where needed to match.
- Added a new object version in order to avoid breaking compilation of existing AnimBP function graphs that may already be violating the 'const' rule (this is the same thing that was done when 'const' was first added to "normal" BP function graphs). Just as with normal function graphs in place before the addition, a warning will be generated for existing AnimBP function graphs if they violate 'const' correctness, and an error will be generated for all new ones.
Change 3399749 on 2017/04/19 by Mike.Beach
Hiding the Nativized Blueprints plugin from the in-editor browser (prevent users from disabling it).
Change 3399774 on 2017/04/19 by Marc.Audy
ConditionalPostLoad is already called on StaticMesh earlier in the function
#rnx
Change 3400313 on 2017/04/19 by Mike.Beach
Mirroring CL 3398673 from 4.16
Now, with ICWYU, making sure that the coresponding header gets included first in nativized Blueprint files (else we get a UHT error). Had to fixup some ShooterGame specific files as a result (they had missing includes and forward declarations).
#jira UE-44124
Change 3400328 on 2017/04/19 by Mike.Beach
Missing file from mirrored change (CL 3400313 - mirroring CL 3398673 from 4.16)
#jira UE-44124
Change 3400415 on 2017/04/19 by Chad.Garyet
adding physx switch build to framework
Change 3400514 on 2017/04/19 by Mike.Beach
Back out changelist 3400313 / 3400328 (mirrored from CL 3398673 in 4.16), as it was producing "include PCH first" errors. Likely, CL 3398673 was a fix for a 4.16 specific change, altering the expected include order. We'll have to wait for this one to be integrated back.
Change 3400552 on 2017/04/19 by Marc.Audy
Undo the calling of post load prior to the CPFUO as dependent objects may not yet be loaded. Instead copy the need load flag to the new CDO subobject, similarly to how the top level CDO object copies its flags over.
#jira UE-44150
Change 3400815 on 2017/04/19 by Marc.Audy
Spelling fix (part of PR #3490)
#rnx
Change 3400918 on 2017/04/19 by Marc.Audy
Partial pull of PR #3490: Improved remapping game controls support (Contributed by projectgheist)
This portion brings in the exposure of the bindings to blueprint
#jira UE-44122
Change 3401550 on 2017/04/20 by Marc.Audy
fix kitedemo blueprint type markup
#rnx
Change 3401702 on 2017/04/20 by Mike.Beach
Make it so plugins added to a project through the .uproject's 'AdditionalPluginDirectories' list get folded into the generated code project (for visual studio, etc.).
Change 3401720 on 2017/04/20 by Mike.Beach
Add white and black lists for target type (game, client, server, etc.) to plugin module descriptors.
Change 3401725 on 2017/04/20 by Mike.Beach
Whitelisting the nativized Blueprint plugin for only the targets it was built for (game, server, or client).
Change 3401800 on 2017/04/20 by Ben.Zeigler
Add Algo::BinarySearch, LowerBound, and UpperBound. These are setup to allow binary searching a presorted array, and allow for specifying projection and sort predicates. Convert some engine code to use it
Add TSortedMap, which is a map data structure that has the same API as TMap, but is backed by a sorted array. It uses half the memory and performance is faster below n=10
Add FName::CompareIndexes so a SortedMap with FNames can be used without doing very slow string compares, and FNameSortIndexes predicate to sort by it
Add code to Algo and Container tests. Split up container tests so the new ones aren't run in smoketest as they are a bit slow
Add RemoveCurrent and SetToEnd to ArrayIterator
Change 3401849 on 2017/04/20 by Marc.Audy
Partial pull of PR #3490: Improved remapping game controls support (Contributed by projectgheist)
This portion brings bug fixes and improvements to InputKeySelector UMG widgets.
#jira UE-44122
Change 3402088 on 2017/04/20 by Marc.Audy
Focus the search box when expanding the map value type
#jira UE-44211
Change 3402251 on 2017/04/20 by Ben.Zeigler
Fix issue where SortedMap needs to be resorted after serialization, because the sorting may have changed from when it was saved out
Change 3402335 on 2017/04/20 by Ben.Zeigler
Significant changes to FAssetData serialization and memory, cuts memory significantly but will break code that was using some of the internal API that was not properly hidden before
Both Editor and Runtime cache now use the same FAssetRegistryVersion, which is now registered as a custom version
Rename FAssetData and FAssetPackage operator<< to SerializeForCache to make it clear that it isn't safe to use for general serialization
Remove GroupNames from FAssetData, it has not been useful since the UE4 package structure changed around 4.0
Rename generic-sounding but not actually generic SharedMapView class to AssetDataTagMapSharedView to indicate what it is actually used for
Change TagsAndValues to use a new array-backed TSortedMap as the base structure instead of a hash map. Also, it only allocates the map on demand, which saves significant memory at runtime as many packages have no tags
Add bFilterAssetDataWithNoTags to [AssetRegistry] ini section, if set it will only save cooked asset data if it has tags, off by default but saves significant memory if your whitelist is set up properly
Fix issue where asset registry tags updated by loading assets during cook were not being reflected in the cooked registry
Add AssetRegistry::GetAllocatedSize and add to MemReport output
Change 3402457 on 2017/04/20 by Ben.Zeigler
Enable asset registry iteration and stripping unused asset data in Fortnite. Registry iteration is already on in //Fortnite/Main, stripping is a new feature I want to test
Change 3402498 on 2017/04/20 by Ben.Zeigler
CIS fix. Why did this compile locally?
Change 3402537 on 2017/04/20 by Ben.Zeigler
Remove ensure for making AssetData for subobjects, the editor does this for thumbnail creation in some cases
Change 3402600 on 2017/04/20 by Ben.Zeigler
Add bShouldGuessTypeAndNameInEditor to manager settings, can be set false for games where type cannot be safely implied and content must be resaved
Fix up some bool setting code inside asset manager, and fix const correctness and for iterator issues
AssetManager can now discover any BlueprintCore type when bHasBlueprintClasses=true
Add AssetManager.DumpAssetRegistryInfo to output detailed asset registry usage stats
Add Primary Name to asset audit window by default
Change 3403556 on 2017/04/21 by Marc.Audy
Fix Orion input key selector override class
#rnx
Change 3404090 on 2017/04/21 by mason.seay
Applying Forcefeedback to test map
Change 3404093 on 2017/04/21 by mason.seay
Changing text in level
Change 3404139 on 2017/04/21 by mason.seay
Added Force Feedback test and made some tweaks.
Change 3404146 on 2017/04/21 by mason.seay
Added source reference to Instanced Variable test
Change 3404154 on 2017/04/21 by mason.seay
More minor tweaks
Change 3404155 on 2017/04/21 by Marc.Audy
Remove auto
#rnx
Change 3404188 on 2017/04/21 by Marc.Audy
Fixed crash changing variable type when any type other than map
#jira UE-44249
#rnx
Change 3404463 on 2017/04/21 by Ben.Zeigler
Fix asset data code to not ensure when loading an object with invalid exports, and instead print warning with name of package that needs to be resaved
Resave a map that had a redirector from a DIFFERENT package saved in it's exports. I do not understand how this happened, but it appears to be related to the lightmap BuiltData transition when old maps are opened
Change 3404465 on 2017/04/21 by Ben.Zeigler
Fix issue with trying to load editor-only asset classes in a cooked build
Fix issues with renaming or changing template Ids of assets from the editor
Always print the Duplicate Asset ID error, as if you have more than one the ensuremsg only goes off once
Change 3404481 on 2017/04/21 by Dan.Oconnor
Remove unneeded walk up hierarchy - prevent stale entries in action database if we compile a BP but don't compile its children
Change 3404510 on 2017/04/21 by Phillip.Kavan
#jira UE-35727 - Collapsed graphs containing a local variable node will no longer cause a compile error when the parent graph is renamed.
Change 3404590 on 2017/04/21 by Michael.Noland
Editor: Fixed incorrect filtering of abstract/deprecated UDeveloperSettings and UContentBrowserFrontEndFilterExtension classes caused by a typo (HasAnyCastFlags versus HasAnyClassFlags)
Change 3404593 on 2017/04/21 by Marc.Audy
Fixed another crash to do with input pin secondary combo box
#jira UE-44269
#rnx
Change 3404600 on 2017/04/21 by Michael.Noland
Core: Allow UE_GC_TRACK_OBJ_AVAILABLE to be set externally
#rnx
Change 3404602 on 2017/04/21 by Michael.Noland
Engine: Switched from an include to a forward declaration of SWidget in UDeveloperSettings to keep it slim
#rnx
Change 3404608 on 2017/04/21 by Michael.Noland
Core: Marked TNumericLimits as constexpr so they can be used in static asserts
Change 3404659 on 2017/04/21 by Michael.Noland
Engine: Adding includes back to two UDeveloperSettings subclasses
Change 3405289 on 2017/04/24 by Marc.Audy
Remove auto
#rnx
Change 3405446 on 2017/04/24 by Marc.Audy
Fix Win32 unsigned compile issue
Change 3405512 on 2017/04/24 by Mike.Beach
Piping through NativizationOptions to filename generation (so we're able to gen different files names per target: client vs. server).
Change 3406080 on 2017/04/24 by Ben.Zeigler
Deprecate UEngine::OnPostEngineInit and move to FCoreDelegates, clean up comments for the initialization delegates
Call OnPostEngineInit from commandlet initialization as well as normal execution. I thought about making a wrapper function, but the commandlet calls EditorInit directly so it wouldn't work
Bind delegate to refresh the AssetRegistry native class hierarchy after engine init so it picks up game/plugin classes. Undo ini change that was required to hack around this
Change 3406381 on 2017/04/24 by Ben.Zeigler
#jira UE-23768 Enable Run Physics With No Controller for montage test pawn. The montage pawn has no controller so wasn't correctly running physics when the root motion stopped. This flag needs to be set to allow it to correctly stop after the montage is over
Change 3406438 on 2017/04/24 by Ben.Zeigler
Fix deprecation warning
Change 3406519 on 2017/04/24 by Phillip.Kavan
#jira UE-43612 - Suppress array "Get" node fixup notifications on load when the BP Compilation Manager is enabled.
Change summary:
- Wrapped BPCM calls to FBlueprintEditorUtils::ReconstructAllNodes() and ReplaceDeprecatedNodes() duirng compile-on-load with bIsRegeneratingOnLoad = true. This matches the BP's state during compile-on-load when the BPCM is not enabled.
Change 3406565 on 2017/04/24 by Dan.Oconnor
Make sure all interface functions are added to skeleton
#jira UE-44152
Change 3407489 on 2017/04/25 by Ben.Zeigler
#jira UE-44317 Fix game-only TickableGameObjects to correctly tick in PIE
Change 3407558 on 2017/04/25 by Ben.Zeigler
Fix Fortnite cook warnings, issue had to do with the CDO being registered as a Primary Asset in conflict with the Class being registered
Fix issue with renaming a BP primary asset not finding the old name
Change 3407701 on 2017/04/25 by Dan.Oconnor
Remove unneeded null check, static analysis doen't like the inconsistency
Change 3407995 on 2017/04/25 by Marc.Audy
Fixed maps and sets not working correctly with split pin.
#jira UE-43857
Change 3408124 on 2017/04/25 by Ben.Zeigler
#jira UE-39586 Change it so the blueprint String/Name/Object to Text node creates culture invariant text, and also have them show as an expanded node with a comment explaining this
Fix Transform to actually return in the format specified in the comment, and fix comments on many text conversions
Change 3408134 on 2017/04/25 by Marc.Audy
Graph pin container type now represented by an enumeration (EPinContainerType) rather than 3 "independent" booleans.
FEdGraphPinType constructor, UEdGraphNode::CreatePin, and FKismetCompilerContext::SpawnInternalVariable that took 3 booleans deprecated and replaced with a version that takes EPinContainerType.
UEdGraphNode::CreatePin parameters reorganized so that PinName is before ContainerType and bIsReference, which default to None and false respectively
Change 3408256 on 2017/04/25 by Michael.Noland
Core: Changed UClass::ClassFlags to be of type EClassFlags for improved type safety
Change 3408282 on 2017/04/25 by Marc.Audy
(4.16) Fix incorrect positioning of instance components after duplication
#jira UE-44314
Change 3408404 on 2017/04/25 by Mike.Beach
Adding and removing the nativized plugin to/from the project when we alter the packaging nativization setting (so it gets picked up by project generation).
Change 3408445 on 2017/04/25 by Marc.Audy
Fix up missed deprecation cases
#rnx
Change 3409354 on 2017/04/26 by Marc.Audy
Fix Linux CIS failure
#rnx
Change 3409487 on 2017/04/26 by Marc.Audy
When dragging assets in to the SCS create them as siblings, not nested
#jira UE-43041
Change 3409776 on 2017/04/26 by Ben.Zeigler
#jira UE-44401 Fix issue with cooking a map containing a reparented component. In that case the child component may think it's not editor only, but it's archetype is editor only. This is not allowed in EDL, so now the child is marked as editor only as well
Change 3410168 on 2017/04/26 by Dan.Oconnor
Avoid calling virtual functions in the middle of compile
#jira UE-44243
Change 3410252 on 2017/04/26 by Lukasz.Furman
adjusted WITH_GAMEPLAY_DEBUGGER checks after IWYU changes
#ue4
Change 3410385 on 2017/04/26 by Marc.Audy
ChildActorComponent SetClass no longer fails when setting at runtime.
#jira UE-43356
Change 3410466 on 2017/04/26 by Michael.Noland
Core: Ensuring EClassFlags is 32 bit in a different way (underlying type of the enum is coming out signed even though all members are unsigned, long term fix is probably to move it to an enum class)
#rnx
Change 3410476 on 2017/04/26 by Michael.Noland
Automation: Deleting some commented out methods
#rnx
Change 3411070 on 2017/04/27 by Marc.Audy
Properly complete deprecation of old attachment API
Change 3411338 on 2017/04/27 by mason.seay
Map for Latent Action Tick Bug
Change 3411637 on 2017/04/27 by Ben.Zeigler
Back out CL #3381532 as it was causing crashes when adding new variables to blueprints, as the transaction array was being recursively modified while it was being added to
Change 3412052 on 2017/04/27 by mason.seay
Updated jump test map and pawn
Change 3412231 on 2017/04/27 by Ben.Zeigler
Fix issue where running SearchAllAssets multiple times after mounting new paths would throw away the asset registry cache, which slowed down incremental cooking substantially because the cooker mounts the autosave folder
Duplicate of CL #3411860
Change 3412233 on 2017/04/27 by Ben.Zeigler
Made FStreamableHandle::GetLoadedCount much faster by taking advantage of existing progress counter
Duplicate of CL #3411778
Change 3412235 on 2017/04/27 by Ben.Zeigler
Add code to FStringAssetReferenceThreadContext and FStringAssetReferenceSerializationScope which allows setting package name and collect options for string asset references serialized via something other than linker load
Make RedirectCollector threadsafe to avoid issues with async loading asset references
Fix it so ProcessStringAssetReferencePackageList will remove entries from the string asset array like resolve did, and rename function to indicate that
Fix it so string asset references created by asset labels do not automatically get cooked, and significantly improve the speed of labels with lots of assets
Add code to cooker and asset manager to explicitly mark non-cookable assets as NeverVook, this stops labels from ending up in the build if set that way
Added option to not recurse package dependency changes more than one level when hashes change. This ended up not being significantly faster in a realistic case so left disabled
Duplicate of CL #3412080
Change 3412352 on 2017/04/27 by Marc.Audy
Refix lighting getting wrong position when getting component instance data
Change 3412426 on 2017/04/27 by Marc.Audy
Take first steps to making ComponentToWorld private and force use of accessor
Make bWorldToComponentUpdated private
Make ComponentToWorld and bWorldToComponentUpdated mutable
Add a SetComponentToWorld function for the (likely ill-advised) places that were setting it directly.
Change 3412468 on 2017/04/27 by Marc.Audy
Remove last remnants of deprecated (4.11) custom location system
Change 3413398 on 2017/04/28 by Marc.Audy
Fix up missed deprecated attachment API uses
Change 3413403 on 2017/04/28 by Marc.Audy
Fix Orion compile error
#rnx
Change 3413448 on 2017/04/28 by Marc.Audy
Fix up kite demo component to world privataization warnings
#rnx
Change 3413792 on 2017/04/28 by Ben.Zeigler
Fix many bugs with blueprint pin default values, and add "Reset to Default Value" option to pin context menu
Deprecate and rename SetPinDefaultValue because it actually sets the Autogenerated default. This was being called in bad places and destroying the stored autogenerated defaults
#jira UE-40101 Fix expose on spawn pins to correctly update when the spawned object's defaults change
#jira UE-21642 Fix struct pin default values to properly update when the struct is changed
#jira UE-39418 Fix changed function/macro default values to properly update in already placed call nodes
Change 3413839 on 2017/04/28 by samuel.proctor
Added some Blueprint focused tests for TM-Gameplay
Change 3414030 on 2017/04/28 by Ben.Zeigler
Enable use of AssetPtr variables with Config, for native and blueprint
This incorporates CL #3302487 but also enables for blueprint usage as that code is new to framework branch
Change 3414229 on 2017/04/28 by Marc.Audy
Fixup virtuals not calling their Super
Remove some autos
#rnx
Change 3414451 on 2017/04/28 by Lukasz.Furman
static analysis fix for gameplay debugger
Change 3414482 on 2017/04/28 by Ben.Zeigler
Fix crash found where changing pin type on ConvertAsset accessed an array while deleting it
Change 3414609 on 2017/04/28 by Ben.Zeigler
#jira UE-18146 Refresh graph when disconnecting a resolve asset id node
Change 3415852 on 2017/05/01 by Marc.Audy
Remove unused code
#rnx
Change 3415856 on 2017/05/01 by Marc.Audy
auto removal
#rnx
Change 3415858 on 2017/05/01 by Marc.Audy
Fix function taking an input as reference when unneeded and causing (still unclear why it suddenly started showing up) error in cooking
#rnx
Change 3415946 on 2017/05/01 by Marc.Audy
Have K2Node_StructOperation skip the K2Node_Variable validation as it doesn't need a property (per CL# 1756451)
#rnx
Change 3415988 on 2017/05/01 by Lukasz.Furman
renamed WorldContext param in AI related static blueprint functions to remove load/cook warnings
#jira UE-44544
Change 3416030 on 2017/05/01 by Ben.Zeigler
Fix issue with WorldContext pins being broken by my pin value refactor, partial paths like "WorldContext" need to be stored as strings and not as broken object references.
Change 3416230 on 2017/05/01 by Marc.Audy
Fix spelling error
#rnx
Change 3416419 on 2017/05/01 by Phillip.Kavan
#jira UE-44213 - Nativizing a Blueprint class with a non-nativized Blueprint class subobject dependency will no longer lead to a crash at load time.
Change summary:
- Modified the FFakeImportTableHelper ctor to inject subobject CDOs into the 'SerializeBeforeCreateCDODependencies' array. This in turn ensures that EDL will serialize those subobject CDOs (if necessary) before we create the subobject's nativized owner's CDO at load time.
- Modified FEmitDefaultValueHelper::GenerateCustomDynamicClassInitialization() to emit MiscConvertedSubobject instantiations AFTER we emit the FillUsedAssetsInDynamicClass() call. This is now consistent with the code emitted for other subobjects (all of which assumes that the UsedAssets array has been initialized).
- Modified FFindAssetsToInclude::HandleObjectReference() to add UField owner CDOs in addition to the owner class to the asset dependency list. This ensures that owner CDOs will be emitted alongside the class to both the nativized asset dependency table as well as to the fake import table associated with the UDynamicClass linker for the nativized BP asset.
Change 3416425 on 2017/05/01 by Phillip.Kavan
#jira UE-44219 - Nativizing a Blueprint class with a nativized DOBP class dependency will no longer lead to a compile error at cook/nativization time.
- Modified the FGatherConvertedClassDependencies ctor to properly handle DOBPs in exclusive mode that have been explicitly enabled for nativization. Previously, this code wasn't taking that possibility into account, and as a result could lead to a missing header file in a dependent nativized class body's include set.
- Modified FGatherConvertedClassDependencies::GetFirstNativeOrConvertedClass() to remove the 'bExcludeBPDataOnly' parameter, as it was primarily just being used for a redundant exclusion check when called from the FGatherConvertedClassDependencies ctor. That call site has now been modified to start searching from the super class instead. Additionally, any DOBPs will already fail the preceding WillClassBeConverted() check if they have not been explicitly enabled for nativization in exclusive mode, and will always fail if nativizing in inclusive mode. The extra check was breaking the explicitly-enabled case, so it was removed to allow explicitly-enabled DOBPs to pass.
Notes:
- Allowing for explicitly-enabled DOBPs in exclusive mode may be removed in a future change, but since it is currently supported, the changes noted above will at least ensure that the generated code will compile properly for now.
Change 3416570 on 2017/05/01 by mason.seay
Added UMG test to map. Tweaked force feedback test
Change 3416580 on 2017/05/01 by mason.seay
Resubmitting sub levels
Change 3416597 on 2017/05/01 by Dan.Oconnor
Compilation manager iteration, adds machinery for individual blueprint compilation, adds comments, cleans up duplicated code
Change 3416636 on 2017/05/01 by Phillip.Kavan
#jira UE-44505 - Potential fix for a low-repro crash tied to the Blueprint graph context menu.
Change summary:
- Switched FBlueprintActionInfo::ActionOwner to be a weak object reference.
Change 3416960 on 2017/05/01 by Dan.Oconnor
Use compilation manager when clicking the compile button, PIE'ing, etc
Change 3417207 on 2017/05/01 by Ben.Zeigler
Fix issue with None strings causing default value parsing failures
Add SetPinDefaultValueAtConstruction needed by some other changes
Change 3417519 on 2017/05/01 by Ben.Zeigler
Fix BP compile errors caused by local variables with invalid default values. There's no reason to set autogenerated here because the nodes are transient and invisible in the UI.
There is still a problem here, local variables are not getting their default values validated when type is changed, so you end up with an integer that has the default value of a struct.
Change 3418659 on 2017/05/02 by Ben.Zeigler
#jira UE-44534 Fix it so animation node pins get properly created autogenerated default values that are based on the node struct defaults. This fixes issues when they are reset to other defaults
#jira UE-44532 Fix it so connecting an animation asset pin on a node player resets the pin value to the autogenerated default instead of the cached asset. This was causing old unused assets to get unnecessarily cooked
Fix it so any animation node with an exposed pin that is an object property will reset that object propery when the pin is exposed. This fixes UE-31015 in a generic way
Change the OptionalPinManager to take a Defaults address as well as a current address, to allow setting autogenerated defaults properly
Remove Import/ExportKismetDefaultValueToProperty as they were redundant with PropertyValueFromString and were using the wrong pin setting functions, replaced with PropertyValueFromString_Direct and calling the schema pin set functions
I need to write some backward compatibility code to fix existing nodes, I'll do that in a later checkin
Change 3418700 on 2017/05/02 by Ben.Zeigler
Actually fix None object paths for real this time. I did not test sufficiently before
Change 3418811 on 2017/05/02 by Ben.Zeigler
Fix existing animation blueprint nodes with dead asset references duplicated by pins. This code can be applied independent of the other change to fix specific games
Change 3419165 on 2017/05/02 by Dan.Oconnor
Add misc. functionality from FKismetEditorUtilities::CompileBlueprint
Change 3419202 on 2017/05/02 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3417825
#rnx
Change 3419236 on 2017/05/02 by mason.seay
Removed OnPressed event from Widget BP
Change 3419314 on 2017/05/02 by Marc.Audy
Fix bad auto-resolve
#rnx
Change 3419524 on 2017/05/02 by Marc.Audy
PR #3528: Improved Input BP library node display names (Contributed by projectgheist)
#jira UE-44587
#rn Improved Input BP library node display names
Change 3419570 on 2017/05/02 by Zak.Middleton
#ue4 - Fix typo in TFunctionRef comment/example.
Change 3419709 on 2017/05/02 by Dan.Oconnor
Fix missing category metadata on SkeletonGeneratedClass when using compilation manager
Change 3419756 on 2017/05/02 by Dan.Oconnor
Remove unintentional verbosity increase
Change 3420875 on 2017/05/03 by Marc.Audy
Make IsExecPin static
Minor optimization to IsMetaPin
#rnx
Change 3420981 on 2017/05/03 by Marc.Audy
Change tagging temporarily until other changes are done so that we don't have warnings in the meantime
#rnx
Change 3421367 on 2017/05/03 by Marc.Audy
Manually introduce changes from CL# 3398673 in 4.16 that failed to make it to Dev-Framework as a result of the integration submitted as CL# 3401725.
#rnx
Change 3421685 on 2017/05/03 by Ben.Zeigler
#jira UE-23001 Convert literal Asset ID/Class ID pins to store path as string instead of as hard object reference. Old pins are fixed on load, after resaving the hard references will go away
Refactor the way that FStringAssetReference and FAssetPtr are serialized, it now does the various fixups in FStringAssetReference::SerializePath, which is called from archivers
Change it so the asset registry reads in a list of all scanned redirectors and adds them to GRedirectCollector, this means that saving a string asset reference will automatically fix it up to point to the redirector destination
Change the default behavior of FAssetPtr serialize on ArchiveUObject to match what most of it's children want, and remove several special case hacks. It now serializes as asset reference when saving/loading, and as object for other cases
Deprecate StringAssetReferenceLoaded/StringAssetReferenceSaving delegates, replace with PreSavePath and PostLoadPath on FStringAssetReference
Make AssetLongPathname private on FStringAssetReference, it was deprecated in 4.9
Change 3421728 on 2017/05/03 by Phillip.Kavan
Mirror CL 3408285 from //UE4/Release-4.16.
#jira UE-44124
#rnx
Change 3422370 on 2017/05/03 by Dan.Oconnor
Mirror 3422359
Implement UBlueprintGeneratedClass::NeedsLoadForEditorGame to match UBlueprint, also tag a class's CDO as NeedsLoadForEditorGame.
This prevents us from failing to load a UBlueprint's GeneratedClass when running the editor with -server.
#jira UE-44659
Change 3423192 on 2017/05/04 by Ben.Zeigler
CIS Fix
Change 3423305 on 2017/05/04 by Ben.Zeigler
Fix "Missing opening parenthesis" warnings for Vector and Rotator the same way they were fixed for Transform
Change 3423358 on 2017/05/04 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3422809
#rnx
Change 3423766 on 2017/05/04 by Ben.Zeigler
#jira UE-44680 Delete some corrupted redirectors that are no longer in use
Change 3423804 on 2017/05/04 by Dan.Oconnor
Honor SaveIntermediateCompilerResults when using compilation manager
Change 3424010 on 2017/05/04 by Marc.Audy
Validate that switch string cases are unique
Change 3424011 on 2017/05/04 by Marc.Audy
Re-fix switch node default pin not appearing as an exec output
Remove unused boolean
Change 3424071 on 2017/05/04 by Ben.Zeigler
Delete FixupRedirects commandlet, replace with -FixupRedirects/FixupRedirectors option on ResavePackages. This new method is much faster than the old commandlet as it uses the asset registry vs loading all packages, fixing up all redirectors in Fortnite only took about an hour vs 12+ hours the old way
Removed some hacky bits in Core that only existed to support FixupRedirects
Change it so the AssetRegistry listens to DirectoryWatcher callbacks in commandlets now that commandlets use the asset registry properly. This won't do anything unless you tick directory watcher the way that ResavePackages does
Change 3424313 on 2017/05/04 by Dan.Oconnor
Address missing property flags on SkeletonGeneratedClass when using compilation manager
#jira UE-44705
Change 3424325 on 2017/05/04 by Phillip.Kavan
#jira UE-44222 - Move nativized UDS implementation details into its own .cpp file in order to avoid circular dependencies.
Change summary:
- Modified IKismetCompilerInterface::GenerateCppCodeForStruct() to include an output parameter for CPP source and modified FKismet2CompilerModule to match the updated API.
- Modified IBlueprintCompilerCppBackend::GenerateCodeFromStruct() to include an output parameter for CPP source and modified FBlueprintCompilerCppBackendBase to match the updated API.
- Modified FBlueprintNativeCodeGenUtils::GenerateCppCode() to adjust the call to GenerateCppCodeForStruct() to include CPP source output.
- Modified FGatherConvertedClassDependencies::DependenciesForHeader() to switch UDS property dependencies to be forward declarations rather than includes (for default value init code).
- Modified FEmitDefaultValueHelper::GenerateGetDefaultValue() to emit implementation details to the 'Body' container, and adjust the header content to be a declaration only.
- Modified FIncludeHeaderHelper::EmitInner() to exclude a potentially-redundant line for the module's .h file, for the case when the caller has included the base filename in the 'AlreadyIncluded' set.
- Modified FEmitterLocalContext::FindGloballyMappedObject() to limit the 'TryUsedAssetsList' path to UClass conversions only (since that requires a UDynamicClass target to work).
- Modified FGatherConvertedClassDependencies::DependenciesForHeader() to only include BPGC fields if they are also being converted. Eliminates an issue with missing header files in generated code.
Change 3424359 on 2017/05/04 by Ben.Zeigler
Fix issue where StreamableManager would break when requesting an async load that failed the first time. Because our game supports downloading assets during gameplay it's not safe to assume it will never load again.
Port of CL #3424159
Change 3424367 on 2017/05/04 by Ben.Zeigler
Fix some asset manager warnings to not go off in invalid cases
Change 3425270 on 2017/05/05 by Marc.Audy
Pack booleans/enums in UEdGraphNode and FOptionalPinFromProperty
#rnx
Change 3425696 on 2017/05/05 by Ben.Zeigler
#jira UE-44672 Fix it so select node option pins get populated with default values properly
#jira UE-43927 Fix it so select node opion pin type is correctly maintained accross node recreation, as opposed to deriving from the attached pins
#jira UE-44675 Fix it to correctly refresh select node when switching from bool to integer index
Change 3425833 on 2017/05/05 by Ben.Zeigler
#jira UE-31749 Fix it so Undo works properly when modifying a local variable
#jira UE-44736 Fix it so changing the type of a local variable correctly resets the default value
Change 3425890 on 2017/05/05 by Marc.Audy
Fix Copy/Paste of child actor components losing the template
#jira UE-44566
Change 3425947 on 2017/05/05 by Ben.Zeigler
This was meant to be part of last checkin
Change 3425959 on 2017/05/05 by Ben.Zeigler
#jira UE-44692 Fix it so only the sequentially last node can be removed from a Switch On Int, and for Switch On Name stop it from removing an exec pin if it's the only non-default one
Change 3425979 on 2017/05/05 by Dan.Oconnor
PVS fix
Change 3425985 on 2017/05/05 by Phillip.Kavan
Fix an uninitialized variable.
#rnx
Change 3426043 on 2017/05/05 by Ben.Zeigler
#jira UE-35583 Correctly refresh array node UI when connecting pins that change it away from wildcard
Change 3426174 on 2017/05/05 by Zak.Middleton
#ue4 - Avoid call to virtual getSimulationFilterData() to only use it when needed in PreFilter if we actually have items in the IgnoreComponents list (which is rare). The sim filter data 'word2' stores the component ID.
Change 3426621 on 2017/05/05 by Phillip.Kavan
#jira UE-44708 - Fix an issue that re-introduced component data loss in a non-nativized child Blueprint class with a nativized parent Blueprint class.
Change summary:
- Removed an unnecessary additional check I had for the presence of "-NativizeAssets" switch on the command line in UBlueprint::BeginCacheForCookedPlatformData(). This check was failing because the usage was recently changed to include an optional value. It was not needed anyway so I just removed it.
#rnx
Change 3426906 on 2017/05/05 by Ben.Zeigler
#jira UE-11189 Fix function/macro input default values to show as a pin customization instead of as a broken text box that doesn't work correctly for most types. This fixes enums and provide validation for other types
Types that don't have a customization (most structs) will now show any more, they did not work before either
#jira UE-21754 Hide function default values if pass by reference is set
Fix it so changing input parameter will also reset default value, to avoid having the wrong type value set and to work the same as local variables
Change 3426941 on 2017/05/05 by Dan.Oconnor
Fix determinstic cooking of LoadAssetClass nodes in macros
Change 3427021 on 2017/05/05 by Dan.Oconnor
Build fix, make initialization order in source match artifact
#rnx
Change 3427135 on 2017/05/05 by Phillip.Kavan
#jira UE-44702 - Restore code-based interface classes to Blueprint editor UI.
Change summary:
- Partially backed out CL# 3348513 to return to previous behavior for 4.16. The UI is no longer filtering on the __is_abstract() type trait for interface classes.
- Modified FNativeClassHeaderGenerator::ExportClassFromSourceFileInner() to emit the _getUObject() declaration for native interface types as a default implementation that returns NULL rather than as a pure virtual declaration.
#rnx
Change 3427144 on 2017/05/06 by Marc.Audy
Fix init order
#rnx
Change 3427146 on 2017/05/06 by Marc.Audy
remove stray semicolon
#rnx
Change 3427242 on 2017/05/06 by Phillip.Kavan
#jira UE-44744 - Fix a regression in which a UMG Widget Blueprint property not explicitly marked as a variable would cause Blueprint nativization to fail at package time.
Change summary:
- Modified FWidgetBlueprintCompiler::CreateClassVariablesFromBlueprint() to only add 'Category' metadata when we set the 'CPF_BlueprintVisible' flag on the UProperty, which in is now tied to whether or not the property has been explcitly marked as a variable. This avoids a UHT warning when compiling the nativized codegen that would cause packaging to fail.
#rnx
Change 3427720 on 2017/05/08 by Dan.Oconnor
Backing out 3419202
#rnx
Change 3427725 on 2017/05/08 by Dan.Oconnor
SA fix
#rnx
Change 3427734 on 2017/05/08 by Dan.Oconnor
More exhaustive GEditor null checks, to appease SA
#rnx
Change 3427882 on 2017/05/08 by Marc.Audy
Properly order all booleans in intialization
#rnx
Change 3428049 on 2017/05/08 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3427804
#rnx
Change 3428523 on 2017/05/08 by Ben.Zeigler
#jira UE-44781 Refresh function input UI when blueprint graph refreshes, needed as pins may have gone away
Change 3428563 on 2017/05/08 by Ben.Zeigler
#jira UE-44783 If setting a hard reference pin type from a string, load the referenced object.
Change 3428595 on 2017/05/08 by Dan.Oconnor
Avoid node reconstruction when we're compiling a blueprint with no linker (e.g., a duplicated blueprint)
#jira UE-44777
Change 3428599 on 2017/05/08 by Ben.Zeigler
#jira UE-44789 Fix string asset renamer to not mark IsPersistent becuase that crashes in lightmap code, change it so the path fixup doesn't require the persistent flag
Change 3428609 on 2017/05/08 by Dan.Oconnor
Improved fix for UE-44777
#jira UE-44777
#rnx
Change 3429176 on 2017/05/08 by Phillip.Kavan
#jira UE-44755 - Fix nativization build errors when packaging a game project that is not IWYU-compliant for a build target that disables PCH files.
- Mirrored from //UE4/Release-4.16 (CL# 3429030).
#rnx
Change 3429198 on 2017/05/08 by Phillip.Kavan
CIS fix.
#rnx
Change 3429583 on 2017/05/08 by Ben.Zeigler
Fix SGraphPinClass to work properly after my changes to allow unloaded assets. For Class pins we need to store separate Runtime and Editor asset data objects, as one has _C and refers to the class, and the other doesn't and refers to the blueprint. The content browser wants the editor path, the pin defaults want the runtime path.
Change default value widgets to look more like properties widgets by forcing them to act as highlighted and disabling black background
Change 3429640 on 2017/05/08 by Marc.Audy
Fix issues with select nodes in macros connected to wildcard pins.
#jira UE-44799
#rnx
Change 3429890 on 2017/05/08 by Ben.Zeigler
Fix function/macro defaults to properly propagate when changed using the new edit UI
Refactor some code out of the details customization into the k2 schema
Disable defaults UI for object/class/interface hard references as it is disabled in KismetCompiler
Change 3429947 on 2017/05/08 by Michael.Noland
Core: Backing out CL# 3394352 (marking FDateTime and FTimespan nonexport member Tick with UPROPERTY()), which will re-break UE-39921 but fix UE-44418
There appears to be a more serious underlying issue with how the CDO is instanced which needs to be addressed
#jira UE-44418
#reimplementing 3411681 from Release 4.16
Change 3429987 on 2017/05/08 by Ben.Zeigler
#jira UE-44798 Do a better job of validating object paths saved as default values, due to an old bug with local variables some object paths are saved as struct exportext
At load time clear invalid default value for local variables
Add IsValidObjectPath to FPackageName that validates the passed in path would be valid to load with LoadObject
Change 3430392 on 2017/05/09 by Marc.Audy
Fix SA CIS error
#rnx
Change 3430747 on 2017/05/09 by Ben.Zeigler
#jira UE-44836 Don't reconstruct node during callback for param value changing, this can happen during a reconstruction and recursive reconstruction is unsafe
Don't call ModifyUserDefinedPinDefaultValue unless the default value has actually changed
Change 3431027 on 2017/05/09 by Marc.Audy
Fix BPRW mark up causing Ocean warnings
#rnx
Change 3431353 on 2017/05/09 by Marc.Audy
Fix UHT error due to exposing FJsonObjectWrapper to blueprints
#rnx
[CL 3431398 by Marc Audy in Main branch]
2017-05-09 17:15:32 -04:00
continue ;
2014-03-14 14:13:41 -04:00
}
2015-08-21 14:21:07 -04:00
// Create a new FAssetData for this asset and update it with the gathered data
Deprecating ANY_PACKAGE.
This change consists of multiple changes:
Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values
AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes
Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names
#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32
#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786
#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)
[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
AssetDataList . Add ( new FAssetData ( FName ( * PackageName ) , FName ( * PackagePath ) , FName ( * ObjectPathWithoutPackageName ) , FTopLevelAssetPath ( AssetClassName ) , FAssetDataTagMap ( ) , PackageFileSummary . ChunkIDs , PackageFileSummary . GetPackageFlags ( ) ) ) ;
2014-03-14 14:13:41 -04:00
}
return true ;
}
2022-03-14 13:20:30 -04:00
bool FPackageReader : : ReadAssetRegistryDataFromCookedPackage ( TArray < FAssetData * > & AssetDataList , bool & bOutIsCookedWithoutAssetData )
2015-08-24 17:36:14 -04:00
{
2022-03-14 13:20:30 -04:00
FString PackageName ;
if ( ! TryGetLongPackageName ( PackageName ) )
2015-08-24 17:36:14 -04:00
{
2022-03-14 13:20:30 -04:00
return false ;
}
bool bFoundAtLeastOneAsset = false ;
// If the packaged is saved with the right version we have the information
// which of the objects in the export map as the asset.
// Otherwise we need to store a temp minimal data and then force load the asset
// to re-generate its registry data
if ( UEVer ( ) > = VER_UE4_COOKED_ASSETS_IN_EDITOR_SUPPORT )
{
const FString PackagePath = FPackageName : : GetLongPackagePath ( PackageName ) ;
TArray < FObjectImport > ImportMap ;
TArray < FObjectExport > ExportMap ;
if ( ! SerializeNameMap ( ) )
2021-11-22 08:01:32 -05:00
{
return false ;
}
2022-03-14 13:20:30 -04:00
if ( ! SerializeImportMap ( ImportMap ) )
2015-08-24 17:36:14 -04:00
{
2022-03-14 13:20:30 -04:00
return false ;
}
if ( ! SerializeExportMap ( ExportMap ) )
{
return false ;
}
for ( FObjectExport & Export : ExportMap )
{
if ( Export . bIsAsset )
2020-06-23 18:40:00 -04:00
{
2022-03-14 13:20:30 -04:00
// We need to get the class name from the import/export maps
Deprecating ANY_PACKAGE.
This change consists of multiple changes:
Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values
AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes
Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names
#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32
#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786
#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)
[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
FString ObjectClassName ;
2022-03-14 13:20:30 -04:00
if ( Export . ClassIndex . IsNull ( ) )
2015-08-24 17:36:14 -04:00
{
Deprecating ANY_PACKAGE.
This change consists of multiple changes:
Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values
AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes
Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names
#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32
#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786
#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)
[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
ObjectClassName = UClass : : StaticClass ( ) - > GetPathName ( ) ;
2015-08-24 17:36:14 -04:00
}
2022-03-14 13:20:30 -04:00
else if ( Export . ClassIndex . IsExport ( ) )
{
const FObjectExport & ClassExport = ExportMap [ Export . ClassIndex . ToExport ( ) ] ;
Deprecating ANY_PACKAGE.
This change consists of multiple changes:
Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values
AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes
Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names
#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32
#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786
#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)
[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
ObjectClassName = PackageName ;
ObjectClassName + = ' . ' ;
ClassExport . ObjectName . AppendString ( ObjectClassName ) ;
2022-03-14 13:20:30 -04:00
}
else if ( Export . ClassIndex . IsImport ( ) )
{
const FObjectImport & ClassImport = ImportMap [ Export . ClassIndex . ToImport ( ) ] ;
Deprecating ANY_PACKAGE.
This change consists of multiple changes:
Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values
AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes
Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names
#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32
#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786
#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)
[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
const FObjectImport & ClassPackageImport = ImportMap [ ClassImport . OuterIndex . ToImport ( ) ] ;
ClassPackageImport . ObjectName . AppendString ( ObjectClassName ) ;
ObjectClassName + = ' . ' ;
ClassImport . ObjectName . AppendString ( ObjectClassName ) ;
2022-03-14 13:20:30 -04:00
}
Deprecating ANY_PACKAGE.
This change consists of multiple changes:
Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values
AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes
Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names
#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32
#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786
#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)
[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
AssetDataList . Add ( new FAssetData ( FName ( * PackageName ) , FName ( * PackagePath ) , Export . ObjectName , FTopLevelAssetPath ( ObjectClassName ) , FAssetDataTagMap ( ) , TArray < int32 > ( ) , GetPackageFlags ( ) ) ) ;
2022-03-14 13:20:30 -04:00
bFoundAtLeastOneAsset = true ;
2015-08-24 17:36:14 -04:00
}
}
}
2022-03-14 13:20:30 -04:00
bOutIsCookedWithoutAssetData = ! bFoundAtLeastOneAsset ;
return true ;
2015-08-24 17:36:14 -04:00
}
2022-03-14 13:20:30 -04:00
bool FPackageReader : : ReadDependencyData ( FPackageDependencyData & OutDependencyData , EReadOptions Options )
2014-03-14 14:13:41 -04:00
{
2020-10-09 22:42:26 -04:00
FString PackageNameString ;
2022-03-02 13:04:48 -05:00
if ( ! TryGetLongPackageName ( PackageNameString ) )
2020-10-09 22:42:26 -04:00
{
// Path was possibly unmounted
return false ;
}
OutDependencyData . PackageName = FName ( * PackageNameString ) ;
2022-03-14 13:20:30 -04:00
if ( ! EnumHasAnyFlags ( Options , EReadOptions : : PackageData | EReadOptions : : Dependencies ) )
{
return true ;
}
2014-03-14 14:13:41 -04:00
2020-06-23 18:40:00 -04:00
if ( ! SerializeNameMap ( ) )
{
return false ;
}
2022-03-31 09:16:55 -04:00
TArray < FObjectImport > ImportMap ;
if ( ! SerializeImportMap ( ImportMap ) )
2020-06-23 18:40:00 -04:00
{
return false ;
}
2022-03-14 13:20:30 -04:00
if ( EnumHasAnyFlags ( Options , EReadOptions : : PackageData ) )
2021-05-14 08:33:53 -04:00
{
2022-03-14 13:20:30 -04:00
OutDependencyData . bHasPackageData = true ;
FAssetPackageData & PackageData = OutDependencyData . PackageData ;
PackageData . DiskSize = PackageFileSize ;
PRAGMA_DISABLE_DEPRECATION_WARNINGS ;
PackageData . PackageGuid = PackageFileSummary . Guid ;
PRAGMA_ENABLE_DEPRECATION_WARNINGS ;
PackageData . SetCustomVersions ( PackageFileSummary . GetCustomVersionContainer ( ) . GetAllVersions ( ) ) ;
PackageData . FileVersionUE = PackageFileSummary . GetFileVersionUE ( ) ;
PackageData . FileVersionLicenseeUE = PackageFileSummary . GetFileVersionLicenseeUE ( ) ;
PackageData . SetIsLicenseeVersion ( PackageFileSummary . SavedByEngineVersion . IsLicenseeVersion ( ) ) ;
2022-03-31 09:16:55 -04:00
if ( ! SerializeImportedClasses ( ImportMap , PackageData . ImportedClasses ) )
2022-03-14 13:20:30 -04:00
{
return false ;
}
if ( ! SerializePackageTrailer ( PackageData ) )
{
return false ;
}
2021-05-14 08:33:53 -04:00
}
2022-03-14 13:20:30 -04:00
if ( EnumHasAnyFlags ( Options , EReadOptions : : Dependencies ) )
2020-06-23 18:40:00 -04:00
{
2022-03-14 13:20:30 -04:00
OutDependencyData . bHasDependencyData = true ;
2022-03-31 09:16:55 -04:00
TArray < FName > SoftPackageReferenceList ;
if ( ! SerializeSoftPackageReferenceList ( SoftPackageReferenceList ) )
2022-03-14 13:20:30 -04:00
{
return false ;
}
2022-03-31 09:16:55 -04:00
FLinkerTables SearchableNames ;
if ( ! SerializeSearchableNamesMap ( SearchableNames ) )
2022-03-14 13:20:30 -04:00
{
return false ;
}
2022-03-31 09:16:55 -04:00
TBitArray < > ImportUsedInGame ;
TBitArray < > SoftPackageUsedInGame ;
if ( ! SerializeAssetRegistryDependencyData ( ImportUsedInGame , SoftPackageUsedInGame , ImportMap ,
SoftPackageReferenceList ) )
2022-03-14 13:20:30 -04:00
{
return false ;
}
2022-03-31 09:16:55 -04:00
OutDependencyData . LoadDependenciesFromPackageHeader ( OutDependencyData . PackageName , ImportMap , SoftPackageReferenceList ,
SearchableNames . SearchableNamesMap , ImportUsedInGame , SoftPackageUsedInGame ) ;
2022-02-11 08:04:32 -05:00
}
2014-03-14 14:13:41 -04:00
return true ;
}
2020-06-23 18:40:00 -04:00
bool FPackageReader : : SerializeNameMap ( )
2014-03-14 14:13:41 -04:00
{
if ( PackageFileSummary . NameCount > 0 )
{
2020-06-23 18:40:00 -04:00
if ( ! StartSerializeSection ( PackageFileSummary . NameOffset ) )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeNameMapInvalidNameOffset " , PackageFilename ) ;
return false ;
}
const int MinSizePerNameEntry = 1 ;
if ( PackageFileSize < Tell ( ) + PackageFileSummary . NameCount * MinSizePerNameEntry )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeNameMapInvalidNameCount " , PackageFilename ) ;
return false ;
}
2014-03-14 14:13:41 -04:00
for ( int32 NameMapIdx = 0 ; NameMapIdx < PackageFileSummary . NameCount ; + + NameMapIdx )
{
// Read the name entry from the file.
2016-03-15 14:49:07 -04:00
FNameEntrySerialized NameEntry ( ENAME_LinkerConstructor ) ;
2014-03-14 14:13:41 -04:00
* this < < NameEntry ;
2020-06-23 18:40:00 -04:00
if ( IsError ( ) )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeNameMapInvalidName " , PackageFilename ) ;
return false ;
}
2016-03-15 14:49:07 -04:00
NameMap . Add ( FName ( NameEntry ) ) ;
2014-03-14 14:13:41 -04:00
}
}
2020-06-23 18:40:00 -04:00
return true ;
2014-03-14 14:13:41 -04:00
}
2020-06-23 18:40:00 -04:00
bool FPackageReader : : SerializeImportMap ( TArray < FObjectImport > & OutImportMap )
2014-03-14 14:13:41 -04:00
{
if ( PackageFileSummary . ImportCount > 0 )
{
2020-06-23 18:40:00 -04:00
if ( ! StartSerializeSection ( PackageFileSummary . ImportOffset ) )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeImportMapInvalidImportOffset " , PackageFilename ) ;
return false ;
}
const int MinSizePerImport = 1 ;
if ( PackageFileSize < Tell ( ) + PackageFileSummary . ImportCount * MinSizePerImport )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeImportMapInvalidImportCount " , PackageFilename ) ;
return false ;
}
2014-03-14 14:13:41 -04:00
for ( int32 ImportMapIdx = 0 ; ImportMapIdx < PackageFileSummary . ImportCount ; + + ImportMapIdx )
{
2021-05-14 08:33:53 -04:00
FObjectImport & Import = OutImportMap . Emplace_GetRef ( ) ;
* this < < Import ;
2020-06-23 18:40:00 -04:00
if ( IsError ( ) )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeImportMapInvalidImport " , PackageFilename ) ;
return false ;
}
2014-03-14 14:13:41 -04:00
}
}
2020-06-23 18:40:00 -04:00
return true ;
2014-03-14 14:13:41 -04:00
}
2022-03-22 16:31:12 -04:00
static FName CoreUObjectPackageName ( TEXT ( " /Script/CoreUObject " ) ) ;
static FName ScriptStructName ( TEXT ( " ScriptStruct " ) ) ;
2021-05-14 08:33:53 -04:00
bool FPackageReader : : SerializeImportedClasses ( const TArray < FObjectImport > & ImportMap , TArray < FName > & OutClassNames )
{
OutClassNames . Reset ( ) ;
TSet < int32 > ClassImportIndices ;
2022-03-22 16:31:12 -04:00
// Any import that is specified as the class of an export is an imported class
2021-05-14 08:33:53 -04:00
if ( PackageFileSummary . ExportCount > 0 )
{
if ( ! StartSerializeSection ( PackageFileSummary . ExportOffset ) )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeExportMapInvalidExportOffset " , PackageFilename ) ;
return false ;
}
const int MinSizePerExport = 1 ;
if ( PackageFileSize < Tell ( ) + PackageFileSummary . ExportCount * MinSizePerExport )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeExportMapInvalidExportCount " , PackageFilename ) ;
return false ;
}
FObjectExport ExportBuffer ;
for ( int32 ExportMapIdx = 0 ; ExportMapIdx < PackageFileSummary . ExportCount ; + + ExportMapIdx )
{
* this < < ExportBuffer ;
if ( IsError ( ) )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeExportMapInvalidExport " , PackageFilename ) ;
return false ;
}
if ( ExportBuffer . ClassIndex . IsImport ( ) )
{
ClassImportIndices . Add ( ExportBuffer . ClassIndex . ToImport ( ) ) ;
}
}
}
2022-03-22 16:31:12 -04:00
// Any imports of types UScriptStruct are an imported struct and need to be added to ImportedClasses
// This covers e.g. DataTable, which has a RowStruct pointer that it uses in its native serialization to
// serialize data into its rows
// TODO: Projects may create their own ScriptStruct subclass, and if they use one of these subclasses
// as a serialized-external-struct-pointer then we will miss it. In a future implementation we will
// change the PackageReader to report all imports, and allow the AssetRegistry to decide which ones
// are classes based on its class database.
for ( int32 ImportIndex = 0 ; ImportIndex < ImportMap . Num ( ) ; + + ImportIndex )
{
const FObjectImport & ObjectImport = ImportMap [ ImportIndex ] ;
if ( ObjectImport . ClassPackage = = CoreUObjectPackageName & & ObjectImport . ClassName = = ScriptStructName )
{
ClassImportIndices . Add ( ImportIndex ) ;
}
}
2021-05-14 08:33:53 -04:00
TArray < FName , TInlineAllocator < 5 > > ParentChain ;
FNameBuilder ClassObjectPath ;
for ( int32 ClassImportIndex : ClassImportIndices )
{
ParentChain . Reset ( ) ;
ClassObjectPath . Reset ( ) ;
if ( ! ImportMap . IsValidIndex ( ClassImportIndex ) )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeImportedClassesInvalidClassIndex " , PackageFilename ) ;
return false ;
}
bool bParentChainComplete = false ;
int32 CurrentParentIndex = ClassImportIndex ;
for ( ; ; )
{
const FObjectImport & ObjectImport = ImportMap [ CurrentParentIndex ] ;
ParentChain . Add ( ObjectImport . ObjectName ) ;
if ( ObjectImport . OuterIndex . IsImport ( ) )
{
CurrentParentIndex = ObjectImport . OuterIndex . ToImport ( ) ;
if ( ! ImportMap . IsValidIndex ( CurrentParentIndex ) )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeImportedClassesInvalidImportInParentChain " ,
PackageFilename ) ;
return false ;
}
}
else if ( ObjectImport . OuterIndex . IsNull ( ) )
{
bParentChainComplete = true ;
break ;
}
else
{
check ( ObjectImport . OuterIndex . IsExport ( ) ) ;
// Ignore classes in an external package but with an object in this package as one of their outers;
// We do not need to handle that case yet for Import Classes, and we would have to make this
// loop more complex (searching in both ExportMap and ImportMap) to do so
break ;
}
2021-05-14 15:04:48 -04:00
}
2021-05-14 08:33:53 -04:00
if ( bParentChainComplete )
{
int32 NumTokens = ParentChain . Num ( ) ;
check ( NumTokens > = 1 ) ;
2022-03-10 21:02:28 -05:00
const TCHAR Delimiters [ ] = { TEXT ( ' . ' ) , SUBOBJECT_DELIMITER_CHAR , TEXT ( ' . ' ) } ;
2021-05-14 08:33:53 -04:00
int32 DelimiterIndex = 0 ;
ParentChain [ NumTokens - 1 ] . AppendString ( ClassObjectPath ) ;
for ( int32 TokenIndex = NumTokens - 2 ; TokenIndex > = 0 ; - - TokenIndex )
{
ClassObjectPath < < Delimiters [ DelimiterIndex ] ;
DelimiterIndex = FMath : : Min ( DelimiterIndex + 1 , static_cast < int32 > ( UE_ARRAY_COUNT ( Delimiters ) ) - 1 ) ;
ParentChain [ TokenIndex ] . AppendString ( ClassObjectPath ) ;
}
OutClassNames . Emplace ( ClassObjectPath ) ;
}
}
OutClassNames . Sort ( FNameLexicalLess ( ) ) ;
return true ;
}
2020-06-23 18:40:00 -04:00
bool FPackageReader : : SerializeExportMap ( TArray < FObjectExport > & OutExportMap )
2015-07-24 05:57:33 -04:00
{
if ( PackageFileSummary . ExportCount > 0 )
{
2020-06-23 18:40:00 -04:00
if ( ! StartSerializeSection ( PackageFileSummary . ExportOffset ) )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeExportMapInvalidExportOffset " , PackageFilename ) ;
return false ;
}
const int MinSizePerExport = 1 ;
if ( PackageFileSize < Tell ( ) + PackageFileSummary . ExportCount * MinSizePerExport )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeExportMapInvalidExportCount " , PackageFilename ) ;
return false ;
}
2015-07-24 05:57:33 -04:00
for ( int32 ExportMapIdx = 0 ; ExportMapIdx < PackageFileSummary . ExportCount ; + + ExportMapIdx )
{
FObjectExport * Export = new ( OutExportMap ) FObjectExport ;
* this < < * Export ;
2020-06-23 18:40:00 -04:00
if ( IsError ( ) )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeExportMapInvalidExport " , PackageFilename ) ;
return false ;
}
2015-07-24 05:57:33 -04:00
}
}
2020-06-23 18:40:00 -04:00
return true ;
2015-07-24 05:57:33 -04:00
}
2020-06-23 18:40:00 -04:00
bool FPackageReader : : SerializeSoftPackageReferenceList ( TArray < FName > & OutSoftPackageReferenceList )
2014-07-24 13:25:23 -04:00
{
2021-04-14 05:14:13 -04:00
if ( UEVer ( ) > = VER_UE4_ADD_STRING_ASSET_REFERENCES_MAP & & PackageFileSummary . SoftPackageReferencesOffset > 0 & & PackageFileSummary . SoftPackageReferencesCount > 0 )
2014-07-24 13:25:23 -04:00
{
2020-06-23 18:40:00 -04:00
if ( ! StartSerializeSection ( PackageFileSummary . SoftPackageReferencesOffset ) )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeSoftPackageReferenceListInvalidReferencesOffset " , PackageFilename ) ;
return false ;
}
const int MinSizePerSoftPackageReference = 1 ;
if ( PackageFileSize < Tell ( ) + PackageFileSummary . SoftPackageReferencesCount * MinSizePerSoftPackageReference )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeSoftPackageReferenceListInvalidReferencesCount " , PackageFilename ) ;
return false ;
}
2021-04-14 05:14:13 -04:00
if ( UEVer ( ) < VER_UE4_ADDED_SOFT_OBJECT_PATH )
2014-07-24 13:25:23 -04:00
{
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3582324)
#lockdown Nick.Penwarden
#rb none
#rnx
============================
MAJOR FEATURES & CHANGES
============================
Change 3431439 by Marc.Audy
Editor only subobjects shouldn't exist in PIE world
#jira UE-43186
Change 3457323 by Marc.Audy
Undo CL# 3431439 and once again allow (incorrectly) for editor only objects to exist in a PIE world
#jira UE-45087
Change 3499927 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker
#jira UE-43458
Change 3502939 by Michael.Noland
Back out changelist 3499927
Change 3522783 by Zak.Middleton
#ue4 - Imported new simple collision for Engine/Content/BasicShaps/Cylinder.uasset which is a single convex shape (rather than being 4 shapes as before).
Change 3544641 by Dan.Oconnor
Remove conditional that is no longer needed, replace with ensure. It is unsafe to change CDO names
#jira OR-38176
Change 3544645 by Dan.Oconnor
In addition to marking nodes as not transient, FBlueprintEditor::ExpandNode needs to mark them as transactional
#jira UE-45248
Change 3545023 by Marc.Audy
Properly encapsulate FPinDeletionQueue
Fix ensure during deletion of split pins when not clearing links
Fix split pins able to end up in delete queue twice during undo/redo
Change 3545025 by Marc.Audy
Properly allow changing the pin type from a struct that is split on the node
#jira UE-47328
Change 3545455 by Ben.Zeigler
Fix issue where combined streamable handles could be freed before their complete callback is called if nothing external referenced them
Copy of CL#3544474
Change 3545456 by Ben.Zeigler
Allow PrimaryAssets to update their AssetData based on in-memory changes when launching 'Standalone Game' and 'Mobile Preview' from the editor. As it was, changes could be detected and propagated through UPrimaryDataAsset::PostLoad, but the changes would always reapply whatever already exists in the AssetRegistry. The primary use-case for this: making AssetBundle tag changes and allowing them to propagate without resaving/recooking all affected assets.
Copy of CL #3544374
Change 3545547 by Ben.Zeigler
CIS Fix
Change 3545568 by Michael.Noland
PR #3758: Fixing a comment typo from Transistion to Transition (Contributed by gsfreema)
#jira UE-46845
Change 3545582 by Michael.Noland
Blueprints: Prevent duplicate messages from being added to the compiler results log (fixes a crash when resizing the results log while a math expression node has an error)
Blueprints: Fixed the tooltip of math expression nodes not showing up, and error messages getting cleared on subsequent compiles
[Duplicating fixes for UE-47491 and UE-47512 from 4.17 to Dev-Framework]
Change 3546528 by Ben.Zeigler
#jira UE-47548
Fix crash when a map's key type has changed but value has not, it was passing the UStruct defaults in when serialize was expecting the default instance, so pass null instead as we don't have the instance
Change 3546544 by Marc.Audy
Fix split pin restoration logic to deal with wildcards and variations in const/refness
Change 3546551 by Marc.Audy
Don't crash if the struct type is missing for whatever reason
Change 3547152 by Marc.Audy
Fix array exporting so you don't end up getting none instead of defaults
#jira UE-47320
Change 3547438 by Marc.Audy
Fix split pins on class defaults
Don't cause a structural change when reapplying a split pin as part of node reconstruction
#jira UE-46935
Change 3547501 by Ben.Zeigler
Fix ensure, it's valid to pass a null path for a dynamic asset
Change 3551185 by Ben.Zeigler
#jira UE-42835 Fix it so SoftObjectPaths work correctly when inside levels loaded for the first time from PIE. Added code to do in-place PIE fixup for levels that are loaded instead of duplicated, and changed the fixup logic to fix all level references, not just ones being explicitly duplicated
Change 3551723 by Ben.Zeigler
Improve UI for displaying actor soft references. Add an error/warning icon if the cross level reference is broken or unloaded, and fix various display and copy/paste behaviors
Change 3553216 by Phillip.Kavan
#jira UE-39303, UE-46268, UE-47519
- Nativized UDS now support external asset dependencies and will construct their own linker import tables on load.
Change summary:
- Modified FCompactBlueprintDependencyData and FFakeImportTableHelper to be more relevant to UStruct and not just UClass-derivative types.
- Modified FBlueprintDependencyData to accept a single FCompactBlueprintDependencyData struct rather than its individual fields.
- Modified FBlueprintCompilerCppBackendBase::GenerateCodeFromStruct() to emit dependency assignment and static type registration functions for nativized UStruct types.
- Modified FBlueprintNativeCodeGenModule::FStatePerPlatform to include an array for tracking UDS assets that need to be converted during the nativization pass at cook time.
- Modified FBlueprintNativeCodeGenModule::GenerateFullyConvertedClasses() to generate nativized code for UDS assets. This ensures that UDS conversion falls under the same scope as BPGC conversion, so that they both feed into the same NativizationSummary context for asset dependency tracking (i.e. since we only have a single global dependency table in the codegen). Also modified InitializeForRerunDebugOnly() to do the same.
- Modified FBlueprintNativeCodeGenModule::Convert() to defer UDS conversion so that it's done at the same time as BPGC conversion (see note above).
- Modified FEmitDefaultValueHelper::AddStaticFunctionsForDependencies() to include support for UStruct types and to conform to changes made to FCompactBlueprintDependencyData.
- Modified FEmitDefaultValueHelper::AddRegisterHelper() to include support for UStruct types.
- Modified FBlueprintNativeCodeGenModule::FindReplacedClassForObject() to ensure that converted User-Defined Enum types are switched to a UEnumProperty at package save time so that any import tables contain the proper class. This is necessary because we nativize User-Defined Enum types as 'enum class' types, and UHT will generate code for those as a UEnumProperty with an "underlying" property. However, non-nativized User-Defined Enum types are referenced as a UByteProperty with a UEnum reference, so we have to fix up all the import tables before saving. Otherwise, EDL will assert on load (see UE-47519).
Change 3553301 by Ben.Zeigler
Fix ensure when passing literal None to SoftObjectPath, it now treats them as empty instead
Change 3553631 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker. This change was originally submitted in 3499927, but it was incorrectly clearing the UField::Next pointer in UField::Serialize.
#jira UE-43458
Change 3553799 by Ben.Zeigler
Fix issue where calling WaitUntilComplete on a combined handle with Stalled children wouldn't work properly. It now forces all stalled children to start immediately. I also added a warning log when this happens and an ensure if somehow the force didn't work
Copy of CL #3553781
Change 3553896 by Michael.Noland
Blueprints: Allow the autowiring logic to better break and replace existing connections when made (e.g., when dragging a variable onto a compatible pin with an existing connection, break the old connection to allow the new connection to be made)
#jira UE-31031
Change 3553897 by Michael.Noland
Blueprints: Adjust search query when doing 'Find References' on variables from My Blueprints so that bound event nodes show up for components and widgets
#jira UE-37862
Change 3553898 by Michael.Noland
Blueprints: Add the name of the variable directly in the get/set menu options (when dragging from My Blueprints into the graph)
Change 3553909 by Michael.Noland
Blueprints: Added the full name of the type, container type (and value type for maps) to the tooltips for the type picker elements, so long names can be read in full
#jira UE-19710
Change 3554517 by Michael.Noland
Blueprints: Added an option to disable the comment bubble on comment boxes that appears when zoomed out
#jira UE-21810
Change 3554664 by Michael.Noland
Editor: Renamed "Find in CB" command to "Browse" and renamed "Search" (in BP) to "Find", so terminology is consistent and keyboard shortcuts make sense (Ctrl+B for Browse, Ctrl+F for find, not using the term Search anywhere)
#jira UE-27121
Change 3554831 by Dan.Oconnor
Non editor build fix
Change 3554834 by Dan.Oconnor
Actor bound event related warnings now show up in blueprint status when opening level blueprint for first time, improved warning message. Removed unused delegate and return value from FixLevelScriptActorBindings. Can now pass raw strings to blueprint results log (no need for Printf, although padding is not great), UClasses in compiler results log will open the generated blueprint when clicked on
#jira UE-40438
Change 3556157 by Ben.Zeigler
Convert LevelSequenceBindingReference to use FSoftObjectPath so it works properly with redirectors and fixups
Change 3557775 by Michael.Noland
Blueprints: Fixed swapped transaction messages when converting a cast node between pure and impure
#jira UE-36090
Change 3557777 by Michael.Noland
Blueprints: Allow 'Goto Definition' and 'Find References' to be used while stopped at a breakpoint
PR #3774: Expose GotoFunctionDefinition during BP debugging (Contributed by projectgheist)
#jira UE-47024
Change 3560510 by Michael.Noland
Blueprints: Add support for 'goto definition' on Create Event nodes when the Object pin is not hooked up
#jira UE-38912
Change 3560563 by Michael.Noland
Blueprints: Disallow converting a variable get node to impure/back when debugging (no graph mutating operations should be allowed)
Change 3561443 by Ben.Zeigler
Restore code to support gc.DumpPoolStats, was accidentally removed when FGCArrayPool was moved to a header.
Clean up comments around Cleanup function, the functionality to trim the memory pools was integrated into ClearWeakReferences on a prior change
Change 3561658 by Michael.Noland
Blueprints: Refactored 'Goto Definition' so there is no per-class logic in the Blueprint editor or schema any more; any node can opt in individually
- Added a key binding for Goto Definition (Alt+G)
- Added a key binding for Find References (Shift+Alt+F)
- Collapsed 'Goto Code Definition' for variables and functions into the same path, so there aren't separate menu items and commands
- Added new methods CanJumpToDefinition and JumpToDefinition to UEdGraphNode, the default behavior for UK2Node subclasses is to call GetJumpTargetForDoubleClick and call into FKismetEditorUtilities::BringKismetToFocusAttentionOnObject
- Going to a native function now goes thru a better code path that will actually put the source code editor on the function definition, rather than just opening the file containing the definition
Change 3562291 by Ben.Zeigler
Fix issue where calling FSoftObjectPtr::Get during a package save would result in that ptr being forever marked broken, because the ResolveObject fails during save. It's too risky to change that behavior, so change it so the TagAtLastTest doesn't get updated in that case
Change 3562292 by Ben.Zeigler
#jira UE-39042 When renaming or moving actors between levels it now attempts to fix any soft object references from blueprints or sequencer
When deleting actors that are soft referenced by actor/sequencer it will now warn the same way it does for level script. Added IAssetTools::FindSoftReferencesToObject to perform this search
Change it so saving a non-primary world does not result it being dirtied due to the temporary physics scene fixup
Fix issue where the actor name was shown incorrectly in the SSCS tree for actor instances, which meant that if you renamed it you would end up renaming it to the BP's name
Change 3564814 by Ben.Zeigler
#jira UE-47843 Don't set InputKey output pins to AnyKey if empty, this was causing blueprints with key events to constantly dirty themselves
Change 3566707 by Dan.Oconnor
Remove unused code, UClassGenerateCDODuplicatesForHotReload was attempting to create a CDO with a special name, which triggered an ensure. The Duplicated CDO was never used (callign code removed in 3289276 as it was a waste of cycles)
#jira None
Change 3566717 by Michael.Noland
Core: Remove all defintions that contain "_API" from the command line when compiling .rc files (they do not support repsonse files and a too-long command line will fail the compile)
Change 3566771 by Michael.Noland
Editor: Fixing deprecation warning
#jira UE-47922
Change 3567023 by Michael.Noland
Blueprints: Change various TArray<> uses to TSet<> throughout name validation and related code to enable it to scale better to high component or variable counts
Adapted from PR #3708: Fast construction of bp (Contributed by gildor2)
#jira UE-46473
Change 3567304 by Ben.Zeigler
Add bCheckRecursive option to IsEditorOnlyObject that is enabled by default and will check outer/archetype/class.
This is needed for places that call this function from outside of SavePackage.cpp when the editor only mark is set, such as the automation test code
Change 3567398 by Ben.Zeigler
Fix crash when spawning a widget that has no editor WidgetTree, but does have a cooked widget tree template due to tree inheritance
Change 3567729 by Michael.Noland
Blueprints: Clarified message about "{VariableName} is not blueprint visible" to define what that means "(BlueprintReadOnly or BlueprintReadWrite)"
Change 3567739 by Ben.Zeigler
Don't crash if PropertyStruct cannot find it's struct. The function half handled this before, but Preload crashes with a null parameter
Change 3567741 by Ben.Zeigler
Disable optimization for a path test that was crashing in VC2015 in a monolithic build
Change 3568332 by Mieszko.Zielinski
Prevented UAIPerceptionSystem::GetCurrent causing a BP error when WorldContextObject is null #UE4
#jira UE-47948
Change 3568676 by Michael.Noland
Blueprints: Allow editing the tooltip of each enum value in a user defined enum
#jira UE-20036
Known issue: Undo/redo is not currently possible on the tooltip as it is directly stored in package metadata
Change 3569128 by Michael.Noland
Blueprints: Removing the experimental profiler as we won't be returning to it any time soon
#jira UE-46852
Change 3569207 by Michael.Noland
Blueprints: Allow drag-dropping component Blueprint assets into the graph to create Add Component nodes and improved the error message when dragging something that cannot be dropped into an actor Blueprint
#jira UE-8708
Change 3569208 by Michael.Noland
Blueprints: Allow specifying a description for user defined enums (shown in the content browser)
#jira UE-20036
Change 3569209 by Michael.Noland
Editor: Allow adjusting the font size for each individual comment box node in Blueprints and Materials
#jira UE-16085
Change 3570177 by Michael.Noland
Blueprints: Fixed discrepancy between the Structure tab name and the menu option for the tab in the user defined structure editor (now both say Structure Editor)
#jira UE-47962
Change 3570179 by Michael.Noland
Blueprints: Fixed the tooltip of a user defined structure not updating immediately in the content browser after being edited
Change 3570192 by Michael.Noland
Blueprints: Added "(selected)" after the label (in the 'debug filter' dropdown in the Blueprint editor) for actors that are selected in the level editor, which should make it easier to choose the specific actor you want to debug
#jira UE-20709
Change 3571203 by Michael.Noland
Blueprints: Cleanup and refactoring to prepare for turning commented out nodes into an official feature
- Made EnabledState and bUserSetEnabledState private on UEdGraphNode and added new getters/setters
- Introduced IsAutomaticallyPlacedGhostNode() and MakeAutomaticallyPlacedGhostNode() to start decoupling the concept from commented out nodes
- Updated a couple of places that used a hardcoded UberGraphPages[0] into instead editing the most recently interacted with event graph if possible
- Updated 'is data only blueprint' logic to allow multiple ubergraph pages, as long as they're all empty of non-disabled nodes
Change 3571224 by Michael.Noland
Blueprints: Draw banners on development-only and user disabled nodes (excluding 'ghost' nodes like autogenerated event entries in new BPs)
Adapted from PR #2701: Differentiate development nodes in BP (Contributed by projectgheist)
#jira UE-29848
#jira UE-34698
Change 3571279 by Michael.Noland
Blueprints: Changed UK2Node::GetPassThroughPin so that only the execution wire on nodes with exactly one input and one output exec wire will have a corresponding pass-through pin (when there is ambiguity in which exec would be used, e.g., with a branch or sequence or timeline node, the subsequent nodes are now effectively disabled as well)
Change 3571282 by Michael.Noland
Blueprints: Fixed the tooltip for dragging a variable onto an inherited category not showing the 'move to category' hint
Change 3571284 by Michael.Noland
Blueprints: Made wires into/out of a user-disabled node draw verly dimly (other than the passthrough exec if it exists)
Change 3571311 by Ben.Zeigler
Add ActorIteratorFlags which allows overriding which types of actors/levels are iterated by ActorIterator, to allow iterating levels that are not visible.
All of the iteration logic is now in the base and the children just set different flags, which fixes it so TActorIterator does the same level collection check as FActorIterator
Change 3571313 by Ben.Zeigler
Several fixes to automation framework to allow it to work better with Cooked builds.
Change it so the automation test list is a single message. There is no guarantee on order of message packets, so several tests were being missed each time.
Change 3571485 by mason.seay
Test map for Make Set bug
Change 3571501 by Ben.Zeigler
Accidentally undid the UHT fixup for TAssetPtr during my bulk rename
Change 3571531 by Ben.Zeigler
Fix warning messages
Change 3571591 by Michael.Noland
Blueprints: Made drag-dropping assets into a graph to create a component transactional (allowing the action to be undone)
#jira UE-48024
Change 3572938 by Michael.Noland
Blueprints: Fixed a typo in a set function comment
#jira UE-48036
Change 3572941 by Michael.Noland
Blueprints: Made the compact node title for cross and dot product the words cross and dot rather than hard to see . and x symbols
#jira UE-38624
Change 3574816 by mason.seay
Renamed asset to better reflect name of object reference
Change 3574985 by mason.seay
Updated comments and string outputs to list Soft Object Reference
Change 3575740 by Ben.Zeigler
#jira UE-48061 Change it so Editor builds work like cooked builds and always try to reuse existing packages when loading them instead of recreating them in place. Recreating in place does not work well for levels and blueprints, and blueprints already had a hack that was causing this behavior to not activate
Change 3575795 by Ben.Zeigler
#jira UE-48118 Call into the AssetManager as part of the DistillPackages commandlet. This makes sure that ShooterGame and EngineTest end up with the correct content in launcher builds
Change 3576374 by mason.seay
Forgot to submit the deleting of a redirector
Change 3576966 by Ben.Zeigler
#jira UE-48153 Fix issue where actors in streaming levels weren't properly replicating in PIE. It now does the remap path on both send and receive for the manual PC level streaming commands
Change 3577002 by Marc.Audy
Prevent wildcard pins from being connected to exec pins
#jira UE-48148
Change 3577232 by Phillip.Kavan
#jira UE-48034 - Fix EDL assert on load caused by a native reference to a nativized BP class that also references a nativized UDS asset.
Change summary:
- Modified FNativeClassHeaderGenerator::ExportGeneratedStructBodyMacros() to emit the 'ReplaceConverted' package name for the FCompiledInDeferStruct global associated with the nativized UDS asset in the UHT codegen. This brings nativized UDS to parity with nativized BP class assets (it was likely just an oversight initially).
Change 3577710 by Dan.Oconnor
Mirror of 3576977:
Fix for crash when loading cooked uassets that reference functions that are not present
#jira UE-47644
Change 3577723 by Dan.Oconnor
Prevent deferring of classes that are needed to load subobjects
#jira UE-47726
Change 3577741 by Dan.Oconnor
Back out changelist 3577723 - causes crash when starting QAGame in Dev-Framework - not in Release-4.17
Change 3578938 by Ben.Zeigler
#jira UE-27124 Fix issue where renaming a map with legacy map build data would end up with a half-loaded redirector package, becuase the old map build data was still in use. It's possible the call to HandleLegacyMapBuildData should just be in World PostLoad instead of piecemeal in several other places but I am unsure.
Fix it so the redirector cleanup code on map change will not be stopped by non-standalone top level objects, which could be left behind by issues in other systems
Change 3578947 by Marc.Audy
(4.17) Properly expose members of DialogueContext to blueprints
#jira UE-48175
Change 3578952 by Ben.Zeigler
Fix ensure where ParentHandles on a StreamableHandle could be modified while iterating
Change 3579315 by mason.seay
Test map for Make Container nodes
Change 3579600 by Ben.Zeigler
Disable window test on non-desktop platforms as they cannot be resized post launch
Change 3579601 by Ben.Zeigler
#jira UE-48236 Disable optimizations on PS4 for certain math tests pending fixing of platform issue
Change 3579713 by Dan.Oconnor
Prevent crashes when bluepints implement an interface that was deleted
#jira UE-48223
Change 3579719 by Dan.Oconnor
Fix two compilation manager issues: Make sure CDOs are not renamed under a UClass, because they will be considered as possible subobjects, which has bad side effects and make sure that we update references even on empty functions, so that empty UFunctions are not left with references to REINST data
#jira UE-48240
Change 3579745 by Michael.Noland
Blueprints: Improve categorization and reordering support in 'My Blueprints'
- Allow drag-dropping functions, macros, delegates, etc... to reorder them within a category or to change categories (bringing them to parity with variables)
- Make category ordering on all categories sticky so you can reorder categories (the relative ordering will be the same within different sections like variables and functions)
- Added hover cues when drag dropping some items that were missing them (e.g., event dispatchers)
- Added support for renaming categories using F2
Known issues (none are regressions):
- Timelines cannot be moved to other categories or reordered
- Renaming a nested category will result in it becoming a top level category (discarding the parent category chain)
- Some actions do not support undo
#jira UE-31557
Change 3579795 by Michael.Noland
PR #3867: Fix for not releasing Local Notification Delegate. (Contributed by enginevividgames)
#jira UE-48105
Change 3580463 by Marc.Audy
(4.17) Don't crash if calling PostEditUndo on an Actor in the transient package
#jira UE-47523
Change 3581073 by Marc.Audy
Make UK2Node_SpawnActorFromClass inherit from K2Node_ConstructObjectFromClass and eliminate duplicate code.
Correctly reconnect split pins when changing class on create widget, construct object, and spawn actor nodes
Change 3581156 by Ben.Zeigler
#jira UE-48161 Fix issue where split pins would not be restored if a Struct type was changed due to refactoring of parent variables/functions. For structs we want to copy the pins, if they're invalid due to other changes they will be individual orphaned
Also fix bug where the category of parent pins was being set incorrectly while changing variable type, we only want to override type for wildcard pins
Change 3581473 by Ben.Zeigler
Properly turn off optimization for PS4 test
Change 3582094 by Marc.Audy
Fix anim nodes not navigating to their graph on double click
#jira UE-48333
Change 3582157 by Marc.Audy
Fix double-clicking on animation asset nodes not opening the asset editors
Change 3582289 by Marc.Audy
(4.17) Don't crash when adding a streaming level that's already in the level
#jira UE-48928
Change 3545435 by Ben.Zeigler
#jira UE-47509 Rename and refactor internals StringAssetReferences and AssetPtrs to become SoftObjectPath/Ptr. This is to prepare them for use for subobjects like actors. Here is the rename table:
FStringAssetReference -> FSoftObjectPath
FStringClassReference -> FSoftClassPath
TAssetPtr -> TSoftObjectPtr
TAssetSubclassOf -> TSoftClassPtr
The old headers are deprecated, and FSoftClassPath is now in the same header has FSoftObjectPath.
This change increments the UE4 version because FSoftObjectPaths are now stored as a name + substring instead of one giant name, which in practice will improve performance and memory while manipulating them. Also the package table of soft referenced packages is now stored as FNames instead of FStrings as these packages names will already be in the name table due to the AssetRegistry
Remove automatic support for loading Objectpaths starting with engine-ini:, as it was only partially supported and is very outdated. ResolveIniObjectsReference can still be called manually
Changed TPersistentObjectPtr and TLazyObjectPtr to be structs instead of classes
Change UnrealHeaderTool to read configuration such as StructsWithNoPrefix out of inis instead of using a hardcoded list. Add support for TypeRedirects, which is used to make the old type names automatically remap to the new ones
Clean up FRedirectCollector to remove some of the functionality that is no longer used by the cooker, and disable tracking of redirects in standalone -game builds
Change 3567760 by Ben.Zeigler
Fix it so EngineTest can be cooked by moving some utility functions to EditorTestsUtilityLibrary and adding an EditorFunctionalTest. The core EngineTest module is safely runtime-only now and can run it's tests locally in windows cooked
Merge FuncTestManager into FunctionalTestModule to avoid confusion with FunctionalTestingManager UObject
Add EngineTestAssetManager and override the cook function to cook all maps with runtime functional tests
Change actor merging tests to be editor only, this stops them from cooking
Several individual tests crash on cooked builds, I started threads with the owners of those
Change 3575737 by Ben.Zeigler
#jira UE-48042 Change it so playing via PIE Standalone, multiprocess networked PIE and external cook launch on does not save temporary levels to UEDPC and instead prompts the user to save. This is how launch on works by default already, and this fixes cross level references/sequencer. The UEDPC code has been removed entirely.
As part of this change, connecting a -game client to a PIE server and vice versa is much more likely to work. You may still have game-side problems, look at UEditorEngine::NetworkRemapPath for an example of how to do the PIE prefix conversion
Remove advanced CreateTemporaryCopiesOfLevels option from sequencer capture, it has not been tested in multiple years and does not work with newer sequencer features
#jira UE-27124 Fix several possible crashes with changing levels while in PIE
Change 3578806 by Marc.Audy
Fix Construct Object not working correctly with split pins.
Add Construct Object test cases to functional tests.
Added split pin expose on spawn test cases.
#jira UE-33924
[CL 3582334 by Marc Audy in Main branch]
2017-08-11 12:43:42 -04:00
for ( int32 ReferenceIdx = 0 ; ReferenceIdx < PackageFileSummary . SoftPackageReferencesCount ; + + ReferenceIdx )
2015-07-23 10:49:29 -04:00
{
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3582324)
#lockdown Nick.Penwarden
#rb none
#rnx
============================
MAJOR FEATURES & CHANGES
============================
Change 3431439 by Marc.Audy
Editor only subobjects shouldn't exist in PIE world
#jira UE-43186
Change 3457323 by Marc.Audy
Undo CL# 3431439 and once again allow (incorrectly) for editor only objects to exist in a PIE world
#jira UE-45087
Change 3499927 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker
#jira UE-43458
Change 3502939 by Michael.Noland
Back out changelist 3499927
Change 3522783 by Zak.Middleton
#ue4 - Imported new simple collision for Engine/Content/BasicShaps/Cylinder.uasset which is a single convex shape (rather than being 4 shapes as before).
Change 3544641 by Dan.Oconnor
Remove conditional that is no longer needed, replace with ensure. It is unsafe to change CDO names
#jira OR-38176
Change 3544645 by Dan.Oconnor
In addition to marking nodes as not transient, FBlueprintEditor::ExpandNode needs to mark them as transactional
#jira UE-45248
Change 3545023 by Marc.Audy
Properly encapsulate FPinDeletionQueue
Fix ensure during deletion of split pins when not clearing links
Fix split pins able to end up in delete queue twice during undo/redo
Change 3545025 by Marc.Audy
Properly allow changing the pin type from a struct that is split on the node
#jira UE-47328
Change 3545455 by Ben.Zeigler
Fix issue where combined streamable handles could be freed before their complete callback is called if nothing external referenced them
Copy of CL#3544474
Change 3545456 by Ben.Zeigler
Allow PrimaryAssets to update their AssetData based on in-memory changes when launching 'Standalone Game' and 'Mobile Preview' from the editor. As it was, changes could be detected and propagated through UPrimaryDataAsset::PostLoad, but the changes would always reapply whatever already exists in the AssetRegistry. The primary use-case for this: making AssetBundle tag changes and allowing them to propagate without resaving/recooking all affected assets.
Copy of CL #3544374
Change 3545547 by Ben.Zeigler
CIS Fix
Change 3545568 by Michael.Noland
PR #3758: Fixing a comment typo from Transistion to Transition (Contributed by gsfreema)
#jira UE-46845
Change 3545582 by Michael.Noland
Blueprints: Prevent duplicate messages from being added to the compiler results log (fixes a crash when resizing the results log while a math expression node has an error)
Blueprints: Fixed the tooltip of math expression nodes not showing up, and error messages getting cleared on subsequent compiles
[Duplicating fixes for UE-47491 and UE-47512 from 4.17 to Dev-Framework]
Change 3546528 by Ben.Zeigler
#jira UE-47548
Fix crash when a map's key type has changed but value has not, it was passing the UStruct defaults in when serialize was expecting the default instance, so pass null instead as we don't have the instance
Change 3546544 by Marc.Audy
Fix split pin restoration logic to deal with wildcards and variations in const/refness
Change 3546551 by Marc.Audy
Don't crash if the struct type is missing for whatever reason
Change 3547152 by Marc.Audy
Fix array exporting so you don't end up getting none instead of defaults
#jira UE-47320
Change 3547438 by Marc.Audy
Fix split pins on class defaults
Don't cause a structural change when reapplying a split pin as part of node reconstruction
#jira UE-46935
Change 3547501 by Ben.Zeigler
Fix ensure, it's valid to pass a null path for a dynamic asset
Change 3551185 by Ben.Zeigler
#jira UE-42835 Fix it so SoftObjectPaths work correctly when inside levels loaded for the first time from PIE. Added code to do in-place PIE fixup for levels that are loaded instead of duplicated, and changed the fixup logic to fix all level references, not just ones being explicitly duplicated
Change 3551723 by Ben.Zeigler
Improve UI for displaying actor soft references. Add an error/warning icon if the cross level reference is broken or unloaded, and fix various display and copy/paste behaviors
Change 3553216 by Phillip.Kavan
#jira UE-39303, UE-46268, UE-47519
- Nativized UDS now support external asset dependencies and will construct their own linker import tables on load.
Change summary:
- Modified FCompactBlueprintDependencyData and FFakeImportTableHelper to be more relevant to UStruct and not just UClass-derivative types.
- Modified FBlueprintDependencyData to accept a single FCompactBlueprintDependencyData struct rather than its individual fields.
- Modified FBlueprintCompilerCppBackendBase::GenerateCodeFromStruct() to emit dependency assignment and static type registration functions for nativized UStruct types.
- Modified FBlueprintNativeCodeGenModule::FStatePerPlatform to include an array for tracking UDS assets that need to be converted during the nativization pass at cook time.
- Modified FBlueprintNativeCodeGenModule::GenerateFullyConvertedClasses() to generate nativized code for UDS assets. This ensures that UDS conversion falls under the same scope as BPGC conversion, so that they both feed into the same NativizationSummary context for asset dependency tracking (i.e. since we only have a single global dependency table in the codegen). Also modified InitializeForRerunDebugOnly() to do the same.
- Modified FBlueprintNativeCodeGenModule::Convert() to defer UDS conversion so that it's done at the same time as BPGC conversion (see note above).
- Modified FEmitDefaultValueHelper::AddStaticFunctionsForDependencies() to include support for UStruct types and to conform to changes made to FCompactBlueprintDependencyData.
- Modified FEmitDefaultValueHelper::AddRegisterHelper() to include support for UStruct types.
- Modified FBlueprintNativeCodeGenModule::FindReplacedClassForObject() to ensure that converted User-Defined Enum types are switched to a UEnumProperty at package save time so that any import tables contain the proper class. This is necessary because we nativize User-Defined Enum types as 'enum class' types, and UHT will generate code for those as a UEnumProperty with an "underlying" property. However, non-nativized User-Defined Enum types are referenced as a UByteProperty with a UEnum reference, so we have to fix up all the import tables before saving. Otherwise, EDL will assert on load (see UE-47519).
Change 3553301 by Ben.Zeigler
Fix ensure when passing literal None to SoftObjectPath, it now treats them as empty instead
Change 3553631 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker. This change was originally submitted in 3499927, but it was incorrectly clearing the UField::Next pointer in UField::Serialize.
#jira UE-43458
Change 3553799 by Ben.Zeigler
Fix issue where calling WaitUntilComplete on a combined handle with Stalled children wouldn't work properly. It now forces all stalled children to start immediately. I also added a warning log when this happens and an ensure if somehow the force didn't work
Copy of CL #3553781
Change 3553896 by Michael.Noland
Blueprints: Allow the autowiring logic to better break and replace existing connections when made (e.g., when dragging a variable onto a compatible pin with an existing connection, break the old connection to allow the new connection to be made)
#jira UE-31031
Change 3553897 by Michael.Noland
Blueprints: Adjust search query when doing 'Find References' on variables from My Blueprints so that bound event nodes show up for components and widgets
#jira UE-37862
Change 3553898 by Michael.Noland
Blueprints: Add the name of the variable directly in the get/set menu options (when dragging from My Blueprints into the graph)
Change 3553909 by Michael.Noland
Blueprints: Added the full name of the type, container type (and value type for maps) to the tooltips for the type picker elements, so long names can be read in full
#jira UE-19710
Change 3554517 by Michael.Noland
Blueprints: Added an option to disable the comment bubble on comment boxes that appears when zoomed out
#jira UE-21810
Change 3554664 by Michael.Noland
Editor: Renamed "Find in CB" command to "Browse" and renamed "Search" (in BP) to "Find", so terminology is consistent and keyboard shortcuts make sense (Ctrl+B for Browse, Ctrl+F for find, not using the term Search anywhere)
#jira UE-27121
Change 3554831 by Dan.Oconnor
Non editor build fix
Change 3554834 by Dan.Oconnor
Actor bound event related warnings now show up in blueprint status when opening level blueprint for first time, improved warning message. Removed unused delegate and return value from FixLevelScriptActorBindings. Can now pass raw strings to blueprint results log (no need for Printf, although padding is not great), UClasses in compiler results log will open the generated blueprint when clicked on
#jira UE-40438
Change 3556157 by Ben.Zeigler
Convert LevelSequenceBindingReference to use FSoftObjectPath so it works properly with redirectors and fixups
Change 3557775 by Michael.Noland
Blueprints: Fixed swapped transaction messages when converting a cast node between pure and impure
#jira UE-36090
Change 3557777 by Michael.Noland
Blueprints: Allow 'Goto Definition' and 'Find References' to be used while stopped at a breakpoint
PR #3774: Expose GotoFunctionDefinition during BP debugging (Contributed by projectgheist)
#jira UE-47024
Change 3560510 by Michael.Noland
Blueprints: Add support for 'goto definition' on Create Event nodes when the Object pin is not hooked up
#jira UE-38912
Change 3560563 by Michael.Noland
Blueprints: Disallow converting a variable get node to impure/back when debugging (no graph mutating operations should be allowed)
Change 3561443 by Ben.Zeigler
Restore code to support gc.DumpPoolStats, was accidentally removed when FGCArrayPool was moved to a header.
Clean up comments around Cleanup function, the functionality to trim the memory pools was integrated into ClearWeakReferences on a prior change
Change 3561658 by Michael.Noland
Blueprints: Refactored 'Goto Definition' so there is no per-class logic in the Blueprint editor or schema any more; any node can opt in individually
- Added a key binding for Goto Definition (Alt+G)
- Added a key binding for Find References (Shift+Alt+F)
- Collapsed 'Goto Code Definition' for variables and functions into the same path, so there aren't separate menu items and commands
- Added new methods CanJumpToDefinition and JumpToDefinition to UEdGraphNode, the default behavior for UK2Node subclasses is to call GetJumpTargetForDoubleClick and call into FKismetEditorUtilities::BringKismetToFocusAttentionOnObject
- Going to a native function now goes thru a better code path that will actually put the source code editor on the function definition, rather than just opening the file containing the definition
Change 3562291 by Ben.Zeigler
Fix issue where calling FSoftObjectPtr::Get during a package save would result in that ptr being forever marked broken, because the ResolveObject fails during save. It's too risky to change that behavior, so change it so the TagAtLastTest doesn't get updated in that case
Change 3562292 by Ben.Zeigler
#jira UE-39042 When renaming or moving actors between levels it now attempts to fix any soft object references from blueprints or sequencer
When deleting actors that are soft referenced by actor/sequencer it will now warn the same way it does for level script. Added IAssetTools::FindSoftReferencesToObject to perform this search
Change it so saving a non-primary world does not result it being dirtied due to the temporary physics scene fixup
Fix issue where the actor name was shown incorrectly in the SSCS tree for actor instances, which meant that if you renamed it you would end up renaming it to the BP's name
Change 3564814 by Ben.Zeigler
#jira UE-47843 Don't set InputKey output pins to AnyKey if empty, this was causing blueprints with key events to constantly dirty themselves
Change 3566707 by Dan.Oconnor
Remove unused code, UClassGenerateCDODuplicatesForHotReload was attempting to create a CDO with a special name, which triggered an ensure. The Duplicated CDO was never used (callign code removed in 3289276 as it was a waste of cycles)
#jira None
Change 3566717 by Michael.Noland
Core: Remove all defintions that contain "_API" from the command line when compiling .rc files (they do not support repsonse files and a too-long command line will fail the compile)
Change 3566771 by Michael.Noland
Editor: Fixing deprecation warning
#jira UE-47922
Change 3567023 by Michael.Noland
Blueprints: Change various TArray<> uses to TSet<> throughout name validation and related code to enable it to scale better to high component or variable counts
Adapted from PR #3708: Fast construction of bp (Contributed by gildor2)
#jira UE-46473
Change 3567304 by Ben.Zeigler
Add bCheckRecursive option to IsEditorOnlyObject that is enabled by default and will check outer/archetype/class.
This is needed for places that call this function from outside of SavePackage.cpp when the editor only mark is set, such as the automation test code
Change 3567398 by Ben.Zeigler
Fix crash when spawning a widget that has no editor WidgetTree, but does have a cooked widget tree template due to tree inheritance
Change 3567729 by Michael.Noland
Blueprints: Clarified message about "{VariableName} is not blueprint visible" to define what that means "(BlueprintReadOnly or BlueprintReadWrite)"
Change 3567739 by Ben.Zeigler
Don't crash if PropertyStruct cannot find it's struct. The function half handled this before, but Preload crashes with a null parameter
Change 3567741 by Ben.Zeigler
Disable optimization for a path test that was crashing in VC2015 in a monolithic build
Change 3568332 by Mieszko.Zielinski
Prevented UAIPerceptionSystem::GetCurrent causing a BP error when WorldContextObject is null #UE4
#jira UE-47948
Change 3568676 by Michael.Noland
Blueprints: Allow editing the tooltip of each enum value in a user defined enum
#jira UE-20036
Known issue: Undo/redo is not currently possible on the tooltip as it is directly stored in package metadata
Change 3569128 by Michael.Noland
Blueprints: Removing the experimental profiler as we won't be returning to it any time soon
#jira UE-46852
Change 3569207 by Michael.Noland
Blueprints: Allow drag-dropping component Blueprint assets into the graph to create Add Component nodes and improved the error message when dragging something that cannot be dropped into an actor Blueprint
#jira UE-8708
Change 3569208 by Michael.Noland
Blueprints: Allow specifying a description for user defined enums (shown in the content browser)
#jira UE-20036
Change 3569209 by Michael.Noland
Editor: Allow adjusting the font size for each individual comment box node in Blueprints and Materials
#jira UE-16085
Change 3570177 by Michael.Noland
Blueprints: Fixed discrepancy between the Structure tab name and the menu option for the tab in the user defined structure editor (now both say Structure Editor)
#jira UE-47962
Change 3570179 by Michael.Noland
Blueprints: Fixed the tooltip of a user defined structure not updating immediately in the content browser after being edited
Change 3570192 by Michael.Noland
Blueprints: Added "(selected)" after the label (in the 'debug filter' dropdown in the Blueprint editor) for actors that are selected in the level editor, which should make it easier to choose the specific actor you want to debug
#jira UE-20709
Change 3571203 by Michael.Noland
Blueprints: Cleanup and refactoring to prepare for turning commented out nodes into an official feature
- Made EnabledState and bUserSetEnabledState private on UEdGraphNode and added new getters/setters
- Introduced IsAutomaticallyPlacedGhostNode() and MakeAutomaticallyPlacedGhostNode() to start decoupling the concept from commented out nodes
- Updated a couple of places that used a hardcoded UberGraphPages[0] into instead editing the most recently interacted with event graph if possible
- Updated 'is data only blueprint' logic to allow multiple ubergraph pages, as long as they're all empty of non-disabled nodes
Change 3571224 by Michael.Noland
Blueprints: Draw banners on development-only and user disabled nodes (excluding 'ghost' nodes like autogenerated event entries in new BPs)
Adapted from PR #2701: Differentiate development nodes in BP (Contributed by projectgheist)
#jira UE-29848
#jira UE-34698
Change 3571279 by Michael.Noland
Blueprints: Changed UK2Node::GetPassThroughPin so that only the execution wire on nodes with exactly one input and one output exec wire will have a corresponding pass-through pin (when there is ambiguity in which exec would be used, e.g., with a branch or sequence or timeline node, the subsequent nodes are now effectively disabled as well)
Change 3571282 by Michael.Noland
Blueprints: Fixed the tooltip for dragging a variable onto an inherited category not showing the 'move to category' hint
Change 3571284 by Michael.Noland
Blueprints: Made wires into/out of a user-disabled node draw verly dimly (other than the passthrough exec if it exists)
Change 3571311 by Ben.Zeigler
Add ActorIteratorFlags which allows overriding which types of actors/levels are iterated by ActorIterator, to allow iterating levels that are not visible.
All of the iteration logic is now in the base and the children just set different flags, which fixes it so TActorIterator does the same level collection check as FActorIterator
Change 3571313 by Ben.Zeigler
Several fixes to automation framework to allow it to work better with Cooked builds.
Change it so the automation test list is a single message. There is no guarantee on order of message packets, so several tests were being missed each time.
Change 3571485 by mason.seay
Test map for Make Set bug
Change 3571501 by Ben.Zeigler
Accidentally undid the UHT fixup for TAssetPtr during my bulk rename
Change 3571531 by Ben.Zeigler
Fix warning messages
Change 3571591 by Michael.Noland
Blueprints: Made drag-dropping assets into a graph to create a component transactional (allowing the action to be undone)
#jira UE-48024
Change 3572938 by Michael.Noland
Blueprints: Fixed a typo in a set function comment
#jira UE-48036
Change 3572941 by Michael.Noland
Blueprints: Made the compact node title for cross and dot product the words cross and dot rather than hard to see . and x symbols
#jira UE-38624
Change 3574816 by mason.seay
Renamed asset to better reflect name of object reference
Change 3574985 by mason.seay
Updated comments and string outputs to list Soft Object Reference
Change 3575740 by Ben.Zeigler
#jira UE-48061 Change it so Editor builds work like cooked builds and always try to reuse existing packages when loading them instead of recreating them in place. Recreating in place does not work well for levels and blueprints, and blueprints already had a hack that was causing this behavior to not activate
Change 3575795 by Ben.Zeigler
#jira UE-48118 Call into the AssetManager as part of the DistillPackages commandlet. This makes sure that ShooterGame and EngineTest end up with the correct content in launcher builds
Change 3576374 by mason.seay
Forgot to submit the deleting of a redirector
Change 3576966 by Ben.Zeigler
#jira UE-48153 Fix issue where actors in streaming levels weren't properly replicating in PIE. It now does the remap path on both send and receive for the manual PC level streaming commands
Change 3577002 by Marc.Audy
Prevent wildcard pins from being connected to exec pins
#jira UE-48148
Change 3577232 by Phillip.Kavan
#jira UE-48034 - Fix EDL assert on load caused by a native reference to a nativized BP class that also references a nativized UDS asset.
Change summary:
- Modified FNativeClassHeaderGenerator::ExportGeneratedStructBodyMacros() to emit the 'ReplaceConverted' package name for the FCompiledInDeferStruct global associated with the nativized UDS asset in the UHT codegen. This brings nativized UDS to parity with nativized BP class assets (it was likely just an oversight initially).
Change 3577710 by Dan.Oconnor
Mirror of 3576977:
Fix for crash when loading cooked uassets that reference functions that are not present
#jira UE-47644
Change 3577723 by Dan.Oconnor
Prevent deferring of classes that are needed to load subobjects
#jira UE-47726
Change 3577741 by Dan.Oconnor
Back out changelist 3577723 - causes crash when starting QAGame in Dev-Framework - not in Release-4.17
Change 3578938 by Ben.Zeigler
#jira UE-27124 Fix issue where renaming a map with legacy map build data would end up with a half-loaded redirector package, becuase the old map build data was still in use. It's possible the call to HandleLegacyMapBuildData should just be in World PostLoad instead of piecemeal in several other places but I am unsure.
Fix it so the redirector cleanup code on map change will not be stopped by non-standalone top level objects, which could be left behind by issues in other systems
Change 3578947 by Marc.Audy
(4.17) Properly expose members of DialogueContext to blueprints
#jira UE-48175
Change 3578952 by Ben.Zeigler
Fix ensure where ParentHandles on a StreamableHandle could be modified while iterating
Change 3579315 by mason.seay
Test map for Make Container nodes
Change 3579600 by Ben.Zeigler
Disable window test on non-desktop platforms as they cannot be resized post launch
Change 3579601 by Ben.Zeigler
#jira UE-48236 Disable optimizations on PS4 for certain math tests pending fixing of platform issue
Change 3579713 by Dan.Oconnor
Prevent crashes when bluepints implement an interface that was deleted
#jira UE-48223
Change 3579719 by Dan.Oconnor
Fix two compilation manager issues: Make sure CDOs are not renamed under a UClass, because they will be considered as possible subobjects, which has bad side effects and make sure that we update references even on empty functions, so that empty UFunctions are not left with references to REINST data
#jira UE-48240
Change 3579745 by Michael.Noland
Blueprints: Improve categorization and reordering support in 'My Blueprints'
- Allow drag-dropping functions, macros, delegates, etc... to reorder them within a category or to change categories (bringing them to parity with variables)
- Make category ordering on all categories sticky so you can reorder categories (the relative ordering will be the same within different sections like variables and functions)
- Added hover cues when drag dropping some items that were missing them (e.g., event dispatchers)
- Added support for renaming categories using F2
Known issues (none are regressions):
- Timelines cannot be moved to other categories or reordered
- Renaming a nested category will result in it becoming a top level category (discarding the parent category chain)
- Some actions do not support undo
#jira UE-31557
Change 3579795 by Michael.Noland
PR #3867: Fix for not releasing Local Notification Delegate. (Contributed by enginevividgames)
#jira UE-48105
Change 3580463 by Marc.Audy
(4.17) Don't crash if calling PostEditUndo on an Actor in the transient package
#jira UE-47523
Change 3581073 by Marc.Audy
Make UK2Node_SpawnActorFromClass inherit from K2Node_ConstructObjectFromClass and eliminate duplicate code.
Correctly reconnect split pins when changing class on create widget, construct object, and spawn actor nodes
Change 3581156 by Ben.Zeigler
#jira UE-48161 Fix issue where split pins would not be restored if a Struct type was changed due to refactoring of parent variables/functions. For structs we want to copy the pins, if they're invalid due to other changes they will be individual orphaned
Also fix bug where the category of parent pins was being set incorrectly while changing variable type, we only want to override type for wildcard pins
Change 3581473 by Ben.Zeigler
Properly turn off optimization for PS4 test
Change 3582094 by Marc.Audy
Fix anim nodes not navigating to their graph on double click
#jira UE-48333
Change 3582157 by Marc.Audy
Fix double-clicking on animation asset nodes not opening the asset editors
Change 3582289 by Marc.Audy
(4.17) Don't crash when adding a streaming level that's already in the level
#jira UE-48928
Change 3545435 by Ben.Zeigler
#jira UE-47509 Rename and refactor internals StringAssetReferences and AssetPtrs to become SoftObjectPath/Ptr. This is to prepare them for use for subobjects like actors. Here is the rename table:
FStringAssetReference -> FSoftObjectPath
FStringClassReference -> FSoftClassPath
TAssetPtr -> TSoftObjectPtr
TAssetSubclassOf -> TSoftClassPtr
The old headers are deprecated, and FSoftClassPath is now in the same header has FSoftObjectPath.
This change increments the UE4 version because FSoftObjectPaths are now stored as a name + substring instead of one giant name, which in practice will improve performance and memory while manipulating them. Also the package table of soft referenced packages is now stored as FNames instead of FStrings as these packages names will already be in the name table due to the AssetRegistry
Remove automatic support for loading Objectpaths starting with engine-ini:, as it was only partially supported and is very outdated. ResolveIniObjectsReference can still be called manually
Changed TPersistentObjectPtr and TLazyObjectPtr to be structs instead of classes
Change UnrealHeaderTool to read configuration such as StructsWithNoPrefix out of inis instead of using a hardcoded list. Add support for TypeRedirects, which is used to make the old type names automatically remap to the new ones
Clean up FRedirectCollector to remove some of the functionality that is no longer used by the cooker, and disable tracking of redirects in standalone -game builds
Change 3567760 by Ben.Zeigler
Fix it so EngineTest can be cooked by moving some utility functions to EditorTestsUtilityLibrary and adding an EditorFunctionalTest. The core EngineTest module is safely runtime-only now and can run it's tests locally in windows cooked
Merge FuncTestManager into FunctionalTestModule to avoid confusion with FunctionalTestingManager UObject
Add EngineTestAssetManager and override the cook function to cook all maps with runtime functional tests
Change actor merging tests to be editor only, this stops them from cooking
Several individual tests crash on cooked builds, I started threads with the owners of those
Change 3575737 by Ben.Zeigler
#jira UE-48042 Change it so playing via PIE Standalone, multiprocess networked PIE and external cook launch on does not save temporary levels to UEDPC and instead prompts the user to save. This is how launch on works by default already, and this fixes cross level references/sequencer. The UEDPC code has been removed entirely.
As part of this change, connecting a -game client to a PIE server and vice versa is much more likely to work. You may still have game-side problems, look at UEditorEngine::NetworkRemapPath for an example of how to do the PIE prefix conversion
Remove advanced CreateTemporaryCopiesOfLevels option from sequencer capture, it has not been tested in multiple years and does not work with newer sequencer features
#jira UE-27124 Fix several possible crashes with changing levels while in PIE
Change 3578806 by Marc.Audy
Fix Construct Object not working correctly with split pins.
Add Construct Object test cases to functional tests.
Added split pin expose on spawn test cases.
#jira UE-33924
[CL 3582334 by Marc Audy in Main branch]
2017-08-11 12:43:42 -04:00
FString PackageName ;
* this < < PackageName ;
2020-06-23 18:40:00 -04:00
if ( IsError ( ) )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeSoftPackageReferenceListInvalidReferencePreSoftObjectPath " , PackageFilename ) ;
return false ;
}
2015-07-23 10:49:29 -04:00
2021-04-14 05:14:13 -04:00
if ( UEVer ( ) < VER_UE4_KEEP_ONLY_PACKAGE_NAMES_IN_STRING_ASSET_REFERENCES_MAP )
2015-07-23 10:49:29 -04:00
{
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3582324)
#lockdown Nick.Penwarden
#rb none
#rnx
============================
MAJOR FEATURES & CHANGES
============================
Change 3431439 by Marc.Audy
Editor only subobjects shouldn't exist in PIE world
#jira UE-43186
Change 3457323 by Marc.Audy
Undo CL# 3431439 and once again allow (incorrectly) for editor only objects to exist in a PIE world
#jira UE-45087
Change 3499927 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker
#jira UE-43458
Change 3502939 by Michael.Noland
Back out changelist 3499927
Change 3522783 by Zak.Middleton
#ue4 - Imported new simple collision for Engine/Content/BasicShaps/Cylinder.uasset which is a single convex shape (rather than being 4 shapes as before).
Change 3544641 by Dan.Oconnor
Remove conditional that is no longer needed, replace with ensure. It is unsafe to change CDO names
#jira OR-38176
Change 3544645 by Dan.Oconnor
In addition to marking nodes as not transient, FBlueprintEditor::ExpandNode needs to mark them as transactional
#jira UE-45248
Change 3545023 by Marc.Audy
Properly encapsulate FPinDeletionQueue
Fix ensure during deletion of split pins when not clearing links
Fix split pins able to end up in delete queue twice during undo/redo
Change 3545025 by Marc.Audy
Properly allow changing the pin type from a struct that is split on the node
#jira UE-47328
Change 3545455 by Ben.Zeigler
Fix issue where combined streamable handles could be freed before their complete callback is called if nothing external referenced them
Copy of CL#3544474
Change 3545456 by Ben.Zeigler
Allow PrimaryAssets to update their AssetData based on in-memory changes when launching 'Standalone Game' and 'Mobile Preview' from the editor. As it was, changes could be detected and propagated through UPrimaryDataAsset::PostLoad, but the changes would always reapply whatever already exists in the AssetRegistry. The primary use-case for this: making AssetBundle tag changes and allowing them to propagate without resaving/recooking all affected assets.
Copy of CL #3544374
Change 3545547 by Ben.Zeigler
CIS Fix
Change 3545568 by Michael.Noland
PR #3758: Fixing a comment typo from Transistion to Transition (Contributed by gsfreema)
#jira UE-46845
Change 3545582 by Michael.Noland
Blueprints: Prevent duplicate messages from being added to the compiler results log (fixes a crash when resizing the results log while a math expression node has an error)
Blueprints: Fixed the tooltip of math expression nodes not showing up, and error messages getting cleared on subsequent compiles
[Duplicating fixes for UE-47491 and UE-47512 from 4.17 to Dev-Framework]
Change 3546528 by Ben.Zeigler
#jira UE-47548
Fix crash when a map's key type has changed but value has not, it was passing the UStruct defaults in when serialize was expecting the default instance, so pass null instead as we don't have the instance
Change 3546544 by Marc.Audy
Fix split pin restoration logic to deal with wildcards and variations in const/refness
Change 3546551 by Marc.Audy
Don't crash if the struct type is missing for whatever reason
Change 3547152 by Marc.Audy
Fix array exporting so you don't end up getting none instead of defaults
#jira UE-47320
Change 3547438 by Marc.Audy
Fix split pins on class defaults
Don't cause a structural change when reapplying a split pin as part of node reconstruction
#jira UE-46935
Change 3547501 by Ben.Zeigler
Fix ensure, it's valid to pass a null path for a dynamic asset
Change 3551185 by Ben.Zeigler
#jira UE-42835 Fix it so SoftObjectPaths work correctly when inside levels loaded for the first time from PIE. Added code to do in-place PIE fixup for levels that are loaded instead of duplicated, and changed the fixup logic to fix all level references, not just ones being explicitly duplicated
Change 3551723 by Ben.Zeigler
Improve UI for displaying actor soft references. Add an error/warning icon if the cross level reference is broken or unloaded, and fix various display and copy/paste behaviors
Change 3553216 by Phillip.Kavan
#jira UE-39303, UE-46268, UE-47519
- Nativized UDS now support external asset dependencies and will construct their own linker import tables on load.
Change summary:
- Modified FCompactBlueprintDependencyData and FFakeImportTableHelper to be more relevant to UStruct and not just UClass-derivative types.
- Modified FBlueprintDependencyData to accept a single FCompactBlueprintDependencyData struct rather than its individual fields.
- Modified FBlueprintCompilerCppBackendBase::GenerateCodeFromStruct() to emit dependency assignment and static type registration functions for nativized UStruct types.
- Modified FBlueprintNativeCodeGenModule::FStatePerPlatform to include an array for tracking UDS assets that need to be converted during the nativization pass at cook time.
- Modified FBlueprintNativeCodeGenModule::GenerateFullyConvertedClasses() to generate nativized code for UDS assets. This ensures that UDS conversion falls under the same scope as BPGC conversion, so that they both feed into the same NativizationSummary context for asset dependency tracking (i.e. since we only have a single global dependency table in the codegen). Also modified InitializeForRerunDebugOnly() to do the same.
- Modified FBlueprintNativeCodeGenModule::Convert() to defer UDS conversion so that it's done at the same time as BPGC conversion (see note above).
- Modified FEmitDefaultValueHelper::AddStaticFunctionsForDependencies() to include support for UStruct types and to conform to changes made to FCompactBlueprintDependencyData.
- Modified FEmitDefaultValueHelper::AddRegisterHelper() to include support for UStruct types.
- Modified FBlueprintNativeCodeGenModule::FindReplacedClassForObject() to ensure that converted User-Defined Enum types are switched to a UEnumProperty at package save time so that any import tables contain the proper class. This is necessary because we nativize User-Defined Enum types as 'enum class' types, and UHT will generate code for those as a UEnumProperty with an "underlying" property. However, non-nativized User-Defined Enum types are referenced as a UByteProperty with a UEnum reference, so we have to fix up all the import tables before saving. Otherwise, EDL will assert on load (see UE-47519).
Change 3553301 by Ben.Zeigler
Fix ensure when passing literal None to SoftObjectPath, it now treats them as empty instead
Change 3553631 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker. This change was originally submitted in 3499927, but it was incorrectly clearing the UField::Next pointer in UField::Serialize.
#jira UE-43458
Change 3553799 by Ben.Zeigler
Fix issue where calling WaitUntilComplete on a combined handle with Stalled children wouldn't work properly. It now forces all stalled children to start immediately. I also added a warning log when this happens and an ensure if somehow the force didn't work
Copy of CL #3553781
Change 3553896 by Michael.Noland
Blueprints: Allow the autowiring logic to better break and replace existing connections when made (e.g., when dragging a variable onto a compatible pin with an existing connection, break the old connection to allow the new connection to be made)
#jira UE-31031
Change 3553897 by Michael.Noland
Blueprints: Adjust search query when doing 'Find References' on variables from My Blueprints so that bound event nodes show up for components and widgets
#jira UE-37862
Change 3553898 by Michael.Noland
Blueprints: Add the name of the variable directly in the get/set menu options (when dragging from My Blueprints into the graph)
Change 3553909 by Michael.Noland
Blueprints: Added the full name of the type, container type (and value type for maps) to the tooltips for the type picker elements, so long names can be read in full
#jira UE-19710
Change 3554517 by Michael.Noland
Blueprints: Added an option to disable the comment bubble on comment boxes that appears when zoomed out
#jira UE-21810
Change 3554664 by Michael.Noland
Editor: Renamed "Find in CB" command to "Browse" and renamed "Search" (in BP) to "Find", so terminology is consistent and keyboard shortcuts make sense (Ctrl+B for Browse, Ctrl+F for find, not using the term Search anywhere)
#jira UE-27121
Change 3554831 by Dan.Oconnor
Non editor build fix
Change 3554834 by Dan.Oconnor
Actor bound event related warnings now show up in blueprint status when opening level blueprint for first time, improved warning message. Removed unused delegate and return value from FixLevelScriptActorBindings. Can now pass raw strings to blueprint results log (no need for Printf, although padding is not great), UClasses in compiler results log will open the generated blueprint when clicked on
#jira UE-40438
Change 3556157 by Ben.Zeigler
Convert LevelSequenceBindingReference to use FSoftObjectPath so it works properly with redirectors and fixups
Change 3557775 by Michael.Noland
Blueprints: Fixed swapped transaction messages when converting a cast node between pure and impure
#jira UE-36090
Change 3557777 by Michael.Noland
Blueprints: Allow 'Goto Definition' and 'Find References' to be used while stopped at a breakpoint
PR #3774: Expose GotoFunctionDefinition during BP debugging (Contributed by projectgheist)
#jira UE-47024
Change 3560510 by Michael.Noland
Blueprints: Add support for 'goto definition' on Create Event nodes when the Object pin is not hooked up
#jira UE-38912
Change 3560563 by Michael.Noland
Blueprints: Disallow converting a variable get node to impure/back when debugging (no graph mutating operations should be allowed)
Change 3561443 by Ben.Zeigler
Restore code to support gc.DumpPoolStats, was accidentally removed when FGCArrayPool was moved to a header.
Clean up comments around Cleanup function, the functionality to trim the memory pools was integrated into ClearWeakReferences on a prior change
Change 3561658 by Michael.Noland
Blueprints: Refactored 'Goto Definition' so there is no per-class logic in the Blueprint editor or schema any more; any node can opt in individually
- Added a key binding for Goto Definition (Alt+G)
- Added a key binding for Find References (Shift+Alt+F)
- Collapsed 'Goto Code Definition' for variables and functions into the same path, so there aren't separate menu items and commands
- Added new methods CanJumpToDefinition and JumpToDefinition to UEdGraphNode, the default behavior for UK2Node subclasses is to call GetJumpTargetForDoubleClick and call into FKismetEditorUtilities::BringKismetToFocusAttentionOnObject
- Going to a native function now goes thru a better code path that will actually put the source code editor on the function definition, rather than just opening the file containing the definition
Change 3562291 by Ben.Zeigler
Fix issue where calling FSoftObjectPtr::Get during a package save would result in that ptr being forever marked broken, because the ResolveObject fails during save. It's too risky to change that behavior, so change it so the TagAtLastTest doesn't get updated in that case
Change 3562292 by Ben.Zeigler
#jira UE-39042 When renaming or moving actors between levels it now attempts to fix any soft object references from blueprints or sequencer
When deleting actors that are soft referenced by actor/sequencer it will now warn the same way it does for level script. Added IAssetTools::FindSoftReferencesToObject to perform this search
Change it so saving a non-primary world does not result it being dirtied due to the temporary physics scene fixup
Fix issue where the actor name was shown incorrectly in the SSCS tree for actor instances, which meant that if you renamed it you would end up renaming it to the BP's name
Change 3564814 by Ben.Zeigler
#jira UE-47843 Don't set InputKey output pins to AnyKey if empty, this was causing blueprints with key events to constantly dirty themselves
Change 3566707 by Dan.Oconnor
Remove unused code, UClassGenerateCDODuplicatesForHotReload was attempting to create a CDO with a special name, which triggered an ensure. The Duplicated CDO was never used (callign code removed in 3289276 as it was a waste of cycles)
#jira None
Change 3566717 by Michael.Noland
Core: Remove all defintions that contain "_API" from the command line when compiling .rc files (they do not support repsonse files and a too-long command line will fail the compile)
Change 3566771 by Michael.Noland
Editor: Fixing deprecation warning
#jira UE-47922
Change 3567023 by Michael.Noland
Blueprints: Change various TArray<> uses to TSet<> throughout name validation and related code to enable it to scale better to high component or variable counts
Adapted from PR #3708: Fast construction of bp (Contributed by gildor2)
#jira UE-46473
Change 3567304 by Ben.Zeigler
Add bCheckRecursive option to IsEditorOnlyObject that is enabled by default and will check outer/archetype/class.
This is needed for places that call this function from outside of SavePackage.cpp when the editor only mark is set, such as the automation test code
Change 3567398 by Ben.Zeigler
Fix crash when spawning a widget that has no editor WidgetTree, but does have a cooked widget tree template due to tree inheritance
Change 3567729 by Michael.Noland
Blueprints: Clarified message about "{VariableName} is not blueprint visible" to define what that means "(BlueprintReadOnly or BlueprintReadWrite)"
Change 3567739 by Ben.Zeigler
Don't crash if PropertyStruct cannot find it's struct. The function half handled this before, but Preload crashes with a null parameter
Change 3567741 by Ben.Zeigler
Disable optimization for a path test that was crashing in VC2015 in a monolithic build
Change 3568332 by Mieszko.Zielinski
Prevented UAIPerceptionSystem::GetCurrent causing a BP error when WorldContextObject is null #UE4
#jira UE-47948
Change 3568676 by Michael.Noland
Blueprints: Allow editing the tooltip of each enum value in a user defined enum
#jira UE-20036
Known issue: Undo/redo is not currently possible on the tooltip as it is directly stored in package metadata
Change 3569128 by Michael.Noland
Blueprints: Removing the experimental profiler as we won't be returning to it any time soon
#jira UE-46852
Change 3569207 by Michael.Noland
Blueprints: Allow drag-dropping component Blueprint assets into the graph to create Add Component nodes and improved the error message when dragging something that cannot be dropped into an actor Blueprint
#jira UE-8708
Change 3569208 by Michael.Noland
Blueprints: Allow specifying a description for user defined enums (shown in the content browser)
#jira UE-20036
Change 3569209 by Michael.Noland
Editor: Allow adjusting the font size for each individual comment box node in Blueprints and Materials
#jira UE-16085
Change 3570177 by Michael.Noland
Blueprints: Fixed discrepancy between the Structure tab name and the menu option for the tab in the user defined structure editor (now both say Structure Editor)
#jira UE-47962
Change 3570179 by Michael.Noland
Blueprints: Fixed the tooltip of a user defined structure not updating immediately in the content browser after being edited
Change 3570192 by Michael.Noland
Blueprints: Added "(selected)" after the label (in the 'debug filter' dropdown in the Blueprint editor) for actors that are selected in the level editor, which should make it easier to choose the specific actor you want to debug
#jira UE-20709
Change 3571203 by Michael.Noland
Blueprints: Cleanup and refactoring to prepare for turning commented out nodes into an official feature
- Made EnabledState and bUserSetEnabledState private on UEdGraphNode and added new getters/setters
- Introduced IsAutomaticallyPlacedGhostNode() and MakeAutomaticallyPlacedGhostNode() to start decoupling the concept from commented out nodes
- Updated a couple of places that used a hardcoded UberGraphPages[0] into instead editing the most recently interacted with event graph if possible
- Updated 'is data only blueprint' logic to allow multiple ubergraph pages, as long as they're all empty of non-disabled nodes
Change 3571224 by Michael.Noland
Blueprints: Draw banners on development-only and user disabled nodes (excluding 'ghost' nodes like autogenerated event entries in new BPs)
Adapted from PR #2701: Differentiate development nodes in BP (Contributed by projectgheist)
#jira UE-29848
#jira UE-34698
Change 3571279 by Michael.Noland
Blueprints: Changed UK2Node::GetPassThroughPin so that only the execution wire on nodes with exactly one input and one output exec wire will have a corresponding pass-through pin (when there is ambiguity in which exec would be used, e.g., with a branch or sequence or timeline node, the subsequent nodes are now effectively disabled as well)
Change 3571282 by Michael.Noland
Blueprints: Fixed the tooltip for dragging a variable onto an inherited category not showing the 'move to category' hint
Change 3571284 by Michael.Noland
Blueprints: Made wires into/out of a user-disabled node draw verly dimly (other than the passthrough exec if it exists)
Change 3571311 by Ben.Zeigler
Add ActorIteratorFlags which allows overriding which types of actors/levels are iterated by ActorIterator, to allow iterating levels that are not visible.
All of the iteration logic is now in the base and the children just set different flags, which fixes it so TActorIterator does the same level collection check as FActorIterator
Change 3571313 by Ben.Zeigler
Several fixes to automation framework to allow it to work better with Cooked builds.
Change it so the automation test list is a single message. There is no guarantee on order of message packets, so several tests were being missed each time.
Change 3571485 by mason.seay
Test map for Make Set bug
Change 3571501 by Ben.Zeigler
Accidentally undid the UHT fixup for TAssetPtr during my bulk rename
Change 3571531 by Ben.Zeigler
Fix warning messages
Change 3571591 by Michael.Noland
Blueprints: Made drag-dropping assets into a graph to create a component transactional (allowing the action to be undone)
#jira UE-48024
Change 3572938 by Michael.Noland
Blueprints: Fixed a typo in a set function comment
#jira UE-48036
Change 3572941 by Michael.Noland
Blueprints: Made the compact node title for cross and dot product the words cross and dot rather than hard to see . and x symbols
#jira UE-38624
Change 3574816 by mason.seay
Renamed asset to better reflect name of object reference
Change 3574985 by mason.seay
Updated comments and string outputs to list Soft Object Reference
Change 3575740 by Ben.Zeigler
#jira UE-48061 Change it so Editor builds work like cooked builds and always try to reuse existing packages when loading them instead of recreating them in place. Recreating in place does not work well for levels and blueprints, and blueprints already had a hack that was causing this behavior to not activate
Change 3575795 by Ben.Zeigler
#jira UE-48118 Call into the AssetManager as part of the DistillPackages commandlet. This makes sure that ShooterGame and EngineTest end up with the correct content in launcher builds
Change 3576374 by mason.seay
Forgot to submit the deleting of a redirector
Change 3576966 by Ben.Zeigler
#jira UE-48153 Fix issue where actors in streaming levels weren't properly replicating in PIE. It now does the remap path on both send and receive for the manual PC level streaming commands
Change 3577002 by Marc.Audy
Prevent wildcard pins from being connected to exec pins
#jira UE-48148
Change 3577232 by Phillip.Kavan
#jira UE-48034 - Fix EDL assert on load caused by a native reference to a nativized BP class that also references a nativized UDS asset.
Change summary:
- Modified FNativeClassHeaderGenerator::ExportGeneratedStructBodyMacros() to emit the 'ReplaceConverted' package name for the FCompiledInDeferStruct global associated with the nativized UDS asset in the UHT codegen. This brings nativized UDS to parity with nativized BP class assets (it was likely just an oversight initially).
Change 3577710 by Dan.Oconnor
Mirror of 3576977:
Fix for crash when loading cooked uassets that reference functions that are not present
#jira UE-47644
Change 3577723 by Dan.Oconnor
Prevent deferring of classes that are needed to load subobjects
#jira UE-47726
Change 3577741 by Dan.Oconnor
Back out changelist 3577723 - causes crash when starting QAGame in Dev-Framework - not in Release-4.17
Change 3578938 by Ben.Zeigler
#jira UE-27124 Fix issue where renaming a map with legacy map build data would end up with a half-loaded redirector package, becuase the old map build data was still in use. It's possible the call to HandleLegacyMapBuildData should just be in World PostLoad instead of piecemeal in several other places but I am unsure.
Fix it so the redirector cleanup code on map change will not be stopped by non-standalone top level objects, which could be left behind by issues in other systems
Change 3578947 by Marc.Audy
(4.17) Properly expose members of DialogueContext to blueprints
#jira UE-48175
Change 3578952 by Ben.Zeigler
Fix ensure where ParentHandles on a StreamableHandle could be modified while iterating
Change 3579315 by mason.seay
Test map for Make Container nodes
Change 3579600 by Ben.Zeigler
Disable window test on non-desktop platforms as they cannot be resized post launch
Change 3579601 by Ben.Zeigler
#jira UE-48236 Disable optimizations on PS4 for certain math tests pending fixing of platform issue
Change 3579713 by Dan.Oconnor
Prevent crashes when bluepints implement an interface that was deleted
#jira UE-48223
Change 3579719 by Dan.Oconnor
Fix two compilation manager issues: Make sure CDOs are not renamed under a UClass, because they will be considered as possible subobjects, which has bad side effects and make sure that we update references even on empty functions, so that empty UFunctions are not left with references to REINST data
#jira UE-48240
Change 3579745 by Michael.Noland
Blueprints: Improve categorization and reordering support in 'My Blueprints'
- Allow drag-dropping functions, macros, delegates, etc... to reorder them within a category or to change categories (bringing them to parity with variables)
- Make category ordering on all categories sticky so you can reorder categories (the relative ordering will be the same within different sections like variables and functions)
- Added hover cues when drag dropping some items that were missing them (e.g., event dispatchers)
- Added support for renaming categories using F2
Known issues (none are regressions):
- Timelines cannot be moved to other categories or reordered
- Renaming a nested category will result in it becoming a top level category (discarding the parent category chain)
- Some actions do not support undo
#jira UE-31557
Change 3579795 by Michael.Noland
PR #3867: Fix for not releasing Local Notification Delegate. (Contributed by enginevividgames)
#jira UE-48105
Change 3580463 by Marc.Audy
(4.17) Don't crash if calling PostEditUndo on an Actor in the transient package
#jira UE-47523
Change 3581073 by Marc.Audy
Make UK2Node_SpawnActorFromClass inherit from K2Node_ConstructObjectFromClass and eliminate duplicate code.
Correctly reconnect split pins when changing class on create widget, construct object, and spawn actor nodes
Change 3581156 by Ben.Zeigler
#jira UE-48161 Fix issue where split pins would not be restored if a Struct type was changed due to refactoring of parent variables/functions. For structs we want to copy the pins, if they're invalid due to other changes they will be individual orphaned
Also fix bug where the category of parent pins was being set incorrectly while changing variable type, we only want to override type for wildcard pins
Change 3581473 by Ben.Zeigler
Properly turn off optimization for PS4 test
Change 3582094 by Marc.Audy
Fix anim nodes not navigating to their graph on double click
#jira UE-48333
Change 3582157 by Marc.Audy
Fix double-clicking on animation asset nodes not opening the asset editors
Change 3582289 by Marc.Audy
(4.17) Don't crash when adding a streaming level that's already in the level
#jira UE-48928
Change 3545435 by Ben.Zeigler
#jira UE-47509 Rename and refactor internals StringAssetReferences and AssetPtrs to become SoftObjectPath/Ptr. This is to prepare them for use for subobjects like actors. Here is the rename table:
FStringAssetReference -> FSoftObjectPath
FStringClassReference -> FSoftClassPath
TAssetPtr -> TSoftObjectPtr
TAssetSubclassOf -> TSoftClassPtr
The old headers are deprecated, and FSoftClassPath is now in the same header has FSoftObjectPath.
This change increments the UE4 version because FSoftObjectPaths are now stored as a name + substring instead of one giant name, which in practice will improve performance and memory while manipulating them. Also the package table of soft referenced packages is now stored as FNames instead of FStrings as these packages names will already be in the name table due to the AssetRegistry
Remove automatic support for loading Objectpaths starting with engine-ini:, as it was only partially supported and is very outdated. ResolveIniObjectsReference can still be called manually
Changed TPersistentObjectPtr and TLazyObjectPtr to be structs instead of classes
Change UnrealHeaderTool to read configuration such as StructsWithNoPrefix out of inis instead of using a hardcoded list. Add support for TypeRedirects, which is used to make the old type names automatically remap to the new ones
Clean up FRedirectCollector to remove some of the functionality that is no longer used by the cooker, and disable tracking of redirects in standalone -game builds
Change 3567760 by Ben.Zeigler
Fix it so EngineTest can be cooked by moving some utility functions to EditorTestsUtilityLibrary and adding an EditorFunctionalTest. The core EngineTest module is safely runtime-only now and can run it's tests locally in windows cooked
Merge FuncTestManager into FunctionalTestModule to avoid confusion with FunctionalTestingManager UObject
Add EngineTestAssetManager and override the cook function to cook all maps with runtime functional tests
Change actor merging tests to be editor only, this stops them from cooking
Several individual tests crash on cooked builds, I started threads with the owners of those
Change 3575737 by Ben.Zeigler
#jira UE-48042 Change it so playing via PIE Standalone, multiprocess networked PIE and external cook launch on does not save temporary levels to UEDPC and instead prompts the user to save. This is how launch on works by default already, and this fixes cross level references/sequencer. The UEDPC code has been removed entirely.
As part of this change, connecting a -game client to a PIE server and vice versa is much more likely to work. You may still have game-side problems, look at UEditorEngine::NetworkRemapPath for an example of how to do the PIE prefix conversion
Remove advanced CreateTemporaryCopiesOfLevels option from sequencer capture, it has not been tested in multiple years and does not work with newer sequencer features
#jira UE-27124 Fix several possible crashes with changing levels while in PIE
Change 3578806 by Marc.Audy
Fix Construct Object not working correctly with split pins.
Add Construct Object test cases to functional tests.
Added split pin expose on spawn test cases.
#jira UE-33924
[CL 3582334 by Marc Audy in Main branch]
2017-08-11 12:43:42 -04:00
PackageName = FPackageName : : GetNormalizedObjectPath ( PackageName ) ;
if ( ! PackageName . IsEmpty ( ) )
2015-07-23 10:49:29 -04:00
{
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3582324)
#lockdown Nick.Penwarden
#rb none
#rnx
============================
MAJOR FEATURES & CHANGES
============================
Change 3431439 by Marc.Audy
Editor only subobjects shouldn't exist in PIE world
#jira UE-43186
Change 3457323 by Marc.Audy
Undo CL# 3431439 and once again allow (incorrectly) for editor only objects to exist in a PIE world
#jira UE-45087
Change 3499927 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker
#jira UE-43458
Change 3502939 by Michael.Noland
Back out changelist 3499927
Change 3522783 by Zak.Middleton
#ue4 - Imported new simple collision for Engine/Content/BasicShaps/Cylinder.uasset which is a single convex shape (rather than being 4 shapes as before).
Change 3544641 by Dan.Oconnor
Remove conditional that is no longer needed, replace with ensure. It is unsafe to change CDO names
#jira OR-38176
Change 3544645 by Dan.Oconnor
In addition to marking nodes as not transient, FBlueprintEditor::ExpandNode needs to mark them as transactional
#jira UE-45248
Change 3545023 by Marc.Audy
Properly encapsulate FPinDeletionQueue
Fix ensure during deletion of split pins when not clearing links
Fix split pins able to end up in delete queue twice during undo/redo
Change 3545025 by Marc.Audy
Properly allow changing the pin type from a struct that is split on the node
#jira UE-47328
Change 3545455 by Ben.Zeigler
Fix issue where combined streamable handles could be freed before their complete callback is called if nothing external referenced them
Copy of CL#3544474
Change 3545456 by Ben.Zeigler
Allow PrimaryAssets to update their AssetData based on in-memory changes when launching 'Standalone Game' and 'Mobile Preview' from the editor. As it was, changes could be detected and propagated through UPrimaryDataAsset::PostLoad, but the changes would always reapply whatever already exists in the AssetRegistry. The primary use-case for this: making AssetBundle tag changes and allowing them to propagate without resaving/recooking all affected assets.
Copy of CL #3544374
Change 3545547 by Ben.Zeigler
CIS Fix
Change 3545568 by Michael.Noland
PR #3758: Fixing a comment typo from Transistion to Transition (Contributed by gsfreema)
#jira UE-46845
Change 3545582 by Michael.Noland
Blueprints: Prevent duplicate messages from being added to the compiler results log (fixes a crash when resizing the results log while a math expression node has an error)
Blueprints: Fixed the tooltip of math expression nodes not showing up, and error messages getting cleared on subsequent compiles
[Duplicating fixes for UE-47491 and UE-47512 from 4.17 to Dev-Framework]
Change 3546528 by Ben.Zeigler
#jira UE-47548
Fix crash when a map's key type has changed but value has not, it was passing the UStruct defaults in when serialize was expecting the default instance, so pass null instead as we don't have the instance
Change 3546544 by Marc.Audy
Fix split pin restoration logic to deal with wildcards and variations in const/refness
Change 3546551 by Marc.Audy
Don't crash if the struct type is missing for whatever reason
Change 3547152 by Marc.Audy
Fix array exporting so you don't end up getting none instead of defaults
#jira UE-47320
Change 3547438 by Marc.Audy
Fix split pins on class defaults
Don't cause a structural change when reapplying a split pin as part of node reconstruction
#jira UE-46935
Change 3547501 by Ben.Zeigler
Fix ensure, it's valid to pass a null path for a dynamic asset
Change 3551185 by Ben.Zeigler
#jira UE-42835 Fix it so SoftObjectPaths work correctly when inside levels loaded for the first time from PIE. Added code to do in-place PIE fixup for levels that are loaded instead of duplicated, and changed the fixup logic to fix all level references, not just ones being explicitly duplicated
Change 3551723 by Ben.Zeigler
Improve UI for displaying actor soft references. Add an error/warning icon if the cross level reference is broken or unloaded, and fix various display and copy/paste behaviors
Change 3553216 by Phillip.Kavan
#jira UE-39303, UE-46268, UE-47519
- Nativized UDS now support external asset dependencies and will construct their own linker import tables on load.
Change summary:
- Modified FCompactBlueprintDependencyData and FFakeImportTableHelper to be more relevant to UStruct and not just UClass-derivative types.
- Modified FBlueprintDependencyData to accept a single FCompactBlueprintDependencyData struct rather than its individual fields.
- Modified FBlueprintCompilerCppBackendBase::GenerateCodeFromStruct() to emit dependency assignment and static type registration functions for nativized UStruct types.
- Modified FBlueprintNativeCodeGenModule::FStatePerPlatform to include an array for tracking UDS assets that need to be converted during the nativization pass at cook time.
- Modified FBlueprintNativeCodeGenModule::GenerateFullyConvertedClasses() to generate nativized code for UDS assets. This ensures that UDS conversion falls under the same scope as BPGC conversion, so that they both feed into the same NativizationSummary context for asset dependency tracking (i.e. since we only have a single global dependency table in the codegen). Also modified InitializeForRerunDebugOnly() to do the same.
- Modified FBlueprintNativeCodeGenModule::Convert() to defer UDS conversion so that it's done at the same time as BPGC conversion (see note above).
- Modified FEmitDefaultValueHelper::AddStaticFunctionsForDependencies() to include support for UStruct types and to conform to changes made to FCompactBlueprintDependencyData.
- Modified FEmitDefaultValueHelper::AddRegisterHelper() to include support for UStruct types.
- Modified FBlueprintNativeCodeGenModule::FindReplacedClassForObject() to ensure that converted User-Defined Enum types are switched to a UEnumProperty at package save time so that any import tables contain the proper class. This is necessary because we nativize User-Defined Enum types as 'enum class' types, and UHT will generate code for those as a UEnumProperty with an "underlying" property. However, non-nativized User-Defined Enum types are referenced as a UByteProperty with a UEnum reference, so we have to fix up all the import tables before saving. Otherwise, EDL will assert on load (see UE-47519).
Change 3553301 by Ben.Zeigler
Fix ensure when passing literal None to SoftObjectPath, it now treats them as empty instead
Change 3553631 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker. This change was originally submitted in 3499927, but it was incorrectly clearing the UField::Next pointer in UField::Serialize.
#jira UE-43458
Change 3553799 by Ben.Zeigler
Fix issue where calling WaitUntilComplete on a combined handle with Stalled children wouldn't work properly. It now forces all stalled children to start immediately. I also added a warning log when this happens and an ensure if somehow the force didn't work
Copy of CL #3553781
Change 3553896 by Michael.Noland
Blueprints: Allow the autowiring logic to better break and replace existing connections when made (e.g., when dragging a variable onto a compatible pin with an existing connection, break the old connection to allow the new connection to be made)
#jira UE-31031
Change 3553897 by Michael.Noland
Blueprints: Adjust search query when doing 'Find References' on variables from My Blueprints so that bound event nodes show up for components and widgets
#jira UE-37862
Change 3553898 by Michael.Noland
Blueprints: Add the name of the variable directly in the get/set menu options (when dragging from My Blueprints into the graph)
Change 3553909 by Michael.Noland
Blueprints: Added the full name of the type, container type (and value type for maps) to the tooltips for the type picker elements, so long names can be read in full
#jira UE-19710
Change 3554517 by Michael.Noland
Blueprints: Added an option to disable the comment bubble on comment boxes that appears when zoomed out
#jira UE-21810
Change 3554664 by Michael.Noland
Editor: Renamed "Find in CB" command to "Browse" and renamed "Search" (in BP) to "Find", so terminology is consistent and keyboard shortcuts make sense (Ctrl+B for Browse, Ctrl+F for find, not using the term Search anywhere)
#jira UE-27121
Change 3554831 by Dan.Oconnor
Non editor build fix
Change 3554834 by Dan.Oconnor
Actor bound event related warnings now show up in blueprint status when opening level blueprint for first time, improved warning message. Removed unused delegate and return value from FixLevelScriptActorBindings. Can now pass raw strings to blueprint results log (no need for Printf, although padding is not great), UClasses in compiler results log will open the generated blueprint when clicked on
#jira UE-40438
Change 3556157 by Ben.Zeigler
Convert LevelSequenceBindingReference to use FSoftObjectPath so it works properly with redirectors and fixups
Change 3557775 by Michael.Noland
Blueprints: Fixed swapped transaction messages when converting a cast node between pure and impure
#jira UE-36090
Change 3557777 by Michael.Noland
Blueprints: Allow 'Goto Definition' and 'Find References' to be used while stopped at a breakpoint
PR #3774: Expose GotoFunctionDefinition during BP debugging (Contributed by projectgheist)
#jira UE-47024
Change 3560510 by Michael.Noland
Blueprints: Add support for 'goto definition' on Create Event nodes when the Object pin is not hooked up
#jira UE-38912
Change 3560563 by Michael.Noland
Blueprints: Disallow converting a variable get node to impure/back when debugging (no graph mutating operations should be allowed)
Change 3561443 by Ben.Zeigler
Restore code to support gc.DumpPoolStats, was accidentally removed when FGCArrayPool was moved to a header.
Clean up comments around Cleanup function, the functionality to trim the memory pools was integrated into ClearWeakReferences on a prior change
Change 3561658 by Michael.Noland
Blueprints: Refactored 'Goto Definition' so there is no per-class logic in the Blueprint editor or schema any more; any node can opt in individually
- Added a key binding for Goto Definition (Alt+G)
- Added a key binding for Find References (Shift+Alt+F)
- Collapsed 'Goto Code Definition' for variables and functions into the same path, so there aren't separate menu items and commands
- Added new methods CanJumpToDefinition and JumpToDefinition to UEdGraphNode, the default behavior for UK2Node subclasses is to call GetJumpTargetForDoubleClick and call into FKismetEditorUtilities::BringKismetToFocusAttentionOnObject
- Going to a native function now goes thru a better code path that will actually put the source code editor on the function definition, rather than just opening the file containing the definition
Change 3562291 by Ben.Zeigler
Fix issue where calling FSoftObjectPtr::Get during a package save would result in that ptr being forever marked broken, because the ResolveObject fails during save. It's too risky to change that behavior, so change it so the TagAtLastTest doesn't get updated in that case
Change 3562292 by Ben.Zeigler
#jira UE-39042 When renaming or moving actors between levels it now attempts to fix any soft object references from blueprints or sequencer
When deleting actors that are soft referenced by actor/sequencer it will now warn the same way it does for level script. Added IAssetTools::FindSoftReferencesToObject to perform this search
Change it so saving a non-primary world does not result it being dirtied due to the temporary physics scene fixup
Fix issue where the actor name was shown incorrectly in the SSCS tree for actor instances, which meant that if you renamed it you would end up renaming it to the BP's name
Change 3564814 by Ben.Zeigler
#jira UE-47843 Don't set InputKey output pins to AnyKey if empty, this was causing blueprints with key events to constantly dirty themselves
Change 3566707 by Dan.Oconnor
Remove unused code, UClassGenerateCDODuplicatesForHotReload was attempting to create a CDO with a special name, which triggered an ensure. The Duplicated CDO was never used (callign code removed in 3289276 as it was a waste of cycles)
#jira None
Change 3566717 by Michael.Noland
Core: Remove all defintions that contain "_API" from the command line when compiling .rc files (they do not support repsonse files and a too-long command line will fail the compile)
Change 3566771 by Michael.Noland
Editor: Fixing deprecation warning
#jira UE-47922
Change 3567023 by Michael.Noland
Blueprints: Change various TArray<> uses to TSet<> throughout name validation and related code to enable it to scale better to high component or variable counts
Adapted from PR #3708: Fast construction of bp (Contributed by gildor2)
#jira UE-46473
Change 3567304 by Ben.Zeigler
Add bCheckRecursive option to IsEditorOnlyObject that is enabled by default and will check outer/archetype/class.
This is needed for places that call this function from outside of SavePackage.cpp when the editor only mark is set, such as the automation test code
Change 3567398 by Ben.Zeigler
Fix crash when spawning a widget that has no editor WidgetTree, but does have a cooked widget tree template due to tree inheritance
Change 3567729 by Michael.Noland
Blueprints: Clarified message about "{VariableName} is not blueprint visible" to define what that means "(BlueprintReadOnly or BlueprintReadWrite)"
Change 3567739 by Ben.Zeigler
Don't crash if PropertyStruct cannot find it's struct. The function half handled this before, but Preload crashes with a null parameter
Change 3567741 by Ben.Zeigler
Disable optimization for a path test that was crashing in VC2015 in a monolithic build
Change 3568332 by Mieszko.Zielinski
Prevented UAIPerceptionSystem::GetCurrent causing a BP error when WorldContextObject is null #UE4
#jira UE-47948
Change 3568676 by Michael.Noland
Blueprints: Allow editing the tooltip of each enum value in a user defined enum
#jira UE-20036
Known issue: Undo/redo is not currently possible on the tooltip as it is directly stored in package metadata
Change 3569128 by Michael.Noland
Blueprints: Removing the experimental profiler as we won't be returning to it any time soon
#jira UE-46852
Change 3569207 by Michael.Noland
Blueprints: Allow drag-dropping component Blueprint assets into the graph to create Add Component nodes and improved the error message when dragging something that cannot be dropped into an actor Blueprint
#jira UE-8708
Change 3569208 by Michael.Noland
Blueprints: Allow specifying a description for user defined enums (shown in the content browser)
#jira UE-20036
Change 3569209 by Michael.Noland
Editor: Allow adjusting the font size for each individual comment box node in Blueprints and Materials
#jira UE-16085
Change 3570177 by Michael.Noland
Blueprints: Fixed discrepancy between the Structure tab name and the menu option for the tab in the user defined structure editor (now both say Structure Editor)
#jira UE-47962
Change 3570179 by Michael.Noland
Blueprints: Fixed the tooltip of a user defined structure not updating immediately in the content browser after being edited
Change 3570192 by Michael.Noland
Blueprints: Added "(selected)" after the label (in the 'debug filter' dropdown in the Blueprint editor) for actors that are selected in the level editor, which should make it easier to choose the specific actor you want to debug
#jira UE-20709
Change 3571203 by Michael.Noland
Blueprints: Cleanup and refactoring to prepare for turning commented out nodes into an official feature
- Made EnabledState and bUserSetEnabledState private on UEdGraphNode and added new getters/setters
- Introduced IsAutomaticallyPlacedGhostNode() and MakeAutomaticallyPlacedGhostNode() to start decoupling the concept from commented out nodes
- Updated a couple of places that used a hardcoded UberGraphPages[0] into instead editing the most recently interacted with event graph if possible
- Updated 'is data only blueprint' logic to allow multiple ubergraph pages, as long as they're all empty of non-disabled nodes
Change 3571224 by Michael.Noland
Blueprints: Draw banners on development-only and user disabled nodes (excluding 'ghost' nodes like autogenerated event entries in new BPs)
Adapted from PR #2701: Differentiate development nodes in BP (Contributed by projectgheist)
#jira UE-29848
#jira UE-34698
Change 3571279 by Michael.Noland
Blueprints: Changed UK2Node::GetPassThroughPin so that only the execution wire on nodes with exactly one input and one output exec wire will have a corresponding pass-through pin (when there is ambiguity in which exec would be used, e.g., with a branch or sequence or timeline node, the subsequent nodes are now effectively disabled as well)
Change 3571282 by Michael.Noland
Blueprints: Fixed the tooltip for dragging a variable onto an inherited category not showing the 'move to category' hint
Change 3571284 by Michael.Noland
Blueprints: Made wires into/out of a user-disabled node draw verly dimly (other than the passthrough exec if it exists)
Change 3571311 by Ben.Zeigler
Add ActorIteratorFlags which allows overriding which types of actors/levels are iterated by ActorIterator, to allow iterating levels that are not visible.
All of the iteration logic is now in the base and the children just set different flags, which fixes it so TActorIterator does the same level collection check as FActorIterator
Change 3571313 by Ben.Zeigler
Several fixes to automation framework to allow it to work better with Cooked builds.
Change it so the automation test list is a single message. There is no guarantee on order of message packets, so several tests were being missed each time.
Change 3571485 by mason.seay
Test map for Make Set bug
Change 3571501 by Ben.Zeigler
Accidentally undid the UHT fixup for TAssetPtr during my bulk rename
Change 3571531 by Ben.Zeigler
Fix warning messages
Change 3571591 by Michael.Noland
Blueprints: Made drag-dropping assets into a graph to create a component transactional (allowing the action to be undone)
#jira UE-48024
Change 3572938 by Michael.Noland
Blueprints: Fixed a typo in a set function comment
#jira UE-48036
Change 3572941 by Michael.Noland
Blueprints: Made the compact node title for cross and dot product the words cross and dot rather than hard to see . and x symbols
#jira UE-38624
Change 3574816 by mason.seay
Renamed asset to better reflect name of object reference
Change 3574985 by mason.seay
Updated comments and string outputs to list Soft Object Reference
Change 3575740 by Ben.Zeigler
#jira UE-48061 Change it so Editor builds work like cooked builds and always try to reuse existing packages when loading them instead of recreating them in place. Recreating in place does not work well for levels and blueprints, and blueprints already had a hack that was causing this behavior to not activate
Change 3575795 by Ben.Zeigler
#jira UE-48118 Call into the AssetManager as part of the DistillPackages commandlet. This makes sure that ShooterGame and EngineTest end up with the correct content in launcher builds
Change 3576374 by mason.seay
Forgot to submit the deleting of a redirector
Change 3576966 by Ben.Zeigler
#jira UE-48153 Fix issue where actors in streaming levels weren't properly replicating in PIE. It now does the remap path on both send and receive for the manual PC level streaming commands
Change 3577002 by Marc.Audy
Prevent wildcard pins from being connected to exec pins
#jira UE-48148
Change 3577232 by Phillip.Kavan
#jira UE-48034 - Fix EDL assert on load caused by a native reference to a nativized BP class that also references a nativized UDS asset.
Change summary:
- Modified FNativeClassHeaderGenerator::ExportGeneratedStructBodyMacros() to emit the 'ReplaceConverted' package name for the FCompiledInDeferStruct global associated with the nativized UDS asset in the UHT codegen. This brings nativized UDS to parity with nativized BP class assets (it was likely just an oversight initially).
Change 3577710 by Dan.Oconnor
Mirror of 3576977:
Fix for crash when loading cooked uassets that reference functions that are not present
#jira UE-47644
Change 3577723 by Dan.Oconnor
Prevent deferring of classes that are needed to load subobjects
#jira UE-47726
Change 3577741 by Dan.Oconnor
Back out changelist 3577723 - causes crash when starting QAGame in Dev-Framework - not in Release-4.17
Change 3578938 by Ben.Zeigler
#jira UE-27124 Fix issue where renaming a map with legacy map build data would end up with a half-loaded redirector package, becuase the old map build data was still in use. It's possible the call to HandleLegacyMapBuildData should just be in World PostLoad instead of piecemeal in several other places but I am unsure.
Fix it so the redirector cleanup code on map change will not be stopped by non-standalone top level objects, which could be left behind by issues in other systems
Change 3578947 by Marc.Audy
(4.17) Properly expose members of DialogueContext to blueprints
#jira UE-48175
Change 3578952 by Ben.Zeigler
Fix ensure where ParentHandles on a StreamableHandle could be modified while iterating
Change 3579315 by mason.seay
Test map for Make Container nodes
Change 3579600 by Ben.Zeigler
Disable window test on non-desktop platforms as they cannot be resized post launch
Change 3579601 by Ben.Zeigler
#jira UE-48236 Disable optimizations on PS4 for certain math tests pending fixing of platform issue
Change 3579713 by Dan.Oconnor
Prevent crashes when bluepints implement an interface that was deleted
#jira UE-48223
Change 3579719 by Dan.Oconnor
Fix two compilation manager issues: Make sure CDOs are not renamed under a UClass, because they will be considered as possible subobjects, which has bad side effects and make sure that we update references even on empty functions, so that empty UFunctions are not left with references to REINST data
#jira UE-48240
Change 3579745 by Michael.Noland
Blueprints: Improve categorization and reordering support in 'My Blueprints'
- Allow drag-dropping functions, macros, delegates, etc... to reorder them within a category or to change categories (bringing them to parity with variables)
- Make category ordering on all categories sticky so you can reorder categories (the relative ordering will be the same within different sections like variables and functions)
- Added hover cues when drag dropping some items that were missing them (e.g., event dispatchers)
- Added support for renaming categories using F2
Known issues (none are regressions):
- Timelines cannot be moved to other categories or reordered
- Renaming a nested category will result in it becoming a top level category (discarding the parent category chain)
- Some actions do not support undo
#jira UE-31557
Change 3579795 by Michael.Noland
PR #3867: Fix for not releasing Local Notification Delegate. (Contributed by enginevividgames)
#jira UE-48105
Change 3580463 by Marc.Audy
(4.17) Don't crash if calling PostEditUndo on an Actor in the transient package
#jira UE-47523
Change 3581073 by Marc.Audy
Make UK2Node_SpawnActorFromClass inherit from K2Node_ConstructObjectFromClass and eliminate duplicate code.
Correctly reconnect split pins when changing class on create widget, construct object, and spawn actor nodes
Change 3581156 by Ben.Zeigler
#jira UE-48161 Fix issue where split pins would not be restored if a Struct type was changed due to refactoring of parent variables/functions. For structs we want to copy the pins, if they're invalid due to other changes they will be individual orphaned
Also fix bug where the category of parent pins was being set incorrectly while changing variable type, we only want to override type for wildcard pins
Change 3581473 by Ben.Zeigler
Properly turn off optimization for PS4 test
Change 3582094 by Marc.Audy
Fix anim nodes not navigating to their graph on double click
#jira UE-48333
Change 3582157 by Marc.Audy
Fix double-clicking on animation asset nodes not opening the asset editors
Change 3582289 by Marc.Audy
(4.17) Don't crash when adding a streaming level that's already in the level
#jira UE-48928
Change 3545435 by Ben.Zeigler
#jira UE-47509 Rename and refactor internals StringAssetReferences and AssetPtrs to become SoftObjectPath/Ptr. This is to prepare them for use for subobjects like actors. Here is the rename table:
FStringAssetReference -> FSoftObjectPath
FStringClassReference -> FSoftClassPath
TAssetPtr -> TSoftObjectPtr
TAssetSubclassOf -> TSoftClassPtr
The old headers are deprecated, and FSoftClassPath is now in the same header has FSoftObjectPath.
This change increments the UE4 version because FSoftObjectPaths are now stored as a name + substring instead of one giant name, which in practice will improve performance and memory while manipulating them. Also the package table of soft referenced packages is now stored as FNames instead of FStrings as these packages names will already be in the name table due to the AssetRegistry
Remove automatic support for loading Objectpaths starting with engine-ini:, as it was only partially supported and is very outdated. ResolveIniObjectsReference can still be called manually
Changed TPersistentObjectPtr and TLazyObjectPtr to be structs instead of classes
Change UnrealHeaderTool to read configuration such as StructsWithNoPrefix out of inis instead of using a hardcoded list. Add support for TypeRedirects, which is used to make the old type names automatically remap to the new ones
Clean up FRedirectCollector to remove some of the functionality that is no longer used by the cooker, and disable tracking of redirects in standalone -game builds
Change 3567760 by Ben.Zeigler
Fix it so EngineTest can be cooked by moving some utility functions to EditorTestsUtilityLibrary and adding an EditorFunctionalTest. The core EngineTest module is safely runtime-only now and can run it's tests locally in windows cooked
Merge FuncTestManager into FunctionalTestModule to avoid confusion with FunctionalTestingManager UObject
Add EngineTestAssetManager and override the cook function to cook all maps with runtime functional tests
Change actor merging tests to be editor only, this stops them from cooking
Several individual tests crash on cooked builds, I started threads with the owners of those
Change 3575737 by Ben.Zeigler
#jira UE-48042 Change it so playing via PIE Standalone, multiprocess networked PIE and external cook launch on does not save temporary levels to UEDPC and instead prompts the user to save. This is how launch on works by default already, and this fixes cross level references/sequencer. The UEDPC code has been removed entirely.
As part of this change, connecting a -game client to a PIE server and vice versa is much more likely to work. You may still have game-side problems, look at UEditorEngine::NetworkRemapPath for an example of how to do the PIE prefix conversion
Remove advanced CreateTemporaryCopiesOfLevels option from sequencer capture, it has not been tested in multiple years and does not work with newer sequencer features
#jira UE-27124 Fix several possible crashes with changing levels while in PIE
Change 3578806 by Marc.Audy
Fix Construct Object not working correctly with split pins.
Add Construct Object test cases to functional tests.
Added split pin expose on spawn test cases.
#jira UE-33924
[CL 3582334 by Marc Audy in Main branch]
2017-08-11 12:43:42 -04:00
PackageName = FPackageName : : ObjectPathToPackageName ( PackageName ) ;
2015-07-23 10:49:29 -04:00
}
}
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3582324)
#lockdown Nick.Penwarden
#rb none
#rnx
============================
MAJOR FEATURES & CHANGES
============================
Change 3431439 by Marc.Audy
Editor only subobjects shouldn't exist in PIE world
#jira UE-43186
Change 3457323 by Marc.Audy
Undo CL# 3431439 and once again allow (incorrectly) for editor only objects to exist in a PIE world
#jira UE-45087
Change 3499927 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker
#jira UE-43458
Change 3502939 by Michael.Noland
Back out changelist 3499927
Change 3522783 by Zak.Middleton
#ue4 - Imported new simple collision for Engine/Content/BasicShaps/Cylinder.uasset which is a single convex shape (rather than being 4 shapes as before).
Change 3544641 by Dan.Oconnor
Remove conditional that is no longer needed, replace with ensure. It is unsafe to change CDO names
#jira OR-38176
Change 3544645 by Dan.Oconnor
In addition to marking nodes as not transient, FBlueprintEditor::ExpandNode needs to mark them as transactional
#jira UE-45248
Change 3545023 by Marc.Audy
Properly encapsulate FPinDeletionQueue
Fix ensure during deletion of split pins when not clearing links
Fix split pins able to end up in delete queue twice during undo/redo
Change 3545025 by Marc.Audy
Properly allow changing the pin type from a struct that is split on the node
#jira UE-47328
Change 3545455 by Ben.Zeigler
Fix issue where combined streamable handles could be freed before their complete callback is called if nothing external referenced them
Copy of CL#3544474
Change 3545456 by Ben.Zeigler
Allow PrimaryAssets to update their AssetData based on in-memory changes when launching 'Standalone Game' and 'Mobile Preview' from the editor. As it was, changes could be detected and propagated through UPrimaryDataAsset::PostLoad, but the changes would always reapply whatever already exists in the AssetRegistry. The primary use-case for this: making AssetBundle tag changes and allowing them to propagate without resaving/recooking all affected assets.
Copy of CL #3544374
Change 3545547 by Ben.Zeigler
CIS Fix
Change 3545568 by Michael.Noland
PR #3758: Fixing a comment typo from Transistion to Transition (Contributed by gsfreema)
#jira UE-46845
Change 3545582 by Michael.Noland
Blueprints: Prevent duplicate messages from being added to the compiler results log (fixes a crash when resizing the results log while a math expression node has an error)
Blueprints: Fixed the tooltip of math expression nodes not showing up, and error messages getting cleared on subsequent compiles
[Duplicating fixes for UE-47491 and UE-47512 from 4.17 to Dev-Framework]
Change 3546528 by Ben.Zeigler
#jira UE-47548
Fix crash when a map's key type has changed but value has not, it was passing the UStruct defaults in when serialize was expecting the default instance, so pass null instead as we don't have the instance
Change 3546544 by Marc.Audy
Fix split pin restoration logic to deal with wildcards and variations in const/refness
Change 3546551 by Marc.Audy
Don't crash if the struct type is missing for whatever reason
Change 3547152 by Marc.Audy
Fix array exporting so you don't end up getting none instead of defaults
#jira UE-47320
Change 3547438 by Marc.Audy
Fix split pins on class defaults
Don't cause a structural change when reapplying a split pin as part of node reconstruction
#jira UE-46935
Change 3547501 by Ben.Zeigler
Fix ensure, it's valid to pass a null path for a dynamic asset
Change 3551185 by Ben.Zeigler
#jira UE-42835 Fix it so SoftObjectPaths work correctly when inside levels loaded for the first time from PIE. Added code to do in-place PIE fixup for levels that are loaded instead of duplicated, and changed the fixup logic to fix all level references, not just ones being explicitly duplicated
Change 3551723 by Ben.Zeigler
Improve UI for displaying actor soft references. Add an error/warning icon if the cross level reference is broken or unloaded, and fix various display and copy/paste behaviors
Change 3553216 by Phillip.Kavan
#jira UE-39303, UE-46268, UE-47519
- Nativized UDS now support external asset dependencies and will construct their own linker import tables on load.
Change summary:
- Modified FCompactBlueprintDependencyData and FFakeImportTableHelper to be more relevant to UStruct and not just UClass-derivative types.
- Modified FBlueprintDependencyData to accept a single FCompactBlueprintDependencyData struct rather than its individual fields.
- Modified FBlueprintCompilerCppBackendBase::GenerateCodeFromStruct() to emit dependency assignment and static type registration functions for nativized UStruct types.
- Modified FBlueprintNativeCodeGenModule::FStatePerPlatform to include an array for tracking UDS assets that need to be converted during the nativization pass at cook time.
- Modified FBlueprintNativeCodeGenModule::GenerateFullyConvertedClasses() to generate nativized code for UDS assets. This ensures that UDS conversion falls under the same scope as BPGC conversion, so that they both feed into the same NativizationSummary context for asset dependency tracking (i.e. since we only have a single global dependency table in the codegen). Also modified InitializeForRerunDebugOnly() to do the same.
- Modified FBlueprintNativeCodeGenModule::Convert() to defer UDS conversion so that it's done at the same time as BPGC conversion (see note above).
- Modified FEmitDefaultValueHelper::AddStaticFunctionsForDependencies() to include support for UStruct types and to conform to changes made to FCompactBlueprintDependencyData.
- Modified FEmitDefaultValueHelper::AddRegisterHelper() to include support for UStruct types.
- Modified FBlueprintNativeCodeGenModule::FindReplacedClassForObject() to ensure that converted User-Defined Enum types are switched to a UEnumProperty at package save time so that any import tables contain the proper class. This is necessary because we nativize User-Defined Enum types as 'enum class' types, and UHT will generate code for those as a UEnumProperty with an "underlying" property. However, non-nativized User-Defined Enum types are referenced as a UByteProperty with a UEnum reference, so we have to fix up all the import tables before saving. Otherwise, EDL will assert on load (see UE-47519).
Change 3553301 by Ben.Zeigler
Fix ensure when passing literal None to SoftObjectPath, it now treats them as empty instead
Change 3553631 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker. This change was originally submitted in 3499927, but it was incorrectly clearing the UField::Next pointer in UField::Serialize.
#jira UE-43458
Change 3553799 by Ben.Zeigler
Fix issue where calling WaitUntilComplete on a combined handle with Stalled children wouldn't work properly. It now forces all stalled children to start immediately. I also added a warning log when this happens and an ensure if somehow the force didn't work
Copy of CL #3553781
Change 3553896 by Michael.Noland
Blueprints: Allow the autowiring logic to better break and replace existing connections when made (e.g., when dragging a variable onto a compatible pin with an existing connection, break the old connection to allow the new connection to be made)
#jira UE-31031
Change 3553897 by Michael.Noland
Blueprints: Adjust search query when doing 'Find References' on variables from My Blueprints so that bound event nodes show up for components and widgets
#jira UE-37862
Change 3553898 by Michael.Noland
Blueprints: Add the name of the variable directly in the get/set menu options (when dragging from My Blueprints into the graph)
Change 3553909 by Michael.Noland
Blueprints: Added the full name of the type, container type (and value type for maps) to the tooltips for the type picker elements, so long names can be read in full
#jira UE-19710
Change 3554517 by Michael.Noland
Blueprints: Added an option to disable the comment bubble on comment boxes that appears when zoomed out
#jira UE-21810
Change 3554664 by Michael.Noland
Editor: Renamed "Find in CB" command to "Browse" and renamed "Search" (in BP) to "Find", so terminology is consistent and keyboard shortcuts make sense (Ctrl+B for Browse, Ctrl+F for find, not using the term Search anywhere)
#jira UE-27121
Change 3554831 by Dan.Oconnor
Non editor build fix
Change 3554834 by Dan.Oconnor
Actor bound event related warnings now show up in blueprint status when opening level blueprint for first time, improved warning message. Removed unused delegate and return value from FixLevelScriptActorBindings. Can now pass raw strings to blueprint results log (no need for Printf, although padding is not great), UClasses in compiler results log will open the generated blueprint when clicked on
#jira UE-40438
Change 3556157 by Ben.Zeigler
Convert LevelSequenceBindingReference to use FSoftObjectPath so it works properly with redirectors and fixups
Change 3557775 by Michael.Noland
Blueprints: Fixed swapped transaction messages when converting a cast node between pure and impure
#jira UE-36090
Change 3557777 by Michael.Noland
Blueprints: Allow 'Goto Definition' and 'Find References' to be used while stopped at a breakpoint
PR #3774: Expose GotoFunctionDefinition during BP debugging (Contributed by projectgheist)
#jira UE-47024
Change 3560510 by Michael.Noland
Blueprints: Add support for 'goto definition' on Create Event nodes when the Object pin is not hooked up
#jira UE-38912
Change 3560563 by Michael.Noland
Blueprints: Disallow converting a variable get node to impure/back when debugging (no graph mutating operations should be allowed)
Change 3561443 by Ben.Zeigler
Restore code to support gc.DumpPoolStats, was accidentally removed when FGCArrayPool was moved to a header.
Clean up comments around Cleanup function, the functionality to trim the memory pools was integrated into ClearWeakReferences on a prior change
Change 3561658 by Michael.Noland
Blueprints: Refactored 'Goto Definition' so there is no per-class logic in the Blueprint editor or schema any more; any node can opt in individually
- Added a key binding for Goto Definition (Alt+G)
- Added a key binding for Find References (Shift+Alt+F)
- Collapsed 'Goto Code Definition' for variables and functions into the same path, so there aren't separate menu items and commands
- Added new methods CanJumpToDefinition and JumpToDefinition to UEdGraphNode, the default behavior for UK2Node subclasses is to call GetJumpTargetForDoubleClick and call into FKismetEditorUtilities::BringKismetToFocusAttentionOnObject
- Going to a native function now goes thru a better code path that will actually put the source code editor on the function definition, rather than just opening the file containing the definition
Change 3562291 by Ben.Zeigler
Fix issue where calling FSoftObjectPtr::Get during a package save would result in that ptr being forever marked broken, because the ResolveObject fails during save. It's too risky to change that behavior, so change it so the TagAtLastTest doesn't get updated in that case
Change 3562292 by Ben.Zeigler
#jira UE-39042 When renaming or moving actors between levels it now attempts to fix any soft object references from blueprints or sequencer
When deleting actors that are soft referenced by actor/sequencer it will now warn the same way it does for level script. Added IAssetTools::FindSoftReferencesToObject to perform this search
Change it so saving a non-primary world does not result it being dirtied due to the temporary physics scene fixup
Fix issue where the actor name was shown incorrectly in the SSCS tree for actor instances, which meant that if you renamed it you would end up renaming it to the BP's name
Change 3564814 by Ben.Zeigler
#jira UE-47843 Don't set InputKey output pins to AnyKey if empty, this was causing blueprints with key events to constantly dirty themselves
Change 3566707 by Dan.Oconnor
Remove unused code, UClassGenerateCDODuplicatesForHotReload was attempting to create a CDO with a special name, which triggered an ensure. The Duplicated CDO was never used (callign code removed in 3289276 as it was a waste of cycles)
#jira None
Change 3566717 by Michael.Noland
Core: Remove all defintions that contain "_API" from the command line when compiling .rc files (they do not support repsonse files and a too-long command line will fail the compile)
Change 3566771 by Michael.Noland
Editor: Fixing deprecation warning
#jira UE-47922
Change 3567023 by Michael.Noland
Blueprints: Change various TArray<> uses to TSet<> throughout name validation and related code to enable it to scale better to high component or variable counts
Adapted from PR #3708: Fast construction of bp (Contributed by gildor2)
#jira UE-46473
Change 3567304 by Ben.Zeigler
Add bCheckRecursive option to IsEditorOnlyObject that is enabled by default and will check outer/archetype/class.
This is needed for places that call this function from outside of SavePackage.cpp when the editor only mark is set, such as the automation test code
Change 3567398 by Ben.Zeigler
Fix crash when spawning a widget that has no editor WidgetTree, but does have a cooked widget tree template due to tree inheritance
Change 3567729 by Michael.Noland
Blueprints: Clarified message about "{VariableName} is not blueprint visible" to define what that means "(BlueprintReadOnly or BlueprintReadWrite)"
Change 3567739 by Ben.Zeigler
Don't crash if PropertyStruct cannot find it's struct. The function half handled this before, but Preload crashes with a null parameter
Change 3567741 by Ben.Zeigler
Disable optimization for a path test that was crashing in VC2015 in a monolithic build
Change 3568332 by Mieszko.Zielinski
Prevented UAIPerceptionSystem::GetCurrent causing a BP error when WorldContextObject is null #UE4
#jira UE-47948
Change 3568676 by Michael.Noland
Blueprints: Allow editing the tooltip of each enum value in a user defined enum
#jira UE-20036
Known issue: Undo/redo is not currently possible on the tooltip as it is directly stored in package metadata
Change 3569128 by Michael.Noland
Blueprints: Removing the experimental profiler as we won't be returning to it any time soon
#jira UE-46852
Change 3569207 by Michael.Noland
Blueprints: Allow drag-dropping component Blueprint assets into the graph to create Add Component nodes and improved the error message when dragging something that cannot be dropped into an actor Blueprint
#jira UE-8708
Change 3569208 by Michael.Noland
Blueprints: Allow specifying a description for user defined enums (shown in the content browser)
#jira UE-20036
Change 3569209 by Michael.Noland
Editor: Allow adjusting the font size for each individual comment box node in Blueprints and Materials
#jira UE-16085
Change 3570177 by Michael.Noland
Blueprints: Fixed discrepancy between the Structure tab name and the menu option for the tab in the user defined structure editor (now both say Structure Editor)
#jira UE-47962
Change 3570179 by Michael.Noland
Blueprints: Fixed the tooltip of a user defined structure not updating immediately in the content browser after being edited
Change 3570192 by Michael.Noland
Blueprints: Added "(selected)" after the label (in the 'debug filter' dropdown in the Blueprint editor) for actors that are selected in the level editor, which should make it easier to choose the specific actor you want to debug
#jira UE-20709
Change 3571203 by Michael.Noland
Blueprints: Cleanup and refactoring to prepare for turning commented out nodes into an official feature
- Made EnabledState and bUserSetEnabledState private on UEdGraphNode and added new getters/setters
- Introduced IsAutomaticallyPlacedGhostNode() and MakeAutomaticallyPlacedGhostNode() to start decoupling the concept from commented out nodes
- Updated a couple of places that used a hardcoded UberGraphPages[0] into instead editing the most recently interacted with event graph if possible
- Updated 'is data only blueprint' logic to allow multiple ubergraph pages, as long as they're all empty of non-disabled nodes
Change 3571224 by Michael.Noland
Blueprints: Draw banners on development-only and user disabled nodes (excluding 'ghost' nodes like autogenerated event entries in new BPs)
Adapted from PR #2701: Differentiate development nodes in BP (Contributed by projectgheist)
#jira UE-29848
#jira UE-34698
Change 3571279 by Michael.Noland
Blueprints: Changed UK2Node::GetPassThroughPin so that only the execution wire on nodes with exactly one input and one output exec wire will have a corresponding pass-through pin (when there is ambiguity in which exec would be used, e.g., with a branch or sequence or timeline node, the subsequent nodes are now effectively disabled as well)
Change 3571282 by Michael.Noland
Blueprints: Fixed the tooltip for dragging a variable onto an inherited category not showing the 'move to category' hint
Change 3571284 by Michael.Noland
Blueprints: Made wires into/out of a user-disabled node draw verly dimly (other than the passthrough exec if it exists)
Change 3571311 by Ben.Zeigler
Add ActorIteratorFlags which allows overriding which types of actors/levels are iterated by ActorIterator, to allow iterating levels that are not visible.
All of the iteration logic is now in the base and the children just set different flags, which fixes it so TActorIterator does the same level collection check as FActorIterator
Change 3571313 by Ben.Zeigler
Several fixes to automation framework to allow it to work better with Cooked builds.
Change it so the automation test list is a single message. There is no guarantee on order of message packets, so several tests were being missed each time.
Change 3571485 by mason.seay
Test map for Make Set bug
Change 3571501 by Ben.Zeigler
Accidentally undid the UHT fixup for TAssetPtr during my bulk rename
Change 3571531 by Ben.Zeigler
Fix warning messages
Change 3571591 by Michael.Noland
Blueprints: Made drag-dropping assets into a graph to create a component transactional (allowing the action to be undone)
#jira UE-48024
Change 3572938 by Michael.Noland
Blueprints: Fixed a typo in a set function comment
#jira UE-48036
Change 3572941 by Michael.Noland
Blueprints: Made the compact node title for cross and dot product the words cross and dot rather than hard to see . and x symbols
#jira UE-38624
Change 3574816 by mason.seay
Renamed asset to better reflect name of object reference
Change 3574985 by mason.seay
Updated comments and string outputs to list Soft Object Reference
Change 3575740 by Ben.Zeigler
#jira UE-48061 Change it so Editor builds work like cooked builds and always try to reuse existing packages when loading them instead of recreating them in place. Recreating in place does not work well for levels and blueprints, and blueprints already had a hack that was causing this behavior to not activate
Change 3575795 by Ben.Zeigler
#jira UE-48118 Call into the AssetManager as part of the DistillPackages commandlet. This makes sure that ShooterGame and EngineTest end up with the correct content in launcher builds
Change 3576374 by mason.seay
Forgot to submit the deleting of a redirector
Change 3576966 by Ben.Zeigler
#jira UE-48153 Fix issue where actors in streaming levels weren't properly replicating in PIE. It now does the remap path on both send and receive for the manual PC level streaming commands
Change 3577002 by Marc.Audy
Prevent wildcard pins from being connected to exec pins
#jira UE-48148
Change 3577232 by Phillip.Kavan
#jira UE-48034 - Fix EDL assert on load caused by a native reference to a nativized BP class that also references a nativized UDS asset.
Change summary:
- Modified FNativeClassHeaderGenerator::ExportGeneratedStructBodyMacros() to emit the 'ReplaceConverted' package name for the FCompiledInDeferStruct global associated with the nativized UDS asset in the UHT codegen. This brings nativized UDS to parity with nativized BP class assets (it was likely just an oversight initially).
Change 3577710 by Dan.Oconnor
Mirror of 3576977:
Fix for crash when loading cooked uassets that reference functions that are not present
#jira UE-47644
Change 3577723 by Dan.Oconnor
Prevent deferring of classes that are needed to load subobjects
#jira UE-47726
Change 3577741 by Dan.Oconnor
Back out changelist 3577723 - causes crash when starting QAGame in Dev-Framework - not in Release-4.17
Change 3578938 by Ben.Zeigler
#jira UE-27124 Fix issue where renaming a map with legacy map build data would end up with a half-loaded redirector package, becuase the old map build data was still in use. It's possible the call to HandleLegacyMapBuildData should just be in World PostLoad instead of piecemeal in several other places but I am unsure.
Fix it so the redirector cleanup code on map change will not be stopped by non-standalone top level objects, which could be left behind by issues in other systems
Change 3578947 by Marc.Audy
(4.17) Properly expose members of DialogueContext to blueprints
#jira UE-48175
Change 3578952 by Ben.Zeigler
Fix ensure where ParentHandles on a StreamableHandle could be modified while iterating
Change 3579315 by mason.seay
Test map for Make Container nodes
Change 3579600 by Ben.Zeigler
Disable window test on non-desktop platforms as they cannot be resized post launch
Change 3579601 by Ben.Zeigler
#jira UE-48236 Disable optimizations on PS4 for certain math tests pending fixing of platform issue
Change 3579713 by Dan.Oconnor
Prevent crashes when bluepints implement an interface that was deleted
#jira UE-48223
Change 3579719 by Dan.Oconnor
Fix two compilation manager issues: Make sure CDOs are not renamed under a UClass, because they will be considered as possible subobjects, which has bad side effects and make sure that we update references even on empty functions, so that empty UFunctions are not left with references to REINST data
#jira UE-48240
Change 3579745 by Michael.Noland
Blueprints: Improve categorization and reordering support in 'My Blueprints'
- Allow drag-dropping functions, macros, delegates, etc... to reorder them within a category or to change categories (bringing them to parity with variables)
- Make category ordering on all categories sticky so you can reorder categories (the relative ordering will be the same within different sections like variables and functions)
- Added hover cues when drag dropping some items that were missing them (e.g., event dispatchers)
- Added support for renaming categories using F2
Known issues (none are regressions):
- Timelines cannot be moved to other categories or reordered
- Renaming a nested category will result in it becoming a top level category (discarding the parent category chain)
- Some actions do not support undo
#jira UE-31557
Change 3579795 by Michael.Noland
PR #3867: Fix for not releasing Local Notification Delegate. (Contributed by enginevividgames)
#jira UE-48105
Change 3580463 by Marc.Audy
(4.17) Don't crash if calling PostEditUndo on an Actor in the transient package
#jira UE-47523
Change 3581073 by Marc.Audy
Make UK2Node_SpawnActorFromClass inherit from K2Node_ConstructObjectFromClass and eliminate duplicate code.
Correctly reconnect split pins when changing class on create widget, construct object, and spawn actor nodes
Change 3581156 by Ben.Zeigler
#jira UE-48161 Fix issue where split pins would not be restored if a Struct type was changed due to refactoring of parent variables/functions. For structs we want to copy the pins, if they're invalid due to other changes they will be individual orphaned
Also fix bug where the category of parent pins was being set incorrectly while changing variable type, we only want to override type for wildcard pins
Change 3581473 by Ben.Zeigler
Properly turn off optimization for PS4 test
Change 3582094 by Marc.Audy
Fix anim nodes not navigating to their graph on double click
#jira UE-48333
Change 3582157 by Marc.Audy
Fix double-clicking on animation asset nodes not opening the asset editors
Change 3582289 by Marc.Audy
(4.17) Don't crash when adding a streaming level that's already in the level
#jira UE-48928
Change 3545435 by Ben.Zeigler
#jira UE-47509 Rename and refactor internals StringAssetReferences and AssetPtrs to become SoftObjectPath/Ptr. This is to prepare them for use for subobjects like actors. Here is the rename table:
FStringAssetReference -> FSoftObjectPath
FStringClassReference -> FSoftClassPath
TAssetPtr -> TSoftObjectPtr
TAssetSubclassOf -> TSoftClassPtr
The old headers are deprecated, and FSoftClassPath is now in the same header has FSoftObjectPath.
This change increments the UE4 version because FSoftObjectPaths are now stored as a name + substring instead of one giant name, which in practice will improve performance and memory while manipulating them. Also the package table of soft referenced packages is now stored as FNames instead of FStrings as these packages names will already be in the name table due to the AssetRegistry
Remove automatic support for loading Objectpaths starting with engine-ini:, as it was only partially supported and is very outdated. ResolveIniObjectsReference can still be called manually
Changed TPersistentObjectPtr and TLazyObjectPtr to be structs instead of classes
Change UnrealHeaderTool to read configuration such as StructsWithNoPrefix out of inis instead of using a hardcoded list. Add support for TypeRedirects, which is used to make the old type names automatically remap to the new ones
Clean up FRedirectCollector to remove some of the functionality that is no longer used by the cooker, and disable tracking of redirects in standalone -game builds
Change 3567760 by Ben.Zeigler
Fix it so EngineTest can be cooked by moving some utility functions to EditorTestsUtilityLibrary and adding an EditorFunctionalTest. The core EngineTest module is safely runtime-only now and can run it's tests locally in windows cooked
Merge FuncTestManager into FunctionalTestModule to avoid confusion with FunctionalTestingManager UObject
Add EngineTestAssetManager and override the cook function to cook all maps with runtime functional tests
Change actor merging tests to be editor only, this stops them from cooking
Several individual tests crash on cooked builds, I started threads with the owners of those
Change 3575737 by Ben.Zeigler
#jira UE-48042 Change it so playing via PIE Standalone, multiprocess networked PIE and external cook launch on does not save temporary levels to UEDPC and instead prompts the user to save. This is how launch on works by default already, and this fixes cross level references/sequencer. The UEDPC code has been removed entirely.
As part of this change, connecting a -game client to a PIE server and vice versa is much more likely to work. You may still have game-side problems, look at UEditorEngine::NetworkRemapPath for an example of how to do the PIE prefix conversion
Remove advanced CreateTemporaryCopiesOfLevels option from sequencer capture, it has not been tested in multiple years and does not work with newer sequencer features
#jira UE-27124 Fix several possible crashes with changing levels while in PIE
Change 3578806 by Marc.Audy
Fix Construct Object not working correctly with split pins.
Add Construct Object test cases to functional tests.
Added split pin expose on spawn test cases.
#jira UE-33924
[CL 3582334 by Marc Audy in Main branch]
2017-08-11 12:43:42 -04:00
OutSoftPackageReferenceList . Add ( FName ( * PackageName ) ) ;
2015-07-23 10:49:29 -04:00
}
}
else
{
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3582324)
#lockdown Nick.Penwarden
#rb none
#rnx
============================
MAJOR FEATURES & CHANGES
============================
Change 3431439 by Marc.Audy
Editor only subobjects shouldn't exist in PIE world
#jira UE-43186
Change 3457323 by Marc.Audy
Undo CL# 3431439 and once again allow (incorrectly) for editor only objects to exist in a PIE world
#jira UE-45087
Change 3499927 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker
#jira UE-43458
Change 3502939 by Michael.Noland
Back out changelist 3499927
Change 3522783 by Zak.Middleton
#ue4 - Imported new simple collision for Engine/Content/BasicShaps/Cylinder.uasset which is a single convex shape (rather than being 4 shapes as before).
Change 3544641 by Dan.Oconnor
Remove conditional that is no longer needed, replace with ensure. It is unsafe to change CDO names
#jira OR-38176
Change 3544645 by Dan.Oconnor
In addition to marking nodes as not transient, FBlueprintEditor::ExpandNode needs to mark them as transactional
#jira UE-45248
Change 3545023 by Marc.Audy
Properly encapsulate FPinDeletionQueue
Fix ensure during deletion of split pins when not clearing links
Fix split pins able to end up in delete queue twice during undo/redo
Change 3545025 by Marc.Audy
Properly allow changing the pin type from a struct that is split on the node
#jira UE-47328
Change 3545455 by Ben.Zeigler
Fix issue where combined streamable handles could be freed before their complete callback is called if nothing external referenced them
Copy of CL#3544474
Change 3545456 by Ben.Zeigler
Allow PrimaryAssets to update their AssetData based on in-memory changes when launching 'Standalone Game' and 'Mobile Preview' from the editor. As it was, changes could be detected and propagated through UPrimaryDataAsset::PostLoad, but the changes would always reapply whatever already exists in the AssetRegistry. The primary use-case for this: making AssetBundle tag changes and allowing them to propagate without resaving/recooking all affected assets.
Copy of CL #3544374
Change 3545547 by Ben.Zeigler
CIS Fix
Change 3545568 by Michael.Noland
PR #3758: Fixing a comment typo from Transistion to Transition (Contributed by gsfreema)
#jira UE-46845
Change 3545582 by Michael.Noland
Blueprints: Prevent duplicate messages from being added to the compiler results log (fixes a crash when resizing the results log while a math expression node has an error)
Blueprints: Fixed the tooltip of math expression nodes not showing up, and error messages getting cleared on subsequent compiles
[Duplicating fixes for UE-47491 and UE-47512 from 4.17 to Dev-Framework]
Change 3546528 by Ben.Zeigler
#jira UE-47548
Fix crash when a map's key type has changed but value has not, it was passing the UStruct defaults in when serialize was expecting the default instance, so pass null instead as we don't have the instance
Change 3546544 by Marc.Audy
Fix split pin restoration logic to deal with wildcards and variations in const/refness
Change 3546551 by Marc.Audy
Don't crash if the struct type is missing for whatever reason
Change 3547152 by Marc.Audy
Fix array exporting so you don't end up getting none instead of defaults
#jira UE-47320
Change 3547438 by Marc.Audy
Fix split pins on class defaults
Don't cause a structural change when reapplying a split pin as part of node reconstruction
#jira UE-46935
Change 3547501 by Ben.Zeigler
Fix ensure, it's valid to pass a null path for a dynamic asset
Change 3551185 by Ben.Zeigler
#jira UE-42835 Fix it so SoftObjectPaths work correctly when inside levels loaded for the first time from PIE. Added code to do in-place PIE fixup for levels that are loaded instead of duplicated, and changed the fixup logic to fix all level references, not just ones being explicitly duplicated
Change 3551723 by Ben.Zeigler
Improve UI for displaying actor soft references. Add an error/warning icon if the cross level reference is broken or unloaded, and fix various display and copy/paste behaviors
Change 3553216 by Phillip.Kavan
#jira UE-39303, UE-46268, UE-47519
- Nativized UDS now support external asset dependencies and will construct their own linker import tables on load.
Change summary:
- Modified FCompactBlueprintDependencyData and FFakeImportTableHelper to be more relevant to UStruct and not just UClass-derivative types.
- Modified FBlueprintDependencyData to accept a single FCompactBlueprintDependencyData struct rather than its individual fields.
- Modified FBlueprintCompilerCppBackendBase::GenerateCodeFromStruct() to emit dependency assignment and static type registration functions for nativized UStruct types.
- Modified FBlueprintNativeCodeGenModule::FStatePerPlatform to include an array for tracking UDS assets that need to be converted during the nativization pass at cook time.
- Modified FBlueprintNativeCodeGenModule::GenerateFullyConvertedClasses() to generate nativized code for UDS assets. This ensures that UDS conversion falls under the same scope as BPGC conversion, so that they both feed into the same NativizationSummary context for asset dependency tracking (i.e. since we only have a single global dependency table in the codegen). Also modified InitializeForRerunDebugOnly() to do the same.
- Modified FBlueprintNativeCodeGenModule::Convert() to defer UDS conversion so that it's done at the same time as BPGC conversion (see note above).
- Modified FEmitDefaultValueHelper::AddStaticFunctionsForDependencies() to include support for UStruct types and to conform to changes made to FCompactBlueprintDependencyData.
- Modified FEmitDefaultValueHelper::AddRegisterHelper() to include support for UStruct types.
- Modified FBlueprintNativeCodeGenModule::FindReplacedClassForObject() to ensure that converted User-Defined Enum types are switched to a UEnumProperty at package save time so that any import tables contain the proper class. This is necessary because we nativize User-Defined Enum types as 'enum class' types, and UHT will generate code for those as a UEnumProperty with an "underlying" property. However, non-nativized User-Defined Enum types are referenced as a UByteProperty with a UEnum reference, so we have to fix up all the import tables before saving. Otherwise, EDL will assert on load (see UE-47519).
Change 3553301 by Ben.Zeigler
Fix ensure when passing literal None to SoftObjectPath, it now treats them as empty instead
Change 3553631 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker. This change was originally submitted in 3499927, but it was incorrectly clearing the UField::Next pointer in UField::Serialize.
#jira UE-43458
Change 3553799 by Ben.Zeigler
Fix issue where calling WaitUntilComplete on a combined handle with Stalled children wouldn't work properly. It now forces all stalled children to start immediately. I also added a warning log when this happens and an ensure if somehow the force didn't work
Copy of CL #3553781
Change 3553896 by Michael.Noland
Blueprints: Allow the autowiring logic to better break and replace existing connections when made (e.g., when dragging a variable onto a compatible pin with an existing connection, break the old connection to allow the new connection to be made)
#jira UE-31031
Change 3553897 by Michael.Noland
Blueprints: Adjust search query when doing 'Find References' on variables from My Blueprints so that bound event nodes show up for components and widgets
#jira UE-37862
Change 3553898 by Michael.Noland
Blueprints: Add the name of the variable directly in the get/set menu options (when dragging from My Blueprints into the graph)
Change 3553909 by Michael.Noland
Blueprints: Added the full name of the type, container type (and value type for maps) to the tooltips for the type picker elements, so long names can be read in full
#jira UE-19710
Change 3554517 by Michael.Noland
Blueprints: Added an option to disable the comment bubble on comment boxes that appears when zoomed out
#jira UE-21810
Change 3554664 by Michael.Noland
Editor: Renamed "Find in CB" command to "Browse" and renamed "Search" (in BP) to "Find", so terminology is consistent and keyboard shortcuts make sense (Ctrl+B for Browse, Ctrl+F for find, not using the term Search anywhere)
#jira UE-27121
Change 3554831 by Dan.Oconnor
Non editor build fix
Change 3554834 by Dan.Oconnor
Actor bound event related warnings now show up in blueprint status when opening level blueprint for first time, improved warning message. Removed unused delegate and return value from FixLevelScriptActorBindings. Can now pass raw strings to blueprint results log (no need for Printf, although padding is not great), UClasses in compiler results log will open the generated blueprint when clicked on
#jira UE-40438
Change 3556157 by Ben.Zeigler
Convert LevelSequenceBindingReference to use FSoftObjectPath so it works properly with redirectors and fixups
Change 3557775 by Michael.Noland
Blueprints: Fixed swapped transaction messages when converting a cast node between pure and impure
#jira UE-36090
Change 3557777 by Michael.Noland
Blueprints: Allow 'Goto Definition' and 'Find References' to be used while stopped at a breakpoint
PR #3774: Expose GotoFunctionDefinition during BP debugging (Contributed by projectgheist)
#jira UE-47024
Change 3560510 by Michael.Noland
Blueprints: Add support for 'goto definition' on Create Event nodes when the Object pin is not hooked up
#jira UE-38912
Change 3560563 by Michael.Noland
Blueprints: Disallow converting a variable get node to impure/back when debugging (no graph mutating operations should be allowed)
Change 3561443 by Ben.Zeigler
Restore code to support gc.DumpPoolStats, was accidentally removed when FGCArrayPool was moved to a header.
Clean up comments around Cleanup function, the functionality to trim the memory pools was integrated into ClearWeakReferences on a prior change
Change 3561658 by Michael.Noland
Blueprints: Refactored 'Goto Definition' so there is no per-class logic in the Blueprint editor or schema any more; any node can opt in individually
- Added a key binding for Goto Definition (Alt+G)
- Added a key binding for Find References (Shift+Alt+F)
- Collapsed 'Goto Code Definition' for variables and functions into the same path, so there aren't separate menu items and commands
- Added new methods CanJumpToDefinition and JumpToDefinition to UEdGraphNode, the default behavior for UK2Node subclasses is to call GetJumpTargetForDoubleClick and call into FKismetEditorUtilities::BringKismetToFocusAttentionOnObject
- Going to a native function now goes thru a better code path that will actually put the source code editor on the function definition, rather than just opening the file containing the definition
Change 3562291 by Ben.Zeigler
Fix issue where calling FSoftObjectPtr::Get during a package save would result in that ptr being forever marked broken, because the ResolveObject fails during save. It's too risky to change that behavior, so change it so the TagAtLastTest doesn't get updated in that case
Change 3562292 by Ben.Zeigler
#jira UE-39042 When renaming or moving actors between levels it now attempts to fix any soft object references from blueprints or sequencer
When deleting actors that are soft referenced by actor/sequencer it will now warn the same way it does for level script. Added IAssetTools::FindSoftReferencesToObject to perform this search
Change it so saving a non-primary world does not result it being dirtied due to the temporary physics scene fixup
Fix issue where the actor name was shown incorrectly in the SSCS tree for actor instances, which meant that if you renamed it you would end up renaming it to the BP's name
Change 3564814 by Ben.Zeigler
#jira UE-47843 Don't set InputKey output pins to AnyKey if empty, this was causing blueprints with key events to constantly dirty themselves
Change 3566707 by Dan.Oconnor
Remove unused code, UClassGenerateCDODuplicatesForHotReload was attempting to create a CDO with a special name, which triggered an ensure. The Duplicated CDO was never used (callign code removed in 3289276 as it was a waste of cycles)
#jira None
Change 3566717 by Michael.Noland
Core: Remove all defintions that contain "_API" from the command line when compiling .rc files (they do not support repsonse files and a too-long command line will fail the compile)
Change 3566771 by Michael.Noland
Editor: Fixing deprecation warning
#jira UE-47922
Change 3567023 by Michael.Noland
Blueprints: Change various TArray<> uses to TSet<> throughout name validation and related code to enable it to scale better to high component or variable counts
Adapted from PR #3708: Fast construction of bp (Contributed by gildor2)
#jira UE-46473
Change 3567304 by Ben.Zeigler
Add bCheckRecursive option to IsEditorOnlyObject that is enabled by default and will check outer/archetype/class.
This is needed for places that call this function from outside of SavePackage.cpp when the editor only mark is set, such as the automation test code
Change 3567398 by Ben.Zeigler
Fix crash when spawning a widget that has no editor WidgetTree, but does have a cooked widget tree template due to tree inheritance
Change 3567729 by Michael.Noland
Blueprints: Clarified message about "{VariableName} is not blueprint visible" to define what that means "(BlueprintReadOnly or BlueprintReadWrite)"
Change 3567739 by Ben.Zeigler
Don't crash if PropertyStruct cannot find it's struct. The function half handled this before, but Preload crashes with a null parameter
Change 3567741 by Ben.Zeigler
Disable optimization for a path test that was crashing in VC2015 in a monolithic build
Change 3568332 by Mieszko.Zielinski
Prevented UAIPerceptionSystem::GetCurrent causing a BP error when WorldContextObject is null #UE4
#jira UE-47948
Change 3568676 by Michael.Noland
Blueprints: Allow editing the tooltip of each enum value in a user defined enum
#jira UE-20036
Known issue: Undo/redo is not currently possible on the tooltip as it is directly stored in package metadata
Change 3569128 by Michael.Noland
Blueprints: Removing the experimental profiler as we won't be returning to it any time soon
#jira UE-46852
Change 3569207 by Michael.Noland
Blueprints: Allow drag-dropping component Blueprint assets into the graph to create Add Component nodes and improved the error message when dragging something that cannot be dropped into an actor Blueprint
#jira UE-8708
Change 3569208 by Michael.Noland
Blueprints: Allow specifying a description for user defined enums (shown in the content browser)
#jira UE-20036
Change 3569209 by Michael.Noland
Editor: Allow adjusting the font size for each individual comment box node in Blueprints and Materials
#jira UE-16085
Change 3570177 by Michael.Noland
Blueprints: Fixed discrepancy between the Structure tab name and the menu option for the tab in the user defined structure editor (now both say Structure Editor)
#jira UE-47962
Change 3570179 by Michael.Noland
Blueprints: Fixed the tooltip of a user defined structure not updating immediately in the content browser after being edited
Change 3570192 by Michael.Noland
Blueprints: Added "(selected)" after the label (in the 'debug filter' dropdown in the Blueprint editor) for actors that are selected in the level editor, which should make it easier to choose the specific actor you want to debug
#jira UE-20709
Change 3571203 by Michael.Noland
Blueprints: Cleanup and refactoring to prepare for turning commented out nodes into an official feature
- Made EnabledState and bUserSetEnabledState private on UEdGraphNode and added new getters/setters
- Introduced IsAutomaticallyPlacedGhostNode() and MakeAutomaticallyPlacedGhostNode() to start decoupling the concept from commented out nodes
- Updated a couple of places that used a hardcoded UberGraphPages[0] into instead editing the most recently interacted with event graph if possible
- Updated 'is data only blueprint' logic to allow multiple ubergraph pages, as long as they're all empty of non-disabled nodes
Change 3571224 by Michael.Noland
Blueprints: Draw banners on development-only and user disabled nodes (excluding 'ghost' nodes like autogenerated event entries in new BPs)
Adapted from PR #2701: Differentiate development nodes in BP (Contributed by projectgheist)
#jira UE-29848
#jira UE-34698
Change 3571279 by Michael.Noland
Blueprints: Changed UK2Node::GetPassThroughPin so that only the execution wire on nodes with exactly one input and one output exec wire will have a corresponding pass-through pin (when there is ambiguity in which exec would be used, e.g., with a branch or sequence or timeline node, the subsequent nodes are now effectively disabled as well)
Change 3571282 by Michael.Noland
Blueprints: Fixed the tooltip for dragging a variable onto an inherited category not showing the 'move to category' hint
Change 3571284 by Michael.Noland
Blueprints: Made wires into/out of a user-disabled node draw verly dimly (other than the passthrough exec if it exists)
Change 3571311 by Ben.Zeigler
Add ActorIteratorFlags which allows overriding which types of actors/levels are iterated by ActorIterator, to allow iterating levels that are not visible.
All of the iteration logic is now in the base and the children just set different flags, which fixes it so TActorIterator does the same level collection check as FActorIterator
Change 3571313 by Ben.Zeigler
Several fixes to automation framework to allow it to work better with Cooked builds.
Change it so the automation test list is a single message. There is no guarantee on order of message packets, so several tests were being missed each time.
Change 3571485 by mason.seay
Test map for Make Set bug
Change 3571501 by Ben.Zeigler
Accidentally undid the UHT fixup for TAssetPtr during my bulk rename
Change 3571531 by Ben.Zeigler
Fix warning messages
Change 3571591 by Michael.Noland
Blueprints: Made drag-dropping assets into a graph to create a component transactional (allowing the action to be undone)
#jira UE-48024
Change 3572938 by Michael.Noland
Blueprints: Fixed a typo in a set function comment
#jira UE-48036
Change 3572941 by Michael.Noland
Blueprints: Made the compact node title for cross and dot product the words cross and dot rather than hard to see . and x symbols
#jira UE-38624
Change 3574816 by mason.seay
Renamed asset to better reflect name of object reference
Change 3574985 by mason.seay
Updated comments and string outputs to list Soft Object Reference
Change 3575740 by Ben.Zeigler
#jira UE-48061 Change it so Editor builds work like cooked builds and always try to reuse existing packages when loading them instead of recreating them in place. Recreating in place does not work well for levels and blueprints, and blueprints already had a hack that was causing this behavior to not activate
Change 3575795 by Ben.Zeigler
#jira UE-48118 Call into the AssetManager as part of the DistillPackages commandlet. This makes sure that ShooterGame and EngineTest end up with the correct content in launcher builds
Change 3576374 by mason.seay
Forgot to submit the deleting of a redirector
Change 3576966 by Ben.Zeigler
#jira UE-48153 Fix issue where actors in streaming levels weren't properly replicating in PIE. It now does the remap path on both send and receive for the manual PC level streaming commands
Change 3577002 by Marc.Audy
Prevent wildcard pins from being connected to exec pins
#jira UE-48148
Change 3577232 by Phillip.Kavan
#jira UE-48034 - Fix EDL assert on load caused by a native reference to a nativized BP class that also references a nativized UDS asset.
Change summary:
- Modified FNativeClassHeaderGenerator::ExportGeneratedStructBodyMacros() to emit the 'ReplaceConverted' package name for the FCompiledInDeferStruct global associated with the nativized UDS asset in the UHT codegen. This brings nativized UDS to parity with nativized BP class assets (it was likely just an oversight initially).
Change 3577710 by Dan.Oconnor
Mirror of 3576977:
Fix for crash when loading cooked uassets that reference functions that are not present
#jira UE-47644
Change 3577723 by Dan.Oconnor
Prevent deferring of classes that are needed to load subobjects
#jira UE-47726
Change 3577741 by Dan.Oconnor
Back out changelist 3577723 - causes crash when starting QAGame in Dev-Framework - not in Release-4.17
Change 3578938 by Ben.Zeigler
#jira UE-27124 Fix issue where renaming a map with legacy map build data would end up with a half-loaded redirector package, becuase the old map build data was still in use. It's possible the call to HandleLegacyMapBuildData should just be in World PostLoad instead of piecemeal in several other places but I am unsure.
Fix it so the redirector cleanup code on map change will not be stopped by non-standalone top level objects, which could be left behind by issues in other systems
Change 3578947 by Marc.Audy
(4.17) Properly expose members of DialogueContext to blueprints
#jira UE-48175
Change 3578952 by Ben.Zeigler
Fix ensure where ParentHandles on a StreamableHandle could be modified while iterating
Change 3579315 by mason.seay
Test map for Make Container nodes
Change 3579600 by Ben.Zeigler
Disable window test on non-desktop platforms as they cannot be resized post launch
Change 3579601 by Ben.Zeigler
#jira UE-48236 Disable optimizations on PS4 for certain math tests pending fixing of platform issue
Change 3579713 by Dan.Oconnor
Prevent crashes when bluepints implement an interface that was deleted
#jira UE-48223
Change 3579719 by Dan.Oconnor
Fix two compilation manager issues: Make sure CDOs are not renamed under a UClass, because they will be considered as possible subobjects, which has bad side effects and make sure that we update references even on empty functions, so that empty UFunctions are not left with references to REINST data
#jira UE-48240
Change 3579745 by Michael.Noland
Blueprints: Improve categorization and reordering support in 'My Blueprints'
- Allow drag-dropping functions, macros, delegates, etc... to reorder them within a category or to change categories (bringing them to parity with variables)
- Make category ordering on all categories sticky so you can reorder categories (the relative ordering will be the same within different sections like variables and functions)
- Added hover cues when drag dropping some items that were missing them (e.g., event dispatchers)
- Added support for renaming categories using F2
Known issues (none are regressions):
- Timelines cannot be moved to other categories or reordered
- Renaming a nested category will result in it becoming a top level category (discarding the parent category chain)
- Some actions do not support undo
#jira UE-31557
Change 3579795 by Michael.Noland
PR #3867: Fix for not releasing Local Notification Delegate. (Contributed by enginevividgames)
#jira UE-48105
Change 3580463 by Marc.Audy
(4.17) Don't crash if calling PostEditUndo on an Actor in the transient package
#jira UE-47523
Change 3581073 by Marc.Audy
Make UK2Node_SpawnActorFromClass inherit from K2Node_ConstructObjectFromClass and eliminate duplicate code.
Correctly reconnect split pins when changing class on create widget, construct object, and spawn actor nodes
Change 3581156 by Ben.Zeigler
#jira UE-48161 Fix issue where split pins would not be restored if a Struct type was changed due to refactoring of parent variables/functions. For structs we want to copy the pins, if they're invalid due to other changes they will be individual orphaned
Also fix bug where the category of parent pins was being set incorrectly while changing variable type, we only want to override type for wildcard pins
Change 3581473 by Ben.Zeigler
Properly turn off optimization for PS4 test
Change 3582094 by Marc.Audy
Fix anim nodes not navigating to their graph on double click
#jira UE-48333
Change 3582157 by Marc.Audy
Fix double-clicking on animation asset nodes not opening the asset editors
Change 3582289 by Marc.Audy
(4.17) Don't crash when adding a streaming level that's already in the level
#jira UE-48928
Change 3545435 by Ben.Zeigler
#jira UE-47509 Rename and refactor internals StringAssetReferences and AssetPtrs to become SoftObjectPath/Ptr. This is to prepare them for use for subobjects like actors. Here is the rename table:
FStringAssetReference -> FSoftObjectPath
FStringClassReference -> FSoftClassPath
TAssetPtr -> TSoftObjectPtr
TAssetSubclassOf -> TSoftClassPtr
The old headers are deprecated, and FSoftClassPath is now in the same header has FSoftObjectPath.
This change increments the UE4 version because FSoftObjectPaths are now stored as a name + substring instead of one giant name, which in practice will improve performance and memory while manipulating them. Also the package table of soft referenced packages is now stored as FNames instead of FStrings as these packages names will already be in the name table due to the AssetRegistry
Remove automatic support for loading Objectpaths starting with engine-ini:, as it was only partially supported and is very outdated. ResolveIniObjectsReference can still be called manually
Changed TPersistentObjectPtr and TLazyObjectPtr to be structs instead of classes
Change UnrealHeaderTool to read configuration such as StructsWithNoPrefix out of inis instead of using a hardcoded list. Add support for TypeRedirects, which is used to make the old type names automatically remap to the new ones
Clean up FRedirectCollector to remove some of the functionality that is no longer used by the cooker, and disable tracking of redirects in standalone -game builds
Change 3567760 by Ben.Zeigler
Fix it so EngineTest can be cooked by moving some utility functions to EditorTestsUtilityLibrary and adding an EditorFunctionalTest. The core EngineTest module is safely runtime-only now and can run it's tests locally in windows cooked
Merge FuncTestManager into FunctionalTestModule to avoid confusion with FunctionalTestingManager UObject
Add EngineTestAssetManager and override the cook function to cook all maps with runtime functional tests
Change actor merging tests to be editor only, this stops them from cooking
Several individual tests crash on cooked builds, I started threads with the owners of those
Change 3575737 by Ben.Zeigler
#jira UE-48042 Change it so playing via PIE Standalone, multiprocess networked PIE and external cook launch on does not save temporary levels to UEDPC and instead prompts the user to save. This is how launch on works by default already, and this fixes cross level references/sequencer. The UEDPC code has been removed entirely.
As part of this change, connecting a -game client to a PIE server and vice versa is much more likely to work. You may still have game-side problems, look at UEditorEngine::NetworkRemapPath for an example of how to do the PIE prefix conversion
Remove advanced CreateTemporaryCopiesOfLevels option from sequencer capture, it has not been tested in multiple years and does not work with newer sequencer features
#jira UE-27124 Fix several possible crashes with changing levels while in PIE
Change 3578806 by Marc.Audy
Fix Construct Object not working correctly with split pins.
Add Construct Object test cases to functional tests.
Added split pin expose on spawn test cases.
#jira UE-33924
[CL 3582334 by Marc Audy in Main branch]
2017-08-11 12:43:42 -04:00
for ( int32 ReferenceIdx = 0 ; ReferenceIdx < PackageFileSummary . SoftPackageReferencesCount ; + + ReferenceIdx )
2015-07-23 10:49:29 -04:00
{
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3582324)
#lockdown Nick.Penwarden
#rb none
#rnx
============================
MAJOR FEATURES & CHANGES
============================
Change 3431439 by Marc.Audy
Editor only subobjects shouldn't exist in PIE world
#jira UE-43186
Change 3457323 by Marc.Audy
Undo CL# 3431439 and once again allow (incorrectly) for editor only objects to exist in a PIE world
#jira UE-45087
Change 3499927 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker
#jira UE-43458
Change 3502939 by Michael.Noland
Back out changelist 3499927
Change 3522783 by Zak.Middleton
#ue4 - Imported new simple collision for Engine/Content/BasicShaps/Cylinder.uasset which is a single convex shape (rather than being 4 shapes as before).
Change 3544641 by Dan.Oconnor
Remove conditional that is no longer needed, replace with ensure. It is unsafe to change CDO names
#jira OR-38176
Change 3544645 by Dan.Oconnor
In addition to marking nodes as not transient, FBlueprintEditor::ExpandNode needs to mark them as transactional
#jira UE-45248
Change 3545023 by Marc.Audy
Properly encapsulate FPinDeletionQueue
Fix ensure during deletion of split pins when not clearing links
Fix split pins able to end up in delete queue twice during undo/redo
Change 3545025 by Marc.Audy
Properly allow changing the pin type from a struct that is split on the node
#jira UE-47328
Change 3545455 by Ben.Zeigler
Fix issue where combined streamable handles could be freed before their complete callback is called if nothing external referenced them
Copy of CL#3544474
Change 3545456 by Ben.Zeigler
Allow PrimaryAssets to update their AssetData based on in-memory changes when launching 'Standalone Game' and 'Mobile Preview' from the editor. As it was, changes could be detected and propagated through UPrimaryDataAsset::PostLoad, but the changes would always reapply whatever already exists in the AssetRegistry. The primary use-case for this: making AssetBundle tag changes and allowing them to propagate without resaving/recooking all affected assets.
Copy of CL #3544374
Change 3545547 by Ben.Zeigler
CIS Fix
Change 3545568 by Michael.Noland
PR #3758: Fixing a comment typo from Transistion to Transition (Contributed by gsfreema)
#jira UE-46845
Change 3545582 by Michael.Noland
Blueprints: Prevent duplicate messages from being added to the compiler results log (fixes a crash when resizing the results log while a math expression node has an error)
Blueprints: Fixed the tooltip of math expression nodes not showing up, and error messages getting cleared on subsequent compiles
[Duplicating fixes for UE-47491 and UE-47512 from 4.17 to Dev-Framework]
Change 3546528 by Ben.Zeigler
#jira UE-47548
Fix crash when a map's key type has changed but value has not, it was passing the UStruct defaults in when serialize was expecting the default instance, so pass null instead as we don't have the instance
Change 3546544 by Marc.Audy
Fix split pin restoration logic to deal with wildcards and variations in const/refness
Change 3546551 by Marc.Audy
Don't crash if the struct type is missing for whatever reason
Change 3547152 by Marc.Audy
Fix array exporting so you don't end up getting none instead of defaults
#jira UE-47320
Change 3547438 by Marc.Audy
Fix split pins on class defaults
Don't cause a structural change when reapplying a split pin as part of node reconstruction
#jira UE-46935
Change 3547501 by Ben.Zeigler
Fix ensure, it's valid to pass a null path for a dynamic asset
Change 3551185 by Ben.Zeigler
#jira UE-42835 Fix it so SoftObjectPaths work correctly when inside levels loaded for the first time from PIE. Added code to do in-place PIE fixup for levels that are loaded instead of duplicated, and changed the fixup logic to fix all level references, not just ones being explicitly duplicated
Change 3551723 by Ben.Zeigler
Improve UI for displaying actor soft references. Add an error/warning icon if the cross level reference is broken or unloaded, and fix various display and copy/paste behaviors
Change 3553216 by Phillip.Kavan
#jira UE-39303, UE-46268, UE-47519
- Nativized UDS now support external asset dependencies and will construct their own linker import tables on load.
Change summary:
- Modified FCompactBlueprintDependencyData and FFakeImportTableHelper to be more relevant to UStruct and not just UClass-derivative types.
- Modified FBlueprintDependencyData to accept a single FCompactBlueprintDependencyData struct rather than its individual fields.
- Modified FBlueprintCompilerCppBackendBase::GenerateCodeFromStruct() to emit dependency assignment and static type registration functions for nativized UStruct types.
- Modified FBlueprintNativeCodeGenModule::FStatePerPlatform to include an array for tracking UDS assets that need to be converted during the nativization pass at cook time.
- Modified FBlueprintNativeCodeGenModule::GenerateFullyConvertedClasses() to generate nativized code for UDS assets. This ensures that UDS conversion falls under the same scope as BPGC conversion, so that they both feed into the same NativizationSummary context for asset dependency tracking (i.e. since we only have a single global dependency table in the codegen). Also modified InitializeForRerunDebugOnly() to do the same.
- Modified FBlueprintNativeCodeGenModule::Convert() to defer UDS conversion so that it's done at the same time as BPGC conversion (see note above).
- Modified FEmitDefaultValueHelper::AddStaticFunctionsForDependencies() to include support for UStruct types and to conform to changes made to FCompactBlueprintDependencyData.
- Modified FEmitDefaultValueHelper::AddRegisterHelper() to include support for UStruct types.
- Modified FBlueprintNativeCodeGenModule::FindReplacedClassForObject() to ensure that converted User-Defined Enum types are switched to a UEnumProperty at package save time so that any import tables contain the proper class. This is necessary because we nativize User-Defined Enum types as 'enum class' types, and UHT will generate code for those as a UEnumProperty with an "underlying" property. However, non-nativized User-Defined Enum types are referenced as a UByteProperty with a UEnum reference, so we have to fix up all the import tables before saving. Otherwise, EDL will assert on load (see UE-47519).
Change 3553301 by Ben.Zeigler
Fix ensure when passing literal None to SoftObjectPath, it now treats them as empty instead
Change 3553631 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker. This change was originally submitted in 3499927, but it was incorrectly clearing the UField::Next pointer in UField::Serialize.
#jira UE-43458
Change 3553799 by Ben.Zeigler
Fix issue where calling WaitUntilComplete on a combined handle with Stalled children wouldn't work properly. It now forces all stalled children to start immediately. I also added a warning log when this happens and an ensure if somehow the force didn't work
Copy of CL #3553781
Change 3553896 by Michael.Noland
Blueprints: Allow the autowiring logic to better break and replace existing connections when made (e.g., when dragging a variable onto a compatible pin with an existing connection, break the old connection to allow the new connection to be made)
#jira UE-31031
Change 3553897 by Michael.Noland
Blueprints: Adjust search query when doing 'Find References' on variables from My Blueprints so that bound event nodes show up for components and widgets
#jira UE-37862
Change 3553898 by Michael.Noland
Blueprints: Add the name of the variable directly in the get/set menu options (when dragging from My Blueprints into the graph)
Change 3553909 by Michael.Noland
Blueprints: Added the full name of the type, container type (and value type for maps) to the tooltips for the type picker elements, so long names can be read in full
#jira UE-19710
Change 3554517 by Michael.Noland
Blueprints: Added an option to disable the comment bubble on comment boxes that appears when zoomed out
#jira UE-21810
Change 3554664 by Michael.Noland
Editor: Renamed "Find in CB" command to "Browse" and renamed "Search" (in BP) to "Find", so terminology is consistent and keyboard shortcuts make sense (Ctrl+B for Browse, Ctrl+F for find, not using the term Search anywhere)
#jira UE-27121
Change 3554831 by Dan.Oconnor
Non editor build fix
Change 3554834 by Dan.Oconnor
Actor bound event related warnings now show up in blueprint status when opening level blueprint for first time, improved warning message. Removed unused delegate and return value from FixLevelScriptActorBindings. Can now pass raw strings to blueprint results log (no need for Printf, although padding is not great), UClasses in compiler results log will open the generated blueprint when clicked on
#jira UE-40438
Change 3556157 by Ben.Zeigler
Convert LevelSequenceBindingReference to use FSoftObjectPath so it works properly with redirectors and fixups
Change 3557775 by Michael.Noland
Blueprints: Fixed swapped transaction messages when converting a cast node between pure and impure
#jira UE-36090
Change 3557777 by Michael.Noland
Blueprints: Allow 'Goto Definition' and 'Find References' to be used while stopped at a breakpoint
PR #3774: Expose GotoFunctionDefinition during BP debugging (Contributed by projectgheist)
#jira UE-47024
Change 3560510 by Michael.Noland
Blueprints: Add support for 'goto definition' on Create Event nodes when the Object pin is not hooked up
#jira UE-38912
Change 3560563 by Michael.Noland
Blueprints: Disallow converting a variable get node to impure/back when debugging (no graph mutating operations should be allowed)
Change 3561443 by Ben.Zeigler
Restore code to support gc.DumpPoolStats, was accidentally removed when FGCArrayPool was moved to a header.
Clean up comments around Cleanup function, the functionality to trim the memory pools was integrated into ClearWeakReferences on a prior change
Change 3561658 by Michael.Noland
Blueprints: Refactored 'Goto Definition' so there is no per-class logic in the Blueprint editor or schema any more; any node can opt in individually
- Added a key binding for Goto Definition (Alt+G)
- Added a key binding for Find References (Shift+Alt+F)
- Collapsed 'Goto Code Definition' for variables and functions into the same path, so there aren't separate menu items and commands
- Added new methods CanJumpToDefinition and JumpToDefinition to UEdGraphNode, the default behavior for UK2Node subclasses is to call GetJumpTargetForDoubleClick and call into FKismetEditorUtilities::BringKismetToFocusAttentionOnObject
- Going to a native function now goes thru a better code path that will actually put the source code editor on the function definition, rather than just opening the file containing the definition
Change 3562291 by Ben.Zeigler
Fix issue where calling FSoftObjectPtr::Get during a package save would result in that ptr being forever marked broken, because the ResolveObject fails during save. It's too risky to change that behavior, so change it so the TagAtLastTest doesn't get updated in that case
Change 3562292 by Ben.Zeigler
#jira UE-39042 When renaming or moving actors between levels it now attempts to fix any soft object references from blueprints or sequencer
When deleting actors that are soft referenced by actor/sequencer it will now warn the same way it does for level script. Added IAssetTools::FindSoftReferencesToObject to perform this search
Change it so saving a non-primary world does not result it being dirtied due to the temporary physics scene fixup
Fix issue where the actor name was shown incorrectly in the SSCS tree for actor instances, which meant that if you renamed it you would end up renaming it to the BP's name
Change 3564814 by Ben.Zeigler
#jira UE-47843 Don't set InputKey output pins to AnyKey if empty, this was causing blueprints with key events to constantly dirty themselves
Change 3566707 by Dan.Oconnor
Remove unused code, UClassGenerateCDODuplicatesForHotReload was attempting to create a CDO with a special name, which triggered an ensure. The Duplicated CDO was never used (callign code removed in 3289276 as it was a waste of cycles)
#jira None
Change 3566717 by Michael.Noland
Core: Remove all defintions that contain "_API" from the command line when compiling .rc files (they do not support repsonse files and a too-long command line will fail the compile)
Change 3566771 by Michael.Noland
Editor: Fixing deprecation warning
#jira UE-47922
Change 3567023 by Michael.Noland
Blueprints: Change various TArray<> uses to TSet<> throughout name validation and related code to enable it to scale better to high component or variable counts
Adapted from PR #3708: Fast construction of bp (Contributed by gildor2)
#jira UE-46473
Change 3567304 by Ben.Zeigler
Add bCheckRecursive option to IsEditorOnlyObject that is enabled by default and will check outer/archetype/class.
This is needed for places that call this function from outside of SavePackage.cpp when the editor only mark is set, such as the automation test code
Change 3567398 by Ben.Zeigler
Fix crash when spawning a widget that has no editor WidgetTree, but does have a cooked widget tree template due to tree inheritance
Change 3567729 by Michael.Noland
Blueprints: Clarified message about "{VariableName} is not blueprint visible" to define what that means "(BlueprintReadOnly or BlueprintReadWrite)"
Change 3567739 by Ben.Zeigler
Don't crash if PropertyStruct cannot find it's struct. The function half handled this before, but Preload crashes with a null parameter
Change 3567741 by Ben.Zeigler
Disable optimization for a path test that was crashing in VC2015 in a monolithic build
Change 3568332 by Mieszko.Zielinski
Prevented UAIPerceptionSystem::GetCurrent causing a BP error when WorldContextObject is null #UE4
#jira UE-47948
Change 3568676 by Michael.Noland
Blueprints: Allow editing the tooltip of each enum value in a user defined enum
#jira UE-20036
Known issue: Undo/redo is not currently possible on the tooltip as it is directly stored in package metadata
Change 3569128 by Michael.Noland
Blueprints: Removing the experimental profiler as we won't be returning to it any time soon
#jira UE-46852
Change 3569207 by Michael.Noland
Blueprints: Allow drag-dropping component Blueprint assets into the graph to create Add Component nodes and improved the error message when dragging something that cannot be dropped into an actor Blueprint
#jira UE-8708
Change 3569208 by Michael.Noland
Blueprints: Allow specifying a description for user defined enums (shown in the content browser)
#jira UE-20036
Change 3569209 by Michael.Noland
Editor: Allow adjusting the font size for each individual comment box node in Blueprints and Materials
#jira UE-16085
Change 3570177 by Michael.Noland
Blueprints: Fixed discrepancy between the Structure tab name and the menu option for the tab in the user defined structure editor (now both say Structure Editor)
#jira UE-47962
Change 3570179 by Michael.Noland
Blueprints: Fixed the tooltip of a user defined structure not updating immediately in the content browser after being edited
Change 3570192 by Michael.Noland
Blueprints: Added "(selected)" after the label (in the 'debug filter' dropdown in the Blueprint editor) for actors that are selected in the level editor, which should make it easier to choose the specific actor you want to debug
#jira UE-20709
Change 3571203 by Michael.Noland
Blueprints: Cleanup and refactoring to prepare for turning commented out nodes into an official feature
- Made EnabledState and bUserSetEnabledState private on UEdGraphNode and added new getters/setters
- Introduced IsAutomaticallyPlacedGhostNode() and MakeAutomaticallyPlacedGhostNode() to start decoupling the concept from commented out nodes
- Updated a couple of places that used a hardcoded UberGraphPages[0] into instead editing the most recently interacted with event graph if possible
- Updated 'is data only blueprint' logic to allow multiple ubergraph pages, as long as they're all empty of non-disabled nodes
Change 3571224 by Michael.Noland
Blueprints: Draw banners on development-only and user disabled nodes (excluding 'ghost' nodes like autogenerated event entries in new BPs)
Adapted from PR #2701: Differentiate development nodes in BP (Contributed by projectgheist)
#jira UE-29848
#jira UE-34698
Change 3571279 by Michael.Noland
Blueprints: Changed UK2Node::GetPassThroughPin so that only the execution wire on nodes with exactly one input and one output exec wire will have a corresponding pass-through pin (when there is ambiguity in which exec would be used, e.g., with a branch or sequence or timeline node, the subsequent nodes are now effectively disabled as well)
Change 3571282 by Michael.Noland
Blueprints: Fixed the tooltip for dragging a variable onto an inherited category not showing the 'move to category' hint
Change 3571284 by Michael.Noland
Blueprints: Made wires into/out of a user-disabled node draw verly dimly (other than the passthrough exec if it exists)
Change 3571311 by Ben.Zeigler
Add ActorIteratorFlags which allows overriding which types of actors/levels are iterated by ActorIterator, to allow iterating levels that are not visible.
All of the iteration logic is now in the base and the children just set different flags, which fixes it so TActorIterator does the same level collection check as FActorIterator
Change 3571313 by Ben.Zeigler
Several fixes to automation framework to allow it to work better with Cooked builds.
Change it so the automation test list is a single message. There is no guarantee on order of message packets, so several tests were being missed each time.
Change 3571485 by mason.seay
Test map for Make Set bug
Change 3571501 by Ben.Zeigler
Accidentally undid the UHT fixup for TAssetPtr during my bulk rename
Change 3571531 by Ben.Zeigler
Fix warning messages
Change 3571591 by Michael.Noland
Blueprints: Made drag-dropping assets into a graph to create a component transactional (allowing the action to be undone)
#jira UE-48024
Change 3572938 by Michael.Noland
Blueprints: Fixed a typo in a set function comment
#jira UE-48036
Change 3572941 by Michael.Noland
Blueprints: Made the compact node title for cross and dot product the words cross and dot rather than hard to see . and x symbols
#jira UE-38624
Change 3574816 by mason.seay
Renamed asset to better reflect name of object reference
Change 3574985 by mason.seay
Updated comments and string outputs to list Soft Object Reference
Change 3575740 by Ben.Zeigler
#jira UE-48061 Change it so Editor builds work like cooked builds and always try to reuse existing packages when loading them instead of recreating them in place. Recreating in place does not work well for levels and blueprints, and blueprints already had a hack that was causing this behavior to not activate
Change 3575795 by Ben.Zeigler
#jira UE-48118 Call into the AssetManager as part of the DistillPackages commandlet. This makes sure that ShooterGame and EngineTest end up with the correct content in launcher builds
Change 3576374 by mason.seay
Forgot to submit the deleting of a redirector
Change 3576966 by Ben.Zeigler
#jira UE-48153 Fix issue where actors in streaming levels weren't properly replicating in PIE. It now does the remap path on both send and receive for the manual PC level streaming commands
Change 3577002 by Marc.Audy
Prevent wildcard pins from being connected to exec pins
#jira UE-48148
Change 3577232 by Phillip.Kavan
#jira UE-48034 - Fix EDL assert on load caused by a native reference to a nativized BP class that also references a nativized UDS asset.
Change summary:
- Modified FNativeClassHeaderGenerator::ExportGeneratedStructBodyMacros() to emit the 'ReplaceConverted' package name for the FCompiledInDeferStruct global associated with the nativized UDS asset in the UHT codegen. This brings nativized UDS to parity with nativized BP class assets (it was likely just an oversight initially).
Change 3577710 by Dan.Oconnor
Mirror of 3576977:
Fix for crash when loading cooked uassets that reference functions that are not present
#jira UE-47644
Change 3577723 by Dan.Oconnor
Prevent deferring of classes that are needed to load subobjects
#jira UE-47726
Change 3577741 by Dan.Oconnor
Back out changelist 3577723 - causes crash when starting QAGame in Dev-Framework - not in Release-4.17
Change 3578938 by Ben.Zeigler
#jira UE-27124 Fix issue where renaming a map with legacy map build data would end up with a half-loaded redirector package, becuase the old map build data was still in use. It's possible the call to HandleLegacyMapBuildData should just be in World PostLoad instead of piecemeal in several other places but I am unsure.
Fix it so the redirector cleanup code on map change will not be stopped by non-standalone top level objects, which could be left behind by issues in other systems
Change 3578947 by Marc.Audy
(4.17) Properly expose members of DialogueContext to blueprints
#jira UE-48175
Change 3578952 by Ben.Zeigler
Fix ensure where ParentHandles on a StreamableHandle could be modified while iterating
Change 3579315 by mason.seay
Test map for Make Container nodes
Change 3579600 by Ben.Zeigler
Disable window test on non-desktop platforms as they cannot be resized post launch
Change 3579601 by Ben.Zeigler
#jira UE-48236 Disable optimizations on PS4 for certain math tests pending fixing of platform issue
Change 3579713 by Dan.Oconnor
Prevent crashes when bluepints implement an interface that was deleted
#jira UE-48223
Change 3579719 by Dan.Oconnor
Fix two compilation manager issues: Make sure CDOs are not renamed under a UClass, because they will be considered as possible subobjects, which has bad side effects and make sure that we update references even on empty functions, so that empty UFunctions are not left with references to REINST data
#jira UE-48240
Change 3579745 by Michael.Noland
Blueprints: Improve categorization and reordering support in 'My Blueprints'
- Allow drag-dropping functions, macros, delegates, etc... to reorder them within a category or to change categories (bringing them to parity with variables)
- Make category ordering on all categories sticky so you can reorder categories (the relative ordering will be the same within different sections like variables and functions)
- Added hover cues when drag dropping some items that were missing them (e.g., event dispatchers)
- Added support for renaming categories using F2
Known issues (none are regressions):
- Timelines cannot be moved to other categories or reordered
- Renaming a nested category will result in it becoming a top level category (discarding the parent category chain)
- Some actions do not support undo
#jira UE-31557
Change 3579795 by Michael.Noland
PR #3867: Fix for not releasing Local Notification Delegate. (Contributed by enginevividgames)
#jira UE-48105
Change 3580463 by Marc.Audy
(4.17) Don't crash if calling PostEditUndo on an Actor in the transient package
#jira UE-47523
Change 3581073 by Marc.Audy
Make UK2Node_SpawnActorFromClass inherit from K2Node_ConstructObjectFromClass and eliminate duplicate code.
Correctly reconnect split pins when changing class on create widget, construct object, and spawn actor nodes
Change 3581156 by Ben.Zeigler
#jira UE-48161 Fix issue where split pins would not be restored if a Struct type was changed due to refactoring of parent variables/functions. For structs we want to copy the pins, if they're invalid due to other changes they will be individual orphaned
Also fix bug where the category of parent pins was being set incorrectly while changing variable type, we only want to override type for wildcard pins
Change 3581473 by Ben.Zeigler
Properly turn off optimization for PS4 test
Change 3582094 by Marc.Audy
Fix anim nodes not navigating to their graph on double click
#jira UE-48333
Change 3582157 by Marc.Audy
Fix double-clicking on animation asset nodes not opening the asset editors
Change 3582289 by Marc.Audy
(4.17) Don't crash when adding a streaming level that's already in the level
#jira UE-48928
Change 3545435 by Ben.Zeigler
#jira UE-47509 Rename and refactor internals StringAssetReferences and AssetPtrs to become SoftObjectPath/Ptr. This is to prepare them for use for subobjects like actors. Here is the rename table:
FStringAssetReference -> FSoftObjectPath
FStringClassReference -> FSoftClassPath
TAssetPtr -> TSoftObjectPtr
TAssetSubclassOf -> TSoftClassPtr
The old headers are deprecated, and FSoftClassPath is now in the same header has FSoftObjectPath.
This change increments the UE4 version because FSoftObjectPaths are now stored as a name + substring instead of one giant name, which in practice will improve performance and memory while manipulating them. Also the package table of soft referenced packages is now stored as FNames instead of FStrings as these packages names will already be in the name table due to the AssetRegistry
Remove automatic support for loading Objectpaths starting with engine-ini:, as it was only partially supported and is very outdated. ResolveIniObjectsReference can still be called manually
Changed TPersistentObjectPtr and TLazyObjectPtr to be structs instead of classes
Change UnrealHeaderTool to read configuration such as StructsWithNoPrefix out of inis instead of using a hardcoded list. Add support for TypeRedirects, which is used to make the old type names automatically remap to the new ones
Clean up FRedirectCollector to remove some of the functionality that is no longer used by the cooker, and disable tracking of redirects in standalone -game builds
Change 3567760 by Ben.Zeigler
Fix it so EngineTest can be cooked by moving some utility functions to EditorTestsUtilityLibrary and adding an EditorFunctionalTest. The core EngineTest module is safely runtime-only now and can run it's tests locally in windows cooked
Merge FuncTestManager into FunctionalTestModule to avoid confusion with FunctionalTestingManager UObject
Add EngineTestAssetManager and override the cook function to cook all maps with runtime functional tests
Change actor merging tests to be editor only, this stops them from cooking
Several individual tests crash on cooked builds, I started threads with the owners of those
Change 3575737 by Ben.Zeigler
#jira UE-48042 Change it so playing via PIE Standalone, multiprocess networked PIE and external cook launch on does not save temporary levels to UEDPC and instead prompts the user to save. This is how launch on works by default already, and this fixes cross level references/sequencer. The UEDPC code has been removed entirely.
As part of this change, connecting a -game client to a PIE server and vice versa is much more likely to work. You may still have game-side problems, look at UEditorEngine::NetworkRemapPath for an example of how to do the PIE prefix conversion
Remove advanced CreateTemporaryCopiesOfLevels option from sequencer capture, it has not been tested in multiple years and does not work with newer sequencer features
#jira UE-27124 Fix several possible crashes with changing levels while in PIE
Change 3578806 by Marc.Audy
Fix Construct Object not working correctly with split pins.
Add Construct Object test cases to functional tests.
Added split pin expose on spawn test cases.
#jira UE-33924
[CL 3582334 by Marc Audy in Main branch]
2017-08-11 12:43:42 -04:00
FName PackageName ;
* this < < PackageName ;
2020-06-23 18:40:00 -04:00
if ( IsError ( ) )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeSoftPackageReferenceListInvalidReference " , PackageFilename ) ;
return false ;
}
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3582324)
#lockdown Nick.Penwarden
#rb none
#rnx
============================
MAJOR FEATURES & CHANGES
============================
Change 3431439 by Marc.Audy
Editor only subobjects shouldn't exist in PIE world
#jira UE-43186
Change 3457323 by Marc.Audy
Undo CL# 3431439 and once again allow (incorrectly) for editor only objects to exist in a PIE world
#jira UE-45087
Change 3499927 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker
#jira UE-43458
Change 3502939 by Michael.Noland
Back out changelist 3499927
Change 3522783 by Zak.Middleton
#ue4 - Imported new simple collision for Engine/Content/BasicShaps/Cylinder.uasset which is a single convex shape (rather than being 4 shapes as before).
Change 3544641 by Dan.Oconnor
Remove conditional that is no longer needed, replace with ensure. It is unsafe to change CDO names
#jira OR-38176
Change 3544645 by Dan.Oconnor
In addition to marking nodes as not transient, FBlueprintEditor::ExpandNode needs to mark them as transactional
#jira UE-45248
Change 3545023 by Marc.Audy
Properly encapsulate FPinDeletionQueue
Fix ensure during deletion of split pins when not clearing links
Fix split pins able to end up in delete queue twice during undo/redo
Change 3545025 by Marc.Audy
Properly allow changing the pin type from a struct that is split on the node
#jira UE-47328
Change 3545455 by Ben.Zeigler
Fix issue where combined streamable handles could be freed before their complete callback is called if nothing external referenced them
Copy of CL#3544474
Change 3545456 by Ben.Zeigler
Allow PrimaryAssets to update their AssetData based on in-memory changes when launching 'Standalone Game' and 'Mobile Preview' from the editor. As it was, changes could be detected and propagated through UPrimaryDataAsset::PostLoad, but the changes would always reapply whatever already exists in the AssetRegistry. The primary use-case for this: making AssetBundle tag changes and allowing them to propagate without resaving/recooking all affected assets.
Copy of CL #3544374
Change 3545547 by Ben.Zeigler
CIS Fix
Change 3545568 by Michael.Noland
PR #3758: Fixing a comment typo from Transistion to Transition (Contributed by gsfreema)
#jira UE-46845
Change 3545582 by Michael.Noland
Blueprints: Prevent duplicate messages from being added to the compiler results log (fixes a crash when resizing the results log while a math expression node has an error)
Blueprints: Fixed the tooltip of math expression nodes not showing up, and error messages getting cleared on subsequent compiles
[Duplicating fixes for UE-47491 and UE-47512 from 4.17 to Dev-Framework]
Change 3546528 by Ben.Zeigler
#jira UE-47548
Fix crash when a map's key type has changed but value has not, it was passing the UStruct defaults in when serialize was expecting the default instance, so pass null instead as we don't have the instance
Change 3546544 by Marc.Audy
Fix split pin restoration logic to deal with wildcards and variations in const/refness
Change 3546551 by Marc.Audy
Don't crash if the struct type is missing for whatever reason
Change 3547152 by Marc.Audy
Fix array exporting so you don't end up getting none instead of defaults
#jira UE-47320
Change 3547438 by Marc.Audy
Fix split pins on class defaults
Don't cause a structural change when reapplying a split pin as part of node reconstruction
#jira UE-46935
Change 3547501 by Ben.Zeigler
Fix ensure, it's valid to pass a null path for a dynamic asset
Change 3551185 by Ben.Zeigler
#jira UE-42835 Fix it so SoftObjectPaths work correctly when inside levels loaded for the first time from PIE. Added code to do in-place PIE fixup for levels that are loaded instead of duplicated, and changed the fixup logic to fix all level references, not just ones being explicitly duplicated
Change 3551723 by Ben.Zeigler
Improve UI for displaying actor soft references. Add an error/warning icon if the cross level reference is broken or unloaded, and fix various display and copy/paste behaviors
Change 3553216 by Phillip.Kavan
#jira UE-39303, UE-46268, UE-47519
- Nativized UDS now support external asset dependencies and will construct their own linker import tables on load.
Change summary:
- Modified FCompactBlueprintDependencyData and FFakeImportTableHelper to be more relevant to UStruct and not just UClass-derivative types.
- Modified FBlueprintDependencyData to accept a single FCompactBlueprintDependencyData struct rather than its individual fields.
- Modified FBlueprintCompilerCppBackendBase::GenerateCodeFromStruct() to emit dependency assignment and static type registration functions for nativized UStruct types.
- Modified FBlueprintNativeCodeGenModule::FStatePerPlatform to include an array for tracking UDS assets that need to be converted during the nativization pass at cook time.
- Modified FBlueprintNativeCodeGenModule::GenerateFullyConvertedClasses() to generate nativized code for UDS assets. This ensures that UDS conversion falls under the same scope as BPGC conversion, so that they both feed into the same NativizationSummary context for asset dependency tracking (i.e. since we only have a single global dependency table in the codegen). Also modified InitializeForRerunDebugOnly() to do the same.
- Modified FBlueprintNativeCodeGenModule::Convert() to defer UDS conversion so that it's done at the same time as BPGC conversion (see note above).
- Modified FEmitDefaultValueHelper::AddStaticFunctionsForDependencies() to include support for UStruct types and to conform to changes made to FCompactBlueprintDependencyData.
- Modified FEmitDefaultValueHelper::AddRegisterHelper() to include support for UStruct types.
- Modified FBlueprintNativeCodeGenModule::FindReplacedClassForObject() to ensure that converted User-Defined Enum types are switched to a UEnumProperty at package save time so that any import tables contain the proper class. This is necessary because we nativize User-Defined Enum types as 'enum class' types, and UHT will generate code for those as a UEnumProperty with an "underlying" property. However, non-nativized User-Defined Enum types are referenced as a UByteProperty with a UEnum reference, so we have to fix up all the import tables before saving. Otherwise, EDL will assert on load (see UE-47519).
Change 3553301 by Ben.Zeigler
Fix ensure when passing literal None to SoftObjectPath, it now treats them as empty instead
Change 3553631 by Dan.Oconnor
UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker. This change was originally submitted in 3499927, but it was incorrectly clearing the UField::Next pointer in UField::Serialize.
#jira UE-43458
Change 3553799 by Ben.Zeigler
Fix issue where calling WaitUntilComplete on a combined handle with Stalled children wouldn't work properly. It now forces all stalled children to start immediately. I also added a warning log when this happens and an ensure if somehow the force didn't work
Copy of CL #3553781
Change 3553896 by Michael.Noland
Blueprints: Allow the autowiring logic to better break and replace existing connections when made (e.g., when dragging a variable onto a compatible pin with an existing connection, break the old connection to allow the new connection to be made)
#jira UE-31031
Change 3553897 by Michael.Noland
Blueprints: Adjust search query when doing 'Find References' on variables from My Blueprints so that bound event nodes show up for components and widgets
#jira UE-37862
Change 3553898 by Michael.Noland
Blueprints: Add the name of the variable directly in the get/set menu options (when dragging from My Blueprints into the graph)
Change 3553909 by Michael.Noland
Blueprints: Added the full name of the type, container type (and value type for maps) to the tooltips for the type picker elements, so long names can be read in full
#jira UE-19710
Change 3554517 by Michael.Noland
Blueprints: Added an option to disable the comment bubble on comment boxes that appears when zoomed out
#jira UE-21810
Change 3554664 by Michael.Noland
Editor: Renamed "Find in CB" command to "Browse" and renamed "Search" (in BP) to "Find", so terminology is consistent and keyboard shortcuts make sense (Ctrl+B for Browse, Ctrl+F for find, not using the term Search anywhere)
#jira UE-27121
Change 3554831 by Dan.Oconnor
Non editor build fix
Change 3554834 by Dan.Oconnor
Actor bound event related warnings now show up in blueprint status when opening level blueprint for first time, improved warning message. Removed unused delegate and return value from FixLevelScriptActorBindings. Can now pass raw strings to blueprint results log (no need for Printf, although padding is not great), UClasses in compiler results log will open the generated blueprint when clicked on
#jira UE-40438
Change 3556157 by Ben.Zeigler
Convert LevelSequenceBindingReference to use FSoftObjectPath so it works properly with redirectors and fixups
Change 3557775 by Michael.Noland
Blueprints: Fixed swapped transaction messages when converting a cast node between pure and impure
#jira UE-36090
Change 3557777 by Michael.Noland
Blueprints: Allow 'Goto Definition' and 'Find References' to be used while stopped at a breakpoint
PR #3774: Expose GotoFunctionDefinition during BP debugging (Contributed by projectgheist)
#jira UE-47024
Change 3560510 by Michael.Noland
Blueprints: Add support for 'goto definition' on Create Event nodes when the Object pin is not hooked up
#jira UE-38912
Change 3560563 by Michael.Noland
Blueprints: Disallow converting a variable get node to impure/back when debugging (no graph mutating operations should be allowed)
Change 3561443 by Ben.Zeigler
Restore code to support gc.DumpPoolStats, was accidentally removed when FGCArrayPool was moved to a header.
Clean up comments around Cleanup function, the functionality to trim the memory pools was integrated into ClearWeakReferences on a prior change
Change 3561658 by Michael.Noland
Blueprints: Refactored 'Goto Definition' so there is no per-class logic in the Blueprint editor or schema any more; any node can opt in individually
- Added a key binding for Goto Definition (Alt+G)
- Added a key binding for Find References (Shift+Alt+F)
- Collapsed 'Goto Code Definition' for variables and functions into the same path, so there aren't separate menu items and commands
- Added new methods CanJumpToDefinition and JumpToDefinition to UEdGraphNode, the default behavior for UK2Node subclasses is to call GetJumpTargetForDoubleClick and call into FKismetEditorUtilities::BringKismetToFocusAttentionOnObject
- Going to a native function now goes thru a better code path that will actually put the source code editor on the function definition, rather than just opening the file containing the definition
Change 3562291 by Ben.Zeigler
Fix issue where calling FSoftObjectPtr::Get during a package save would result in that ptr being forever marked broken, because the ResolveObject fails during save. It's too risky to change that behavior, so change it so the TagAtLastTest doesn't get updated in that case
Change 3562292 by Ben.Zeigler
#jira UE-39042 When renaming or moving actors between levels it now attempts to fix any soft object references from blueprints or sequencer
When deleting actors that are soft referenced by actor/sequencer it will now warn the same way it does for level script. Added IAssetTools::FindSoftReferencesToObject to perform this search
Change it so saving a non-primary world does not result it being dirtied due to the temporary physics scene fixup
Fix issue where the actor name was shown incorrectly in the SSCS tree for actor instances, which meant that if you renamed it you would end up renaming it to the BP's name
Change 3564814 by Ben.Zeigler
#jira UE-47843 Don't set InputKey output pins to AnyKey if empty, this was causing blueprints with key events to constantly dirty themselves
Change 3566707 by Dan.Oconnor
Remove unused code, UClassGenerateCDODuplicatesForHotReload was attempting to create a CDO with a special name, which triggered an ensure. The Duplicated CDO was never used (callign code removed in 3289276 as it was a waste of cycles)
#jira None
Change 3566717 by Michael.Noland
Core: Remove all defintions that contain "_API" from the command line when compiling .rc files (they do not support repsonse files and a too-long command line will fail the compile)
Change 3566771 by Michael.Noland
Editor: Fixing deprecation warning
#jira UE-47922
Change 3567023 by Michael.Noland
Blueprints: Change various TArray<> uses to TSet<> throughout name validation and related code to enable it to scale better to high component or variable counts
Adapted from PR #3708: Fast construction of bp (Contributed by gildor2)
#jira UE-46473
Change 3567304 by Ben.Zeigler
Add bCheckRecursive option to IsEditorOnlyObject that is enabled by default and will check outer/archetype/class.
This is needed for places that call this function from outside of SavePackage.cpp when the editor only mark is set, such as the automation test code
Change 3567398 by Ben.Zeigler
Fix crash when spawning a widget that has no editor WidgetTree, but does have a cooked widget tree template due to tree inheritance
Change 3567729 by Michael.Noland
Blueprints: Clarified message about "{VariableName} is not blueprint visible" to define what that means "(BlueprintReadOnly or BlueprintReadWrite)"
Change 3567739 by Ben.Zeigler
Don't crash if PropertyStruct cannot find it's struct. The function half handled this before, but Preload crashes with a null parameter
Change 3567741 by Ben.Zeigler
Disable optimization for a path test that was crashing in VC2015 in a monolithic build
Change 3568332 by Mieszko.Zielinski
Prevented UAIPerceptionSystem::GetCurrent causing a BP error when WorldContextObject is null #UE4
#jira UE-47948
Change 3568676 by Michael.Noland
Blueprints: Allow editing the tooltip of each enum value in a user defined enum
#jira UE-20036
Known issue: Undo/redo is not currently possible on the tooltip as it is directly stored in package metadata
Change 3569128 by Michael.Noland
Blueprints: Removing the experimental profiler as we won't be returning to it any time soon
#jira UE-46852
Change 3569207 by Michael.Noland
Blueprints: Allow drag-dropping component Blueprint assets into the graph to create Add Component nodes and improved the error message when dragging something that cannot be dropped into an actor Blueprint
#jira UE-8708
Change 3569208 by Michael.Noland
Blueprints: Allow specifying a description for user defined enums (shown in the content browser)
#jira UE-20036
Change 3569209 by Michael.Noland
Editor: Allow adjusting the font size for each individual comment box node in Blueprints and Materials
#jira UE-16085
Change 3570177 by Michael.Noland
Blueprints: Fixed discrepancy between the Structure tab name and the menu option for the tab in the user defined structure editor (now both say Structure Editor)
#jira UE-47962
Change 3570179 by Michael.Noland
Blueprints: Fixed the tooltip of a user defined structure not updating immediately in the content browser after being edited
Change 3570192 by Michael.Noland
Blueprints: Added "(selected)" after the label (in the 'debug filter' dropdown in the Blueprint editor) for actors that are selected in the level editor, which should make it easier to choose the specific actor you want to debug
#jira UE-20709
Change 3571203 by Michael.Noland
Blueprints: Cleanup and refactoring to prepare for turning commented out nodes into an official feature
- Made EnabledState and bUserSetEnabledState private on UEdGraphNode and added new getters/setters
- Introduced IsAutomaticallyPlacedGhostNode() and MakeAutomaticallyPlacedGhostNode() to start decoupling the concept from commented out nodes
- Updated a couple of places that used a hardcoded UberGraphPages[0] into instead editing the most recently interacted with event graph if possible
- Updated 'is data only blueprint' logic to allow multiple ubergraph pages, as long as they're all empty of non-disabled nodes
Change 3571224 by Michael.Noland
Blueprints: Draw banners on development-only and user disabled nodes (excluding 'ghost' nodes like autogenerated event entries in new BPs)
Adapted from PR #2701: Differentiate development nodes in BP (Contributed by projectgheist)
#jira UE-29848
#jira UE-34698
Change 3571279 by Michael.Noland
Blueprints: Changed UK2Node::GetPassThroughPin so that only the execution wire on nodes with exactly one input and one output exec wire will have a corresponding pass-through pin (when there is ambiguity in which exec would be used, e.g., with a branch or sequence or timeline node, the subsequent nodes are now effectively disabled as well)
Change 3571282 by Michael.Noland
Blueprints: Fixed the tooltip for dragging a variable onto an inherited category not showing the 'move to category' hint
Change 3571284 by Michael.Noland
Blueprints: Made wires into/out of a user-disabled node draw verly dimly (other than the passthrough exec if it exists)
Change 3571311 by Ben.Zeigler
Add ActorIteratorFlags which allows overriding which types of actors/levels are iterated by ActorIterator, to allow iterating levels that are not visible.
All of the iteration logic is now in the base and the children just set different flags, which fixes it so TActorIterator does the same level collection check as FActorIterator
Change 3571313 by Ben.Zeigler
Several fixes to automation framework to allow it to work better with Cooked builds.
Change it so the automation test list is a single message. There is no guarantee on order of message packets, so several tests were being missed each time.
Change 3571485 by mason.seay
Test map for Make Set bug
Change 3571501 by Ben.Zeigler
Accidentally undid the UHT fixup for TAssetPtr during my bulk rename
Change 3571531 by Ben.Zeigler
Fix warning messages
Change 3571591 by Michael.Noland
Blueprints: Made drag-dropping assets into a graph to create a component transactional (allowing the action to be undone)
#jira UE-48024
Change 3572938 by Michael.Noland
Blueprints: Fixed a typo in a set function comment
#jira UE-48036
Change 3572941 by Michael.Noland
Blueprints: Made the compact node title for cross and dot product the words cross and dot rather than hard to see . and x symbols
#jira UE-38624
Change 3574816 by mason.seay
Renamed asset to better reflect name of object reference
Change 3574985 by mason.seay
Updated comments and string outputs to list Soft Object Reference
Change 3575740 by Ben.Zeigler
#jira UE-48061 Change it so Editor builds work like cooked builds and always try to reuse existing packages when loading them instead of recreating them in place. Recreating in place does not work well for levels and blueprints, and blueprints already had a hack that was causing this behavior to not activate
Change 3575795 by Ben.Zeigler
#jira UE-48118 Call into the AssetManager as part of the DistillPackages commandlet. This makes sure that ShooterGame and EngineTest end up with the correct content in launcher builds
Change 3576374 by mason.seay
Forgot to submit the deleting of a redirector
Change 3576966 by Ben.Zeigler
#jira UE-48153 Fix issue where actors in streaming levels weren't properly replicating in PIE. It now does the remap path on both send and receive for the manual PC level streaming commands
Change 3577002 by Marc.Audy
Prevent wildcard pins from being connected to exec pins
#jira UE-48148
Change 3577232 by Phillip.Kavan
#jira UE-48034 - Fix EDL assert on load caused by a native reference to a nativized BP class that also references a nativized UDS asset.
Change summary:
- Modified FNativeClassHeaderGenerator::ExportGeneratedStructBodyMacros() to emit the 'ReplaceConverted' package name for the FCompiledInDeferStruct global associated with the nativized UDS asset in the UHT codegen. This brings nativized UDS to parity with nativized BP class assets (it was likely just an oversight initially).
Change 3577710 by Dan.Oconnor
Mirror of 3576977:
Fix for crash when loading cooked uassets that reference functions that are not present
#jira UE-47644
Change 3577723 by Dan.Oconnor
Prevent deferring of classes that are needed to load subobjects
#jira UE-47726
Change 3577741 by Dan.Oconnor
Back out changelist 3577723 - causes crash when starting QAGame in Dev-Framework - not in Release-4.17
Change 3578938 by Ben.Zeigler
#jira UE-27124 Fix issue where renaming a map with legacy map build data would end up with a half-loaded redirector package, becuase the old map build data was still in use. It's possible the call to HandleLegacyMapBuildData should just be in World PostLoad instead of piecemeal in several other places but I am unsure.
Fix it so the redirector cleanup code on map change will not be stopped by non-standalone top level objects, which could be left behind by issues in other systems
Change 3578947 by Marc.Audy
(4.17) Properly expose members of DialogueContext to blueprints
#jira UE-48175
Change 3578952 by Ben.Zeigler
Fix ensure where ParentHandles on a StreamableHandle could be modified while iterating
Change 3579315 by mason.seay
Test map for Make Container nodes
Change 3579600 by Ben.Zeigler
Disable window test on non-desktop platforms as they cannot be resized post launch
Change 3579601 by Ben.Zeigler
#jira UE-48236 Disable optimizations on PS4 for certain math tests pending fixing of platform issue
Change 3579713 by Dan.Oconnor
Prevent crashes when bluepints implement an interface that was deleted
#jira UE-48223
Change 3579719 by Dan.Oconnor
Fix two compilation manager issues: Make sure CDOs are not renamed under a UClass, because they will be considered as possible subobjects, which has bad side effects and make sure that we update references even on empty functions, so that empty UFunctions are not left with references to REINST data
#jira UE-48240
Change 3579745 by Michael.Noland
Blueprints: Improve categorization and reordering support in 'My Blueprints'
- Allow drag-dropping functions, macros, delegates, etc... to reorder them within a category or to change categories (bringing them to parity with variables)
- Make category ordering on all categories sticky so you can reorder categories (the relative ordering will be the same within different sections like variables and functions)
- Added hover cues when drag dropping some items that were missing them (e.g., event dispatchers)
- Added support for renaming categories using F2
Known issues (none are regressions):
- Timelines cannot be moved to other categories or reordered
- Renaming a nested category will result in it becoming a top level category (discarding the parent category chain)
- Some actions do not support undo
#jira UE-31557
Change 3579795 by Michael.Noland
PR #3867: Fix for not releasing Local Notification Delegate. (Contributed by enginevividgames)
#jira UE-48105
Change 3580463 by Marc.Audy
(4.17) Don't crash if calling PostEditUndo on an Actor in the transient package
#jira UE-47523
Change 3581073 by Marc.Audy
Make UK2Node_SpawnActorFromClass inherit from K2Node_ConstructObjectFromClass and eliminate duplicate code.
Correctly reconnect split pins when changing class on create widget, construct object, and spawn actor nodes
Change 3581156 by Ben.Zeigler
#jira UE-48161 Fix issue where split pins would not be restored if a Struct type was changed due to refactoring of parent variables/functions. For structs we want to copy the pins, if they're invalid due to other changes they will be individual orphaned
Also fix bug where the category of parent pins was being set incorrectly while changing variable type, we only want to override type for wildcard pins
Change 3581473 by Ben.Zeigler
Properly turn off optimization for PS4 test
Change 3582094 by Marc.Audy
Fix anim nodes not navigating to their graph on double click
#jira UE-48333
Change 3582157 by Marc.Audy
Fix double-clicking on animation asset nodes not opening the asset editors
Change 3582289 by Marc.Audy
(4.17) Don't crash when adding a streaming level that's already in the level
#jira UE-48928
Change 3545435 by Ben.Zeigler
#jira UE-47509 Rename and refactor internals StringAssetReferences and AssetPtrs to become SoftObjectPath/Ptr. This is to prepare them for use for subobjects like actors. Here is the rename table:
FStringAssetReference -> FSoftObjectPath
FStringClassReference -> FSoftClassPath
TAssetPtr -> TSoftObjectPtr
TAssetSubclassOf -> TSoftClassPtr
The old headers are deprecated, and FSoftClassPath is now in the same header has FSoftObjectPath.
This change increments the UE4 version because FSoftObjectPaths are now stored as a name + substring instead of one giant name, which in practice will improve performance and memory while manipulating them. Also the package table of soft referenced packages is now stored as FNames instead of FStrings as these packages names will already be in the name table due to the AssetRegistry
Remove automatic support for loading Objectpaths starting with engine-ini:, as it was only partially supported and is very outdated. ResolveIniObjectsReference can still be called manually
Changed TPersistentObjectPtr and TLazyObjectPtr to be structs instead of classes
Change UnrealHeaderTool to read configuration such as StructsWithNoPrefix out of inis instead of using a hardcoded list. Add support for TypeRedirects, which is used to make the old type names automatically remap to the new ones
Clean up FRedirectCollector to remove some of the functionality that is no longer used by the cooker, and disable tracking of redirects in standalone -game builds
Change 3567760 by Ben.Zeigler
Fix it so EngineTest can be cooked by moving some utility functions to EditorTestsUtilityLibrary and adding an EditorFunctionalTest. The core EngineTest module is safely runtime-only now and can run it's tests locally in windows cooked
Merge FuncTestManager into FunctionalTestModule to avoid confusion with FunctionalTestingManager UObject
Add EngineTestAssetManager and override the cook function to cook all maps with runtime functional tests
Change actor merging tests to be editor only, this stops them from cooking
Several individual tests crash on cooked builds, I started threads with the owners of those
Change 3575737 by Ben.Zeigler
#jira UE-48042 Change it so playing via PIE Standalone, multiprocess networked PIE and external cook launch on does not save temporary levels to UEDPC and instead prompts the user to save. This is how launch on works by default already, and this fixes cross level references/sequencer. The UEDPC code has been removed entirely.
As part of this change, connecting a -game client to a PIE server and vice versa is much more likely to work. You may still have game-side problems, look at UEditorEngine::NetworkRemapPath for an example of how to do the PIE prefix conversion
Remove advanced CreateTemporaryCopiesOfLevels option from sequencer capture, it has not been tested in multiple years and does not work with newer sequencer features
#jira UE-27124 Fix several possible crashes with changing levels while in PIE
Change 3578806 by Marc.Audy
Fix Construct Object not working correctly with split pins.
Add Construct Object test cases to functional tests.
Added split pin expose on spawn test cases.
#jira UE-33924
[CL 3582334 by Marc Audy in Main branch]
2017-08-11 12:43:42 -04:00
OutSoftPackageReferenceList . Add ( PackageName ) ;
2015-07-23 10:49:29 -04:00
}
2014-07-24 13:25:23 -04:00
}
}
2020-06-23 18:40:00 -04:00
return true ;
2014-07-24 13:25:23 -04:00
}
2022-03-31 09:16:55 -04:00
bool FPackageReader : : SerializeSearchableNamesMap ( FLinkerTables & OutSearchableNames )
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3182037)
#rb None
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2825716 on 2016/01/12 by Marc.Audy
Fix GrabDebugSnapshot virtual function definitions in Ocean
Change 2828462 on 2016/01/14 by Marc.Audy
Back out changelist 2825716
Change 3153526 on 2016/10/06 by Zak.Middleton
#ue4 - Fix CharacterMovement hanging on to a bad/penetrating floor check result and not continuing to check for a valid floor. Only occured if bAlwaysCheckFloor was false. This could in rare situations cause the character to continue to attempt to depenetrate an object far away from it until another floor check occured. To prevent this we now force a floor check after the depenetration.
Related to OR-14528.
Change 3153580 on 2016/10/06 by Benn.Gallagher
Skeletal LOD workflow refactor. Now we track source files for LODs to save time when reimporting LODs often. It's still possible to pick new files and overwrite the current settings.
#jira UE-36588
Change 3154264 on 2016/10/06 by Aaron.McLeran
UE-37004 UE-37005 Fixing stat soundwaves
Change 3154560 on 2016/10/07 by James.Golding
UE-20739 Fix auto box in Morph Target Preview panel
Change 3154776 on 2016/10/07 by Ben.Zeigler
#Fortnite Change the ability UI to use the Tag UI data instead of the Tag Categories, as Tag Categories were redundant and are being removed in the tag refactor. I'm not sure this code is actually in use any more.
Change 3154954 on 2016/10/07 by Ben.Zeigler
Move GameplayTagsEditor to a plugin, and change GameplayTagsManager to be accessed directly without the module load overhead, as it is part of the engine module set.
Performance improvements to GameplayTags to maintain a ParentTag list when tag containers get modified. It does a quick update on add, and a slow recompute on other changes. This leads to a 10x improvement in IncludeParent queries
Replace RemoveAllTags and RemoveAllTagsKeepSlack with Reset, which already existed but didnt work correctly.
Removed the Category map from gameplay tags, games are using other systems to do translateable text.
Significant internal changes to GameplayTagsManager, moved from 3 redundant maps to 1 map and removed unused functionality
Change 3154955 on 2016/10/07 by Ben.Zeigler
Game compile fixes for changes to GameplayTags module and API. Removed redundant calls to remove tags, TagContainer uses Reset() like other container types
Change 3154995 on 2016/10/07 by Aaron.McLeran
UE-37012 fix compile issue
Change 3155009 on 2016/10/07 by Aaron.McLeran
UE-37009 Ensure failed for FXAudio2SoundBuffer::Seek() in XAudio2Buffer.cpp
- Removing ensure and using if statement instead. It looks possible for decompression state to fail to be created, that state is logged elsewhere.
Change 3155128 on 2016/10/07 by Ben.Zeigler
Add old location of GameplayTagsEditor to junk manifest
Change 3155268 on 2016/10/07 by Aaron.McLeran
UE-37024 Set Sound Mix Class Override still Playing Sounds in Certain Conditions
Change 3155561 on 2016/10/07 by Ben.Zeigler
GameplayTag fixes made based on code review feedback:
Deprecate custom node for making a literal gameplay tag container and add proper make and break functions to the blueprint library
Remove direct access to the tag container internals as it has always been unsafe
Add many missing utility functions to the library and change things to pass FGameplayTag by value. TagContainers must still be passed by reference though as they are large
Fix case where comparing two containers with the tags in different orders would fail
Remove deprecated serialization entirely, print error when trying to load very old tags
Add RemoveAllTags and RemoveAllTagsKeepSlack back to container, but deprecate them
Change 3155842 on 2016/10/07 by dan.reynolds
AEOverview Update - Attenuation Shapes Test Map + Counting Test Assets
Change 3156779 on 2016/10/10 by Richard.Hinckley
Fixing/reordering comments for basic types.
Change 3156926 on 2016/10/10 by Ben.Zeigler
Remove deprecated gameplay ability system code involving non-BP gameplay effects and ActiveGameplayEffectQueries
Change 3156998 on 2016/10/10 by Jon.Nabozny
Include K2Node_BaseAsyncAction.h in K2Node_AsyncAction.h to fix compile issue.
Change 3158732 on 2016/10/11 by Zak.Middleton
#ue4 - Don't allow the first move in SafeMoveUpdatedComponent() to ignore penetration when slowly moving out of an object. We really want to pop out completely using the MTD as fast as possible or we can fall through the object in a longer direction.
#jira UE-28610
Change 3159208 on 2016/10/11 by dan.reynolds
Added ancillary SoundClass Passive Mix Modifier Duration Test map
Change 3159211 on 2016/10/11 by Aaron.McLeran
UE-37193 Fixing passive sound mix modifier
Change 3159278 on 2016/10/11 by dan.reynolds
AEOverviewMain integration with the SCO Passive Mix Modifier Duration Test map for additional testing purposes.
Also tweaks and clean-up of SCOverviewPassMixModDuration map and associated Platform_Blueprint
Change 3159596 on 2016/10/12 by danny.bouimad
Updates to TM-Meshbake
Change 3159629 on 2016/10/12 by James.Golding
Add ModifyCurve anim node
Make GetPinAssociatedProperty const correct
Change 3159705 on 2016/10/12 by James.Golding
Add 'ApplyMode' and 'Alpha' options to ModifyCurve node
Change 3159959 on 2016/10/12 by John.Abercrombie
Integrate CL 3159892 from //Fortnite/Main/...
Fixed the Blackboard component pausing but never being unpaused if we ended up restarting the Behavior Tree instead of continuing
#ue4
Change 3160014 on 2016/10/12 by Lukasz.Furman
pass on gameplay debugger in Simulate in Editor mode
#jira UE-36123
Change 3160027 on 2016/10/12 by Lukasz.Furman
fixed behavior tree task restart conditions
copy of CL 3159145
#ue4
Change 3160129 on 2016/10/12 by Lukasz.Furman
gameplay debugger refactor: removed deprecated code
#ue4
Change 3160389 on 2016/10/12 by Lukasz.Furman
added missing include path to gameplay debugger module
#ue4
Change 3160408 on 2016/10/12 by Lukasz.Furman
refactored sanity checks in gameplay debugger EdMode to keep static analysis happy
#ue4
Change 3161143 on 2016/10/13 by James.Golding
UE-37208 UE-37207 Fix AnimNode_ModifyCruve CIS error
Change 3161227 on 2016/10/13 by danny.bouimad
More changes to meshmergemap
Change 3161777 on 2016/10/13 by Ben.Zeigler
API changes for GameplayTag and Container, and fix Redirect loading
Remove Match type and empty count as match bool from common API
In C++ use MatchTag/MatchAny/HasTag/HasAny/HasAll with *Exact variants for exact matching. Old C++ API is still there but I will deprecate and remove soon
In Blueprint use MatchTag/MatchAny/HasTag/HasAny/HasAll with bool parameter for as the bool is more clear. I was able to convert old functions to new ones as no one was overriding the options I removed
Undeprecate the old make literal node and temporarily set GameplayTags in container to be editable. We're not allowed to deprecate things until our internal games fix their usage.
Change 3162095 on 2016/10/13 by Jon.Nabozny
Fix bad default screen resolution in Platformer Game.
#jira UE-34901
Change 3163351 on 2016/10/14 by Marc.Audy
Avoid duplicate accessor calls
Change 3163364 on 2016/10/14 by Marc.Audy
Eliminate auto
Use ForEachObjectWithOuter
Change 3163367 on 2016/10/14 by Marc.Audy
Use ForEachObjectWithOuter instead of GetObjectsWithOuter
Change 3163500 on 2016/10/14 by Marc.Audy
When using SetCullDistance property for static meshes correctly update the cached value
#jira UE-36891
Change 3163674 on 2016/10/14 by Jon.Nabozny
#rn Fix popping in OnRep_ReplicatedAnimMontage.
#jira UE-37056
Change 3164818 on 2016/10/17 by Ori.Cohen
Added a pose snapshot feature that allows users to convert an existing skeletal mesh pose into a node inside the anim blueprint. This is useful for things like getup from ragdoll.
Change 3164903 on 2016/10/17 by Lukasz.Furman
fixed bug in merging behavior tree searches
#ue4
Change 3165236 on 2016/10/17 by dan.reynolds
Fixes and tweaks based on feedback:
- Made most objects Stationary to assist in dynamic lighting changes as sub-levels have unknown orientation until load
- Fixed Blueprint Control map to stop test when the player leaves the zone
- Fixed Blueprint Contorl map typos
Change 3165323 on 2016/10/17 by Aaron.McLeran
PS4 Audio Streaming
- Refactored Opus audio streaming code to have the code which interfaces with audio streaming manager in format-agnostic code (so I can use for AT9 streaming)
- Wrote an AT9 real-time decoder module (will be used in audio mixer)
- Enabled streaming on PS4 platform
- Refactored much of Ngs2 to be more in parity with our other platforms for real-time decoding (Significant changes to Ngs2Buffer)
- Added support for Ngs2 buffer callbacks for when audio needs to be fed to sources rather than pushing data from game thread
- Fixed A3D implementation: creating both a normal sampler rack and an A3D-specific sampler rack
- Fixed up error handling code in Ngs2 so it actually reports real errors
Change 3165997 on 2016/10/18 by Richard.Hinckley
Improving consistency of "New C++ Class" templates and fixing some shadow-variable issues.
Change 3166220 on 2016/10/18 by Aaron.McLeran
UE-37442 Build Tools Win64 completes with 28 errors
- Changing include of appropriate file to not be in #if WITH_ENGINE block
Change 3166262 on 2016/10/18 by Aaron.McLeran
UE-37441 Compile Ocean IOS, Compile FortniteClient Mac, Compile UE4Editor Mac complete with 11 errors
Fixing up the original wave format parsing code in Audio.cpp to avoid redefinitions. This code needs to be removed eventually in favor of the new wave format parser class.
Change 3166562 on 2016/10/18 by Aaron.McLeran
UE-37441 Fixing compile on Mac
- Renamed FFormatChunk to FRiffFormatChunk
Change 3166653 on 2016/10/18 by Aaron.McLeran
UE-37442 Build Tools Win64 completes with 28 errors
Change 3166917 on 2016/10/18 by Aaron.McLeran
UE-37502 Initializing missed data members in FNgs2SoundSource constructor
Change 3167329 on 2016/10/19 by Benn.Gallagher
Made wind properties editable on wind components, had to make the properties unsettable by blueprints and add setter functions so we can trigger render data updates from property updates.
#jira UE-37500
Change 3167575 on 2016/10/19 by Jon.Nabozny
#rn Fix UCharacterMovementComponent::OnTeleported improperly changing movement mode.
#jira UE-37082
Change 3168079 on 2016/10/19 by Ori.Cohen
Fix timing issue that causes snapshotpose to t-pose.
#JIRA UE-37476
Change 3168392 on 2016/10/19 by dan.reynolds
Updated AEOverviewMain with custom Attenuation FBXs to alleviate visual noise when observing complex attenuation shape falloff distances.
Change 3169121 on 2016/10/20 by danny.bouimad
Updates to Merge actor assets
Change 3169128 on 2016/10/20 by Danny.Bouimad
files
Change 3169230 on 2016/10/20 by Lina.Halper
#improved log message
Change 3169243 on 2016/10/20 by Ben.Zeigler
#jira UE-37515 Add UK2Node::ConvertDeprecatedNode which handles node-specific deprecation fixup.
Add code to automatically convert from make/break struct nodes to native call function if there is a native override.
This was hard coded for vector, etc but now works for any type that declares HasNativeMake/HasNativeBreak.
Add serialize override to K2Node that serializes struct defaults when gathering references while saving. References declared in literal struct pins were being skipped
Add specific fixups for GameplayTag make/break functions
Change 3169422 on 2016/10/20 by Aaron.McLeran
UE-37596 Making detail customizations and experimental setting for sound base showing audiomixer-only features
Change 3169620 on 2016/10/20 by Ben.Zeigler
Switch GameplayTagTests to use the new Custom test macro and better failure reporting.
Add TestTrueExpr macro that runs TestTrue with the expression as the display string, like how ensure works.
Change 3169622 on 2016/10/20 by Ben.Zeigler
Fix swapped HasAny logic and bad comments
Change 3169645 on 2016/10/20 by Aaron.McLeran
Re-adding call to Stop source
Change 3169664 on 2016/10/20 by dan.reynolds
AEOverviewMain Update - Fixed Menu bug where clicking the menu item after map reset resulted in requiring two attempts to actually reset the menu item properly. Menu Hit interaction is now much more responsive.
Change 3169997 on 2016/10/20 by Ben.Zeigler
Change from alloca to normal malloc, as static analysis doesn't like alloca in loops due to stack overflow danger
Change 3170796 on 2016/10/21 by Marc.Audy
PR #2878: Prevent 'XXX has natively added scene component' warning in commandlets (Contributed by slonopotamus)
#jira UE-37632
Change 3170802 on 2016/10/21 by Lina.Halper
#ANIM: curve can link to joints
- this allows to filter certain curves per LOD - when the joint is discarded
-> refactored editor object tracker to allow multiple per class
-> refactored so that bone reference supports both skeleton or mesh but make sure you don't access invalid function when using skeleton indices
- layer bone support
#jira: UEFW-207
Change 3170857 on 2016/10/21 by Aaron.McLeran
Disabling checking for device change
Change 3171101 on 2016/10/21 by Ben.Zeigler
Deprecate old gameplay tag functions in favor of new API that doesn't use the enums or module header
Add IsEmpty, Filter, FilterExact, and AddLeafTag to FGameplayTagContainer
Add RequestGameplayTag, MatchesTagDepth and GetGameplayTagParents to FGameplayTag
Remove MatchesEmpty parameter from tag asset interface. This defaulted to true but should now be explicitly checked with IsEmpty()
Engine fixups for those changes
Change 3171102 on 2016/10/21 by Ben.Zeigler
Internal game fixups for tag deprecation
Moved some fortnite tags into the global tag list and fixed fortnite cases. Confident in these changes
Fixed several weird tag uses in Orion. Dave and I should code review these changes as I was unsure on some of them
Some minor changes for Ocean
Change 3171186 on 2016/10/21 by Ben.Zeigler
File got missed in checkin
Change 3171239 on 2016/10/21 by Wes.Hunt
TPSAudit updates.
* Added /Verbose option that will print out the name of each file examined. Useful for debugging if a file was even checked.
* Don't skip Content folders
* Don't skip Engine\Documentation\HTML
* Skip any Content\Localization folders instead of only Engine\Content\Localization
* Skip any Content\Internationalization folders
* Skip .raw, .exr, .r16, .abc, .webm, .collection, .aac files.
* if a file has no extension (like configure files) then treat the filename as the extension
* configure files are treated like shell files
Change 3171245 on 2016/10/21 by Ben.Zeigler
Fix crash when saving nodes that reference properties from struct defaults. Switch FindImportedObject to be safe while saving, it will find existing objects but not load new ones.
I am not sure why StaticFindObject is unsafe during save.
Change 3171248 on 2016/10/21 by Wes.Hunt
TPSAudit: added /veryverbose which lists every file and directory excluded and the reason (file or dir exclusion). This makes the startup MUCH MUCH slower, so only use for debugging.
Change 3171256 on 2016/10/21 by Wes.Hunt
ModuleManager shutdown fixes.
* ShutdownModule is now called in reverse order to when StartupModule is FINISHED.
* This allows modules to reference dependencies in their StartupModule to ensure they are loaded, and be sure they will still be around in ShutdownModule.
* HTTPModule now shuts down in ShutdownModule and not PreUnloadCallback.
* Added comments to Module headers to indicate this new change in behavior.
* Removed manual startup of HTTP module in LaunchEngineLoop as it's no longer needed. Should save the module from being around if not really used by engine.
Change 3171258 on 2016/10/21 by Wes.Hunt
ModuleManager shutdown fixes.
* ShutdownModule is now called in reverse order to when StartupModule is FINISHED.
* This allows modules to reference dependencies in their StartupModule to ensure they are loaded, and be sure they will still be around in ShutdownModule.
* HTTPModule now shuts down in ShutdownModule and not PreUnloadCallback.
* Added comments to Module headers to indicate this new change in behavior.
* Removed manual startup of HTTP module in LaunchEngineLoop as it's no longer needed. Should save the module from being around if not really used by engine.
Change 3171946 on 2016/10/24 by Lina.Halper
Fix so that it checks all the joints before removing
Change 3172126 on 2016/10/24 by Lukasz.Furman
added navlink component
#ue4
Change 3172152 on 2016/10/24 by Jon.Nabozny
Remove UWorld::ComponentOverlapMulti indirection in UPrimitiveComponent::UpdateOverlaps.
UWorldComponentOverlapMulti is just a wrapper that verifies the component is valid, then calls UPrimitiveComponent::ComponentOverlapMulti.
#jira UE-36472
Change 3172364 on 2016/10/24 by Ben.Zeigler
Codereview fixes for tag changes.
Make Tag->Container constructor explicit to avoid bugs
Fix some cases that were using exact to allow parents instead
Change 3173442 on 2016/10/25 by Jon.Nabozny
Fixed crash when opening Anim asset after retargetting.
Change 3174123 on 2016/10/25 by Ben.Zeigler
Add some ini tag data to QAGame, it's now setup to import some from DataTable, and some from ini. This enables the full management UI.
Change 3174394 on 2016/10/25 by dan.reynolds
AEOverview update - added a Streaming Audio test which tests two streaming audio loops (one short, one long).
Change 3175197 on 2016/10/26 by Wes.Hunt
Fix OSS module startup to directly reference HTTP and XMPP as a dependency in StartupModule. This should make MCP startup/shutdown more robust.
#codereivew: sam.zamani,dmitry.rekman,josh.markiewicz
Change 3175236 on 2016/10/26 by Jon.Nabozny
Change FMath::SegmentDistToSegmentSafe to handle the case where either (or both) of the input segments create points.
Either segment may be considered a point if it's two points have a distance that's nearly 0.
#jira UE-19251
Change 3175256 on 2016/10/26 by Jon.Nabozny
Fix CIS for SegmentDistToSegmentSafe change.
Change 3175379 on 2016/10/26 by Jon.Nabozny
Change UCharacterMovementComponent::ApplyImpactPhysicsForces to use IsSimulatingPhysics(BoneName) instead of IsAnySimulatingPhysics on the hit component.
#jira UE-37582
Change 3175408 on 2016/10/26 by Marc.Audy
AudioThreading improvements:
Fix PS4 core 6 issue
Add timeout spam
Radical simplification
Fix suspension CVar
#authors Gil.Gribb/Marc.Audy
#jira OR-30447
Change 3175535 on 2016/10/26 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3175266
Change 3175539 on 2016/10/26 by Marc.Audy
Restore affinity for AudioThread and allow it on to 7th (rather than pinning it)
Change 3175631 on 2016/10/26 by Marc.Audy
Fix silly compile error
Change 3175639 on 2016/10/26 by Aaron.McLeran
Fixing audio device removal code
- Flipping active sources to virtual mode
- Handling initializing sources that have become virtual
- Not stopping sounds when device is unplugged
Change 3175665 on 2016/10/26 by dan.reynolds
AEOverview update - Added a Streaming Overview sub test (Streaming Spam)
Change 3175934 on 2016/10/26 by dan.reynolds
AEOverview Streaming Map Fix - fixed AEOverviewStreaming to avoid orphaning sounds when crossing the platforms
Change 3175941 on 2016/10/26 by Marc.Audy
Fix compiler error after merge from Main
Change 3176378 on 2016/10/27 by Jon.Nabozny
Add RotatorToAxisAndAngle function to KismetMath. We already expose RotatorFromAxisAndAngle, this is just the inverse operation.
Change 3176441 on 2016/10/27 by Jon.Nabozny
Fix another CIS issue with SegmentDistToSegmentSafe change.
Change 3176487 on 2016/10/27 by Jon.Nabozny
Hide DemoRecorder from the scoreboard in ShooterGame.
#jira UE-37492
Change 3176616 on 2016/10/27 by Lukasz.Furman
optimized behavior tree debugger update in subtrees
#jira UE-29029
Change 3176717 on 2016/10/27 by james.cobbett
Test asset for UE-37270
Change 3176731 on 2016/10/27 by dan.reynolds
AEOverview Streaming Spam map tweak--fixed STRMOverviewStreamSpam map so it now ensures reproduction on a specific edge case
Change 3176887 on 2016/10/27 by Aaron.McLeran
UE-37899 Failed Assertion when spamming PS4 Streaming Start/Stop
- Fix is to add critical sections to avoid stopping a Ngs2 source voice while it's in an OnBufferEnd callback
#tests Use Dan.Reynold's AEOverviewMain, load STRMOverviewStreamSpam map. will crash in half a second pre-fix, never crashes post-fix.
Change 3177053 on 2016/10/27 by Marc.Audy
Actually reattach previously attached actors when creating a child actor
#jira UE-37675
Change 3177113 on 2016/10/27 by Aaron.McLeran
UE-37906 Fixing stat sounds when the audio thread is enabled.
Change 3177536 on 2016/10/27 by Aaron.McLeran
Updating QASoundWaveProcedural to support stereo procedural sound wave generation.
Change 3177551 on 2016/10/27 by dan.reynolds
AEOverview update
- Tweaked AEOverviewSWP to support testing mono and stereo SoundWave Procedurals
- Added STRMOverviewStreamPriority to test Streaming Voice Priority
Change 3177819 on 2016/10/28 by Thomas.Sarkanen
Consolidated LOD screen size calculations
Static, skeletal and HLOD now use the same method of specifying LOD level at runtime.Namely "Screen Size". When the bounds of the objects sphere occupy half the max screen dimension, the screen size is 0.5 & all of the screen, 1.0.
HLOD still uses a distance based metric at runtime to choose when to switch clusters, so will still not switch LODs on FOV changes.
Conversion functions have been implemented to convert each of the legacy LOD specifications into the new unified version.
Conversion uses an assumption that the average case uses 1080p @ 90 degree FOV. This is necessary as previous screen sizes/areas were based around that resolution and we want the least perf regressions when at that resolution.
Auto LOD now uses the same functionality to determine what LOD thresholds to use.
#tests Verified that LODs switch at equivalent distances/sizes before and after this change for various assets.
#tests Verified that HLOD distance->screen size and inverse functions map correctly
#tests Ran Michael N's triangle count test before and after the changes with Paragon to verify rendered triangle counts do not vary with the new method
Change 3177996 on 2016/10/28 by Marc.Audy
Support play button on SoundCues as well as SoundWaves
Change 3178013 on 2016/10/28 by Marc.Audy
Allow previewing of force feedback effects from content browser
#jira UE-36388
Change 3178020 on 2016/10/28 by Lukasz.Furman
fixed navmesh wall segment calculations for crowds
#jira UE-37893
Change 3178096 on 2016/10/28 by Marc.Audy
Make ALevelSequenceActor::Tick call Super
#jira UE-37932
Change 3178247 on 2016/10/28 by Zak.Middleton
#ue4 - Crash fix when player is destroyed and server checks to see if it needs to force a network update. No repro steps in the bug but guarding against the crash is pretty straightforward.
UE-37902
Change 3178256 on 2016/10/28 by Zak.Middleton
#ue4 - Avoid crash when calling ACharacter::SetReplicateMovement when not on the server.
Change 3178263 on 2016/10/28 by Ben.Zeigler
Add support for a SearchableNameMap to the Linker and the Asset Registry. Call MarkSearchableName(TypeObject,Name) from a serialize function to register that an FName should be considered Searchable.
This change bumps the object version. Also fix it so the StringAssetReferencesMap does not get written out in editor builds
Clean up FLinker::Serialize, as it is no longer called except to get memory size
Add code to mark searchable names for GameplayTags, DataTableHandles, and CurveTableHandles.
Add FAssetIdentifier to the AssetRegistry that allows searching for Package.Object::Name. If Object/Name aren't specified PackageName will be used as it was before
UI Improvements to the reference viewer to support name references. Collapse the reference/dependency checkboxes, and add new checkboxes for SearchableNames and NativePackages, disabled by default
Remove bResolveIniStringReferences option from GetDepdendencies and handle that when parsing in the string asset reference table
Change 3178265 on 2016/10/28 by Ben.Zeigler
Move all ini settings for GameplayTags over to GameplayTagsSettings.h/GameplayTags.ini, instead of being in 3 different places.
Add metadata for the source of a gameplay tag and it's comment to the node, but only in editor builds
Change it so the default list and developer tags list are saved the same way as a list of structs. This will allow UI for selecting what tag list to save it into
The first time someone in the project modifies the GameplayTags project settings it will migrate these settings from the old locations. This will cause defaultEngine.ini to resave, which may wipe out comments
Migrate QAGame's tag config as a test
Change 3178266 on 2016/10/28 by Lina.Halper
Fix issue with anim editor sound play notify doesn't work with follow option
#jira: UE-37946
Change 3178441 on 2016/10/28 by Ben.Zeigler
Fix use of IsValid on names inside asset identifier to properly be a None check and add accessor to make use more clear
Change 3178443 on 2016/10/28 by Ben.Zeigler
Half migrated gameplay tag settings for internal games, will need full migration via the editor on their branches
Change 3178533 on 2016/10/28 by Ben.Zeigler
Build fix
Change 3178655 on 2016/10/28 by Ben.Zeigler
Build fix
Change 3178672 on 2016/10/28 by Lina.Halper
Unshelved from changelist '3164228':
PR #2867: Fixed for UE-15388 : Bones of uniformly scaled SkeletalMesh rotate incorrectly in Persona (Contributed by rarihoma)
#jira: UE-37372
Change 3178675 on 2016/10/28 by Ben.Zeigler
Crash fix if you have no defaultengine.ini redirects section
Change 3178698 on 2016/10/28 by Ben.Zeigler
#jira UE-37774 Fix issue with loading save games referencing UObjects not in memory, this broke in 4.13
Change 3178743 on 2016/10/28 by Lina.Halper
Fixed so that if no key, it clamps to 0.
#jira: UE-36790
Change 3179121 on 2016/10/28 by dan.reynolds
AEOverview tweaks
- updated Concurrency map to tighten up the audio playback (as in James C's feedback)
- tweaked some timers to be closer to real-time
Change 3179912 on 2016/10/31 by Mieszko.Zielinski
Removed unused piece of functionality from UEdGraphSchema_BehaviorTreeDecorator #UE4
Change 3179933 on 2016/10/31 by Lukasz.Furman
fixed missing update timers in avoidance manager
#ue4
Change 3180028 on 2016/10/31 by Ben.Zeigler
#jira UE-373993 Fix crash with bad default value for objects
Change 3180503 on 2016/10/31 by mason.seay
Test map for character spawning bug
Change 3180744 on 2016/10/31 by Ben.Zeigler
#jira UE-38025 Fix APlayerController:DisplayDebug to not make a bad copy of the debug display manager
Change 3180914 on 2016/10/31 by Ben.Zeigler
#jira UE-37773 Add hooks for deleting and renaming tags, untested pending UI support
Add handler for editing a gameplaytag asset from asset browser
Change 3181879 on 2016/11/01 by Marc.Audy
Rollback CL# 3169645 to resolve fortnite audio hitching when stopping sounds
#jira UE-38055
[CL 3182044 by Marc Audy in Main branch]
2016-11-01 15:50:29 -04:00
{
2021-04-14 05:14:13 -04:00
if ( UEVer ( ) > = VER_UE4_ADDED_SEARCHABLE_NAMES & & PackageFileSummary . SearchableNamesOffset > 0 )
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3182037)
#rb None
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2825716 on 2016/01/12 by Marc.Audy
Fix GrabDebugSnapshot virtual function definitions in Ocean
Change 2828462 on 2016/01/14 by Marc.Audy
Back out changelist 2825716
Change 3153526 on 2016/10/06 by Zak.Middleton
#ue4 - Fix CharacterMovement hanging on to a bad/penetrating floor check result and not continuing to check for a valid floor. Only occured if bAlwaysCheckFloor was false. This could in rare situations cause the character to continue to attempt to depenetrate an object far away from it until another floor check occured. To prevent this we now force a floor check after the depenetration.
Related to OR-14528.
Change 3153580 on 2016/10/06 by Benn.Gallagher
Skeletal LOD workflow refactor. Now we track source files for LODs to save time when reimporting LODs often. It's still possible to pick new files and overwrite the current settings.
#jira UE-36588
Change 3154264 on 2016/10/06 by Aaron.McLeran
UE-37004 UE-37005 Fixing stat soundwaves
Change 3154560 on 2016/10/07 by James.Golding
UE-20739 Fix auto box in Morph Target Preview panel
Change 3154776 on 2016/10/07 by Ben.Zeigler
#Fortnite Change the ability UI to use the Tag UI data instead of the Tag Categories, as Tag Categories were redundant and are being removed in the tag refactor. I'm not sure this code is actually in use any more.
Change 3154954 on 2016/10/07 by Ben.Zeigler
Move GameplayTagsEditor to a plugin, and change GameplayTagsManager to be accessed directly without the module load overhead, as it is part of the engine module set.
Performance improvements to GameplayTags to maintain a ParentTag list when tag containers get modified. It does a quick update on add, and a slow recompute on other changes. This leads to a 10x improvement in IncludeParent queries
Replace RemoveAllTags and RemoveAllTagsKeepSlack with Reset, which already existed but didnt work correctly.
Removed the Category map from gameplay tags, games are using other systems to do translateable text.
Significant internal changes to GameplayTagsManager, moved from 3 redundant maps to 1 map and removed unused functionality
Change 3154955 on 2016/10/07 by Ben.Zeigler
Game compile fixes for changes to GameplayTags module and API. Removed redundant calls to remove tags, TagContainer uses Reset() like other container types
Change 3154995 on 2016/10/07 by Aaron.McLeran
UE-37012 fix compile issue
Change 3155009 on 2016/10/07 by Aaron.McLeran
UE-37009 Ensure failed for FXAudio2SoundBuffer::Seek() in XAudio2Buffer.cpp
- Removing ensure and using if statement instead. It looks possible for decompression state to fail to be created, that state is logged elsewhere.
Change 3155128 on 2016/10/07 by Ben.Zeigler
Add old location of GameplayTagsEditor to junk manifest
Change 3155268 on 2016/10/07 by Aaron.McLeran
UE-37024 Set Sound Mix Class Override still Playing Sounds in Certain Conditions
Change 3155561 on 2016/10/07 by Ben.Zeigler
GameplayTag fixes made based on code review feedback:
Deprecate custom node for making a literal gameplay tag container and add proper make and break functions to the blueprint library
Remove direct access to the tag container internals as it has always been unsafe
Add many missing utility functions to the library and change things to pass FGameplayTag by value. TagContainers must still be passed by reference though as they are large
Fix case where comparing two containers with the tags in different orders would fail
Remove deprecated serialization entirely, print error when trying to load very old tags
Add RemoveAllTags and RemoveAllTagsKeepSlack back to container, but deprecate them
Change 3155842 on 2016/10/07 by dan.reynolds
AEOverview Update - Attenuation Shapes Test Map + Counting Test Assets
Change 3156779 on 2016/10/10 by Richard.Hinckley
Fixing/reordering comments for basic types.
Change 3156926 on 2016/10/10 by Ben.Zeigler
Remove deprecated gameplay ability system code involving non-BP gameplay effects and ActiveGameplayEffectQueries
Change 3156998 on 2016/10/10 by Jon.Nabozny
Include K2Node_BaseAsyncAction.h in K2Node_AsyncAction.h to fix compile issue.
Change 3158732 on 2016/10/11 by Zak.Middleton
#ue4 - Don't allow the first move in SafeMoveUpdatedComponent() to ignore penetration when slowly moving out of an object. We really want to pop out completely using the MTD as fast as possible or we can fall through the object in a longer direction.
#jira UE-28610
Change 3159208 on 2016/10/11 by dan.reynolds
Added ancillary SoundClass Passive Mix Modifier Duration Test map
Change 3159211 on 2016/10/11 by Aaron.McLeran
UE-37193 Fixing passive sound mix modifier
Change 3159278 on 2016/10/11 by dan.reynolds
AEOverviewMain integration with the SCO Passive Mix Modifier Duration Test map for additional testing purposes.
Also tweaks and clean-up of SCOverviewPassMixModDuration map and associated Platform_Blueprint
Change 3159596 on 2016/10/12 by danny.bouimad
Updates to TM-Meshbake
Change 3159629 on 2016/10/12 by James.Golding
Add ModifyCurve anim node
Make GetPinAssociatedProperty const correct
Change 3159705 on 2016/10/12 by James.Golding
Add 'ApplyMode' and 'Alpha' options to ModifyCurve node
Change 3159959 on 2016/10/12 by John.Abercrombie
Integrate CL 3159892 from //Fortnite/Main/...
Fixed the Blackboard component pausing but never being unpaused if we ended up restarting the Behavior Tree instead of continuing
#ue4
Change 3160014 on 2016/10/12 by Lukasz.Furman
pass on gameplay debugger in Simulate in Editor mode
#jira UE-36123
Change 3160027 on 2016/10/12 by Lukasz.Furman
fixed behavior tree task restart conditions
copy of CL 3159145
#ue4
Change 3160129 on 2016/10/12 by Lukasz.Furman
gameplay debugger refactor: removed deprecated code
#ue4
Change 3160389 on 2016/10/12 by Lukasz.Furman
added missing include path to gameplay debugger module
#ue4
Change 3160408 on 2016/10/12 by Lukasz.Furman
refactored sanity checks in gameplay debugger EdMode to keep static analysis happy
#ue4
Change 3161143 on 2016/10/13 by James.Golding
UE-37208 UE-37207 Fix AnimNode_ModifyCruve CIS error
Change 3161227 on 2016/10/13 by danny.bouimad
More changes to meshmergemap
Change 3161777 on 2016/10/13 by Ben.Zeigler
API changes for GameplayTag and Container, and fix Redirect loading
Remove Match type and empty count as match bool from common API
In C++ use MatchTag/MatchAny/HasTag/HasAny/HasAll with *Exact variants for exact matching. Old C++ API is still there but I will deprecate and remove soon
In Blueprint use MatchTag/MatchAny/HasTag/HasAny/HasAll with bool parameter for as the bool is more clear. I was able to convert old functions to new ones as no one was overriding the options I removed
Undeprecate the old make literal node and temporarily set GameplayTags in container to be editable. We're not allowed to deprecate things until our internal games fix their usage.
Change 3162095 on 2016/10/13 by Jon.Nabozny
Fix bad default screen resolution in Platformer Game.
#jira UE-34901
Change 3163351 on 2016/10/14 by Marc.Audy
Avoid duplicate accessor calls
Change 3163364 on 2016/10/14 by Marc.Audy
Eliminate auto
Use ForEachObjectWithOuter
Change 3163367 on 2016/10/14 by Marc.Audy
Use ForEachObjectWithOuter instead of GetObjectsWithOuter
Change 3163500 on 2016/10/14 by Marc.Audy
When using SetCullDistance property for static meshes correctly update the cached value
#jira UE-36891
Change 3163674 on 2016/10/14 by Jon.Nabozny
#rn Fix popping in OnRep_ReplicatedAnimMontage.
#jira UE-37056
Change 3164818 on 2016/10/17 by Ori.Cohen
Added a pose snapshot feature that allows users to convert an existing skeletal mesh pose into a node inside the anim blueprint. This is useful for things like getup from ragdoll.
Change 3164903 on 2016/10/17 by Lukasz.Furman
fixed bug in merging behavior tree searches
#ue4
Change 3165236 on 2016/10/17 by dan.reynolds
Fixes and tweaks based on feedback:
- Made most objects Stationary to assist in dynamic lighting changes as sub-levels have unknown orientation until load
- Fixed Blueprint Control map to stop test when the player leaves the zone
- Fixed Blueprint Contorl map typos
Change 3165323 on 2016/10/17 by Aaron.McLeran
PS4 Audio Streaming
- Refactored Opus audio streaming code to have the code which interfaces with audio streaming manager in format-agnostic code (so I can use for AT9 streaming)
- Wrote an AT9 real-time decoder module (will be used in audio mixer)
- Enabled streaming on PS4 platform
- Refactored much of Ngs2 to be more in parity with our other platforms for real-time decoding (Significant changes to Ngs2Buffer)
- Added support for Ngs2 buffer callbacks for when audio needs to be fed to sources rather than pushing data from game thread
- Fixed A3D implementation: creating both a normal sampler rack and an A3D-specific sampler rack
- Fixed up error handling code in Ngs2 so it actually reports real errors
Change 3165997 on 2016/10/18 by Richard.Hinckley
Improving consistency of "New C++ Class" templates and fixing some shadow-variable issues.
Change 3166220 on 2016/10/18 by Aaron.McLeran
UE-37442 Build Tools Win64 completes with 28 errors
- Changing include of appropriate file to not be in #if WITH_ENGINE block
Change 3166262 on 2016/10/18 by Aaron.McLeran
UE-37441 Compile Ocean IOS, Compile FortniteClient Mac, Compile UE4Editor Mac complete with 11 errors
Fixing up the original wave format parsing code in Audio.cpp to avoid redefinitions. This code needs to be removed eventually in favor of the new wave format parser class.
Change 3166562 on 2016/10/18 by Aaron.McLeran
UE-37441 Fixing compile on Mac
- Renamed FFormatChunk to FRiffFormatChunk
Change 3166653 on 2016/10/18 by Aaron.McLeran
UE-37442 Build Tools Win64 completes with 28 errors
Change 3166917 on 2016/10/18 by Aaron.McLeran
UE-37502 Initializing missed data members in FNgs2SoundSource constructor
Change 3167329 on 2016/10/19 by Benn.Gallagher
Made wind properties editable on wind components, had to make the properties unsettable by blueprints and add setter functions so we can trigger render data updates from property updates.
#jira UE-37500
Change 3167575 on 2016/10/19 by Jon.Nabozny
#rn Fix UCharacterMovementComponent::OnTeleported improperly changing movement mode.
#jira UE-37082
Change 3168079 on 2016/10/19 by Ori.Cohen
Fix timing issue that causes snapshotpose to t-pose.
#JIRA UE-37476
Change 3168392 on 2016/10/19 by dan.reynolds
Updated AEOverviewMain with custom Attenuation FBXs to alleviate visual noise when observing complex attenuation shape falloff distances.
Change 3169121 on 2016/10/20 by danny.bouimad
Updates to Merge actor assets
Change 3169128 on 2016/10/20 by Danny.Bouimad
files
Change 3169230 on 2016/10/20 by Lina.Halper
#improved log message
Change 3169243 on 2016/10/20 by Ben.Zeigler
#jira UE-37515 Add UK2Node::ConvertDeprecatedNode which handles node-specific deprecation fixup.
Add code to automatically convert from make/break struct nodes to native call function if there is a native override.
This was hard coded for vector, etc but now works for any type that declares HasNativeMake/HasNativeBreak.
Add serialize override to K2Node that serializes struct defaults when gathering references while saving. References declared in literal struct pins were being skipped
Add specific fixups for GameplayTag make/break functions
Change 3169422 on 2016/10/20 by Aaron.McLeran
UE-37596 Making detail customizations and experimental setting for sound base showing audiomixer-only features
Change 3169620 on 2016/10/20 by Ben.Zeigler
Switch GameplayTagTests to use the new Custom test macro and better failure reporting.
Add TestTrueExpr macro that runs TestTrue with the expression as the display string, like how ensure works.
Change 3169622 on 2016/10/20 by Ben.Zeigler
Fix swapped HasAny logic and bad comments
Change 3169645 on 2016/10/20 by Aaron.McLeran
Re-adding call to Stop source
Change 3169664 on 2016/10/20 by dan.reynolds
AEOverviewMain Update - Fixed Menu bug where clicking the menu item after map reset resulted in requiring two attempts to actually reset the menu item properly. Menu Hit interaction is now much more responsive.
Change 3169997 on 2016/10/20 by Ben.Zeigler
Change from alloca to normal malloc, as static analysis doesn't like alloca in loops due to stack overflow danger
Change 3170796 on 2016/10/21 by Marc.Audy
PR #2878: Prevent 'XXX has natively added scene component' warning in commandlets (Contributed by slonopotamus)
#jira UE-37632
Change 3170802 on 2016/10/21 by Lina.Halper
#ANIM: curve can link to joints
- this allows to filter certain curves per LOD - when the joint is discarded
-> refactored editor object tracker to allow multiple per class
-> refactored so that bone reference supports both skeleton or mesh but make sure you don't access invalid function when using skeleton indices
- layer bone support
#jira: UEFW-207
Change 3170857 on 2016/10/21 by Aaron.McLeran
Disabling checking for device change
Change 3171101 on 2016/10/21 by Ben.Zeigler
Deprecate old gameplay tag functions in favor of new API that doesn't use the enums or module header
Add IsEmpty, Filter, FilterExact, and AddLeafTag to FGameplayTagContainer
Add RequestGameplayTag, MatchesTagDepth and GetGameplayTagParents to FGameplayTag
Remove MatchesEmpty parameter from tag asset interface. This defaulted to true but should now be explicitly checked with IsEmpty()
Engine fixups for those changes
Change 3171102 on 2016/10/21 by Ben.Zeigler
Internal game fixups for tag deprecation
Moved some fortnite tags into the global tag list and fixed fortnite cases. Confident in these changes
Fixed several weird tag uses in Orion. Dave and I should code review these changes as I was unsure on some of them
Some minor changes for Ocean
Change 3171186 on 2016/10/21 by Ben.Zeigler
File got missed in checkin
Change 3171239 on 2016/10/21 by Wes.Hunt
TPSAudit updates.
* Added /Verbose option that will print out the name of each file examined. Useful for debugging if a file was even checked.
* Don't skip Content folders
* Don't skip Engine\Documentation\HTML
* Skip any Content\Localization folders instead of only Engine\Content\Localization
* Skip any Content\Internationalization folders
* Skip .raw, .exr, .r16, .abc, .webm, .collection, .aac files.
* if a file has no extension (like configure files) then treat the filename as the extension
* configure files are treated like shell files
Change 3171245 on 2016/10/21 by Ben.Zeigler
Fix crash when saving nodes that reference properties from struct defaults. Switch FindImportedObject to be safe while saving, it will find existing objects but not load new ones.
I am not sure why StaticFindObject is unsafe during save.
Change 3171248 on 2016/10/21 by Wes.Hunt
TPSAudit: added /veryverbose which lists every file and directory excluded and the reason (file or dir exclusion). This makes the startup MUCH MUCH slower, so only use for debugging.
Change 3171256 on 2016/10/21 by Wes.Hunt
ModuleManager shutdown fixes.
* ShutdownModule is now called in reverse order to when StartupModule is FINISHED.
* This allows modules to reference dependencies in their StartupModule to ensure they are loaded, and be sure they will still be around in ShutdownModule.
* HTTPModule now shuts down in ShutdownModule and not PreUnloadCallback.
* Added comments to Module headers to indicate this new change in behavior.
* Removed manual startup of HTTP module in LaunchEngineLoop as it's no longer needed. Should save the module from being around if not really used by engine.
Change 3171258 on 2016/10/21 by Wes.Hunt
ModuleManager shutdown fixes.
* ShutdownModule is now called in reverse order to when StartupModule is FINISHED.
* This allows modules to reference dependencies in their StartupModule to ensure they are loaded, and be sure they will still be around in ShutdownModule.
* HTTPModule now shuts down in ShutdownModule and not PreUnloadCallback.
* Added comments to Module headers to indicate this new change in behavior.
* Removed manual startup of HTTP module in LaunchEngineLoop as it's no longer needed. Should save the module from being around if not really used by engine.
Change 3171946 on 2016/10/24 by Lina.Halper
Fix so that it checks all the joints before removing
Change 3172126 on 2016/10/24 by Lukasz.Furman
added navlink component
#ue4
Change 3172152 on 2016/10/24 by Jon.Nabozny
Remove UWorld::ComponentOverlapMulti indirection in UPrimitiveComponent::UpdateOverlaps.
UWorldComponentOverlapMulti is just a wrapper that verifies the component is valid, then calls UPrimitiveComponent::ComponentOverlapMulti.
#jira UE-36472
Change 3172364 on 2016/10/24 by Ben.Zeigler
Codereview fixes for tag changes.
Make Tag->Container constructor explicit to avoid bugs
Fix some cases that were using exact to allow parents instead
Change 3173442 on 2016/10/25 by Jon.Nabozny
Fixed crash when opening Anim asset after retargetting.
Change 3174123 on 2016/10/25 by Ben.Zeigler
Add some ini tag data to QAGame, it's now setup to import some from DataTable, and some from ini. This enables the full management UI.
Change 3174394 on 2016/10/25 by dan.reynolds
AEOverview update - added a Streaming Audio test which tests two streaming audio loops (one short, one long).
Change 3175197 on 2016/10/26 by Wes.Hunt
Fix OSS module startup to directly reference HTTP and XMPP as a dependency in StartupModule. This should make MCP startup/shutdown more robust.
#codereivew: sam.zamani,dmitry.rekman,josh.markiewicz
Change 3175236 on 2016/10/26 by Jon.Nabozny
Change FMath::SegmentDistToSegmentSafe to handle the case where either (or both) of the input segments create points.
Either segment may be considered a point if it's two points have a distance that's nearly 0.
#jira UE-19251
Change 3175256 on 2016/10/26 by Jon.Nabozny
Fix CIS for SegmentDistToSegmentSafe change.
Change 3175379 on 2016/10/26 by Jon.Nabozny
Change UCharacterMovementComponent::ApplyImpactPhysicsForces to use IsSimulatingPhysics(BoneName) instead of IsAnySimulatingPhysics on the hit component.
#jira UE-37582
Change 3175408 on 2016/10/26 by Marc.Audy
AudioThreading improvements:
Fix PS4 core 6 issue
Add timeout spam
Radical simplification
Fix suspension CVar
#authors Gil.Gribb/Marc.Audy
#jira OR-30447
Change 3175535 on 2016/10/26 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3175266
Change 3175539 on 2016/10/26 by Marc.Audy
Restore affinity for AudioThread and allow it on to 7th (rather than pinning it)
Change 3175631 on 2016/10/26 by Marc.Audy
Fix silly compile error
Change 3175639 on 2016/10/26 by Aaron.McLeran
Fixing audio device removal code
- Flipping active sources to virtual mode
- Handling initializing sources that have become virtual
- Not stopping sounds when device is unplugged
Change 3175665 on 2016/10/26 by dan.reynolds
AEOverview update - Added a Streaming Overview sub test (Streaming Spam)
Change 3175934 on 2016/10/26 by dan.reynolds
AEOverview Streaming Map Fix - fixed AEOverviewStreaming to avoid orphaning sounds when crossing the platforms
Change 3175941 on 2016/10/26 by Marc.Audy
Fix compiler error after merge from Main
Change 3176378 on 2016/10/27 by Jon.Nabozny
Add RotatorToAxisAndAngle function to KismetMath. We already expose RotatorFromAxisAndAngle, this is just the inverse operation.
Change 3176441 on 2016/10/27 by Jon.Nabozny
Fix another CIS issue with SegmentDistToSegmentSafe change.
Change 3176487 on 2016/10/27 by Jon.Nabozny
Hide DemoRecorder from the scoreboard in ShooterGame.
#jira UE-37492
Change 3176616 on 2016/10/27 by Lukasz.Furman
optimized behavior tree debugger update in subtrees
#jira UE-29029
Change 3176717 on 2016/10/27 by james.cobbett
Test asset for UE-37270
Change 3176731 on 2016/10/27 by dan.reynolds
AEOverview Streaming Spam map tweak--fixed STRMOverviewStreamSpam map so it now ensures reproduction on a specific edge case
Change 3176887 on 2016/10/27 by Aaron.McLeran
UE-37899 Failed Assertion when spamming PS4 Streaming Start/Stop
- Fix is to add critical sections to avoid stopping a Ngs2 source voice while it's in an OnBufferEnd callback
#tests Use Dan.Reynold's AEOverviewMain, load STRMOverviewStreamSpam map. will crash in half a second pre-fix, never crashes post-fix.
Change 3177053 on 2016/10/27 by Marc.Audy
Actually reattach previously attached actors when creating a child actor
#jira UE-37675
Change 3177113 on 2016/10/27 by Aaron.McLeran
UE-37906 Fixing stat sounds when the audio thread is enabled.
Change 3177536 on 2016/10/27 by Aaron.McLeran
Updating QASoundWaveProcedural to support stereo procedural sound wave generation.
Change 3177551 on 2016/10/27 by dan.reynolds
AEOverview update
- Tweaked AEOverviewSWP to support testing mono and stereo SoundWave Procedurals
- Added STRMOverviewStreamPriority to test Streaming Voice Priority
Change 3177819 on 2016/10/28 by Thomas.Sarkanen
Consolidated LOD screen size calculations
Static, skeletal and HLOD now use the same method of specifying LOD level at runtime.Namely "Screen Size". When the bounds of the objects sphere occupy half the max screen dimension, the screen size is 0.5 & all of the screen, 1.0.
HLOD still uses a distance based metric at runtime to choose when to switch clusters, so will still not switch LODs on FOV changes.
Conversion functions have been implemented to convert each of the legacy LOD specifications into the new unified version.
Conversion uses an assumption that the average case uses 1080p @ 90 degree FOV. This is necessary as previous screen sizes/areas were based around that resolution and we want the least perf regressions when at that resolution.
Auto LOD now uses the same functionality to determine what LOD thresholds to use.
#tests Verified that LODs switch at equivalent distances/sizes before and after this change for various assets.
#tests Verified that HLOD distance->screen size and inverse functions map correctly
#tests Ran Michael N's triangle count test before and after the changes with Paragon to verify rendered triangle counts do not vary with the new method
Change 3177996 on 2016/10/28 by Marc.Audy
Support play button on SoundCues as well as SoundWaves
Change 3178013 on 2016/10/28 by Marc.Audy
Allow previewing of force feedback effects from content browser
#jira UE-36388
Change 3178020 on 2016/10/28 by Lukasz.Furman
fixed navmesh wall segment calculations for crowds
#jira UE-37893
Change 3178096 on 2016/10/28 by Marc.Audy
Make ALevelSequenceActor::Tick call Super
#jira UE-37932
Change 3178247 on 2016/10/28 by Zak.Middleton
#ue4 - Crash fix when player is destroyed and server checks to see if it needs to force a network update. No repro steps in the bug but guarding against the crash is pretty straightforward.
UE-37902
Change 3178256 on 2016/10/28 by Zak.Middleton
#ue4 - Avoid crash when calling ACharacter::SetReplicateMovement when not on the server.
Change 3178263 on 2016/10/28 by Ben.Zeigler
Add support for a SearchableNameMap to the Linker and the Asset Registry. Call MarkSearchableName(TypeObject,Name) from a serialize function to register that an FName should be considered Searchable.
This change bumps the object version. Also fix it so the StringAssetReferencesMap does not get written out in editor builds
Clean up FLinker::Serialize, as it is no longer called except to get memory size
Add code to mark searchable names for GameplayTags, DataTableHandles, and CurveTableHandles.
Add FAssetIdentifier to the AssetRegistry that allows searching for Package.Object::Name. If Object/Name aren't specified PackageName will be used as it was before
UI Improvements to the reference viewer to support name references. Collapse the reference/dependency checkboxes, and add new checkboxes for SearchableNames and NativePackages, disabled by default
Remove bResolveIniStringReferences option from GetDepdendencies and handle that when parsing in the string asset reference table
Change 3178265 on 2016/10/28 by Ben.Zeigler
Move all ini settings for GameplayTags over to GameplayTagsSettings.h/GameplayTags.ini, instead of being in 3 different places.
Add metadata for the source of a gameplay tag and it's comment to the node, but only in editor builds
Change it so the default list and developer tags list are saved the same way as a list of structs. This will allow UI for selecting what tag list to save it into
The first time someone in the project modifies the GameplayTags project settings it will migrate these settings from the old locations. This will cause defaultEngine.ini to resave, which may wipe out comments
Migrate QAGame's tag config as a test
Change 3178266 on 2016/10/28 by Lina.Halper
Fix issue with anim editor sound play notify doesn't work with follow option
#jira: UE-37946
Change 3178441 on 2016/10/28 by Ben.Zeigler
Fix use of IsValid on names inside asset identifier to properly be a None check and add accessor to make use more clear
Change 3178443 on 2016/10/28 by Ben.Zeigler
Half migrated gameplay tag settings for internal games, will need full migration via the editor on their branches
Change 3178533 on 2016/10/28 by Ben.Zeigler
Build fix
Change 3178655 on 2016/10/28 by Ben.Zeigler
Build fix
Change 3178672 on 2016/10/28 by Lina.Halper
Unshelved from changelist '3164228':
PR #2867: Fixed for UE-15388 : Bones of uniformly scaled SkeletalMesh rotate incorrectly in Persona (Contributed by rarihoma)
#jira: UE-37372
Change 3178675 on 2016/10/28 by Ben.Zeigler
Crash fix if you have no defaultengine.ini redirects section
Change 3178698 on 2016/10/28 by Ben.Zeigler
#jira UE-37774 Fix issue with loading save games referencing UObjects not in memory, this broke in 4.13
Change 3178743 on 2016/10/28 by Lina.Halper
Fixed so that if no key, it clamps to 0.
#jira: UE-36790
Change 3179121 on 2016/10/28 by dan.reynolds
AEOverview tweaks
- updated Concurrency map to tighten up the audio playback (as in James C's feedback)
- tweaked some timers to be closer to real-time
Change 3179912 on 2016/10/31 by Mieszko.Zielinski
Removed unused piece of functionality from UEdGraphSchema_BehaviorTreeDecorator #UE4
Change 3179933 on 2016/10/31 by Lukasz.Furman
fixed missing update timers in avoidance manager
#ue4
Change 3180028 on 2016/10/31 by Ben.Zeigler
#jira UE-373993 Fix crash with bad default value for objects
Change 3180503 on 2016/10/31 by mason.seay
Test map for character spawning bug
Change 3180744 on 2016/10/31 by Ben.Zeigler
#jira UE-38025 Fix APlayerController:DisplayDebug to not make a bad copy of the debug display manager
Change 3180914 on 2016/10/31 by Ben.Zeigler
#jira UE-37773 Add hooks for deleting and renaming tags, untested pending UI support
Add handler for editing a gameplaytag asset from asset browser
Change 3181879 on 2016/11/01 by Marc.Audy
Rollback CL# 3169645 to resolve fortnite audio hitching when stopping sounds
#jira UE-38055
[CL 3182044 by Marc Audy in Main branch]
2016-11-01 15:50:29 -04:00
{
2020-06-23 18:40:00 -04:00
if ( ! StartSerializeSection ( PackageFileSummary . SearchableNamesOffset ) )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeSearchableNamesMapInvalidOffset " , PackageFilename ) ;
return false ;
}
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3182037)
#rb None
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2825716 on 2016/01/12 by Marc.Audy
Fix GrabDebugSnapshot virtual function definitions in Ocean
Change 2828462 on 2016/01/14 by Marc.Audy
Back out changelist 2825716
Change 3153526 on 2016/10/06 by Zak.Middleton
#ue4 - Fix CharacterMovement hanging on to a bad/penetrating floor check result and not continuing to check for a valid floor. Only occured if bAlwaysCheckFloor was false. This could in rare situations cause the character to continue to attempt to depenetrate an object far away from it until another floor check occured. To prevent this we now force a floor check after the depenetration.
Related to OR-14528.
Change 3153580 on 2016/10/06 by Benn.Gallagher
Skeletal LOD workflow refactor. Now we track source files for LODs to save time when reimporting LODs often. It's still possible to pick new files and overwrite the current settings.
#jira UE-36588
Change 3154264 on 2016/10/06 by Aaron.McLeran
UE-37004 UE-37005 Fixing stat soundwaves
Change 3154560 on 2016/10/07 by James.Golding
UE-20739 Fix auto box in Morph Target Preview panel
Change 3154776 on 2016/10/07 by Ben.Zeigler
#Fortnite Change the ability UI to use the Tag UI data instead of the Tag Categories, as Tag Categories were redundant and are being removed in the tag refactor. I'm not sure this code is actually in use any more.
Change 3154954 on 2016/10/07 by Ben.Zeigler
Move GameplayTagsEditor to a plugin, and change GameplayTagsManager to be accessed directly without the module load overhead, as it is part of the engine module set.
Performance improvements to GameplayTags to maintain a ParentTag list when tag containers get modified. It does a quick update on add, and a slow recompute on other changes. This leads to a 10x improvement in IncludeParent queries
Replace RemoveAllTags and RemoveAllTagsKeepSlack with Reset, which already existed but didnt work correctly.
Removed the Category map from gameplay tags, games are using other systems to do translateable text.
Significant internal changes to GameplayTagsManager, moved from 3 redundant maps to 1 map and removed unused functionality
Change 3154955 on 2016/10/07 by Ben.Zeigler
Game compile fixes for changes to GameplayTags module and API. Removed redundant calls to remove tags, TagContainer uses Reset() like other container types
Change 3154995 on 2016/10/07 by Aaron.McLeran
UE-37012 fix compile issue
Change 3155009 on 2016/10/07 by Aaron.McLeran
UE-37009 Ensure failed for FXAudio2SoundBuffer::Seek() in XAudio2Buffer.cpp
- Removing ensure and using if statement instead. It looks possible for decompression state to fail to be created, that state is logged elsewhere.
Change 3155128 on 2016/10/07 by Ben.Zeigler
Add old location of GameplayTagsEditor to junk manifest
Change 3155268 on 2016/10/07 by Aaron.McLeran
UE-37024 Set Sound Mix Class Override still Playing Sounds in Certain Conditions
Change 3155561 on 2016/10/07 by Ben.Zeigler
GameplayTag fixes made based on code review feedback:
Deprecate custom node for making a literal gameplay tag container and add proper make and break functions to the blueprint library
Remove direct access to the tag container internals as it has always been unsafe
Add many missing utility functions to the library and change things to pass FGameplayTag by value. TagContainers must still be passed by reference though as they are large
Fix case where comparing two containers with the tags in different orders would fail
Remove deprecated serialization entirely, print error when trying to load very old tags
Add RemoveAllTags and RemoveAllTagsKeepSlack back to container, but deprecate them
Change 3155842 on 2016/10/07 by dan.reynolds
AEOverview Update - Attenuation Shapes Test Map + Counting Test Assets
Change 3156779 on 2016/10/10 by Richard.Hinckley
Fixing/reordering comments for basic types.
Change 3156926 on 2016/10/10 by Ben.Zeigler
Remove deprecated gameplay ability system code involving non-BP gameplay effects and ActiveGameplayEffectQueries
Change 3156998 on 2016/10/10 by Jon.Nabozny
Include K2Node_BaseAsyncAction.h in K2Node_AsyncAction.h to fix compile issue.
Change 3158732 on 2016/10/11 by Zak.Middleton
#ue4 - Don't allow the first move in SafeMoveUpdatedComponent() to ignore penetration when slowly moving out of an object. We really want to pop out completely using the MTD as fast as possible or we can fall through the object in a longer direction.
#jira UE-28610
Change 3159208 on 2016/10/11 by dan.reynolds
Added ancillary SoundClass Passive Mix Modifier Duration Test map
Change 3159211 on 2016/10/11 by Aaron.McLeran
UE-37193 Fixing passive sound mix modifier
Change 3159278 on 2016/10/11 by dan.reynolds
AEOverviewMain integration with the SCO Passive Mix Modifier Duration Test map for additional testing purposes.
Also tweaks and clean-up of SCOverviewPassMixModDuration map and associated Platform_Blueprint
Change 3159596 on 2016/10/12 by danny.bouimad
Updates to TM-Meshbake
Change 3159629 on 2016/10/12 by James.Golding
Add ModifyCurve anim node
Make GetPinAssociatedProperty const correct
Change 3159705 on 2016/10/12 by James.Golding
Add 'ApplyMode' and 'Alpha' options to ModifyCurve node
Change 3159959 on 2016/10/12 by John.Abercrombie
Integrate CL 3159892 from //Fortnite/Main/...
Fixed the Blackboard component pausing but never being unpaused if we ended up restarting the Behavior Tree instead of continuing
#ue4
Change 3160014 on 2016/10/12 by Lukasz.Furman
pass on gameplay debugger in Simulate in Editor mode
#jira UE-36123
Change 3160027 on 2016/10/12 by Lukasz.Furman
fixed behavior tree task restart conditions
copy of CL 3159145
#ue4
Change 3160129 on 2016/10/12 by Lukasz.Furman
gameplay debugger refactor: removed deprecated code
#ue4
Change 3160389 on 2016/10/12 by Lukasz.Furman
added missing include path to gameplay debugger module
#ue4
Change 3160408 on 2016/10/12 by Lukasz.Furman
refactored sanity checks in gameplay debugger EdMode to keep static analysis happy
#ue4
Change 3161143 on 2016/10/13 by James.Golding
UE-37208 UE-37207 Fix AnimNode_ModifyCruve CIS error
Change 3161227 on 2016/10/13 by danny.bouimad
More changes to meshmergemap
Change 3161777 on 2016/10/13 by Ben.Zeigler
API changes for GameplayTag and Container, and fix Redirect loading
Remove Match type and empty count as match bool from common API
In C++ use MatchTag/MatchAny/HasTag/HasAny/HasAll with *Exact variants for exact matching. Old C++ API is still there but I will deprecate and remove soon
In Blueprint use MatchTag/MatchAny/HasTag/HasAny/HasAll with bool parameter for as the bool is more clear. I was able to convert old functions to new ones as no one was overriding the options I removed
Undeprecate the old make literal node and temporarily set GameplayTags in container to be editable. We're not allowed to deprecate things until our internal games fix their usage.
Change 3162095 on 2016/10/13 by Jon.Nabozny
Fix bad default screen resolution in Platformer Game.
#jira UE-34901
Change 3163351 on 2016/10/14 by Marc.Audy
Avoid duplicate accessor calls
Change 3163364 on 2016/10/14 by Marc.Audy
Eliminate auto
Use ForEachObjectWithOuter
Change 3163367 on 2016/10/14 by Marc.Audy
Use ForEachObjectWithOuter instead of GetObjectsWithOuter
Change 3163500 on 2016/10/14 by Marc.Audy
When using SetCullDistance property for static meshes correctly update the cached value
#jira UE-36891
Change 3163674 on 2016/10/14 by Jon.Nabozny
#rn Fix popping in OnRep_ReplicatedAnimMontage.
#jira UE-37056
Change 3164818 on 2016/10/17 by Ori.Cohen
Added a pose snapshot feature that allows users to convert an existing skeletal mesh pose into a node inside the anim blueprint. This is useful for things like getup from ragdoll.
Change 3164903 on 2016/10/17 by Lukasz.Furman
fixed bug in merging behavior tree searches
#ue4
Change 3165236 on 2016/10/17 by dan.reynolds
Fixes and tweaks based on feedback:
- Made most objects Stationary to assist in dynamic lighting changes as sub-levels have unknown orientation until load
- Fixed Blueprint Control map to stop test when the player leaves the zone
- Fixed Blueprint Contorl map typos
Change 3165323 on 2016/10/17 by Aaron.McLeran
PS4 Audio Streaming
- Refactored Opus audio streaming code to have the code which interfaces with audio streaming manager in format-agnostic code (so I can use for AT9 streaming)
- Wrote an AT9 real-time decoder module (will be used in audio mixer)
- Enabled streaming on PS4 platform
- Refactored much of Ngs2 to be more in parity with our other platforms for real-time decoding (Significant changes to Ngs2Buffer)
- Added support for Ngs2 buffer callbacks for when audio needs to be fed to sources rather than pushing data from game thread
- Fixed A3D implementation: creating both a normal sampler rack and an A3D-specific sampler rack
- Fixed up error handling code in Ngs2 so it actually reports real errors
Change 3165997 on 2016/10/18 by Richard.Hinckley
Improving consistency of "New C++ Class" templates and fixing some shadow-variable issues.
Change 3166220 on 2016/10/18 by Aaron.McLeran
UE-37442 Build Tools Win64 completes with 28 errors
- Changing include of appropriate file to not be in #if WITH_ENGINE block
Change 3166262 on 2016/10/18 by Aaron.McLeran
UE-37441 Compile Ocean IOS, Compile FortniteClient Mac, Compile UE4Editor Mac complete with 11 errors
Fixing up the original wave format parsing code in Audio.cpp to avoid redefinitions. This code needs to be removed eventually in favor of the new wave format parser class.
Change 3166562 on 2016/10/18 by Aaron.McLeran
UE-37441 Fixing compile on Mac
- Renamed FFormatChunk to FRiffFormatChunk
Change 3166653 on 2016/10/18 by Aaron.McLeran
UE-37442 Build Tools Win64 completes with 28 errors
Change 3166917 on 2016/10/18 by Aaron.McLeran
UE-37502 Initializing missed data members in FNgs2SoundSource constructor
Change 3167329 on 2016/10/19 by Benn.Gallagher
Made wind properties editable on wind components, had to make the properties unsettable by blueprints and add setter functions so we can trigger render data updates from property updates.
#jira UE-37500
Change 3167575 on 2016/10/19 by Jon.Nabozny
#rn Fix UCharacterMovementComponent::OnTeleported improperly changing movement mode.
#jira UE-37082
Change 3168079 on 2016/10/19 by Ori.Cohen
Fix timing issue that causes snapshotpose to t-pose.
#JIRA UE-37476
Change 3168392 on 2016/10/19 by dan.reynolds
Updated AEOverviewMain with custom Attenuation FBXs to alleviate visual noise when observing complex attenuation shape falloff distances.
Change 3169121 on 2016/10/20 by danny.bouimad
Updates to Merge actor assets
Change 3169128 on 2016/10/20 by Danny.Bouimad
files
Change 3169230 on 2016/10/20 by Lina.Halper
#improved log message
Change 3169243 on 2016/10/20 by Ben.Zeigler
#jira UE-37515 Add UK2Node::ConvertDeprecatedNode which handles node-specific deprecation fixup.
Add code to automatically convert from make/break struct nodes to native call function if there is a native override.
This was hard coded for vector, etc but now works for any type that declares HasNativeMake/HasNativeBreak.
Add serialize override to K2Node that serializes struct defaults when gathering references while saving. References declared in literal struct pins were being skipped
Add specific fixups for GameplayTag make/break functions
Change 3169422 on 2016/10/20 by Aaron.McLeran
UE-37596 Making detail customizations and experimental setting for sound base showing audiomixer-only features
Change 3169620 on 2016/10/20 by Ben.Zeigler
Switch GameplayTagTests to use the new Custom test macro and better failure reporting.
Add TestTrueExpr macro that runs TestTrue with the expression as the display string, like how ensure works.
Change 3169622 on 2016/10/20 by Ben.Zeigler
Fix swapped HasAny logic and bad comments
Change 3169645 on 2016/10/20 by Aaron.McLeran
Re-adding call to Stop source
Change 3169664 on 2016/10/20 by dan.reynolds
AEOverviewMain Update - Fixed Menu bug where clicking the menu item after map reset resulted in requiring two attempts to actually reset the menu item properly. Menu Hit interaction is now much more responsive.
Change 3169997 on 2016/10/20 by Ben.Zeigler
Change from alloca to normal malloc, as static analysis doesn't like alloca in loops due to stack overflow danger
Change 3170796 on 2016/10/21 by Marc.Audy
PR #2878: Prevent 'XXX has natively added scene component' warning in commandlets (Contributed by slonopotamus)
#jira UE-37632
Change 3170802 on 2016/10/21 by Lina.Halper
#ANIM: curve can link to joints
- this allows to filter certain curves per LOD - when the joint is discarded
-> refactored editor object tracker to allow multiple per class
-> refactored so that bone reference supports both skeleton or mesh but make sure you don't access invalid function when using skeleton indices
- layer bone support
#jira: UEFW-207
Change 3170857 on 2016/10/21 by Aaron.McLeran
Disabling checking for device change
Change 3171101 on 2016/10/21 by Ben.Zeigler
Deprecate old gameplay tag functions in favor of new API that doesn't use the enums or module header
Add IsEmpty, Filter, FilterExact, and AddLeafTag to FGameplayTagContainer
Add RequestGameplayTag, MatchesTagDepth and GetGameplayTagParents to FGameplayTag
Remove MatchesEmpty parameter from tag asset interface. This defaulted to true but should now be explicitly checked with IsEmpty()
Engine fixups for those changes
Change 3171102 on 2016/10/21 by Ben.Zeigler
Internal game fixups for tag deprecation
Moved some fortnite tags into the global tag list and fixed fortnite cases. Confident in these changes
Fixed several weird tag uses in Orion. Dave and I should code review these changes as I was unsure on some of them
Some minor changes for Ocean
Change 3171186 on 2016/10/21 by Ben.Zeigler
File got missed in checkin
Change 3171239 on 2016/10/21 by Wes.Hunt
TPSAudit updates.
* Added /Verbose option that will print out the name of each file examined. Useful for debugging if a file was even checked.
* Don't skip Content folders
* Don't skip Engine\Documentation\HTML
* Skip any Content\Localization folders instead of only Engine\Content\Localization
* Skip any Content\Internationalization folders
* Skip .raw, .exr, .r16, .abc, .webm, .collection, .aac files.
* if a file has no extension (like configure files) then treat the filename as the extension
* configure files are treated like shell files
Change 3171245 on 2016/10/21 by Ben.Zeigler
Fix crash when saving nodes that reference properties from struct defaults. Switch FindImportedObject to be safe while saving, it will find existing objects but not load new ones.
I am not sure why StaticFindObject is unsafe during save.
Change 3171248 on 2016/10/21 by Wes.Hunt
TPSAudit: added /veryverbose which lists every file and directory excluded and the reason (file or dir exclusion). This makes the startup MUCH MUCH slower, so only use for debugging.
Change 3171256 on 2016/10/21 by Wes.Hunt
ModuleManager shutdown fixes.
* ShutdownModule is now called in reverse order to when StartupModule is FINISHED.
* This allows modules to reference dependencies in their StartupModule to ensure they are loaded, and be sure they will still be around in ShutdownModule.
* HTTPModule now shuts down in ShutdownModule and not PreUnloadCallback.
* Added comments to Module headers to indicate this new change in behavior.
* Removed manual startup of HTTP module in LaunchEngineLoop as it's no longer needed. Should save the module from being around if not really used by engine.
Change 3171258 on 2016/10/21 by Wes.Hunt
ModuleManager shutdown fixes.
* ShutdownModule is now called in reverse order to when StartupModule is FINISHED.
* This allows modules to reference dependencies in their StartupModule to ensure they are loaded, and be sure they will still be around in ShutdownModule.
* HTTPModule now shuts down in ShutdownModule and not PreUnloadCallback.
* Added comments to Module headers to indicate this new change in behavior.
* Removed manual startup of HTTP module in LaunchEngineLoop as it's no longer needed. Should save the module from being around if not really used by engine.
Change 3171946 on 2016/10/24 by Lina.Halper
Fix so that it checks all the joints before removing
Change 3172126 on 2016/10/24 by Lukasz.Furman
added navlink component
#ue4
Change 3172152 on 2016/10/24 by Jon.Nabozny
Remove UWorld::ComponentOverlapMulti indirection in UPrimitiveComponent::UpdateOverlaps.
UWorldComponentOverlapMulti is just a wrapper that verifies the component is valid, then calls UPrimitiveComponent::ComponentOverlapMulti.
#jira UE-36472
Change 3172364 on 2016/10/24 by Ben.Zeigler
Codereview fixes for tag changes.
Make Tag->Container constructor explicit to avoid bugs
Fix some cases that were using exact to allow parents instead
Change 3173442 on 2016/10/25 by Jon.Nabozny
Fixed crash when opening Anim asset after retargetting.
Change 3174123 on 2016/10/25 by Ben.Zeigler
Add some ini tag data to QAGame, it's now setup to import some from DataTable, and some from ini. This enables the full management UI.
Change 3174394 on 2016/10/25 by dan.reynolds
AEOverview update - added a Streaming Audio test which tests two streaming audio loops (one short, one long).
Change 3175197 on 2016/10/26 by Wes.Hunt
Fix OSS module startup to directly reference HTTP and XMPP as a dependency in StartupModule. This should make MCP startup/shutdown more robust.
#codereivew: sam.zamani,dmitry.rekman,josh.markiewicz
Change 3175236 on 2016/10/26 by Jon.Nabozny
Change FMath::SegmentDistToSegmentSafe to handle the case where either (or both) of the input segments create points.
Either segment may be considered a point if it's two points have a distance that's nearly 0.
#jira UE-19251
Change 3175256 on 2016/10/26 by Jon.Nabozny
Fix CIS for SegmentDistToSegmentSafe change.
Change 3175379 on 2016/10/26 by Jon.Nabozny
Change UCharacterMovementComponent::ApplyImpactPhysicsForces to use IsSimulatingPhysics(BoneName) instead of IsAnySimulatingPhysics on the hit component.
#jira UE-37582
Change 3175408 on 2016/10/26 by Marc.Audy
AudioThreading improvements:
Fix PS4 core 6 issue
Add timeout spam
Radical simplification
Fix suspension CVar
#authors Gil.Gribb/Marc.Audy
#jira OR-30447
Change 3175535 on 2016/10/26 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3175266
Change 3175539 on 2016/10/26 by Marc.Audy
Restore affinity for AudioThread and allow it on to 7th (rather than pinning it)
Change 3175631 on 2016/10/26 by Marc.Audy
Fix silly compile error
Change 3175639 on 2016/10/26 by Aaron.McLeran
Fixing audio device removal code
- Flipping active sources to virtual mode
- Handling initializing sources that have become virtual
- Not stopping sounds when device is unplugged
Change 3175665 on 2016/10/26 by dan.reynolds
AEOverview update - Added a Streaming Overview sub test (Streaming Spam)
Change 3175934 on 2016/10/26 by dan.reynolds
AEOverview Streaming Map Fix - fixed AEOverviewStreaming to avoid orphaning sounds when crossing the platforms
Change 3175941 on 2016/10/26 by Marc.Audy
Fix compiler error after merge from Main
Change 3176378 on 2016/10/27 by Jon.Nabozny
Add RotatorToAxisAndAngle function to KismetMath. We already expose RotatorFromAxisAndAngle, this is just the inverse operation.
Change 3176441 on 2016/10/27 by Jon.Nabozny
Fix another CIS issue with SegmentDistToSegmentSafe change.
Change 3176487 on 2016/10/27 by Jon.Nabozny
Hide DemoRecorder from the scoreboard in ShooterGame.
#jira UE-37492
Change 3176616 on 2016/10/27 by Lukasz.Furman
optimized behavior tree debugger update in subtrees
#jira UE-29029
Change 3176717 on 2016/10/27 by james.cobbett
Test asset for UE-37270
Change 3176731 on 2016/10/27 by dan.reynolds
AEOverview Streaming Spam map tweak--fixed STRMOverviewStreamSpam map so it now ensures reproduction on a specific edge case
Change 3176887 on 2016/10/27 by Aaron.McLeran
UE-37899 Failed Assertion when spamming PS4 Streaming Start/Stop
- Fix is to add critical sections to avoid stopping a Ngs2 source voice while it's in an OnBufferEnd callback
#tests Use Dan.Reynold's AEOverviewMain, load STRMOverviewStreamSpam map. will crash in half a second pre-fix, never crashes post-fix.
Change 3177053 on 2016/10/27 by Marc.Audy
Actually reattach previously attached actors when creating a child actor
#jira UE-37675
Change 3177113 on 2016/10/27 by Aaron.McLeran
UE-37906 Fixing stat sounds when the audio thread is enabled.
Change 3177536 on 2016/10/27 by Aaron.McLeran
Updating QASoundWaveProcedural to support stereo procedural sound wave generation.
Change 3177551 on 2016/10/27 by dan.reynolds
AEOverview update
- Tweaked AEOverviewSWP to support testing mono and stereo SoundWave Procedurals
- Added STRMOverviewStreamPriority to test Streaming Voice Priority
Change 3177819 on 2016/10/28 by Thomas.Sarkanen
Consolidated LOD screen size calculations
Static, skeletal and HLOD now use the same method of specifying LOD level at runtime.Namely "Screen Size". When the bounds of the objects sphere occupy half the max screen dimension, the screen size is 0.5 & all of the screen, 1.0.
HLOD still uses a distance based metric at runtime to choose when to switch clusters, so will still not switch LODs on FOV changes.
Conversion functions have been implemented to convert each of the legacy LOD specifications into the new unified version.
Conversion uses an assumption that the average case uses 1080p @ 90 degree FOV. This is necessary as previous screen sizes/areas were based around that resolution and we want the least perf regressions when at that resolution.
Auto LOD now uses the same functionality to determine what LOD thresholds to use.
#tests Verified that LODs switch at equivalent distances/sizes before and after this change for various assets.
#tests Verified that HLOD distance->screen size and inverse functions map correctly
#tests Ran Michael N's triangle count test before and after the changes with Paragon to verify rendered triangle counts do not vary with the new method
Change 3177996 on 2016/10/28 by Marc.Audy
Support play button on SoundCues as well as SoundWaves
Change 3178013 on 2016/10/28 by Marc.Audy
Allow previewing of force feedback effects from content browser
#jira UE-36388
Change 3178020 on 2016/10/28 by Lukasz.Furman
fixed navmesh wall segment calculations for crowds
#jira UE-37893
Change 3178096 on 2016/10/28 by Marc.Audy
Make ALevelSequenceActor::Tick call Super
#jira UE-37932
Change 3178247 on 2016/10/28 by Zak.Middleton
#ue4 - Crash fix when player is destroyed and server checks to see if it needs to force a network update. No repro steps in the bug but guarding against the crash is pretty straightforward.
UE-37902
Change 3178256 on 2016/10/28 by Zak.Middleton
#ue4 - Avoid crash when calling ACharacter::SetReplicateMovement when not on the server.
Change 3178263 on 2016/10/28 by Ben.Zeigler
Add support for a SearchableNameMap to the Linker and the Asset Registry. Call MarkSearchableName(TypeObject,Name) from a serialize function to register that an FName should be considered Searchable.
This change bumps the object version. Also fix it so the StringAssetReferencesMap does not get written out in editor builds
Clean up FLinker::Serialize, as it is no longer called except to get memory size
Add code to mark searchable names for GameplayTags, DataTableHandles, and CurveTableHandles.
Add FAssetIdentifier to the AssetRegistry that allows searching for Package.Object::Name. If Object/Name aren't specified PackageName will be used as it was before
UI Improvements to the reference viewer to support name references. Collapse the reference/dependency checkboxes, and add new checkboxes for SearchableNames and NativePackages, disabled by default
Remove bResolveIniStringReferences option from GetDepdendencies and handle that when parsing in the string asset reference table
Change 3178265 on 2016/10/28 by Ben.Zeigler
Move all ini settings for GameplayTags over to GameplayTagsSettings.h/GameplayTags.ini, instead of being in 3 different places.
Add metadata for the source of a gameplay tag and it's comment to the node, but only in editor builds
Change it so the default list and developer tags list are saved the same way as a list of structs. This will allow UI for selecting what tag list to save it into
The first time someone in the project modifies the GameplayTags project settings it will migrate these settings from the old locations. This will cause defaultEngine.ini to resave, which may wipe out comments
Migrate QAGame's tag config as a test
Change 3178266 on 2016/10/28 by Lina.Halper
Fix issue with anim editor sound play notify doesn't work with follow option
#jira: UE-37946
Change 3178441 on 2016/10/28 by Ben.Zeigler
Fix use of IsValid on names inside asset identifier to properly be a None check and add accessor to make use more clear
Change 3178443 on 2016/10/28 by Ben.Zeigler
Half migrated gameplay tag settings for internal games, will need full migration via the editor on their branches
Change 3178533 on 2016/10/28 by Ben.Zeigler
Build fix
Change 3178655 on 2016/10/28 by Ben.Zeigler
Build fix
Change 3178672 on 2016/10/28 by Lina.Halper
Unshelved from changelist '3164228':
PR #2867: Fixed for UE-15388 : Bones of uniformly scaled SkeletalMesh rotate incorrectly in Persona (Contributed by rarihoma)
#jira: UE-37372
Change 3178675 on 2016/10/28 by Ben.Zeigler
Crash fix if you have no defaultengine.ini redirects section
Change 3178698 on 2016/10/28 by Ben.Zeigler
#jira UE-37774 Fix issue with loading save games referencing UObjects not in memory, this broke in 4.13
Change 3178743 on 2016/10/28 by Lina.Halper
Fixed so that if no key, it clamps to 0.
#jira: UE-36790
Change 3179121 on 2016/10/28 by dan.reynolds
AEOverview tweaks
- updated Concurrency map to tighten up the audio playback (as in James C's feedback)
- tweaked some timers to be closer to real-time
Change 3179912 on 2016/10/31 by Mieszko.Zielinski
Removed unused piece of functionality from UEdGraphSchema_BehaviorTreeDecorator #UE4
Change 3179933 on 2016/10/31 by Lukasz.Furman
fixed missing update timers in avoidance manager
#ue4
Change 3180028 on 2016/10/31 by Ben.Zeigler
#jira UE-373993 Fix crash with bad default value for objects
Change 3180503 on 2016/10/31 by mason.seay
Test map for character spawning bug
Change 3180744 on 2016/10/31 by Ben.Zeigler
#jira UE-38025 Fix APlayerController:DisplayDebug to not make a bad copy of the debug display manager
Change 3180914 on 2016/10/31 by Ben.Zeigler
#jira UE-37773 Add hooks for deleting and renaming tags, untested pending UI support
Add handler for editing a gameplaytag asset from asset browser
Change 3181879 on 2016/11/01 by Marc.Audy
Rollback CL# 3169645 to resolve fortnite audio hitching when stopping sounds
#jira UE-38055
[CL 3182044 by Marc Audy in Main branch]
2016-11-01 15:50:29 -04:00
2022-03-31 09:16:55 -04:00
OutSearchableNames . SerializeSearchableNamesMap ( * this ) ;
2020-06-23 18:40:00 -04:00
if ( IsError ( ) )
{
UE_PACKAGEREADER_CORRUPTPACKAGE_WARNING ( " SerializeSearchableNamesMapInvalidSearchableNamesMap " , PackageFilename ) ;
return false ;
}
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3182037)
#rb None
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2825716 on 2016/01/12 by Marc.Audy
Fix GrabDebugSnapshot virtual function definitions in Ocean
Change 2828462 on 2016/01/14 by Marc.Audy
Back out changelist 2825716
Change 3153526 on 2016/10/06 by Zak.Middleton
#ue4 - Fix CharacterMovement hanging on to a bad/penetrating floor check result and not continuing to check for a valid floor. Only occured if bAlwaysCheckFloor was false. This could in rare situations cause the character to continue to attempt to depenetrate an object far away from it until another floor check occured. To prevent this we now force a floor check after the depenetration.
Related to OR-14528.
Change 3153580 on 2016/10/06 by Benn.Gallagher
Skeletal LOD workflow refactor. Now we track source files for LODs to save time when reimporting LODs often. It's still possible to pick new files and overwrite the current settings.
#jira UE-36588
Change 3154264 on 2016/10/06 by Aaron.McLeran
UE-37004 UE-37005 Fixing stat soundwaves
Change 3154560 on 2016/10/07 by James.Golding
UE-20739 Fix auto box in Morph Target Preview panel
Change 3154776 on 2016/10/07 by Ben.Zeigler
#Fortnite Change the ability UI to use the Tag UI data instead of the Tag Categories, as Tag Categories were redundant and are being removed in the tag refactor. I'm not sure this code is actually in use any more.
Change 3154954 on 2016/10/07 by Ben.Zeigler
Move GameplayTagsEditor to a plugin, and change GameplayTagsManager to be accessed directly without the module load overhead, as it is part of the engine module set.
Performance improvements to GameplayTags to maintain a ParentTag list when tag containers get modified. It does a quick update on add, and a slow recompute on other changes. This leads to a 10x improvement in IncludeParent queries
Replace RemoveAllTags and RemoveAllTagsKeepSlack with Reset, which already existed but didnt work correctly.
Removed the Category map from gameplay tags, games are using other systems to do translateable text.
Significant internal changes to GameplayTagsManager, moved from 3 redundant maps to 1 map and removed unused functionality
Change 3154955 on 2016/10/07 by Ben.Zeigler
Game compile fixes for changes to GameplayTags module and API. Removed redundant calls to remove tags, TagContainer uses Reset() like other container types
Change 3154995 on 2016/10/07 by Aaron.McLeran
UE-37012 fix compile issue
Change 3155009 on 2016/10/07 by Aaron.McLeran
UE-37009 Ensure failed for FXAudio2SoundBuffer::Seek() in XAudio2Buffer.cpp
- Removing ensure and using if statement instead. It looks possible for decompression state to fail to be created, that state is logged elsewhere.
Change 3155128 on 2016/10/07 by Ben.Zeigler
Add old location of GameplayTagsEditor to junk manifest
Change 3155268 on 2016/10/07 by Aaron.McLeran
UE-37024 Set Sound Mix Class Override still Playing Sounds in Certain Conditions
Change 3155561 on 2016/10/07 by Ben.Zeigler
GameplayTag fixes made based on code review feedback:
Deprecate custom node for making a literal gameplay tag container and add proper make and break functions to the blueprint library
Remove direct access to the tag container internals as it has always been unsafe
Add many missing utility functions to the library and change things to pass FGameplayTag by value. TagContainers must still be passed by reference though as they are large
Fix case where comparing two containers with the tags in different orders would fail
Remove deprecated serialization entirely, print error when trying to load very old tags
Add RemoveAllTags and RemoveAllTagsKeepSlack back to container, but deprecate them
Change 3155842 on 2016/10/07 by dan.reynolds
AEOverview Update - Attenuation Shapes Test Map + Counting Test Assets
Change 3156779 on 2016/10/10 by Richard.Hinckley
Fixing/reordering comments for basic types.
Change 3156926 on 2016/10/10 by Ben.Zeigler
Remove deprecated gameplay ability system code involving non-BP gameplay effects and ActiveGameplayEffectQueries
Change 3156998 on 2016/10/10 by Jon.Nabozny
Include K2Node_BaseAsyncAction.h in K2Node_AsyncAction.h to fix compile issue.
Change 3158732 on 2016/10/11 by Zak.Middleton
#ue4 - Don't allow the first move in SafeMoveUpdatedComponent() to ignore penetration when slowly moving out of an object. We really want to pop out completely using the MTD as fast as possible or we can fall through the object in a longer direction.
#jira UE-28610
Change 3159208 on 2016/10/11 by dan.reynolds
Added ancillary SoundClass Passive Mix Modifier Duration Test map
Change 3159211 on 2016/10/11 by Aaron.McLeran
UE-37193 Fixing passive sound mix modifier
Change 3159278 on 2016/10/11 by dan.reynolds
AEOverviewMain integration with the SCO Passive Mix Modifier Duration Test map for additional testing purposes.
Also tweaks and clean-up of SCOverviewPassMixModDuration map and associated Platform_Blueprint
Change 3159596 on 2016/10/12 by danny.bouimad
Updates to TM-Meshbake
Change 3159629 on 2016/10/12 by James.Golding
Add ModifyCurve anim node
Make GetPinAssociatedProperty const correct
Change 3159705 on 2016/10/12 by James.Golding
Add 'ApplyMode' and 'Alpha' options to ModifyCurve node
Change 3159959 on 2016/10/12 by John.Abercrombie
Integrate CL 3159892 from //Fortnite/Main/...
Fixed the Blackboard component pausing but never being unpaused if we ended up restarting the Behavior Tree instead of continuing
#ue4
Change 3160014 on 2016/10/12 by Lukasz.Furman
pass on gameplay debugger in Simulate in Editor mode
#jira UE-36123
Change 3160027 on 2016/10/12 by Lukasz.Furman
fixed behavior tree task restart conditions
copy of CL 3159145
#ue4
Change 3160129 on 2016/10/12 by Lukasz.Furman
gameplay debugger refactor: removed deprecated code
#ue4
Change 3160389 on 2016/10/12 by Lukasz.Furman
added missing include path to gameplay debugger module
#ue4
Change 3160408 on 2016/10/12 by Lukasz.Furman
refactored sanity checks in gameplay debugger EdMode to keep static analysis happy
#ue4
Change 3161143 on 2016/10/13 by James.Golding
UE-37208 UE-37207 Fix AnimNode_ModifyCruve CIS error
Change 3161227 on 2016/10/13 by danny.bouimad
More changes to meshmergemap
Change 3161777 on 2016/10/13 by Ben.Zeigler
API changes for GameplayTag and Container, and fix Redirect loading
Remove Match type and empty count as match bool from common API
In C++ use MatchTag/MatchAny/HasTag/HasAny/HasAll with *Exact variants for exact matching. Old C++ API is still there but I will deprecate and remove soon
In Blueprint use MatchTag/MatchAny/HasTag/HasAny/HasAll with bool parameter for as the bool is more clear. I was able to convert old functions to new ones as no one was overriding the options I removed
Undeprecate the old make literal node and temporarily set GameplayTags in container to be editable. We're not allowed to deprecate things until our internal games fix their usage.
Change 3162095 on 2016/10/13 by Jon.Nabozny
Fix bad default screen resolution in Platformer Game.
#jira UE-34901
Change 3163351 on 2016/10/14 by Marc.Audy
Avoid duplicate accessor calls
Change 3163364 on 2016/10/14 by Marc.Audy
Eliminate auto
Use ForEachObjectWithOuter
Change 3163367 on 2016/10/14 by Marc.Audy
Use ForEachObjectWithOuter instead of GetObjectsWithOuter
Change 3163500 on 2016/10/14 by Marc.Audy
When using SetCullDistance property for static meshes correctly update the cached value
#jira UE-36891
Change 3163674 on 2016/10/14 by Jon.Nabozny
#rn Fix popping in OnRep_ReplicatedAnimMontage.
#jira UE-37056
Change 3164818 on 2016/10/17 by Ori.Cohen
Added a pose snapshot feature that allows users to convert an existing skeletal mesh pose into a node inside the anim blueprint. This is useful for things like getup from ragdoll.
Change 3164903 on 2016/10/17 by Lukasz.Furman
fixed bug in merging behavior tree searches
#ue4
Change 3165236 on 2016/10/17 by dan.reynolds
Fixes and tweaks based on feedback:
- Made most objects Stationary to assist in dynamic lighting changes as sub-levels have unknown orientation until load
- Fixed Blueprint Control map to stop test when the player leaves the zone
- Fixed Blueprint Contorl map typos
Change 3165323 on 2016/10/17 by Aaron.McLeran
PS4 Audio Streaming
- Refactored Opus audio streaming code to have the code which interfaces with audio streaming manager in format-agnostic code (so I can use for AT9 streaming)
- Wrote an AT9 real-time decoder module (will be used in audio mixer)
- Enabled streaming on PS4 platform
- Refactored much of Ngs2 to be more in parity with our other platforms for real-time decoding (Significant changes to Ngs2Buffer)
- Added support for Ngs2 buffer callbacks for when audio needs to be fed to sources rather than pushing data from game thread
- Fixed A3D implementation: creating both a normal sampler rack and an A3D-specific sampler rack
- Fixed up error handling code in Ngs2 so it actually reports real errors
Change 3165997 on 2016/10/18 by Richard.Hinckley
Improving consistency of "New C++ Class" templates and fixing some shadow-variable issues.
Change 3166220 on 2016/10/18 by Aaron.McLeran
UE-37442 Build Tools Win64 completes with 28 errors
- Changing include of appropriate file to not be in #if WITH_ENGINE block
Change 3166262 on 2016/10/18 by Aaron.McLeran
UE-37441 Compile Ocean IOS, Compile FortniteClient Mac, Compile UE4Editor Mac complete with 11 errors
Fixing up the original wave format parsing code in Audio.cpp to avoid redefinitions. This code needs to be removed eventually in favor of the new wave format parser class.
Change 3166562 on 2016/10/18 by Aaron.McLeran
UE-37441 Fixing compile on Mac
- Renamed FFormatChunk to FRiffFormatChunk
Change 3166653 on 2016/10/18 by Aaron.McLeran
UE-37442 Build Tools Win64 completes with 28 errors
Change 3166917 on 2016/10/18 by Aaron.McLeran
UE-37502 Initializing missed data members in FNgs2SoundSource constructor
Change 3167329 on 2016/10/19 by Benn.Gallagher
Made wind properties editable on wind components, had to make the properties unsettable by blueprints and add setter functions so we can trigger render data updates from property updates.
#jira UE-37500
Change 3167575 on 2016/10/19 by Jon.Nabozny
#rn Fix UCharacterMovementComponent::OnTeleported improperly changing movement mode.
#jira UE-37082
Change 3168079 on 2016/10/19 by Ori.Cohen
Fix timing issue that causes snapshotpose to t-pose.
#JIRA UE-37476
Change 3168392 on 2016/10/19 by dan.reynolds
Updated AEOverviewMain with custom Attenuation FBXs to alleviate visual noise when observing complex attenuation shape falloff distances.
Change 3169121 on 2016/10/20 by danny.bouimad
Updates to Merge actor assets
Change 3169128 on 2016/10/20 by Danny.Bouimad
files
Change 3169230 on 2016/10/20 by Lina.Halper
#improved log message
Change 3169243 on 2016/10/20 by Ben.Zeigler
#jira UE-37515 Add UK2Node::ConvertDeprecatedNode which handles node-specific deprecation fixup.
Add code to automatically convert from make/break struct nodes to native call function if there is a native override.
This was hard coded for vector, etc but now works for any type that declares HasNativeMake/HasNativeBreak.
Add serialize override to K2Node that serializes struct defaults when gathering references while saving. References declared in literal struct pins were being skipped
Add specific fixups for GameplayTag make/break functions
Change 3169422 on 2016/10/20 by Aaron.McLeran
UE-37596 Making detail customizations and experimental setting for sound base showing audiomixer-only features
Change 3169620 on 2016/10/20 by Ben.Zeigler
Switch GameplayTagTests to use the new Custom test macro and better failure reporting.
Add TestTrueExpr macro that runs TestTrue with the expression as the display string, like how ensure works.
Change 3169622 on 2016/10/20 by Ben.Zeigler
Fix swapped HasAny logic and bad comments
Change 3169645 on 2016/10/20 by Aaron.McLeran
Re-adding call to Stop source
Change 3169664 on 2016/10/20 by dan.reynolds
AEOverviewMain Update - Fixed Menu bug where clicking the menu item after map reset resulted in requiring two attempts to actually reset the menu item properly. Menu Hit interaction is now much more responsive.
Change 3169997 on 2016/10/20 by Ben.Zeigler
Change from alloca to normal malloc, as static analysis doesn't like alloca in loops due to stack overflow danger
Change 3170796 on 2016/10/21 by Marc.Audy
PR #2878: Prevent 'XXX has natively added scene component' warning in commandlets (Contributed by slonopotamus)
#jira UE-37632
Change 3170802 on 2016/10/21 by Lina.Halper
#ANIM: curve can link to joints
- this allows to filter certain curves per LOD - when the joint is discarded
-> refactored editor object tracker to allow multiple per class
-> refactored so that bone reference supports both skeleton or mesh but make sure you don't access invalid function when using skeleton indices
- layer bone support
#jira: UEFW-207
Change 3170857 on 2016/10/21 by Aaron.McLeran
Disabling checking for device change
Change 3171101 on 2016/10/21 by Ben.Zeigler
Deprecate old gameplay tag functions in favor of new API that doesn't use the enums or module header
Add IsEmpty, Filter, FilterExact, and AddLeafTag to FGameplayTagContainer
Add RequestGameplayTag, MatchesTagDepth and GetGameplayTagParents to FGameplayTag
Remove MatchesEmpty parameter from tag asset interface. This defaulted to true but should now be explicitly checked with IsEmpty()
Engine fixups for those changes
Change 3171102 on 2016/10/21 by Ben.Zeigler
Internal game fixups for tag deprecation
Moved some fortnite tags into the global tag list and fixed fortnite cases. Confident in these changes
Fixed several weird tag uses in Orion. Dave and I should code review these changes as I was unsure on some of them
Some minor changes for Ocean
Change 3171186 on 2016/10/21 by Ben.Zeigler
File got missed in checkin
Change 3171239 on 2016/10/21 by Wes.Hunt
TPSAudit updates.
* Added /Verbose option that will print out the name of each file examined. Useful for debugging if a file was even checked.
* Don't skip Content folders
* Don't skip Engine\Documentation\HTML
* Skip any Content\Localization folders instead of only Engine\Content\Localization
* Skip any Content\Internationalization folders
* Skip .raw, .exr, .r16, .abc, .webm, .collection, .aac files.
* if a file has no extension (like configure files) then treat the filename as the extension
* configure files are treated like shell files
Change 3171245 on 2016/10/21 by Ben.Zeigler
Fix crash when saving nodes that reference properties from struct defaults. Switch FindImportedObject to be safe while saving, it will find existing objects but not load new ones.
I am not sure why StaticFindObject is unsafe during save.
Change 3171248 on 2016/10/21 by Wes.Hunt
TPSAudit: added /veryverbose which lists every file and directory excluded and the reason (file or dir exclusion). This makes the startup MUCH MUCH slower, so only use for debugging.
Change 3171256 on 2016/10/21 by Wes.Hunt
ModuleManager shutdown fixes.
* ShutdownModule is now called in reverse order to when StartupModule is FINISHED.
* This allows modules to reference dependencies in their StartupModule to ensure they are loaded, and be sure they will still be around in ShutdownModule.
* HTTPModule now shuts down in ShutdownModule and not PreUnloadCallback.
* Added comments to Module headers to indicate this new change in behavior.
* Removed manual startup of HTTP module in LaunchEngineLoop as it's no longer needed. Should save the module from being around if not really used by engine.
Change 3171258 on 2016/10/21 by Wes.Hunt
ModuleManager shutdown fixes.
* ShutdownModule is now called in reverse order to when StartupModule is FINISHED.
* This allows modules to reference dependencies in their StartupModule to ensure they are loaded, and be sure they will still be around in ShutdownModule.
* HTTPModule now shuts down in ShutdownModule and not PreUnloadCallback.
* Added comments to Module headers to indicate this new change in behavior.
* Removed manual startup of HTTP module in LaunchEngineLoop as it's no longer needed. Should save the module from being around if not really used by engine.
Change 3171946 on 2016/10/24 by Lina.Halper
Fix so that it checks all the joints before removing
Change 3172126 on 2016/10/24 by Lukasz.Furman
added navlink component
#ue4
Change 3172152 on 2016/10/24 by Jon.Nabozny
Remove UWorld::ComponentOverlapMulti indirection in UPrimitiveComponent::UpdateOverlaps.
UWorldComponentOverlapMulti is just a wrapper that verifies the component is valid, then calls UPrimitiveComponent::ComponentOverlapMulti.
#jira UE-36472
Change 3172364 on 2016/10/24 by Ben.Zeigler
Codereview fixes for tag changes.
Make Tag->Container constructor explicit to avoid bugs
Fix some cases that were using exact to allow parents instead
Change 3173442 on 2016/10/25 by Jon.Nabozny
Fixed crash when opening Anim asset after retargetting.
Change 3174123 on 2016/10/25 by Ben.Zeigler
Add some ini tag data to QAGame, it's now setup to import some from DataTable, and some from ini. This enables the full management UI.
Change 3174394 on 2016/10/25 by dan.reynolds
AEOverview update - added a Streaming Audio test which tests two streaming audio loops (one short, one long).
Change 3175197 on 2016/10/26 by Wes.Hunt
Fix OSS module startup to directly reference HTTP and XMPP as a dependency in StartupModule. This should make MCP startup/shutdown more robust.
#codereivew: sam.zamani,dmitry.rekman,josh.markiewicz
Change 3175236 on 2016/10/26 by Jon.Nabozny
Change FMath::SegmentDistToSegmentSafe to handle the case where either (or both) of the input segments create points.
Either segment may be considered a point if it's two points have a distance that's nearly 0.
#jira UE-19251
Change 3175256 on 2016/10/26 by Jon.Nabozny
Fix CIS for SegmentDistToSegmentSafe change.
Change 3175379 on 2016/10/26 by Jon.Nabozny
Change UCharacterMovementComponent::ApplyImpactPhysicsForces to use IsSimulatingPhysics(BoneName) instead of IsAnySimulatingPhysics on the hit component.
#jira UE-37582
Change 3175408 on 2016/10/26 by Marc.Audy
AudioThreading improvements:
Fix PS4 core 6 issue
Add timeout spam
Radical simplification
Fix suspension CVar
#authors Gil.Gribb/Marc.Audy
#jira OR-30447
Change 3175535 on 2016/10/26 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3175266
Change 3175539 on 2016/10/26 by Marc.Audy
Restore affinity for AudioThread and allow it on to 7th (rather than pinning it)
Change 3175631 on 2016/10/26 by Marc.Audy
Fix silly compile error
Change 3175639 on 2016/10/26 by Aaron.McLeran
Fixing audio device removal code
- Flipping active sources to virtual mode
- Handling initializing sources that have become virtual
- Not stopping sounds when device is unplugged
Change 3175665 on 2016/10/26 by dan.reynolds
AEOverview update - Added a Streaming Overview sub test (Streaming Spam)
Change 3175934 on 2016/10/26 by dan.reynolds
AEOverview Streaming Map Fix - fixed AEOverviewStreaming to avoid orphaning sounds when crossing the platforms
Change 3175941 on 2016/10/26 by Marc.Audy
Fix compiler error after merge from Main
Change 3176378 on 2016/10/27 by Jon.Nabozny
Add RotatorToAxisAndAngle function to KismetMath. We already expose RotatorFromAxisAndAngle, this is just the inverse operation.
Change 3176441 on 2016/10/27 by Jon.Nabozny
Fix another CIS issue with SegmentDistToSegmentSafe change.
Change 3176487 on 2016/10/27 by Jon.Nabozny
Hide DemoRecorder from the scoreboard in ShooterGame.
#jira UE-37492
Change 3176616 on 2016/10/27 by Lukasz.Furman
optimized behavior tree debugger update in subtrees
#jira UE-29029
Change 3176717 on 2016/10/27 by james.cobbett
Test asset for UE-37270
Change 3176731 on 2016/10/27 by dan.reynolds
AEOverview Streaming Spam map tweak--fixed STRMOverviewStreamSpam map so it now ensures reproduction on a specific edge case
Change 3176887 on 2016/10/27 by Aaron.McLeran
UE-37899 Failed Assertion when spamming PS4 Streaming Start/Stop
- Fix is to add critical sections to avoid stopping a Ngs2 source voice while it's in an OnBufferEnd callback
#tests Use Dan.Reynold's AEOverviewMain, load STRMOverviewStreamSpam map. will crash in half a second pre-fix, never crashes post-fix.
Change 3177053 on 2016/10/27 by Marc.Audy
Actually reattach previously attached actors when creating a child actor
#jira UE-37675
Change 3177113 on 2016/10/27 by Aaron.McLeran
UE-37906 Fixing stat sounds when the audio thread is enabled.
Change 3177536 on 2016/10/27 by Aaron.McLeran
Updating QASoundWaveProcedural to support stereo procedural sound wave generation.
Change 3177551 on 2016/10/27 by dan.reynolds
AEOverview update
- Tweaked AEOverviewSWP to support testing mono and stereo SoundWave Procedurals
- Added STRMOverviewStreamPriority to test Streaming Voice Priority
Change 3177819 on 2016/10/28 by Thomas.Sarkanen
Consolidated LOD screen size calculations
Static, skeletal and HLOD now use the same method of specifying LOD level at runtime.Namely "Screen Size". When the bounds of the objects sphere occupy half the max screen dimension, the screen size is 0.5 & all of the screen, 1.0.
HLOD still uses a distance based metric at runtime to choose when to switch clusters, so will still not switch LODs on FOV changes.
Conversion functions have been implemented to convert each of the legacy LOD specifications into the new unified version.
Conversion uses an assumption that the average case uses 1080p @ 90 degree FOV. This is necessary as previous screen sizes/areas were based around that resolution and we want the least perf regressions when at that resolution.
Auto LOD now uses the same functionality to determine what LOD thresholds to use.
#tests Verified that LODs switch at equivalent distances/sizes before and after this change for various assets.
#tests Verified that HLOD distance->screen size and inverse functions map correctly
#tests Ran Michael N's triangle count test before and after the changes with Paragon to verify rendered triangle counts do not vary with the new method
Change 3177996 on 2016/10/28 by Marc.Audy
Support play button on SoundCues as well as SoundWaves
Change 3178013 on 2016/10/28 by Marc.Audy
Allow previewing of force feedback effects from content browser
#jira UE-36388
Change 3178020 on 2016/10/28 by Lukasz.Furman
fixed navmesh wall segment calculations for crowds
#jira UE-37893
Change 3178096 on 2016/10/28 by Marc.Audy
Make ALevelSequenceActor::Tick call Super
#jira UE-37932
Change 3178247 on 2016/10/28 by Zak.Middleton
#ue4 - Crash fix when player is destroyed and server checks to see if it needs to force a network update. No repro steps in the bug but guarding against the crash is pretty straightforward.
UE-37902
Change 3178256 on 2016/10/28 by Zak.Middleton
#ue4 - Avoid crash when calling ACharacter::SetReplicateMovement when not on the server.
Change 3178263 on 2016/10/28 by Ben.Zeigler
Add support for a SearchableNameMap to the Linker and the Asset Registry. Call MarkSearchableName(TypeObject,Name) from a serialize function to register that an FName should be considered Searchable.
This change bumps the object version. Also fix it so the StringAssetReferencesMap does not get written out in editor builds
Clean up FLinker::Serialize, as it is no longer called except to get memory size
Add code to mark searchable names for GameplayTags, DataTableHandles, and CurveTableHandles.
Add FAssetIdentifier to the AssetRegistry that allows searching for Package.Object::Name. If Object/Name aren't specified PackageName will be used as it was before
UI Improvements to the reference viewer to support name references. Collapse the reference/dependency checkboxes, and add new checkboxes for SearchableNames and NativePackages, disabled by default
Remove bResolveIniStringReferences option from GetDepdendencies and handle that when parsing in the string asset reference table
Change 3178265 on 2016/10/28 by Ben.Zeigler
Move all ini settings for GameplayTags over to GameplayTagsSettings.h/GameplayTags.ini, instead of being in 3 different places.
Add metadata for the source of a gameplay tag and it's comment to the node, but only in editor builds
Change it so the default list and developer tags list are saved the same way as a list of structs. This will allow UI for selecting what tag list to save it into
The first time someone in the project modifies the GameplayTags project settings it will migrate these settings from the old locations. This will cause defaultEngine.ini to resave, which may wipe out comments
Migrate QAGame's tag config as a test
Change 3178266 on 2016/10/28 by Lina.Halper
Fix issue with anim editor sound play notify doesn't work with follow option
#jira: UE-37946
Change 3178441 on 2016/10/28 by Ben.Zeigler
Fix use of IsValid on names inside asset identifier to properly be a None check and add accessor to make use more clear
Change 3178443 on 2016/10/28 by Ben.Zeigler
Half migrated gameplay tag settings for internal games, will need full migration via the editor on their branches
Change 3178533 on 2016/10/28 by Ben.Zeigler
Build fix
Change 3178655 on 2016/10/28 by Ben.Zeigler
Build fix
Change 3178672 on 2016/10/28 by Lina.Halper
Unshelved from changelist '3164228':
PR #2867: Fixed for UE-15388 : Bones of uniformly scaled SkeletalMesh rotate incorrectly in Persona (Contributed by rarihoma)
#jira: UE-37372
Change 3178675 on 2016/10/28 by Ben.Zeigler
Crash fix if you have no defaultengine.ini redirects section
Change 3178698 on 2016/10/28 by Ben.Zeigler
#jira UE-37774 Fix issue with loading save games referencing UObjects not in memory, this broke in 4.13
Change 3178743 on 2016/10/28 by Lina.Halper
Fixed so that if no key, it clamps to 0.
#jira: UE-36790
Change 3179121 on 2016/10/28 by dan.reynolds
AEOverview tweaks
- updated Concurrency map to tighten up the audio playback (as in James C's feedback)
- tweaked some timers to be closer to real-time
Change 3179912 on 2016/10/31 by Mieszko.Zielinski
Removed unused piece of functionality from UEdGraphSchema_BehaviorTreeDecorator #UE4
Change 3179933 on 2016/10/31 by Lukasz.Furman
fixed missing update timers in avoidance manager
#ue4
Change 3180028 on 2016/10/31 by Ben.Zeigler
#jira UE-373993 Fix crash with bad default value for objects
Change 3180503 on 2016/10/31 by mason.seay
Test map for character spawning bug
Change 3180744 on 2016/10/31 by Ben.Zeigler
#jira UE-38025 Fix APlayerController:DisplayDebug to not make a bad copy of the debug display manager
Change 3180914 on 2016/10/31 by Ben.Zeigler
#jira UE-37773 Add hooks for deleting and renaming tags, untested pending UI support
Add handler for editing a gameplaytag asset from asset browser
Change 3181879 on 2016/11/01 by Marc.Audy
Rollback CL# 3169645 to resolve fortnite audio hitching when stopping sounds
#jira UE-38055
[CL 3182044 by Marc Audy in Main branch]
2016-11-01 15:50:29 -04:00
}
2020-06-23 18:40:00 -04:00
return true ;
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3182037)
#rb None
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2825716 on 2016/01/12 by Marc.Audy
Fix GrabDebugSnapshot virtual function definitions in Ocean
Change 2828462 on 2016/01/14 by Marc.Audy
Back out changelist 2825716
Change 3153526 on 2016/10/06 by Zak.Middleton
#ue4 - Fix CharacterMovement hanging on to a bad/penetrating floor check result and not continuing to check for a valid floor. Only occured if bAlwaysCheckFloor was false. This could in rare situations cause the character to continue to attempt to depenetrate an object far away from it until another floor check occured. To prevent this we now force a floor check after the depenetration.
Related to OR-14528.
Change 3153580 on 2016/10/06 by Benn.Gallagher
Skeletal LOD workflow refactor. Now we track source files for LODs to save time when reimporting LODs often. It's still possible to pick new files and overwrite the current settings.
#jira UE-36588
Change 3154264 on 2016/10/06 by Aaron.McLeran
UE-37004 UE-37005 Fixing stat soundwaves
Change 3154560 on 2016/10/07 by James.Golding
UE-20739 Fix auto box in Morph Target Preview panel
Change 3154776 on 2016/10/07 by Ben.Zeigler
#Fortnite Change the ability UI to use the Tag UI data instead of the Tag Categories, as Tag Categories were redundant and are being removed in the tag refactor. I'm not sure this code is actually in use any more.
Change 3154954 on 2016/10/07 by Ben.Zeigler
Move GameplayTagsEditor to a plugin, and change GameplayTagsManager to be accessed directly without the module load overhead, as it is part of the engine module set.
Performance improvements to GameplayTags to maintain a ParentTag list when tag containers get modified. It does a quick update on add, and a slow recompute on other changes. This leads to a 10x improvement in IncludeParent queries
Replace RemoveAllTags and RemoveAllTagsKeepSlack with Reset, which already existed but didnt work correctly.
Removed the Category map from gameplay tags, games are using other systems to do translateable text.
Significant internal changes to GameplayTagsManager, moved from 3 redundant maps to 1 map and removed unused functionality
Change 3154955 on 2016/10/07 by Ben.Zeigler
Game compile fixes for changes to GameplayTags module and API. Removed redundant calls to remove tags, TagContainer uses Reset() like other container types
Change 3154995 on 2016/10/07 by Aaron.McLeran
UE-37012 fix compile issue
Change 3155009 on 2016/10/07 by Aaron.McLeran
UE-37009 Ensure failed for FXAudio2SoundBuffer::Seek() in XAudio2Buffer.cpp
- Removing ensure and using if statement instead. It looks possible for decompression state to fail to be created, that state is logged elsewhere.
Change 3155128 on 2016/10/07 by Ben.Zeigler
Add old location of GameplayTagsEditor to junk manifest
Change 3155268 on 2016/10/07 by Aaron.McLeran
UE-37024 Set Sound Mix Class Override still Playing Sounds in Certain Conditions
Change 3155561 on 2016/10/07 by Ben.Zeigler
GameplayTag fixes made based on code review feedback:
Deprecate custom node for making a literal gameplay tag container and add proper make and break functions to the blueprint library
Remove direct access to the tag container internals as it has always been unsafe
Add many missing utility functions to the library and change things to pass FGameplayTag by value. TagContainers must still be passed by reference though as they are large
Fix case where comparing two containers with the tags in different orders would fail
Remove deprecated serialization entirely, print error when trying to load very old tags
Add RemoveAllTags and RemoveAllTagsKeepSlack back to container, but deprecate them
Change 3155842 on 2016/10/07 by dan.reynolds
AEOverview Update - Attenuation Shapes Test Map + Counting Test Assets
Change 3156779 on 2016/10/10 by Richard.Hinckley
Fixing/reordering comments for basic types.
Change 3156926 on 2016/10/10 by Ben.Zeigler
Remove deprecated gameplay ability system code involving non-BP gameplay effects and ActiveGameplayEffectQueries
Change 3156998 on 2016/10/10 by Jon.Nabozny
Include K2Node_BaseAsyncAction.h in K2Node_AsyncAction.h to fix compile issue.
Change 3158732 on 2016/10/11 by Zak.Middleton
#ue4 - Don't allow the first move in SafeMoveUpdatedComponent() to ignore penetration when slowly moving out of an object. We really want to pop out completely using the MTD as fast as possible or we can fall through the object in a longer direction.
#jira UE-28610
Change 3159208 on 2016/10/11 by dan.reynolds
Added ancillary SoundClass Passive Mix Modifier Duration Test map
Change 3159211 on 2016/10/11 by Aaron.McLeran
UE-37193 Fixing passive sound mix modifier
Change 3159278 on 2016/10/11 by dan.reynolds
AEOverviewMain integration with the SCO Passive Mix Modifier Duration Test map for additional testing purposes.
Also tweaks and clean-up of SCOverviewPassMixModDuration map and associated Platform_Blueprint
Change 3159596 on 2016/10/12 by danny.bouimad
Updates to TM-Meshbake
Change 3159629 on 2016/10/12 by James.Golding
Add ModifyCurve anim node
Make GetPinAssociatedProperty const correct
Change 3159705 on 2016/10/12 by James.Golding
Add 'ApplyMode' and 'Alpha' options to ModifyCurve node
Change 3159959 on 2016/10/12 by John.Abercrombie
Integrate CL 3159892 from //Fortnite/Main/...
Fixed the Blackboard component pausing but never being unpaused if we ended up restarting the Behavior Tree instead of continuing
#ue4
Change 3160014 on 2016/10/12 by Lukasz.Furman
pass on gameplay debugger in Simulate in Editor mode
#jira UE-36123
Change 3160027 on 2016/10/12 by Lukasz.Furman
fixed behavior tree task restart conditions
copy of CL 3159145
#ue4
Change 3160129 on 2016/10/12 by Lukasz.Furman
gameplay debugger refactor: removed deprecated code
#ue4
Change 3160389 on 2016/10/12 by Lukasz.Furman
added missing include path to gameplay debugger module
#ue4
Change 3160408 on 2016/10/12 by Lukasz.Furman
refactored sanity checks in gameplay debugger EdMode to keep static analysis happy
#ue4
Change 3161143 on 2016/10/13 by James.Golding
UE-37208 UE-37207 Fix AnimNode_ModifyCruve CIS error
Change 3161227 on 2016/10/13 by danny.bouimad
More changes to meshmergemap
Change 3161777 on 2016/10/13 by Ben.Zeigler
API changes for GameplayTag and Container, and fix Redirect loading
Remove Match type and empty count as match bool from common API
In C++ use MatchTag/MatchAny/HasTag/HasAny/HasAll with *Exact variants for exact matching. Old C++ API is still there but I will deprecate and remove soon
In Blueprint use MatchTag/MatchAny/HasTag/HasAny/HasAll with bool parameter for as the bool is more clear. I was able to convert old functions to new ones as no one was overriding the options I removed
Undeprecate the old make literal node and temporarily set GameplayTags in container to be editable. We're not allowed to deprecate things until our internal games fix their usage.
Change 3162095 on 2016/10/13 by Jon.Nabozny
Fix bad default screen resolution in Platformer Game.
#jira UE-34901
Change 3163351 on 2016/10/14 by Marc.Audy
Avoid duplicate accessor calls
Change 3163364 on 2016/10/14 by Marc.Audy
Eliminate auto
Use ForEachObjectWithOuter
Change 3163367 on 2016/10/14 by Marc.Audy
Use ForEachObjectWithOuter instead of GetObjectsWithOuter
Change 3163500 on 2016/10/14 by Marc.Audy
When using SetCullDistance property for static meshes correctly update the cached value
#jira UE-36891
Change 3163674 on 2016/10/14 by Jon.Nabozny
#rn Fix popping in OnRep_ReplicatedAnimMontage.
#jira UE-37056
Change 3164818 on 2016/10/17 by Ori.Cohen
Added a pose snapshot feature that allows users to convert an existing skeletal mesh pose into a node inside the anim blueprint. This is useful for things like getup from ragdoll.
Change 3164903 on 2016/10/17 by Lukasz.Furman
fixed bug in merging behavior tree searches
#ue4
Change 3165236 on 2016/10/17 by dan.reynolds
Fixes and tweaks based on feedback:
- Made most objects Stationary to assist in dynamic lighting changes as sub-levels have unknown orientation until load
- Fixed Blueprint Control map to stop test when the player leaves the zone
- Fixed Blueprint Contorl map typos
Change 3165323 on 2016/10/17 by Aaron.McLeran
PS4 Audio Streaming
- Refactored Opus audio streaming code to have the code which interfaces with audio streaming manager in format-agnostic code (so I can use for AT9 streaming)
- Wrote an AT9 real-time decoder module (will be used in audio mixer)
- Enabled streaming on PS4 platform
- Refactored much of Ngs2 to be more in parity with our other platforms for real-time decoding (Significant changes to Ngs2Buffer)
- Added support for Ngs2 buffer callbacks for when audio needs to be fed to sources rather than pushing data from game thread
- Fixed A3D implementation: creating both a normal sampler rack and an A3D-specific sampler rack
- Fixed up error handling code in Ngs2 so it actually reports real errors
Change 3165997 on 2016/10/18 by Richard.Hinckley
Improving consistency of "New C++ Class" templates and fixing some shadow-variable issues.
Change 3166220 on 2016/10/18 by Aaron.McLeran
UE-37442 Build Tools Win64 completes with 28 errors
- Changing include of appropriate file to not be in #if WITH_ENGINE block
Change 3166262 on 2016/10/18 by Aaron.McLeran
UE-37441 Compile Ocean IOS, Compile FortniteClient Mac, Compile UE4Editor Mac complete with 11 errors
Fixing up the original wave format parsing code in Audio.cpp to avoid redefinitions. This code needs to be removed eventually in favor of the new wave format parser class.
Change 3166562 on 2016/10/18 by Aaron.McLeran
UE-37441 Fixing compile on Mac
- Renamed FFormatChunk to FRiffFormatChunk
Change 3166653 on 2016/10/18 by Aaron.McLeran
UE-37442 Build Tools Win64 completes with 28 errors
Change 3166917 on 2016/10/18 by Aaron.McLeran
UE-37502 Initializing missed data members in FNgs2SoundSource constructor
Change 3167329 on 2016/10/19 by Benn.Gallagher
Made wind properties editable on wind components, had to make the properties unsettable by blueprints and add setter functions so we can trigger render data updates from property updates.
#jira UE-37500
Change 3167575 on 2016/10/19 by Jon.Nabozny
#rn Fix UCharacterMovementComponent::OnTeleported improperly changing movement mode.
#jira UE-37082
Change 3168079 on 2016/10/19 by Ori.Cohen
Fix timing issue that causes snapshotpose to t-pose.
#JIRA UE-37476
Change 3168392 on 2016/10/19 by dan.reynolds
Updated AEOverviewMain with custom Attenuation FBXs to alleviate visual noise when observing complex attenuation shape falloff distances.
Change 3169121 on 2016/10/20 by danny.bouimad
Updates to Merge actor assets
Change 3169128 on 2016/10/20 by Danny.Bouimad
files
Change 3169230 on 2016/10/20 by Lina.Halper
#improved log message
Change 3169243 on 2016/10/20 by Ben.Zeigler
#jira UE-37515 Add UK2Node::ConvertDeprecatedNode which handles node-specific deprecation fixup.
Add code to automatically convert from make/break struct nodes to native call function if there is a native override.
This was hard coded for vector, etc but now works for any type that declares HasNativeMake/HasNativeBreak.
Add serialize override to K2Node that serializes struct defaults when gathering references while saving. References declared in literal struct pins were being skipped
Add specific fixups for GameplayTag make/break functions
Change 3169422 on 2016/10/20 by Aaron.McLeran
UE-37596 Making detail customizations and experimental setting for sound base showing audiomixer-only features
Change 3169620 on 2016/10/20 by Ben.Zeigler
Switch GameplayTagTests to use the new Custom test macro and better failure reporting.
Add TestTrueExpr macro that runs TestTrue with the expression as the display string, like how ensure works.
Change 3169622 on 2016/10/20 by Ben.Zeigler
Fix swapped HasAny logic and bad comments
Change 3169645 on 2016/10/20 by Aaron.McLeran
Re-adding call to Stop source
Change 3169664 on 2016/10/20 by dan.reynolds
AEOverviewMain Update - Fixed Menu bug where clicking the menu item after map reset resulted in requiring two attempts to actually reset the menu item properly. Menu Hit interaction is now much more responsive.
Change 3169997 on 2016/10/20 by Ben.Zeigler
Change from alloca to normal malloc, as static analysis doesn't like alloca in loops due to stack overflow danger
Change 3170796 on 2016/10/21 by Marc.Audy
PR #2878: Prevent 'XXX has natively added scene component' warning in commandlets (Contributed by slonopotamus)
#jira UE-37632
Change 3170802 on 2016/10/21 by Lina.Halper
#ANIM: curve can link to joints
- this allows to filter certain curves per LOD - when the joint is discarded
-> refactored editor object tracker to allow multiple per class
-> refactored so that bone reference supports both skeleton or mesh but make sure you don't access invalid function when using skeleton indices
- layer bone support
#jira: UEFW-207
Change 3170857 on 2016/10/21 by Aaron.McLeran
Disabling checking for device change
Change 3171101 on 2016/10/21 by Ben.Zeigler
Deprecate old gameplay tag functions in favor of new API that doesn't use the enums or module header
Add IsEmpty, Filter, FilterExact, and AddLeafTag to FGameplayTagContainer
Add RequestGameplayTag, MatchesTagDepth and GetGameplayTagParents to FGameplayTag
Remove MatchesEmpty parameter from tag asset interface. This defaulted to true but should now be explicitly checked with IsEmpty()
Engine fixups for those changes
Change 3171102 on 2016/10/21 by Ben.Zeigler
Internal game fixups for tag deprecation
Moved some fortnite tags into the global tag list and fixed fortnite cases. Confident in these changes
Fixed several weird tag uses in Orion. Dave and I should code review these changes as I was unsure on some of them
Some minor changes for Ocean
Change 3171186 on 2016/10/21 by Ben.Zeigler
File got missed in checkin
Change 3171239 on 2016/10/21 by Wes.Hunt
TPSAudit updates.
* Added /Verbose option that will print out the name of each file examined. Useful for debugging if a file was even checked.
* Don't skip Content folders
* Don't skip Engine\Documentation\HTML
* Skip any Content\Localization folders instead of only Engine\Content\Localization
* Skip any Content\Internationalization folders
* Skip .raw, .exr, .r16, .abc, .webm, .collection, .aac files.
* if a file has no extension (like configure files) then treat the filename as the extension
* configure files are treated like shell files
Change 3171245 on 2016/10/21 by Ben.Zeigler
Fix crash when saving nodes that reference properties from struct defaults. Switch FindImportedObject to be safe while saving, it will find existing objects but not load new ones.
I am not sure why StaticFindObject is unsafe during save.
Change 3171248 on 2016/10/21 by Wes.Hunt
TPSAudit: added /veryverbose which lists every file and directory excluded and the reason (file or dir exclusion). This makes the startup MUCH MUCH slower, so only use for debugging.
Change 3171256 on 2016/10/21 by Wes.Hunt
ModuleManager shutdown fixes.
* ShutdownModule is now called in reverse order to when StartupModule is FINISHED.
* This allows modules to reference dependencies in their StartupModule to ensure they are loaded, and be sure they will still be around in ShutdownModule.
* HTTPModule now shuts down in ShutdownModule and not PreUnloadCallback.
* Added comments to Module headers to indicate this new change in behavior.
* Removed manual startup of HTTP module in LaunchEngineLoop as it's no longer needed. Should save the module from being around if not really used by engine.
Change 3171258 on 2016/10/21 by Wes.Hunt
ModuleManager shutdown fixes.
* ShutdownModule is now called in reverse order to when StartupModule is FINISHED.
* This allows modules to reference dependencies in their StartupModule to ensure they are loaded, and be sure they will still be around in ShutdownModule.
* HTTPModule now shuts down in ShutdownModule and not PreUnloadCallback.
* Added comments to Module headers to indicate this new change in behavior.
* Removed manual startup of HTTP module in LaunchEngineLoop as it's no longer needed. Should save the module from being around if not really used by engine.
Change 3171946 on 2016/10/24 by Lina.Halper
Fix so that it checks all the joints before removing
Change 3172126 on 2016/10/24 by Lukasz.Furman
added navlink component
#ue4
Change 3172152 on 2016/10/24 by Jon.Nabozny
Remove UWorld::ComponentOverlapMulti indirection in UPrimitiveComponent::UpdateOverlaps.
UWorldComponentOverlapMulti is just a wrapper that verifies the component is valid, then calls UPrimitiveComponent::ComponentOverlapMulti.
#jira UE-36472
Change 3172364 on 2016/10/24 by Ben.Zeigler
Codereview fixes for tag changes.
Make Tag->Container constructor explicit to avoid bugs
Fix some cases that were using exact to allow parents instead
Change 3173442 on 2016/10/25 by Jon.Nabozny
Fixed crash when opening Anim asset after retargetting.
Change 3174123 on 2016/10/25 by Ben.Zeigler
Add some ini tag data to QAGame, it's now setup to import some from DataTable, and some from ini. This enables the full management UI.
Change 3174394 on 2016/10/25 by dan.reynolds
AEOverview update - added a Streaming Audio test which tests two streaming audio loops (one short, one long).
Change 3175197 on 2016/10/26 by Wes.Hunt
Fix OSS module startup to directly reference HTTP and XMPP as a dependency in StartupModule. This should make MCP startup/shutdown more robust.
#codereivew: sam.zamani,dmitry.rekman,josh.markiewicz
Change 3175236 on 2016/10/26 by Jon.Nabozny
Change FMath::SegmentDistToSegmentSafe to handle the case where either (or both) of the input segments create points.
Either segment may be considered a point if it's two points have a distance that's nearly 0.
#jira UE-19251
Change 3175256 on 2016/10/26 by Jon.Nabozny
Fix CIS for SegmentDistToSegmentSafe change.
Change 3175379 on 2016/10/26 by Jon.Nabozny
Change UCharacterMovementComponent::ApplyImpactPhysicsForces to use IsSimulatingPhysics(BoneName) instead of IsAnySimulatingPhysics on the hit component.
#jira UE-37582
Change 3175408 on 2016/10/26 by Marc.Audy
AudioThreading improvements:
Fix PS4 core 6 issue
Add timeout spam
Radical simplification
Fix suspension CVar
#authors Gil.Gribb/Marc.Audy
#jira OR-30447
Change 3175535 on 2016/10/26 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3175266
Change 3175539 on 2016/10/26 by Marc.Audy
Restore affinity for AudioThread and allow it on to 7th (rather than pinning it)
Change 3175631 on 2016/10/26 by Marc.Audy
Fix silly compile error
Change 3175639 on 2016/10/26 by Aaron.McLeran
Fixing audio device removal code
- Flipping active sources to virtual mode
- Handling initializing sources that have become virtual
- Not stopping sounds when device is unplugged
Change 3175665 on 2016/10/26 by dan.reynolds
AEOverview update - Added a Streaming Overview sub test (Streaming Spam)
Change 3175934 on 2016/10/26 by dan.reynolds
AEOverview Streaming Map Fix - fixed AEOverviewStreaming to avoid orphaning sounds when crossing the platforms
Change 3175941 on 2016/10/26 by Marc.Audy
Fix compiler error after merge from Main
Change 3176378 on 2016/10/27 by Jon.Nabozny
Add RotatorToAxisAndAngle function to KismetMath. We already expose RotatorFromAxisAndAngle, this is just the inverse operation.
Change 3176441 on 2016/10/27 by Jon.Nabozny
Fix another CIS issue with SegmentDistToSegmentSafe change.
Change 3176487 on 2016/10/27 by Jon.Nabozny
Hide DemoRecorder from the scoreboard in ShooterGame.
#jira UE-37492
Change 3176616 on 2016/10/27 by Lukasz.Furman
optimized behavior tree debugger update in subtrees
#jira UE-29029
Change 3176717 on 2016/10/27 by james.cobbett
Test asset for UE-37270
Change 3176731 on 2016/10/27 by dan.reynolds
AEOverview Streaming Spam map tweak--fixed STRMOverviewStreamSpam map so it now ensures reproduction on a specific edge case
Change 3176887 on 2016/10/27 by Aaron.McLeran
UE-37899 Failed Assertion when spamming PS4 Streaming Start/Stop
- Fix is to add critical sections to avoid stopping a Ngs2 source voice while it's in an OnBufferEnd callback
#tests Use Dan.Reynold's AEOverviewMain, load STRMOverviewStreamSpam map. will crash in half a second pre-fix, never crashes post-fix.
Change 3177053 on 2016/10/27 by Marc.Audy
Actually reattach previously attached actors when creating a child actor
#jira UE-37675
Change 3177113 on 2016/10/27 by Aaron.McLeran
UE-37906 Fixing stat sounds when the audio thread is enabled.
Change 3177536 on 2016/10/27 by Aaron.McLeran
Updating QASoundWaveProcedural to support stereo procedural sound wave generation.
Change 3177551 on 2016/10/27 by dan.reynolds
AEOverview update
- Tweaked AEOverviewSWP to support testing mono and stereo SoundWave Procedurals
- Added STRMOverviewStreamPriority to test Streaming Voice Priority
Change 3177819 on 2016/10/28 by Thomas.Sarkanen
Consolidated LOD screen size calculations
Static, skeletal and HLOD now use the same method of specifying LOD level at runtime.Namely "Screen Size". When the bounds of the objects sphere occupy half the max screen dimension, the screen size is 0.5 & all of the screen, 1.0.
HLOD still uses a distance based metric at runtime to choose when to switch clusters, so will still not switch LODs on FOV changes.
Conversion functions have been implemented to convert each of the legacy LOD specifications into the new unified version.
Conversion uses an assumption that the average case uses 1080p @ 90 degree FOV. This is necessary as previous screen sizes/areas were based around that resolution and we want the least perf regressions when at that resolution.
Auto LOD now uses the same functionality to determine what LOD thresholds to use.
#tests Verified that LODs switch at equivalent distances/sizes before and after this change for various assets.
#tests Verified that HLOD distance->screen size and inverse functions map correctly
#tests Ran Michael N's triangle count test before and after the changes with Paragon to verify rendered triangle counts do not vary with the new method
Change 3177996 on 2016/10/28 by Marc.Audy
Support play button on SoundCues as well as SoundWaves
Change 3178013 on 2016/10/28 by Marc.Audy
Allow previewing of force feedback effects from content browser
#jira UE-36388
Change 3178020 on 2016/10/28 by Lukasz.Furman
fixed navmesh wall segment calculations for crowds
#jira UE-37893
Change 3178096 on 2016/10/28 by Marc.Audy
Make ALevelSequenceActor::Tick call Super
#jira UE-37932
Change 3178247 on 2016/10/28 by Zak.Middleton
#ue4 - Crash fix when player is destroyed and server checks to see if it needs to force a network update. No repro steps in the bug but guarding against the crash is pretty straightforward.
UE-37902
Change 3178256 on 2016/10/28 by Zak.Middleton
#ue4 - Avoid crash when calling ACharacter::SetReplicateMovement when not on the server.
Change 3178263 on 2016/10/28 by Ben.Zeigler
Add support for a SearchableNameMap to the Linker and the Asset Registry. Call MarkSearchableName(TypeObject,Name) from a serialize function to register that an FName should be considered Searchable.
This change bumps the object version. Also fix it so the StringAssetReferencesMap does not get written out in editor builds
Clean up FLinker::Serialize, as it is no longer called except to get memory size
Add code to mark searchable names for GameplayTags, DataTableHandles, and CurveTableHandles.
Add FAssetIdentifier to the AssetRegistry that allows searching for Package.Object::Name. If Object/Name aren't specified PackageName will be used as it was before
UI Improvements to the reference viewer to support name references. Collapse the reference/dependency checkboxes, and add new checkboxes for SearchableNames and NativePackages, disabled by default
Remove bResolveIniStringReferences option from GetDepdendencies and handle that when parsing in the string asset reference table
Change 3178265 on 2016/10/28 by Ben.Zeigler
Move all ini settings for GameplayTags over to GameplayTagsSettings.h/GameplayTags.ini, instead of being in 3 different places.
Add metadata for the source of a gameplay tag and it's comment to the node, but only in editor builds
Change it so the default list and developer tags list are saved the same way as a list of structs. This will allow UI for selecting what tag list to save it into
The first time someone in the project modifies the GameplayTags project settings it will migrate these settings from the old locations. This will cause defaultEngine.ini to resave, which may wipe out comments
Migrate QAGame's tag config as a test
Change 3178266 on 2016/10/28 by Lina.Halper
Fix issue with anim editor sound play notify doesn't work with follow option
#jira: UE-37946
Change 3178441 on 2016/10/28 by Ben.Zeigler
Fix use of IsValid on names inside asset identifier to properly be a None check and add accessor to make use more clear
Change 3178443 on 2016/10/28 by Ben.Zeigler
Half migrated gameplay tag settings for internal games, will need full migration via the editor on their branches
Change 3178533 on 2016/10/28 by Ben.Zeigler
Build fix
Change 3178655 on 2016/10/28 by Ben.Zeigler
Build fix
Change 3178672 on 2016/10/28 by Lina.Halper
Unshelved from changelist '3164228':
PR #2867: Fixed for UE-15388 : Bones of uniformly scaled SkeletalMesh rotate incorrectly in Persona (Contributed by rarihoma)
#jira: UE-37372
Change 3178675 on 2016/10/28 by Ben.Zeigler
Crash fix if you have no defaultengine.ini redirects section
Change 3178698 on 2016/10/28 by Ben.Zeigler
#jira UE-37774 Fix issue with loading save games referencing UObjects not in memory, this broke in 4.13
Change 3178743 on 2016/10/28 by Lina.Halper
Fixed so that if no key, it clamps to 0.
#jira: UE-36790
Change 3179121 on 2016/10/28 by dan.reynolds
AEOverview tweaks
- updated Concurrency map to tighten up the audio playback (as in James C's feedback)
- tweaked some timers to be closer to real-time
Change 3179912 on 2016/10/31 by Mieszko.Zielinski
Removed unused piece of functionality from UEdGraphSchema_BehaviorTreeDecorator #UE4
Change 3179933 on 2016/10/31 by Lukasz.Furman
fixed missing update timers in avoidance manager
#ue4
Change 3180028 on 2016/10/31 by Ben.Zeigler
#jira UE-373993 Fix crash with bad default value for objects
Change 3180503 on 2016/10/31 by mason.seay
Test map for character spawning bug
Change 3180744 on 2016/10/31 by Ben.Zeigler
#jira UE-38025 Fix APlayerController:DisplayDebug to not make a bad copy of the debug display manager
Change 3180914 on 2016/10/31 by Ben.Zeigler
#jira UE-37773 Add hooks for deleting and renaming tags, untested pending UI support
Add handler for editing a gameplaytag asset from asset browser
Change 3181879 on 2016/11/01 by Marc.Audy
Rollback CL# 3169645 to resolve fortnite audio hitching when stopping sounds
#jira UE-38055
[CL 3182044 by Marc Audy in Main branch]
2016-11-01 15:50:29 -04:00
}
2014-03-14 14:13:41 -04:00
void FPackageReader : : Serialize ( void * V , int64 Length )
{
check ( Loader ) ;
Loader - > Serialize ( V , Length ) ;
2020-06-23 18:40:00 -04:00
if ( Loader - > IsError ( ) )
{
SetError ( ) ;
}
2014-03-14 14:13:41 -04:00
}
bool FPackageReader : : Precache ( int64 PrecacheOffset , int64 PrecacheSize )
{
check ( Loader ) ;
return Loader - > Precache ( PrecacheOffset , PrecacheSize ) ;
}
void FPackageReader : : Seek ( int64 InPos )
{
check ( Loader ) ;
Loader - > Seek ( InPos ) ;
2020-06-23 18:40:00 -04:00
if ( Loader - > IsError ( ) )
{
SetError ( ) ;
}
2014-03-14 14:13:41 -04:00
}
int64 FPackageReader : : Tell ( )
{
check ( Loader ) ;
return Loader - > Tell ( ) ;
}
int64 FPackageReader : : TotalSize ( )
{
check ( Loader ) ;
return Loader - > TotalSize ( ) ;
}
2015-07-24 05:57:33 -04:00
uint32 FPackageReader : : GetPackageFlags ( ) const
{
2021-02-10 15:37:45 -04:00
return PackageFileSummary . GetPackageFlags ( ) ;
2015-07-24 05:57:33 -04:00
}
2014-03-14 14:13:41 -04:00
FArchive & FPackageReader : : operator < < ( FName & Name )
{
2019-04-08 11:29:35 -04:00
int32 NameIndex ;
2014-03-14 14:13:41 -04:00
FArchive & Ar = * this ;
Ar < < NameIndex ;
if ( ! NameMap . IsValidIndex ( NameIndex ) )
{
2020-06-23 18:40:00 -04:00
UE_LOG ( LogAssetRegistry , Warning , TEXT ( " Bad name index %i/%i when reading package %s " ) , NameIndex , NameMap . Num ( ) , * PackageFilename ) ;
SetError ( ) ;
return * this ;
2014-03-14 14:13:41 -04:00
}
// if the name wasn't loaded (because it wasn't valid in this context)
if ( NameMap [ NameIndex ] = = NAME_None )
{
int32 TempNumber ;
Ar < < TempNumber ;
Name = NAME_None ;
}
else
{
int32 Number ;
Ar < < Number ;
Made FName case-preserving by storing case-variant strings in its string table
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]
2014-09-17 05:24:55 -04:00
// simply create the name from the NameMap's name and the serialized instance number
Name = FName ( NameMap [ NameIndex ] , Number ) ;
2014-03-14 14:13:41 -04:00
}
return * this ;
}
2020-09-24 00:43:27 -04:00
2021-11-22 08:01:32 -05:00
namespace UE : : AssetRegistry
2020-09-24 00:43:27 -04:00
{
Deprecating ANY_PACKAGE.
This change consists of multiple changes:
Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values
AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes
Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names
#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32
#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786
#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)
[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
class FNameMapAwareArchive : public FArchiveProxy
{
TArray < FNameEntryId > NameMap ;
public :
FNameMapAwareArchive ( FArchive & Inner )
: FArchiveProxy ( Inner )
{ }
FORCEINLINE virtual FArchive & operator < < ( FName & Name ) override
{
FArchive & Ar = * this ;
int32 NameIndex ;
Ar < < NameIndex ;
int32 Number = 0 ;
Ar < < Number ;
if ( NameMap . IsValidIndex ( NameIndex ) )
{
// if the name wasn't loaded (because it wasn't valid in this context)
FNameEntryId MappedName = NameMap [ NameIndex ] ;
// simply create the name from the NameMap's name and the serialized instance number
Name = FName : : CreateFromDisplayId ( MappedName , Number ) ;
}
else
{
Name = FName ( ) ;
SetCriticalError ( ) ;
}
return * this ;
}
void SerializeNameMap ( const FPackageFileSummary & PackageFileSummary )
{
Seek ( PackageFileSummary . NameOffset ) ;
NameMap . Reserve ( PackageFileSummary . NameCount ) ;
FNameEntrySerialized NameEntry ( ENAME_LinkerConstructor ) ;
for ( int32 Idx = NameMap . Num ( ) ; Idx < PackageFileSummary . NameCount ; + + Idx )
{
* this < < NameEntry ;
NameMap . Emplace ( FName ( NameEntry ) . GetDisplayIndex ( ) ) ;
}
}
} ;
FString ReconstructFullClassPath ( FArchive & BinaryArchive , const FString & PackageName , const FPackageFileSummary & PackageFileSummary , const FString & AssetClassName )
{
FLinkerTables LinkerTables ;
FNameMapAwareArchive NameMapArchive ( BinaryArchive ) ;
NameMapArchive . SerializeNameMap ( PackageFileSummary ) ;
FName ClassFName ( * AssetClassName ) ;
// Load the linker tables
BinaryArchive . Seek ( PackageFileSummary . ImportOffset ) ;
for ( int32 ImportMapIndex = 0 ; ImportMapIndex < PackageFileSummary . ImportCount ; + + ImportMapIndex )
{
FObjectImport * Import = new ( LinkerTables . ImportMap ) FObjectImport ;
NameMapArchive < < * Import ;
}
BinaryArchive . Seek ( PackageFileSummary . ExportOffset ) ;
for ( int32 ExportMapIndex = 0 ; ExportMapIndex < PackageFileSummary . ExportCount ; + + ExportMapIndex )
{
FObjectExport * Export = new ( LinkerTables . ExportMap ) FObjectExport ;
NameMapArchive < < * Export ;
}
FString ClassPathName ;
// Now look through the exports' classes and find the one matching the asset class
for ( const FObjectExport & Export : LinkerTables . ExportMap )
{
if ( Export . ClassIndex . IsImport ( ) )
{
if ( LinkerTables . ImportMap [ Export . ClassIndex . ToImport ( ) ] . ObjectName = = ClassFName )
{
ClassPathName = LinkerTables . GetImportPathName ( Export . ClassIndex . ToImport ( ) ) ;
break ;
}
}
else if ( Export . ClassIndex . IsExport ( ) )
{
if ( LinkerTables . ExportMap [ Export . ClassIndex . ToExport ( ) ] . ObjectName = = ClassFName )
{
ClassPathName = LinkerTables . GetExportPathName ( PackageName , Export . ClassIndex . ToExport ( ) ) ;
break ;
}
}
}
if ( ClassPathName . IsEmpty ( ) )
{
UE_LOG ( LogAssetRegistry , Error , TEXT ( " Failed to find an import or export matching asset class short name \" %s \" . " ) , * AssetClassName ) ;
// Just pass through the short class name
ClassPathName = AssetClassName ;
}
return ClassPathName ;
}
2020-09-24 00:43:27 -04:00
// See the corresponding WritePackageData defined in SavePackageUtilities.cpp in CoreUObject module
bool ReadPackageDataMain ( FArchive & BinaryArchive , const FString & PackageName , const FPackageFileSummary & PackageFileSummary , int64 & OutDependencyDataOffset , TArray < FAssetData * > & OutAssetDataList , EReadPackageDataMainErrorCode & OutError )
{
OutError = EReadPackageDataMainErrorCode : : Unknown ;
const FString PackagePath = FPackageName : : GetLongPackagePath ( PackageName ) ;
const int64 PackageFileSize = BinaryArchive . TotalSize ( ) ;
2021-02-10 15:37:45 -04:00
const bool bIsMapPackage = ( PackageFileSummary . GetPackageFlags ( ) & PKG_ContainsMap ) ! = 0 ;
2020-09-24 00:43:27 -04:00
// To avoid large patch sizes, we have frozen cooked package format at the format before VER_UE4_ASSETREGISTRY_DEPENDENCYFLAGS
2021-04-14 11:13:44 -04:00
bool bPreDependencyFormat = PackageFileSummary . GetFileVersionUE ( ) < VER_UE4_ASSETREGISTRY_DEPENDENCYFLAGS | | ! ! ( PackageFileSummary . GetPackageFlags ( ) & PKG_FilterEditorOnly ) ;
2020-09-24 00:43:27 -04:00
// Load offsets to optionally-read data
if ( bPreDependencyFormat )
{
OutDependencyDataOffset = INDEX_NONE ;
}
else
{
BinaryArchive < < OutDependencyDataOffset ;
}
// Load the object count
int32 ObjectCount = 0 ;
BinaryArchive < < ObjectCount ;
const int32 MinBytesPerObject = 1 ;
if ( BinaryArchive . IsError ( ) | | ObjectCount < 0 | | PackageFileSize < BinaryArchive . Tell ( ) + ObjectCount * MinBytesPerObject )
{
OutError = EReadPackageDataMainErrorCode : : InvalidObjectCount ;
return false ;
}
// Worlds that were saved before they were marked public do not have asset data so we will synthesize it here to make sure we see all legacy umaps
// We will also do this for maps saved after they were marked public but no asset data was saved for some reason. A bug caused this to happen for some maps.
if ( bIsMapPackage )
{
2021-04-14 11:13:44 -04:00
const bool bLegacyPackage = PackageFileSummary . GetFileVersionUE ( ) < VER_UE4_PUBLIC_WORLDS ;
2020-09-24 00:43:27 -04:00
const bool bNoMapAsset = ( ObjectCount = = 0 ) ;
if ( bLegacyPackage | | bNoMapAsset )
{
FString AssetName = FPackageName : : GetLongPackageAssetName ( PackageName ) ;
Deprecating ANY_PACKAGE.
This change consists of multiple changes:
Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values
AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes
Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names
#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32
#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786
#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)
[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
OutAssetDataList . Add ( new FAssetData ( FName ( * PackageName ) , FName ( * PackagePath ) , FName ( * AssetName ) , FTopLevelAssetPath ( TEXT ( " /Script/Engine " ) , TEXT ( " World " ) ) , FAssetDataTagMap ( ) , PackageFileSummary . ChunkIDs , PackageFileSummary . GetPackageFlags ( ) ) ) ;
2020-09-24 00:43:27 -04:00
}
}
const int32 MinBytesPerTag = 1 ;
// UAsset files usually only have one asset, maps and redirectors have multiple
for ( int32 ObjectIdx = 0 ; ObjectIdx < ObjectCount ; + + ObjectIdx )
{
FString ObjectPath ;
FString ObjectClassName ;
int32 TagCount = 0 ;
BinaryArchive < < ObjectPath ;
BinaryArchive < < ObjectClassName ;
Deprecating ANY_PACKAGE.
This change consists of multiple changes:
Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values
AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes
Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names
#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32
#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786
#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)
[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
// @todo make sure this is a full path name
2020-09-24 00:43:27 -04:00
BinaryArchive < < TagCount ;
if ( BinaryArchive . IsError ( ) | | TagCount < 0 | | PackageFileSize < BinaryArchive . Tell ( ) + TagCount * MinBytesPerTag )
{
OutError = EReadPackageDataMainErrorCode : : InvalidTagCount ;
return false ;
}
FAssetDataTagMap TagsAndValues ;
TagsAndValues . Reserve ( TagCount ) ;
for ( int32 TagIdx = 0 ; TagIdx < TagCount ; + + TagIdx )
{
FString Key ;
FString Value ;
BinaryArchive < < Key ;
BinaryArchive < < Value ;
if ( BinaryArchive . IsError ( ) )
{
OutError = EReadPackageDataMainErrorCode : : InvalidTag ;
return false ;
}
if ( ! Key . IsEmpty ( ) & & ! Value . IsEmpty ( ) )
{
TagsAndValues . Add ( FName ( * Key ) , Value ) ;
}
}
// Before worlds were RF_Public, other non-public assets were added to the asset data table in map packages.
// Here we simply skip over them
2021-04-14 11:13:44 -04:00
if ( bIsMapPackage & & PackageFileSummary . GetFileVersionUE ( ) < VER_UE4_PUBLIC_WORLDS )
2020-09-24 00:43:27 -04:00
{
if ( ObjectPath ! = FPackageName : : GetLongPackageAssetName ( PackageName ) )
{
continue ;
}
}
// if we have an object path that starts with the package then this asset is outer-ed to another package
const bool bFullObjectPath = ObjectPath . StartsWith ( TEXT ( " / " ) , ESearchCase : : CaseSensitive ) ;
// if we do not have a full object path already, build it
if ( ! bFullObjectPath )
{
// if we do not have a full object path, ensure that we have a top level object for the package and not a sub object
if ( ! ensureMsgf ( ! ObjectPath . Contains ( TEXT ( " . " ) , ESearchCase : : CaseSensitive ) , TEXT ( " Cannot make FAssetData for sub object %s in package %s! " ) , * ObjectPath , * PackageName ) )
{
UE_ASSET_LOG ( LogAssetRegistry , Warning , * PackageName , TEXT ( " Cannot make FAssetData for sub object %s! " ) , * ObjectPath ) ;
continue ;
}
ObjectPath = PackageName + TEXT ( " . " ) + ObjectPath ;
}
// Previously export couldn't have its outer as an import
2021-04-14 11:13:44 -04:00
else if ( PackageFileSummary . GetFileVersionUE ( ) < VER_UE4_NON_OUTER_PACKAGE_IMPORT )
2020-09-24 00:43:27 -04:00
{
UE_ASSET_LOG ( LogAssetRegistry , Warning , * PackageName , TEXT ( " Package has invalid export %s, resave source package! " ) , * ObjectPath ) ;
continue ;
}
// Create a new FAssetData for this asset and update it with the gathered data
Deprecating ANY_PACKAGE.
This change consists of multiple changes:
Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values
AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes
Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names
#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32
#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786
#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)
[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
if ( ! ObjectClassName . IsEmpty ( ) & & FPackageName : : IsShortPackageName ( ObjectClassName ) )
{
int64 CurrentPos = BinaryArchive . Tell ( ) ;
ObjectClassName = ReconstructFullClassPath ( BinaryArchive , PackageName , PackageFileSummary , ObjectClassName ) ;
BinaryArchive . Seek ( CurrentPos ) ;
}
OutAssetDataList . Add ( new FAssetData ( PackageName , ObjectPath , FTopLevelAssetPath ( ObjectClassName ) , MoveTemp ( TagsAndValues ) , PackageFileSummary . ChunkIDs , PackageFileSummary . GetPackageFlags ( ) ) ) ;
2020-09-24 00:43:27 -04:00
}
return true ;
}
// See the corresponding WriteAssetRegistryPackageData defined in SavePackageUtilities.cpp in CoreUObject module
bool ReadPackageDataDependencies ( FArchive & BinaryArchive , TBitArray < > & OutImportUsedInGame , TBitArray < > & OutSoftPackageUsedInGame )
{
BinaryArchive < < OutImportUsedInGame ;
BinaryArchive < < OutSoftPackageUsedInGame ;
return ! BinaryArchive . IsError ( ) ;
}
}