diff --git a/Source/Engine/Core/Config/GameSettings.cpp b/Source/Engine/Core/Config/GameSettings.cpp
index 11617612f..9fdcec3c8 100644
--- a/Source/Engine/Core/Config/GameSettings.cpp
+++ b/Source/Engine/Core/Config/GameSettings.cpp
@@ -42,6 +42,14 @@ public:
};
IMPLEMENT_ENGINE_SETTINGS_GETTER(BuildSettings, GameCooking);
+
+#include "Engine/Content/Deprecated.h"
+void GraphicsSettings::SetUeeHDRProbes(bool value)
+{
+ MARK_CONTENT_DEPRECATED();
+ UseHDRProbes = value;
+}
+
IMPLEMENT_ENGINE_SETTINGS_GETTER(GraphicsSettings, Graphics);
IMPLEMENT_ENGINE_SETTINGS_GETTER(NetworkSettings, Network);
IMPLEMENT_ENGINE_SETTINGS_GETTER(LayersAndTagsSettings, LayersAndTags);
@@ -260,6 +268,27 @@ void GameSettings::Deserialize(DeserializeStream& stream, ISerializeModifier* mo
DESERIALIZE(iOSPlatform);
}
+#if USE_EDITOR
+
+void LayersAndTagsSettings::Serialize(SerializeStream& stream, const void* otherObj)
+{
+ SERIALIZE_GET_OTHER_OBJ(LayersAndTagsSettings);
+
+ stream.JKEY("Tags");
+ stream.StartArray();
+ for (const String& e : Tags)
+ stream.String(e);
+ stream.EndArray();
+
+ stream.JKEY("Layers");
+ stream.StartArray();
+ for (const String& e : Layers)
+ stream.String(e);
+ stream.EndArray();
+}
+
+#endif
+
void LayersAndTagsSettings::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier)
{
const auto tags = stream.FindMember("Tags");
@@ -280,7 +309,7 @@ void LayersAndTagsSettings::Deserialize(DeserializeStream& stream, ISerializeMod
if (layers != stream.MemberEnd() && layers->value.IsArray())
{
auto& layersArray = layers->value;
- for (uint32 i = 0; i < layersArray.Size() && i < 32; i++)
+ for (uint32 i = 0; i < layersArray.Size() && i < ARRAY_COUNT(Layers); i++)
{
auto& v = layersArray[i];
if (v.IsString())
@@ -288,7 +317,7 @@ void LayersAndTagsSettings::Deserialize(DeserializeStream& stream, ISerializeMod
else
Layers[i].Clear();
}
- for (uint32 i = layersArray.Size(); i < 32; i++)
+ for (uint32 i = layersArray.Size(); i < ARRAY_COUNT(Layers); i++)
{
Layers[i].Clear();
}
diff --git a/Source/Engine/Core/Config/GraphicsSettings.h b/Source/Engine/Core/Config/GraphicsSettings.h
index 9fe3db4c0..8e42748e3 100644
--- a/Source/Engine/Core/Config/GraphicsSettings.h
+++ b/Source/Engine/Core/Config/GraphicsSettings.h
@@ -145,15 +145,12 @@ private:
/// Renamed UeeHDRProbes into UseHDRProbes
/// [Deprecated on 12.10.2022, expires on 12.10.2024]
///
- API_PROPERTY(Attributes="Serialize, Obsolete, NoUndo") bool GetUeeHDRProbes() const
+ API_PROPERTY(Attributes="Serialize, Obsolete, NoUndo") DEPRECATED("Use UseHDRProbes instead.") bool GetUeeHDRProbes() const
{
return UseHDRProbes;
}
- API_PROPERTY(Attributes="Serialize, Obsolete, NoUndo") void SetUeeHDRProbes(bool value)
- {
- UseHDRProbes = value;
- }
+ API_PROPERTY(Attributes="Serialize, Obsolete, NoUndo") DEPRECATED("Use UseHDRProbes instead.") void SetUeeHDRProbes(bool value);
public:
///
diff --git a/Source/Engine/Core/Config/LayersTagsSettings.h b/Source/Engine/Core/Config/LayersTagsSettings.h
index 20e3977a7..6d10d88f8 100644
--- a/Source/Engine/Core/Config/LayersTagsSettings.h
+++ b/Source/Engine/Core/Config/LayersTagsSettings.h
@@ -32,5 +32,8 @@ public:
// [SettingsBase]
void Apply() override;
+#if USE_EDITOR
+ void Serialize(SerializeStream& stream, const void* otherObj) override;
+#endif
void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) final override;
};
diff --git a/Source/Engine/Input/Input.cpp b/Source/Engine/Input/Input.cpp
index d1ccd367e..1a505831a 100644
--- a/Source/Engine/Input/Input.cpp
+++ b/Source/Engine/Input/Input.cpp
@@ -5,7 +5,6 @@
#include "Keyboard.h"
#include "Mouse.h"
#include "Gamepad.h"
-#include "FlaxEngine.Gen.h"
#include "Engine/Platform/Window.h"
#include "Engine/Engine/Engine.h"
#include "Engine/Engine/EngineService.h"
diff --git a/Source/Engine/Localization/Localization.cpp b/Source/Engine/Localization/Localization.cpp
index bc921c28e..325a99a36 100644
--- a/Source/Engine/Localization/Localization.cpp
+++ b/Source/Engine/Localization/Localization.cpp
@@ -80,6 +80,17 @@ void LocalizationSettings::Apply()
Instance.OnLocalizationChanged();
}
+#if USE_EDITOR
+
+void LocalizationSettings::Serialize(SerializeStream& stream, const void* otherObj)
+{
+ SERIALIZE_GET_OTHER_OBJ(LocalizationSettings);
+ SERIALIZE(LocalizedStringTables);
+ SERIALIZE(DefaultFallbackLanguage);
+}
+
+#endif
+
void LocalizationSettings::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier)
{
DESERIALIZE(LocalizedStringTables);
diff --git a/Source/Engine/Localization/LocalizationSettings.h b/Source/Engine/Localization/LocalizationSettings.h
index cfd391cc3..7560aea42 100644
--- a/Source/Engine/Localization/LocalizationSettings.h
+++ b/Source/Engine/Localization/LocalizationSettings.h
@@ -34,5 +34,8 @@ public:
// [SettingsBase]
void Apply() override;
+#if USE_EDITOR
+ void Serialize(SerializeStream& stream, const void* otherObj) override;
+#endif
void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) final override;
};
diff --git a/Source/Engine/Navigation/Navigation.cpp b/Source/Engine/Navigation/Navigation.cpp
index 5d7bb7889..595de0fd4 100644
--- a/Source/Engine/Navigation/Navigation.cpp
+++ b/Source/Engine/Navigation/Navigation.cpp
@@ -235,6 +235,28 @@ void NavigationSettings::Apply()
#endif
}
+#if USE_EDITOR
+
+void NavigationSettings::Serialize(SerializeStream& stream, const void* otherObj)
+{
+ SERIALIZE_GET_OTHER_OBJ(NavigationSettings);
+ SERIALIZE(AutoAddMissingNavMeshes);
+ SERIALIZE(AutoRemoveMissingNavMeshes);
+ SERIALIZE(CellHeight);
+ SERIALIZE(CellSize);
+ SERIALIZE(TileSize);
+ SERIALIZE(MinRegionArea);
+ SERIALIZE(MergeRegionArea);
+ SERIALIZE(MaxEdgeLen);
+ SERIALIZE(MaxEdgeError);
+ SERIALIZE(DetailSamplingDist);
+ SERIALIZE(MaxDetailSamplingError);
+ SERIALIZE(NavMeshes);
+ SERIALIZE(NavAreas);
+}
+
+#endif
+
void NavigationSettings::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier)
{
DESERIALIZE(AutoAddMissingNavMeshes);
diff --git a/Source/Engine/Navigation/NavigationSettings.h b/Source/Engine/Navigation/NavigationSettings.h
index f4e6c26fa..d73f9fffb 100644
--- a/Source/Engine/Navigation/NavigationSettings.h
+++ b/Source/Engine/Navigation/NavigationSettings.h
@@ -104,5 +104,8 @@ public:
// [SettingsBase]
void Apply() override;
+#if USE_EDITOR
+ void Serialize(SerializeStream& stream, const void* otherObj) override;
+#endif
void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) final override;
};
diff --git a/Source/Engine/Physics/Physics.cpp b/Source/Engine/Physics/Physics.cpp
index 66d5a76bf..092837e47 100644
--- a/Source/Engine/Physics/Physics.cpp
+++ b/Source/Engine/Physics/Physics.cpp
@@ -49,6 +49,36 @@ PhysicsSettings::PhysicsSettings()
LayerMasks[i] = MAX_uint32;
}
+#if USE_EDITOR
+
+void PhysicsSettings::Serialize(SerializeStream& stream, const void* otherObj)
+{
+ SERIALIZE_GET_OTHER_OBJ(PhysicsSettings);
+
+ SERIALIZE(DefaultGravity);
+ SERIALIZE(TriangleMeshTriangleMinAreaThreshold);
+ SERIALIZE(BounceThresholdVelocity);
+ SERIALIZE(FrictionCombineMode);
+ SERIALIZE(RestitutionCombineMode);
+ SERIALIZE(DisableCCD);
+ SERIALIZE(BroadPhaseType);
+ SERIALIZE(SolverType);
+ SERIALIZE(MaxDeltaTime);
+ SERIALIZE(EnableSubstepping);
+ SERIALIZE(SubstepDeltaTime);
+ SERIALIZE(MaxSubsteps);
+ SERIALIZE(QueriesHitTriggers);
+ SERIALIZE(SupportCookingAtRuntime);
+
+ stream.JKEY("LayerMasks");
+ stream.StartArray();
+ for (uint32 e : LayerMasks)
+ stream.Uint(e);
+ stream.EndArray();
+}
+
+#endif
+
void PhysicsSettings::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier)
{
DESERIALIZE(DefaultGravity);
@@ -71,7 +101,7 @@ void PhysicsSettings::Deserialize(DeserializeStream& stream, ISerializeModifier*
{
auto& layersArray = layers->value;
ASSERT(layersArray.IsArray());
- for (uint32 i = 0; i < layersArray.Size() && i < 32; i++)
+ for (uint32 i = 0; i < layersArray.Size() && i < ARRAY_COUNT(LayerMasks); i++)
{
LayerMasks[i] = layersArray[i].GetUint();
}
diff --git a/Source/Engine/Physics/PhysicsSettings.h b/Source/Engine/Physics/PhysicsSettings.h
index 728a18367..4360e7dae 100644
--- a/Source/Engine/Physics/PhysicsSettings.h
+++ b/Source/Engine/Physics/PhysicsSettings.h
@@ -143,7 +143,7 @@ public:
float TriangleMeshTriangleMinAreaThreshold = 5.0f;
///
- /// If enabled, any Raycast or other scene query that intersects with a Collider marked as a Trigger will returns with a hit. Individual raycasts can override this behavior.
+ /// If enabled, any Raycast or other scene query that intersects with a Collider marked as a Trigger will return with a hit. Individual raycasts can override this behavior.
///
API_FIELD(Attributes="EditorOrder(1200), EditorDisplay(\"Other\")")
bool QueriesHitTriggers = true;
@@ -166,5 +166,8 @@ public:
// [SettingsBase]
void Apply() override;
+#if USE_EDITOR
+ void Serialize(SerializeStream& stream, const void* otherObj) override;
+#endif
void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) final override;
};
diff --git a/Source/Engine/Streaming/Streaming.cpp b/Source/Engine/Streaming/Streaming.cpp
index fa5112d70..6d89af588 100644
--- a/Source/Engine/Streaming/Streaming.cpp
+++ b/Source/Engine/Streaming/Streaming.cpp
@@ -60,11 +60,6 @@ void StreamingSettings::Apply()
TextureGroupSamplers.Resize(TextureGroups.Count(), false);
}
-void StreamingSettings::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier)
-{
- DESERIALIZE(TextureGroups);
-}
-
StreamableResource::StreamableResource(StreamingGroup* group)
: _group(group)
, _isDynamic(true)
diff --git a/Source/Engine/Streaming/StreamingSettings.h b/Source/Engine/Streaming/StreamingSettings.h
index 0bc0347e9..89c0c6802 100644
--- a/Source/Engine/Streaming/StreamingSettings.h
+++ b/Source/Engine/Streaming/StreamingSettings.h
@@ -10,9 +10,10 @@
///
API_CLASS(sealed, Namespace="FlaxEditor.Content.Settings", NoConstructor) class FLAXENGINE_API StreamingSettings : public SettingsBase
{
-DECLARE_SCRIPTING_TYPE_MINIMAL(StreamingSettings);
-public:
+ DECLARE_SCRIPTING_TYPE_MINIMAL(StreamingSettings);
+ API_AUTO_SERIALIZATION();
+public:
///
/// Textures streaming configuration (per-group).
///
@@ -20,7 +21,6 @@ public:
Array> TextureGroups;
public:
-
///
/// Gets the instance of the settings asset (default value if missing). Object returned by this method is always loaded with valid data to use.
///
@@ -28,5 +28,4 @@ public:
// [SettingsBase]
void Apply() override;
- void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) final override;
};