Commit Graph

20 Commits

Author SHA1 Message Date
Ben Zeigler
13a803acf8 #UE4 Fix templated version of UStructToJsonObject to allow passing in check/skip flags. They default to 0 like the rest of the functions
Fix UStructToJson to skip deprecated properties by default
#codereview david.nikdel

--------
Integrated using branch Ue4-To-UE4-Fortnite-Simple (reversed) of change#2694551 by Ben.Zeigler on 2015/09/16 21:21:27.

[CL 2694571 by Ben Zeigler in Main branch]
2015-09-16 21:34:30 -04:00
Bob Tellez
b3b6ef475f Checking in Mikolaj Sieluzycki's change to fix up callsites to ask for the value of an enum entry instead of the index. The value and the index are the same unless the enum specified element values in its declaration (i.e. enum MyEnum { FirstValue = 1 })
[CL 2634487 by Bob Tellez in Main branch]
2015-07-27 16:26:39 -04:00
Eric Newman
f3569dae41 Fortnite dev to main merge up to cl # 2564489
Merging using UE4-Fortnite-To-UE4

[CL 2573959 by Eric Newman in Main branch]
2015-06-02 11:44:27 -04:00
Laurent Delayen
f635d52081 Fortnite Dev > Main Integration from CL #2535376
UE4-Fortnite-CL-2535376
CL# 2535376
MCP CL# 2532705
Linux Dedicated Server
Backend: Testing
  "app" : "fortnite",
  "moduleName" : "Fortnite-PublicService",
  "branch" : "TRUNK",
  "buildDate" : "2015-05-01T13:57:06.985Z",
  "serverDate" : "2015-05-04T13:50:47.828Z",
  "build" : "1306",
  "cln" : "2532705",
  "overridePropertiesVersion" : "unknown",
  "version" : "UNKNOWN"

[CL 2539301 by Laurent Delayen in Main branch]
2015-05-06 11:05:00 -04:00
David Ratti
0273352a6f Merging CL 2527648, 2527736
[CL 2530207 by David Ratti in Main branch]
2015-04-29 10:19:52 -04:00
Daniel Broder
8ea8f8d7ad Merging using UE4-Fortnite-To-UE4 using 2517024
Weekly Fortnite Dev -> Main integration.

#CodeReview Paul.Moore, Bob.Tellez

[CL 2524683 by Daniel Broder in Main branch]
2015-04-24 14:07:47 -04:00
Ben Zeigler
1436715f3f #UE4 Add FJsonObjectWrapper struct, which is a UStruct wrapper around a JsonObject ptr.
When JsonObjectConverter encounters this object it will directly set the wrapped JsonObject instead of trying to do UProperty parsing.
This can be used to embed arbitrary Json into otherwise normal UStructs
#codereview jason.bestimt

--------
Integrated using branch Ue4-To-UE4-Fortnite-Simple (reversed) of change#2485571 by Ben.Zeigler on 2015/03/19 21:40:02.

[CL 2511059 by Ben Zeigler in Main branch]
2015-04-13 19:45:48 -04:00
Ben Zeigler
18488a8b61 #UE4 Add JsonObjectConverter::UStructToJsonAttributes as a parallel to JsonAttributesToUStruct
--------
Integrated using branch Ue4-To-UE4-Fortnite-Simple (reversed) of change#2483778 by Ben.Zeigler on 2015/03/18 19:38:02.

[CL 2511052 by Ben Zeigler in Main branch]
2015-04-13 19:44:29 -04:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Ben Zeigler
02a9e1dd4e Merging Dev -> Main using UE4-Fortnite-To-UE4 from CL 2340802
Includes following engine changes:

Getting display metrics only once at construct time when using SSafeZone. GetDisplayMetrics is expensive in Windows so it is impractical to call it every frame.
- Some AI API improvements, mostly switchig pointer function parameters to references.
- minor refactor of UCrowdFollowingComponent's queryinf functions:
    - IsCrowd*Enabled functions refactored to  IsCrowd*Active
    - implemented IsCrowd*Enabled that return acrual values of relevant properties
- Added a function to CrowdManager to query for location of agents neighbouring given agent
Added support for PS4 touchpad-based cursor
You can now choose to skip synchronously scanning for asset data in object libraries and just use the data that is currently in the asset registry. The data will be refereshed automatically later once the global scan completes. The only applies to non-commandlet editor instances.
Crash fixes for trying to access NULL Metal surfaces on IOS
Slate: Cleaned up some atlas code related to padding and corrected some comments

[CL 2347323 by Ben Zeigler in Main branch]
2014-11-03 15:47:28 -05:00
Max Preussner
6510058ee7 Core: Moved Json out of Core and into its own module
The main changes are as follows:

1. moved Json out of Core into own module 'Json'
2. moved 3 i10n classes (Json serializers) from Core into a new module 'Internationalization' *
3. fixed up 2 i10n classes in Core to not instantiate the 3 Json-based classes. instead they are now passed in as a dependency

*) (2) and (3) were required to decouple the I10n code in Core from Json. Much of the i10n code probably doesn't belong into Core in the first place, but there is no time to fix this right now.

The following cosmetic changes were also made:

- NULL to nullptr
- namespaced enums to enum classes
- renamed the three i10n Json serializer classes to comply with naming conventions
- removed file header comments (not used)
- documentation, spelling, spacing etc,

#UpgradeNotes: If your module is including Json.h then you have to add 'Json' to your Build.cs module dependencies.

#ReviewedBy: justin.sargent, saul.abreu

[CL 2310420 by Max Preussner in Main branch]
2014-09-25 18:03:04 -04:00
Bob Tellez
70aaf80117 Merging Dev->Main CL#2294650 using UE4-Fortnite-To-UE4
CL#2272587
Added "BlueprintReadWrite" to bNoneIsAllowedValue in FBlackboardKeySelector to avoid breaking any usage of it in blueprints through Break node which people were already using.  That matches the usage for AllowedTypes, which is conceptually a related idea and was already set to BlueprintReadWrite.

CL#2272599
Fixed crash when AI were killed in the same frame they were spawning into the world.

CL#2274068
behavior tree search can be reverted, task will be aborted AFTER finding a valid replacement
fix for move action crashing on pawn's death

CL#2274177
fixed behavior tree's search range when there are mutliple restart requests in the same frame

CL#2274359
Fixes RotateToFaceBBEntry not working correctly when focusing on an actor
- the GetFocalPoint call to AIController had different behavior if you called it with a priority vs. without
- with a priority we would just look at the Priorities and return the position, but that position was never being updated for Actors
- without a priority we would go through all the priorities, check for an Actor, and if it existed we would return its location
- while I could have just modified the RotateToFaceBBEntry call to just call GetFocusActor for the appropriate focus priority, this seems like the better fix)
- solution was to make the GetFocalPoint with a focus priority work exactly like the one without the focus priority.  while I would have liked to reduce the copy/paste code between the functions it didn't seem like a good idea.

Also fixed Precision not considering vectors that were in the same direction (>= vs just > with the angle threshold value)

CL#2274719
Fix crash related to AnimCameraActor.
TTP #344968 CRASH: TAKER: If the world owner leaves the game in the middle of a Taker Soul sucking another player, the Client will crash.

CL#2274988
#UE4 Proper handling of saving level assets that were created without a valid non-read only path. TTP#344899

CL#2275045
#UE4: Include "IHttpBase.h" in IHttpResponse.h since it's using a base class from there (they're truly dependent). Would be nice if this file just had the enum though.

CL#2275152
TTP# 336668
Moved the input check for VOIP from the child widgets into the base SFortHUDLayer to capture that event on different screens.  Removed code duplication.

CL#2275528
Fixed StaticMeshComponent destruction blocking on the rendering thread instead of using the UObject async destruction interface

CL#2275960
fixed behavior tree search being discarded after merge with non discardable request
decorator observers will be added even after failed search

CL#2276294
Added support to EQS "Dot" test for 2D dot-product AND taking absolute value of dot-product (for biasing for lateral over forward/back).

They are separate options which can be used together or separately.

CL#2277344
fixed BT decorator indices for abort range preview in editor

CL#2277473
NavCollision settings of static mesh will persist through reimport
ttp# 344853

CL#2277509
fixed multiple nodes connected to special pins in behavior tree editor

CL#2278042
Fixes EQS not returning the best item when the last EQS test is a filter.
- To do this, on the last test if we know it's just a filter and eventually we will use the first item that passes the test, then we sort prior to filtering.

Made the filter and score test types display "Filter Only" & "Score Only"

CL#2278111
Improved EQS Dot test "Description Title" to display "Absolute" and " 2D" as appropriate.

CL#2278115
Added "Random" EQS test, which can be used for adding a random value to items.

Potentially needed for hunting EQS query Phil is working on, and should be useful for other cases as well.

CL#2278286
Fixes crash when trying to use the VisLog due to a spelling correction made in CL 2276628.

CL#2281762
Moved VLOG in Vlog Redirect function to avoid ensure
- Ensure was caused because we were trying to log to a redirect when the redirect hadn't be set yet

CL#2282248
Fixed EQS "Random" test to work with ANY query item type, not just VectorBase item types.

CL#2282639
Enhanced debug information data for single item in EQS Debugger (GameplayDebugger feature) #ue4
- Fixed few compilation issues with disabled USE_EQS_DEBUGGER flag
- Fixed crash in EQSRenderingComponent
- Fixed EQS debug data for sorted EQS itesm (it's slower way to sort items but only with active USE_EQS_DEBUGGER flag)

CL#2282678
fixed crash on reimporting static mesh without NavCollision data
ttp# 345454

CL#2282919
Renamed BTTask_MoveDirectlyToward.bForceMoveToLocation to more clear bDisablePathUpdateOnGoalLocationChange #UE4

- also fixed a bug in FortBTTask_GameMoveDirectlyToward that was misusing that variable. This addressed TTP#343489

CL#2282927
Fixed paths rendering while using GameplayDebugger (client/server too) #Fortnite

CL#2283374
Fixes crowd following AIs (ie. regular husks) trying to rotate in the direction of their CrowdAgentMoveDirection while falling or not moving

(Fixes ttp 344776)

CL#2283475
Comment/code refactor that occurred but wasn't saved prior to check in of CL 2283374

CL#2283644
#UE4 Fix various issues seen when changing graphics settings with r.detailmode causes all components to reregister
Fix it so particle system components track if they were active when unregistering, reactivate on next register if true
Fix it so character movement components don't throw away timestamp data on unregister, this broke networking entirely
Fix it so single anim skeletal meshes restore state accross reinitializations

CL#2283688
Make bPendingKillPending no longer a UProperty so it won't be serialized.

Fixes TTPs 342221, 342634

CL#2283879
#UE4 Fix it so the scalability settings are correctly written to the user config file when saving settings, and are properly reset to in memory values when reset. Has been broken since they got refactored.

CL#2284368
fixed crash on using blueprint-based EQS contexts in PIE

CL#2284405
HotSpots auto expire #UE4

Also, Fortnite-specific:
- made FortAIHotSpotManager the owner of hotspots spawning process
- added support for having multiple hotspots assigned to one BuildingSMActor, one per approach vector

CL#2285167
Fixed Fortnite client to match FriendsService API change for pending invites

CL#2285650
#UE4: Allow JsonObjectConverter to convert Strings to FDateTime fields using ISO-8601

CL#2286127
fixed pathfinding eqs test

CL#2286208
fixed EQS tests reverting to Score Only settings after reopening editor
ttp# 345719

CL#2286296
Game Invites work in Fortnite again
Fixed game to match a backend API change

CL#2286378
Removing TickAnim from InitAnim as that seems unnecessary and should avoid if we can.

CL#2286408
- TTP#345476 Slate: Fixed MenuPlacement_AboveAnchor not being respected.

CL#2286777
Fixed bug in GameplayDebuggingComponent which would cause debug display of EQS queries sharing the same name never to update after the initial query of a certain name is made.  (In Fortnite, Goal Manager queries all have the same name, and the data would never update.  In fact, even choosing a second actor would not clear out the data from the earlier actor, because they weren't updating data when the Timestamp updated.)

CL#2289211
Fix for TTP #345752 "CRASH: DEDICATED SERVER: ToggleAILogging with a gate active causes a server crash"

CL#2289279
LatentActionManager: value from iterator (over ObjectToActionListMap) was invalidated, when ObjectToActionListMap was changed.
Unique Ptr should be used instead of SharedPtr, but UniquePtr is currently not compatible with TMap.

CL#2289897
Fixes flying AIs (like the Taker) trying to move their feet to their destination, causing them to float higher than they should be.

CL#2290041
Fix a number of properties in the Action_Move hierarchy that aren't exposed and therefore aren't duplicated when we duplicate Pawn Actions.

CL#2290210
#UE4 Fix it so UEngine::ShutdownWorldNetDriver shuts down all net drivers associated with a world and not just a primary one. Fixes a crash when transferring maps with an active beacon net driver. Also fix issue where UEngine::ShutdownAllNetDrivers would miss some net drivers due to indexes being removed
- Duplicating actions occurs as part of adding a Pawn Action Sequence comprised of multiple Pawn Actions.  The bug causes undesired behavior because the properties that were set on the initial Pawn Action are not carried over to the duplicate.
- We will continue to use the feet location as the origin of the Actor for determining requested velocity with walking AIs, but use the Actor's location as the origin for non-walking AIs

CL#2290255
#UE4 Fix to previous netdriver checkin, only kill world net drivers if the world is actively set, idle net drivers are fine and needed for beacons to work properly

CL#2290585
Fixed some PawnActions' bool properties not being marked as UPROPERTIES #UE4

It was resulting in copied actions loosing parts of its configuration.
Also:
 - added a parameter to PawnAction_Move to controll "finish on overlap" path following behavior

CL#2290675
Extended GameplayDebugger view in Simulation. I added a way to switch debug views, to have all functionality from PIE. #ue4

CL#2290778
fixed invalid nav nodes in paths after offseting

CL#2290784
moved pathfollowing's reachability test out of FollowPathSegment function (it's supposed to handle only velocity calculations), agent will always use feet location for moving on path segment

CL#2292104
Fixes for GameplayDebugger, it mostly fixes activation in different configurations (PIE, standalone, client-server, etc.).

CL#2292198
Fixed issues related to NavMesh rendering and EQS query switching for GameplayDebugger. #ue4

CL#2292766
Fixed crash if touch event without valid MovieStreamer

CL#2292967
GameplayDebuggingComponent now tries to pick the correct nav-mesh for the selected actor, rather than always displaying the default nav-mesh.

NOTE: If you switch from one actor to another with nav-agent properties that are associated with different nav-meshes, it may continue to display the original nav-mesh for a while until it needs to update the position where the nav-mesh should display.

CL#2293116
#UE4 #HTTP: Make LibCurl reuse connections by default on windows/android to mirror the change in CL# 2025870. Also added [Networking]UseLibCurl as an option to have LibCurl get used in addition to command line.

CL#2293217
Added suffix override to allow StagingInfo instances without platform in the staging path
This is to handle  where platform is already in each build product instead of as a root dir, eg. \\WindowsClient instead of \\Windows\\WindowsClient

CL#2293263
#UE4: Make JsonObjectConverter skip null values in arrays and structs (this is consistent with skipping missing keys)

CL#2293534
fixed parent node usage in navigation octree (navmesh stays unchanged after deleting an actor)

CL#2293536
fixed updating parent chain in navoctree after removing last attached node

CL#2293543
changed navigation octree parent map to use weak object pointers (merged from main)

CL#2293952
Changes/improvements to curl http module:

- Properly get bUseCurl from a configuration file.
- Do less work when creating requests (checking commandline settings moved to CurlHttpManager).
- Do not init/shutdown unless actually used.

CL#2294062
Added virtual function OnCharacterStuckInGeometry for Characters that get stuck in geometry to CharacterMovementComponent
- Allows subclasses to define behavior when this occurs
- Comment states that this only will be called when the character is walking

[CL 2305577 by Bob Tellez in Main branch]
2014-09-22 10:33:39 -04:00
Eric Newman
4177fb347e Weekly merge of UE4-Fortnite-To-UE4 using CL# 2271452
[CL 2276663 by Eric Newman in Main branch]
2014-08-28 16:05:15 -04:00
Billy Bramer
087e56e66a Merging using UE4-Fortnite-To-UE4 from CL 2261973
Includes the following engine-level changes (among others; biggest change is enabling world assets by default):

CL 2252857
added dynamic allocations for path finding, removed hardcoded limit of 128 polys in path corridor

CL 2256142
Added support for native arrays in JSON object converter.

- Permissive in treating arrays of size 1 and scalars as equivalent
- Excess elements in JSON are ignored. Serialization succeeds but a warning is logged

CL 2256073
Fixed a bug in ARecastNavMesh::BatchRaycast resulting in NaN hit locations

CL 2253797
#UE4 More aggressively setting RF_Public and RF_Standalone flags on maps and ensuring world names match package names. This is necessary because umaps are currently being managed outside of the content browser and it is causing a few issues. Also, packages containing maps now synthesize asset data when the package contains absolutely no asset data (probably because the UWorld in it was not RF_Public at the time it was saved due to a previous bug).

CL 2258142
#UE4 Added a GC during map load that reclaims memory allocated during load/init. This is needed to finish the load on low-memory devices in games that allocate more memory after load.

CL 2247003
Added homing to ProjectileMovementComponent

- Homing requires both a bool and a target component to be set, the strength is determined by a customizable variable
- Both homing and gravity are now applied in the new virtual function "CalculateAcceleration"

CL 2247249
Moved the homing modification to acceleration occur in a separate function specifically for homing

CL 2257043
- Guard net dormancy calls against executing on clients, based on thread with DaveR and JohnP; This particular case was the result of an intentionally client-authoritative actor calling the dormancy functions via inheritance

CL 2245629
#UE4 - fixed json TryGetNumber to round negatives appropriately

CL 2255312
#UE4 Enabling World Assets by default.

CL 2260956
Analytics ET now loads HTTP at StartupModule so the module will be available during ShutdownModule to flush events

CL 2245571
GenericTeamAgentInterface can now retrieve attitude of an agent towards a given actor #UE4

- Made PerceptionSystem's sight sense take advantage of that

CL 2246897
Fixed perception listeners not being removed from the PerceptionSystem on Owner's end play #UE4

- addresses TTP#343392

CL 2260634
added more debug data for NaN in crowd simulation

CL 2248387
Added possibility to debug multiple EQS queries with GameplayDebugger. #ue4
Fixed network replication from bandwidth point of view for data in GameplayDebugger. #ue4

CL 2253281
Added additional information to the visual logger for UBTCompositeNode::DoDecoratorsAllowExecution
- We now keep track of whether a decorator allows execution, in addition to the existing log for not allowing execution

CL 2255310
#UE4 The world browser module now listens to WorldAdded/WorldDestroyed events instead of WorldInit/WorldCleanup events. Worlds can be initialized without being the editor world and this handles that case.

CL 2258256
#UE4 Replacing the SOpenLevelDialog with a new generic SAssetDialog. This dialog will be used as a generic Open or Save As dialog for assets.

[CL 2266822 by Billy Bramer in Main branch]
2014-08-21 20:30:51 -04:00
Steve Robb
82fcd06c42 enum class support for UENUMs. Currently only supports enum classes of underlying type uint8, because the property system needs to be updated to handle more than that.
EPropertyReferenceFlags removed too, because it is unused.

#ttp 329394: UHT: Support the C++ "enum class" syntax for UENUMs

#codereview robert.manuszewski

[CL 2252907 by Steve Robb in Main branch]
2014-08-12 08:51:25 -04:00
Josh Markiewicz
c18a424666 Weekly Fort Dev -> Main integration from UE4-Fortnite-CL-2245134
MCP
 "app" : "fortnite",
  "moduleName" : "Fortnite-PublicService",
  "branch" : "TRUNK",
  "build" : "306",
  "cln" : "2245028",
  "version" : "UNKNOWN"

[CL 2247600 by Josh Markiewicz in Main branch]
2014-08-07 17:34:29 -04:00
Daniel Broder
9f50173ccf Merging using UE4-Fortnite-To-UE4 from CL 2236347
Unshelved this merge from Stephan and then completed the merge with additional fixes and testing.

Hand fixed some WorldExp compile issues due to changes to OnPaint() signature.

#Integration

[CL 2245992 by Daniel Broder in Main branch]
2014-08-06 16:12:41 -04:00
Michael Schoell
0b51921eab Find-in-Blueprints will now find a variety of new, useful bits of data in Blueprints (both for find-in-all and finding in current). Searches can now be done in the current culture and source culture.
Find-in-Blueprints now uses the same search data for both Find-in-all-Blueprints and Find-in-Blueprint. That searchdata is no longer stored in the asset registry, it is stored in the DDC and is managed by a new class. Searching is multithreaded to reduce overhead on the main thread during long searches in large projects.

virtual UEdGraphNode::AddSearchMetaDataInfo which sets base find-in-blueprints metadata and can be overriden with more detailed search data.
#change UEdGraphPin::GetDefaultAsString will return the text value as string if set

Added FBlueprintEditorUtils::GetEntryAndResultNode, moving most of the functionality from FBlueprintGraphActionDetails::SetEntryAndResultNodes to the new function
Added FBlueprintEditorUtils::GetGraphDescription to get graph descriptions from their metadata
Added FBlueprintEditorUtils::GetNodeByGUID to find nodes using their Guid

Blueprints now cache their search metadata on compile, this is a CPU intensive process and can no longer occur every time the Asset Registry queries for the Blueprint's tags

#change Fixed an issue with finding a pin type's icon (UK2Node_Variable::GetVarIconFromPinType) where we would search for a class we already had available.

Added an overridable function to UEdGraphNode to collect Blueprint search metadata.

#change FJsonObjectConverter::UPropertyToJsonValue is now available outside of the .cpp

#change Rewrote how Find-in-Blueprints works both for local and global searches, now uses Json to resolve a variety of format issues and also to make it much more extensible.

#ttp 290376 - K2: Ability to search (find in blueprints) important pin values
#ttp 298599 - ROCKET: TASK: K2: Search results should indicate where the instance is located in the results page (construction script, event graph, custom graph)
#ttp 304819 - Blueprints: Editor: L10N: "Find in Blueprint" needs to work with other languages
#ttp 308572 - UE4: ANIM: K2: Searching doesn't work for anim nodes right now
#ttp 316678 - UE4: BLUEPRINTS: SHADOW: Default values are not searchable
#ttp 318180 - UE4: K2: Cannot search for spawnactor using find in blueprints
#ttp 320141 - UE4: K2: Find in blueprints does not find functions declared in another blueprint (if the function isn't called in that BP)

[CL 2110494 by Michael Schoell in Main branch]
2014-06-19 11:32:47 -04:00
Bob Tellez
96c40b8974 Merging UE4-Fortnite -> Main using CL#2047477
[CL 2049479 by Bob Tellez in Main branch]
2014-04-23 19:29:53 -04:00
Tim Sweeney
324683ce78 Engine source (Main branch up to CL 2026164) 2014-03-14 14:13:41 -04:00