public void SendGo(List <int> pathSteps) { if (pathSteps == null) { return; } CreatureStorage.ClearTargets(); var message = _packetWriter.CreateMessage(); if (pathSteps.Count == 1) { switch ((PathDirection)(pathSteps[0] & 65535)) { case PathDirection.East: message.WriteEnum(GameclientMessageType.GoEast); break; case PathDirection.NorthEast: message.WriteEnum(GameclientMessageType.GoNorthEast); break; case PathDirection.North: message.WriteEnum(GameclientMessageType.GoNorth); break; case PathDirection.NorthWest: message.WriteEnum(GameclientMessageType.GoNorthWest); break; case PathDirection.West: message.WriteEnum(GameclientMessageType.GoWest); break; case PathDirection.SouthWest: message.WriteEnum(GameclientMessageType.GoSouthWest); break; case PathDirection.South: message.WriteEnum(GameclientMessageType.GoSouth); break; case PathDirection.SouthEast: message.WriteEnum(GameclientMessageType.GoSouthEast); break; default: return; } } else { int pathMaxSteps = (byte)System.Math.Min(byte.MaxValue, pathSteps.Count); message.WriteEnum(GameclientMessageType.GoPath); message.WriteUnsignedByte((byte)pathMaxSteps); int i = 0; while (i < pathMaxSteps) { message.WriteUnsignedByte((byte)(pathSteps[i] & 65535)); i++; } } _packetWriter.FinishMessage(); }