fix(core): Fixes OPL packets (#395)

- [X] Fixes an issue with OPL packets using the wrong endianness and not updating the position properly.
- [X] Fixes an issue with SpanWriter not updating bytes written when it is used adhoc.
- [X] Moves packet creation for OPL inside the SendInfoTo function.

Bumps release version
This commit is contained in:
Kamron Batman 2021-01-08 23:55:23 -08:00 • committed by GitHub
parent 1a593089e9
commit 5882b1ab3f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 17 additions and 10 deletions

View file

@ -1152,7 +1152,7 @@ namespace Server
Span<byte> opl = ObjectPropertyList.Enabled ? stackalloc byte[OutgoingEntityPackets.OPLPacketLength] : null;
if (opl != null)
{
OutgoingEntityPackets.CreateOPLInfo(opl, this);
opl.InitializePacket();
}
var eable = m_Map.GetClientsInRange(m_Location, GetMaxUpdateRange());
@ -3094,8 +3094,13 @@ namespace Server
public virtual int GetUpdateRange(Mobile m) => 18;
public virtual void SendInfoTo(NetState ns, ReadOnlySpan<byte> world, ReadOnlySpan<byte> opl = default)
public virtual void SendInfoTo(NetState ns, ReadOnlySpan<byte> world, Span<byte> opl)
{
if (opl != null && opl[0] == 0)
{
OutgoingEntityPackets.CreateOPLInfo(opl, this);
}
SendWorldPacketTo(ns, world);
SendOPLPacketTo(ns, opl);
}