Commit Graph

38 Commits

Author SHA1 Message Date
Mike Beach
45d00a2d8a Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3235800)
#lockdown Nick.Penwarden
#rb none

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3194900 on 2016/11/11 by Ryan.Rauschkolb

	Fixed issue where Reroute node pins weren't mirroring data properly.
	#jira UE-33717

Change 3195081 on 2016/11/11 by Dan.Oconnor

	This @todo was addressed

Change 3196368 on 2016/11/14 by Maciej.Mroz

	Results of FBlueprintNativeCodeGenModule::IsTargetedForReplacement are cashed - optimization (cooking time).

Change 3196369 on 2016/11/14 by Maciej.Mroz

	CompileDisplaysBinaryBackend, CompileDisplaysTextBackend and bDisplaysLayout features (in [Kismet] in Engine.ini) are disabled in commandlets. They slow down BP compilation.

Change 3196398 on 2016/11/14 by Ben.Cosh

	Reworked the tracking of latent and expansion event tracking in the blueprint compiler for use with the blueprint profiler.
	#Jira - UE-37364 - Crash: PIE with instrumented PlayerPawn_Generic added to AITestbed scene
	#Proj BlueprintProfiler, KismetCompiler. BlueprintGraph, Engine

Change 3196410 on 2016/11/14 by Maciej.Mroz

	Fixed crash in UK2Node_Knot::PropagatePinTypeFromInput

Change 3196852 on 2016/11/14 by Maciej.Mroz

	Fixed static analysis warning.

Change 3196874 on 2016/11/14 by Maciej.Mroz

	#jira UE-37778
	(the issue was already fixed, but it was reintroduced, when EDL support was added).

	ObjectImport->XObject is not filled prematurelly, so CreateExport is properly called each dynamic class.

Change 3197469 on 2016/11/14 by Dan.Oconnor

	Fix for being able to make Sets and Maps of user defined structs that contained unhashable types (e.g. Rotator)

Change 3197703 on 2016/11/14 by Dan.Oconnor

	Updated documentation comment to reflect current behavior

Change 3198167 on 2016/11/15 by Maciej.Mroz

	Merged 3196582 from Dev-Core

	UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.

Change 3198433 on 2016/11/15 by Ryan.Rauschkolb

	Fixed Copy/pasting variable nodes hides them from a reference search
	#UE-31606

Change 3198811 on 2016/11/15 by Maciej.Mroz

	Fixed Knot node - it will use/propagate the type from input connection, if it's possible (intstead of the type from output connection).

Change 3198866 on 2016/11/15 by Maciej.Mroz

	#jira UE-38578

	Fixed infinite loading of DynamicClass in EDL.

Change 3199045 on 2016/11/15 by Phillip.Kavan

	[UE-27402] Fix attached Actor-based Blueprint instance root component relative transform values after reconstruction.

	change summary:
	- modified FActorComponentInstanceData's ctor to exclude relative transform properties when caching root component values.

	#jira UE-27402

Change 3200703 on 2016/11/16 by Mike.Beach

	Marking the ease node explicitly as pure, which makes it so we can prune it from graphs when it is unused.

	#jira UE-38453

Change 3201115 on 2016/11/16 by Maciej.Mroz

	Nativization + EDL: "Dynamic" objects are processed by FAsyncPackage::PostLoadDeferredObjects, so the EInternalObjectFlags::AsyncLoading flag is properly cleared.

Change 3201749 on 2016/11/17 by Maciej.Mroz

	In EDL a package containig a dynamic class has PKG_CompiledIn flag (the same like without EDL).

Change 3202577 on 2016/11/17 by Mike.Beach

	Accounting for a change in our intermediate node mapping - the old list no longer maps expanded nodes to macro instances (instead it maps to the corresponding node in the macro graph), so we had to use a new mapping meant for this.

	#jira UE-35609

Change 3204803 on 2016/11/18 by Phillip.Kavan

	[UE-38607] Implicitly turn on Blueprint class nativization for dependencies.

	change summary:
	- added a UBlueprint::PostEditChangeProperty() override method to handle this.

	#jira UE-38607

Change 3204812 on 2016/11/18 by Phillip.Kavan

	[UE-38580] Implicitly turn on the "nativize" project setting when enabling nativize for any Blueprint class.

	change summary:
	- modified UBlueprint::PostEditChangeProperty() to update project packaging settings if necessary

	#jira UE-38580

Change 3204818 on 2016/11/18 by Phillip.Kavan

	[UE-38725] Interface class dependencies that are not enabled for nativization will now raise an error during nativized cooks.

	change summary:
	- modified FBlueprintNativeCodeGenModule::IsTargetedForReplacement() to check interface class dependencies in addition to parent class dependencies.

	#jira UE-38725

Change 3204963 on 2016/11/18 by Dan.Oconnor

	Create a transaction when using UBlueprintFunctionNodeSpawner* directly
	#jira UE-36439

Change 3206510 on 2016/11/21 by Mike.Beach

	Adding math-expression aliases for dot and cross functions ("dot" and "cross" respectively).

	#jira UEBP-71

Change 3206547 on 2016/11/21 by Mike.Beach

	Exposing GetReflectionVector() to Blueprints.

	#jira UEBP-70

Change 3206658 on 2016/11/21 by Dan.Oconnor

	Fix for compile error, digging out authorative class from trash class.

	Mirror of 3206638 from Odin

	#jira None

Change 3207579 on 2016/11/22 by Mike.Beach

	No longer enforcing the requirement that game UFunctions have to have a category (making writing of game code easier).

	#jira UE-18093

Change 3207956 on 2016/11/22 by Phillip.Kavan

	[UE-38690] Fix a regression in which nested scene component subobjects would no longer be registered after construction of an instance-added component in IWCE.

	change summary:
	- modified the IWCE path in SSCSEditor::AddNewComponent() to ensure that any components added as a result of instancing the newly-added component are also registered.
	- modified AActor::ExecuteConstruction() to ensure that non-scene, native nested component subobjects that might be created as a result of SCS execution are also registered (previously it was only considering non-scene components that were explicitly created by the SCS, or that inherited the creation method of the instance that created it).

	#jira UE-38690

Change 3208217 on 2016/11/22 by Mike.Beach

	Modified fix (originally from Ryan.Rauschkolb, CL 3186023):

	Fixed unable to set struct variable name if name includes space

	#jira UE-28435

Change 3208347 on 2016/11/22 by Mike.Beach

	Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)

Change 3208688 on 2016/11/23 by Ben.Cosh

	Made a minor change that forces debugging references to the PIE world when the play in editor world is changed. This is intended to better handle mutliple game instance/world debugging scenarios.
	#Jira UE-26386 - Can't hit breakpoints in blueprints for level script for server instances
	#Proj Engine, UnrealEd

Change 3208712 on 2016/11/23 by Ben.Cosh

	Improved handling of unwired transform struct terminal expression's in the blueprint VM compiler to remove an errant warning.
	#Jira UE-32401 - "ImportText: Missing opening parenthesis" message, when a function returns Transform
	#Proj KismetCompiler

Change 3209457 on 2016/11/23 by Phillip.Kavan

	[UE-30479] Fix inability to edit the ISMC instance array on Actor instances when the ISMC is inherited from a Blueprint class.

	change summary:
	- added PPF_ForceTaggedSerialization as a means to override the CPF_SkipSerialization flag when explicit serialization of the property value is needed
	- modified UProperty::ShouldSerializeValue() to check for and handle the PPF_ForceTaggedSerialization flag when the CPF_SkipSerialization flag is present
	- modified UActorComponent::DetermineUCSModifiedProperties() to add the PPF_ForceTaggedSerialization flag to the custom FArchive impl
	- modified FActorComponentInstanceData::FActorComponentInstanceData() to add the PPF_ForceTaggedSerialization flag to the custom FObjectWriter impl
	- modified FActorComponentInstanceData::ApplyToComponent() to add the PPF_ForceTaggedSerialization flag to the custom FObjectReader impl

	#jira UE-30479

Change 3209758 on 2016/11/24 by Maciej.Mroz

	#jira UE-38979

	Nativization: fixed error when a BP implements a native interface.
	FBlueprintNativeCodeGenModule::IsTargetedForReplacement will return "DontReplace" for native class.

Change 3210376 on 2016/11/25 by Maciej.Mroz

	#jira UE-39028
	Fixed  FBlueprintNativeCodeGenModule::FindReplacedNameAndOuter
	Components in nativized BPCG SCS have replaced outer object and name while cooking.

Change 3210936 on 2016/11/28 by Phillip.Kavan

	Minor revision to try and avoid a potentially expensive Contains() call when possible.

Change 3211527 on 2016/11/28 by Maciej.Mroz

	Fixed map of names cooked in packages in nativized build.

Change 3211969 on 2016/11/28 by Mike.Beach

	Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)

Change 3212328 on 2016/11/28 by Dan.Oconnor

	Enum, pointer and arithmetic specializations for THasGetTypeHash, as VC doesn't detect them properly.
	TIsEnum moved to its own header. Submitted on behalf of steve.robb

Change 3212398 on 2016/11/28 by Dan.Oconnor

	Build fix, this function is part of another change

Change 3212442 on 2016/11/28 by Dan.Oconnor

	UHT now supports structs in TMap and TSet, misc. fixes to PropertyStruct's PropertyFlags detecting whether the struct type is hashable (all HasGetTypeHash flags are now computed from THasGetTypeHash). Various fixes for generating TMap/TSet code from blueprints

Change 3212578 on 2016/11/28 by Dan.Oconnor

	Rename RegisterClass to avoid collsion with RegistClass macro in generated code

Change 3213668 on 2016/11/29 by Dan.Oconnor

	Fix for missing CDO when instatiating some subobjects in nativized BPs
	#jira UE-34980

Change 3213737 on 2016/11/29 by Dan.Oconnor

	Added GetTypeHash implementation to UEnumProperty
	#jira UE-39091

Change 3215225 on 2016/11/30 by Maciej.Mroz

	Bunch of changes required for nativized Orion to work with EDL.
	- ClientOnly, ServerOnly and EditorOnly assets are properly distinguished and handled
	- Introduced FCompilerNativizationOptions
	- fixed inproper references to BP instead of BPGC
	- fixed generated delegate name
	- hack for DefaultRootNode UE-39168
	- improved NativeCodeGenrationTool
	- various minor improvements

Change 3216363 on 2016/11/30 by Dan.Oconnor

	Better fix for discrepency between UUserDefinedEnum::GetEnumText and UEnum::GetEnumText. Without meta data we could not look up display names, so I'm writing out the display names into a function in the BP cpp backend. This function could be generated by UHT if we wanted to correct this odd behavior for native enums
	#jira UE-27735

Change 3217168 on 2016/12/01 by Maciej.Mroz

	#jira UE-35390
	Nativization:
	Fixed compilation warning C4458: declaration of 'CurrentState' hides class member
	Disabled warning C4996 (deprecated) in nativized code.

Change 3217320 on 2016/12/01 by Phillip.Kavan

	[UE-38652] Selecting Blueprint assets for nativization is now integrated into the project's configuration.

	change summary:
	- added EProjectPackagingBlueprintNativizationMethod
	- deprecated the 'bNativizeBlueprintAssets' and 'bNativizeOnlySelectedBlueprints' flags in favor of a new 'BlueprintNativizationMethod' config property in UProjectPackagingSettings
	- added a new 'NativizeBlueprintAssets' config property to UProjectPackagingSettings to track/store the list of Blueprints to be nativized when the exclusive method (whitelist) is selected
	- added a PostInitProperties() override to UProjectPackagingSettings; implemented to migrate from the deprecated config properties to the new method enum type
	- updated FMainFrameActionCallbacks::PackageProject() to migrate to checking the enum type
	- updated FBlueprintNativeCodeGenModule::IsTargetedForReplacement() to migrate to checking the enum type
	- modified UProjectPackagingSettings::CanEditChange() to enable editing of the nativization whitelist only when the "exclusive" method is active
	- modified UProjectPackagingSettings::PostEditChangeProperty() to add a new case for handling changes to the whitelist; changes are propagated to any Blueprint assets that are loaded
	- added new Add/RemoveBlueprintAssetFromNativizationList() APIs to UProjectPackagingSettings for assisting with adding/removing Blueprint assets to/from the exclusive list (whitelist)
	- deprecated the 'bNativize' flag in UBlueprint in favor of a new transient 'bSelectedForNativization' flag that is no longer serialized; this now caches whether or not the asset is present in the whitelist in the project config
	- modified UBlueprint::Serialize() to both migrate from the deprecated flag to the project config/transient flag on load, as well as to propagate the value of the transient flag back to the project config on save. this means that if the user changes the value of the transient flag through the Details view, that change won't be reflected back to the project config until the Blueprint is actually saved (saving the value to the config rather than serializing to the asset)
	- modified UBlueprint::PostEditChangeProperty() to remove code that was previously updating the project configuration at edit time. this functionality has been relocated to Serialize() (save time) instead.

	notes:
	- also completes UE-38636 (task: consolidate config options into a single drop-down)

	#jira UE-38652

Change 3218124 on 2016/12/01 by Dan.Oconnor

	 CPF_HasGetValueTypeHash flag was not set on native UEnumProperties
	#jira UE-39181

Change 3218168 on 2016/12/01 by Phillip.Kavan

	Fix local var name that shadows a function param (CIS fix).

Change 3219117 on 2016/12/02 by Maciej.Mroz

	#jira UE-39241 "warning C4458: declaration of XXX hides class member" In Nativized Code

	Nativization:
	Fixed compilation warning C4458: when local function variable hides a class variable. Names of local variables in funvtions have prefix "bpfv__".

Change 3219201 on 2016/12/02 by Mike.Beach

	Keeping the "Select All Input Nodes" option from infinitely recurssing by blocking on nodes it has already selected.

	#jira UE-38988

Change 3219247 on 2016/12/02 by Mike.Beach

	Fixing CIS shadow variable warning from my last check in (CL 3219201).

Change 3219332 on 2016/12/02 by Maciej.Mroz

	#jira HeaderParser: "private:" specifier is lost in FGameplayTag::TagName
	Workaround for UE-38231

Change 3219381 on 2016/12/02 by Mike.Beach

	Accounting for cyclic compile issues in cast-node's validate function, making it check the authoratative class instead of the current type. Also down grading some of the warnings to notes (suggesting the users don't need the cast).

	#jira UE-39272

Change 3220224 on 2016/12/02 by Dan.Oconnor

	Reduce font size for compact nodes

Change 3220476 on 2016/12/03 by Maciej.Mroz

	#jira UE-35390
	Better fix for UE-35390
	Disabled deprecation warnings in nativized code.

Change 3221637 on 2016/12/05 by Maciej.Mroz

	#jira UEBP-245

	Nativization:
	Forced ImportCreation while InitialLoad for DynamicClasses.

Change 3222306 on 2016/12/05 by Dan.Oconnor

	Support for default values of TMap and TSet local variables
	#jira UE-39239

Change 3222383 on 2016/12/05 by Dan.Oconnor

	Fixed bug in Blueprint TMap function for getting values out of a TMap

Change 3222427 on 2016/12/05 by Mike.Beach

	Preventing ChildActorTemplate fixups from occuring on component load, when they may instead be a placeholder object (a byproduct of deferred Blueprint loading - a guard against cyclic load problems).

	#jira UE-39323

Change 3222679 on 2016/12/05 by Dan.Oconnor

	Remove unused code. Had no sideeffects, other than potential for leak when struct with non-trivial dtor was allocated here.

Change 3222719 on 2016/12/05 by Dan.Oconnor

	Earlier detection of invalid native map/set properties. These generate a compile error if any TMap/TSet functions are used, but will slip by undetected if not used. Working on static assert to catch them.
	#jira UE-39338

Change 3224375 on 2016/12/06 by Dan.Oconnor

	Add tags for testing of array diffing

Change 3224507 on 2016/12/07 by Phillip.Kavan

	[UE-39055] Fix a crash caused by an object name collision that could occur when loading some older Blueprint assets.

	change summary:
	- added UInheritableComponentHandler::FixComponentTemplateName()
	- modified UInheritableComponentHandler::PostLoad() to check for and correct stale records that cause a collision with the corrected name
	- added a UInheritableComponentHandler::Serialize() override to ensure that UsingCustomVersion() is called for the asset containing the ICH (already happening in UBlueprint::Serialize(), but added for consistency with other usage)
	- modified USimpleConstructionScript::Serialize() to ensure that UsingCustomVersion() is called for the asset containing the SCS (same reason as above)

	#jira UE-39055

Change 3225572 on 2016/12/07 by Samuel.Proctor

	Test assets for TSet/TMap testing. Includes new native class for testing containers. #rb none

Change 3225577 on 2016/12/07 by Samuel.Proctor

	New test map for Array, TSet and Tmap testing.

Change 3226281 on 2016/12/07 by Dan.Oconnor

	Container test asset, needs to be in p4 for diff tool tests.

Change 3226345 on 2016/12/07 by Dan.Oconnor

	Another revision of test data

Change 3228496 on 2016/12/09 by Ben.Cosh

	This change adds extra information to component template arrays so that the component class can be determined in builds that strip out objects of certain class types such as the editor dedicated server build.
	#Jira UE-38842 - "LogBlueprint:Error: [Compiler BP_Skybox_World_RandomTrees_01] Error Can't connect pins ReturnValue and Target" after entering a lobby in a synced server
	#Proj KismetCompiler, BlueprintGraph, UnrealEd, Core, Engine, Kismet, BlueprintCompilerCppBackend

Change 3230120 on 2016/12/09 by Dan.Oconnor

	Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)

Change 3230700 on 2016/12/12 by Samuel.Proctor

	Removing some array test properties from container test class that were not needed. Also updated struct element to better reflect testing purpose. #rb none

Change 3230926 on 2016/12/12 by Samuel.Proctor

	Missed a file on previous container test native QA asset checkin. #rb none

Change 3231246 on 2016/12/12 by Dan.Oconnor

	PR #3003: New Feature: In-editor diff of arrays and structs now highlights diff. (Contributed by CA-ADuran).

	I've added TSet and TMap support as well.

Change 3231311 on 2016/12/12 by Dan.Oconnor

	Handle class load failure
	#jira UE-39480

Change 3231387 on 2016/12/12 by Dan.Oconnor

	Shadow variable fixes

Change 3231501 on 2016/12/12 by Dan.Oconnor

	More shadow fixes

Change 3231584 on 2016/12/12 by Maciej.Mroz

	#jira UE-39636

	Replaced obsolate macro usage.

	#fyi Dan.Oconnor

Change 3231685 on 2016/12/12 by Mike.Beach

	PR #3032: Fixed category for IsValidIndex (Contributed by elFarto)

	#jira UE-39660

Change 3231689 on 2016/12/12 by Maciej.Mroz

	Nativization: Fixed Dependency list generation.

Change 3231765 on 2016/12/12 by Phillip.Kavan

	[UE-38903] Auto-enable exclusive Blueprint nativization only after explicitly selecting the first asset.

	change summary:
	- fixed up the auto-enable logic on save in UBlueprint::Serialize()

	#jira UE-38903
	#fyi Maciej.Mroz

Change 3231837 on 2016/12/12 by Dan.Oconnor

	Restore hack to keep objects referenced by bytecode alive while in editor
	#jira UE-38486

Change 3232085 on 2016/12/13 by Phillip.Kavan

	Compile fix.

Change 3232435 on 2016/12/13 by Ben.Cosh

	Fix for a bug introduced in CL 3228496 that caused component templates to fail to be identified by name and resulted in blueprint compilation issues for add component nodes.
	#Jira UE-39623 - Unknown template referenced by Add Component Node
	#Proj BlueprintGraph, Engine

Change 3232437 on 2016/12/13 by Maciej.Mroz

	#jira UE-33021

	Remove an obsolete warning.

Change 3232564 on 2016/12/13 by Ben.Cosh

	This adds extra component template renaming propagation and checking for the blueprint generated class and blueprint skeleton class.
	#Jira UE-39623 - Unknown template referenced by Add Component Node
	#Proj BlueprintGraph

	- Implementing a bit of review feedback and some safety checking.

Change 3232598 on 2016/12/13 by Maciej.Mroz

	Nativization:
	stati functions cannot be const, so no workaound (_Inner function) specyfic to const functions is necessary

	#jira UE-39518

Change 3232601 on 2016/12/13 by Phillip.Kavan

	[UE-38975] Warn on BuildCookRun or a standalone cook when the -nativizeAssets flag is omitted from the command line for a nativization-enabled project.

	change summary:
	- added 'bWarnIfPackagedWithoutNativizationFlag' to UProjectPackagingSettings (default = true)
	- modified UCookOnTheFlyServer::StartCookByTheBook() to check for the presence of the -nativizeAssets flag and emit a warning for unexpected omission from the command line
	- modified UAT to include a warning for the BuildCookRun command when -build is specified with the same unexpected omission of the -nativizeAssets flag on the UAT command line

	#jira UE-38975

Change 3232749 on 2016/12/13 by Mike.Beach

	Moving Blueprint nativization out of the experimental category.

	#jira UE-39358

Change 3233043 on 2016/12/13 by Dan.Oconnor

	Various fixes for TSet/TMap nativization issues
	#jira UE-39634

Change 3233086 on 2016/12/13 by Dan.Oconnor

	Advanced Containers (TSet/TMap) no longer experimental

Change 3233175 on 2016/12/13 by Mike.Beach

	Whitelising "Packaging" as an acceptable BP settings category (follow up to CL 3232749).

	#jira UE-39358

Change 3233182 on 2016/12/13 by Mike.Beach

	Exposing the editor setting "Show Action Menu Item Signatures" through the Blueprint Developer menu (for ease of access).

Change 3233662 on 2016/12/13 by Phillip.Kavan

	[UE-39722] Fix a typo that led to a UAT runtime failure.

	#jira UE-39722

Change 3233710 on 2016/12/13 by Dan.Oconnor

	Clang template useage fix
	#jira UE-39742

Change 3233895 on 2016/12/13 by Dan.Oconnor

	Several fixes to crashes that occur when you delete a blueprint asset when its children are not loaded.
	#jira UE-39558

Change 3234443 on 2016/12/14 by Phillip.Kavan

	[UE-39354] Fix script VM crash on assignment to TSet/TMap variables.

	change summary:
	- modified FScriptBuilderBase::EmitDestinationExpression() to consider TSet/TMap value types in addition to TArray terms

	#jira UE-39354

Change 3234581 on 2016/12/14 by Mike.Beach

	Backing out fix for UE-38842 (CL 3228496/3232435/3232564) - mapping UBlueprintGeneratedClass's ComponentTemplates array to a new format was causing issues with deferred dependency loading during serialization (trying to extract type information from a placeholder object). We're opting for a smaller/simpler solution to UE-38842, which will be to store the component information on the node itself (not with the templates).

	#jira UE-39707

Change 3234729 on 2016/12/14 by Mike.Beach

	Making it so AddComponent nodes now track the component (class) type that they represent (in case the template cannot be spawned, like in -server w/ client-only components).

	#jira UE-38842

Change 3234805 on 2016/12/14 by Mike.Beach

	Fixing CIS shadowed variable warning.

Change 3234830 on 2016/12/14 by Nick.Atamas

	Added extra debugging mechanisms to help track down duplicate item issues with TableViews.

Change 3235075 on 2016/12/14 by Mike.Beach

	Creating a helper to better manage nested scope blocks added in generated code - on close, clears out cached local accessor variables that were added, so we don't use one that was declared inside the nested scope.

	#jira UE-39769

Change 3235213 on 2016/12/14 by Phillip.Kavan

	[UE-39790] Fix UAT compile issue after latest merge from Main.

	change summary:
	- migrated the BuildCookRun command's usage of the (deprecated) ConfigCacheIni to the new ConfigHierarchy API

	#jira UE-39790

Change 3235384 on 2016/12/14 by Mike.Beach

	Defaulting to excluding data-only Blueprints from nativization.

Change 3235675 on 2016/12/14 by Nick.Atamas

	Hopefully fixed build.
	Added OnEnteredBadState delegate that lets users add arbitrary logging info when the List/Tree enters a bad state.

Change 3235761 on 2016/12/14 by Mike.Beach

	Hopefully resolving CIS mac/ps4 build failures in Dev-BP for 4.15 integration.

	#jira UE-39800

Change 3235800 on 2016/12/14 by Mike.Beach

	More hopeful CIS mac/ps4 fixes for 4.15 integration.

	#jira UE-39800

[CL 3236017 by Mike Beach in Main branch]
2016-12-14 22:10:20 -05:00
Ben Marsh
20bf0eb6a1 Updating copyright notices to 2017 (copying from //Tasks/UE4/Dev-Copyright-2017).
#rb none
#lockdown Nick.Penwarden

[CL 3226823 by Ben Marsh in Main branch]
2016-12-08 08:52:44 -05:00
Ben Marsh
4ba423868f 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
Mike Beach
f64d552970 Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3152873)
#lockdown Nick.Penwarden
#rb none

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3131279 on 2016/09/19 by Mike.Beach

	Fixing FText::Format warning for the Sub-Level Blueprints menu - Was using {LevelName} tag when there was no value for {LevelName} (defaulted to the first argument).

	#jira UE-36097

Change 3131318 on 2016/09/19 by Phillip.Kavan

	[UE-35690] Minor revisions to Blueprint SCS execution to improve efficiency and address an out-of-order registration issue.

	change summary:
	- modified AActor::PostSpawnInitialize() to defer native component registration if there is no native scene root component set and if the actor is a BP type (i.e. will invoke SCS). this means that native actor classes with only non-scene components will now defer registration/post-registration until after SCS execution has established a valid scene root.
	- modified AActor::ExecuteConstruction() to gather the set of native scene components that SCS nodes can attach to before invoking the SCS. this was previously being done redundantly within the SCS itself at each level of the BP class inheritance hierarchy.
	- modified AActor::ExecuteConstruction() to do a final registration pass over all components after the all SCS levels have been executed. this was also previously being done within the SCS at each level. this avoids some extra redundancy.
	- modified USCS_Node::ExecuteNodeOnActor() to call RegisterAllComponents() on the given actor instance after establishing a valid scene root component if it was previously deferred at spawn time.
	- modified USCS_Node::ExecuteNodeOnActor() to now register components after they're created. since SCS execution goes from parent to child, parent scene components will always be registered before their children. non-native, non-scene component registration will also be deferred until a scene root component has been established.
	- added AActor::HasDeferredComponentRegistration()
	- modified AActor::RegisterAllComponents() to reset the actor's deferred component registration flag when called
	- modified AActor::AddComponent() to check the 'bAutoRegister' flag before calling RegisterComponent() (for consistency)
	- moved the RegisterInstancedComponent() utility method into USimpleConstructionScript and modified it to ensure that parent attachments are registered before their children.
	- modified USimpleConstructionScript::ExecuteScriptOnActor() to include an additional input parameter for passing in the set of native scene components that can be attached to.
	- modified USimpleConstructionScript::ExecuteScriptOnActor() to remove redundant/unnecessary work as noted above.

	#jira UE-35690

Change 3131842 on 2016/09/20 by Maciej.Mroz

	#jira UE-34984 Broken (weak) object params on Blueprint function (cannot add plain reference)

Change 3131847 on 2016/09/20 by Maciej.Mroz

	SPropertyEditorAsset doesn't display UClass with "_C" prefix anymore.

Change 3131923 on 2016/09/20 by Maciej.Mroz

	#jira UE-33812 Crash while closing Create Blank New Blueprint window after attempting to name blueprint the same name as another blueprint

Change 3132348 on 2016/09/20 by Phillip.Kavan

	Fix CIS build issue (SA).

Change 3132383 on 2016/09/20 by Maciej.Mroz

	#jira UE-35830 Float Curve that is set as a local variable in an actor's function is garbage collected when in Standalone, causing a crash

	Array UStruct::ScriptObjectReferences is filled while compilation. GC doesn't serialize script bytecode in editor anymore.

Change 3133072 on 2016/09/20 by Maciej.Mroz

	#jira UE-34388 Crash upon deleting Blueprints folder

Change 3133216 on 2016/09/20 by Dan.Oconnor

	+ BlueprintSetLibrary (add, remove, find, etc)
	+ HasGetTypeHash compile time function for detecting types that have GetTypeHish (modeled after HasOperatorEquals)
	= SPinTypeSelector can now disable container types based on current primary type, required transition to SComboButtton/SListView from SComboBox
	= Hide blueprint set library via BaseEditor.ini
	#jira UE-2114

Change 3133227 on 2016/09/20 by Dan.Oconnor

	Test assets for TSet

Change 3133804 on 2016/09/21 by Maciej.Mroz

	#jira UE-34069 	ObjectLibrary stores UBlueprint instead of BPGC

	In UObjectLibrary, when bHasBlueprintClasses is true, BP references are automatically replaced by BPGC references.

Change 3133817 on 2016/09/21 by Maciej.Mroz

	Fixed static Static Analysis warning

Change 3134377 on 2016/09/21 by Dan.Oconnor

	ShowWorldContextObject is now inherited
	#jira UE-35674

Change 3134955 on 2016/09/21 by Mike.Beach

	Making it so AdvancedDisplay metadata is taken into consideration and used in MakeStruct nodes.

Change 3134965 on 2016/09/21 by Dan.Oconnor

	Fix for crash in FCDODiffControl when CDOs have different numbers of properties. First branch in the while loop would incorrectly advance Iter past the end of the array. Comments courtesy of Jon.Nabozny
	#jira UE-36263

Change 3135523 on 2016/09/22 by Dan.Oconnor

	PR #2755: Master (Contributed by jeremyyeung)
	Notable change: searching for Vector in BP editor context menu now gives different default result, prior result was mediocre, though (vector - vector)

	#jira UE-35450

Change 3136508 on 2016/09/22 by Mike.Beach

	Removing a bIsVisible guard for level Blueprint menu actions - this was causing level BP options to disappear when you hid sub-levels. The guard doesn't seem to matter, as those actions will be removed with the world (when it is updated, or unloaded).

	#jira UE-34019

Change 3137587 on 2016/09/23 by Maciej.Mroz

	#jira ODIN-1017 [Nativization] Crash while loading Hub_env level

	Merged cl#3137578 from Odin branch

Change 3137666 on 2016/09/23 by Ben.Cosh

	This adds the ability to map composite graph instances in the same way we map macro instances for blueprint debug data and improves the quality of the debug data providing correct information for nested macro/composite instances at any script location in instrumented blueprint compilations.
	#Jira UE-33396 - Nested macro nodes don't map correctly if you place multiple instances in the same graph
	#Proj KismetCompiler, BlueprintGraph, UnrealEd

	- This is the first part of a two part change, the subsequent change will make use of the debug output to resolve complex trees of tunnel instances in the blueprint profiler.

Change 3137800 on 2016/09/23 by Phillip.Kavan

	[UE-34896] Properties are now generated for client-only Blueprint components in an uncooked server-only context.

	change summary:
	- bumped BlueprintObjectsVersion
	- added a new 'ComponentClass' property to USCS_Node
	- added a new 'ComponentClass' field to the FComponentOverrideRecord struct (UInheritableComponentHandler)
	- added a USCS_Node::Serialize() override to fix up 'ComponentClass' on load (so that it's set prior to compile-on-load)
	- modified USimpleConstructionScript::CreateNodeImpl() to set the ComponentClass property in a new SCS node
	- modified USimpleConstructionScript::ValidateNodeTemplates() to consider the node to be valid if ComponentClass is set and is known to be filtered (i.e. the node will not be removed in this case)
	- modified USimpleConstructionScript::ValidateNodeTemplates() to emit a warning message in an uncooked client-only or server-only context if the ComponentClass could not be set in an existing package (i.e. if a resave is needed)
	- modified UInheritableComponentHandler::PostLoad() to fix up 'ComponentClass' on load
	- modified UInheritableComponentHandler::CreateOverridenComponentTemplate() to set the ComponentClass field in a new override record
	- modified UInheritableComponentHandler::IsRecordValid() to consider the record to be valid if ComponentClass is set (when ComponentTemplate is NULL)
	- modified UInheritableComponentHandler::IsRecordNecessary() to consider the record to be necessary if ComponentClass is set and is known to be filtered
	- modified FKismetCompilerContext::CreateClassVariablesFromBlueprint() to use 'ComponentClass' rather than 'ComponentTemplate' to infer the property subtype

	#jira UE-34896

Change 3137851 on 2016/09/23 by Phillip.Kavan

	[UE-36079] Component overrides in a child blueprint will no longer trigger a warning message when the original component is removed from its parent.

	change summary:
	- modified UInheritableComponentHandler::IsRecordValid() to no longer consider a NULL OriginalTemplate to be invalid (so that the warning message is suppressed)
	- modified UInheritableComponentHandler::IsRecordNecessary() to consider a NULL OriginalTemplate to be unnecessary (so that the record is still removed in this case)

	#jira UE-36079

Change 3137948 on 2016/09/23 by Ben.Cosh

	CIS warning fix on mac for out of order initialisation.

Change 3139351 on 2016/09/25 by Ben.Cosh

	Updates the blueprint profiler to make use of the recent changes to macro/composite tunnel mapping and enhanced debug data.
	#Jira UE-33396 - Nested macro nodes don't map correctly if you place multiple instances in the same graph
	#Proj BlueprintProfiler, Engine

	- This is the second part of a two part change enabling multiple instances of nested macro/composite graphs in the blueprint profiler.

Change 3139376 on 2016/09/25 by Ben.Cosh

	CIS static analysis fix for CL 3137666

Change 3139377 on 2016/09/25 by Ben.Cosh

	Adding script code location checking for pure nodes that was missed in CL 3139351
	#Jira UE-33396 - Nested macro nodes don't map correctly if you place multiple instances in the same graph
	#Proj BlueprintProfiler

	- Fixes a missed issue with pure nodes inside macros/tunnels

Change 3139624 on 2016/09/26 by Maciej.Mroz

	Fixed const local variables in Nativized code

	Merged cl#3139622 from Odin branch.

Change 3139641 on 2016/09/26 by Maciej.Mroz

	#jira UE-31099 Renaming an input mapping does not generate a warning when compile a blueprint using that input

	Since we cannot distinguish which nodes are isolated by users (and shouldn't be validated) and which nodes are isolated during expansion step (and should be validated), the isolated nodes are pruned both before and after expantion step (and validation).

Change 3139961 on 2016/09/26 by Ben.Cosh

	CIS static analysis fix for CL 3137666

	- missed one of the warnings in a previous attempt.

Change 3140143 on 2016/09/26 by Dan.Oconnor

	Fix for component property clearing on load, submitted on behalf of Mike.Beach
	#jira UE-36395

Change 3140694 on 2016/09/26 by Dan.Oconnor

	Fix for GLEO when duplicating levels that have knots that reference delegates (specifically custom events)
	#jira UE-34954

Change 3140772 on 2016/09/26 by Dan.Oconnor

	Further hardening SGraphPin::GraphPinObj access
	#jira UE-36280

Change 3140812 on 2016/09/26 by Dan.Oconnor

	Corrected overzealous warning. Codepath is expected when functions are deleted but breakpoints aren't updated
	#jira UE-32736

Change 3140869 on 2016/09/26 by Dan.Oconnor

	Update check to handle nested DSOs
	#jira UE-34568

Change 3141125 on 2016/09/27 by Maciej.Mroz

	#jira UE-36326 Attempting to generate abstract class from blueprint crashes editor on compile

	While reinstancing the CLASS_Abstract is cleared (just like the CLASS_Deprecated flag)

Change 3142715 on 2016/09/27 by Dan.Oconnor

	Fix for crash when pasting nodes that have connections to nodes that aren't in the clipboard from one graph into another
	#jira OR-29584

Change 3143469 on 2016/09/28 by Ryan.Rauschkolb

	BP Profiler: Fixed Assert when profiling parent/child Blueprint
	#jira UE-35487

Change 3145215 on 2016/09/29 by Maciej.Mroz

	#jira UE-36494 [CrashReport] UE4Editor_KismetCompiler!FKismetCompilerContext::CreatePinEventNodeForTimelineFunction() [kismetcompiler.cpp:2062]

Change 3145580 on 2016/09/29 by Dan.Oconnor

	Collapse secondary image instead of hiding it, allowing x button to be closer to primary image when secondary type image isn't present
	#jira UE-36577

Change 3146470 on 2016/09/30 by Maciej.Mroz

	#jira UE-36655 Failed ensure when TIleline is pasted

	Restored cl#3085572 - it was lost while merging.

Change 3147046 on 2016/09/30 by Maciej.Mroz

	#jira UE-34961 Assert when calling BP function with weak object parameter.

	BP doesn;t support weak obj ptr as parameters - Validation added. Function, created from colappsed nodes, cannot have a parameter of weakptr type.

Change 3148022 on 2016/10/01 by Phillip.Kavan

	[UE-21109] Fix component instance data loss after renaming SCS component nodes at the Blueprint class level.

	change summary:
	- deprecated the public USCS_Node::VariableName member and replaced it with an internal-only member accessible via Get/Set method (i need to be in control of the set logic)
	- changed all occurrences of direct access to USCS_Node::VariableName to use a GetVariableName() call (since it's now internal)
	- simplified USCS_Node::GetVariableName() as what it used to do was legacy and thus is no longer necessary (it's been handled by USimpleConstructionScript::PostLoad for awhile now)
	- added USCS_Node::SetVariableName(); this now renames the component template (if valid) and all instances of it prior to changing the internal variable name. this ensures that archetype lookups will continue to function after a rename.
	- added USCS_Node::RenameComponentTemplate() to handle SCS node component template rename logic on a variable name change
	- switched the AActor::CheckComponentInstanceName() API to be publically-accessible; need to call this when renaming instanced components to match a new variable name in order to ensure that we rename any instance-only components out of the way first (this is the same logic that we run when constructing component instances on map load/RRCS, so it's consistent)
	- modified UInheritableComponentHandler::PostLoad() to fix up the component template within each record to match the original template object name. this ensures that ICH-specific archetype lookups will continue to function after a rename. it also ensures that any mismatched template names in existing assets will now be fixed up on load.
	- moved UActorComponent::ComponentTemplateSuffixName into the USimpleConstructionScript class (since the association is tied to templates created by that class specifically). note: this revises a change from a recent PR submission.
	- modified UpdateAttachedIsEditorOnly() to check the RF_ArchetypeObject flag rather than the ComponentTemplateSuffixName (part of the revision to the recent PR submission noted above)

	#jira UE-21109

Change 3148023 on 2016/10/01 by Phillip.Kavan

	[UE-35562] Fix inherited Blueprinted component template defaults data loss in child Blueprint classes after recompiling the Blueprinted component class.

	change summary:
	- added a local FArchetypeReinstanceHelper struct + GetArchetypeObjects()/FindUniqueArchetypeObjectName() utility method implementations to KismetReinstanceUtilities.cpp
	- modified FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() to ensure that the full inherited component template (archetype) ancestry is renamed along with the base template when we rename the base template object away from its original name in order to make way for the new (reinstanced) template. the names must match the base template along the entire inheritance hierarchy in order for forward/reverse inherited component archetype lookups to succeed.

	notes:
	- BP (non-native) component templates (e.g. SCS/AddComponent nodes) that belong to the class being reinstanced (i.e. whose templates are not inherited from a parent BP) always inherit directly from the component CDO, and thus do not require this code path (that is, archetype lookups are not dependent on matching the CDO by name). similarly, native components (defined in C++) are included as part of the CDO defaults data, and thus also do not require this code path.

	#jira UE-35562

Change 3148030 on 2016/10/01 by Phillip.Kavan

	UT fixes for CIS warnings related to SCS node API changes.

Change 3148256 on 2016/10/02 by Ben.Cosh

	This change adds the ability to filter debug/wire trace instrumenation and tracks expansion nodes for future use.
	#Jira UE-34866 - No profiler timings listed for nodes executed after an interface message
	#Proj KismetCompiler, BlueprintGraph, UnrealEd

Change 3148261 on 2016/10/02 by Ben.Cosh

	CIS fix, some code from another changelist leaked into CL 3148256

Change 3148480 on 2016/10/03 by Ben.Cosh

	This change attempts to address some profiler issues with class function context switching in the blueprint profiler.
	#Jira UE-35819 - Crash occurs when instrumenting an event from a member actor
	#Proj BlueprintProfiler, BlueprintGraph

Change 3148545 on 2016/10/03 by Phillip.Kavan

	Skip unnecessary component validation work to fix invalid warnings when duplicating a BP class for reinstancing.

Change 3149001 on 2016/10/03 by Ben.Cosh

	This fixes an issue found with the instrumented blueprint compilations in which a certain compilation path would not provide the extended composite tunnel node heararchy in debug data and removes an unneceassary check that was causing problems.
	#Jira UE-36704 - Crash on PIE while profiling TestBP_ProfilerEvents in QAGame
	#Proj KismetCompiler, BlueprintProfiler

Change 3149031 on 2016/10/03 by Maciej.Mroz

	#jira UE-36687, UE-36691

	Tunnel nodes without exec pin are not pruned before expansion.

Change 3149150 on 2016/10/03 by Maciej.Mroz

	#jira UE-36685

	UGameplayTagsK2Node_LiteralGameplayTag is pure.

Change 3149290 on 2016/10/03 by Maciej.Mroz

	#jira UE-36750

	GetBlueprintContext node is Pure.

Change 3149595 on 2016/10/03 by Mike.Beach

	Fixing up some Orion content errors/warnings that should have been issues a while ago (error reporting was broken for a time, now fixed).

	#jira UE-36758, UE-36759

Change 3149667 on 2016/10/03 by Mike.Beach

	Fixing up some Ocean content errors as fallout from a change in Dev-Blueprints - the errors properly identified a node that was using a culled input that was uninitialized.

	#jira UE-36770

Change 3149777 on 2016/10/03 by Mike.Beach

	Fixing up  an Orion content warning - disconnecting a cast path in Hero_Automation, now that the node is producing a warning (the cast is impossible, and therefore the path is superfluous).

	#jira UE-36759

Change 3149988 on 2016/10/04 by Maciej.Mroz

	#jira UE-36750, UE-36685

	Fixed IsNodePure functions.

Change 3150146 on 2016/10/04 by Maciej.Mroz

	#jira UE-36759

	First pruning pass in done after ExpandTunnelsAndMacros is called.
	Isolated tunnels are pruned just like regular nodes.

Change 3150743 on 2016/10/04 by Mike.Beach

	Mirroring CL 3150661 from Dev-VREditor

	Fix for crash on editor close after VR Foliage Editing.

	#jira UE-36754

Change 3151104 on 2016/10/04 by Maciej.Mroz

	Added comment.

Change 3151979 on 2016/10/05 by Mike.Beach

	Adding the keyword "custom" to K2Node_CustomEvent, so that it is prioritized when searching the Blueprint menu.

	#jira UE-35512

Change 3152286 on 2016/10/05 by Maciej.Mroz

	Make sure, that an isolated node, that should be pure (but is not) won't be pruned.

[CL 3152997 by Mike Beach in Main branch]
2016-10-05 23:32:35 -04:00
Dan Oconnor
eaf882587b Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 2967759)
#lockdown Nick.Penwarden

==========================
MAJOR FEATURES + CHANGES
==========================

Change 2919729 on 2016/03/23 by Ben.Cosh

	Support for macros in the profiler
	#UEBP-177 - Macro instance handling
	#Proj Kismet, BlueprintProfiler

	- Adds support for timings inside macro calls
	- Extends the tunnel graph support to handle multiple entry/exit sites

Change 2938064 on 2016/04/08 by Phillip.Kavan

	[UE-17794] The "Delete Unused Variable" feature now considers the GetClassDefaults node as well.

	change summary:
	- added external linkage to UK2Node_GetClassDefaults::FindClassPin().
	- added an include for the K2Node_GetClassDefaults header file to BlueprintGraphDefinitions.h.
	- added UK2Node_GetClassDefaults::GetInputClass() as a public API w/ external linkage; moved default 'nullptr' param logic into this impl.
	- modified FBlueprintEditorUtils::IsVariableUsed() to add an extra check for a GetClassDefaults node with a visible output pin for the variable that's also connected.
	- modified UK2Node_GetClassDefaults::GetInputClass() to return the generated skeleton class for Blueprint class types.

Change 2938088 on 2016/04/08 by Mike.Beach

	Making bytecode produced by latent action nodes deterministic.

Change 2938101 on 2016/04/08 by Mike.Beach

	Fixing a bug where the compile summary was not being reported because another compiler log was lingering - making it so the MathExpression node compiler log is not initialized with intent to report its own summary (it gets folded into the primary log).

Change 2938121 on 2016/04/08 by Phillip.Kavan

	Remove a few redundant MBASM calls on variable type change.

Change 2940295 on 2016/04/11 by Dan.Oconnor

	We now 'tag subobjects' of a blueprint even if it's part of the rootset, this means we correctly detect references to the BPGC in FPendingDelete::CheckForReferences(). Original rootset check dates to 2012 and I can find no justification for it currently.
	#jira UE-29216

Change 2943227 on 2016/04/13 by Dan.Oconnor

	Fixed improper detection of functions from interfaces that themselves inherit from some other interface
	#jira UE-29440

Change 2944270 on 2016/04/14 by Phillip.Kavan

	[UEBP-176] First pass at BP graph node heat map visualization while profiling.

	change summary:
	- added an "indicator overlay" to graph node widget layouts
	- added a heat mode "mode" selector widget to the BP profiler view panel
	- extended IBlueprintProfilerInterface to include APIs for accessing current heat map mode state
	- added FScriptNodePerfData::GetBlueprintPerfDataForAllTracePaths() (tentative - may need revisiting)
	- added SGraphNode::GetNodeIndicatorOverlayColor() and GetNodeIndicatorOverlayVisibility() delegates
	- added BP-specific delegate overrides to SGraphNodeK2Base; extended to include both compact and variable nodes

Change 2946932 on 2016/04/18 by Mike.Beach

	Guarding against invalid EdGraphPins (ones that have been moved to the transient package) when constructing the widget - prevents a crash that we've been unable to repro or determine the cause of (turns it instead into an ensure, so we can collect more contextual information on the issue).

	#jira UE-26998

Change 2949968 on 2016/04/20 by Dan.Oconnor

	Array access out of bounds by value is a warning again, added ability to elevate individual warnings on a per project basis (or supress them)
	#jira UE-28971

Change 2950113 on 2016/04/20 by Dan.Oconnor

	Removed GBlueprintCompileTime, it was not accurate. Printing BlueprintCompileAndLoadTimerData.GetTime() at start instead

Change 2951086 on 2016/04/21 by Ben.Cosh

	This change addresses the edge case in the blueprint profiler that caused stats to fail when tunnel nodes were linked through to other tunnel nodes.
	#jira UE-28750 - Crash compiling a Blueprint that contains a For Loop with profiler active
	#Proj Kismet, BlueprintProfiler

Change 2951336 on 2016/04/21 by Ben.Cosh

	This change enables blueprint breakpoints during instrumented conditions.
	#jira UEBP-178 - Fix breakpoints under profiling conditions
	#Proj CoreUObject, BlueprintProfiler, UnrealEd, KismetCompiler

Change 2951406 on 2016/04/21 by Ben.Cosh

	Fix for blueprint profiler stats for the top level blueprint stat entry not updating correctly.
	#Proj Kismet

Change 2951832 on 2016/04/21 by Ben.Cosh

	Fix for certain blueprint profiler stats not being updated and collected at the blueprint container level due to incorrect tracepaths.
	#Proj Kismet

	#info This should fix the node heatmaps as a side effect.

	#Codereview Phillip.Kavan

Change 2956696 on 2016/04/26 by Dan.Oconnor

	Tweak fix for macros being BS_Dirty after loading. The current fix had the side effect of not recompiling clients of the macro after making a change to the macro and entering PIE
	#jira UE-29495

Change 2957564 on 2016/04/27 by Maciej.Mroz

	Various fixes related to nativized enums.

	#jira UE-27735 Enumerators are not set correctly in packaged games if Nativize Blueprint Assets is set to true

Change 2961626 on 2016/04/29 by Mike.Beach

	Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)

Change 2962747 on 2016/05/02 by Maciej.Mroz

	#jira UE-30123 Cannot use abilities in nativized Orion build

	GameplayAbility handles BPGC and DynamicClass the same way.
	C++ backend do not assumes that some literal objects are UserDefinesEnum/UserDefinedStruct/BlueprintGeneratedClass.

Change 2965679 on 2016/05/04 by Maciej.Mroz

	Increased stack size (384k) of threads spawned by Task Graph.
	(Temporary?) fix for stack overflow, when amination in Orion are evaluated.

Change 2965758 on 2016/05/04 by Maciej.Mroz

	#jira UE-30300 "ReturnToBase" ability does not work in nativized Orion.
	Fixed CDO creation in async loaded Dynamic Class.
	Fixed too restrict cast assertions.

Change 2966543 on 2016/05/04 by Maciej.Mroz

	#jira UE-30235 Mac QAGame fails to package with nativization
	#jira UE-30282 Match3 nativized android package fails to build

Change 2966839 on 2016/05/04 by Dan.Oconnor

	Typo IMPLEMENT_MODULE creates weird linking error, also may need entry in Target.cs to get BlueprintRuntime to build. Copying that pattern from ___LoadingScreen modules
	#jira UE-30333

Change 2967347 on 2016/05/05 by Maciej.Mroz

	#jira UE-30196 Unable to package a copy of project with Nativize Blueprints enabled

	CommandUtils.GetDirectoryName should not be used with directory path (but only with file path), because it cannot handle paths like "e:\My11Project 4.13" (containing '.'). It seems useless with directory path anyway.

[CL 2968184 by Dan Oconnor in Main branch]
2016-05-05 18:28:40 -04:00
Matthew Griffin
984342ca17 Merging //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) post CL#2804086 to CL#2817167
CL#2805395 resolved as target to avoid copying 2015 changes
#lockdown Nick.Penwarden

[CL 2819197 by Matthew Griffin in Main branch]
2016-01-07 11:21:22 -05:00
Matthew Griffin
bb70b349ce Merging CL 2804086 from //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) to isolate copyright update
#lockdown Nick.Penwarden

[CL 2819020 by Matthew Griffin in Main branch]
2016-01-07 08:17:16 -05:00
Mike Fricker
65e7557229 [INTEGRATE] Compile times: Working on eliminating <Module>Classes.h header files
- This checkin eliminates use of all <Module>Classes.h files in Engine, with the exception of UnrealEdClasses.h
- Compilation speed-ups for all of the modules affected, now that they are including what they use
- No effective changes other than C++ includes

[CL 2686054 by Mike Fricker in Main branch]
2015-09-10 08:48:03 -04:00
Dan Oconnor
86f775d34f Improved fix so that it no longer relies on changes to ObjectVersion.h. That file is in a somewhat indeterminate statel
#jira UE-19293

[CL 2650260 by Dan Oconnor in Main branch]
2015-08-10 18:34:09 -04:00
Dan Oconnor
f1e3dd1c2e [UE-19293] Math expression now updates old calls to Rot/Rotator/MakeRot to use MakeRotator by swapping parameters
[CL 2647368 by Dan Oconnor in Main branch]
2015-08-06 21:09:21 -04:00
Michael Schoell
c246c1f538 Math Expression nodes will again correctly lookup by the display name of a function.
Changed metadata lookups that were still targetting FriendlyName to lookup the DisplayName.

#jira UE-17602 - Unable to use floor() in math expression node (display name), must use ffloor()

[CL 2602420 by Michael Schoell in Main branch]
2015-06-26 11:59:50 -04:00
Maciej Mroz
9c65f62697 UE-17607 Crash attempting to vect != vect in Math Expression Node
#codereview Mike.Beach

[CL 2600255 by Maciej Mroz in Main branch]
2015-06-25 04:54:12 -04:00
Michael Schoell
9347859ab2 Math expression functions without any parameters will still provide their end parenthesis in the Math Expression node.
#jira UE-17418 - Math Expression node unclosed parenthesis in name if expression starts with rand()

[CL 2597330 by Michael Schoell in Main branch]
2015-06-23 12:37:06 -04:00
Maciej Mroz
5ec4b83d35 For the simplest cases MathExpresion will be expanded the old way. The RPE optimization cannot handle the exoression without any function call.
Cases:
- literal - "3.14"
- variable access - "MyVar"
- new local variavle - "a"

UE-17139 Math Expressions fail to compile when output pin connected

[CL 2591759 by Maciej Mroz in Main branch]
2015-06-18 06:55:28 -04:00
Maciej Mroz
15e44a1b6e ME Optimization:
- FBPTerminal::InlineGeneratedParameter added - the result of the function is directly used as input parameter, it's not stroed in a lical variable
- FKismetFunctionContext::InlineGeneratedParameter
- MathExpressionHandler - compile (to out intermediate representation) a subgraph using "reverse polish notation" approach
- Math Expression node is not longer expanded
- VMBackend supports InlineGeneratedParameter and InlineGeneratedParameter

#codereview Nick.Whiting, Mike.Beach

[CL 2587365 by Maciej Mroz in Main branch]
2015-06-15 10:54:30 -04:00
sebastian kowalczyk
c46f070ab2 Fixed non unity build.
[CL 2584110 by sebastian kowalczyk in Main branch]
2015-06-11 09:50:36 -04:00
Michael Schoell
24e8feab5f Math Expression nodes will no longer always appear as changed when doing a diff on a Blueprint.
The Math Expression graph will be completely missing from the diff display, it is regenerated each time and the important detail is the math expression the user inputs. The node's math expression will show up if there are differences between two Blueprints.

#jira UE-9785 - Math expression nodes always appear in BP Diff

[CL 2582830 by Michael Schoell in Main branch]
2015-06-10 11:52:53 -04:00
Michael Schoell
48631ca1c9 Preventing MathExpression nodes from counting function inputs as valid variables to access via getter nodes.
#codereview Mike.Beach

[CL 2572543 by Michael Schoell in Main branch]
2015-06-01 11:24:10 -04:00
Michael Schoell
75062929e3 Added alias for ATAN to the MathExpression node so ARCTAN is also supported.
#jira UE-11570  - ATan is not available in a Math Expression

[CL 2528585 by Michael Schoell in Main branch]
2015-04-28 11:36:35 -04:00
Michael Schoell
63b7360ae0 Removed the Blueprint Editor's legacy node menu system.
#jira UE-13391 - Delete old BP menu system (is causing confusion)

#codereview Mike.Beach

[CL 2514361 by Michael Schoell in Main branch]
2015-04-16 11:47:54 -04:00
PaulEremeeff
c9a246101e PR #1013: Fixing PVS-Studio warnings. (Contributed by PaulEremeeff)
Some files have been omitted and will be submitted with modified corrections

[CL 2505544 by Dan Oconnor in Main branch]
2015-04-08 14:46:25 -04:00
Michael Schoell
b0ebc825d0 Math expression nodes now support variable renames without breaking and local variables can be used with them.
Behind the scenes, variables are converted to their Guid and are converted back to their name for display. The token parser was updated to handle these Guid's which are inside brackets { }.

Added some helper functions for looking up a Member Variable's Guid by name and a Member Variable's name by Guid.

#jira UE-9915 - Renaming Blueprint variables breaks MathExpression node on restart
#jira UE-12363 - Math expression node doesn't work with local variables.

[CL 2500113 by Michael Schoell in Main branch]
2015-04-02 14:24:15 -04:00
Michael Schoell
75200e5a0d Cached node titles can now be forced to refresh without iteration over every node.
This will occur with every structural modification to any BP, node titles refresh only when visible.

[CL 2499923 by Michael Schoell in Main branch]
2015-04-02 11:16:23 -04:00
Michael Schoell
5f3f433198 Can drag and drop pins onto a variety of K2Node_EditablePinBase nodes to add pins to them.
Shifted a lot of pin adding functionality from Blueprint Details customizion to the nodes themselves or BlueprintEditorUtils.

#jira UE-11334 - Dragging a pin to a node that can add pins (function entry/exit, custom events...) should add a pin of the type to the node.

[CL 2497224 by Michael Schoell in Main branch]
2015-03-31 10:32:10 -04:00
Michael Schoell
d96d07d065 Editing multiple Math Expression nodes will no longer cause a crash.
Changing the math expression will no longer mark the Blueprint structurally modified.

Kismet Inspector will now do a deferred refresh, waiting until the next tick to assign the new objects to the detail view.

#jira UE-7065 - Editing multiple Math Expressions will crash the editor

[CL 2428493 by Michael Schoell in Main branch]
2015-02-02 14:23:57 -05:00