diff --git a/Source/Game/Entities/AreaTrigger/AreaTrigger.cs b/Source/Game/Entities/AreaTrigger/AreaTrigger.cs index a11924cb6..d3979b6b8 100644 --- a/Source/Game/Entities/AreaTrigger/AreaTrigger.cs +++ b/Source/Game/Entities/AreaTrigger/AreaTrigger.cs @@ -222,7 +222,7 @@ namespace Game.Entities GetCreateProperties().Movement.Switch( _ => SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.PathType), (byte)AreaTriggerPathType.None), - splineInfo => InitSplineOffsets(splineInfo, null, GetCreateProperties().SpeedIsTime), + splineInfo => InitSplineOffsets(splineInfo), orbitInfo => { AreaTriggerOrbitInfo orbit = orbitInfo; @@ -231,7 +231,7 @@ namespace Game.Entities else orbit.Center = pos; - InitOrbit(orbit, null, GetCreateProperties().SpeedIsTime); + InitOrbit(orbit); }); SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.Facing), _stationaryPosition.GetOrientation()); @@ -1160,7 +1160,7 @@ namespace Game.Entities } } - void InitSplineOffsets(List offsets, float? overrideSpeed = null, bool speedIsTimeInSeconds = false) + void InitSplineOffsets(List offsets, float? overrideSpeed = null, bool? speedIsTimeInSeconds = null) { float angleSin = (float)Math.Sin(GetOrientation()); float angleCos = (float)Math.Cos(GetOrientation()); @@ -1182,7 +1182,7 @@ namespace Game.Entities InitSplines(rotatedPoints.ToArray(), overrideSpeed, speedIsTimeInSeconds); } - public void InitSplines(Vector3[] splinePoints, float? overrideSpeed = null, bool speedIsTimeInSeconds = false) + public void InitSplines(Vector3[] splinePoints, float? overrideSpeed = null, bool? speedIsTimeInSeconds = null) { if (splinePoints.Length < 2) return; @@ -1195,7 +1195,7 @@ namespace Game.Entities if (speed <= 0.0f) speed = 1.0f; - uint timeToTarget = (speedIsTimeInSeconds ? speed : _spline.Length() / speed) * Time.InMilliseconds; + uint timeToTarget = (speedIsTimeInSeconds.GetValueOrDefault(GetCreateProperties().SpeedIsTime) ? speed : _spline.Length() / speed) * Time.InMilliseconds; var areaTriggerData = m_values.ModifyValue(m_areaTriggerData); SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.TimeToTarget), timeToTarget); @@ -1220,7 +1220,7 @@ namespace Game.Entities return 0; } - void InitOrbit(AreaTriggerOrbitInfo orbit, float? overrideSpeed = null, bool speedIsTimeInSeconds = false) + void InitOrbit(AreaTriggerOrbitInfo orbit, float? overrideSpeed = null, bool? speedIsTimeInSeconds = null) { // Circular movement requires either a center position or an attached unit Cypher.Assert(orbit.Center.HasValue || orbit.PathTarget.HasValue); @@ -1229,7 +1229,7 @@ namespace Game.Entities if (speed <= 0.0f) speed = 1.0f; - uint timeToTarget = (uint)(speedIsTimeInSeconds ? speed : (uint)(orbit.Radius * 2.0f * MathF.PI / speed)) * Time.InMilliseconds; + uint timeToTarget = (uint)(speedIsTimeInSeconds.GetValueOrDefault(GetCreateProperties().SpeedIsTime) ? speed : (uint)(orbit.Radius * 2.0f * MathF.PI / speed)) * Time.InMilliseconds; var areaTriggerData = m_values.ModifyValue(m_areaTriggerData); SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.TimeToTarget), timeToTarget);