From 12bf9b95e77b73a83b5f335715bb58bdbaa077a5 Mon Sep 17 00:00:00 2001 From: Madpeter <57852827+Madpeterz@users.noreply.github.com> Date: Sun, 3 Dec 2023 20:53:59 +0000 Subject: [PATCH] clean up of packet handler to put high freq at the top of the switch case --- LibreMetaverse/_Packets_.cs | 223 ++++++++++++++++++------------------ 1 file changed, 114 insertions(+), 109 deletions(-) diff --git a/LibreMetaverse/_Packets_.cs b/LibreMetaverse/_Packets_.cs index 4c90716..c654743 100644 --- a/LibreMetaverse/_Packets_.cs +++ b/LibreMetaverse/_Packets_.cs @@ -680,6 +680,58 @@ namespace OpenMetaverse.Packets { switch (frequency) { + case PacketFrequency.High: + switch (id) + { + case 1: return PacketType.StartPingCheck; + case 2: return PacketType.CompletePingCheck; + case 4: return PacketType.AgentUpdate; + case 5: return PacketType.AgentAnimation; + case 6: return PacketType.AgentRequestSit; + case 7: return PacketType.AgentSit; + case 8: return PacketType.RequestImage; + case 9: return PacketType.ImageData; + case 10: return PacketType.ImagePacket; + case 11: return PacketType.LayerData; + case 12: return PacketType.ObjectUpdate; + case 13: return PacketType.ObjectUpdateCompressed; + case 14: return PacketType.ObjectUpdateCached; + case 15: return PacketType.ImprovedTerseObjectUpdate; + case 16: return PacketType.KillObject; + case 17: return PacketType.TransferPacket; + case 18: return PacketType.SendXferPacket; + case 19: return PacketType.ConfirmXferPacket; + case 20: return PacketType.AvatarAnimation; + case 21: return PacketType.AvatarSitResponse; + case 22: return PacketType.CameraConstraint; + case 23: return PacketType.ParcelProperties; + case 25: return PacketType.ChildAgentUpdate; + case 26: return PacketType.ChildAgentAlive; + case 27: return PacketType.ChildAgentPositionUpdate; + case 29: return PacketType.SoundTrigger; + case 30: return PacketType.ObjectAnimation; + } + break; + case PacketFrequency.Medium: + switch (id) + { + case 1: return PacketType.ObjectAdd; + case 2: return PacketType.MultipleObjectUpdate; + case 3: return PacketType.RequestMultipleObjects; + case 4: return PacketType.ObjectPosition; + case 5: return PacketType.RequestObjectPropertiesFamily; + case 6: return PacketType.CoarseLocationUpdate; + case 7: return PacketType.CrossedRegion; + case 8: return PacketType.ConfirmEnableSimulator; + case 9: return PacketType.ObjectProperties; + case 10: return PacketType.ObjectPropertiesFamily; + case 11: return PacketType.ParcelPropertiesRequest; + case 13: return PacketType.AttachedSound; + case 14: return PacketType.AttachedSoundGainChange; + case 15: return PacketType.PreloadSound; + case 17: return PacketType.ViewerEffect; + } + break; case PacketFrequency.Low: switch (id) { @@ -1031,58 +1083,6 @@ namespace OpenMetaverse.Packets case 65533: return PacketType.CloseCircuit; } break; - case PacketFrequency.Medium: - switch (id) - { - case 1: return PacketType.ObjectAdd; - case 2: return PacketType.MultipleObjectUpdate; - case 3: return PacketType.RequestMultipleObjects; - case 4: return PacketType.ObjectPosition; - case 5: return PacketType.RequestObjectPropertiesFamily; - case 6: return PacketType.CoarseLocationUpdate; - case 7: return PacketType.CrossedRegion; - case 8: return PacketType.ConfirmEnableSimulator; - case 9: return PacketType.ObjectProperties; - case 10: return PacketType.ObjectPropertiesFamily; - case 11: return PacketType.ParcelPropertiesRequest; - case 13: return PacketType.AttachedSound; - case 14: return PacketType.AttachedSoundGainChange; - case 15: return PacketType.PreloadSound; - case 17: return PacketType.ViewerEffect; - } - break; - case PacketFrequency.High: - switch (id) - { - case 1: return PacketType.StartPingCheck; - case 2: return PacketType.CompletePingCheck; - case 4: return PacketType.AgentUpdate; - case 5: return PacketType.AgentAnimation; - case 6: return PacketType.AgentRequestSit; - case 7: return PacketType.AgentSit; - case 8: return PacketType.RequestImage; - case 9: return PacketType.ImageData; - case 10: return PacketType.ImagePacket; - case 11: return PacketType.LayerData; - case 12: return PacketType.ObjectUpdate; - case 13: return PacketType.ObjectUpdateCompressed; - case 14: return PacketType.ObjectUpdateCached; - case 15: return PacketType.ImprovedTerseObjectUpdate; - case 16: return PacketType.KillObject; - case 17: return PacketType.TransferPacket; - case 18: return PacketType.SendXferPacket; - case 19: return PacketType.ConfirmXferPacket; - case 20: return PacketType.AvatarAnimation; - case 21: return PacketType.AvatarSitResponse; - case 22: return PacketType.CameraConstraint; - case 23: return PacketType.ParcelProperties; - case 25: return PacketType.ChildAgentUpdate; - case 26: return PacketType.ChildAgentAlive; - case 27: return PacketType.ChildAgentPositionUpdate; - case 29: return PacketType.SoundTrigger; - case 30: return PacketType.ObjectAnimation; - } - break; } return PacketType.Default; @@ -1500,6 +1500,60 @@ namespace OpenMetaverse.Packets switch (header.Frequency) { + case PacketFrequency.High: + switch (header.ID) + { + case 1: return new StartPingCheckPacket(header, bytes, ref i); + case 2: return new CompletePingCheckPacket(header, bytes, ref i); + case 4: return new AgentUpdatePacket(header, bytes, ref i); + case 5: return new AgentAnimationPacket(header, bytes, ref i); + case 6: return new AgentRequestSitPacket(header, bytes, ref i); + case 7: return new AgentSitPacket(header, bytes, ref i); + case 8: return new RequestImagePacket(header, bytes, ref i); + case 9: return new ImageDataPacket(header, bytes, ref i); + case 10: return new ImagePacketPacket(header, bytes, ref i); + case 11: return new LayerDataPacket(header, bytes, ref i); + case 12: return new ObjectUpdatePacket(header, bytes, ref i); + case 13: return new ObjectUpdateCompressedPacket(header, bytes, ref i); + case 14: return new ObjectUpdateCachedPacket(header, bytes, ref i); + case 15: return new ImprovedTerseObjectUpdatePacket(header, bytes, ref i); + case 16: return new KillObjectPacket(header, bytes, ref i); + case 17: return new TransferPacketPacket(header, bytes, ref i); + case 18: return new SendXferPacketPacket(header, bytes, ref i); + case 19: return new ConfirmXferPacketPacket(header, bytes, ref i); + case 20: return new AvatarAnimationPacket(header, bytes, ref i); + case 21: return new AvatarSitResponsePacket(header, bytes, ref i); + case 22: return new CameraConstraintPacket(header, bytes, ref i); + case 23: return new ParcelPropertiesPacket(header, bytes, ref i); + case 25: return new ChildAgentUpdatePacket(header, bytes, ref i); + case 26: return new ChildAgentAlivePacket(header, bytes, ref i); + case 27: return new ChildAgentPositionUpdatePacket(header, bytes, ref i); + case 29: return new SoundTriggerPacket(header, bytes, ref i); + case 30: return new ObjectAnimationPacket(header, bytes, ref i); + + } + break; + case PacketFrequency.Medium: + switch (header.ID) + { + case 1: return new ObjectAddPacket(header, bytes, ref i); + case 2: return new MultipleObjectUpdatePacket(header, bytes, ref i); + case 3: return new RequestMultipleObjectsPacket(header, bytes, ref i); + case 4: return new ObjectPositionPacket(header, bytes, ref i); + case 5: return new RequestObjectPropertiesFamilyPacket(header, bytes, ref i); + case 6: return new CoarseLocationUpdatePacket(header, bytes, ref i); + case 7: return new CrossedRegionPacket(header, bytes, ref i); + case 8: return new ConfirmEnableSimulatorPacket(header, bytes, ref i); + case 9: return new ObjectPropertiesPacket(header, bytes, ref i); + case 10: return new ObjectPropertiesFamilyPacket(header, bytes, ref i); + case 11: return new ParcelPropertiesRequestPacket(header, bytes, ref i); + case 13: return new AttachedSoundPacket(header, bytes, ref i); + case 14: return new AttachedSoundGainChangePacket(header, bytes, ref i); + case 15: return new PreloadSoundPacket(header, bytes, ref i); + case 17: return new ViewerEffectPacket(header, bytes, ref i); + + } + break; case PacketFrequency.Low: switch (header.ID) { @@ -1850,60 +1904,6 @@ namespace OpenMetaverse.Packets case 65532: return new OpenCircuitPacket(header, bytes, ref i); case 65533: return new CloseCircuitPacket(header, bytes, ref i); - } - break; - case PacketFrequency.Medium: - switch (header.ID) - { - case 1: return new ObjectAddPacket(header, bytes, ref i); - case 2: return new MultipleObjectUpdatePacket(header, bytes, ref i); - case 3: return new RequestMultipleObjectsPacket(header, bytes, ref i); - case 4: return new ObjectPositionPacket(header, bytes, ref i); - case 5: return new RequestObjectPropertiesFamilyPacket(header, bytes, ref i); - case 6: return new CoarseLocationUpdatePacket(header, bytes, ref i); - case 7: return new CrossedRegionPacket(header, bytes, ref i); - case 8: return new ConfirmEnableSimulatorPacket(header, bytes, ref i); - case 9: return new ObjectPropertiesPacket(header, bytes, ref i); - case 10: return new ObjectPropertiesFamilyPacket(header, bytes, ref i); - case 11: return new ParcelPropertiesRequestPacket(header, bytes, ref i); - case 13: return new AttachedSoundPacket(header, bytes, ref i); - case 14: return new AttachedSoundGainChangePacket(header, bytes, ref i); - case 15: return new PreloadSoundPacket(header, bytes, ref i); - case 17: return new ViewerEffectPacket(header, bytes, ref i); - - } - break; - case PacketFrequency.High: - switch (header.ID) - { - case 1: return new StartPingCheckPacket(header, bytes, ref i); - case 2: return new CompletePingCheckPacket(header, bytes, ref i); - case 4: return new AgentUpdatePacket(header, bytes, ref i); - case 5: return new AgentAnimationPacket(header, bytes, ref i); - case 6: return new AgentRequestSitPacket(header, bytes, ref i); - case 7: return new AgentSitPacket(header, bytes, ref i); - case 8: return new RequestImagePacket(header, bytes, ref i); - case 9: return new ImageDataPacket(header, bytes, ref i); - case 10: return new ImagePacketPacket(header, bytes, ref i); - case 11: return new LayerDataPacket(header, bytes, ref i); - case 12: return new ObjectUpdatePacket(header, bytes, ref i); - case 13: return new ObjectUpdateCompressedPacket(header, bytes, ref i); - case 14: return new ObjectUpdateCachedPacket(header, bytes, ref i); - case 15: return new ImprovedTerseObjectUpdatePacket(header, bytes, ref i); - case 16: return new KillObjectPacket(header, bytes, ref i); - case 17: return new TransferPacketPacket(header, bytes, ref i); - case 18: return new SendXferPacketPacket(header, bytes, ref i); - case 19: return new ConfirmXferPacketPacket(header, bytes, ref i); - case 20: return new AvatarAnimationPacket(header, bytes, ref i); - case 21: return new AvatarSitResponsePacket(header, bytes, ref i); - case 22: return new CameraConstraintPacket(header, bytes, ref i); - case 23: return new ParcelPropertiesPacket(header, bytes, ref i); - case 25: return new ChildAgentUpdatePacket(header, bytes, ref i); - case 26: return new ChildAgentAlivePacket(header, bytes, ref i); - case 27: return new ChildAgentPositionUpdatePacket(header, bytes, ref i); - case 29: return new SoundTriggerPacket(header, bytes, ref i); - case 30: return new ObjectAnimationPacket(header, bytes, ref i); - } break; } @@ -76936,13 +76936,18 @@ namespace OpenMetaverse.Packets Header = header; RegionData.FromBytes(bytes, ref i); int count = (int)bytes[i++]; - if(ObjectData == null || ObjectData.Length != count) { + if(ObjectData == null || ObjectData.Length != count) + { ObjectData = new ObjectDataBlock[count]; for(int j = 0; j < count; j++) - { ObjectData[j] = new ObjectDataBlock(); } + { + ObjectData[j] = new ObjectDataBlock(); + } } for (int j = 0; j < count; j++) - { ObjectData[j].FromBytes(bytes, ref i); } + { + ObjectData[j].FromBytes(bytes, ref i); + } } public override byte[] ToBytes()