diff --git a/Build/Windows/Application.ico b/Build/Windows/Application.ico deleted file mode 100644 index 591fd6e..0000000 Binary files a/Build/Windows/Application.ico and /dev/null differ diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index 0b1bdfa..0f200ac 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -16,6 +16,7 @@ EditorStartupMap=/Game/Scenes/CentralLondon.CentralLondon r.DefaultFeature.AntiAliasing=2 r.DefaultFeature.AutoExposure=False r.TextureStreaming=True +r.DefaultFeature.AmbientOcclusionStaticFraction=False [/Script/Engine.UserInterfaceSettings] RenderFocusRule=NavigationOnly @@ -36,11 +37,17 @@ bLoadWidgetsOnDedicatedServer=True [/Script/Engine.Engine] NearClipPlane=1.000000 -MaximumLoopIterationCount=10000000 +MaximumLoopIterationCount=1000000 +MinDesiredFrameRate=30.000000 +SmoothedFrameRateRange=(LowerBound=(Type=Inclusive,Value=22.000000),UpperBound=(Type=Exclusive,Value=60.000000)) +bSmoothFrameRate=True -[/Script/Engine.RecastNavMesh] +[/Script/NavigationSystem.RecastNavMesh] bFixedTilePoolSize=False +[/Script/Engine.EndUserSettings] +bSendAnonymousUsageDataToEpic=False + [/Script/Engine.PhysicsSettings] DefaultGravityZ=-980.000000 DefaultTerminalVelocity=4000.000000 @@ -54,6 +61,7 @@ bEnablePCM=True bEnableStabilization=False bWarnMissingLocks=True bEnable2DPhysics=False +PhysicErrorCorrection=(PingExtrapolation=0.100000,ErrorPerLinearDifference=1.000000,ErrorPerAngularDifference=1.000000,MaxRestoredStateError=1.000000,PositionLerp=0.000000,AngleLerp=0.400000,LinearVelocityCoefficient=100.000000,AngularVelocityCoefficient=10.000000,ErrorAccumulationSeconds=0.500000,ErrorAccumulationDistanceSq=15.000000,ErrorAccumulationSimilarity=100.000000) LockedAxis=Invalid DefaultDegreesOfFreedom=Full3D BounceThresholdVelocity=200.000000 @@ -70,6 +78,8 @@ bDefaultHasComplexCollision=True bSuppressFaceRemapTable=False bSupportUVFromHitResults=False bDisableActiveActors=False +bDisableKinematicStaticPairs=False +bDisableKinematicKinematicPairs=False bDisableCCD=False bEnableEnhancedDeterminism=False MaxPhysicsDeltaTime=0.033333 @@ -81,5 +91,6 @@ SyncSceneSmoothingFactor=0.000000 AsyncSceneSmoothingFactor=0.990000 InitialAverageFrameRate=0.016667 PhysXTreeRebuildRate=10 +DefaultBroadphaseSettings=(bUseMBPOnClient=False,bUseMBPOnServer=False,MBPBounds=(Min=(X=0.000000,Y=0.000000,Z=0.000000),Max=(X=0.000000,Y=0.000000,Z=0.000000),IsValid=0),MBPNumSubdivs=2) diff --git a/Config/DefaultGame.ini b/Config/DefaultGame.ini index a35c770..d726623 100644 --- a/Config/DefaultGame.ini +++ b/Config/DefaultGame.ini @@ -11,10 +11,11 @@ Build=IfProjectHasCode BuildConfiguration=PPBC_Shipping StagingDirectory=(Path="D:/LifePlay_Build") FullRebuild=False -ForDistribution=True +ForDistribution=False IncludeDebugFiles=False BlueprintNativizationMethod=Disabled bIncludeNativizedAssetsInProjectGeneration=False +bExcludeMonolithicEngineHeadersInNativizedCode=False UsePakFile=False bGenerateChunks=False bGenerateNoChunks=False @@ -37,6 +38,7 @@ bCompressed=False bEncryptIniFiles=False bEncryptPakIndex=False bSkipEditorContent=False +bSkipMovies=False +DirectoriesToAlwaysStageAsNonUFS=(Path="Modules") bNativizeBlueprintAssets=False bNativizeOnlySelectedBlueprints=False diff --git a/Content/BPs/GI.uasset b/Content/BPs/GI.uasset index bb10891..27099b6 100644 Binary files a/Content/BPs/GI.uasset and b/Content/BPs/GI.uasset differ diff --git a/Content/BPs/PC.uasset b/Content/BPs/PC.uasset index 6443077..bf4a990 100644 Binary files a/Content/BPs/PC.uasset and b/Content/BPs/PC.uasset differ diff --git a/Content/BPs/Person.uasset b/Content/BPs/Person.uasset index 051791e..618a9c5 100644 Binary files a/Content/BPs/Person.uasset and b/Content/BPs/Person.uasset differ diff --git a/Content/BPs/Save.uasset b/Content/BPs/Save.uasset index cc67177..04f40e9 100644 Binary files a/Content/BPs/Save.uasset and b/Content/BPs/Save.uasset differ diff --git a/Content/BPs/StreetMap_Static.uasset b/Content/BPs/StreetMap_Static.uasset index 90d6810..b9b0624 100644 Binary files a/Content/BPs/StreetMap_Static.uasset and b/Content/BPs/StreetMap_Static.uasset differ diff --git a/Content/Scenes/CentralLondon.umap b/Content/Scenes/CentralLondon.umap index 8505219..b7388b7 100644 Binary files a/Content/Scenes/CentralLondon.umap and b/Content/Scenes/CentralLondon.umap differ diff --git a/Content/Scenes/CentralLondon_BuiltData.uasset b/Content/Scenes/CentralLondon_BuiltData.uasset index eddf97c..e98e28d 100644 Binary files a/Content/Scenes/CentralLondon_BuiltData.uasset and b/Content/Scenes/CentralLondon_BuiltData.uasset differ diff --git a/Content/StreetMap/CentralLondon.uasset b/Content/StreetMap/CentralLondon.uasset deleted file mode 100644 index 39defd3..0000000 Binary files a/Content/StreetMap/CentralLondon.uasset and /dev/null differ diff --git a/Content/StreetMap/Static/CentralLondon.uasset b/Content/StreetMap/Static/CentralLondon.uasset deleted file mode 100644 index bf8f11b..0000000 Binary files a/Content/StreetMap/Static/CentralLondon.uasset and /dev/null differ diff --git a/Content/Structs/Cloth.uasset b/Content/Structs/Cloth.uasset index 9082edb..66ba2b5 100644 Binary files a/Content/Structs/Cloth.uasset and b/Content/Structs/Cloth.uasset differ diff --git a/Content/Structs/SMBool.uasset b/Content/Structs/SMBool.uasset index 7618970..86143bf 100644 Binary files a/Content/Structs/SMBool.uasset and b/Content/Structs/SMBool.uasset differ diff --git a/Content/UI/CharGen.uasset b/Content/UI/CharGen.uasset index 7155f1a..914c869 100644 Binary files a/Content/UI/CharGen.uasset and b/Content/UI/CharGen.uasset differ diff --git a/Content/UI/Contact.uasset b/Content/UI/Contact.uasset index 82d7ba4..1b0876e 100644 Binary files a/Content/UI/Contact.uasset and b/Content/UI/Contact.uasset differ diff --git a/Content/UI/ContactMenu.uasset b/Content/UI/ContactMenu.uasset index 15bf6f3..c00df7a 100644 Binary files a/Content/UI/ContactMenu.uasset and b/Content/UI/ContactMenu.uasset differ diff --git a/Content/UI/Inventory.uasset b/Content/UI/Inventory.uasset index 7cb89a5..8093b20 100644 Binary files a/Content/UI/Inventory.uasset and b/Content/UI/Inventory.uasset differ diff --git a/Content/UI/Inventory_Cloth.uasset b/Content/UI/Inventory_Cloth.uasset index 422ed46..b20cff1 100644 Binary files a/Content/UI/Inventory_Cloth.uasset and b/Content/UI/Inventory_Cloth.uasset differ diff --git a/Content/UI/SexAction.uasset b/Content/UI/SexAction.uasset index 1769b4c..50d6793 100644 Binary files a/Content/UI/SexAction.uasset and b/Content/UI/SexAction.uasset differ diff --git a/LifePlay.sln b/LifePlay.sln index c6a75b5..1e28ed5 100644 --- a/LifePlay.sln +++ b/LifePlay.sln @@ -1,100 +1,125 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.26730.16 +VisualStudioVersion = 15.0.25807.0 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Engine", "Engine", "{B5CC4ECB-290E-4069-866D-0A91649F562B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Engine", "Engine", "{3B9A8162-6232-4AE8-936D-3D30E00B53CD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Games", "Games", "{A18D553A-642C-46D7-83C4-50948FA12BB5}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Games", "Games", "{3CC488BF-FFC0-4BEB-B580-18BEAFF21A36}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UE4", "Intermediate\ProjectFiles\UE4.vcxproj", "{9F3944BA-2428-4050-9FE9-59F6C136A3C4}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UE4", "Intermediate\ProjectFiles\UE4.vcxproj", "{8962C52B-11DB-42F4-9630-175AAC44A4E5}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LifePlay", "Intermediate\ProjectFiles\LifePlay.vcxproj", "{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LifePlay", "Intermediate\ProjectFiles\LifePlay.vcxproj", "{CDB20097-5BE4-4AE0-9917-9E106866611A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution DebugGame Editor|HTML5 = DebugGame Editor|HTML5 + DebugGame Editor|Linux = DebugGame Editor|Linux DebugGame Editor|Win32 = DebugGame Editor|Win32 DebugGame Editor|Win64 = DebugGame Editor|Win64 DebugGame|HTML5 = DebugGame|HTML5 + DebugGame|Linux = DebugGame|Linux DebugGame|Win32 = DebugGame|Win32 DebugGame|Win64 = DebugGame|Win64 Development Editor|HTML5 = Development Editor|HTML5 + Development Editor|Linux = Development Editor|Linux Development Editor|Win32 = Development Editor|Win32 Development Editor|Win64 = Development Editor|Win64 Development|HTML5 = Development|HTML5 + Development|Linux = Development|Linux Development|Win32 = Development|Win32 Development|Win64 = Development|Win64 Shipping|HTML5 = Shipping|HTML5 + Shipping|Linux = Shipping|Linux Shipping|Win32 = Shipping|Win32 Shipping|Win64 = Shipping|Win64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame Editor|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame Editor|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame Editor|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame Editor|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame Editor|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame Editor|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development Editor|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development Editor|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development Editor|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development Editor|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development Editor|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development Editor|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Shipping|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Shipping|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Shipping|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Shipping|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Shipping|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32 - {9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Shipping|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame Editor|HTML5.ActiveCfg = HTML5_DebugGame_Editor|Win32 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame Editor|Win32.ActiveCfg = DebugGame_Editor|Win32 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame Editor|Win64.ActiveCfg = DebugGame_Editor|x64 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame Editor|Win64.Build.0 = DebugGame_Editor|x64 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame|HTML5.ActiveCfg = HTML5_DebugGame_Game|Win32 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame|HTML5.Build.0 = HTML5_DebugGame_Game|Win32 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame|Win32.ActiveCfg = DebugGame_Game|Win32 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame|Win32.Build.0 = DebugGame_Game|Win32 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame|Win64.ActiveCfg = DebugGame_Game|x64 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame|Win64.Build.0 = DebugGame_Game|x64 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development Editor|HTML5.ActiveCfg = HTML5_Development_Editor|Win32 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development Editor|Win32.ActiveCfg = Development_Editor|Win32 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development Editor|Win64.ActiveCfg = Development_Editor|x64 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development Editor|Win64.Build.0 = Development_Editor|x64 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development|HTML5.ActiveCfg = HTML5_Development_Game|Win32 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development|HTML5.Build.0 = HTML5_Development_Game|Win32 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development|Win32.ActiveCfg = Development_Game|Win32 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development|Win32.Build.0 = Development_Game|Win32 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development|Win64.ActiveCfg = Development_Game|x64 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development|Win64.Build.0 = Development_Game|x64 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Shipping|HTML5.ActiveCfg = HTML5_Shipping_Game|Win32 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Shipping|HTML5.Build.0 = HTML5_Shipping_Game|Win32 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Shipping|Win32.ActiveCfg = Shipping_Game|Win32 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Shipping|Win32.Build.0 = Shipping_Game|Win32 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Shipping|Win64.ActiveCfg = Shipping_Game|x64 - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Shipping|Win64.Build.0 = Shipping_Game|x64 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame Editor|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame Editor|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame Editor|Linux.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame Editor|Linux.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame Editor|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame Editor|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame Editor|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame Editor|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame|Linux.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame|Linux.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development Editor|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development Editor|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development Editor|Linux.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development Editor|Linux.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development Editor|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development Editor|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development Editor|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development Editor|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development|Linux.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development|Linux.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Shipping|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Shipping|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Shipping|Linux.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Shipping|Linux.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Shipping|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Shipping|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Shipping|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32 + {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Shipping|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame Editor|HTML5.ActiveCfg = HTML5_DebugGame_Editor|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame Editor|Linux.ActiveCfg = Linux_DebugGame_Editor|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame Editor|Linux.Build.0 = Linux_DebugGame_Editor|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame Editor|Win32.ActiveCfg = DebugGame_Editor|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame Editor|Win64.ActiveCfg = DebugGame_Editor|x64 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame Editor|Win64.Build.0 = DebugGame_Editor|x64 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame|HTML5.ActiveCfg = HTML5_DebugGame_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame|HTML5.Build.0 = HTML5_DebugGame_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame|Linux.ActiveCfg = Linux_DebugGame_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame|Linux.Build.0 = Linux_DebugGame_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame|Win32.ActiveCfg = DebugGame_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame|Win32.Build.0 = DebugGame_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame|Win64.ActiveCfg = DebugGame_Game|x64 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame|Win64.Build.0 = DebugGame_Game|x64 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Development Editor|HTML5.ActiveCfg = HTML5_Development_Editor|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Development Editor|Linux.ActiveCfg = Linux_Development_Editor|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Development Editor|Linux.Build.0 = Linux_Development_Editor|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Development Editor|Win32.ActiveCfg = Development_Editor|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Development Editor|Win64.ActiveCfg = Development_Editor|x64 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Development Editor|Win64.Build.0 = Development_Editor|x64 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Development|HTML5.ActiveCfg = HTML5_Development_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Development|HTML5.Build.0 = HTML5_Development_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Development|Linux.ActiveCfg = Linux_Development_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Development|Linux.Build.0 = Linux_Development_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Development|Win32.ActiveCfg = Development_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Development|Win32.Build.0 = Development_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Development|Win64.ActiveCfg = Development_Game|x64 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Development|Win64.Build.0 = Development_Game|x64 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Shipping|HTML5.ActiveCfg = HTML5_Shipping_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Shipping|HTML5.Build.0 = HTML5_Shipping_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Shipping|Linux.ActiveCfg = Linux_Shipping_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Shipping|Linux.Build.0 = Linux_Shipping_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Shipping|Win32.ActiveCfg = Shipping_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Shipping|Win32.Build.0 = Shipping_Game|Win32 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Shipping|Win64.ActiveCfg = Shipping_Game|x64 + {CDB20097-5BE4-4AE0-9917-9E106866611A}.Shipping|Win64.Build.0 = Shipping_Game|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {9F3944BA-2428-4050-9FE9-59F6C136A3C4} = {B5CC4ECB-290E-4069-866D-0A91649F562B} - {0E67EEC4-D927-4AF3-AB4E-12742B770C2E} = {A18D553A-642C-46D7-83C4-50948FA12BB5} + {8962C52B-11DB-42F4-9630-175AAC44A4E5} = {3B9A8162-6232-4AE8-936D-3D30E00B53CD} + {CDB20097-5BE4-4AE0-9917-9E106866611A} = {3CC488BF-FFC0-4BEB-B580-18BEAFF21A36} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {29782850-2049-40D2-A595-0297FDE95DE3} + SolutionGuid = {CF176613-D418-4296-84FA-7A73B43DC6C9} EndGlobalSection EndGlobal diff --git a/LifePlay.uproject b/LifePlay.uproject index 7ea60e8..b903977 100644 --- a/LifePlay.uproject +++ b/LifePlay.uproject @@ -1,6 +1,6 @@ { "FileVersion": 3, - "EngineAssociation": "4.18", + "EngineAssociation": "4.20", "Category": "", "Description": "", "Modules": [ @@ -18,89 +18,6 @@ { "Name": "SteamVR", "Enabled": false - }, - { - "Name": "OculusVR", - "Enabled": false - }, - { - "Name": "OnlineSubsystemIOS", - "Enabled": false, - "SupportedTargetPlatforms": [ - "IOS", - "TVOS" - ] - }, - { - "Name": "OnlineSubsystemNull", - "Enabled": false - }, - { - "Name": "OnlineSubsystemGooglePlay", - "Enabled": false, - "SupportedTargetPlatforms": [ - "Android" - ] - }, - { - "Name": "OnlineSubsystemUtils", - "Enabled": false - }, - { - "Name": "OnlineSubsystem", - "Enabled": false - }, - { - "Name": "MobilePatchingUtils", - "Enabled": false - }, - { - "Name": "HTML5Networking", - "Enabled": false - }, - { - "Name": "MobileLauncherProfileWizard", - "Enabled": false - }, - { - "Name": "TcpMessaging", - "Enabled": false - }, - { - "Name": "UdpMessaging", - "Enabled": false - }, - { - "Name": "AlembicImporter", - "Enabled": false - }, - { - "Name": "SpeedTreeImporter", - "Enabled": false - }, - { - "Name": "AndroidDeviceProfileSelector", - "Enabled": false - }, - { - "Name": "IOSDeviceProfileSelector", - "Enabled": false - }, - { - "Name": "LinuxDeviceProfileSelector", - "Enabled": false - }, - { - "Name": "ExampleDeviceProfileSelector", - "Enabled": false - }, - { - "Name": "AppleARKit", - "Enabled": false - }, - { - "Name": "AndroidPermission", - "Enabled": false } ], "TargetPlatforms": [ diff --git a/Plugins/ModdingExtra/Source/ModdingExtra/ModdingExtra.Build.cs b/Plugins/ModdingExtra/Source/ModdingExtra/ModdingExtra.Build.cs index 0f1ae0b..15a3995 100644 --- a/Plugins/ModdingExtra/Source/ModdingExtra/ModdingExtra.Build.cs +++ b/Plugins/ModdingExtra/Source/ModdingExtra/ModdingExtra.Build.cs @@ -7,14 +7,6 @@ public class ModdingExtra : ModuleRules public ModdingExtra(ReadOnlyTargetRules Target) : base(Target) { PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; - - PublicIncludePaths.AddRange( - new string[] { - "ModdingExtra/Public" - - // ... add public include paths required here ... - } - ); PrivateIncludePaths.AddRange( diff --git a/Plugins/StreetMap/Source/StreetMapRuntime/StreetMapComponent.cpp b/Plugins/StreetMap/Source/StreetMapRuntime/StreetMapComponent.cpp index b3bd517..fa8f9d4 100644 --- a/Plugins/StreetMap/Source/StreetMapRuntime/StreetMapComponent.cpp +++ b/Plugins/StreetMap/Source/StreetMapRuntime/StreetMapComponent.cpp @@ -170,11 +170,8 @@ void UStreetMapComponent::GenerateCollision() } // Rebuild the body setup -#if WITH_EDITOR || WITH_RUNTIME_PHYSICS_COOKING StreetMapBodySetup->InvalidatePhysicsData(); -#endif StreetMapBodySetup->CreatePhysicsMeshes(); - UpdateNavigationIfNeeded(); } @@ -618,7 +615,7 @@ void UStreetMapComponent::UpdateNavigationIfNeeded() { if (bCanEverAffectNavigation || bNavigationRelevant) { - UNavigationSystem::UpdateComponentInNavOctree(*this); + FNavigationSystem::UpdateComponentData(*this); } } diff --git a/Plugins/StreetMap/Source/StreetMapRuntime/StreetMapRuntime.Build.cs b/Plugins/StreetMap/Source/StreetMapRuntime/StreetMapRuntime.Build.cs index 14eb73c..e8f43ba 100644 --- a/Plugins/StreetMap/Source/StreetMapRuntime/StreetMapRuntime.Build.cs +++ b/Plugins/StreetMap/Source/StreetMapRuntime/StreetMapRuntime.Build.cs @@ -15,9 +15,15 @@ namespace UnrealBuildTool.Rules "RHI", "RenderCore", "ShaderCore", - //"PropertyEditor" } ); - } + + if (Target.bBuildEditor == true) + { + //@TODO: Needed for FPropertyEditorModule::NotifyCustomizationModuleChanged() + //@TOOD: To move/implement in FStreetMapComponentDetails + PrivateDependencyModuleNames.Add("PropertyEditor"); + } + } } } \ No newline at end of file diff --git a/Plugins/StreetMap/Source/StreetMapRuntime/StreetMapSceneProxy.cpp b/Plugins/StreetMap/Source/StreetMapRuntime/StreetMapSceneProxy.cpp index e49de13..5a87f1e 100644 --- a/Plugins/StreetMap/Source/StreetMapRuntime/StreetMapSceneProxy.cpp +++ b/Plugins/StreetMap/Source/StreetMapRuntime/StreetMapSceneProxy.cpp @@ -6,158 +6,90 @@ #include "Runtime/Engine/Public/SceneManagement.h" -void FStreetMapVertexBuffer::InitRHI() -{ - if( Vertices.Num() > 0 ) - { - // Allocate our vertex buffer - FRHIResourceCreateInfo CreateInfo; - VertexBufferRHI = RHICreateVertexBuffer( Vertices.Num() * sizeof( Vertices[0] ), BUF_Static, CreateInfo ); - - // Load the vertex buffer with data - void* VertexBufferData = RHILockVertexBuffer( VertexBufferRHI, 0, Vertices.Num() * sizeof( Vertices[0] ), RLM_WriteOnly ); - FMemory::Memcpy( VertexBufferData, Vertices.GetData(), Vertices.Num() * sizeof( FStreetMapVertex ) ); - RHIUnlockVertexBuffer( VertexBufferRHI ); - } -} - - -void FStreetMapIndexBuffer::InitRHI() -{ - const int IndexCount = FMath::Max( Indices16.Num(), Indices32.Num() ); - if( IndexCount > 0 ) - { - const bool b32BitIndices = Indices32.Num() > Indices16.Num(); - const uint8 IndexSize = b32BitIndices ? sizeof( Indices32[ 0 ] ) : sizeof( Indices16[ 0 ] ); - const void* IndexSourceData; - if( b32BitIndices ) - { - IndexSourceData = Indices32.GetData(); - } - else - { - IndexSourceData = Indices16.GetData(); - } - - // Allocate our index buffer and load it with data - FRHIResourceCreateInfo CreateInfo; - IndexBufferRHI = RHICreateIndexBuffer( IndexSize, IndexCount * IndexSize, BUF_Static, CreateInfo ); - void* IndexBufferData = RHILockIndexBuffer( IndexBufferRHI, 0, IndexCount * IndexSize, RLM_WriteOnly ); - FMemory::Memcpy( IndexBufferData, IndexSourceData, IndexCount * IndexSize ); - RHIUnlockIndexBuffer( IndexBufferRHI ); - } -} - - -void FStreetMapVertexFactory::InitVertexFactory( const FStreetMapVertexBuffer& VertexBuffer ) -{ - // Setup the vertex factory streams - FDataType DataType; - DataType.PositionComponent = STRUCTMEMBER_VERTEXSTREAMCOMPONENT( &VertexBuffer, FStreetMapVertex, Position, VET_Float3 ); - DataType.TextureCoordinates.Add( STRUCTMEMBER_VERTEXSTREAMCOMPONENT( &VertexBuffer, FStreetMapVertex, TextureCoordinate, VET_Float2 ) ); - DataType.TangentBasisComponents[0] = STRUCTMEMBER_VERTEXSTREAMCOMPONENT( &VertexBuffer, FStreetMapVertex, TangentX, VET_PackedNormal); - DataType.TangentBasisComponents[1] = STRUCTMEMBER_VERTEXSTREAMCOMPONENT( &VertexBuffer, FStreetMapVertex, TangentZ, VET_PackedNormal); - DataType.ColorComponent = STRUCTMEMBER_VERTEXSTREAMCOMPONENT( &VertexBuffer, FStreetMapVertex, Color, VET_Color ); - - // Send it off to the rendering thread - check( !IsInActualRenderingThread() ); - ENQUEUE_UNIQUE_RENDER_COMMAND_TWOPARAMETER( - InitStreetMapVertexFactory, - FStreetMapVertexFactory*, VertexFactory, this, - FDataType, DataType, DataType, - { - VertexFactory->SetData( DataType ); - }); -} - - FStreetMapSceneProxy::FStreetMapSceneProxy(const UStreetMapComponent* InComponent) : FPrimitiveSceneProxy(InComponent), StreetMapComp(InComponent), - CollisionResponse(InComponent->GetCollisionResponseToChannels()) + CollisionResponse(InComponent->GetCollisionResponseToChannels()), + VertexFactory(GetScene().GetFeatureLevel(), "FStreetMapSceneProxy") { } - -void FStreetMapSceneProxy::Init( const UStreetMapComponent* InComponent, const TArray< FStreetMapVertex >& Vertices, const TArray< uint16 >& Indices ) +void FStreetMapSceneProxy::Init(const UStreetMapComponent* InComponent, const TArray< FStreetMapVertex >& Vertices, const TArray< uint32 >& Indices) { - // Copy 16-bit index data - IndexBuffer.Indices16 = Indices; - - InitAfterIndexBuffer( InComponent, Vertices ); -} + // Copy index buffer + IndexBuffer32.Indices = Indices; - -void FStreetMapSceneProxy::Init( const UStreetMapComponent* InComponent, const TArray< FStreetMapVertex >& Vertices, const TArray< uint32 >& Indices ) -{ - // If we fit into a 16-bit index buffer, just use that - if( Vertices.Num() < 0xffff ) - { - const int32 IndexCount = Indices.Num(); - IndexBuffer.Indices16.AddUninitialized( IndexCount ); - for( int32 Index = 0; Index < IndexCount; ++Index ) - { - IndexBuffer.Indices16[ Index ] = Indices[ Index ]; - } - } - else - { - // Copy 32-bit index data - IndexBuffer.Indices32 = Indices; - } - - InitAfterIndexBuffer( InComponent, Vertices ); -} - -void FStreetMapSceneProxy::InitAfterIndexBuffer( const UStreetMapComponent* StreetMapComponent, const TArray< FStreetMapVertex >& Vertices ) -{ MaterialInterface = nullptr; - this->MaterialRelevance = StreetMapComponent->GetMaterialRelevance( GetScene().GetFeatureLevel() ); - + this->MaterialRelevance = InComponent->GetMaterialRelevance(GetScene().GetFeatureLevel()); + + // Copy vertex data - VertexBuffer.Vertices = Vertices; + const int32 NumVerts = Vertices.Num(); + TArray DynamicVertices; + DynamicVertices.SetNumUninitialized(NumVerts); + + for (int VertIdx = 0; VertIdx < NumVerts; VertIdx++) + { + const FStreetMapVertex& StreetMapVert = Vertices[VertIdx]; + FDynamicMeshVertex& Vert = DynamicVertices[VertIdx]; + Vert.Position = StreetMapVert.Position; + Vert.Color = StreetMapVert.Color; + Vert.TextureCoordinate[0] = StreetMapVert.TextureCoordinate; + Vert.TangentX = StreetMapVert.TangentX; + Vert.TangentZ = StreetMapVert.TangentZ; + } + + VertexBuffer.InitFromDynamicVertex(&VertexFactory, DynamicVertices); + + // Enqueue initialization of render resource InitResources(); - + // Set a material { - if( StreetMapComponent->GetNumMaterials() > 0 ) + if (InComponent->GetNumMaterials() > 0) { - MaterialInterface = StreetMapComponent->GetMaterial( 0 ); + MaterialInterface = InComponent->GetMaterial(0); } - + // Use the default material if we don't have one set - if( MaterialInterface == nullptr ) + if (MaterialInterface == nullptr) { - MaterialInterface = UMaterial::GetDefaultMaterial( MD_Surface ); + MaterialInterface = UMaterial::GetDefaultMaterial(MD_Surface); } } } - - FStreetMapSceneProxy::~FStreetMapSceneProxy() { - VertexBuffer.ReleaseResource(); - IndexBuffer.ReleaseResource(); + VertexBuffer.PositionVertexBuffer.ReleaseResource(); + VertexBuffer.StaticMeshVertexBuffer.ReleaseResource(); + VertexBuffer.ColorVertexBuffer.ReleaseResource(); + IndexBuffer32.ReleaseResource(); VertexFactory.ReleaseResource(); } +SIZE_T FStreetMapSceneProxy::GetTypeHash() const +{ + static size_t UniquePointer; + return reinterpret_cast(&UniquePointer); +} + void FStreetMapSceneProxy::InitResources() { // Start initializing our vertex buffer, index buffer, and vertex factory. This will be kicked off on the render thread. - BeginInitResource( &VertexBuffer ); - BeginInitResource( &IndexBuffer ); - - VertexFactory.InitVertexFactory( VertexBuffer ); - BeginInitResource( &VertexFactory ); + BeginInitResource(&VertexBuffer.PositionVertexBuffer); + BeginInitResource(&VertexBuffer.StaticMeshVertexBuffer); + BeginInitResource(&VertexBuffer.ColorVertexBuffer); + BeginInitResource(&IndexBuffer32); + BeginInitResource(&VertexFactory); } -bool FStreetMapSceneProxy::MustDrawMeshDynamically( const FSceneView& View ) const +bool FStreetMapSceneProxy::MustDrawMeshDynamically(const FSceneView& View) const { - return ( AllowDebugViewmodes() && View.Family->EngineShowFlags.Wireframe ) || IsSelected(); + return (AllowDebugViewmodes() && View.Family->EngineShowFlags.Wireframe) || IsSelected(); } @@ -166,18 +98,18 @@ bool FStreetMapSceneProxy::IsInCollisionView(const FEngineShowFlags& EngineShowF return EngineShowFlags.CollisionVisibility || EngineShowFlags.CollisionPawn; } -FPrimitiveViewRelevance FStreetMapSceneProxy::GetViewRelevance( const FSceneView* View ) const +FPrimitiveViewRelevance FStreetMapSceneProxy::GetViewRelevance(const FSceneView* View) const { FPrimitiveViewRelevance Result; Result.bDrawRelevance = IsShown(View); Result.bShadowRelevance = IsShadowCast(View); - + const bool bAlwaysHasDynamicData = false; // Only draw dynamically if we're drawing in wireframe or we're selected in the editor - Result.bDynamicRelevance = MustDrawMeshDynamically( *View ) || bAlwaysHasDynamicData; - Result.bStaticRelevance = !MustDrawMeshDynamically( *View ); - + Result.bDynamicRelevance = MustDrawMeshDynamically(*View) || bAlwaysHasDynamicData; + Result.bStaticRelevance = !MustDrawMeshDynamically(*View); + MaterialRelevance.SetPrimitiveViewRelevance(Result); return Result; } @@ -189,10 +121,10 @@ bool FStreetMapSceneProxy::CanBeOccluded() const } -void FStreetMapSceneProxy::MakeMeshBatch( FMeshBatch& Mesh, FMaterialRenderProxy* WireframeMaterialRenderProxyOrNull, bool bDrawCollision) const +void FStreetMapSceneProxy::MakeMeshBatch(FMeshBatch& Mesh, FMaterialRenderProxy* WireframeMaterialRenderProxyOrNull, bool bDrawCollision) const { FMaterialRenderProxy* MaterialProxy = NULL; - if( WireframeMaterialRenderProxyOrNull != nullptr ) + if (WireframeMaterialRenderProxyOrNull != nullptr) { MaterialProxy = WireframeMaterialRenderProxyOrNull; } @@ -207,43 +139,43 @@ void FStreetMapSceneProxy::MakeMeshBatch( FMeshBatch& Mesh, FMaterialRenderProxy MaterialProxy = StreetMapComp->GetDefaultMaterial()->GetRenderProxy(IsSelected()); } } - + FMeshBatchElement& BatchElement = Mesh.Elements[0]; - BatchElement.IndexBuffer = &IndexBuffer; + BatchElement.IndexBuffer = &IndexBuffer32; Mesh.bWireframe = WireframeMaterialRenderProxyOrNull != nullptr; Mesh.VertexFactory = &VertexFactory; Mesh.MaterialRenderProxy = MaterialProxy; Mesh.CastShadow = true; BatchElement.PrimitiveUniformBuffer = CreatePrimitiveUniformBufferImmediate(GetLocalToWorld(), GetBounds(), GetLocalBounds(), true, UseEditorDepthTest()); BatchElement.FirstIndex = 0; - const int IndexCount = FMath::Max( IndexBuffer.Indices16.Num(), IndexBuffer.Indices32.Num() ); + const int IndexCount = IndexBuffer32.Indices.Num(); BatchElement.NumPrimitives = IndexCount / 3; BatchElement.MinVertexIndex = 0; - BatchElement.MaxVertexIndex = VertexBuffer.Vertices.Num() - 1; + BatchElement.MaxVertexIndex = VertexBuffer.PositionVertexBuffer.GetNumVertices() - 1; Mesh.ReverseCulling = IsLocalToWorldDeterminantNegative(); Mesh.Type = PT_TriangleList; Mesh.DepthPriorityGroup = SDPG_World; } -void FStreetMapSceneProxy::DrawStaticElements( FStaticPrimitiveDrawInterface* PDI ) +void FStreetMapSceneProxy::DrawStaticElements(FStaticPrimitiveDrawInterface* PDI) { - const int IndexCount = FMath::Max( IndexBuffer.Indices16.Num(), IndexBuffer.Indices32.Num() ); - if( VertexBuffer.Vertices.Num() > 0 && IndexCount > 0 ) + const int IndexCount = IndexBuffer32.Indices.Num(); + if (VertexBuffer.PositionVertexBuffer.GetNumVertices() > 0 && IndexCount > 0) { const float ScreenSize = 1.0f; FMeshBatch MeshBatch; - MakeMeshBatch( MeshBatch, nullptr); - PDI->DrawMesh( MeshBatch, ScreenSize ); + MakeMeshBatch(MeshBatch, nullptr); + PDI->DrawMesh(MeshBatch, ScreenSize); } } void FStreetMapSceneProxy::GetDynamicMeshElements(const TArray& Views, const FSceneViewFamily& ViewFamily, uint32 VisibilityMap, class FMeshElementCollector& Collector) const { - const int IndexCount = FMath::Max(IndexBuffer.Indices16.Num(), IndexBuffer.Indices32.Num()); - if (VertexBuffer.Vertices.Num() > 0 && IndexCount > 0) + const int IndexCount = IndexBuffer32.Indices.Num(); + if (VertexBuffer.PositionVertexBuffer.GetNumVertices() > 0 && IndexCount > 0) { for (int32 ViewIndex = 0; ViewIndex < Views.Num(); ++ViewIndex) { @@ -274,7 +206,7 @@ void FStreetMapSceneProxy::GetDynamicMeshElements(const TArray Vertices; - - - // FRenderResource interface - virtual void InitRHI() override; -}; - - -/** Street map mesh index buffer */ -class FStreetMapIndexBuffer : public FIndexBuffer -{ - -public: - - /** 16-bit indices */ - TArray< uint16 > Indices16; - - /** 32-bit indices */ - TArray< uint32 > Indices32; - - - // FRenderResource interface - virtual void InitRHI() override; -}; - - -/** Street map mesh vertex factory */ -class FStreetMapVertexFactory : public FLocalVertexFactory -{ - -public: - - /** Initialize this vertex factory */ - void InitVertexFactory( const FStreetMapVertexBuffer& VertexBuffer ); -}; - - /** Scene proxy for rendering a section of a street map mesh on the rendering thread */ class FStreetMapSceneProxy : public FPrimitiveSceneProxy { @@ -112,23 +69,14 @@ public: */ void Init(const UStreetMapComponent* InComponent, const TArray< FStreetMapVertex >& Vertices, const TArray< uint32 >& Indices); - /** - * Init this street map mesh scene proxy for the specified component (16-bit indices) - * - * @param InComponent The street map mesh component to initialize this with - * @param Vertices The vertices for this street map mesh - * @param Indices The vertex indices for this street map mesh - */ - void Init(const UStreetMapComponent* InComponent, const TArray< FStreetMapVertex >& Vertices, const TArray< uint16 >& Indices); - /** Destructor that cleans up our rendering data */ virtual ~FStreetMapSceneProxy(); -protected: + /** Return a type (or subtype) specific hash for sorting purposes */ + SIZE_T GetTypeHash() const override; - /** Called from the constructor to finish construction after the index buffer is setup */ - void InitAfterIndexBuffer(const class UStreetMapComponent* StreetMapComponent, const TArray< FStreetMapVertex >& Vertices); +protected: /** Initializes this scene proxy's vertex buffer, index buffer and vertex factory (on the render thread.) */ void InitResources(); @@ -150,20 +98,16 @@ protected: virtual FPrimitiveViewRelevance GetViewRelevance(const class FSceneView* View) const override; virtual bool CanBeOccluded() const override; - - protected: - - /** Contains all of the vertices in our street map mesh */ - FStreetMapVertexBuffer VertexBuffer; + FStaticMeshVertexBuffers VertexBuffer; - /** All of the vertex indices in our street map mesh */ - FStreetMapIndexBuffer IndexBuffer; + /** All of the vertex indices32 in our street map mesh */ + FDynamicMeshIndexBuffer32 IndexBuffer32; /** Our vertex factory specific to street map meshes */ - FStreetMapVertexFactory VertexFactory; + FLocalVertexFactory VertexFactory; /** Cached material relevance */ FMaterialRelevance MaterialRelevance; @@ -175,6 +119,4 @@ protected: // The Collision Response of the component being proxied FCollisionResponseContainer CollisionResponse; - - -}; +}; \ No newline at end of file