2018-12-14 13:41:00 -05:00
|
|
|
// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
|
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 "EnvironmentQueryGraph.h"
|
|
|
|
|
#include "EnvironmentQuery/EnvQueryTypes.h"
|
|
|
|
|
#include "EnvironmentQuery/EnvQueryTest.h"
|
|
|
|
|
#include "EnvironmentQuery/EnvQueryGenerator.h"
|
|
|
|
|
#include "EnvironmentQuery/EnvQueryOption.h"
|
|
|
|
|
#include "EnvironmentQuery/EnvQuery.h"
|
|
|
|
|
#include "EnvironmentQuery/EnvQueryManager.h"
|
|
|
|
|
#include "AIGraphTypes.h"
|
|
|
|
|
#include "EdGraphSchema_EnvironmentQuery.h"
|
|
|
|
|
#include "AIGraphNode.h"
|
|
|
|
|
#include "EnvironmentQueryGraphNode.h"
|
|
|
|
|
#include "EnvironmentQueryGraphNode_Option.h"
|
|
|
|
|
#include "EnvironmentQueryGraphNode_Root.h"
|
|
|
|
|
#include "EnvironmentQueryGraphNode_Test.h"
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
// EnvironmentQueryGraph
|
|
|
|
|
|
|
|
|
|
namespace EQSGraphVersion
|
|
|
|
|
{
|
|
|
|
|
const int32 Initial = 0;
|
|
|
|
|
const int32 NestedNodes = 1;
|
2014-04-23 19:29:53 -04:00
|
|
|
const int32 CopyPasteOutersBug = 2;
|
2015-02-23 10:30:16 -05:00
|
|
|
const int32 BlueprintClasses = 3;
|
2014-03-14 14:13:41 -04:00
|
|
|
|
2015-02-23 10:30:16 -05:00
|
|
|
const int32 Latest = BlueprintClasses;
|
2014-03-14 14:13:41 -04:00
|
|
|
}
|
|
|
|
|
|
2014-10-14 10:29:11 -04:00
|
|
|
UEnvironmentQueryGraph::UEnvironmentQueryGraph(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer)
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
|
|
|
|
Schema = UEdGraphSchema_EnvironmentQuery::StaticClass();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
struct FCompareNodeXLocation
|
|
|
|
|
{
|
|
|
|
|
FORCEINLINE bool operator()(const UEdGraphPin& A, const UEdGraphPin& B) const
|
|
|
|
|
{
|
|
|
|
|
return A.GetOwningNode()->NodePosX < B.GetOwningNode()->NodePosX;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
2015-02-23 10:30:16 -05:00
|
|
|
void UEnvironmentQueryGraph::UpdateAsset(int32 UpdateFlags)
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2015-02-23 10:30:16 -05:00
|
|
|
if (IsLocked())
|
2014-04-23 19:29:53 -04:00
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2015-02-23 10:30:16 -05:00
|
|
|
// let's find root node
|
2014-03-14 14:13:41 -04:00
|
|
|
UEnvironmentQueryGraphNode_Root* RootNode = NULL;
|
2015-02-23 10:30:16 -05:00
|
|
|
for (int32 Idx = 0; Idx < Nodes.Num(); Idx++)
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2015-02-23 10:30:16 -05:00
|
|
|
RootNode = Cast<UEnvironmentQueryGraphNode_Root>(Nodes[Idx]);
|
2014-03-14 14:13:41 -04:00
|
|
|
if (RootNode != NULL)
|
|
|
|
|
{
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UEnvQuery* Query = Cast<UEnvQuery>(GetOuter());
|
Copying //UE4/Dev-Frame to //UE4/Main
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2775736 on 2015/11/20 by Richard.Hinckley
Fix for Paper2D issue with repeated imports in one edutor session. Paper2D import process now creates a new importer at the end. This prevents the sprite sheet import process from leaving frame data around, causing subsequent imports (including imports of different sprite sheets) to include this data inappropriately.
#codereview michael.noland
Change 2776352 on 2015/11/20 by Zak.Middleton
#ue4 - Avoid useless DetachFromParent() for the same pending AttachParent during registration. Added missing UpdateOverlaps() when detaching from object simulating physics.
#rb Marc.Audy, Ori.Cohen
#codereview James.Golding
Change 2776401 on 2015/11/20 by Mieszko.Zielinski
Implemented a way to do batched points projection to navmesh, where every point can declare a custom projection box #UE4
The biggest advantage here is that projection box is independent from projected point - no more manual offsetting of projected point to achieve "100uu up and 500uu down"-like functionality
#jira UE-23705
#rb Lukasz.Furman
Change 2777450 on 2015/11/23 by Martin.Wilson
Bake additive data into animations during cooking to avoid doing additive calculations and extra pose extraction and blending at runtime
#rb Thomas.Sarkanen
Change 2777698 on 2015/11/23 by Mieszko.Zielinski
Gameplay debugging tools fixes #UE4
Fixes:
- made newly added logs respect Log Visualizer's filters
- added handling of invalid data when trying to draw EGameplayDebuggerShapeElement::Cylinder in AGameplayDebuggingHUDComponent::DrawPerception. This is a patch, root cause to be found.
- fixed Log Visualizer resetting it's data while trying to serialize invalid objects. This is a patch, root cause to be addressed.
In addition
- while at it removed bunch of 'auto' and 'class' keywords from the files I've touched
#rb Lukasz.Furman
Change 2777762 on 2015/11/23 by Mieszko.Zielinski
Removed BlackboardComponent's functionality deprecated since 4.7 #UE4
#rb Lukasz.Furman
Change 2777839 on 2015/11/23 by Zak.Middleton
#ue4 - Wrap all vector library calls to math functions through our FMath versions, so they benefit from fixes or improvements therein. Added Exp2() function.
#rb Laurent.Delayen
Change 2777840 on 2015/11/23 by Zak.Middleton
#ue4 - Fix up uses of library math functions to go through our FMath namespace.
#rb Laurent.Delayen
Change 2778287 on 2015/11/23 by Stan.Melax
deprecation of FCollisionQueryParams(bool)
See 2774707 description for the whole story
#OR-9936
#codereview marc.audy
Changes to kite will have to be in a separate check-in
I couldn't submit to all files from the framework branch addition fixes have their files are shelved in cl 2778299
Change 2778507 on 2015/11/23 by Marc.Audy
Eliminate spurious cook warnings for known missing packages
#rb Michael.Noland
Change 2778546 on 2015/11/23 by Aaron.McLeran
Moving occlusion feature settings from audio component to sound attenuation settings struct.
- Sound attenuation setting struct is used for all sounds that do 3d spatialization so it make sense for the occlusion feature settings to be there.
- Kept old low-pass frequency filter setting values on audio component (where HighFrequencyAttenuation used to be)
#rb Zak.Middleton
Change 2778664 on 2015/11/23 by Zak.Middleton
#ue4 - Clarify some comparison functions (IsZero, IsNearlyZero, Equals) in FRotator to explain that they compare as orientations, not other interpretations such as rotational speed, winding, etc.
#rb Aaron.Mcleran
#codereview Frank.Gigliotti
Change 2779335 on 2015/11/24 by Mieszko.Zielinski
Another VisualLog patch to avoid crashing due to a core bug that remains to be investigated #UE4
Again, the core bug here is related visual log trying to serialize invalid objects on a regular basis.
#rb Lukasz.Furman
Change 2779338 on 2015/11/24 by Benn.Gallagher
Fixed crash in Persona when focus is taken from a different window
#jira UE-22516
#rb Ben.Cosh
Change 2779375 on 2015/11/24 by Benn.Gallagher
Fix for deadlock in destructibles. Aquiring actor buffer without releasing causes an infinite wait on next aquire.
#rb Ori.Cohen
Change 2779753 on 2015/11/24 by Zak.Middleton
#ue4 - FMath::Atan2() no longer calls atan2f() because of some compiler or library bugs causing it to randomly return NaN for valid input. It now uses a high-precision minimax approximation instead, measured to be 2x faster than the stock C version.
#rb Brian.Karis
Change 2779853 on 2015/11/24 by Marc.Audy
2015-12-02 16:42:06 -05:00
|
|
|
Query->GetOptionsMutable().Reset();
|
2014-03-14 14:13:41 -04:00
|
|
|
if (RootNode && RootNode->Pins.Num() > 0 && RootNode->Pins[0]->LinkedTo.Num() > 0)
|
|
|
|
|
{
|
|
|
|
|
UEdGraphPin* MyPin = RootNode->Pins[0];
|
|
|
|
|
|
|
|
|
|
// sort connections so that they're organized the same as user can see in the editor
|
|
|
|
|
MyPin->LinkedTo.Sort(FCompareNodeXLocation());
|
|
|
|
|
|
2015-02-23 10:30:16 -05:00
|
|
|
for (int32 Idx = 0; Idx < MyPin->LinkedTo.Num(); Idx++)
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2015-02-23 10:30:16 -05:00
|
|
|
UEnvironmentQueryGraphNode_Option* OptionNode = Cast<UEnvironmentQueryGraphNode_Option>(MyPin->LinkedTo[Idx]->GetOwningNode());
|
2014-03-14 14:13:41 -04:00
|
|
|
if (OptionNode)
|
|
|
|
|
{
|
2015-03-12 12:26:19 -04:00
|
|
|
OptionNode->UpdateNodeData();
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
UEnvQueryOption* OptionInstance = Cast<UEnvQueryOption>(OptionNode->NodeInstance);
|
2015-03-12 12:26:19 -04:00
|
|
|
if (OptionInstance && OptionInstance->Generator)
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2014-07-07 17:19:49 -04:00
|
|
|
OptionInstance->Tests.Reset();
|
|
|
|
|
|
2015-02-23 10:30:16 -05:00
|
|
|
for (int32 TestIdx = 0; TestIdx < OptionNode->SubNodes.Num(); TestIdx++)
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2015-03-11 12:20:56 -04:00
|
|
|
UAIGraphNode* SubNode = OptionNode->SubNodes[TestIdx];
|
|
|
|
|
if (SubNode == nullptr)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SubNode->ParentNode = OptionNode;
|
|
|
|
|
|
|
|
|
|
UEnvironmentQueryGraphNode_Test* TestNode = Cast<UEnvironmentQueryGraphNode_Test>(SubNode);
|
2014-07-07 17:19:49 -04:00
|
|
|
if (TestNode && TestNode->bTestEnabled)
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2014-07-07 17:19:49 -04:00
|
|
|
UEnvQueryTest* TestInstance = Cast<UEnvQueryTest>(TestNode->NodeInstance);
|
|
|
|
|
if (TestInstance)
|
|
|
|
|
{
|
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3252535)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3228282 on 2016/12/08 by Aaron.McLeran
Adding ability to fix up existing sound classes
- Utility "soundclassfixup" console command renames sound classes which are packaged inside other sound classes accidentally as new uniquely named packages
- Also removes code which was allowing "NewSoundClass" behavior in sound class graphs to populate with existing sound classes. Instead, it *always* creates a new sound class and warns if the sound class already exists. Connecting existing sound classes is instead going to be done through dragging them into the graph from the content browser or from the sound class node itself.
Change 3228774 on 2016/12/09 by Ori.Cohen
Fix multi select being very slow in phat
#JIRA UE-39559
Change 3229036 on 2016/12/09 by Marc.Audy
Remove trivial overrides
Change 3229130 on 2016/12/09 by Aaron.McLeran
Fixing build error.
Moving new code from CL 3228282 into WITH_EDITOR block since it's an editor-only operation
Change 3229412 on 2016/12/09 by Aaron.McLeran
Fixing 7.1 surround sound systems on PC by forcing them to load as 5.1.
- We don't support 7.1 but 7.1 systems should at least behave as good as 5.1
Change 3229782 on 2016/12/09 by Marc.Audy
Fixed crash when seamless travelling in PIE from levels other than the current editor level with a streaming sublevel shared with the current editor level (4.15)
#jira UE-39407
Change 3229842 on 2016/12/09 by Marc.Audy
Missing files for CL# 3229782
Change 3229905 on 2016/12/09 by Marc.Audy
Check Owner has a valid world before tryign to access Scene (4.14.2)
#jira UE-39560
Change 3229961 on 2016/12/09 by Aaron.McLeran
UE-39650 Implementing CL 3229894 in Dev-Framework
Change 3229964 on 2016/12/09 by Aaron.McLeran
Removing redundant loop introduced from integration
Change 3230722 on 2016/12/12 by Lukasz.Furman
fixed vislog macros for recording thick segments
#ue4
Change 3230864 on 2016/12/12 by Lina.Halper
Fix crash with deleting pose
#jira:UE-39584
Change 3230893 on 2016/12/12 by Marc.Audy
Support more default values in UHT for FVector: ForwardVector, RightVector, and single float FVector constructor
Change 3231189 on 2016/12/12 by Ori.Cohen
Added bone name to the physics invalid operation warnings.
Change 3231420 on 2016/12/12 by James.Golding
Support per-component skel mesh weight override
#jira UEFW-240
Change 3231422 on 2016/12/12 by James.Golding
Test map for per-component skin weights
Change 3231491 on 2016/12/12 by James.Golding
Move , FPositionVertexBuffer and FStaticMeshVertexDataInterface into their own headers
Move FStaticMeshVertexBuffer implementation into its own cpp
Change 3231590 on 2016/12/12 by mason.seay
Changed to box collision
Change 3231900 on 2016/12/12 by Aaron.McLeran
Switching to creating new master submixes rather than loading them
Change 3231909 on 2016/12/12 by James.Golding
Fix Mac CIS in StaticMeshVertexBuffer.h
Change 3232157 on 2016/12/13 by Mieszko.Zielinski
Fixed a silly bug in FBlackboardKeySelector::InitSelection resulting in the key selector picking first "ok-ish" value, even if it wasn't matching type filter #UE4
Change 3232162 on 2016/12/13 by Mieszko.Zielinski
Fixed UNavigationSystem::bNavigationAutoUpdateEnabled getting ignored by recent addition to related condition in UNavigationSystem #UE4
Change 3232314 on 2016/12/13 by James.Golding
Another attempt at fixing Mac CIS
Change 3232322 on 2016/12/13 by Lukasz.Furman
fixed order of nav area application and low area filter
#ue4
Change 3232364 on 2016/12/13 by Thomas.Sarkanen
Spline IK node
Added new runtime & graph node to deform bones along a spline. Added edit mode to work with in the BP editor.
Spline is specified within the node using control points. External spline could come later.
Currently very expensive to evaluate as it regenerates the transformed spline and PWLA each frame.
#jira UEFW-249 - Add spline IK node
Change 3232589 on 2016/12/13 by Thomas.Sarkanen
Fixed non-editor builds
Change 3232654 on 2016/12/13 by Marc.Audy
Don't rerun construction scripts when an actor has seamless traveled from another level (4.15)
#jira UE-39699
Change 3232690 on 2016/12/13 by Martin.Wilson
Remove unused member
Change 3232691 on 2016/12/13 by Martin.Wilson
Virtual bone additions:
1) Rename support
2) Ability to chain virtual bones (Have a virtual bone that is a child of another virtual bone)
#jira UE-39710
Change 3232782 on 2016/12/13 by Danny.Bouimad
Adding Test Content
Change 3232843 on 2016/12/13 by danny.bouimad
More Updates
Change 3232981 on 2016/12/13 by Marc.Audy
Fix CIS issues
Change 3233075 on 2016/12/13 by mason.seay
SplineIK asset for bug report
Change 3233124 on 2016/12/13 by Ori.Cohen
Added mass automation tests.
Change 3233265 on 2016/12/13 by Ben.Marsh
Build: Add support for building Orion and Fortnite precompiled binaries from Dev-Framework.
Change 3233365 on 2016/12/13 by mason.seay
Resaving with non-empty engine version
Change 3233532 on 2016/12/13 by mason.seay
Level blueprint clean up
Change 3233571 on 2016/12/13 by Ben.Marsh
Set up paths for precompiled binaries.
Change 3233601 on 2016/12/13 by Ben.Marsh
Build: Use the code CL rather than latest CL for precompiled binaries.
Change 3234402 on 2016/12/14 by Ori.Cohen
Physics: Fixed line traces not working properly in editor worlds when physics substepping was enabled (UE-36408)
- Substepping relies on interpolating transforms over frames, but only game worlds will be ticked, so we now disallow this feature in non-game worlds.
#jira UE-36408
Change 3234415 on 2016/12/14 by Ori.Cohen
Fix CIS
Change 3234574 on 2016/12/14 by Thomas.Sarkanen
Fix crash when IK chain is inverted
#jira UE-39720 - Crash compiling animation blueprint with Spline IK node
Change 3234882 on 2016/12/14 by Ori.Cohen
Fixed teleport not working for physical animation component
Change 3234971 on 2016/12/14 by Aaron.McLeran
Fix for omni-directional sounds in audio mixer
Change 3235251 on 2016/12/14 by mason.seay
Assets for proposed functional testing
Change 3235492 on 2016/12/14 by Ori.Cohen
Undo previous bad normal fix and remove wheel width compensation. This leads to bad normals when thick tires roll over the edge leading to instability.
#JIRA UE-38710
Change 3236398 on 2016/12/15 by Marc.Audy
(4.15) Add new object flag RF_NeedInitialization to indicate that ~FObjectInitalizer and PostInitProperties have not been executed for the object
Do not allow Modify calls on Objects that have not been initialized
#jira UE-39731
Change 3236413 on 2016/12/15 by Lukasz.Furman
added EQS profiler
#ue4
Change 3236418 on 2016/12/15 by Lukasz.Furman
changed log verbosity in navmesh geometry export function
#jira UE-39809
#3039
Change 3236508 on 2016/12/15 by Ori.Cohen
Allow vehicles to override inertia tensor after any mass properties have changed
#JIRA UE-39566
Change 3236573 on 2016/12/15 by Ori.Cohen
Fix manipulation tool not working properly with welded components
Change 3236577 on 2016/12/15 by Ori.Cohen
Improve physics asset body creation so that it merges small bones and turns off collision between initially overlapping bodies.
Change 3236580 on 2016/12/15 by Ori.Cohen
Improve mass computation for physics shapes (ignore trimesh which introduces error)
Change 3236581 on 2016/12/15 by Ori.Cohen
Fix incorrect inertia tensor computation for cubes (was being doubled by mistake).
Change 3236809 on 2016/12/15 by Lukasz.Furman
compilation fix: missing headers in EnvQueryManager
Change 3237187 on 2016/12/15 by Lukasz.Furman
compilation fix: missing defines in EnvQueryInstance
Change 3237423 on 2016/12/15 by Aaron.McLeran
Audio mixer: Allow center channel panning as a project setting.
- To better support previous audio engine behavior, allow audio mixer to pan audio to center channel via audio settings.
Change 3237639 on 2016/12/15 by Aaron.McLeran
Audio mixer stat tracking
Change 3237646 on 2016/12/15 by dan.reynolds
MIDI Test Assets:
General MIDITestBP
MPKmini2 Child BP
MPKmini2 Wrap Map
Change 3238148 on 2016/12/16 by Lukasz.Furman
fixed crash in EQS profiler
copy of CL# 3238145
Change 3238708 on 2016/12/16 by Marc.Audy
(4.15) Don't unload and then reload streaming levels that are marked to be hidden.
#jira UE-39883
Change 3238799 on 2016/12/16 by Lina.Halper
Potential fix + more info on crash on copying curve for WEX
Change 3239559 on 2016/12/19 by Ori.Cohen
Guard against infinitely thin geometry which fixes some nans
Change 3239728 on 2016/12/19 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3239536
Change 3239735 on 2016/12/19 by Jon.Nabozny
Set 'p.MoveIgnoreFirstBlockingOverlap' to be enabled by default (3158732). This causes collision behavior to remain unchanged unless people opt in to the new behavior.
Adjust Bot_RandomLocations default health to 100 from 0. This prevents death by hits from non-projectiles.
4.15
#jira UE-39387
Change 3239765 on 2016/12/19 by Jon.Nabozny
Fix FPredictProjectilePathParams to use a valid default value for TraceChannel.
This requires the use of a new bool bTraceWithChannel which is enabled by default.
4.15
#JIRA UE-39726
Change 3239810 on 2016/12/19 by Marc.Audy
Avoid duplicate GetWorldSettings call
Change 3239826 on 2016/12/19 by Lukasz.Furman
fixed crashes in gameplay debugger's draw delegate handling
copy of 3234768, 3239819
#ue4
Change 3239894 on 2016/12/19 by Richard.Hinckley
Improving UInterface template files for "New C++ Class" feature. We now use GENERATED_BODY macros and don't need an empty constructor in the .cpp file.
Change 3239957 on 2016/12/19 by Aaron.McLeran
UE-39924 Fix for crash when duplicating sound cue assets in content browser
Checking for null before casting
Change 3239983 on 2016/12/19 by Mieszko.Zielinski
Fixed injecting dynamic BTs not as expected when there's more than one injection point #UE4
Change 3240177 on 2016/12/19 by Mieszko.Zielinski
Fix for AI agents hand-placed on levels not getting their PathFollowingComponent.MyNavData set properly #UE4
Change 3240488 on 2016/12/19 by Aaron.McLeran
UE-39924 Fix for crash when duplicating sound cue assets in content browser
More fixes!
Change 3240512 on 2016/12/19 by dan.reynolds
AEOverview Update:
- Created support for single level loads (sub-maps now auto generate lights and a staging platform when loaded individually vs. via AEOverviewMain)
This will allow developers to load single levels functionally without adding lights or other assets to make them work.
Change 3240518 on 2016/12/19 by dan.reynolds
AEOverview Update:
- Added test for Multichannel 2D Reverb
Change 3240875 on 2016/12/20 by mason.seay
Gameplay Tag Functional Tests
Change 3240876 on 2016/12/20 by dan.reynolds
AEOverview Fix
- Fixed miss targeted menu items (updated prefixes)
Change 3240923 on 2016/12/20 by Lukasz.Furman
fixed memory corruption in template A* solver
copy of CL# 3240898
#ue4
Change 3241661 on 2016/12/21 by Thomas.Sarkanen
Fix mesh-customized sockets not showing up by default in 'Active' socket filter mode
#jira UE-39938 - Cannot edit mesh sockets
Change 3241964 on 2016/12/21 by Wes.Hunt
Remove QoSReporter from CrashReportClient
#tests editor debug gpf and verify crash is sent.
Change 3241996 on 2016/12/21 by Wes.Hunt
Add @Owner tags to all analytics events in all our games #jira AN-805
* Added default owners to most events. Tracked down authors of some events.
* Added skeleton docs for many missing locations (just added @Name and @Owner so analytics folks can see the name and who to talk to in the doc webpage).
* verified this checkin contains changes to comments ONLY.
#tests compiled Orion and QAGame.
Change 3242825 on 2016/12/22 by Lukasz.Furman
fixed order of behavior tree execution indices for PIE debugging
#jira UE-39922
Change 3242860 on 2016/12/22 by mason.seay
Functional tests for timer
Change 3243188 on 2016/12/22 by dan.reynolds
AEOverview Update
- Created viewport bookmarks on each sub-map for individual testing consistency
- Updated EQ and Reverb effect parameters to work with new Audio Mixer Effects
Change 3243192 on 2016/12/22 by dan.reynolds
AEOverview Lighting Fix
Change 3243507 on 2016/12/23 by dan.reynolds
AEOverview Moved to Maps\Framework\Audio\
+ redirector clean up, resaves, etc.
Change 3243553 on 2016/12/24 by Aaron.McLeran
Bringing fixes to dev-framework from odin
3240517
3240476
3240473
3240412
3240315
3240220
3240194
Change 3243567 on 2016/12/24 by Aaron.McLeran
Fixing build.
Adding #include for FConfigCacheIni
Change 3244466 on 2017/01/01 by Mieszko.Zielinski
Removed FGameplayDebuggerDebugDrawDelegateHelper::InitDelegateHelper implementation that was failing a check without any explanation or comment #UE4
#jira UE-40069
Change 3244471 on 2017/01/01 by Aaron.McLeran
Bringing fixes to dev-framework from odin
3244469
3244467
3243743
Change 3244639 on 2017/01/03 by Jurre.deBaare
CIS error fix
Change 3244748 on 2017/01/03 by Jurre.deBaare
Crash while using the Delete Button in the HLOD Outliner while a Generated Proxy Mesh is opened in the Static Mesh Editor
#fix Unify path for both delete cluster options in the outliner UI
#jira UE-40066
Change 3245338 on 2017/01/03 by Aaron.McLeran
Getting rid of shadowed variable.
Change 3245816 on 2017/01/03 by Aaron.McLeran
Synth component and DSP objects
- New synth component wraps an audio component and procedural sound wave to make generating synthesis much much easier
- Bunch of changes and improvements to DSP objects for real-time synthesis.
- New polyphonic virtual analog synthesizer
Change 3246146 on 2017/01/04 by Ben.Marsh
Move precompiled binaries into the Private-Binaries stream.
Change 3246283 on 2017/01/04 by Marc.Audy
Fix CIS warnings
Change 3246457 on 2017/01/04 by Aaron.McLeran
Fixing static analysis warnings
Change 3246519 on 2017/01/04 by Benn.Gallagher
Fix for serialization mismatch on skeletal mesh source model.
Change 3247193 on 2017/01/04 by Dan.Reynolds
Adding new DSP utility
Change 3247769 on 2017/01/05 by Marc.Audy
Remove inaccurate comment
Change 3248068 on 2017/01/05 by dan.reynolds
AEOverview Fix
- Shortening long path name (Multichannel sub-directories) and fixing up redirectors
Change 3248251 on 2017/01/05 by Jon.Nabozny
Fix uninitialized PropertyColor in BillboardComponent.
Change 3249305 on 2017/01/06 by James.Golding
Fix FColorVertexBuffer copy constructor if source buffer is not initialised
#jira UE-40242
Change 3249639 on 2017/01/06 by Jon.Nabozny
Fix K2Node_CallFunction tool tip generation crash.
#JIRA UE-40307
Change 3249716 on 2017/01/06 by Aaron.McLeran
Minor changes to DSP objects
Deciding on a method to pass parameters from BP to synth components.
Change 3249909 on 2017/01/06 by James.Golding
Change USkinnedMeshComponent::GetSkinWeightBuffer to not require a MeshObject to return valid weight buffer
Make VertInfluencedByActiveBoneTyped not crash if weight buffer is null
#jira UE-40289
Change 3249931 on 2017/01/06 by Aaron.McLeran
Bring CL 3244528 from Odin to Dev-Framework
Change 3250012 on 2017/01/06 by Aaron.McLeran
Changing how synth params work
- Removing base-class parameter getters/setters, removing OnParameterChange virtual function
- Added SynthCommand function to help setting synth params on audio render thread from game thread
- Refactored Synth1Component to use new system
Change 3250084 on 2017/01/06 by Aaron.McLeran
Adding preset struct and adding noise to oscillator
Change 3250257 on 2017/01/07 by Aaron.McLeran
Checking in stub for new synthesis plugin to put synthesis instances.
Change 3250264 on 2017/01/07 by Aaron.McLeran
Moving synthesis code to new synthesis plugin
Change 3250313 on 2017/01/07 by Aaron.McLeran
Fixing CIS static analysis warning on include cycle
Change 3250353 on 2017/01/08 by Aaron.McLeran
Various audio mixer/dsp refinements
-Simplying envelope code to just be a straightforward case statement
-Added sample value lerping code for Amp object to avoid zippering when running at control-rate sample rates
-Changed source manager wrapping code to always set NextFrameIndex to -1 in the edge case of the next being out of range, but current not being out of range. It should always be -1.
-Added a console var to toggle enabling sample checks for tracking down sample bugs
-Added data table row subclass to EpicSynth1Component preset struct
Change 3250382 on 2017/01/08 by Aaron.McLeran
Bringing ODIN-3977 fix to dev-framework
Change 3250435 on 2017/01/08 by Aaron.McLeran
Adding ability to set note durations for synth component
Removing OnNoteOn/OnNoteOff events since derived synth components may or may not deal with notes.
Change 3250443 on 2017/01/08 by Aaron.McLeran
Fixing CIS, removing console variable code.
Change 3250445 on 2017/01/08 by Aaron.McLeran
Attempted fix for crash on existing PIE
Change 3250446 on 2017/01/08 by dan.reynolds
Updated MidiSynthTestBP for new Note On Note Off functions
Change 3250447 on 2017/01/08 by dan.reynolds
MidiListener and MidiSynthTestBP Updated to use Duration argument (MidiListener set default value to -1.0f )
Change 3250455 on 2017/01/08 by Aaron.McLeran
Adding critical section so stopping a source voice and processing source voice can't happen at same time.
Change 3250465 on 2017/01/08 by Aaron.McLeran
Fixing NaNs in sine approximations
Change 3250466 on 2017/01/08 by Aaron.McLeran
Adding new music utility.
- Changing scale indicies to be 1-based (music oriented)
- Adding new function to get chord note from a mode
Change 3250467 on 2017/01/08 by Aaron.McLeran
Undoing change to FastSin parabolic sine approximation
- was not dividing by zero!
Change 3250468 on 2017/01/08 by Aaron.McLeran
Adding ability to get a direct virtual function callback for procedural sound waves
-Using the UE4 delegate function was not safe in the audio rendering thread and would sometimes not actually get called. Switched to a more direct and simple override, avoids some buffer copies and is more simple.
-Updated synth component code to use the new method.
Change 3250470 on 2017/01/08 by Aaron.McLeran
Fixing note on duration
Change 3250479 on 2017/01/08 by Aaron.McLeran
Fixing pan in the amp dsp object
Change 3252179 on 2017/01/10 by Mieszko.Zielinski
Fallout fix after removal of BlackboardKeyUtils::CalculateComparisonResult declaration from the AIModule #UE4
Change 3252498 on 2017/01/10 by Marc.Audy
Fix non-unity compile errors
[CL 3252563 by Marc Audy in Main branch]
2017-01-10 14:09:16 -05:00
|
|
|
TestInstance->TestOrder = TestIdx;
|
2014-07-07 17:19:49 -04:00
|
|
|
OptionInstance->Tests.Add(TestInstance);
|
|
|
|
|
}
|
2014-03-14 14:13:41 -04:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
Copying //UE4/Dev-Frame to //UE4/Main
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2775736 on 2015/11/20 by Richard.Hinckley
Fix for Paper2D issue with repeated imports in one edutor session. Paper2D import process now creates a new importer at the end. This prevents the sprite sheet import process from leaving frame data around, causing subsequent imports (including imports of different sprite sheets) to include this data inappropriately.
#codereview michael.noland
Change 2776352 on 2015/11/20 by Zak.Middleton
#ue4 - Avoid useless DetachFromParent() for the same pending AttachParent during registration. Added missing UpdateOverlaps() when detaching from object simulating physics.
#rb Marc.Audy, Ori.Cohen
#codereview James.Golding
Change 2776401 on 2015/11/20 by Mieszko.Zielinski
Implemented a way to do batched points projection to navmesh, where every point can declare a custom projection box #UE4
The biggest advantage here is that projection box is independent from projected point - no more manual offsetting of projected point to achieve "100uu up and 500uu down"-like functionality
#jira UE-23705
#rb Lukasz.Furman
Change 2777450 on 2015/11/23 by Martin.Wilson
Bake additive data into animations during cooking to avoid doing additive calculations and extra pose extraction and blending at runtime
#rb Thomas.Sarkanen
Change 2777698 on 2015/11/23 by Mieszko.Zielinski
Gameplay debugging tools fixes #UE4
Fixes:
- made newly added logs respect Log Visualizer's filters
- added handling of invalid data when trying to draw EGameplayDebuggerShapeElement::Cylinder in AGameplayDebuggingHUDComponent::DrawPerception. This is a patch, root cause to be found.
- fixed Log Visualizer resetting it's data while trying to serialize invalid objects. This is a patch, root cause to be addressed.
In addition
- while at it removed bunch of 'auto' and 'class' keywords from the files I've touched
#rb Lukasz.Furman
Change 2777762 on 2015/11/23 by Mieszko.Zielinski
Removed BlackboardComponent's functionality deprecated since 4.7 #UE4
#rb Lukasz.Furman
Change 2777839 on 2015/11/23 by Zak.Middleton
#ue4 - Wrap all vector library calls to math functions through our FMath versions, so they benefit from fixes or improvements therein. Added Exp2() function.
#rb Laurent.Delayen
Change 2777840 on 2015/11/23 by Zak.Middleton
#ue4 - Fix up uses of library math functions to go through our FMath namespace.
#rb Laurent.Delayen
Change 2778287 on 2015/11/23 by Stan.Melax
deprecation of FCollisionQueryParams(bool)
See 2774707 description for the whole story
#OR-9936
#codereview marc.audy
Changes to kite will have to be in a separate check-in
I couldn't submit to all files from the framework branch addition fixes have their files are shelved in cl 2778299
Change 2778507 on 2015/11/23 by Marc.Audy
Eliminate spurious cook warnings for known missing packages
#rb Michael.Noland
Change 2778546 on 2015/11/23 by Aaron.McLeran
Moving occlusion feature settings from audio component to sound attenuation settings struct.
- Sound attenuation setting struct is used for all sounds that do 3d spatialization so it make sense for the occlusion feature settings to be there.
- Kept old low-pass frequency filter setting values on audio component (where HighFrequencyAttenuation used to be)
#rb Zak.Middleton
Change 2778664 on 2015/11/23 by Zak.Middleton
#ue4 - Clarify some comparison functions (IsZero, IsNearlyZero, Equals) in FRotator to explain that they compare as orientations, not other interpretations such as rotational speed, winding, etc.
#rb Aaron.Mcleran
#codereview Frank.Gigliotti
Change 2779335 on 2015/11/24 by Mieszko.Zielinski
Another VisualLog patch to avoid crashing due to a core bug that remains to be investigated #UE4
Again, the core bug here is related visual log trying to serialize invalid objects on a regular basis.
#rb Lukasz.Furman
Change 2779338 on 2015/11/24 by Benn.Gallagher
Fixed crash in Persona when focus is taken from a different window
#jira UE-22516
#rb Ben.Cosh
Change 2779375 on 2015/11/24 by Benn.Gallagher
Fix for deadlock in destructibles. Aquiring actor buffer without releasing causes an infinite wait on next aquire.
#rb Ori.Cohen
Change 2779753 on 2015/11/24 by Zak.Middleton
#ue4 - FMath::Atan2() no longer calls atan2f() because of some compiler or library bugs causing it to randomly return NaN for valid input. It now uses a high-precision minimax approximation instead, measured to be 2x faster than the stock C version.
#rb Brian.Karis
Change 2779853 on 2015/11/24 by Marc.Audy
2015-12-02 16:42:06 -05:00
|
|
|
Query->GetOptionsMutable().Add(OptionInstance);
|
2014-07-07 17:19:49 -04:00
|
|
|
}
|
Copying //UE4/Fortnite-Staging to //UE4/Main
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2806454 on 2015/12/16 by Bob.Tellez
#UE4 Getting crash reporting working again on linux servers. Since -Unattended is now being passed BEFORE the target folder, the cmd line parsing code was failing so now it parses tokens and switches in a more general way. Also, diagnostics.txt had the incorrect case, since the d is supposed to be capitolized and the crash report processor is case sensitive.
#rb Ben.Zeigler
#codereview Dmitry.Rekman
Change 2805502 on 2015/12/16 by Ben.Zeigler
#UE4 Move ValidateEnumProperties into ValidateGeneratedClass, it was happening too early in the generation process so was being called at an invalid time.
As a result of this ValidateEnumProperties will not be called correctly for compile on load blueprints, that issue is covered in UE-24569
#codereview mike.beach, bob.tellez
Change 2805288 on 2015/12/16 by David.Nikdel
#HTTP #HttpRetry
- Add new Failed_ConnectionError code to EHttpRequestStatus to distinguish between connection errors and protocol errors.
- Changed HTTP retry logic a little bit
* If a response was received, retry on service-specific explicit HTTP codes (defaults to empty)
* If a response was not received and we did not send a full request, automatically retry
* If a response was not received and a request may have been sent, retry if the verb is GET or HEAD (should be idempotent)
- Adjusted Curl/IOS/Mac/PS4/WinInet to try and distinguish Failed_ConnectionError where possible
* Other systems will default to Failed which is ok (ConnectionError is an opportunistic categorization)
* Opened a PS4 ticket to try to improve detection, but unfortunately there's no way (currently) to distinguish between send timeout, connection timeout, and receive timeout, the latter being the problematic case.
- Removed the concept of global/default HTTP retry status codes. No system has enough knowledge to set those globally.
* Individual requests still specify explicit "retryable" codes and McpServiceBase sets that on each request on a per-service basis
#RB: Sam.Zamani
#CodeReview: Sam.Zamani, Josh.Markiewicz, Alex.Fennell, Dmitry.Rekman, Sam.Spiro
#Fixes: FORT-17804
Change 2803864 on 2015/12/15 by Bob.Tellez
#UE4 Changed usage of !UE_SERVER to !IsRunningDedicatedServer in cases where we are preventing load attempts on UFonts. This is so running an editor build with -server works the same as running a cooked server.
#rb Dmitry.Rekman
#codereview Nick.Darnell
Change 2803677 on 2015/12/15 by Billy.Bramer
- Expose equality and inequality operators for gameplay attributes
#rb Todd.Eckert
Change 2802881 on 2015/12/14 by Bob.Tellez
#UE4 InheritableComponentHandler no longer keeps records for components that we are no longer inheriting.
#rb Phillip.Kavan, Maciej.Mroz
#codereview Phillip.Kavan, Maciej.Mroz
Change 2801636 on 2015/12/14 by Bob.Tellez
#UE4 Returning package insert order for non-imports back to being after those of matching priorities unconditionally since this is what you want even when you are not using the asset registry to preload packages.
#codereview Graeme.Thornton
Change 2800400 on 2015/12/11 by Jonathan.Lindquist
Submitting a new Pivot Painter Edition
- now renders to textures
- improved workflow
- greater capabilities
Change 2799579 on 2015/12/11 by John.Abercrombie
[AUTOMERGE]
Fixed EQS BP query wrappers getting GCed before wrapped query finishes #UE4
Fixes FORT-18649 - Patrols don't spawn consistently
- The patrol blueprint was waiting (endlessly) for an EQS query to finish but because the wrapper could be GC-ed while the EQS query was running the delegate would never fire
#rb me (this code was written by MieszkoZ)
(removed code review for integration of Mieszko.Zielinski, Phil.Cole, Dominic.Barile)
--------
Integrated using branch UE4-Fortnite-To-UE4-FortniteReleases/0.10 (reversed) of change#2799575 by John.Abercrombie on 2015/12/11 09:55:11.
Change 2799018 on 2015/12/10 by Bob.Tellez
#UE4 The asset registry tags stripped from cooked builds is now a blacklist by default that includes only the FiB tag. You can opt-in to using the whitelist by flipping the bUseAssetRegistryTagsWhitelistInsteadOfBlacklist flag.
#rb Fred.Kimberley
#codereview Peter.Knepley
Change 2798926 on 2015/12/10 by Bob.Tellez
#UE4 Removed some showflags from the list of "Fixed" showflags since they were actually in use at runtime in Fortnite in a scene capture.
#jira FORT-18514
#codereview Martin.Mittring
Change 2797758 on 2015/12/10 by Mark.Satterthwaite
Defer calls to AUGraphUpdate into FCoreAudioDevice::UpdateHardware - this call will synchronise the calling thread with the CoreAudio thread/run-loop so that the CoreAudio graph is safe to modify and this may incur a significant stall. This means it is far more efficient to amortise the cost of all changes to the graph with a single call. To ensure correctness the audio format conversion components are cached and disposed of after the call to AUGraphUpdate so that any existing operations on the CoreAudio thread are completed prior to disposal.
Change 2781204 on 2015/11/25 by Dmitry.Rekman
Linux: use jemalloc by default if available.
- Alleviates one of the reasons for player disconnect (FORT-18048), which was machines running OOM.
#rb Bob.Tellez
#codereview Bob.Tellez, Ben.Zeigler
Change 2779398 on 2015/11/24 by Mark.Satterthwaite
Switch the default graphics API on Mac back to OpenGL, but allow Metal to run with -metal (or -metalsm5 for experimental SM5 support).
2016-01-08 19:10:43 -05:00
|
|
|
|
|
|
|
|
// FORT-16508 tracking BEGIN: log invalid option
|
|
|
|
|
if (OptionInstance && OptionInstance->Generator == nullptr)
|
|
|
|
|
{
|
|
|
|
|
FString DebugMessage = FString::Printf(TEXT("[%s] UpdateAsset found option instance [pin:%d] without a generator! tests:%d"),
|
|
|
|
|
FPlatformTime::StrTimestamp(), Idx, OptionNode->SubNodes.Num());
|
|
|
|
|
|
|
|
|
|
RootNode->LogDebugMessage(DebugMessage);
|
|
|
|
|
}
|
|
|
|
|
else if (OptionInstance == nullptr)
|
|
|
|
|
{
|
|
|
|
|
FString DebugMessage = FString::Printf(TEXT("[%s] UpdateAsset found option node [pin:%d] without an instance! tests:%d"),
|
|
|
|
|
FPlatformTime::StrTimestamp(), Idx, OptionNode->SubNodes.Num());
|
|
|
|
|
|
|
|
|
|
RootNode->LogDebugMessage(DebugMessage);
|
|
|
|
|
}
|
|
|
|
|
// FORT-16508 tracking END
|
2014-03-14 14:13:41 -04:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2014-04-23 19:29:53 -04:00
|
|
|
RemoveOrphanedNodes();
|
Copying //UE4/Fortnite-Staging to //UE4/Main
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2806454 on 2015/12/16 by Bob.Tellez
#UE4 Getting crash reporting working again on linux servers. Since -Unattended is now being passed BEFORE the target folder, the cmd line parsing code was failing so now it parses tokens and switches in a more general way. Also, diagnostics.txt had the incorrect case, since the d is supposed to be capitolized and the crash report processor is case sensitive.
#rb Ben.Zeigler
#codereview Dmitry.Rekman
Change 2805502 on 2015/12/16 by Ben.Zeigler
#UE4 Move ValidateEnumProperties into ValidateGeneratedClass, it was happening too early in the generation process so was being called at an invalid time.
As a result of this ValidateEnumProperties will not be called correctly for compile on load blueprints, that issue is covered in UE-24569
#codereview mike.beach, bob.tellez
Change 2805288 on 2015/12/16 by David.Nikdel
#HTTP #HttpRetry
- Add new Failed_ConnectionError code to EHttpRequestStatus to distinguish between connection errors and protocol errors.
- Changed HTTP retry logic a little bit
* If a response was received, retry on service-specific explicit HTTP codes (defaults to empty)
* If a response was not received and we did not send a full request, automatically retry
* If a response was not received and a request may have been sent, retry if the verb is GET or HEAD (should be idempotent)
- Adjusted Curl/IOS/Mac/PS4/WinInet to try and distinguish Failed_ConnectionError where possible
* Other systems will default to Failed which is ok (ConnectionError is an opportunistic categorization)
* Opened a PS4 ticket to try to improve detection, but unfortunately there's no way (currently) to distinguish between send timeout, connection timeout, and receive timeout, the latter being the problematic case.
- Removed the concept of global/default HTTP retry status codes. No system has enough knowledge to set those globally.
* Individual requests still specify explicit "retryable" codes and McpServiceBase sets that on each request on a per-service basis
#RB: Sam.Zamani
#CodeReview: Sam.Zamani, Josh.Markiewicz, Alex.Fennell, Dmitry.Rekman, Sam.Spiro
#Fixes: FORT-17804
Change 2803864 on 2015/12/15 by Bob.Tellez
#UE4 Changed usage of !UE_SERVER to !IsRunningDedicatedServer in cases where we are preventing load attempts on UFonts. This is so running an editor build with -server works the same as running a cooked server.
#rb Dmitry.Rekman
#codereview Nick.Darnell
Change 2803677 on 2015/12/15 by Billy.Bramer
- Expose equality and inequality operators for gameplay attributes
#rb Todd.Eckert
Change 2802881 on 2015/12/14 by Bob.Tellez
#UE4 InheritableComponentHandler no longer keeps records for components that we are no longer inheriting.
#rb Phillip.Kavan, Maciej.Mroz
#codereview Phillip.Kavan, Maciej.Mroz
Change 2801636 on 2015/12/14 by Bob.Tellez
#UE4 Returning package insert order for non-imports back to being after those of matching priorities unconditionally since this is what you want even when you are not using the asset registry to preload packages.
#codereview Graeme.Thornton
Change 2800400 on 2015/12/11 by Jonathan.Lindquist
Submitting a new Pivot Painter Edition
- now renders to textures
- improved workflow
- greater capabilities
Change 2799579 on 2015/12/11 by John.Abercrombie
[AUTOMERGE]
Fixed EQS BP query wrappers getting GCed before wrapped query finishes #UE4
Fixes FORT-18649 - Patrols don't spawn consistently
- The patrol blueprint was waiting (endlessly) for an EQS query to finish but because the wrapper could be GC-ed while the EQS query was running the delegate would never fire
#rb me (this code was written by MieszkoZ)
(removed code review for integration of Mieszko.Zielinski, Phil.Cole, Dominic.Barile)
--------
Integrated using branch UE4-Fortnite-To-UE4-FortniteReleases/0.10 (reversed) of change#2799575 by John.Abercrombie on 2015/12/11 09:55:11.
Change 2799018 on 2015/12/10 by Bob.Tellez
#UE4 The asset registry tags stripped from cooked builds is now a blacklist by default that includes only the FiB tag. You can opt-in to using the whitelist by flipping the bUseAssetRegistryTagsWhitelistInsteadOfBlacklist flag.
#rb Fred.Kimberley
#codereview Peter.Knepley
Change 2798926 on 2015/12/10 by Bob.Tellez
#UE4 Removed some showflags from the list of "Fixed" showflags since they were actually in use at runtime in Fortnite in a scene capture.
#jira FORT-18514
#codereview Martin.Mittring
Change 2797758 on 2015/12/10 by Mark.Satterthwaite
Defer calls to AUGraphUpdate into FCoreAudioDevice::UpdateHardware - this call will synchronise the calling thread with the CoreAudio thread/run-loop so that the CoreAudio graph is safe to modify and this may incur a significant stall. This means it is far more efficient to amortise the cost of all changes to the graph with a single call. To ensure correctness the audio format conversion components are cached and disposed of after the call to AUGraphUpdate so that any existing operations on the CoreAudio thread are completed prior to disposal.
Change 2781204 on 2015/11/25 by Dmitry.Rekman
Linux: use jemalloc by default if available.
- Alleviates one of the reasons for player disconnect (FORT-18048), which was machines running OOM.
#rb Bob.Tellez
#codereview Bob.Tellez, Ben.Zeigler
Change 2779398 on 2015/11/24 by Mark.Satterthwaite
Switch the default graphics API on Mac back to OpenGL, but allow Metal to run with -metal (or -metalsm5 for experimental SM5 support).
2016-01-08 19:10:43 -05:00
|
|
|
|
|
|
|
|
// FORT-16508 tracking BEGIN: find corrupted options
|
|
|
|
|
if (RootNode)
|
|
|
|
|
{
|
|
|
|
|
for (int32 Idx = 0; Idx < Nodes.Num(); Idx++)
|
|
|
|
|
{
|
|
|
|
|
UEnvironmentQueryGraphNode_Option* OptionNode = Cast<UEnvironmentQueryGraphNode_Option>(Nodes[Idx]);
|
|
|
|
|
if (OptionNode)
|
|
|
|
|
{
|
|
|
|
|
UEnvQueryOption* OptionInstance = Cast<UEnvQueryOption>(OptionNode->NodeInstance);
|
|
|
|
|
if (OptionNode->NodeInstance == nullptr || OptionInstance == nullptr || OptionInstance->HasAnyFlags(RF_Transient))
|
|
|
|
|
{
|
|
|
|
|
FString DebugMessage = FString::Printf(TEXT("[%s] found corrupted node after RemoveOrphanedNodes! type:instance option:%s instance:%d transient:%d tests:%d"),
|
|
|
|
|
FPlatformTime::StrTimestamp(),
|
|
|
|
|
*GetNameSafe(OptionNode),
|
|
|
|
|
OptionNode->NodeInstance ? (OptionInstance ? 1 : -1) : 0,
|
|
|
|
|
OptionNode->NodeInstance ? (OptionNode->HasAnyFlags(RF_Transient) ? 1 : 0) : -1,
|
|
|
|
|
OptionNode->SubNodes.Num());
|
|
|
|
|
|
|
|
|
|
RootNode->LogDebugError(DebugMessage);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (OptionInstance && (OptionInstance->Generator == nullptr || OptionInstance->Generator->HasAnyFlags(RF_Transient)))
|
|
|
|
|
{
|
|
|
|
|
FString DebugMessage = FString::Printf(TEXT("[%s] found corrupted node after RemoveOrphanedNodes! type:generator option:%s instance:%d transient:%d tests:%d"),
|
|
|
|
|
FPlatformTime::StrTimestamp(),
|
|
|
|
|
*GetNameSafe(OptionNode),
|
|
|
|
|
OptionNode->NodeInstance ? 1 : 0,
|
|
|
|
|
OptionNode->NodeInstance ? (OptionNode->HasAnyFlags(RF_Transient) ? 1 : 0) : -1,
|
|
|
|
|
OptionNode->SubNodes.Num());
|
|
|
|
|
|
|
|
|
|
RootNode->LogDebugError(DebugMessage);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// FORT-16508 tracking END
|
|
|
|
|
|
2014-09-03 05:20:46 -04:00
|
|
|
#if USE_EQS_DEBUGGER
|
2014-03-14 14:13:41 -04:00
|
|
|
UEnvQueryManager::NotifyAssetUpdate(Query);
|
2014-09-03 05:20:46 -04:00
|
|
|
#endif
|
2014-03-14 14:13:41 -04:00
|
|
|
}
|
|
|
|
|
|
2015-03-09 05:40:56 -04:00
|
|
|
void UEnvironmentQueryGraph::Initialize()
|
|
|
|
|
{
|
|
|
|
|
Super::Initialize();
|
2015-03-17 05:56:35 -04:00
|
|
|
|
|
|
|
|
LockUpdates();
|
2015-03-09 05:40:56 -04:00
|
|
|
SpawnMissingNodes();
|
|
|
|
|
CalculateAllWeights();
|
2015-03-17 05:56:35 -04:00
|
|
|
UnlockUpdates();
|
2015-03-09 05:40:56 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void UEnvironmentQueryGraph::OnLoaded()
|
|
|
|
|
{
|
|
|
|
|
Super::OnLoaded();
|
|
|
|
|
UpdateDeprecatedGeneratorClasses();
|
|
|
|
|
}
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
void UEnvironmentQueryGraph::CalculateAllWeights()
|
|
|
|
|
{
|
2015-02-23 10:30:16 -05:00
|
|
|
for (int32 Idx = 0; Idx < Nodes.Num(); Idx++)
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2015-02-23 10:30:16 -05:00
|
|
|
UEnvironmentQueryGraphNode_Option* OptionNode = Cast<UEnvironmentQueryGraphNode_Option>(Nodes[Idx]);
|
2014-03-14 14:13:41 -04:00
|
|
|
if (OptionNode)
|
|
|
|
|
{
|
|
|
|
|
OptionNode->CalculateWeights();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void UEnvironmentQueryGraph::MarkVersion()
|
|
|
|
|
{
|
|
|
|
|
GraphVersion = EQSGraphVersion::Latest;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void UEnvironmentQueryGraph::UpdateVersion()
|
|
|
|
|
{
|
|
|
|
|
if (GraphVersion == EQSGraphVersion::Latest)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// convert to nested nodes
|
|
|
|
|
if (GraphVersion < EQSGraphVersion::NestedNodes)
|
|
|
|
|
{
|
|
|
|
|
UpdateVersion_NestedNodes();
|
|
|
|
|
}
|
|
|
|
|
|
2014-04-23 19:29:53 -04:00
|
|
|
if (GraphVersion < EQSGraphVersion::CopyPasteOutersBug)
|
|
|
|
|
{
|
|
|
|
|
UpdateVersion_FixupOuters();
|
|
|
|
|
}
|
|
|
|
|
|
2015-02-23 10:30:16 -05:00
|
|
|
if (GraphVersion < EQSGraphVersion::BlueprintClasses)
|
|
|
|
|
{
|
|
|
|
|
UpdateVersion_CollectClassData();
|
|
|
|
|
}
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
GraphVersion = EQSGraphVersion::Latest;
|
2014-04-23 19:29:53 -04:00
|
|
|
Modify();
|
2014-03-14 14:13:41 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void UEnvironmentQueryGraph::UpdateVersion_NestedNodes()
|
|
|
|
|
{
|
2015-02-23 10:30:16 -05:00
|
|
|
for (int32 Idx = 0; Idx < Nodes.Num(); Idx++)
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2015-02-23 10:30:16 -05:00
|
|
|
UEnvironmentQueryGraphNode_Option* OptionNode = Cast<UEnvironmentQueryGraphNode_Option>(Nodes[Idx]);
|
2014-03-14 14:13:41 -04:00
|
|
|
if (OptionNode)
|
|
|
|
|
{
|
|
|
|
|
UEnvironmentQueryGraphNode* Node = OptionNode;
|
|
|
|
|
while (Node)
|
|
|
|
|
{
|
|
|
|
|
UEnvironmentQueryGraphNode* NextNode = NULL;
|
|
|
|
|
for (int32 iPin = 0; iPin < Node->Pins.Num(); iPin++)
|
|
|
|
|
{
|
|
|
|
|
UEdGraphPin* TestPin = Node->Pins[iPin];
|
|
|
|
|
if (TestPin && TestPin->Direction == EGPD_Output)
|
|
|
|
|
{
|
|
|
|
|
for (int32 iLink = 0; iLink < TestPin->LinkedTo.Num(); iLink++)
|
|
|
|
|
{
|
|
|
|
|
UEdGraphPin* LinkedTo = TestPin->LinkedTo[iLink];
|
|
|
|
|
UEnvironmentQueryGraphNode_Test* LinkedTest = LinkedTo ? Cast<UEnvironmentQueryGraphNode_Test>(LinkedTo->GetOwningNode()) : NULL;
|
|
|
|
|
if (LinkedTest)
|
|
|
|
|
{
|
|
|
|
|
LinkedTest->ParentNode = OptionNode;
|
2015-02-23 10:30:16 -05:00
|
|
|
OptionNode->SubNodes.Add(LinkedTest);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
NextNode = LinkedTest;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Node = NextNode;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-02-23 10:30:16 -05:00
|
|
|
for (int32 Idx = Nodes.Num() - 1; Idx >= 0; Idx--)
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2015-02-23 10:30:16 -05:00
|
|
|
UEnvironmentQueryGraphNode_Test* TestNode = Cast<UEnvironmentQueryGraphNode_Test>(Nodes[Idx]);
|
2014-03-14 14:13:41 -04:00
|
|
|
if (TestNode)
|
|
|
|
|
{
|
|
|
|
|
TestNode->Pins.Empty();
|
2015-02-23 10:30:16 -05:00
|
|
|
Nodes.RemoveAt(Idx);
|
2014-03-14 14:13:41 -04:00
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
2015-02-23 10:30:16 -05:00
|
|
|
UEnvironmentQueryGraphNode_Option* OptionNode = Cast<UEnvironmentQueryGraphNode_Option>(Nodes[Idx]);
|
2014-03-14 14:13:41 -04:00
|
|
|
if (OptionNode && OptionNode->Pins.IsValidIndex(1))
|
|
|
|
|
{
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3025888)
#rb none
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2927746 on 2016/03/30 by Michael.Schoell
Local variables in function graphs will now store a hard reference to their UObject value.
Fixes a crash when a Blueprint is saved before compiling with the local variable's value set. Ensures that the UObject is loaded with the Blueprint.
#jira UE-27738 - Local variables in a function that is in a blueprint will somehow become invalid when calling a native
Change 2927751 on 2016/03/30 by Michael.Schoell
Back out changelist 2927746
Change 2986483 on 2016/05/23 by Maciej.Mroz
#jira UE-30976 Editable enum values set on an instance are lost during nativization
Added overriden names of Enum keys.
Change 2986712 on 2016/05/23 by Phillip.Kavan
[UE-21010] Apply updated transform to component template instances when changing the scene root in a Blueprint class.
change summary:
- modified SSCS_RowWidget::OnMakeNewRootDropAction() to propagate the location/rotation reset to instances of the component template that's becoming the new scene root.
Change 2987406 on 2016/05/23 by Ryan.Rauschkolb
Fixed Functions filter in Find-In-Blueprints will show components from the SCS
#jira UE-30140
Change 2988925 on 2016/05/24 by Ryan.Rauschkolb
Fixed Issue where certain primitives would not automatically type cast to Text in Blueprint graph.
#jira UE-20232
Change 2989001 on 2016/05/24 by Dan.Oconnor
PR #2418: Fixed a typo in Blueprint.h (Contributed by PistonMiner)
#jira UE-31142
Change 2989447 on 2016/05/25 by Phillip.Kavan
[UE-30807] Propagate edit condition property value changes to instances of template objects.
change summary:
- modified FPropertyEditor::SetEditConditionState() to propagate an EditConditionProperty value change to all instances if the outer owning object is a template (e.g. CDO)
Change 2989804 on 2016/05/25 by Phillip.Kavan
[UE-30289] Preserve relative scale on the root scene component when converting an Actor instance to a Blueprint Class.
change summary:
- modified FKismetEditorUtilities::CreateBlueprintFromActor() to post-copy the relative scale value from the Actor's root component to the new Blueprint CDO's root component
Change 2990234 on 2016/05/25 by Ryan.Rauschkolb
Fixed issue where including a period ina Blueprint function causes double-click to fail to open its graph
#jira UE-4426
Change 2990566 on 2016/05/25 by Mike.Beach
Better warn logging to help locate variable nodes that emit a "variable not found" message.
Change 2991083 on 2016/05/26 by Maciej.Mroz
Blueprint nativization: converted classes have "config" specified.
Change 2991363 on 2016/05/26 by Phillip.Kavan
[UE-19599] Copy-and-paste of Actor instances from level to Blueprint/IWCE component tree views now adds properly-initialized components.
change summary:
- modified FCustomizableTextObjectFactory::CanCreateObjectsFromText() to handle "Begin Actor/End Actor" blocks in T3D text
- modified FCustomizableTextObjectFactory::ProcessBuffer() to handle "Begin Actor/End Actor" blocks in T3D text (so that Actor-type objects can be processed)
- modified FComponentObjectTextFactory::CanCreateClass() to allow Actor-type objects to pass
- modified FComponentObjectTextFactory::ProcessConstructedObject() to handle Actor-type objects and pull out owned component instances as constructed objects
Change 2992990 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where Connecting Self Reference Pin to a String pin does not fully connect the generated GetDisplayName node
#jira UE-21973
Change 2992995 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where GetClass node is not listed in the Context Menu when pulling from a self node and Context Sensitive is checked.
#jira UE-30990
Change 2993449 on 2016/05/27 by Phillip.Kavan
[UE-31379] Don't instrument "preview" Actor instances during Blueprint profiler script event processing.
change summary:
- modified FBlueprintProfiler::InstrumentEvent() to check for and bypass Actor instances belonging to a preview or inactive world type.
Change 2993531 on 2016/05/27 by Mike.Beach
PR #2433: Interface functions inherited from a native base class now appear in . (Contributed by MichaelSchoell)
Change 2993969 on 2016/05/30 by Maciej.Mroz
UE-30729 Crash in Native Orion when selecting Sword or Tomahawk
Clear AsyncLoading in subobjects.
Change 2993990 on 2016/05/30 by Phillip.Kavan
[UE-30984] Exclude reroute nodes from Blueprint profiler node mapping.
change summary:
- modified FBlueprintFunctionContext::MapInputPins() to pass through non-relevant nodes when iterating through non-exec input pin links.
- modified FBlueprintFunctionContext::MapExecPins() to pass through non-relevant nodes when iterating through output exec pin links.
- modified FBlueprintFunctionContext::MapTunnelEntry() to pass through non-relevant nodes when iterating through tunnel node exit points.
- modified FBlueprintFunctionContext::MapTunnelInstance() to pass through non-relevant nodes when iterating through tunnel graph entry points.
Change 2994591 on 2016/05/31 by Ryan.Rauschkolb
Fixed issue where inherited Blueprint variable would not show parent's replications settings
#jira UE-18912
Change 2994613 on 2016/05/31 by Ben.Cosh
Minor refactor and Various fixes to the blueprint profiler moving towards MVP goal.
#Jira UE-27039 - Blueprint Profiler does not lists stats when calling an Event Dispatcher
#Jira UE-31396 - Blueprint profiler crashes inside the profiler connection drawing policy
#Jira UE-30957 - "Pure Time" does not populate with data in the Blueprint Profiler
#Jira UE-30926 - Blueprint profiler - expose heatmap thresholds to user through the profiler tab
#Jira UE-30909 - Blueprint Profiler - "compile" icon should denote Blueprint's instrumented status
#Jira UE-30911 - Blueprint profiler tab/panel should display warning when Blueprint is uninstrumented
#Jira UE-31385 - BP Profiler - Inclusive time column should be entirely filled out
#Jira UE-31375 - BP Profiler - Default sample averaging to the "arithmetic mean"
#Jira UE-31377 - BP Profiler - Default tree view filtering to off
#Jira UE-31387 - BP Profiler - Remove the "view type" button for MVP
#Jira UE-31384 - BP Profiler - In the tree view, rename the first time column "Avg. Time (ms)"
Notes:-
- Sequence node inclusive time fixed
- Trace History tidy up
- Compile Icon and status messages for instrumentation
- Message in the profiler tab for instrumentation
- Profiler view tidy up and heat thresholds controls added
- fixed the summed execution branch stats
- fixed the connection drawing policy to use branch pin stats and fixed the crash from UE-31396
- added hottest path and hottest endpoint wire heatmaps
- switched off the graph filter by default
- added total time for the heatmaps
- fixed issue where initialising mapped functions caused an assert due to changes to the array/map in initialisation code
Change 2995058 on 2016/05/31 by Phillip.Kavan
[UE-30718] Native/const implementable events will no longer cause a crash at runtime when the Blueprint profiler is running.
change summary:
- modified UObject::ProcessEvent() to bypass instrumentation for native event functions that are not implemented (overridden) in a BP class.
- modified FScriptEventPlayback::Process() to first check for a standalone function match (UCS, implementable events declared as 'const') before settling on the ubergraph function for the target context.
Change 2995218 on 2016/05/31 by Phillip.Kavan
[UE-30778] Restored non-K2 compact graph nodes (e.g. Material Editor) to previous size.
change summary:
- modified SGraphNode::GetNodeIndicatorOverlayVisibility() default impl to return 'Collapsed' by default, so it doesn't affect layout.
Change 2996417 on 2016/06/01 by Phillip.Kavan
[UE-16073] Basic shape components (cube etc.) will now apply the correct override material to instances after being added through the component tree in the Blueprint editor.
change summary:
- modified the 'OnBasicShapeCreated' lambda in FComponentTypeRegistryData::AddBasicShapeComponents() to propagate the material override to all instances when the given component is an archetype (template) object.
Change 2997001 on 2016/06/01 by Ryan.Rauschkolb
Fixed Double Clicking a component in the results of Find-In-Blueprints does not select the component
#jira UE-30143
Change 2997521 on 2016/06/02 by Maciej.Mroz
[Blueprint Nativization]
- Added FilesToIncludeInModuleHeader config variable in BlueprintNativizationSettings. So some headers can be included in NativizedAssets.h
- Guids of nodes are no longer recreated when Blueprint is duplicated for "C++ compilation". Previously child bp used variable names based on original parent class, but nativized parent class had guids recreated.
Change 2997522 on 2016/06/02 by Maciej.Mroz
Native implementation of NOEXPORT FInterpCurvePoint structures. (It's necessary for Blueprint nativization)
Change 2997638 on 2016/06/02 by Maciej.Mroz
Improvements for Blueprint Nativization:
- Overridden names in nativized code have proper escape characters (in generated code).
- OnlyDefaultConstructorDeclared metadata is replaced by ObjectInitializerConstructorDeclared
- Arrays of nativized anum have the following form: TArray<Enum> (previously it was TArray<TEnumAsByte<Enum>>)
- warning C4883 is disabled in .generated.cpp files for nativized module
Change 2997639 on 2016/06/02 by Maciej.Mroz
Minor improvements in Ocean gameplay code. Required for Blueprint Nativization.
#jira UE-28945 Failure packaging Nativized Ocean
Change 2997656 on 2016/06/02 by Maciej.Mroz
Various improvements in BlueprintCompilerCppBackend:
- Fixed interface cast
- Fixed TSwitchValue issue (when used with literals)
- Fixed improper name for NativeBlueprintEvent (when calling parent's implementation)
- Fixed bitfield getter code.
- Reduce code size (less UsedAssets, less ReferencedConvertedFields, cached UEnums)
- operator == is generated for nativized structs
- Fixed AssedId (AssetPtr) constructor in nativized code.
- Fixed arrays of noexport struct
- Fixed missing headers for native single cast delegate signature.
- Fixed issue when default constructor (in native) is missing (constructor with FObjectInitialized, wont be used automatically). See "ObjectInitializerConstructorDeclared" metadata.
Change 2997691 on 2016/06/02 by Maciej.Mroz
operator == in FText. It is required for some functions in TArray<FText>
Change 2997793 on 2016/06/02 by Ben.Cosh
Added support for BaseAsyncTask nodes, fixed a problem with instance mapping and turned off the debug instance filter
#Jira UE-30703 - Crash using blueprint profiler on AI pawn using nav mesh
#Proj BlueprintProfiler, Kismet
Change 2997901 on 2016/06/02 by Maciej.Mroz
Back out changelist 2997691
Change 2998038 on 2016/06/02 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 2998052 on 2016/06/02 by Ryan.Rauschkolb
Fixed Comment bubbles not remembering changes after losing focus
#jira UE-20012
Change 2998450 on 2016/06/02 by Phillip.Kavan
[UE-31550] Fix crash on load of a Blueprint class containing a bitmask variable with missing enum type metadata.
change summary:
- modified FBlueprintEditorUtils::ValidateBlueprintVariableMetadata() to check for presence of bitmask enum type metadata on a variable before trying to validate it.
Change 2999763 on 2016/06/03 by Mike.Beach
Guarding against a crash with an ensure - attempting to catch why this is happening by logging more info, as we're unable to repro it. Guarding against nodes which reference malformed (TRASH) classes.
#jira UE-26761
Change 2999768 on 2016/06/03 by Maciej.Mroz
#jira UE-31592, UE-31593
This is just workaound. FReferenceFinder::FindReferences doesn;t find Enum variable in UByteProperty.
Change 2999770 on 2016/06/03 by Maciej.Mroz
[Blueprint Nativization]
Workaround for missing ==operator in native structures. The generated code uses special version of array funtions.
Change 2999798 on 2016/06/03 by Mike.Beach
Guarding against malformed Blueprints (ones without valid "authoratative" class) used as context for the node menu. Baffling how we'd get into this scenario, but this adds ensures to hopefully give us clues and stabalize the editor.
#jira UE-31522
Change 2999941 on 2016/06/03 by Mike.Beach
Correcting mistake in previously attempted fix (CL 2781229). Now using weak ptr IsValid checks to guard against destroyed nodes in deferred graph actions (TWeakObjectPtr::Get() does not check IsValid before returning).
#jira UE-23371
Change 3001731 on 2016/06/06 by Phillip.Kavan
[UE-30638] BP profiler will no longer crash at runtime while profiling events that call functions on an external target.
change summary:
- modified FBlueprintProfiler::ProcessEventProfilingData() to only remove 'Class' and 'Instance' signals on new events.
- modified FScriptEventPlayback::NodeSignalHelper struct to include a new 'BlueprintContext' field.
- modified FScriptEventPlayback::Process() to handle midstream context switches by updating the Blueprint/Function context on 'Class' and/or 'Instance' signals.
- modified FScriptEventPlayback::Process() to cache and reference the current Blueprint context within the cached NodeSignalHelper while handling processed events.
Change 3002075 on 2016/06/06 by Maciej.Mroz
Improved FScriptBuilderBase::EmitTermExpr in KismetCompilerVMBackend.
Literal expression can be emitted without known desitination property.
#jira UE-28443 Set Boolean (by ref) crashes the editor on compile
Change 3002096 on 2016/06/06 by Ben.Cosh
This change expands the way that the blueprint profiler detects event nodes during mapping to include other non function graphs.
#Jira UE-30716 - Blueprint Profiler crashes if function in another graph is called
#Proj BlueprintProfiler
Change 3002108 on 2016/06/06 by Ben.Cosh
Adds a new default option to average the blueprint level stats in the profiler.
#Jira UE-31386 - BP Profiler - Timings reported with "Show Instances" off (in the tree view) are not averaged
#Proj Kismet, BlueprintProfiler
- The controls were also getting a bit messy so I tidied them all up into a re-usable toolbar for convenience going forward.
Change 3002782 on 2016/06/06 by samuel.proctor
Test assets for Interface testing
Change 3003826 on 2016/06/07 by Ben.Cosh
A few minor visual improvements for the blueprint profiler.
#Proj Kismet, BlueprintProfiler, EditorStyle
- Updated the actor icon to match the world outliner and added some functionality to draw attention to stale/deleted actors.
- Updated the pure node icon.
Change 3004067 on 2016/06/07 by samuel.proctor
New test asset for blueprint interfaces
Change 3004069 on 2016/06/07 by samuel.proctor
Updating asset for Interface testing
Change 3004275 on 2016/06/07 by Ryan.Rauschkolb
Fixed issue where Toggle Comment Bubble button for Reroute nodes would not rever tthe comment bubble to constant visibility
#jira UE-23733
Change 3004329 on 2016/06/07 by Dan.Oconnor
EdGraphPin is no longer a UObject, this will improve load times significantly on projects with large number of blueprints, but content does need to be resaved in order to see the improvement in load time. UObject counts are also greatly reduced.
Change 3004418 on 2016/06/07 by Maciej.Mroz
KismetCompilerVMBackend: Fixed issue, when a byte property has no enum specified (for examle parameter from EqualEqual_ByteByte) but the enum is needed to parse a literal value.
Change 3004496 on 2016/06/07 by Dan.Oconnor
Disabling expensive pin allocation tracking
Change 3004649 on 2016/06/07 by Mike.Beach
Preventing a new warning from being generated on trace point exceptions (trace point exceptions are used to hook into the debugger, and don't represent errors).
#jira UE-31236
Change 3004667 on 2016/06/07 by Dan.Oconnor
Removed my debugging logic
Change 3004848 on 2016/06/07 by Dan.Oconnor
Fix spammy ensure
Change 3004871 on 2016/06/07 by Phillip.Kavan
[UE-24950] No longer including components instanced as default subobjects of and attached to components instanced by construction script in the IWCE component tree view.
change summary:
- modified SSCSEditor::UpdateTree() to exclude child components instanced in native code as "nested" DSOs and parented to non-natively-constructed (e.g. Blueprint) components; these instances are no longer being shown in IWCE in order to avoid confusion, as they're not currently mutable at the instance level, will always be parented to something that is visible in the tree, and they're also not currently shown in the Blueprint editor's component tree view (because they're not stored in the CDO).
- modified FSceneComponentData's ctor to exclude child components instanced in native code as nested DSOs from the AttachedInstancedComponents array; this allows child components instanced as nested DSOs to be disposed of along with the constructed parent instance when re-running construction scripts.
Change 3005203 on 2016/06/07 by Dan.Oconnor
Fix for undo/redo/serialization issues with ed graph pin change. When serialization logic was applied incrementally our attempts to keep LinkedTo symetrical and aggressively clear destroyed nodes caused problems
#jira UE-31750
Change 3005441 on 2016/06/08 by Maciej.Mroz
#jira UE-31625 Crash in nativized Orion
AssembleReferenceTokenStream is called for Dynamic Classes:
- in ConstructDynamicType() (when class is explicitly loaded)
- in __CustomDynamicClassInitialization() (when CDO is created)
Change 3005540 on 2016/06/08 by Ben.Cosh
This adds the ability to track profiler instances between editor and PIE instances and displays the current status through the icon coloring.
#Jira UE-30705 - Blueprint profiler stats lost if instance destroyed during PIE
#Proj BlueprintProfiler, Kismet
- The jira was already fixed but I think this change improves the instance status clarity
Change 3006196 on 2016/06/08 by Dan.Oconnor
Copy/paste logic for pin connections got lost in the shuffle
#jira UE-31747
Change 3006416 on 2016/06/08 by Phillip.Kavan
[UE-31735] Fix potential loss of GetClassDefaults node output pin links on load (due to dependency load order).
change summary:
- modified UK2Node_GetClassDefaults::GetInputClass() to redirect to the generated skeleton class only if it's valid. this ensures that output pins will be reallocated during node reconstruction even if the dependent Blueprint's skeleton class has not yet been generated on load.
Change 3006522 on 2016/06/08 by Dan.Oconnor
Under rare circumstances a deprecated pin comes in that is outered to the transient package
#jira UE-31779
Change 3006576 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
#jira UE-31796
Change 3006610 on 2016/06/08 by Phillip.Kavan
[UE-31743] Fix data loss issue when loading a serialized non-native component class instance that's owned by an Actor-based Blueprint class instance.
change summary:
- modified FObjectInitializer::InitProperties() to disable fast path initialization for non-native class types when the default data does not equate to the non-native CDO (as is also done within the native path). this is necessary because the optimized property list that we generate at load time to support fast path initialization of Blueprint class instances is only applicable to the generated CDO.
Change 3006824 on 2016/06/08 by Dan.Oconnor
More undo/redo fixes, this time fixes for when transaction buffer changes # of pins, thus destabalizing the LinkedTo arrays
#jira UE-31794
Change 3006828 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
Change 3006857 on 2016/06/08 by Dan.Oconnor
Investigating shutdown ensure, traced back to a static UEdGraphPin
Change 3006907 on 2016/06/08 by Dan.Oconnor
Noneditor build fix
Change 3006929 on 2016/06/08 by Dan.Oconnor
Deferring DeprecatedPins destruction until after UBlueprint has had a chance to fix up its watched pins, this is a better fix for #jira UE-31779
Change 3007133 on 2016/06/09 by Ben.Cosh
Fix for issue in the profiler asserting creating pins that don't have unique names.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
- I believe this was recently introduced with the changes to UEdGraphPin's
Change 3007964 on 2016/06/09 by Dan.Oconnor
Fix for PinHelpers::UnresolvedPins being left with stale entries by undo/redo
#jira UE-31829
Change 3007996 on 2016/06/09 by Ryan.Rauschkolb
Added 'empty' keyword to Array Clear Node.
#jira UE-12356
Change 3008007 on 2016/06/09 by Ryan.Rauschkolb
Added 'negate' keyword to boolean NOT node
#jira UE-12490
Change 3008011 on 2016/06/09 by Ryan.Rauschkolb
Added Vector2D * Vector2D multiplication node
#jira UE-31503
Change 3008014 on 2016/06/09 by Ryan.Rauschkolb
Fixed Cannot connect Make Array node output to MakeArray input with split pins
#jira UE-28530
Change 3008243 on 2016/06/09 by Dan.Oconnor
Fix for creation of FWeakGraphPinPtr from a pin that had been destroyed, client logic is still a bit broken in the case of the ClassDefaults node, but we're back to 'safe'
#jira UE-31841
Change 3008289 on 2016/06/09 by Dan.Oconnor
Editor transaction saves all state before applying undo/redo buffers when using 'bFlip' flow. This prevents messing with the object graph in the middle of saving state that will be restored later
#jira UE-31794
Change 3008422 on 2016/06/09 by Dan.Oconnor
Correct usage of GIsTransacting, replaced with Ar.IsTransacting() to correctly handle the case where we serialize after transacting but during the transaction (for instance, recompile blueprint in post undo, which we do quite a bit it turns out)
#jira UE-31857
Change 3009164 on 2016/06/10 by Ryan.Rauschkolb
Making changes to default values in the structure editor will now make changes to the structure without rebuilding the default values panel.
#jira UE-21141,UE-23723
Change 3009165 on 2016/06/10 by Ryan.Rauschkolb
Fixed Structure Default value editor collapses after undoing an alteration of a default value
#jira UE-31741
Change 3009181 on 2016/06/10 by Ryan.Rauschkolb
Fixed issue where modifying a default value in a Widget Blueprint would cause the Details Panel to refresh
#jira UE-30014
Change 3009313 on 2016/06/10 by Mike.Beach
Addressing issues with function return nodes in multiple ways:
- Preventing users from deleting return nodes for overriden/inherited functions.
- Also making sure that we create terminals for out params when the return node is disconnected (and pruned).
- Lastly, ensuring that new return nodes adhere to the function's signature (for cases, like where you copy/paste a return node from a different function).
#jira UE-31418
Change 3009595 on 2016/06/10 by Dan.Oconnor
EdGraphPinReference using PinId to resolve itself again, may create issues resolving pins created in compile
#jira UE-31879
Change 3009774 on 2016/06/10 by Dan.Oconnor
Fix for bad logic in RemovePin introduced in 3004329, just a bad reading of the logic, missed an early return
#jira UE-31906
Change 3009988 on 2016/06/10 by Dan.Oconnor
Prefer to use existing pins (based on PinId) when undoing/redoing pin serialization
#jira UE-31888
Change 3010050 on 2016/06/10 by Dan.Oconnor
Fixed missing call to ssuper class's PostEditUndo, fixed UBehaviorTreeGraph::PostEditUndo accessing Pins before they have been resolved
#jira UE-31892
Change 3010071 on 2016/06/10 by Dan.Oconnor
Fix for pasting when owning node has whitespace in result of GetPathName
#jira UE-31898
#coderview Bob.Tellez
Change 3010244 on 2016/06/11 by Dan.Oconnor
Fix for trivial copy/paste error, causes crash when copying/pasting nodes with text default values, part of UE-31870
Change 3010630 on 2016/06/13 by Dan.Oconnor
No longer relying on path name for pin resolution, path is unstable across graphs
#jira UE-31870
Change 3010647 on 2016/06/13 by Dan.Oconnor
PR #2496: Updated KismetMathLibrary comparison descriptions for FDateTime and FTimespan. (Contributed by CelPlays)
#jira UE-31928
Change 3011175 on 2016/06/13 by Ben.Cosh
Updates the Blueprint Profiler so that it can correctly map entry/exit from tunnels based on instance.
#Jira UE-30106 - Compiling QA_PhysVelocitySettleTest with the blueprint profiler results in a crash/assert
#Proj Kismet, BlueprintProfiler
- Ensured that the trace paths contain the macro instance exec nodes
- Selectively update stats in the tunnel exit site nodes based on valid exit sites to prevent cyclic updates.
- Updated the comments in map tunnel entry to spare peoples sanity when trying to understand what that function does.
Change 3011271 on 2016/06/13 by Ben.Cosh
This adds support for inherited blueprint classes to the blueprint profiler.
#Jira UE-31833 - The Blueprint profiler asserts when using a FlipFlop macro.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
Change 3011556 on 2016/06/13 by Ryan.Rauschkolb
Fixed Crash when breaking link to a split pin in MakeArray that is an array type
#jira UE-31919
Change 3011624 on 2016/06/13 by Dan.Oconnor
Fix for missing entries in MessageLog's source pin identification map. Bob T had originally populated this correctly, but somehow i lost it while iterating.
#jira UE-31955
Change 3011984 on 2016/06/13 by Dan.Oconnor
Sanitizing parentpin's subpins when destroying a pin
#jira UE-21392
Change 3012894 on 2016/06/14 by Phillip.Kavan
[UE-30922] Ensure that customized defaults are propagated to new instances at construction time during non-Actor-based Blueprint class reinstancing.
change summary:
- modified FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() to use the reinstanced archetype object as the template object during construction of the new instance for non-Actor-based Blueprint class types.
#jira UE-30922
Change 3013037 on 2016/06/14 by Ryan.Rauschkolb
Fixed Crash when connecting to a split pin in a MakeArray node that has no connections
#jira UE-31917
Change 3014846 on 2016/06/15 by Dan.Oconnor
No longer using FText::IsLetter to parse math expression nodes, that function is very slow. $x is now a valid math expression variable name (genereated a compile error prior to this change)
#jira FORT-23753
Change 3015014 on 2016/06/15 by Dan.Oconnor
Removing poorly implement IsLetter function
Change 3015142 on 2016/06/15 by Dan.Oconnor
More intentional about removing subpins, prevents stale iterator on split pin collapse
#jira UE-32072
Change 3016326 on 2016/06/16 by Ryan.Rauschkolb
Fixed MakeArray node does not reset to wildcard when breaking links with split struct pins that have default values
#jira UE-32016
Change 3016494 on 2016/06/16 by Ryan.Rauschkolb
Fixed Crash when dragging a component into the Event Graph that's inherited from a C++ class
#jira UE-31876
Change 3016557 on 2016/06/16 by Dan.Oconnor
Explicit copy/move of string data for FText, removes some redundant copying and object construction/destruction [which could be optimzed away], saves 2-3 seconds in my 80s load asset benchmark
#jira FORT-23753
Change 3016577 on 2016/06/16 by Ryan.Rauschkolb
Fixed compiler warning for hidden member variable in FBlueprintVarActionDetails::GetVariableReplicationType
Change 3016906 on 2016/06/16 by Dan.Oconnor
Back out changelist 3016557
This will be done by Jamie.Dale in Dev-Editor
Change 3018081 on 2016/06/17 by Phillip.Kavan
[UE-31832] PR #2486: Expose UInheritableComponentHandler::GetAllTemplates() outside of editor (Contributed by Bogustus)
#jira UE-31832
Change 3018402 on 2016/06/17 by Dan.Oconnor
Missing include
Change 3018426 on 2016/06/17 by Ryan.Rauschkolb
Fixed MakeArray node with split pins and no connections does not paste correctly
#jira UE-32148
Change 3018452 on 2016/06/17 by Mike.Beach
Moving the patching of instanced sub-objects out of CPFUO (where you can't rely on the target to be a replacement for the source) to FBlueprintEditorUtils::PatchCDOSubobjectsIntoExport(), and making it so PatchCDOSubobjectsIntoExport() is called regularly for Blueprint regeneration (on load).
#jira UE-32158
Change 3018456 on 2016/06/17 by Dan.Oconnor
Fix for static analysis warning, this null check does nothing
Change 3018595 on 2016/06/17 by Mike.Beach
Fix for shadowed variable warning in CIS.
Change 3018699 on 2016/06/17 by Mike.Beach
Making MinimumAreaRectangle callable in Blueprints without world context (which is only needed for debug drawing).
Change 3019734 on 2016/06/20 by Phillip.Kavan
[UE-32064] Clone associated component template(s) when duplicating Blueprint function graphs containing one or more Add Component nodes.
change summary:
- added a UK2Node_AddComponent::PostDuplicate() override
- moved UK2Node_AddComponent::PostPasteNode() logic into a helper method that's now called from both PostDuplicate() and PostPasteNode() overrides.
notes:
- will prevent getting into the scenario described in UE-31831
#jira UE-32064
Change 3020635 on 2016/06/20 by Dan.Oconnor
Fix for bad cast in FCompilerResultsLog::Append, could cause crashes in clients of this function (math expressions nodes occasionally do when they fail to compile)
Change 3020894 on 2016/06/21 by Maciej.Mroz
#2522: Interface UProperties can ExposeOnSpawn (in Blueprints) (Contributed by MichaelSchoell)
Change 3020958 on 2016/06/21 by Ben.Cosh
This improves the way key events are detected in the blueprint profiler, preventing duplicate event entries when pressed and released are both wired. It also catches a bug with the compiler instrumentation flag when compiling.
#Jira UE-32270 - Input key events generate extra instrumentation data per key press
#Jira UE-32266 - Recompiling blueprints with instrumentation can fail to add instrumentation.
#Proj BlueprintProfiler, UnrealEd
Change 3021316 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where Copy/Paste of event nodes would not retain link information
Change 3021826 on 2016/06/21 by Phillip.Kavan
[UE-31831] Fix up AddComponent nodes on load if they are not associated with a unique template object.
change summary:
- added external linkage to UK2Node_AddComponent::MakeNewComponentTemplate(), and switched it to be a public API
- modified FBlueprintEditorUtils::UpdateComponentTemplates() (as this is already called on Blueprint load) to detect/warn and correct non-unique templates
#jira UE-31831
Change 3022047 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where copy/paste of return nodes would not preserve value or link data
#jira UE-26937
Change 3022619 on 2016/06/22 by Maciej.Mroz
#jira UE-30858 Nativized Orion - Some particle effects are not rendering
A static/persistent information (the mechanism is similar to AssetRegistrySearchable) about DynamicClass is added.
It's necessary since DynamicClasses are not handled as regular assets by AssetRegistry.
Fixed GameplayCueManager. Nativized cues can be found.
This is an early version of the feature. Amount of stored persistent data can be extended (but it would increase memory-usage).
Change 3022654 on 2016/06/22 by Maciej.Mroz
FBackendHelperStaticSearchableValues -fixed too strict ensure
Change 3023067 on 2016/06/22 by Maciej.Mroz
#jira UE-32083 Nativize Blueprints removes blueprint functionality in packaged project
Config settings from super class are not applied (at runtime) to nativized Blueprints . So all "config" properties are filled in constructor.
Change 3023222 on 2016/06/22 by Ryan.Rauschkolb
Fixed MakeArray node elements break when editing struct elements
#jira UE-21392
Change 3023405 on 2016/06/22 by Mike.Beach
Making sure sub-objects get instanced for Blueprint CDOs that had their FObjectInitializer deferred (happens when the super CDO hasn't been fully serialized). By the time the deferred FObjectInitializer is ran, the sub-objects have been assigned a RF_NeedLoad flag (where they normally wouldn't have one right after construction, when the initialization is usually ran).
#jira UE-31897
Change 3023992 on 2016/06/22 by Mike.Beach
Fixed an issue where hovering on/off a reroute node (toggling the comment bubble visibility) would create extraneous undo transactions.
#jira UE-31859
[CL 3025946 by Mike Beach in Main branch]
2016-06-23 19:35:24 -04:00
|
|
|
OptionNode->Pins[1]->MarkPendingKill();
|
2014-03-14 14:13:41 -04:00
|
|
|
OptionNode->Pins.RemoveAt(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2014-04-23 19:29:53 -04:00
|
|
|
|
|
|
|
|
void UEnvironmentQueryGraph::UpdateVersion_FixupOuters()
|
|
|
|
|
{
|
2015-02-23 10:30:16 -05:00
|
|
|
for (int32 Idx = 0; Idx < Nodes.Num(); Idx++)
|
2014-04-23 19:29:53 -04:00
|
|
|
{
|
2015-02-23 10:30:16 -05:00
|
|
|
UEnvironmentQueryGraphNode* MyNode = Cast<UEnvironmentQueryGraphNode>(Nodes[Idx]);
|
2014-04-23 19:29:53 -04:00
|
|
|
if (MyNode)
|
|
|
|
|
{
|
|
|
|
|
MyNode->PostEditImport();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-02-23 10:30:16 -05:00
|
|
|
void UEnvironmentQueryGraph::UpdateVersion_CollectClassData()
|
2014-04-23 19:29:53 -04:00
|
|
|
{
|
2015-03-17 07:30:01 -04:00
|
|
|
UpdateClassData();
|
2014-04-23 19:29:53 -04:00
|
|
|
}
|
|
|
|
|
|
2015-02-23 10:30:16 -05:00
|
|
|
void UEnvironmentQueryGraph::CollectAllNodeInstances(TSet<UObject*>& NodeInstances)
|
2014-04-23 19:29:53 -04:00
|
|
|
{
|
2015-02-23 10:30:16 -05:00
|
|
|
Super::CollectAllNodeInstances(NodeInstances);
|
2014-04-23 19:29:53 -04:00
|
|
|
|
2015-02-23 10:30:16 -05:00
|
|
|
for (int32 Idx = 0; Idx < Nodes.Num(); Idx++)
|
|
|
|
|
{
|
|
|
|
|
UEnvironmentQueryGraphNode* MyNode = Cast<UEnvironmentQueryGraphNode>(Nodes[Idx]);
|
|
|
|
|
UEnvQueryOption* OptionInstance = MyNode ? Cast<UEnvQueryOption>(MyNode->NodeInstance) : nullptr;
|
|
|
|
|
if (OptionInstance && OptionInstance->Generator)
|
|
|
|
|
{
|
|
|
|
|
NodeInstances.Add(OptionInstance->Generator);
|
|
|
|
|
}
|
|
|
|
|
}
|
2014-04-23 19:29:53 -04:00
|
|
|
}
|
2015-03-09 05:40:56 -04:00
|
|
|
|
Copying //UE4/Fortnite-Staging to //UE4/Main
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2806454 on 2015/12/16 by Bob.Tellez
#UE4 Getting crash reporting working again on linux servers. Since -Unattended is now being passed BEFORE the target folder, the cmd line parsing code was failing so now it parses tokens and switches in a more general way. Also, diagnostics.txt had the incorrect case, since the d is supposed to be capitolized and the crash report processor is case sensitive.
#rb Ben.Zeigler
#codereview Dmitry.Rekman
Change 2805502 on 2015/12/16 by Ben.Zeigler
#UE4 Move ValidateEnumProperties into ValidateGeneratedClass, it was happening too early in the generation process so was being called at an invalid time.
As a result of this ValidateEnumProperties will not be called correctly for compile on load blueprints, that issue is covered in UE-24569
#codereview mike.beach, bob.tellez
Change 2805288 on 2015/12/16 by David.Nikdel
#HTTP #HttpRetry
- Add new Failed_ConnectionError code to EHttpRequestStatus to distinguish between connection errors and protocol errors.
- Changed HTTP retry logic a little bit
* If a response was received, retry on service-specific explicit HTTP codes (defaults to empty)
* If a response was not received and we did not send a full request, automatically retry
* If a response was not received and a request may have been sent, retry if the verb is GET or HEAD (should be idempotent)
- Adjusted Curl/IOS/Mac/PS4/WinInet to try and distinguish Failed_ConnectionError where possible
* Other systems will default to Failed which is ok (ConnectionError is an opportunistic categorization)
* Opened a PS4 ticket to try to improve detection, but unfortunately there's no way (currently) to distinguish between send timeout, connection timeout, and receive timeout, the latter being the problematic case.
- Removed the concept of global/default HTTP retry status codes. No system has enough knowledge to set those globally.
* Individual requests still specify explicit "retryable" codes and McpServiceBase sets that on each request on a per-service basis
#RB: Sam.Zamani
#CodeReview: Sam.Zamani, Josh.Markiewicz, Alex.Fennell, Dmitry.Rekman, Sam.Spiro
#Fixes: FORT-17804
Change 2803864 on 2015/12/15 by Bob.Tellez
#UE4 Changed usage of !UE_SERVER to !IsRunningDedicatedServer in cases where we are preventing load attempts on UFonts. This is so running an editor build with -server works the same as running a cooked server.
#rb Dmitry.Rekman
#codereview Nick.Darnell
Change 2803677 on 2015/12/15 by Billy.Bramer
- Expose equality and inequality operators for gameplay attributes
#rb Todd.Eckert
Change 2802881 on 2015/12/14 by Bob.Tellez
#UE4 InheritableComponentHandler no longer keeps records for components that we are no longer inheriting.
#rb Phillip.Kavan, Maciej.Mroz
#codereview Phillip.Kavan, Maciej.Mroz
Change 2801636 on 2015/12/14 by Bob.Tellez
#UE4 Returning package insert order for non-imports back to being after those of matching priorities unconditionally since this is what you want even when you are not using the asset registry to preload packages.
#codereview Graeme.Thornton
Change 2800400 on 2015/12/11 by Jonathan.Lindquist
Submitting a new Pivot Painter Edition
- now renders to textures
- improved workflow
- greater capabilities
Change 2799579 on 2015/12/11 by John.Abercrombie
[AUTOMERGE]
Fixed EQS BP query wrappers getting GCed before wrapped query finishes #UE4
Fixes FORT-18649 - Patrols don't spawn consistently
- The patrol blueprint was waiting (endlessly) for an EQS query to finish but because the wrapper could be GC-ed while the EQS query was running the delegate would never fire
#rb me (this code was written by MieszkoZ)
(removed code review for integration of Mieszko.Zielinski, Phil.Cole, Dominic.Barile)
--------
Integrated using branch UE4-Fortnite-To-UE4-FortniteReleases/0.10 (reversed) of change#2799575 by John.Abercrombie on 2015/12/11 09:55:11.
Change 2799018 on 2015/12/10 by Bob.Tellez
#UE4 The asset registry tags stripped from cooked builds is now a blacklist by default that includes only the FiB tag. You can opt-in to using the whitelist by flipping the bUseAssetRegistryTagsWhitelistInsteadOfBlacklist flag.
#rb Fred.Kimberley
#codereview Peter.Knepley
Change 2798926 on 2015/12/10 by Bob.Tellez
#UE4 Removed some showflags from the list of "Fixed" showflags since they were actually in use at runtime in Fortnite in a scene capture.
#jira FORT-18514
#codereview Martin.Mittring
Change 2797758 on 2015/12/10 by Mark.Satterthwaite
Defer calls to AUGraphUpdate into FCoreAudioDevice::UpdateHardware - this call will synchronise the calling thread with the CoreAudio thread/run-loop so that the CoreAudio graph is safe to modify and this may incur a significant stall. This means it is far more efficient to amortise the cost of all changes to the graph with a single call. To ensure correctness the audio format conversion components are cached and disposed of after the call to AUGraphUpdate so that any existing operations on the CoreAudio thread are completed prior to disposal.
Change 2781204 on 2015/11/25 by Dmitry.Rekman
Linux: use jemalloc by default if available.
- Alleviates one of the reasons for player disconnect (FORT-18048), which was machines running OOM.
#rb Bob.Tellez
#codereview Bob.Tellez, Ben.Zeigler
Change 2779398 on 2015/11/24 by Mark.Satterthwaite
Switch the default graphics API on Mac back to OpenGL, but allow Metal to run with -metal (or -metalsm5 for experimental SM5 support).
2016-01-08 19:10:43 -05:00
|
|
|
void UEnvironmentQueryGraph::OnNodeInstanceRemoved(UObject* NodeInstance)
|
|
|
|
|
{
|
|
|
|
|
// FORT-16508 tracking BEGIN: log removing a node instance
|
|
|
|
|
for (int32 Idx = 0; Idx < Nodes.Num(); Idx++)
|
|
|
|
|
{
|
|
|
|
|
UEnvironmentQueryGraphNode_Root* RootNode = Cast<UEnvironmentQueryGraphNode_Root>(Nodes[Idx]);
|
|
|
|
|
if (RootNode)
|
|
|
|
|
{
|
|
|
|
|
FString DebugMessage = FString::Printf(TEXT("[%s] RemoveInstance %s owner:%s wasTransient:%d"),
|
|
|
|
|
FPlatformTime::StrTimestamp(),
|
|
|
|
|
*GetNameSafe(NodeInstance),
|
|
|
|
|
NodeInstance ? *GetNameSafe(NodeInstance->GetOuter()) : TEXT("??"),
|
|
|
|
|
NodeInstance ? (NodeInstance->HasAnyFlags(RF_Transient) ? 1 : 0) : -1);
|
|
|
|
|
|
|
|
|
|
RootNode->LogDebugMessage(DebugMessage);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// FORT-16508 tracking END
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void UEnvironmentQueryGraph::OnNodesPasted(const FString& ImportStr)
|
|
|
|
|
{
|
|
|
|
|
// FORT-16508 tracking BEGIN: log removing a node instance
|
|
|
|
|
for (int32 Idx = 0; Idx < Nodes.Num(); Idx++)
|
|
|
|
|
{
|
|
|
|
|
UEnvironmentQueryGraphNode_Root* RootNode = Cast<UEnvironmentQueryGraphNode_Root>(Nodes[Idx]);
|
|
|
|
|
if (RootNode)
|
|
|
|
|
{
|
|
|
|
|
FString DebugMessage = FString::Printf(TEXT("[%s] PasteNodes\n\n%s"),
|
|
|
|
|
FPlatformTime::StrTimestamp(), *ImportStr);
|
|
|
|
|
|
|
|
|
|
RootNode->LogDebugMessage(DebugMessage);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// FORT-16508 tracking END
|
|
|
|
|
}
|
|
|
|
|
|
2015-03-09 05:40:56 -04:00
|
|
|
void UEnvironmentQueryGraph::UpdateDeprecatedGeneratorClasses()
|
|
|
|
|
{
|
|
|
|
|
for (int32 Idx = 0; Idx < Nodes.Num(); Idx++)
|
|
|
|
|
{
|
|
|
|
|
UEnvironmentQueryGraphNode* MyNode = Cast<UEnvironmentQueryGraphNode>(Nodes[Idx]);
|
|
|
|
|
UEnvQueryOption* OptionInstance = MyNode ? Cast<UEnvQueryOption>(MyNode->NodeInstance) : nullptr;
|
|
|
|
|
if (OptionInstance && OptionInstance->Generator)
|
|
|
|
|
{
|
|
|
|
|
MyNode->ErrorMessage = FGraphNodeClassHelper::GetDeprecationMessage(OptionInstance->Generator->GetClass());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void UEnvironmentQueryGraph::SpawnMissingNodes()
|
|
|
|
|
{
|
2015-03-10 09:38:12 -04:00
|
|
|
UEnvQuery* QueryOwner = Cast<UEnvQuery>(GetOuter());
|
|
|
|
|
if (QueryOwner == nullptr)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
2015-03-09 05:40:56 -04:00
|
|
|
|
2015-03-10 09:38:12 -04:00
|
|
|
TSet<UEnvQueryTest*> ExistingTests;
|
|
|
|
|
TSet<UEnvQueryOption*> ExistingNodes;
|
Copying //UE4/Dev-Frame to //UE4/Main
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2775736 on 2015/11/20 by Richard.Hinckley
Fix for Paper2D issue with repeated imports in one edutor session. Paper2D import process now creates a new importer at the end. This prevents the sprite sheet import process from leaving frame data around, causing subsequent imports (including imports of different sprite sheets) to include this data inappropriately.
#codereview michael.noland
Change 2776352 on 2015/11/20 by Zak.Middleton
#ue4 - Avoid useless DetachFromParent() for the same pending AttachParent during registration. Added missing UpdateOverlaps() when detaching from object simulating physics.
#rb Marc.Audy, Ori.Cohen
#codereview James.Golding
Change 2776401 on 2015/11/20 by Mieszko.Zielinski
Implemented a way to do batched points projection to navmesh, where every point can declare a custom projection box #UE4
The biggest advantage here is that projection box is independent from projected point - no more manual offsetting of projected point to achieve "100uu up and 500uu down"-like functionality
#jira UE-23705
#rb Lukasz.Furman
Change 2777450 on 2015/11/23 by Martin.Wilson
Bake additive data into animations during cooking to avoid doing additive calculations and extra pose extraction and blending at runtime
#rb Thomas.Sarkanen
Change 2777698 on 2015/11/23 by Mieszko.Zielinski
Gameplay debugging tools fixes #UE4
Fixes:
- made newly added logs respect Log Visualizer's filters
- added handling of invalid data when trying to draw EGameplayDebuggerShapeElement::Cylinder in AGameplayDebuggingHUDComponent::DrawPerception. This is a patch, root cause to be found.
- fixed Log Visualizer resetting it's data while trying to serialize invalid objects. This is a patch, root cause to be addressed.
In addition
- while at it removed bunch of 'auto' and 'class' keywords from the files I've touched
#rb Lukasz.Furman
Change 2777762 on 2015/11/23 by Mieszko.Zielinski
Removed BlackboardComponent's functionality deprecated since 4.7 #UE4
#rb Lukasz.Furman
Change 2777839 on 2015/11/23 by Zak.Middleton
#ue4 - Wrap all vector library calls to math functions through our FMath versions, so they benefit from fixes or improvements therein. Added Exp2() function.
#rb Laurent.Delayen
Change 2777840 on 2015/11/23 by Zak.Middleton
#ue4 - Fix up uses of library math functions to go through our FMath namespace.
#rb Laurent.Delayen
Change 2778287 on 2015/11/23 by Stan.Melax
deprecation of FCollisionQueryParams(bool)
See 2774707 description for the whole story
#OR-9936
#codereview marc.audy
Changes to kite will have to be in a separate check-in
I couldn't submit to all files from the framework branch addition fixes have their files are shelved in cl 2778299
Change 2778507 on 2015/11/23 by Marc.Audy
Eliminate spurious cook warnings for known missing packages
#rb Michael.Noland
Change 2778546 on 2015/11/23 by Aaron.McLeran
Moving occlusion feature settings from audio component to sound attenuation settings struct.
- Sound attenuation setting struct is used for all sounds that do 3d spatialization so it make sense for the occlusion feature settings to be there.
- Kept old low-pass frequency filter setting values on audio component (where HighFrequencyAttenuation used to be)
#rb Zak.Middleton
Change 2778664 on 2015/11/23 by Zak.Middleton
#ue4 - Clarify some comparison functions (IsZero, IsNearlyZero, Equals) in FRotator to explain that they compare as orientations, not other interpretations such as rotational speed, winding, etc.
#rb Aaron.Mcleran
#codereview Frank.Gigliotti
Change 2779335 on 2015/11/24 by Mieszko.Zielinski
Another VisualLog patch to avoid crashing due to a core bug that remains to be investigated #UE4
Again, the core bug here is related visual log trying to serialize invalid objects on a regular basis.
#rb Lukasz.Furman
Change 2779338 on 2015/11/24 by Benn.Gallagher
Fixed crash in Persona when focus is taken from a different window
#jira UE-22516
#rb Ben.Cosh
Change 2779375 on 2015/11/24 by Benn.Gallagher
Fix for deadlock in destructibles. Aquiring actor buffer without releasing causes an infinite wait on next aquire.
#rb Ori.Cohen
Change 2779753 on 2015/11/24 by Zak.Middleton
#ue4 - FMath::Atan2() no longer calls atan2f() because of some compiler or library bugs causing it to randomly return NaN for valid input. It now uses a high-precision minimax approximation instead, measured to be 2x faster than the stock C version.
#rb Brian.Karis
Change 2779853 on 2015/11/24 by Marc.Audy
2015-12-02 16:42:06 -05:00
|
|
|
TArray<UEnvQueryOption*> OptionsCopy = QueryOwner->GetOptions();
|
2015-03-10 09:38:12 -04:00
|
|
|
|
|
|
|
|
UAIGraphNode* MyRootNode = nullptr;
|
2015-03-09 05:40:56 -04:00
|
|
|
for (int32 Idx = 0; Idx < Nodes.Num(); Idx++)
|
|
|
|
|
{
|
|
|
|
|
UEnvironmentQueryGraphNode* MyNode = Cast<UEnvironmentQueryGraphNode>(Nodes[Idx]);
|
|
|
|
|
UEnvQueryOption* OptionInstance = MyNode ? Cast<UEnvQueryOption>(MyNode->NodeInstance) : nullptr;
|
|
|
|
|
if (OptionInstance && OptionInstance->Generator)
|
|
|
|
|
{
|
|
|
|
|
ExistingNodes.Add(OptionInstance);
|
|
|
|
|
|
2015-03-10 09:38:12 -04:00
|
|
|
ExistingTests.Empty(ExistingTests.Num());
|
2015-03-09 05:40:56 -04:00
|
|
|
for (int32 SubIdx = 0; SubIdx < MyNode->SubNodes.Num(); SubIdx++)
|
|
|
|
|
{
|
|
|
|
|
UEnvironmentQueryGraphNode* MySubNode = Cast<UEnvironmentQueryGraphNode>(MyNode->SubNodes[SubIdx]);
|
|
|
|
|
UEnvQueryTest* TestInstance = MySubNode ? Cast<UEnvQueryTest>(MySubNode->NodeInstance) : nullptr;
|
|
|
|
|
if (TestInstance)
|
|
|
|
|
{
|
|
|
|
|
ExistingTests.Add(TestInstance);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MyNode->RemoveSubNode(MySubNode);
|
|
|
|
|
SubIdx--;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-03-10 09:38:12 -04:00
|
|
|
SpawnMissingSubNodes(OptionInstance, ExistingTests, MyNode);
|
|
|
|
|
}
|
2015-03-09 05:40:56 -04:00
|
|
|
|
2015-03-10 09:38:12 -04:00
|
|
|
UEnvironmentQueryGraphNode_Root* RootNode = Cast<UEnvironmentQueryGraphNode_Root>(Nodes[Idx]);
|
|
|
|
|
if (RootNode)
|
|
|
|
|
{
|
|
|
|
|
MyRootNode = RootNode;
|
|
|
|
|
}
|
|
|
|
|
}
|
2015-03-09 05:40:56 -04:00
|
|
|
|
2015-03-10 09:38:12 -04:00
|
|
|
UEdGraphPin* RootOutPin = MyRootNode ? FindGraphNodePin(MyRootNode, EGPD_Output) : nullptr;
|
|
|
|
|
ExistingTests.Empty(0);
|
|
|
|
|
|
|
|
|
|
for (int32 Idx = 0; Idx < OptionsCopy.Num(); Idx++)
|
|
|
|
|
{
|
|
|
|
|
UEnvQueryOption* OptionInstance = OptionsCopy[Idx];
|
|
|
|
|
if (ExistingNodes.Contains(OptionInstance) || OptionInstance == nullptr || OptionInstance->Generator == nullptr)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FGraphNodeCreator<UEnvironmentQueryGraphNode_Option> NodeBuilder(*this);
|
|
|
|
|
UEnvironmentQueryGraphNode_Option* MyNode = NodeBuilder.CreateNode();
|
2015-03-17 07:30:01 -04:00
|
|
|
UAIGraphNode::UpdateNodeClassDataFrom(OptionInstance->Generator->GetClass(), MyNode->ClassData);
|
|
|
|
|
MyNode->ErrorMessage = MyNode->ClassData.GetDeprecatedMessage();
|
2015-03-10 09:38:12 -04:00
|
|
|
NodeBuilder.Finalize();
|
|
|
|
|
|
|
|
|
|
if (MyRootNode)
|
|
|
|
|
{
|
|
|
|
|
MyNode->NodePosX = MyRootNode->NodePosX + (Idx * 300);
|
|
|
|
|
MyNode->NodePosY = MyRootNode->NodePosY + 100;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MyNode->NodeInstance = OptionInstance;
|
|
|
|
|
SpawnMissingSubNodes(OptionInstance, ExistingTests, MyNode);
|
|
|
|
|
|
|
|
|
|
UEdGraphPin* SpawnedInPin = FindGraphNodePin(MyNode, EGPD_Input);
|
|
|
|
|
if (RootOutPin && SpawnedInPin)
|
|
|
|
|
{
|
|
|
|
|
RootOutPin->MakeLinkTo(SpawnedInPin);
|
2015-03-09 05:40:56 -04:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2015-03-10 09:38:12 -04:00
|
|
|
|
|
|
|
|
void UEnvironmentQueryGraph::SpawnMissingSubNodes(UEnvQueryOption* Option, TSet<UEnvQueryTest*> ExistingTests, UEnvironmentQueryGraphNode* OptionNode)
|
|
|
|
|
{
|
|
|
|
|
TArray<UEnvQueryTest*> TestsCopy = Option->Tests;
|
|
|
|
|
for (int32 SubIdx = 0; SubIdx < TestsCopy.Num(); SubIdx++)
|
|
|
|
|
{
|
|
|
|
|
if (ExistingTests.Contains(TestsCopy[SubIdx]) || (TestsCopy[SubIdx] == nullptr))
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UEnvironmentQueryGraphNode_Test* TestNode = NewObject<UEnvironmentQueryGraphNode_Test>(this);
|
|
|
|
|
TestNode->NodeInstance = TestsCopy[SubIdx];
|
2015-03-17 07:30:01 -04:00
|
|
|
TestNode->UpdateNodeClassData();
|
2015-03-10 09:38:12 -04:00
|
|
|
|
|
|
|
|
OptionNode->AddSubNode(TestNode, this);
|
|
|
|
|
TestNode->NodeInstance = TestsCopy[SubIdx];
|
|
|
|
|
}
|
|
|
|
|
}
|
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3252535)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3228282 on 2016/12/08 by Aaron.McLeran
Adding ability to fix up existing sound classes
- Utility "soundclassfixup" console command renames sound classes which are packaged inside other sound classes accidentally as new uniquely named packages
- Also removes code which was allowing "NewSoundClass" behavior in sound class graphs to populate with existing sound classes. Instead, it *always* creates a new sound class and warns if the sound class already exists. Connecting existing sound classes is instead going to be done through dragging them into the graph from the content browser or from the sound class node itself.
Change 3228774 on 2016/12/09 by Ori.Cohen
Fix multi select being very slow in phat
#JIRA UE-39559
Change 3229036 on 2016/12/09 by Marc.Audy
Remove trivial overrides
Change 3229130 on 2016/12/09 by Aaron.McLeran
Fixing build error.
Moving new code from CL 3228282 into WITH_EDITOR block since it's an editor-only operation
Change 3229412 on 2016/12/09 by Aaron.McLeran
Fixing 7.1 surround sound systems on PC by forcing them to load as 5.1.
- We don't support 7.1 but 7.1 systems should at least behave as good as 5.1
Change 3229782 on 2016/12/09 by Marc.Audy
Fixed crash when seamless travelling in PIE from levels other than the current editor level with a streaming sublevel shared with the current editor level (4.15)
#jira UE-39407
Change 3229842 on 2016/12/09 by Marc.Audy
Missing files for CL# 3229782
Change 3229905 on 2016/12/09 by Marc.Audy
Check Owner has a valid world before tryign to access Scene (4.14.2)
#jira UE-39560
Change 3229961 on 2016/12/09 by Aaron.McLeran
UE-39650 Implementing CL 3229894 in Dev-Framework
Change 3229964 on 2016/12/09 by Aaron.McLeran
Removing redundant loop introduced from integration
Change 3230722 on 2016/12/12 by Lukasz.Furman
fixed vislog macros for recording thick segments
#ue4
Change 3230864 on 2016/12/12 by Lina.Halper
Fix crash with deleting pose
#jira:UE-39584
Change 3230893 on 2016/12/12 by Marc.Audy
Support more default values in UHT for FVector: ForwardVector, RightVector, and single float FVector constructor
Change 3231189 on 2016/12/12 by Ori.Cohen
Added bone name to the physics invalid operation warnings.
Change 3231420 on 2016/12/12 by James.Golding
Support per-component skel mesh weight override
#jira UEFW-240
Change 3231422 on 2016/12/12 by James.Golding
Test map for per-component skin weights
Change 3231491 on 2016/12/12 by James.Golding
Move , FPositionVertexBuffer and FStaticMeshVertexDataInterface into their own headers
Move FStaticMeshVertexBuffer implementation into its own cpp
Change 3231590 on 2016/12/12 by mason.seay
Changed to box collision
Change 3231900 on 2016/12/12 by Aaron.McLeran
Switching to creating new master submixes rather than loading them
Change 3231909 on 2016/12/12 by James.Golding
Fix Mac CIS in StaticMeshVertexBuffer.h
Change 3232157 on 2016/12/13 by Mieszko.Zielinski
Fixed a silly bug in FBlackboardKeySelector::InitSelection resulting in the key selector picking first "ok-ish" value, even if it wasn't matching type filter #UE4
Change 3232162 on 2016/12/13 by Mieszko.Zielinski
Fixed UNavigationSystem::bNavigationAutoUpdateEnabled getting ignored by recent addition to related condition in UNavigationSystem #UE4
Change 3232314 on 2016/12/13 by James.Golding
Another attempt at fixing Mac CIS
Change 3232322 on 2016/12/13 by Lukasz.Furman
fixed order of nav area application and low area filter
#ue4
Change 3232364 on 2016/12/13 by Thomas.Sarkanen
Spline IK node
Added new runtime & graph node to deform bones along a spline. Added edit mode to work with in the BP editor.
Spline is specified within the node using control points. External spline could come later.
Currently very expensive to evaluate as it regenerates the transformed spline and PWLA each frame.
#jira UEFW-249 - Add spline IK node
Change 3232589 on 2016/12/13 by Thomas.Sarkanen
Fixed non-editor builds
Change 3232654 on 2016/12/13 by Marc.Audy
Don't rerun construction scripts when an actor has seamless traveled from another level (4.15)
#jira UE-39699
Change 3232690 on 2016/12/13 by Martin.Wilson
Remove unused member
Change 3232691 on 2016/12/13 by Martin.Wilson
Virtual bone additions:
1) Rename support
2) Ability to chain virtual bones (Have a virtual bone that is a child of another virtual bone)
#jira UE-39710
Change 3232782 on 2016/12/13 by Danny.Bouimad
Adding Test Content
Change 3232843 on 2016/12/13 by danny.bouimad
More Updates
Change 3232981 on 2016/12/13 by Marc.Audy
Fix CIS issues
Change 3233075 on 2016/12/13 by mason.seay
SplineIK asset for bug report
Change 3233124 on 2016/12/13 by Ori.Cohen
Added mass automation tests.
Change 3233265 on 2016/12/13 by Ben.Marsh
Build: Add support for building Orion and Fortnite precompiled binaries from Dev-Framework.
Change 3233365 on 2016/12/13 by mason.seay
Resaving with non-empty engine version
Change 3233532 on 2016/12/13 by mason.seay
Level blueprint clean up
Change 3233571 on 2016/12/13 by Ben.Marsh
Set up paths for precompiled binaries.
Change 3233601 on 2016/12/13 by Ben.Marsh
Build: Use the code CL rather than latest CL for precompiled binaries.
Change 3234402 on 2016/12/14 by Ori.Cohen
Physics: Fixed line traces not working properly in editor worlds when physics substepping was enabled (UE-36408)
- Substepping relies on interpolating transforms over frames, but only game worlds will be ticked, so we now disallow this feature in non-game worlds.
#jira UE-36408
Change 3234415 on 2016/12/14 by Ori.Cohen
Fix CIS
Change 3234574 on 2016/12/14 by Thomas.Sarkanen
Fix crash when IK chain is inverted
#jira UE-39720 - Crash compiling animation blueprint with Spline IK node
Change 3234882 on 2016/12/14 by Ori.Cohen
Fixed teleport not working for physical animation component
Change 3234971 on 2016/12/14 by Aaron.McLeran
Fix for omni-directional sounds in audio mixer
Change 3235251 on 2016/12/14 by mason.seay
Assets for proposed functional testing
Change 3235492 on 2016/12/14 by Ori.Cohen
Undo previous bad normal fix and remove wheel width compensation. This leads to bad normals when thick tires roll over the edge leading to instability.
#JIRA UE-38710
Change 3236398 on 2016/12/15 by Marc.Audy
(4.15) Add new object flag RF_NeedInitialization to indicate that ~FObjectInitalizer and PostInitProperties have not been executed for the object
Do not allow Modify calls on Objects that have not been initialized
#jira UE-39731
Change 3236413 on 2016/12/15 by Lukasz.Furman
added EQS profiler
#ue4
Change 3236418 on 2016/12/15 by Lukasz.Furman
changed log verbosity in navmesh geometry export function
#jira UE-39809
#3039
Change 3236508 on 2016/12/15 by Ori.Cohen
Allow vehicles to override inertia tensor after any mass properties have changed
#JIRA UE-39566
Change 3236573 on 2016/12/15 by Ori.Cohen
Fix manipulation tool not working properly with welded components
Change 3236577 on 2016/12/15 by Ori.Cohen
Improve physics asset body creation so that it merges small bones and turns off collision between initially overlapping bodies.
Change 3236580 on 2016/12/15 by Ori.Cohen
Improve mass computation for physics shapes (ignore trimesh which introduces error)
Change 3236581 on 2016/12/15 by Ori.Cohen
Fix incorrect inertia tensor computation for cubes (was being doubled by mistake).
Change 3236809 on 2016/12/15 by Lukasz.Furman
compilation fix: missing headers in EnvQueryManager
Change 3237187 on 2016/12/15 by Lukasz.Furman
compilation fix: missing defines in EnvQueryInstance
Change 3237423 on 2016/12/15 by Aaron.McLeran
Audio mixer: Allow center channel panning as a project setting.
- To better support previous audio engine behavior, allow audio mixer to pan audio to center channel via audio settings.
Change 3237639 on 2016/12/15 by Aaron.McLeran
Audio mixer stat tracking
Change 3237646 on 2016/12/15 by dan.reynolds
MIDI Test Assets:
General MIDITestBP
MPKmini2 Child BP
MPKmini2 Wrap Map
Change 3238148 on 2016/12/16 by Lukasz.Furman
fixed crash in EQS profiler
copy of CL# 3238145
Change 3238708 on 2016/12/16 by Marc.Audy
(4.15) Don't unload and then reload streaming levels that are marked to be hidden.
#jira UE-39883
Change 3238799 on 2016/12/16 by Lina.Halper
Potential fix + more info on crash on copying curve for WEX
Change 3239559 on 2016/12/19 by Ori.Cohen
Guard against infinitely thin geometry which fixes some nans
Change 3239728 on 2016/12/19 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3239536
Change 3239735 on 2016/12/19 by Jon.Nabozny
Set 'p.MoveIgnoreFirstBlockingOverlap' to be enabled by default (3158732). This causes collision behavior to remain unchanged unless people opt in to the new behavior.
Adjust Bot_RandomLocations default health to 100 from 0. This prevents death by hits from non-projectiles.
4.15
#jira UE-39387
Change 3239765 on 2016/12/19 by Jon.Nabozny
Fix FPredictProjectilePathParams to use a valid default value for TraceChannel.
This requires the use of a new bool bTraceWithChannel which is enabled by default.
4.15
#JIRA UE-39726
Change 3239810 on 2016/12/19 by Marc.Audy
Avoid duplicate GetWorldSettings call
Change 3239826 on 2016/12/19 by Lukasz.Furman
fixed crashes in gameplay debugger's draw delegate handling
copy of 3234768, 3239819
#ue4
Change 3239894 on 2016/12/19 by Richard.Hinckley
Improving UInterface template files for "New C++ Class" feature. We now use GENERATED_BODY macros and don't need an empty constructor in the .cpp file.
Change 3239957 on 2016/12/19 by Aaron.McLeran
UE-39924 Fix for crash when duplicating sound cue assets in content browser
Checking for null before casting
Change 3239983 on 2016/12/19 by Mieszko.Zielinski
Fixed injecting dynamic BTs not as expected when there's more than one injection point #UE4
Change 3240177 on 2016/12/19 by Mieszko.Zielinski
Fix for AI agents hand-placed on levels not getting their PathFollowingComponent.MyNavData set properly #UE4
Change 3240488 on 2016/12/19 by Aaron.McLeran
UE-39924 Fix for crash when duplicating sound cue assets in content browser
More fixes!
Change 3240512 on 2016/12/19 by dan.reynolds
AEOverview Update:
- Created support for single level loads (sub-maps now auto generate lights and a staging platform when loaded individually vs. via AEOverviewMain)
This will allow developers to load single levels functionally without adding lights or other assets to make them work.
Change 3240518 on 2016/12/19 by dan.reynolds
AEOverview Update:
- Added test for Multichannel 2D Reverb
Change 3240875 on 2016/12/20 by mason.seay
Gameplay Tag Functional Tests
Change 3240876 on 2016/12/20 by dan.reynolds
AEOverview Fix
- Fixed miss targeted menu items (updated prefixes)
Change 3240923 on 2016/12/20 by Lukasz.Furman
fixed memory corruption in template A* solver
copy of CL# 3240898
#ue4
Change 3241661 on 2016/12/21 by Thomas.Sarkanen
Fix mesh-customized sockets not showing up by default in 'Active' socket filter mode
#jira UE-39938 - Cannot edit mesh sockets
Change 3241964 on 2016/12/21 by Wes.Hunt
Remove QoSReporter from CrashReportClient
#tests editor debug gpf and verify crash is sent.
Change 3241996 on 2016/12/21 by Wes.Hunt
Add @Owner tags to all analytics events in all our games #jira AN-805
* Added default owners to most events. Tracked down authors of some events.
* Added skeleton docs for many missing locations (just added @Name and @Owner so analytics folks can see the name and who to talk to in the doc webpage).
* verified this checkin contains changes to comments ONLY.
#tests compiled Orion and QAGame.
Change 3242825 on 2016/12/22 by Lukasz.Furman
fixed order of behavior tree execution indices for PIE debugging
#jira UE-39922
Change 3242860 on 2016/12/22 by mason.seay
Functional tests for timer
Change 3243188 on 2016/12/22 by dan.reynolds
AEOverview Update
- Created viewport bookmarks on each sub-map for individual testing consistency
- Updated EQ and Reverb effect parameters to work with new Audio Mixer Effects
Change 3243192 on 2016/12/22 by dan.reynolds
AEOverview Lighting Fix
Change 3243507 on 2016/12/23 by dan.reynolds
AEOverview Moved to Maps\Framework\Audio\
+ redirector clean up, resaves, etc.
Change 3243553 on 2016/12/24 by Aaron.McLeran
Bringing fixes to dev-framework from odin
3240517
3240476
3240473
3240412
3240315
3240220
3240194
Change 3243567 on 2016/12/24 by Aaron.McLeran
Fixing build.
Adding #include for FConfigCacheIni
Change 3244466 on 2017/01/01 by Mieszko.Zielinski
Removed FGameplayDebuggerDebugDrawDelegateHelper::InitDelegateHelper implementation that was failing a check without any explanation or comment #UE4
#jira UE-40069
Change 3244471 on 2017/01/01 by Aaron.McLeran
Bringing fixes to dev-framework from odin
3244469
3244467
3243743
Change 3244639 on 2017/01/03 by Jurre.deBaare
CIS error fix
Change 3244748 on 2017/01/03 by Jurre.deBaare
Crash while using the Delete Button in the HLOD Outliner while a Generated Proxy Mesh is opened in the Static Mesh Editor
#fix Unify path for both delete cluster options in the outliner UI
#jira UE-40066
Change 3245338 on 2017/01/03 by Aaron.McLeran
Getting rid of shadowed variable.
Change 3245816 on 2017/01/03 by Aaron.McLeran
Synth component and DSP objects
- New synth component wraps an audio component and procedural sound wave to make generating synthesis much much easier
- Bunch of changes and improvements to DSP objects for real-time synthesis.
- New polyphonic virtual analog synthesizer
Change 3246146 on 2017/01/04 by Ben.Marsh
Move precompiled binaries into the Private-Binaries stream.
Change 3246283 on 2017/01/04 by Marc.Audy
Fix CIS warnings
Change 3246457 on 2017/01/04 by Aaron.McLeran
Fixing static analysis warnings
Change 3246519 on 2017/01/04 by Benn.Gallagher
Fix for serialization mismatch on skeletal mesh source model.
Change 3247193 on 2017/01/04 by Dan.Reynolds
Adding new DSP utility
Change 3247769 on 2017/01/05 by Marc.Audy
Remove inaccurate comment
Change 3248068 on 2017/01/05 by dan.reynolds
AEOverview Fix
- Shortening long path name (Multichannel sub-directories) and fixing up redirectors
Change 3248251 on 2017/01/05 by Jon.Nabozny
Fix uninitialized PropertyColor in BillboardComponent.
Change 3249305 on 2017/01/06 by James.Golding
Fix FColorVertexBuffer copy constructor if source buffer is not initialised
#jira UE-40242
Change 3249639 on 2017/01/06 by Jon.Nabozny
Fix K2Node_CallFunction tool tip generation crash.
#JIRA UE-40307
Change 3249716 on 2017/01/06 by Aaron.McLeran
Minor changes to DSP objects
Deciding on a method to pass parameters from BP to synth components.
Change 3249909 on 2017/01/06 by James.Golding
Change USkinnedMeshComponent::GetSkinWeightBuffer to not require a MeshObject to return valid weight buffer
Make VertInfluencedByActiveBoneTyped not crash if weight buffer is null
#jira UE-40289
Change 3249931 on 2017/01/06 by Aaron.McLeran
Bring CL 3244528 from Odin to Dev-Framework
Change 3250012 on 2017/01/06 by Aaron.McLeran
Changing how synth params work
- Removing base-class parameter getters/setters, removing OnParameterChange virtual function
- Added SynthCommand function to help setting synth params on audio render thread from game thread
- Refactored Synth1Component to use new system
Change 3250084 on 2017/01/06 by Aaron.McLeran
Adding preset struct and adding noise to oscillator
Change 3250257 on 2017/01/07 by Aaron.McLeran
Checking in stub for new synthesis plugin to put synthesis instances.
Change 3250264 on 2017/01/07 by Aaron.McLeran
Moving synthesis code to new synthesis plugin
Change 3250313 on 2017/01/07 by Aaron.McLeran
Fixing CIS static analysis warning on include cycle
Change 3250353 on 2017/01/08 by Aaron.McLeran
Various audio mixer/dsp refinements
-Simplying envelope code to just be a straightforward case statement
-Added sample value lerping code for Amp object to avoid zippering when running at control-rate sample rates
-Changed source manager wrapping code to always set NextFrameIndex to -1 in the edge case of the next being out of range, but current not being out of range. It should always be -1.
-Added a console var to toggle enabling sample checks for tracking down sample bugs
-Added data table row subclass to EpicSynth1Component preset struct
Change 3250382 on 2017/01/08 by Aaron.McLeran
Bringing ODIN-3977 fix to dev-framework
Change 3250435 on 2017/01/08 by Aaron.McLeran
Adding ability to set note durations for synth component
Removing OnNoteOn/OnNoteOff events since derived synth components may or may not deal with notes.
Change 3250443 on 2017/01/08 by Aaron.McLeran
Fixing CIS, removing console variable code.
Change 3250445 on 2017/01/08 by Aaron.McLeran
Attempted fix for crash on existing PIE
Change 3250446 on 2017/01/08 by dan.reynolds
Updated MidiSynthTestBP for new Note On Note Off functions
Change 3250447 on 2017/01/08 by dan.reynolds
MidiListener and MidiSynthTestBP Updated to use Duration argument (MidiListener set default value to -1.0f )
Change 3250455 on 2017/01/08 by Aaron.McLeran
Adding critical section so stopping a source voice and processing source voice can't happen at same time.
Change 3250465 on 2017/01/08 by Aaron.McLeran
Fixing NaNs in sine approximations
Change 3250466 on 2017/01/08 by Aaron.McLeran
Adding new music utility.
- Changing scale indicies to be 1-based (music oriented)
- Adding new function to get chord note from a mode
Change 3250467 on 2017/01/08 by Aaron.McLeran
Undoing change to FastSin parabolic sine approximation
- was not dividing by zero!
Change 3250468 on 2017/01/08 by Aaron.McLeran
Adding ability to get a direct virtual function callback for procedural sound waves
-Using the UE4 delegate function was not safe in the audio rendering thread and would sometimes not actually get called. Switched to a more direct and simple override, avoids some buffer copies and is more simple.
-Updated synth component code to use the new method.
Change 3250470 on 2017/01/08 by Aaron.McLeran
Fixing note on duration
Change 3250479 on 2017/01/08 by Aaron.McLeran
Fixing pan in the amp dsp object
Change 3252179 on 2017/01/10 by Mieszko.Zielinski
Fallout fix after removal of BlackboardKeyUtils::CalculateComparisonResult declaration from the AIModule #UE4
Change 3252498 on 2017/01/10 by Marc.Audy
Fix non-unity compile errors
[CL 3252563 by Marc Audy in Main branch]
2017-01-10 14:09:16 -05:00
|
|
|
|
|
|
|
|
void UEnvironmentQueryGraph::ResetProfilerStats()
|
|
|
|
|
{
|
|
|
|
|
for (int32 Idx = 0; Idx < Nodes.Num(); Idx++)
|
|
|
|
|
{
|
|
|
|
|
UEnvironmentQueryGraphNode_Option* OptionNode = Cast<UEnvironmentQueryGraphNode_Option>(Nodes[Idx]);
|
|
|
|
|
if (OptionNode)
|
|
|
|
|
{
|
|
|
|
|
OptionNode->bStatShowOverlay = false;
|
|
|
|
|
OptionNode->StatsPerGenerator.Reset();
|
|
|
|
|
OptionNode->StatAvgPickRate = 0.0f;
|
|
|
|
|
|
|
|
|
|
for (int32 TestIdx = 0; TestIdx < OptionNode->SubNodes.Num(); TestIdx++)
|
|
|
|
|
{
|
|
|
|
|
UEnvironmentQueryGraphNode_Test* TestNode = Cast<UEnvironmentQueryGraphNode_Test>(OptionNode->SubNodes[TestIdx]);
|
|
|
|
|
if (TestNode)
|
|
|
|
|
{
|
|
|
|
|
TestNode->bStatShowOverlay = false;
|
|
|
|
|
TestNode->Stats = FEnvionmentQueryNodeStats();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#if USE_EQS_DEBUGGER
|
|
|
|
|
|
|
|
|
|
FEnvionmentQueryNodeStats GetOverlayStatsHelper(const FEQSDebugger::FStatsInfo& StatsInfo, int32 OptionIdx, int32 StepIdx)
|
|
|
|
|
{
|
|
|
|
|
FEnvionmentQueryNodeStats OverlayInfo;
|
|
|
|
|
OverlayInfo.AvgTime = 1000.0f * StatsInfo.TotalAvgData.OptionStats[OptionIdx].StepData[StepIdx].ExecutionTime / StatsInfo.TotalAvgCount;
|
|
|
|
|
|
|
|
|
|
// make sure it exists in data from most expensive run
|
|
|
|
|
if (StatsInfo.MostExpensive.OptionStats.IsValidIndex(OptionIdx) && StatsInfo.MostExpensive.OptionStats[OptionIdx].StepData.IsValidIndex(StepIdx))
|
|
|
|
|
{
|
|
|
|
|
OverlayInfo.MaxTime = StatsInfo.MostExpensive.OptionStats[OptionIdx].StepData[StepIdx].ExecutionTime * 1000.0f;
|
|
|
|
|
OverlayInfo.MaxNumProcessedItems = StatsInfo.MostExpensive.OptionStats[OptionIdx].StepData[StepIdx].NumProcessedItems;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return OverlayInfo;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void UEnvironmentQueryGraph::StoreProfilerStats(const FEQSDebugger::FStatsInfo& Stats)
|
|
|
|
|
{
|
|
|
|
|
TArray<float> OptionPickRate;
|
|
|
|
|
for (int32 Idx = 0; Idx < Stats.TotalAvgData.OptionStats.Num(); Idx++)
|
|
|
|
|
{
|
|
|
|
|
OptionPickRate.Add(1.0f * Stats.TotalAvgData.OptionStats[Idx].NumRuns / Stats.TotalAvgCount);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// process connected option nodes, if asset no longer match recorder data, debug view will not be accurate!
|
|
|
|
|
int32 AssetOptionIdx = 0;
|
|
|
|
|
for (int32 NodeIdx = 0; NodeIdx < Nodes.Num(); NodeIdx++)
|
|
|
|
|
{
|
|
|
|
|
UEnvironmentQueryGraphNode_Root* RootNode = Cast<UEnvironmentQueryGraphNode_Root>(Nodes[NodeIdx]);
|
|
|
|
|
if (RootNode)
|
|
|
|
|
{
|
|
|
|
|
for (int32 PinIdx = 0; PinIdx < RootNode->Pins.Num(); PinIdx++)
|
|
|
|
|
{
|
|
|
|
|
if (RootNode->Pins[PinIdx] && RootNode->Pins[PinIdx]->Direction == EEdGraphPinDirection::EGPD_Output)
|
|
|
|
|
{
|
|
|
|
|
for (int32 LinkedPinIdx = 0; LinkedPinIdx < RootNode->Pins[PinIdx]->LinkedTo.Num(); LinkedPinIdx++)
|
|
|
|
|
{
|
|
|
|
|
UEdGraphPin* LinkedPin = RootNode->Pins[PinIdx]->LinkedTo[LinkedPinIdx];
|
|
|
|
|
UEnvironmentQueryGraphNode_Option* OptionNode = LinkedPin ? Cast<UEnvironmentQueryGraphNode_Option>(LinkedPin->GetOuter()) : nullptr;
|
|
|
|
|
|
|
|
|
|
if (OptionNode)
|
|
|
|
|
{
|
|
|
|
|
int32 StatsOptionIdx = INDEX_NONE;
|
|
|
|
|
for (int32 Idx = 0; Idx < Stats.TotalAvgData.OptionData.Num(); Idx++)
|
|
|
|
|
{
|
|
|
|
|
if (Stats.TotalAvgData.OptionData[Idx].OptionIdx == AssetOptionIdx)
|
|
|
|
|
{
|
|
|
|
|
StatsOptionIdx = Idx;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (StatsOptionIdx != INDEX_NONE)
|
|
|
|
|
{
|
|
|
|
|
// fill overlay values
|
|
|
|
|
|
|
|
|
|
OptionNode->bStatShowOverlay = true;
|
|
|
|
|
OptionNode->StatAvgPickRate = OptionPickRate.IsValidIndex(StatsOptionIdx) ? OptionPickRate[StatsOptionIdx] : 0.0f;
|
|
|
|
|
OptionNode->StatsPerGenerator.Reset();
|
|
|
|
|
|
|
|
|
|
if (Stats.TotalAvgData.OptionStats.IsValidIndex(StatsOptionIdx))
|
|
|
|
|
{
|
|
|
|
|
const int32 NumGenerators = Stats.TotalAvgData.OptionData[StatsOptionIdx].NumGenerators;
|
|
|
|
|
for (int32 GenIdx = 0; GenIdx < NumGenerators; GenIdx++)
|
|
|
|
|
{
|
|
|
|
|
const FEnvionmentQueryNodeStats OverlayStatsInfo = GetOverlayStatsHelper(Stats, StatsOptionIdx, GenIdx);
|
|
|
|
|
OptionNode->StatsPerGenerator.Add(OverlayStatsInfo);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (int32 TestIdx = 0; TestIdx < OptionNode->SubNodes.Num(); TestIdx++)
|
|
|
|
|
{
|
|
|
|
|
UEnvironmentQueryGraphNode_Test* TestNode = Cast<UEnvironmentQueryGraphNode_Test>(OptionNode->SubNodes[TestIdx]);
|
|
|
|
|
if (TestNode)
|
|
|
|
|
{
|
|
|
|
|
int32 StatsStepIdx = INDEX_NONE;
|
|
|
|
|
for (int32 Idx = 0; Idx < Stats.TotalAvgData.OptionData[StatsOptionIdx].TestIndices.Num(); Idx++)
|
|
|
|
|
{
|
|
|
|
|
if (Stats.TotalAvgData.OptionData[StatsOptionIdx].TestIndices[Idx] == TestIdx)
|
|
|
|
|
{
|
|
|
|
|
StatsStepIdx = Idx + NumGenerators;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (StatsStepIdx != INDEX_NONE)
|
|
|
|
|
{
|
|
|
|
|
TestNode->bStatShowOverlay = true;
|
|
|
|
|
TestNode->Stats = GetOverlayStatsHelper(Stats, StatsOptionIdx, StatsStepIdx);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
AssetOptionIdx++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif // USE_EQS_DEBUGGER
|