fix: Fixes boat turning abandoning entities (#1878)
This commit is contained in:
parent
b4611ab7eb
commit
428ae46bf4
2 changed files with 13 additions and 9 deletions
|
|
@ -2088,10 +2088,11 @@ namespace Server.Multis
|
|||
|
||||
var xOffset = 0;
|
||||
var yOffset = 0;
|
||||
Movement.Movement.Offset(facing, ref xOffset, ref yOffset);
|
||||
CalcMoves.Offset(facing, ref xOffset, ref yOffset);
|
||||
|
||||
var count = ((_facing - old) & 0x7) / 2;
|
||||
|
||||
using var queue = PooledRefQueue<IEntity>.Create();
|
||||
foreach (var e in GetMovingEntities())
|
||||
{
|
||||
if (e == this)
|
||||
|
|
@ -2099,15 +2100,18 @@ namespace Server.Multis
|
|||
continue;
|
||||
}
|
||||
|
||||
if (e is Item item)
|
||||
{
|
||||
item.Location = Rotate(item.Location, count);
|
||||
}
|
||||
else if (e is Mobile m)
|
||||
if (e is Mobile m)
|
||||
{
|
||||
m.Direction = (m.Direction - old + facing) & Direction.Mask;
|
||||
m.Location = Rotate(m.Location, count);
|
||||
}
|
||||
|
||||
queue.Enqueue(e);
|
||||
}
|
||||
|
||||
while (queue.Count > 0)
|
||||
{
|
||||
var e = queue.Dequeue();
|
||||
e.Location = Rotate(e.Location, count);
|
||||
}
|
||||
|
||||
if (TillerMan != null)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue