diff --git a/Source/Game/Entities/Object/WorldObject.cs b/Source/Game/Entities/Object/WorldObject.cs index c83cbb735..6e0aac109 100644 --- a/Source/Game/Entities/Object/WorldObject.cs +++ b/Source/Game/Entities/Object/WorldObject.cs @@ -2214,8 +2214,8 @@ namespace Game.Entities public Position GetFirstCollisionPosition(float dist, float angle) { - var pos = GetPosition(); - MovePositionToFirstCollision(ref pos, dist, angle); + var pos = new Position(GetPosition()); + MovePositionToFirstCollision(pos, dist, angle); return pos; } @@ -2276,7 +2276,7 @@ namespace Game.Entities pos.SetOrientation(GetOrientation()); } - public void MovePositionToFirstCollision(ref Position pos, float dist, float angle) + public void MovePositionToFirstCollision(Position pos, float dist, float angle) { angle += GetOrientation(); float destx = pos.posX + dist * (float)Math.Cos(angle); diff --git a/Source/Game/Movement/Generators/ConfusedGenerator.cs b/Source/Game/Movement/Generators/ConfusedGenerator.cs index 13d215399..6f682116e 100644 --- a/Source/Game/Movement/Generators/ConfusedGenerator.cs +++ b/Source/Game/Movement/Generators/ConfusedGenerator.cs @@ -67,10 +67,10 @@ namespace Game.Movement // start moving owner.AddUnitState(UnitState.ConfusedMove); - Position destination = _reference; + Position destination = new(_reference); float distance = (float)(4.0f * RandomHelper.FRand(0.0f, 1.0f) - 2.0f); float angle = RandomHelper.FRand(0.0f, 1.0f) * MathF.PI * 2.0f; - owner.MovePositionToFirstCollision(ref destination, distance, angle); + owner.MovePositionToFirstCollision(destination, distance, angle); if (_path == null) _path = new PathGenerator(owner); diff --git a/Source/Game/Movement/Generators/FleeingGenerator.cs b/Source/Game/Movement/Generators/FleeingGenerator.cs index 133c9253b..b4e3e2863 100644 --- a/Source/Game/Movement/Generators/FleeingGenerator.cs +++ b/Source/Game/Movement/Generators/FleeingGenerator.cs @@ -99,8 +99,8 @@ namespace Game.Movement owner.AddUnitState(UnitState.FleeingMove); - Position destination = owner.GetPosition(); - GetPoint(owner, ref destination); + Position destination = new Position(owner.GetPosition()); + GetPoint(owner, destination); // Add LOS check for target point if (!owner.IsWithinLOS(destination.GetPositionX(), destination.GetPositionY(), destination.GetPositionZ())) @@ -127,7 +127,7 @@ namespace Game.Movement _timer.Reset(traveltime + RandomHelper.URand(800, 1500)); } - void GetPoint(T owner, ref Position position) + void GetPoint(T owner, Position position) { float casterDistance, casterAngle; Unit fleeTarget = Global.ObjAccessor.GetUnit(owner, _fleeTargetGUID); @@ -162,7 +162,7 @@ namespace Game.Movement angle = RandomHelper.FRand(0.0f, 2.0f * MathF.PI); } - owner.MovePositionToFirstCollision(ref position, distance, angle); + owner.MovePositionToFirstCollision(position, distance, angle); } public override MovementGeneratorType GetMovementGeneratorType() diff --git a/Source/Game/Movement/Generators/RandomMovement.cs b/Source/Game/Movement/Generators/RandomMovement.cs index 4d9cab8de..e5406058e 100644 --- a/Source/Game/Movement/Generators/RandomMovement.cs +++ b/Source/Game/Movement/Generators/RandomMovement.cs @@ -95,7 +95,7 @@ namespace Game.Movement Position position = new(_reference); float distance = RandomHelper.FRand(0.0f, 1.0f) * _wanderDistance; float angle = RandomHelper.FRand(0.0f, 1.0f) * MathF.PI * 2.0f; - owner.MovePositionToFirstCollision(ref position, distance, angle); + owner.MovePositionToFirstCollision(position, distance, angle); uint resetTimer = RandomHelper.randChance(50) ? RandomHelper.URand(5000, 10000) : RandomHelper.URand(1000, 2000); diff --git a/Source/Game/Spells/Spell.cs b/Source/Game/Spells/Spell.cs index 1e91a3922..3b48fd68e 100644 --- a/Source/Game/Spells/Spell.cs +++ b/Source/Game/Spells/Spell.cs @@ -929,8 +929,8 @@ namespace Game.Spells if (dist < objSize) dist = objSize; - Position pos = dest.Position; - m_caster.MovePositionToFirstCollision(ref pos, dist, angl); + Position pos = new(dest.Position); + m_caster.MovePositionToFirstCollision(pos, dist, angl); dest.Relocate(pos); } @@ -961,8 +961,8 @@ namespace Game.Spells if (targetType.GetTarget() == Targets.DestRandom) dist *= (float)RandomHelper.NextDouble(); - Position pos = dest.Position; - target.MovePositionToFirstCollision(ref pos, dist, angle); + Position pos = new(dest.Position); + target.MovePositionToFirstCollision(pos, dist, angle); dest.Relocate(pos); } @@ -999,8 +999,8 @@ namespace Game.Spells if (targetType.GetTarget() == Targets.DestRandom) dist *= (float)RandomHelper.NextDouble(); - Position pos = m_targets.GetDstPos(); - m_caster.MovePositionToFirstCollision(ref pos, dist, angle); + Position pos = new(m_targets.GetDstPos()); + m_caster.MovePositionToFirstCollision(pos, dist, angle); dest.Relocate(pos); }